@sankhyalabs/sankhyablocks 8.8.0 → 8.8.2

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 (58) hide show
  1. package/dist/cjs/{PreloadManager-e26d237f.js → PreloadManager-84466da6.js} +2 -2
  2. package/dist/cjs/{SnkMultiSelectionListDataSource-d74d2336.js → SnkMultiSelectionListDataSource-ba5838c2.js} +1 -1
  3. package/dist/cjs/{dataunit-fetcher-66c0b7af.js → dataunit-fetcher-af1c655d.js} +48 -14
  4. package/dist/cjs/snk-actions-button.cjs.entry.js +2 -2
  5. package/dist/cjs/snk-application.cjs.entry.js +2 -2
  6. package/dist/cjs/snk-attach.cjs.entry.js +2 -2
  7. package/dist/cjs/snk-crud.cjs.entry.js +2 -2
  8. package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
  9. package/dist/cjs/{snk-data-unit-3e4d0c09.js → snk-data-unit-3e5301b1.js} +13 -0
  10. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  11. package/dist/cjs/snk-detail-view.cjs.entry.js +3 -3
  12. package/dist/cjs/snk-grid.cjs.entry.js +2 -2
  13. package/dist/cjs/{snk-guides-viewer-b173ce35.js → snk-guides-viewer-df1cc4d6.js} +2 -2
  14. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
  15. package/dist/cjs/snk-simple-crud.cjs.entry.js +3 -3
  16. package/dist/collection/components/snk-data-unit/snk-data-unit.js +14 -1
  17. package/dist/collection/lib/dataUnit/InMemoryLoader.js +49 -14
  18. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +2 -2
  19. package/dist/components/dataunit-fetcher.js +49 -16
  20. package/dist/components/snk-data-unit2.js +14 -1
  21. package/dist/esm/{PreloadManager-8826b96a.js → PreloadManager-c1c2f2b4.js} +2 -2
  22. package/dist/esm/{SnkMultiSelectionListDataSource-27572f47.js → SnkMultiSelectionListDataSource-44494b0e.js} +1 -1
  23. package/dist/esm/{dataunit-fetcher-831feb12.js → dataunit-fetcher-d5e6cc8c.js} +49 -15
  24. package/dist/esm/snk-actions-button.entry.js +2 -2
  25. package/dist/esm/snk-application.entry.js +2 -2
  26. package/dist/esm/snk-attach.entry.js +2 -2
  27. package/dist/esm/snk-crud.entry.js +2 -2
  28. package/dist/esm/snk-data-exporter.entry.js +1 -1
  29. package/dist/esm/{snk-data-unit-5eb68408.js → snk-data-unit-f2a15a58.js} +14 -1
  30. package/dist/esm/snk-data-unit.entry.js +1 -1
  31. package/dist/esm/snk-detail-view.entry.js +3 -3
  32. package/dist/esm/snk-grid.entry.js +2 -2
  33. package/dist/esm/{snk-guides-viewer-e62e0edc.js → snk-guides-viewer-d2ebe7c0.js} +2 -2
  34. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  35. package/dist/esm/snk-simple-crud.entry.js +3 -3
  36. package/dist/sankhyablocks/{p-a1cce4f5.entry.js → p-056cb6c4.entry.js} +1 -1
  37. package/dist/sankhyablocks/{p-3ccb321d.entry.js → p-05f6c9dc.entry.js} +1 -1
  38. package/dist/sankhyablocks/{p-3c4f0354.js → p-094c30cb.js} +1 -1
  39. package/dist/sankhyablocks/{p-747043a5.entry.js → p-3a2308a1.entry.js} +1 -1
  40. package/dist/sankhyablocks/p-3eb28447.entry.js +1 -0
  41. package/dist/sankhyablocks/{p-d32fe25e.js → p-5bb4c940.js} +1 -1
  42. package/dist/sankhyablocks/{p-f1743d68.entry.js → p-653dc767.entry.js} +1 -1
  43. package/dist/sankhyablocks/{p-95b05e58.entry.js → p-79a2bcfa.entry.js} +1 -1
  44. package/dist/sankhyablocks/{p-f2e798f1.entry.js → p-7a85dcd3.entry.js} +1 -1
  45. package/dist/sankhyablocks/p-7f4435e2.js +60 -0
  46. package/dist/sankhyablocks/{p-eb1561bf.entry.js → p-8fcc3171.entry.js} +1 -1
  47. package/dist/sankhyablocks/p-c22c1d8e.js +1 -0
  48. package/dist/sankhyablocks/{p-862e5bf6.entry.js → p-da655ca9.entry.js} +1 -1
  49. package/dist/sankhyablocks/{p-72b32e25.entry.js → p-f661e804.entry.js} +1 -1
  50. package/dist/sankhyablocks/p-fdbe389e.js +1 -0
  51. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  52. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
  53. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +3 -0
  54. package/package.json +1 -1
  55. package/dist/sankhyablocks/p-0123f169.js +0 -1
  56. package/dist/sankhyablocks/p-5f6113c8.js +0 -60
  57. package/dist/sankhyablocks/p-77756526.js +0 -1
  58. package/dist/sankhyablocks/p-9af040ba.entry.js +0 -1
