@sankhyalabs/sankhyablocks 8.7.0 → 8.8.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/cjs/{ConfigStorage-1097ff27.js → ConfigStorage-a97ca159.js} +2 -2
  2. package/dist/cjs/{DataFetcher-a00bc007.js → DataFetcher-2a99283c.js} +19 -10
  3. package/dist/cjs/{SnkFormConfigManager-a4b4d852.js → SnkFormConfigManager-f641f502.js} +2 -2
  4. package/dist/cjs/{SnkMultiSelectionListDataSource-804ff4c7.js → SnkMultiSelectionListDataSource-56db34ee.js} +11 -0
  5. package/dist/cjs/{auth-fetcher-92f3040b.js → auth-fetcher-78231356.js} +1 -1
  6. package/dist/cjs/dataunit-fetcher-4f7d4ee7.js +878 -0
  7. package/dist/cjs/{form-config-fetcher-60fbeb94.js → form-config-fetcher-a322a522.js} +1 -1
  8. package/dist/cjs/{pesquisa-fetcher-b2ed9767.js → pesquisa-fetcher-7ef61508.js} +1 -1
  9. package/dist/cjs/snk-actions-button.cjs.entry.js +4 -3
  10. package/dist/cjs/snk-application.cjs.entry.js +17 -8
  11. package/dist/cjs/snk-attach.cjs.entry.js +16 -3
  12. package/dist/cjs/snk-crud.cjs.entry.js +6 -4
  13. package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
  14. package/dist/cjs/snk-detail-view.cjs.entry.js +8 -6
  15. package/dist/cjs/snk-filter-bar.cjs.entry.js +3 -3
  16. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  17. package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
  18. package/dist/cjs/snk-form.cjs.entry.js +4 -4
  19. package/dist/cjs/snk-grid-config.cjs.entry.js +3 -3
  20. package/dist/cjs/snk-grid.cjs.entry.js +25 -14
  21. package/dist/cjs/{snk-guides-viewer-eab0ec84.js → snk-guides-viewer-aab80f66.js} +5 -4
  22. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -6
  23. package/dist/cjs/snk-personalized-filter.cjs.entry.js +19 -9
  24. package/dist/cjs/snk-simple-crud.cjs.entry.js +8 -92
  25. package/dist/collection/components/snk-application/snk-application.js +11 -3
  26. package/dist/collection/components/snk-attach/snk-attach.js +14 -2
  27. package/dist/collection/components/snk-grid/filtercolumn/SnkMultiSelectionListDataSource.js +11 -0
  28. package/dist/collection/components/snk-grid/snk-grid.js +24 -14
  29. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +16 -6
  30. package/dist/collection/lib/dataUnit/InMemoryLoader.js +23 -2
  31. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +19 -10
  32. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +113 -0
  33. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +59 -0
  34. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +169 -0
  35. package/dist/collection/lib/http/data-fetcher/fetchers/{dataunit-fetcher.js → data-unit/dataunit-fetcher.js} +48 -100
  36. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/ILoadDataResult.js +1 -0
  37. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/ILoadDataStrategy.js +1 -0
  38. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/ILoadingInfo.js +1 -0
  39. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRecordField.js +1 -0
  40. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IResponseRecord.js +1 -0
  41. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DataUnitStrategy.js +68 -0
  42. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +131 -0
  43. package/dist/collection/lib/index.js +1 -1
  44. package/dist/components/DataFetcher.js +19 -10
  45. package/dist/components/SnkMultiSelectionListDataSource.js +11 -0
  46. package/dist/components/dataunit-fetcher.js +781 -100
  47. package/dist/components/snk-actions-button2.js +1 -1
  48. package/dist/components/snk-application2.js +11 -4
  49. package/dist/components/snk-attach2.js +13 -1
  50. package/dist/components/snk-crud.js +1 -1
  51. package/dist/components/snk-detail-view2.js +1 -1
  52. package/dist/components/snk-grid2.js +19 -11
  53. package/dist/components/snk-personalized-filter2.js +16 -6
  54. package/dist/components/snk-simple-crud2.js +2 -88
  55. package/dist/esm/{ConfigStorage-4d30a649.js → ConfigStorage-26f89143.js} +2 -2
  56. package/dist/esm/{DataFetcher-487d6aad.js → DataFetcher-90e91631.js} +19 -10
  57. package/dist/esm/{SnkFormConfigManager-da594f63.js → SnkFormConfigManager-18948123.js} +2 -2
  58. package/dist/esm/{SnkMultiSelectionListDataSource-892f37f9.js → SnkMultiSelectionListDataSource-b9410c72.js} +11 -0
  59. package/dist/esm/{auth-fetcher-5c3ae75b.js → auth-fetcher-a8c8ee7e.js} +1 -1
  60. package/dist/esm/dataunit-fetcher-1c2ccae2.js +874 -0
  61. package/dist/esm/{form-config-fetcher-cd3fa459.js → form-config-fetcher-7c3b6273.js} +1 -1
  62. package/dist/{components/pesquisa-fetcher.js → esm/pesquisa-fetcher-90d6853b.js} +1 -1
  63. package/dist/esm/snk-actions-button.entry.js +4 -3
  64. package/dist/esm/snk-application.entry.js +17 -8
  65. package/dist/esm/snk-attach.entry.js +16 -3
  66. package/dist/esm/snk-crud.entry.js +6 -4
  67. package/dist/esm/snk-data-exporter.entry.js +1 -1
  68. package/dist/esm/snk-detail-view.entry.js +8 -6
  69. package/dist/esm/snk-filter-bar.entry.js +3 -3
  70. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  71. package/dist/esm/snk-form-config.entry.js +2 -2
  72. package/dist/esm/snk-form.entry.js +4 -4
  73. package/dist/esm/snk-grid-config.entry.js +3 -3
  74. package/dist/esm/snk-grid.entry.js +26 -15
  75. package/dist/esm/{snk-guides-viewer-cff5e95d.js → snk-guides-viewer-62b0fa69.js} +5 -4
  76. package/dist/esm/snk-guides-viewer.entry.js +8 -6
  77. package/dist/esm/snk-personalized-filter.entry.js +19 -9
  78. package/dist/esm/snk-simple-crud.entry.js +7 -91
  79. package/dist/sankhyablocks/p-193971ad.js +1 -0
  80. package/dist/sankhyablocks/{p-54f01129.entry.js → p-19cbe6e2.entry.js} +3 -3
  81. package/dist/sankhyablocks/{p-ee57d9f5.js → p-240f5892.js} +1 -1
  82. package/dist/sankhyablocks/p-2c7c1323.entry.js +1 -0
  83. package/dist/sankhyablocks/p-3253e7f2.entry.js +1 -0
  84. package/dist/sankhyablocks/{p-c9fa27ce.entry.js → p-57550ddc.entry.js} +1 -1
  85. package/dist/sankhyablocks/{p-e2160bdd.js → p-5d51bff4.js} +1 -1
  86. package/dist/sankhyablocks/{p-ebd9f2b1.entry.js → p-5dd52ec5.entry.js} +1 -1
  87. package/dist/sankhyablocks/p-6541f0df.js +1 -0
  88. package/dist/sankhyablocks/p-68fbd480.entry.js +1 -0
  89. package/dist/sankhyablocks/{p-5e5816ed.entry.js → p-8652f90b.entry.js} +1 -1
  90. package/dist/sankhyablocks/{p-358e8f7b.js → p-910af03c.js} +1 -1
  91. package/dist/sankhyablocks/p-992a9d0f.js +1 -0
  92. package/dist/sankhyablocks/p-acb1374c.entry.js +1 -0
  93. package/dist/sankhyablocks/p-b36053da.entry.js +1 -0
  94. package/dist/sankhyablocks/p-b481e5ad.js +1 -0
  95. package/dist/sankhyablocks/p-d264da22.entry.js +1 -0
  96. package/dist/sankhyablocks/{p-33745612.js → p-d47bbee3.js} +1 -1
  97. package/dist/sankhyablocks/{p-86d00468.entry.js → p-d563e451.entry.js} +1 -1
  98. package/dist/sankhyablocks/p-d56b65e3.entry.js +1 -0
  99. package/dist/sankhyablocks/p-e473ca13.entry.js +1 -0
  100. package/dist/sankhyablocks/{p-6cd36947.entry.js → p-e74e2153.entry.js} +1 -1
  101. package/dist/sankhyablocks/p-e86d4a53.js +59 -0
  102. package/dist/sankhyablocks/{p-d109914d.entry.js → p-ebfa6460.entry.js} +1 -1
  103. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  104. package/dist/types/components/snk-application/snk-application.d.ts +1 -1
  105. package/dist/types/components/snk-attach/snk-attach.d.ts +1 -0
  106. package/dist/types/components/snk-grid/filtercolumn/SnkMultiSelectionListDataSource.d.ts +1 -0
  107. package/dist/types/components/snk-grid/snk-grid.d.ts +3 -4
  108. package/dist/types/components/snk-personalized-filter/snk-personalized-filter.d.ts +3 -1
  109. package/dist/types/components.d.ts +3 -2
  110. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +2 -1
  111. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  112. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +13 -0
  113. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +19 -0
  114. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +25 -0
  115. package/dist/types/lib/http/data-fetcher/fetchers/{dataunit-fetcher.d.ts → data-unit/dataunit-fetcher.d.ts} +5 -3
  116. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/ILoadDataResult.d.ts +6 -0
  117. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/ILoadDataStrategy.d.ts +7 -0
  118. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/ILoadingInfo.d.ts +8 -0
  119. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRecordField.d.ts +4 -0
  120. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IResponseRecord.d.ts +6 -0
  121. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DataUnitStrategy.d.ts +9 -0
  122. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +15 -0
  123. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +1 -1
  124. package/dist/types/lib/index.d.ts +1 -1
  125. package/package.json +3 -3
  126. package/dist/cjs/dataunit-fetcher-32bb845f.js +0 -356
  127. package/dist/esm/dataunit-fetcher-d3033a06.js +0 -354
  128. package/dist/esm/pesquisa-fetcher-615da3ca.js +0 -165
  129. package/dist/sankhyablocks/p-0abc880c.entry.js +0 -1
  130. package/dist/sankhyablocks/p-1284f14a.entry.js +0 -1
  131. package/dist/sankhyablocks/p-162161ae.entry.js +0 -1
  132. package/dist/sankhyablocks/p-329f7520.entry.js +0 -1
  133. package/dist/sankhyablocks/p-401da0a5.entry.js +0 -1
  134. package/dist/sankhyablocks/p-5d62a74e.js +0 -1
  135. package/dist/sankhyablocks/p-5e63571e.entry.js +0 -1
  136. package/dist/sankhyablocks/p-6b2ee5b5.entry.js +0 -1
  137. package/dist/sankhyablocks/p-719c246f.js +0 -1
  138. package/dist/sankhyablocks/p-89b3df4c.js +0 -1
  139. package/dist/sankhyablocks/p-90946802.js +0 -76
  140. package/dist/sankhyablocks/p-b417c608.entry.js +0 -1
  141. package/dist/sankhyablocks/p-fa9d3f73.js +0 -1
