@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-74406.1 → 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/loader.cjs.js +1 -1
- package/dist/cjs/pesquisa-grid_2.cjs.entry.js +1 -1
- package/dist/cjs/sankhyablocks.cjs.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 +3 -2
- 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-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-crud/snk-crud.js +26 -1
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +3 -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-crud.js +4 -2
- package/dist/components/snk-data-unit2.js +3 -1
- 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/loader.js +1 -1
- package/dist/esm/pesquisa-grid_2.entry.js +1 -1
- package/dist/esm/sankhyablocks.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 +4 -3
- 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-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-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-ca316523.entry.js +1 -0
- package/dist/sankhyablocks/{p-700a4cc3.entry.js → p-ee53b000.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/snk-crud.d.ts +5 -0
- package/dist/types/components.d.ts +9 -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-29d08446.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
|
@@ -4,7 +4,7 @@ const index = require('./index-f9e81701.js');
|
|
|
4
4
|
const core = require('@sankhyalabs/core');
|
|
5
5
|
const utils = require('@sankhyalabs/ezui/dist/collection/utils');
|
|
6
6
|
const SnkMessageBuilder = require('./SnkMessageBuilder-bae64d0d.js');
|
|
7
|
-
const dataunitFetcher = require('./dataunit-fetcher-
|
|
7
|
+
const dataunitFetcher = require('./dataunit-fetcher-449d51a3.js');
|
|
8
8
|
const DataType = require('@sankhyalabs/core/dist/dataunit/metadata/DataType');
|
|
9
9
|
const GetSelectedRecordsIDsInfo = require('./GetSelectedRecordsIDsInfo-bd50caf1.js');
|
|
10
10
|
|
|
@@ -258,7 +258,9 @@ const SnkDataUnit = class {
|
|
|
258
258
|
return new core.DataUnitAction(core.Action.RECORDS_COPIED, this.handleRecordsCopied(action.payload));
|
|
259
259
|
}
|
|
260
260
|
async interceptDataChange(action) {
|
|
261
|
-
|
|
261
|
+
var _a;
|
|
262
|
+
const recordId = (_a = this.dataUnit.getSelectedRecord()) === null || _a === void 0 ? void 0 : _a.__record__id__;
|
|
263
|
+
if (this.isAllowed("UPDATE") || this.dataUnit.isNewRecord(recordId)) {
|
|
262
264
|
return action;
|
|
263
265
|
}
|
|
264
266
|
if (this._openedAlert) {
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const snkDataUnit = require('./snk-data-unit-
|
|
5
|
+
const snkDataUnit = require('./snk-data-unit-bbd384bf.js');
|
|
6
6
|
require('./index-f9e81701.js');
|
|
7
7
|
require('@sankhyalabs/core');
|
|
8
8
|
require('@sankhyalabs/ezui/dist/collection/utils');
|
|
9
9
|
require('./SnkMessageBuilder-bae64d0d.js');
|
|
10
|
-
require('./dataunit-fetcher-
|
|
10
|
+
require('./dataunit-fetcher-449d51a3.js');
|
|
11
11
|
require('./DataFetcher-65879b2c.js');
|
|
12
12
|
require('./PrintUtils-bcaeb82f.js');
|
|
13
13
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
|
@@ -12,12 +12,12 @@ const index$1 = require('./index-e3e39724.js');
|
|
|
12
12
|
require('./ISave-e91b70a7.js');
|
|
13
13
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
14
14
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
|
15
|
-
require('./dataunit-fetcher-
|
|
15
|
+
require('./dataunit-fetcher-449d51a3.js');
|
|
16
16
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
|
17
17
|
require('./form-config-fetcher-90126e4c.js');
|
|
18
18
|
const constants = require('./constants-241934b3.js');
|
|
19
19
|
const taskbarElements = require('./taskbar-elements-7e19882d.js');
|
|
20
|
-
const snkGuidesViewer = require('./snk-guides-viewer-
|
|
20
|
+
const snkGuidesViewer = require('./snk-guides-viewer-5396062f.js');
|
|
21
21
|
const SnkMessageBuilder = require('./SnkMessageBuilder-bae64d0d.js');
|
|
22
22
|
require('./ConfigStorage-d024aec8.js');
|
|
23
23
|
require('./PrintUtils-bcaeb82f.js');
|
|
@@ -9,14 +9,14 @@ const ConfigStorage = require('./ConfigStorage-d024aec8.js');
|
|
|
9
9
|
const index$1 = require('./index-e3e39724.js');
|
|
10
10
|
const fieldSearch = require('./field-search-68e34bf4.js');
|
|
11
11
|
const index$2 = require('./index-102ba62d.js');
|
|
12
|
-
const ClientSideExporterProvider = require('./ClientSideExporterProvider-
|
|
12
|
+
const ClientSideExporterProvider = require('./ClientSideExporterProvider-2f5f350c.js');
|
|
13
13
|
const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
|
|
14
14
|
require('./DataFetcher-65879b2c.js');
|
|
15
15
|
require('./pesquisa-fetcher-5c583c93.js');
|
|
16
16
|
require('./ISave-e91b70a7.js');
|
|
17
17
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
18
18
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
|
19
|
-
require('./dataunit-fetcher-
|
|
19
|
+
require('./dataunit-fetcher-449d51a3.js');
|
|
20
20
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
|
21
21
|
require('./form-config-fetcher-90126e4c.js');
|
|
22
22
|
require('./constants-241934b3.js');
|
|
@@ -13,7 +13,7 @@ const index$1 = require('./index-e3e39724.js');
|
|
|
13
13
|
require('./ISave-e91b70a7.js');
|
|
14
14
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
15
15
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
|
16
|
-
require('./dataunit-fetcher-
|
|
16
|
+
require('./dataunit-fetcher-449d51a3.js');
|
|
17
17
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
|
18
18
|
require('./form-config-fetcher-90126e4c.js');
|
|
19
19
|
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-
|
|
5
|
+
const snkGuidesViewer = require('./snk-guides-viewer-5396062f.js');
|
|
6
6
|
require('./index-f9e81701.js');
|
|
7
7
|
require('@sankhyalabs/core');
|
|
8
8
|
require('./SnkFormConfigManager-c11d8468.js');
|
|
@@ -21,7 +21,7 @@ require('./index-102ba62d.js');
|
|
|
21
21
|
require('./pesquisa-fetcher-5c583c93.js');
|
|
22
22
|
require('./ISave-e91b70a7.js');
|
|
23
23
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
24
|
-
require('./dataunit-fetcher-
|
|
24
|
+
require('./dataunit-fetcher-449d51a3.js');
|
|
25
25
|
require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
|
|
26
26
|
require('@sankhyalabs/core/dist/utils/SortingUtils');
|
|
27
27
|
require('./ResourceIDUtils-5ff86aa7.js');
|
|
@@ -10,7 +10,7 @@ require('./index-e3e39724.js');
|
|
|
10
10
|
require('./ISave-e91b70a7.js');
|
|
11
11
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
12
12
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
|
13
|
-
require('./dataunit-fetcher-
|
|
13
|
+
require('./dataunit-fetcher-449d51a3.js');
|
|
14
14
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
|
15
15
|
require('./form-config-fetcher-90126e4c.js');
|
|
16
16
|
require('./constants-241934b3.js');
|
|
@@ -9,12 +9,12 @@ const constants = require('./constants-241934b3.js');
|
|
|
9
9
|
const taskbarElements = require('./taskbar-elements-7e19882d.js');
|
|
10
10
|
require('./DataFetcher-65879b2c.js');
|
|
11
11
|
require('./pesquisa-fetcher-5c583c93.js');
|
|
12
|
-
const ClientSideExporterProvider = require('./ClientSideExporterProvider-
|
|
12
|
+
const ClientSideExporterProvider = require('./ClientSideExporterProvider-2f5f350c.js');
|
|
13
13
|
const index$1 = require('./index-e3e39724.js');
|
|
14
14
|
require('./ISave-e91b70a7.js');
|
|
15
15
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
|
16
16
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
|
17
|
-
const dataunitFetcher = require('./dataunit-fetcher-
|
|
17
|
+
const dataunitFetcher = require('./dataunit-fetcher-449d51a3.js');
|
|
18
18
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
|
19
19
|
const formConfigFetcher = require('./form-config-fetcher-90126e4c.js');
|
|
20
20
|
const fieldSearch = require('./field-search-68e34bf4.js');
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { Action, ApplicationContext, StringUtils, } from '@sankhyalabs/core';
|
|
1
|
+
import { Action, ApplicationContext, DataUnitLoaderUtils, StringUtils, } from '@sankhyalabs/core';
|
|
2
2
|
import { SaveErrorsEnum } from '../../../../../lib/http/data-fetcher/fetchers/AttachFetcher/interfaces';
|
|
3
3
|
import { AutorizationType } from '../../../../../lib/http/data-fetcher/fetchers/auth-fetcher';
|
|
4
4
|
import { attachFetcherMetadataBuilder } from '../../builder/attach-crud-config.builder';
|
|
5
5
|
import { VIEW_MODE } from '../../../../../lib/utils/constants';
|
|
6
|
-
import { buildLoadDataResponse } from '../../../../../lib/dataUnit/dataUnitInMemoryUtils';
|
|
7
6
|
const SERVICE_LOAD = "Attach.load";
|
|
8
7
|
export class AttachFetcherDataUnitFactory {
|
|
9
8
|
constructor(getMessage) {
|
|
@@ -49,7 +48,7 @@ export class AttachFetcherDataUnitFactory {
|
|
|
49
48
|
});
|
|
50
49
|
this._records = records;
|
|
51
50
|
}
|
|
52
|
-
return buildLoadDataResponse(this._records, dataUnit, request);
|
|
51
|
+
return DataUnitLoaderUtils.buildLoadDataResponse(this._records, dataUnit, request);
|
|
53
52
|
}
|
|
54
53
|
saveLoader(changes, fetcher) {
|
|
55
54
|
return new Promise((resolve) => {
|
|
@@ -4,6 +4,7 @@ import { TaskbarElement } from '../snk-taskbar/elements/taskbar-elements';
|
|
|
4
4
|
import { PresentationMode } from '../../lib';
|
|
5
5
|
import { VIEW_MODE } from '../../lib/utils/constants';
|
|
6
6
|
import { AutorizationType } from '../../lib/http/data-fetcher/fetchers/auth-fetcher';
|
|
7
|
+
import { ExporterStrategy } from '../../lib/@types';
|
|
7
8
|
/**
|
|
8
9
|
* É possível customizar as mensagens dos blocos de construção através de um pequeno modulo na estrutura da aplicação:
|
|
9
10
|
* - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
|
|
@@ -45,6 +46,7 @@ export class SnkCrud {
|
|
|
45
46
|
this.domainMessagesBuilder = undefined;
|
|
46
47
|
this.ignoreReadOnlyFormFields = undefined;
|
|
47
48
|
this.setCustomFormTitle = undefined;
|
|
49
|
+
this.strategyExporter = ExporterStrategy.SERVER_SIDE;
|
|
48
50
|
this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
|
|
49
51
|
}
|
|
50
52
|
/**
|
|
@@ -380,7 +382,7 @@ export class SnkCrud {
|
|
|
380
382
|
return;
|
|
381
383
|
}
|
|
382
384
|
this._snkDataUnit.ignoreSaveMessage = (this._currentViewMode === VIEW_MODE.GRID && !this.enableGridInsert);
|
|
383
|
-
return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", { class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full ez-padding--medium' }, h("snk-grid", { ref: (ref) => this._snkGrid = ref, class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full', filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick, enableLockManagerLoadingComp: this.enableLockManagerLoadingComp }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
|
|
385
|
+
return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", { class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full ez-padding--medium' }, h("snk-grid", { ref: (ref) => this._snkGrid = ref, class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full', filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick, enableLockManagerLoadingComp: this.enableLockManagerLoadingComp, strategyExporter: this.strategyExporter }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
|
|
384
386
|
}
|
|
385
387
|
static get is() { return "snk-crud"; }
|
|
386
388
|
static get encapsulation() { return "scoped"; }
|
|
@@ -839,6 +841,29 @@ export class SnkCrud {
|
|
|
839
841
|
"tags": [],
|
|
840
842
|
"text": "Define uma fun\u00E7\u00E3o para configurar um t\u00EDtulo cusotmizado no modo formul\u00E1rio."
|
|
841
843
|
}
|
|
844
|
+
},
|
|
845
|
+
"strategyExporter": {
|
|
846
|
+
"type": "string",
|
|
847
|
+
"mutable": true,
|
|
848
|
+
"complexType": {
|
|
849
|
+
"original": "IExporterStrategyMode",
|
|
850
|
+
"resolved": "\"ClientSideExporterStrategy\" | \"ServerSideExporterStrategy\"",
|
|
851
|
+
"references": {
|
|
852
|
+
"IExporterStrategyMode": {
|
|
853
|
+
"location": "import",
|
|
854
|
+
"path": "../snk-data-exporter/interfaces/IRecordID"
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
},
|
|
858
|
+
"required": false,
|
|
859
|
+
"optional": false,
|
|
860
|
+
"docs": {
|
|
861
|
+
"tags": [],
|
|
862
|
+
"text": "Modo de exporta\u00E7\u00E3o dos dados."
|
|
863
|
+
},
|
|
864
|
+
"attribute": "strategy-exporter",
|
|
865
|
+
"reflect": false,
|
|
866
|
+
"defaultValue": "ExporterStrategy.SERVER_SIDE"
|
|
842
867
|
}
|
|
843
868
|
};
|
|
844
869
|
}
|
|
@@ -251,7 +251,9 @@ export class SnkDataUnit {
|
|
|
251
251
|
return new DataUnitAction(Action.RECORDS_COPIED, this.handleRecordsCopied(action.payload));
|
|
252
252
|
}
|
|
253
253
|
async interceptDataChange(action) {
|
|
254
|
-
|
|
254
|
+
var _a;
|
|
255
|
+
const recordId = (_a = this.dataUnit.getSelectedRecord()) === null || _a === void 0 ? void 0 : _a.__record__id__;
|
|
256
|
+
if (this.isAllowed("UPDATE") || this.dataUnit.isNewRecord(recordId)) {
|
|
255
257
|
return action;
|
|
256
258
|
}
|
|
257
259
|
if (this._openedAlert) {
|
|
@@ -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 };
|