@@ -122,7 +122,7 @@ class PreloadManager {
122
122
  let filterFunction;
123
123
  const request = dataUnit.getLastLoadRequest();
124
124
  if (request != undefined) {
125
- const columnFilters = utils.ColumnFilterManager.getColumnFilters(request.filters);
125
+ const columnFilters = utils.ColumnFilterManager.getColumnFilters(request.filters, fieldName);
126
126
  filterFunction = utils.ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
127
127
  }
128
128
  return new Promise((accept, reject) => {
@@ -197,7 +197,7 @@ class PreloadManager {
197
197
  }
198
198
  static async loadFromCache(dataUnit, request) {
199
199
  return new Promise((accept, reject) => {
200
- const columnFilters = utils.ColumnFilterManager.getColumnFilters(request.filters);
200
+ const columnFilters = utils.ColumnFilterManager.getColumnFilters(request.filters, "");
201
201
  const { limit, offset, sort } = request;
202
202
  PreloadManager.getRepository(dataUnit)
203
203
  .load(utils.ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values())), PreloadManager.getSortingFunction(dataUnit, sort), offset, limit)
@@ -2,7 +2,7 @@
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
4
  const InMemoryFilterColumnDataSource = require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource');
5
- const PreloadManager = require('./PreloadManager-e26d237f.js');
5
+ const PreloadManager = require('./PreloadManager-84466da6.js');
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -4,8 +4,9 @@ const core = require('@sankhyalabs/core');
4
4
  const DataFetcher = require('./DataFetcher-713f0749.js');
5
5
  const constants = require('@sankhyalabs/ezui/dist/collection/utils/constants');
6
6
  const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
7
- const PreloadManager = require('./PreloadManager-e26d237f.js');
7
+ const PreloadManager = require('./PreloadManager-84466da6.js');
8
8
  const ResourceIDUtils = require('./ResourceIDUtils-5ff86aa7.js');
9
+ const utils = require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
9
10
 
10
11
  class InMemoryLoader {
11
12
  constructor(metadata, records) {
@@ -13,21 +14,16 @@ class InMemoryLoader {
13
14
  this.records = records;
14
15
  this._dataUnit = new core.DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
15
16
  this._dataUnit.metadataLoader = () => this.metadaLoader();
16
- this._dataUnit.dataLoader = (dataUnit, request) => core.defaultDataLoader(dataUnit, request, this.getRecordsToLoad());
17
+ this._dataUnit.dataLoader = (dataUnit, request) => this.inMemoryLoader(dataUnit, request, this.getRecordsToLoad());
17
18
  this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
18
19
  this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
19
20
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
20
21
  }
21
22
  getRecordsToLoad() {
22
- if (this._initialRecords) {
23
- try {
24
- return this._initialRecords;
25
- }
26
- finally {
27
- this._initialRecords = undefined;
28
- }
23
+ if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
24
+ this._initialRecords = this.dataUnit.records;
29
25
  }
30
- return this.dataUnit.records;
26
+ return this._initialRecords;
31
27
  }
32
28
  get dataUnit() {
33
29
  return this._dataUnit;
@@ -63,11 +59,10 @@ class InMemoryLoader {
63
59
  }
64
60
  return record;
65
61
  });
62
+ this._initialRecords = newRecords;
66
63
  if (this._dataUnit) {
67
- this._dataUnit.records = newRecords;
68
- }
69
- else {
70
- this._initialRecords = newRecords;
64
+ //Isso força o refresh internamente no datunit
65
+ this._dataUnit.gotoPage(0);
71
66
  }
72
67
  }
73
68
  get metadata() {
@@ -82,6 +77,32 @@ class InMemoryLoader {
82
77
  generateUniqueId() {
83
78
  return core.StringUtils.generateUUID();
84
79
  }
80
+ inMemoryLoader(dataUnit, request, recordsIn) {
81
+ let records = this.applyFilter(recordsIn, dataUnit, request.filters);
82
+ records = this.applySorting(records, dataUnit, request.sort);
83
+ return Promise.resolve({ records, paginationInfo: buildPaginationInfo(request, records) });
84
+ }
85
+ applyFilter(records, dataUnit, filters) {
86
+ const columnFilters = utils.ColumnFilterManager.getColumnFilters(filters, "");
87
+ if (columnFilters == undefined || columnFilters.size == 0) {
88
+ return records;
89
+ }
90
+ const filterFunciton = utils.ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
91
+ if (filterFunciton == undefined) {
92
+ return records;
93
+ }
94
+ return records.filter(filterFunciton);
95
+ }
96
+ applySorting(records, dataUnit, sorting) {
97
+ if (sorting == undefined || sorting.length == 0) {
98
+ return records;
99
+ }
100
+ const sortingFunction = PreloadManager.PreloadManager.getSortingFunction(dataUnit, sorting);
101
+ if (sortingFunction == undefined) {
102
+ return records;
103
+ }
104
+ return records.sort(sortingFunction);
105
+ }
85
106
  metadaLoader() {
86
107
  return Promise.resolve(this._metadata);
87
108
  }
@@ -113,6 +134,19 @@ class InMemoryLoader {
113
134
  }
114
135
  }
115
136
  InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
137
+ function buildPaginationInfo({ offset, limit }, records) {
138
+ if (offset === undefined || limit === undefined) {
139
+ return undefined;
140
+ }
141
+ const lastRecord = Math.min(offset + limit, records.length);
142
+ return {
143
+ currentPage: Math.ceil(offset / limit),
144
+ firstRecord: offset,
145
+ lastRecord: lastRecord,
146
+ total: records.length,
147
+ hasMore: !!(records.length - lastRecord),
148
+ };
149
+ }
116
150
 
117
151
  class DatasetStrategy {
118
152
  canSlice() {
@@ -11,8 +11,8 @@ require('./index-0e663819.js');
11
11
  require('./ISave-d68ce3cd.js');
12
12
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
13
13
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
14
- require('./dataunit-fetcher-66c0b7af.js');
15
- require('./PreloadManager-e26d237f.js');
14
+ require('./dataunit-fetcher-af1c655d.js');
15
+ require('./PreloadManager-84466da6.js');
16
16
  require('./filter-item-type.enum-aa823a00.js');
17
17
  require('./form-config-fetcher-17775a75.js');
18
18
  const ResourceIDUtils = require('./ResourceIDUtils-5ff86aa7.js');
@@ -8,7 +8,7 @@ const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
8
  const ConfigStorage = require('./ConfigStorage-c15716fd.js');
9
9
  const DataFetcher = require('./DataFetcher-713f0749.js');
10
10
  const authFetcher = require('./auth-fetcher-555ff856.js');
11
- const dataunitFetcher = require('./dataunit-fetcher-66c0b7af.js');
11
+ const dataunitFetcher = require('./dataunit-fetcher-af1c655d.js');
12
12
  const pesquisaFetcher = require('./pesquisa-fetcher-34922b83.js');
13
13
  const SnkMessageBuilder = require('./SnkMessageBuilder-dbc8d14e.js');
14
14
  require('./form-config-fetcher-17775a75.js');
@@ -17,7 +17,7 @@ require('./_commonjsHelpers-537d719a.js');
17
17
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
18
18
  require('./PrintUtils-bcaeb82f.js');
19
19
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
20
- require('./PreloadManager-e26d237f.js');
20
+ require('./PreloadManager-84466da6.js');
21
21
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
22
22
  require('./ResourceIDUtils-5ff86aa7.js');
23
23
 
@@ -7,13 +7,13 @@ const core = require('@sankhyalabs/core');
7
7
  const DataFetcher = require('./DataFetcher-713f0749.js');
8
8
  const ISave = require('./ISave-d68ce3cd.js');
9
9
  const constants = require('./constants-d187e03e.js');
10
- const dataunitFetcher = require('./dataunit-fetcher-66c0b7af.js');
10
+ const dataunitFetcher = require('./dataunit-fetcher-af1c655d.js');
11
11
  const taskbarElements = require('./taskbar-elements-39949c7a.js');
12
12
  require('./_commonjsHelpers-537d719a.js');
13
13
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
14
14
  require('./PrintUtils-bcaeb82f.js');
15
15
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
16
- require('./PreloadManager-e26d237f.js');
16
+ require('./PreloadManager-84466da6.js');
17
17
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
18
18
  require('./ResourceIDUtils-5ff86aa7.js');
19
19
  require('./index-0e663819.js');
@@ -11,8 +11,8 @@ const index$1 = require('./index-0e663819.js');
11
11
  require('./ISave-d68ce3cd.js');
12
12
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
13
13
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
14
- require('./dataunit-fetcher-66c0b7af.js');
15
- require('./PreloadManager-e26d237f.js');
14
+ require('./dataunit-fetcher-af1c655d.js');
15
+ require('./PreloadManager-84466da6.js');
16
16
  require('./filter-item-type.enum-aa823a00.js');
17
17
  require('./form-config-fetcher-17775a75.js');
18
18
  const constants = require('./constants-d187e03e.js');
@@ -8,7 +8,7 @@ const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
8
  const index = require('./index-0e663819.js');
9
9
  const constants = require('./constants-d187e03e.js');
10
10
  const DataFetcher = require('./DataFetcher-713f0749.js');
11
- const snkDataUnit = require('./snk-data-unit-3e4d0c09.js');
11
+ const snkDataUnit = require('./snk-data-unit-3e5301b1.js');
12
12
  require('./_commonjsHelpers-537d719a.js');
13
13
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
14
14
  require('./PrintUtils-bcaeb82f.js');
@@ -164,6 +164,10 @@ const SnkDataUnit = class {
164
164
  }
165
165
  return selectedRecordsIDsInfo;
166
166
  }
167
+ getCleanOnCopyFields() {
168
+ var _a;
169
+ return (_a = this.dataUnit.metadata) === null || _a === void 0 ? void 0 : _a.fields.filter(field => { var _a; return (_a = field.properties) === null || _a === void 0 ? void 0 : _a.cleanOnCopy; }).map(field => field.name);
170
+ }
167
171
  async interceptAction(action) {
168
172
  return new Promise(resolve => {
169
173
  var _a, _b, _c, _d, _e;
@@ -178,6 +182,15 @@ const SnkDataUnit = class {
178
182
  break;
179
183
  case core.Action.RECORDS_COPIED:
180
184
  if (this.isAllowed("CLONE")) {
185
+ const cleanFields = this.getCleanOnCopyFields();
186
+ if (cleanFields.length > 0) {
187
+ const records = action.payload;
188
+ action = new core.DataUnitAction(core.Action.RECORDS_COPIED, records.map(record => {
189
+ const newRecord = Object.assign({}, record);
190
+ cleanFields.forEach(fieldName => delete newRecord[fieldName]);
191
+ return newRecord;
192
+ }));
193
+ }
181
194
  resolve(action);
182
195
  }
183
196
  else {
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const snkDataUnit = require('./snk-data-unit-3e4d0c09.js');
5
+ const snkDataUnit = require('./snk-data-unit-3e5301b1.js');
6
6
  require('./index-f9e81701.js');
7
7
  require('@sankhyalabs/core');
8
8
  require('@sankhyalabs/ezui/dist/collection/utils');
@@ -12,13 +12,13 @@ const index$1 = require('./index-0e663819.js');
12
12
  require('./ISave-d68ce3cd.js');
13
13
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
14
14
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
15
- require('./dataunit-fetcher-66c0b7af.js');
16
- require('./PreloadManager-e26d237f.js');
15
+ require('./dataunit-fetcher-af1c655d.js');
16
+ require('./PreloadManager-84466da6.js');
17
17
  require('./filter-item-type.enum-aa823a00.js');
18
18
  require('./form-config-fetcher-17775a75.js');
19
19
  const taskbarElements = require('./taskbar-elements-39949c7a.js');
20
20
  const constants = require('./constants-d187e03e.js');
21
- const snkGuidesViewer = require('./snk-guides-viewer-b173ce35.js');
21
+ const snkGuidesViewer = require('./snk-guides-viewer-df1cc4d6.js');
22
22
  const SnkMessageBuilder = require('./SnkMessageBuilder-dbc8d14e.js');
23
23
  require('./ConfigStorage-c15716fd.js');
24
24
  require('./_commonjsHelpers-537d719a.js');
@@ -10,7 +10,7 @@ const ConfigStorage = require('./ConfigStorage-c15716fd.js');
10
10
  const index$1 = require('./index-0e663819.js');
11
11
  const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
12
12
  const index$2 = require('./index-102ba62d.js');
13
- const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-d74d2336.js');
13
+ const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-ba5838c2.js');
14
14
  const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
15
15
  require('./form-config-fetcher-17775a75.js');
16
16
  require('./DataFetcher-713f0749.js');
@@ -18,7 +18,7 @@ require('./_commonjsHelpers-537d719a.js');
18
18
  require('./PrintUtils-bcaeb82f.js');
19
19
  require('./filter-item-type.enum-aa823a00.js');
20
20
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource');
21
- require('./PreloadManager-e26d237f.js');
21
+ require('./PreloadManager-84466da6.js');
22
22
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
23
23
 
24
24
  const snkGridCss = ".snk-grid__container.sc-snk-grid{display:flex;height:100%;width:100%}.snk-grid__header.sc-snk-grid{display:flex;flex-wrap:nowrap;width:100%}.snk-grid__filter-bar.sc-snk-grid{width:100%}.snk-grid__header-divider.sc-snk-grid{margin-bottom:var(--space--medium)}.snk-grid__table.sc-snk-grid{min-height:300px}.snk-grid-container__without-shadow.sc-snk-grid{--ezgrid__container--shadow:unset}";
@@ -13,8 +13,8 @@ const index$1 = require('./index-0e663819.js');
13
13
  require('./ISave-d68ce3cd.js');
14
14
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
15
15
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
16
- require('./dataunit-fetcher-66c0b7af.js');
17
- require('./PreloadManager-e26d237f.js');
16
+ require('./dataunit-fetcher-af1c655d.js');
17
+ require('./PreloadManager-84466da6.js');
18
18
  require('./filter-item-type.enum-aa823a00.js');
19
19
  require('./form-config-fetcher-17775a75.js');
20
20
  const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const snkGuidesViewer = require('./snk-guides-viewer-b173ce35.js');
5
+ const snkGuidesViewer = require('./snk-guides-viewer-df1cc4d6.js');
6
6
  require('./index-f9e81701.js');
7
7
  require('@sankhyalabs/core');
8
8
  require('./SnkFormConfigManager-29101e20.js');
@@ -22,8 +22,8 @@ require('./constants-d187e03e.js');
22
22
  require('./pesquisa-fetcher-34922b83.js');
23
23
  require('./ISave-d68ce3cd.js');
24
24
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
25
- require('./dataunit-fetcher-66c0b7af.js');
26
- require('./PreloadManager-e26d237f.js');
25
+ require('./dataunit-fetcher-af1c655d.js');
26
+ require('./PreloadManager-84466da6.js');
27
27
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
28
28
  require('./ResourceIDUtils-5ff86aa7.js');
29
29
  require('@sankhyalabs/core/dist/dataunit/DataUnit');
@@ -12,12 +12,12 @@ const index$1 = require('./index-0e663819.js');
12
12
  require('./ISave-d68ce3cd.js');
13
13
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
14
14
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
15
- const dataunitFetcher = require('./dataunit-fetcher-66c0b7af.js');
16
- require('./PreloadManager-e26d237f.js');
15
+ const dataunitFetcher = require('./dataunit-fetcher-af1c655d.js');
16
+ require('./PreloadManager-84466da6.js');
17
17
  require('./filter-item-type.enum-aa823a00.js');
18
18
  require('./form-config-fetcher-17775a75.js');
19
19
  const taskbarProcessor = require('./taskbar-processor-bce3f499.js');
20
- const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-d74d2336.js');
20
+ const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-ba5838c2.js');
21
21
  require('./index-102ba62d.js');
22
22
  require('./_commonjsHelpers-537d719a.js');
23
23
  require('./PrintUtils-bcaeb82f.js');
@@ -1,5 +1,5 @@
1
1
  import { Host, h } from '@stencil/core';
2
- import { Action, ApplicationContext, ObjectUtils, DataType, JSUtils } from '@sankhyalabs/core';
2
+ import { Action, ApplicationContext, DataUnitAction, ObjectUtils, DataType, JSUtils } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { OperationMap, SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder';
5
5
  export class SnkDataUnit {
@@ -155,6 +155,10 @@ export class SnkDataUnit {
155
155
  }
156
156
  return selectedRecordsIDsInfo;
157
157
  }
158
+ getCleanOnCopyFields() {
159
+ var _a;
160
+ return (_a = this.dataUnit.metadata) === null || _a === void 0 ? void 0 : _a.fields.filter(field => { var _a; return (_a = field.properties) === null || _a === void 0 ? void 0 : _a.cleanOnCopy; }).map(field => field.name);
161
+ }
158
162
  async interceptAction(action) {
159
163
  return new Promise(resolve => {
160
164
  var _a, _b, _c, _d, _e;
@@ -169,6 +173,15 @@ export class SnkDataUnit {
169
173
  break;
170
174
  case Action.RECORDS_COPIED:
171
175
  if (this.isAllowed("CLONE")) {
176
+ const cleanFields = this.getCleanOnCopyFields();
177
+ if (cleanFields.length > 0) {
178
+ const records = action.payload;
179
+ action = new DataUnitAction(Action.RECORDS_COPIED, records.map(record => {
180
+ const newRecord = Object.assign({}, record);
181
+ cleanFields.forEach(fieldName => delete newRecord[fieldName]);
182
+ return newRecord;
183
+ }));
184
+ }
172
185
  resolve(action);
173
186
  }
174
187
  else {
@@ -1,25 +1,22 @@
1
- import { ChangeOperation, DataType, DataUnit, DateUtils, defaultDataLoader, StringUtils, } from '@sankhyalabs/core';
1
+ import { ChangeOperation, DataType, DataUnit, DateUtils, StringUtils, } from '@sankhyalabs/core';
2
+ import { ColumnFilterManager } from "@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";
3
+ import PreloadManager from '../http/data-fetcher/fetchers/data-unit/cache/PreloadManager';
2
4
  export default class InMemoryLoader {
3
5
  constructor(metadata, records) {
4
6
  this.metadata = metadata;
5
7
  this.records = records;
6
8
  this._dataUnit = new DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
7
9
  this._dataUnit.metadataLoader = () => this.metadaLoader();
8
- this._dataUnit.dataLoader = (dataUnit, request) => defaultDataLoader(dataUnit, request, this.getRecordsToLoad());
10
+ this._dataUnit.dataLoader = (dataUnit, request) => this.inMemoryLoader(dataUnit, request, this.getRecordsToLoad());
9
11
  this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
10
12
  this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
11
13
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
12
14
  }
13
15
  getRecordsToLoad() {
14
- if (this._initialRecords) {
15
- try {
16
- return this._initialRecords;
17
- }
18
- finally {
19
- this._initialRecords = undefined;
20
- }
16
+ if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
17
+ this._initialRecords = this.dataUnit.records;
21
18
  }
22
- return this.dataUnit.records;
19
+ return this._initialRecords;
23
20
  }
24
21
  get dataUnit() {
25
22
  return this._dataUnit;
@@ -55,11 +52,10 @@ export default class InMemoryLoader {
55
52
  }
56
53
  return record;
57
54
  });
55
+ this._initialRecords = newRecords;
58
56
  if (this._dataUnit) {
59
- this._dataUnit.records = newRecords;
60
- }
61
- else {
62
- this._initialRecords = newRecords;
57
+ //Isso força o refresh internamente no datunit
58
+ this._dataUnit.gotoPage(0);
63
59
  }
64
60
  }
65
61
  get metadata() {
@@ -74,6 +70,32 @@ export default class InMemoryLoader {
74
70
  generateUniqueId() {
75
71
  return StringUtils.generateUUID();
76
72
  }
73
+ inMemoryLoader(dataUnit, request, recordsIn) {
74
+ let records = this.applyFilter(recordsIn, dataUnit, request.filters);
75
+ records = this.applySorting(records, dataUnit, request.sort);
76
+ return Promise.resolve({ records, paginationInfo: buildPaginationInfo(request, records) });
77
+ }
78
+ applyFilter(records, dataUnit, filters) {
79
+ const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
80
+ if (columnFilters == undefined || columnFilters.size == 0) {
81
+ return records;
82
+ }
83
+ const filterFunciton = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
84
+ if (filterFunciton == undefined) {
85
+ return records;
86
+ }
87
+ return records.filter(filterFunciton);
88
+ }
89
+ applySorting(records, dataUnit, sorting) {
90
+ if (sorting == undefined || sorting.length == 0) {
91
+ return records;
92
+ }
93
+ const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
94
+ if (sortingFunction == undefined) {
95
+ return records;
96
+ }
97
+ return records.sort(sortingFunction);
98
+ }
77
99
  metadaLoader() {
78
100
  return Promise.resolve(this._metadata);
79
101
  }
@@ -105,3 +127,16 @@ export default class InMemoryLoader {
105
127
  }
106
128
  }
107
129
  InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
130
+ function buildPaginationInfo({ offset, limit }, records) {
131
+ if (offset === undefined || limit === undefined) {
132
+ return undefined;
133
+ }
134
+ const lastRecord = Math.min(offset + limit, records.length);
135
+ return {
136
+ currentPage: Math.ceil(offset / limit),
137
+ firstRecord: offset,
138
+ lastRecord: lastRecord,
139
+ total: records.length,
140
+ hasMore: !!(records.length - lastRecord),
141
+ };
142
+ }
@@ -39,7 +39,7 @@ export default class PreloadManager {
39
39
  let filterFunction;
40
40
  const request = dataUnit.getLastLoadRequest();
41
41
  if (request != undefined) {
42
- const columnFilters = ColumnFilterManager.getColumnFilters(request.filters);
42
+ const columnFilters = ColumnFilterManager.getColumnFilters(request.filters, fieldName);
43
43
  filterFunction = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
44
44
  }
45
45
  return new Promise((accept, reject) => {
@@ -114,7 +114,7 @@ export default class PreloadManager {
114
114
  }
115
115
  static async loadFromCache(dataUnit, request) {
116
116
  return new Promise((accept, reject) => {
117
- const columnFilters = ColumnFilterManager.getColumnFilters(request.filters);
117
+ const columnFilters = ColumnFilterManager.getColumnFilters(request.filters, "");
118
118
  const { limit, offset, sort } = request;
119
119
  PreloadManager.getRepository(dataUnit)
120
120
  .load(ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values())), PreloadManager.getSortingFunction(dataUnit, sort), offset, limit)
@@ -1,4 +1,4 @@
1
- import { DataType, FieldComparator, SortMode, DataUnit, defaultDataLoader, DateUtils, StringUtils, ChangeOperation, UserInterface, DataUnitStorage } from '@sankhyalabs/core';
1
+ import { DataType, FieldComparator, SortMode, DataUnit, DateUtils, StringUtils, ChangeOperation, UserInterface, DataUnitStorage } from '@sankhyalabs/core';
2
2
  import { d as dist, D as DataFetcher } 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';
@@ -285,7 +285,7 @@ class PreloadManager {
285
285
  let filterFunction;
286
286
  const request = dataUnit.getLastLoadRequest();
287
287
  if (request != undefined) {
288
- const columnFilters = ColumnFilterManager.getColumnFilters(request.filters);
288
+ const columnFilters = ColumnFilterManager.getColumnFilters(request.filters, fieldName);
289
289
  filterFunction = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
290
290
  }
291
291
  return new Promise((accept, reject) => {
@@ -360,7 +360,7 @@ class PreloadManager {
360
360
  }
361
361
  static async loadFromCache(dataUnit, request) {
362
362
  return new Promise((accept, reject) => {
363
- const columnFilters = ColumnFilterManager.getColumnFilters(request.filters);
363
+ const columnFilters = ColumnFilterManager.getColumnFilters(request.filters, "");
364
364
  const { limit, offset, sort } = request;
365
365
  PreloadManager.getRepository(dataUnit)
366
366
  .load(ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values())), PreloadManager.getSortingFunction(dataUnit, sort), offset, limit)
@@ -390,21 +390,16 @@ class InMemoryLoader {
390
390
  this.records = records;
391
391
  this._dataUnit = new DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
392
392
  this._dataUnit.metadataLoader = () => this.metadaLoader();
393
- this._dataUnit.dataLoader = (dataUnit, request) => defaultDataLoader(dataUnit, request, this.getRecordsToLoad());
393
+ this._dataUnit.dataLoader = (dataUnit, request) => this.inMemoryLoader(dataUnit, request, this.getRecordsToLoad());
394
394
  this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
395
395
  this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
396
396
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
397
397
  }
398
398
  getRecordsToLoad() {
399
- if (this._initialRecords) {
400
- try {
401
- return this._initialRecords;
402
- }
403
- finally {
404
- this._initialRecords = undefined;
405
- }
399
+ if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
400
+ this._initialRecords = this.dataUnit.records;
406
401
  }
407
- return this.dataUnit.records;
402
+ return this._initialRecords;
408
403
  }
409
404
  get dataUnit() {
410
405
  return this._dataUnit;
@@ -440,11 +435,10 @@ class InMemoryLoader {
440
435
  }
441
436
  return record;
442
437
  });
438
+ this._initialRecords = newRecords;
443
439
  if (this._dataUnit) {
444
- this._dataUnit.records = newRecords;
445
- }
446
- else {
447
- this._initialRecords = newRecords;
440
+ //Isso força o refresh internamente no datunit
441
+ this._dataUnit.gotoPage(0);
448
442
  }
449
443
  }
450
444
  get metadata() {
@@ -459,6 +453,32 @@ class InMemoryLoader {
459
453
  generateUniqueId() {
460
454
  return StringUtils.generateUUID();
461
455
  }
456
+ inMemoryLoader(dataUnit, request, recordsIn) {
457
+ let records = this.applyFilter(recordsIn, dataUnit, request.filters);
458
+ records = this.applySorting(records, dataUnit, request.sort);
459
+ return Promise.resolve({ records, paginationInfo: buildPaginationInfo(request, records) });
460
+ }
461
+ applyFilter(records, dataUnit, filters) {
462
+ const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
463
+ if (columnFilters == undefined || columnFilters.size == 0) {
464
+ return records;
465
+ }
466
+ const filterFunciton = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
467
+ if (filterFunciton == undefined) {
468
+ return records;
469
+ }
470
+ return records.filter(filterFunciton);
471
+ }
472
+ applySorting(records, dataUnit, sorting) {
473
+ if (sorting == undefined || sorting.length == 0) {
474
+ return records;
475
+ }
476
+ const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
477
+ if (sortingFunction == undefined) {
478
+ return records;
479
+ }
480
+ return records.sort(sortingFunction);
481
+ }
462
482
  metadaLoader() {
463
483
  return Promise.resolve(this._metadata);
464
484
  }
@@ -490,6 +510,19 @@ class InMemoryLoader {
490
510
  }
491
511
  }
492
512
  InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
513
+ function buildPaginationInfo({ offset, limit }, records) {
514
+ if (offset === undefined || limit === undefined) {
515
+ return undefined;
516
+ }
517
+ const lastRecord = Math.min(offset + limit, records.length);
518
+ return {
519
+ currentPage: Math.ceil(offset / limit),
520
+ firstRecord: offset,
521
+ lastRecord: lastRecord,
522
+ total: records.length,
523
+ hasMore: !!(records.length - lastRecord),
524
+ };
525
+ }
493
526
 
494
527
  class DatasetStrategy {
495
528
  canSlice() {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { Action, ObjectUtils, JSUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
2
+ import { Action, ObjectUtils, JSUtils, DataUnitAction, ApplicationContext, DataType } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { O as OperationMap, S as SnkMessageBuilder } from './SnkMessageBuilder.js';
5
5
 
@@ -163,6 +163,10 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
163
163
  }
164
164
  return selectedRecordsIDsInfo;
165
165
  }
166
+ getCleanOnCopyFields() {
167
+ var _a;
168
+ return (_a = this.dataUnit.metadata) === null || _a === void 0 ? void 0 : _a.fields.filter(field => { var _a; return (_a = field.properties) === null || _a === void 0 ? void 0 : _a.cleanOnCopy; }).map(field => field.name);
169
+ }
166
170
  async interceptAction(action) {
167
171
  return new Promise(resolve => {
168
172
  var _a, _b, _c, _d, _e;
@@ -177,6 +181,15 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
177
181
  break;
178
182
  case Action.RECORDS_COPIED:
179
183
  if (this.isAllowed("CLONE")) {
184
+ const cleanFields = this.getCleanOnCopyFields();
185
+ if (cleanFields.length > 0) {
186
+ const records = action.payload;
187
+ action = new DataUnitAction(Action.RECORDS_COPIED, records.map(record => {
188
+ const newRecord = Object.assign({}, record);
189
+ cleanFields.forEach(fieldName => delete newRecord[fieldName]);
190
+ return newRecord;
191
+ }));
192
+ }
180
193
  resolve(action);
181
194
  }
182
195
  else {
@@ -120,7 +120,7 @@ class PreloadManager {
120
120
  let filterFunction;
121
121
  const request = dataUnit.getLastLoadRequest();
122
122
  if (request != undefined) {
123
- const columnFilters = ColumnFilterManager.getColumnFilters(request.filters);
123
+ const columnFilters = ColumnFilterManager.getColumnFilters(request.filters, fieldName);
124
124
  filterFunction = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
125
125
  }
126
126
  return new Promise((accept, reject) => {
@@ -195,7 +195,7 @@ class PreloadManager {
195
195
  }
196
196
  static async loadFromCache(dataUnit, request) {
197
197
  return new Promise((accept, reject) => {
198
- const columnFilters = ColumnFilterManager.getColumnFilters(request.filters);
198
+ const columnFilters = ColumnFilterManager.getColumnFilters(request.filters, "");
199
199
  const { limit, offset, sort } = request;
200
200
  PreloadManager.getRepository(dataUnit)
201
201
  .load(ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values())), PreloadManager.getSortingFunction(dataUnit, sort), offset, limit)