@@ -1,356 +0,0 @@
1
- 'use strict';
2
-
3
- const core = require('@sankhyalabs/core');
4
- const DataFetcher = require('./DataFetcher-a00bc007.js');
5
- const constants = require('@sankhyalabs/ezui/dist/collection/utils/constants');
6
- const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
7
-
8
- var __rest = (undefined && undefined.__rest) || function (s, e) {
9
- var t = {};
10
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
11
- t[p] = s[p];
12
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
13
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
14
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
15
- t[p[i]] = s[p[i]];
16
- }
17
- return t;
18
- };
19
- class DataUnitFetcher {
20
- constructor() {
21
- this.templateByQuery = new Map();
22
- this._loadDataTimeout = {};
23
- this.buldTemplates();
24
- }
25
- buldTemplates() {
26
- this.templateByQuery.set("fetchDataUnit", DataFetcher.dist.gql `query($name: String!) {
27
- $queryAlias$: fetchDataUnit(name: $name){
28
- name
29
- fields{
30
- name
31
- defaultValue
32
- label
33
- visible
34
- readOnly
35
- required
36
- dataType
37
- userInterface
38
- calculated
39
- group
40
- order
41
- properties{
42
- name
43
- value
44
- }
45
- dependencies{
46
- masterFields
47
- type
48
- expression
49
- }
50
- }
51
- children{
52
- name
53
- label
54
- links{
55
- source
56
- target
57
- }
58
- }
59
- }
60
- }`);
61
- this.templateByQuery.set("fetchData", DataFetcher.dist.gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!] $parentRecordId: String) {
62
- $queryAlias$: fetchDataUnit(name: $dataunit){
63
- data(limit: $limit offset: $offset filters: $filters sort: $sort parentRecordId: $parentRecordId){
64
- limit
65
- offset
66
- total
67
- hasMore
68
- records{
69
- id
70
- label
71
- fields {
72
- name
73
- value
74
- }
75
- }
76
- }
77
- }
78
- }`);
79
- this.templateByQuery.set("saveData", DataFetcher.dist.gql `mutation($changes: [InputBatchChange!]!) {
80
- $queryAlias$: batchOperationDataUnit(changes: $changes){
81
- oldId
82
- id
83
- label
84
- ownerDataUnitName
85
- fields {
86
- name
87
- value
88
- }
89
- }
90
- }`);
91
- this.templateByQuery.set("fetchDataRecord", DataFetcher.dist.gql `query($dataunit: String! $recordID: [String!]) {
92
- $queryAlias$: fetchDataUnit(name: $dataunit){
93
- record(id: $recordID){
94
- id
95
- label
96
- fields {
97
- name
98
- value
99
- }
100
- }
101
- }
102
- }`);
103
- this.templateByQuery.set("fetchDistinctColumn", DataFetcher.dist.gql `query($dataUnit: String!, $fieldName: String!, $argument: String, $filters: [InputFilter], $parentRecordId: String) {
104
- $queryAlias$: selectDistinct(dataUnit: $dataUnit, fieldName: $fieldName, argument: $argument, filters: $filters, parentRecordId: $parentRecordId)
105
- }`);
106
- }
107
- getDataUnit(entityName, resourceID, parentDataUnit, configName) {
108
- const duName = `dd://${entityName}/${resourceID}${configName ? "/" + configName : ""}`;
109
- const dataUnit = parentDataUnit != undefined ? parentDataUnit.getChildDataunit(duName) : new core.DataUnit(duName);
110
- dataUnit.metadataLoader = (dataUnit) => this.loadMetadata(dataUnit);
111
- dataUnit.dataLoader = (dataUnit, request) => this.loadData(dataUnit, request);
112
- dataUnit.saveLoader = (_dataUnit, changes) => this.saveData(dataUnit, changes);
113
- dataUnit.removeLoader = (dataUnit, recordIds) => this.removeRecords(dataUnit, recordIds);
114
- dataUnit.recordLoader = (dataUnit, recordIds) => this.loadRecord(dataUnit, recordIds);
115
- return dataUnit;
116
- }
117
- loadMetadata(dataUnit) {
118
- return new Promise((resolve, reject) => {
119
- DataFetcher.DataFetcher.get()
120
- .callGraphQL({
121
- values: { name: dataUnit.name },
122
- query: this.templateByQuery.get("fetchDataUnit"),
123
- })
124
- .then((resp) => {
125
- var _a;
126
- const metadata = {
127
- name: resp.name,
128
- label: resp.name,
129
- children: [...resp.children],
130
- fields: []
131
- };
132
- (_a = resp.fields) === null || _a === void 0 ? void 0 : _a.forEach((source) => {
133
- let properties = undefined;
134
- if (Array.isArray(source.properties)) {
135
- properties = {};
136
- if (source.calculated) {
137
- properties.gridHeaderTooltip = "Campos calculados não podem ser ordenados";
138
- }
139
- source.properties.forEach((prop) => (properties[prop.name] = prop.value));
140
- }
141
- metadata.fields.push(Object.assign(Object.assign({}, source), { properties }));
142
- });
143
- metadata.fields.sort((a, b) => a.order - b.order);
144
- resolve(metadata);
145
- })
146
- .catch((error) => {
147
- reject(error);
148
- });
149
- });
150
- }
151
- async loadData(dataUnit, request) {
152
- try {
153
- const duName = dataUnit.name;
154
- if (this._loadDataTimeout[duName]) {
155
- clearTimeout(this._loadDataTimeout[duName]);
156
- delete this._loadDataTimeout[duName];
157
- }
158
- const result = await this.doLoadData(dataUnit, request);
159
- delete this._loadDataTimeout[duName];
160
- await new Promise(resolve => {
161
- this._loadDataTimeout[duName] = setTimeout(resolve, 200);
162
- });
163
- return Promise.resolve(result);
164
- }
165
- catch (error) {
166
- return Promise.reject(error);
167
- }
168
- }
169
- loadSelectDistinct(dataUnit, fieldName, argument) {
170
- const { parentRecordId, filters } = dataUnit.getLastLoadRequest() || {};
171
- const filteredFilters = filters.filter(f => f.name !== `${constants.DISTINCT_FILTER_NAME_PREFIX}${fieldName}`);
172
- const values = {
173
- dataUnit: dataUnit.name,
174
- argument,
175
- fieldName,
176
- parentRecordId,
177
- filters: filteredFilters
178
- };
179
- return new Promise((resolve, reject) => {
180
- DataFetcher.DataFetcher.get()
181
- .callGraphQL({
182
- values,
183
- query: this.templateByQuery.get("fetchDistinctColumn"),
184
- })
185
- .then((result) => {
186
- resolve(result);
187
- })
188
- .catch((error) => {
189
- reject(error);
190
- });
191
- });
192
- }
193
- doLoadData(dataUnit, request) {
194
- return new Promise((resolve, reject) => {
195
- var _a;
196
- const { sort, filters, limit, offset, quickFilter } = request;
197
- const variables = { dataunit: dataUnit.name, sort, filters };
198
- variables.limit = limit;
199
- variables.offset = offset;
200
- variables.parentRecordId = request.parentRecordId;
201
- if (!core.StringUtils.isEmpty(quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.term)) {
202
- if (variables.filter === undefined) {
203
- variables.filter = [];
204
- }
205
- const quickFilterCriteria = {
206
- name: "__QUICK_FILTER__",
207
- expression: "__QUICK_FILTER__",
208
- params: [{ name: "term", dataType: core.DataType.TEXT, value: quickFilter.term }]
209
- };
210
- if (((_a = quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.fields) === null || _a === void 0 ? void 0 : _a.length) > 0) {
211
- quickFilterCriteria.params.push({ name: "fields", dataType: core.DataType.OBJECT, value: quickFilter.fields });
212
- }
213
- variables.filter.push(quickFilterCriteria);
214
- }
215
- DataFetcher.DataFetcher.get()
216
- .callGraphQL({
217
- values: variables,
218
- query: this.templateByQuery.get("fetchData"),
219
- })
220
- .then((resp) => {
221
- const { limit, offset, total, hasMore, records } = resp.data;
222
- let paginationInfo;
223
- if (limit) {
224
- const firstRecord = total == 0 ? 0 : offset + 1;
225
- const lastRecord = offset + Math.min(records.length, limit);
226
- const currentPage = offset / limit;
227
- paginationInfo = {
228
- firstRecord,
229
- lastRecord,
230
- total,
231
- currentPage,
232
- hasMore
233
- };
234
- }
235
- const processedRecords = [];
236
- records.forEach((responseRecord) => {
237
- const duRecord = { __record__id__: responseRecord.id, __record__label__: responseRecord.label };
238
- responseRecord.fields.forEach(({ name, value }) => {
239
- duRecord[name] = dataUnit.valueFromString(name, value);
240
- });
241
- processedRecords.push(duRecord);
242
- });
243
- resolve({
244
- paginationInfo,
245
- records: processedRecords
246
- });
247
- })
248
- .catch((error) => {
249
- reject(error);
250
- });
251
- });
252
- }
253
- saveData(dataUnit, duChanges) {
254
- const changes = duChanges.map((change) => {
255
- const { dataUnit: changeDU, record, updatingFields, operation } = change;
256
- const dataUnitInstance = core.DataUnitStorage.get(changeDU);
257
- let parsedUpdatingFields;
258
- if (updatingFields) {
259
- parsedUpdatingFields = Object.entries(updatingFields).map(([fieldName, value]) => {
260
- const descriptor = dataUnitInstance.getField(fieldName);
261
- const dataType = descriptor ? descriptor.dataType : core.DataType.TEXT;
262
- return { fieldName, dataType, value: dataUnitInstance.valueToString(fieldName, value) };
263
- });
264
- }
265
- const reqChange = { dataUnit: changeDU, fields: parsedUpdatingFields, operation, recordId: record.__record__id__ };
266
- if (change.sourceId) {
267
- reqChange.sourceId = change.sourceId;
268
- }
269
- if (record.__parent__record__id__) {
270
- reqChange.parentRecordId = record.__parent__record__id__;
271
- }
272
- return reqChange;
273
- });
274
- return new Promise((resolve, reject) => {
275
- const changesFormatted = changes.map((_a) => {
276
- var rest = __rest(_a, []);
277
- return rest;
278
- });
279
- DataFetcher.DataFetcher.get()
280
- .callGraphQL({
281
- values: { changes: changesFormatted },
282
- query: this.templateByQuery.get("saveData"),
283
- })
284
- .then((resp) => {
285
- const dataUnitRecords = [];
286
- resp === null || resp === void 0 ? void 0 : resp.forEach((responseRecord) => {
287
- const duRecord = {
288
- __record__id__: responseRecord.id,
289
- __record__label__: responseRecord.label,
290
- __owner__dataunit__name__: responseRecord.ownerDataUnitName,
291
- };
292
- const dataUnitInstance = core.DataUnitStorage.get(duRecord.__owner__dataunit__name__) || dataUnit;
293
- if (responseRecord.oldId) {
294
- duRecord.__old__id__ = responseRecord.oldId;
295
- }
296
- responseRecord.fields.forEach(({ name, value }) => {
297
- var _a;
298
- duRecord[name] = ((_a = dataUnitInstance === null || dataUnitInstance === void 0 ? void 0 : dataUnitInstance.valueFromString) === null || _a === void 0 ? void 0 : _a.call(dataUnitInstance, name, value)) || value;
299
- });
300
- dataUnitRecords.push(duRecord);
301
- });
302
- resolve(dataUnitRecords);
303
- })
304
- .catch((error) => {
305
- reject(error);
306
- });
307
- });
308
- }
309
- getTransientInfo(dataUnit, recordID) {
310
- const { records } = dataUnit.getSelectionInfo();
311
- return Object.entries(records.filter(record => record.__record__id__ == recordID)[0]).filter(([key]) => key.startsWith(UnitMetadata.DataUnitTransient.DATA_UNIT_TRANSIENT_PREFIX_NAME)).map(([name, value]) => ({ fieldName: name, value, dataType: core.DataType.TEXT }));
312
- }
313
- removeRecords(dataUnit, recordIds) {
314
- const changes = recordIds.map((recordId) => {
315
- return { dataUnit: dataUnit.name, operation: core.ChangeOperation.DELETE, recordId, fields: this.getTransientInfo(dataUnit, recordId) };
316
- });
317
- return new Promise((resolve, reject) => {
318
- DataFetcher.DataFetcher.get()
319
- .callGraphQL({
320
- values: { changes: changes },
321
- query: this.templateByQuery.get("saveData"),
322
- })
323
- .then((_resp) => {
324
- resolve(recordIds);
325
- })
326
- .catch((error) => {
327
- reject(error);
328
- });
329
- });
330
- }
331
- loadRecord(dataUnit, recordIds) {
332
- return new Promise((resolve, reject) => {
333
- DataFetcher.DataFetcher.get()
334
- .callGraphQL({
335
- values: { recordID: recordIds, dataunit: dataUnit.name },
336
- query: this.templateByQuery.get("fetchDataRecord"),
337
- })
338
- .then((response) => {
339
- const dataUnitRecords = [];
340
- response.record.forEach(responseRecord => {
341
- const duRecord = { __record__id__: responseRecord.id, __record__label__: responseRecord.label };
342
- responseRecord.fields.forEach(({ name, value }) => {
343
- duRecord[name] = dataUnit.valueFromString(name, value);
344
- });
345
- dataUnitRecords.push(duRecord);
346
- });
347
- resolve(dataUnitRecords);
348
- })
349
- .catch((error) => {
350
- reject(error);
351
- });
352
- });
353
- }
354
- }
355
-
356
- exports.DataUnitFetcher = DataUnitFetcher;
@@ -1,354 +0,0 @@
1
- import { DataUnit, StringUtils, DataType, DataUnitStorage, ChangeOperation } from '@sankhyalabs/core';
2
- import { d as dist, D as DataFetcher } from './DataFetcher-487d6aad.js';
3
- import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
4
- import { DataUnitTransient } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
5
-
6
- var __rest = (undefined && undefined.__rest) || function (s, e) {
7
- var t = {};
8
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
9
- t[p] = s[p];
10
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
11
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
12
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
13
- t[p[i]] = s[p[i]];
14
- }
15
- return t;
16
- };
17
- class DataUnitFetcher {
18
- constructor() {
19
- this.templateByQuery = new Map();
20
- this._loadDataTimeout = {};
21
- this.buldTemplates();
22
- }
23
- buldTemplates() {
24
- this.templateByQuery.set("fetchDataUnit", dist.gql `query($name: String!) {
25
- $queryAlias$: fetchDataUnit(name: $name){
26
- name
27
- fields{
28
- name
29
- defaultValue
30
- label
31
- visible
32
- readOnly
33
- required
34
- dataType
35
- userInterface
36
- calculated
37
- group
38
- order
39
- properties{
40
- name
41
- value
42
- }
43
- dependencies{
44
- masterFields
45
- type
46
- expression
47
- }
48
- }
49
- children{
50
- name
51
- label
52
- links{
53
- source
54
- target
55
- }
56
- }
57
- }
58
- }`);
59
- this.templateByQuery.set("fetchData", dist.gql `query($dataunit: String! $limit: Int $offset:Int $filters: [InputFilter!] $sort: [InputSort!] $parentRecordId: String) {
60
- $queryAlias$: fetchDataUnit(name: $dataunit){
61
- data(limit: $limit offset: $offset filters: $filters sort: $sort parentRecordId: $parentRecordId){
62
- limit
63
- offset
64
- total
65
- hasMore
66
- records{
67
- id
68
- label
69
- fields {
70
- name
71
- value
72
- }
73
- }
74
- }
75
- }
76
- }`);
77
- this.templateByQuery.set("saveData", dist.gql `mutation($changes: [InputBatchChange!]!) {
78
- $queryAlias$: batchOperationDataUnit(changes: $changes){
79
- oldId
80
- id
81
- label
82
- ownerDataUnitName
83
- fields {
84
- name
85
- value
86
- }
87
- }
88
- }`);
89
- this.templateByQuery.set("fetchDataRecord", dist.gql `query($dataunit: String! $recordID: [String!]) {
90
- $queryAlias$: fetchDataUnit(name: $dataunit){
91
- record(id: $recordID){
92
- id
93
- label
94
- fields {
95
- name
96
- value
97
- }
98
- }
99
- }
100
- }`);
101
- this.templateByQuery.set("fetchDistinctColumn", dist.gql `query($dataUnit: String!, $fieldName: String!, $argument: String, $filters: [InputFilter], $parentRecordId: String) {
102
- $queryAlias$: selectDistinct(dataUnit: $dataUnit, fieldName: $fieldName, argument: $argument, filters: $filters, parentRecordId: $parentRecordId)
103
- }`);
104
- }
105
- getDataUnit(entityName, resourceID, parentDataUnit, configName) {
106
- const duName = `dd://${entityName}/${resourceID}${configName ? "/" + configName : ""}`;
107
- const dataUnit = parentDataUnit != undefined ? parentDataUnit.getChildDataunit(duName) : new DataUnit(duName);
108
- dataUnit.metadataLoader = (dataUnit) => this.loadMetadata(dataUnit);
109
- dataUnit.dataLoader = (dataUnit, request) => this.loadData(dataUnit, request);
110
- dataUnit.saveLoader = (_dataUnit, changes) => this.saveData(dataUnit, changes);
111
- dataUnit.removeLoader = (dataUnit, recordIds) => this.removeRecords(dataUnit, recordIds);
112
- dataUnit.recordLoader = (dataUnit, recordIds) => this.loadRecord(dataUnit, recordIds);
113
- return dataUnit;
114
- }
115
- loadMetadata(dataUnit) {
116
- return new Promise((resolve, reject) => {
117
- DataFetcher.get()
118
- .callGraphQL({
119
- values: { name: dataUnit.name },
120
- query: this.templateByQuery.get("fetchDataUnit"),
121
- })
122
- .then((resp) => {
123
- var _a;
124
- const metadata = {
125
- name: resp.name,
126
- label: resp.name,
127
- children: [...resp.children],
128
- fields: []
129
- };
130
- (_a = resp.fields) === null || _a === void 0 ? void 0 : _a.forEach((source) => {
131
- let properties = undefined;
132
- if (Array.isArray(source.properties)) {
133
- properties = {};
134
- if (source.calculated) {
135
- properties.gridHeaderTooltip = "Campos calculados não podem ser ordenados";
136
- }
137
- source.properties.forEach((prop) => (properties[prop.name] = prop.value));
138
- }
139
- metadata.fields.push(Object.assign(Object.assign({}, source), { properties }));
140
- });
141
- metadata.fields.sort((a, b) => a.order - b.order);
142
- resolve(metadata);
143
- })
144
- .catch((error) => {
145
- reject(error);
146
- });
147
- });
148
- }
149
- async loadData(dataUnit, request) {
150
- try {
151
- const duName = dataUnit.name;
152
- if (this._loadDataTimeout[duName]) {
153
- clearTimeout(this._loadDataTimeout[duName]);
154
- delete this._loadDataTimeout[duName];
155
- }
156
- const result = await this.doLoadData(dataUnit, request);
157
- delete this._loadDataTimeout[duName];
158
- await new Promise(resolve => {
159
- this._loadDataTimeout[duName] = setTimeout(resolve, 200);
160
- });
161
- return Promise.resolve(result);
162
- }
163
- catch (error) {
164
- return Promise.reject(error);
165
- }
166
- }
167
- loadSelectDistinct(dataUnit, fieldName, argument) {
168
- const { parentRecordId, filters } = dataUnit.getLastLoadRequest() || {};
169
- const filteredFilters = filters.filter(f => f.name !== `${DISTINCT_FILTER_NAME_PREFIX}${fieldName}`);
170
- const values = {
171
- dataUnit: dataUnit.name,
172
- argument,
173
- fieldName,
174
- parentRecordId,
175
- filters: filteredFilters
176
- };
177
- return new Promise((resolve, reject) => {
178
- DataFetcher.get()
179
- .callGraphQL({
180
- values,
181
- query: this.templateByQuery.get("fetchDistinctColumn"),
182
- })
183
- .then((result) => {
184
- resolve(result);
185
- })
186
- .catch((error) => {
187
- reject(error);
188
- });
189
- });
190
- }
191
- doLoadData(dataUnit, request) {
192
- return new Promise((resolve, reject) => {
193
- var _a;
194
- const { sort, filters, limit, offset, quickFilter } = request;
195
- const variables = { dataunit: dataUnit.name, sort, filters };
196
- variables.limit = limit;
197
- variables.offset = offset;
198
- variables.parentRecordId = request.parentRecordId;
199
- if (!StringUtils.isEmpty(quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.term)) {
200
- if (variables.filter === undefined) {
201
- variables.filter = [];
202
- }
203
- const quickFilterCriteria = {
204
- name: "__QUICK_FILTER__",
205
- expression: "__QUICK_FILTER__",
206
- params: [{ name: "term", dataType: DataType.TEXT, value: quickFilter.term }]
207
- };
208
- if (((_a = quickFilter === null || quickFilter === void 0 ? void 0 : quickFilter.fields) === null || _a === void 0 ? void 0 : _a.length) > 0) {
209
- quickFilterCriteria.params.push({ name: "fields", dataType: DataType.OBJECT, value: quickFilter.fields });
210
- }
211
- variables.filter.push(quickFilterCriteria);
212
- }
213
- DataFetcher.get()
214
- .callGraphQL({
215
- values: variables,
216
- query: this.templateByQuery.get("fetchData"),
217
- })
218
- .then((resp) => {
219
- const { limit, offset, total, hasMore, records } = resp.data;
220
- let paginationInfo;
221
- if (limit) {
222
- const firstRecord = total == 0 ? 0 : offset + 1;
223
- const lastRecord = offset + Math.min(records.length, limit);
224
- const currentPage = offset / limit;
225
- paginationInfo = {
226
- firstRecord,
227
- lastRecord,
228
- total,
229
- currentPage,
230
- hasMore
231
- };
232
- }
233
- const processedRecords = [];
234
- records.forEach((responseRecord) => {
235
- const duRecord = { __record__id__: responseRecord.id, __record__label__: responseRecord.label };
236
- responseRecord.fields.forEach(({ name, value }) => {
237
- duRecord[name] = dataUnit.valueFromString(name, value);
238
- });
239
- processedRecords.push(duRecord);
240
- });
241
- resolve({
242
- paginationInfo,
243
- records: processedRecords
244
- });
245
- })
246
- .catch((error) => {
247
- reject(error);
248
- });
249
- });
250
- }
251
- saveData(dataUnit, duChanges) {
252
- const changes = duChanges.map((change) => {
253
- const { dataUnit: changeDU, record, updatingFields, operation } = change;
254
- const dataUnitInstance = DataUnitStorage.get(changeDU);
255
- let parsedUpdatingFields;
256
- if (updatingFields) {
257
- parsedUpdatingFields = Object.entries(updatingFields).map(([fieldName, value]) => {
258
- const descriptor = dataUnitInstance.getField(fieldName);
259
- const dataType = descriptor ? descriptor.dataType : DataType.TEXT;
260
- return { fieldName, dataType, value: dataUnitInstance.valueToString(fieldName, value) };
261
- });
262
- }
263
- const reqChange = { dataUnit: changeDU, fields: parsedUpdatingFields, operation, recordId: record.__record__id__ };
264
- if (change.sourceId) {
265
- reqChange.sourceId = change.sourceId;
266
- }
267
- if (record.__parent__record__id__) {
268
- reqChange.parentRecordId = record.__parent__record__id__;
269
- }
270
- return reqChange;
271
- });
272
- return new Promise((resolve, reject) => {
273
- const changesFormatted = changes.map((_a) => {
274
- var rest = __rest(_a, []);
275
- return rest;
276
- });
277
- DataFetcher.get()
278
- .callGraphQL({
279
- values: { changes: changesFormatted },
280
- query: this.templateByQuery.get("saveData"),
281
- })
282
- .then((resp) => {
283
- const dataUnitRecords = [];
284
- resp === null || resp === void 0 ? void 0 : resp.forEach((responseRecord) => {
285
- const duRecord = {
286
- __record__id__: responseRecord.id,
287
- __record__label__: responseRecord.label,
288
- __owner__dataunit__name__: responseRecord.ownerDataUnitName,
289
- };
290
- const dataUnitInstance = DataUnitStorage.get(duRecord.__owner__dataunit__name__) || dataUnit;
291
- if (responseRecord.oldId) {
292
- duRecord.__old__id__ = responseRecord.oldId;
293
- }
294
- responseRecord.fields.forEach(({ name, value }) => {
295
- var _a;
296
- duRecord[name] = ((_a = dataUnitInstance === null || dataUnitInstance === void 0 ? void 0 : dataUnitInstance.valueFromString) === null || _a === void 0 ? void 0 : _a.call(dataUnitInstance, name, value)) || value;
297
- });
298
- dataUnitRecords.push(duRecord);
299
- });
300
- resolve(dataUnitRecords);
301
- })
302
- .catch((error) => {
303
- reject(error);
304
- });
305
- });
306
- }
307
- getTransientInfo(dataUnit, recordID) {
308
- const { records } = dataUnit.getSelectionInfo();
309
- return Object.entries(records.filter(record => record.__record__id__ == recordID)[0]).filter(([key]) => key.startsWith(DataUnitTransient.DATA_UNIT_TRANSIENT_PREFIX_NAME)).map(([name, value]) => ({ fieldName: name, value, dataType: DataType.TEXT }));
310
- }
311
- removeRecords(dataUnit, recordIds) {
312
- const changes = recordIds.map((recordId) => {
313
- return { dataUnit: dataUnit.name, operation: ChangeOperation.DELETE, recordId, fields: this.getTransientInfo(dataUnit, recordId) };
314
- });
315
- return new Promise((resolve, reject) => {
316
- DataFetcher.get()
317
- .callGraphQL({
318
- values: { changes: changes },
319
- query: this.templateByQuery.get("saveData"),
320
- })
321
- .then((_resp) => {
322
- resolve(recordIds);
323
- })
324
- .catch((error) => {
325
- reject(error);
326
- });
327
- });
328
- }
329
- loadRecord(dataUnit, recordIds) {
330
- return new Promise((resolve, reject) => {
331
- DataFetcher.get()
332
- .callGraphQL({
333
- values: { recordID: recordIds, dataunit: dataUnit.name },
334
- query: this.templateByQuery.get("fetchDataRecord"),
335
- })
336
- .then((response) => {
337
- const dataUnitRecords = [];
338
- response.record.forEach(responseRecord => {
339
- const duRecord = { __record__id__: responseRecord.id, __record__label__: responseRecord.label };
340
- responseRecord.fields.forEach(({ name, value }) => {
341
- duRecord[name] = dataUnit.valueFromString(name, value);
342
- });
343
- dataUnitRecords.push(duRecord);
344
- });
345
- resolve(dataUnitRecords);
346
- })
347
- .catch((error) => {
348
- reject(error);
349
- });
350
- });
351
- }
352
- }
353
-
354
- export { DataUnitFetcher as D };