@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-50122.0 → 0.0.0-bugfix-dev-KB-53946.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/{ConfigStorage-8d4e9d53.js → ConfigStorage-085c7117.js} +11 -12
- package/dist/cjs/{SnkMultiSelectionListDataSource-1438f8f2.js → IExporterProvider-f50b6846.js} +52 -5
- package/dist/cjs/RecordIDUtils-3735135c.js +43 -0
- package/dist/cjs/{SnkFormConfigManager-33995e92.js → SnkFormConfigManager-8986431f.js} +2 -2
- package/dist/cjs/{SnkMessageBuilder-141aa18d.js → SnkMessageBuilder-66aa2557.js} +4 -0
- package/dist/cjs/{auth-fetcher-bb8e9ae4.js → auth-fetcher-eddaf17f.js} +1 -1
- package/dist/cjs/{DataFetcher-99f0f6ed.js → form-config-fetcher-cdd644a7.js} +251 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{pesquisa-fetcher-94f6b316.js → pesquisa-fetcher-90b801fb.js} +79 -55
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-actions-button_4.cjs.entry.js +9 -9
- package/dist/cjs/snk-application.cjs.entry.js +24 -24
- package/dist/cjs/snk-attach.cjs.entry.js +73 -52
- package/dist/cjs/snk-crud.cjs.entry.js +5 -5
- package/dist/cjs/snk-data-exporter.cjs.entry.js +199 -81
- package/dist/cjs/{snk-data-unit-6026a9f7.js → snk-data-unit-abd2113f.js} +3 -38
- package/dist/cjs/snk-data-unit.cjs.entry.js +3 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +8 -8
- package/dist/cjs/snk-filter-bar.cjs.entry.js +23 -7
- package/dist/cjs/snk-filter-detail.cjs.entry.js +4 -1
- package/dist/cjs/snk-filter-item.cjs.entry.js +10 -6
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -3
- package/dist/cjs/snk-form-config.cjs.entry.js +1 -2
- package/dist/cjs/snk-form.cjs.entry.js +3 -4
- package/dist/cjs/snk-grid.cjs.entry.js +66 -102
- package/dist/cjs/{snk-guides-viewer-25721856.js → snk-guides-viewer-e4c8ee66.js} +4 -5
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -7
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -3
- package/dist/cjs/snk-simple-crud.cjs.entry.js +144 -36
- package/dist/cjs/snk-taskbar.cjs.entry.js +3 -2
- package/dist/cjs/{taskbar-elements-3ecd1278.js → taskbar-elements-d9392685.js} +2 -2
- package/dist/collection/components/snk-attach/snk-attach.js +39 -24
- package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +1 -1
- package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +29 -22
- package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +90 -0
- package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +68 -0
- package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +48 -1
- package/dist/collection/components/snk-data-exporter/interfaces/IExporterStrategy.js +1 -0
- package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +53 -0
- package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +55 -0
- package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +37 -47
- package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +88 -0
- package/dist/collection/components/snk-data-exporter/utils/RecordIDUtils.js +38 -0
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +3 -42
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +22 -1
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +28 -6
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +2 -1
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +20 -3
- package/dist/collection/components/snk-grid/snk-grid.js +3 -94
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +5 -2
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +126 -14
- package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +2 -2
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +2 -1
- package/dist/collection/lib/dataUnit/InMemoryLoader.js +10 -41
- package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +33 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +3 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +4 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +10 -2
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +1 -0
- package/dist/collection/lib/message/resources/snk-simple-crud.msg.js +4 -0
- package/dist/components/ConfigStorage.js +1 -2
- package/dist/components/{field-search.js → IExporterProvider.js} +52 -7
- package/dist/components/ISave.js +42 -0
- package/dist/components/SnkMessageBuilder.js +4 -0
- package/dist/components/dataunit-fetcher.js +61 -44
- package/dist/components/form-config-fetcher.js +7022 -3
- package/dist/components/index2.js +198 -33
- package/dist/components/snk-actions-button2.js +3 -12
- package/dist/components/snk-application2.js +1 -1
- package/dist/components/snk-attach2.js +64 -44
- package/dist/components/snk-crud.js +3 -4
- package/dist/components/snk-data-exporter2.js +194 -81
- package/dist/components/snk-data-unit2.js +41 -39
- package/dist/components/snk-detail-view2.js +4 -5
- package/dist/components/snk-expression-item2.js +1 -1
- package/dist/components/snk-filter-bar2.js +21 -4
- package/dist/components/snk-filter-detail2.js +5 -1
- package/dist/components/snk-filter-item2.js +11 -6
- package/dist/components/snk-form-config2.js +1 -1
- package/dist/components/snk-grid2.js +63 -100
- package/dist/components/snk-personalized-filter2.js +1 -1
- package/dist/components/snk-simple-crud2.js +133 -23
- package/dist/components/snk-taskbar2.js +6 -5
- package/dist/esm/{ConfigStorage-6e241cd7.js → ConfigStorage-cc3f3dd3.js} +1 -2
- package/dist/esm/{SnkMultiSelectionListDataSource-aad5d4ff.js → IExporterProvider-9e6e0071.js} +52 -6
- package/dist/esm/RecordIDUtils-87d02110.js +41 -0
- package/dist/esm/{SnkFormConfigManager-7a4e678f.js → SnkFormConfigManager-7edda7eb.js} +2 -2
- package/dist/esm/{SnkMessageBuilder-9747ddd2.js → SnkMessageBuilder-0a4becdd.js} +4 -0
- package/dist/esm/{auth-fetcher-8ec448b0.js → auth-fetcher-11dd9cae.js} +1 -1
- package/dist/esm/{DataFetcher-a650ae58.js → form-config-fetcher-13cd3285.js} +250 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{pesquisa-fetcher-f05a12ca.js → pesquisa-fetcher-d785663b.js} +61 -44
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-actions-button_4.entry.js +4 -4
- package/dist/esm/snk-application.entry.js +6 -6
- package/dist/esm/snk-attach.entry.js +65 -44
- package/dist/esm/snk-crud.entry.js +5 -5
- package/dist/esm/snk-data-exporter.entry.js +199 -81
- package/dist/esm/{snk-data-unit-4c343635.js → snk-data-unit-29eba11a.js} +4 -39
- package/dist/esm/snk-data-unit.entry.js +3 -2
- package/dist/esm/snk-detail-view.entry.js +8 -8
- package/dist/esm/snk-filter-bar.entry.js +23 -7
- package/dist/esm/snk-filter-detail.entry.js +4 -1
- package/dist/esm/snk-filter-item.entry.js +10 -6
- package/dist/esm/snk-filter-modal-item.entry.js +2 -3
- package/dist/esm/snk-form-config.entry.js +1 -2
- package/dist/esm/snk-form.entry.js +3 -4
- package/dist/esm/snk-grid.entry.js +64 -100
- package/dist/esm/{snk-guides-viewer-b94752f2.js → snk-guides-viewer-8fc16590.js} +4 -5
- package/dist/esm/snk-guides-viewer.entry.js +7 -7
- package/dist/esm/snk-personalized-filter.entry.js +2 -3
- package/dist/esm/snk-simple-crud.entry.js +132 -24
- package/dist/esm/snk-taskbar.entry.js +3 -2
- package/dist/esm/{taskbar-elements-2473c8ac.js → taskbar-elements-ad766858.js} +2 -2
- package/dist/sankhyablocks/p-07825198.js +1 -0
- package/dist/sankhyablocks/p-0ba97458.js +65 -0
- package/dist/sankhyablocks/p-1650f66b.entry.js +1 -0
- package/dist/sankhyablocks/p-1d1aa052.js +1 -0
- package/dist/sankhyablocks/p-1d9d07b4.entry.js +1 -0
- package/dist/sankhyablocks/p-250149af.entry.js +1 -0
- package/dist/sankhyablocks/p-2cfa05b0.entry.js +1 -0
- package/dist/sankhyablocks/{p-400097f2.entry.js → p-2daa70f9.entry.js} +3 -3
- package/dist/sankhyablocks/p-32556aa6.js +1 -0
- package/dist/sankhyablocks/p-33a6728e.js +26 -0
- package/dist/sankhyablocks/p-54a5d52a.entry.js +1 -0
- package/dist/sankhyablocks/p-5b6c4f46.entry.js +1 -0
- package/dist/sankhyablocks/p-5d9456dc.js +1 -0
- package/dist/sankhyablocks/{p-0624f62d.js → p-8a4c4b54.js} +6 -6
- package/dist/sankhyablocks/p-9863d682.js +1 -0
- package/dist/sankhyablocks/{p-125bb902.js → p-99b51d06.js} +1 -1
- package/dist/sankhyablocks/p-9c283890.entry.js +1 -0
- package/dist/sankhyablocks/p-9ee96756.entry.js +1 -0
- package/dist/sankhyablocks/p-a4c94582.entry.js +1 -0
- package/dist/sankhyablocks/p-c2e3a71c.entry.js +1 -0
- package/dist/sankhyablocks/p-c2f3ebf3.entry.js +1 -0
- package/dist/sankhyablocks/p-ce37e3d3.entry.js +1 -0
- package/dist/sankhyablocks/p-cfb98f51.entry.js +1 -0
- package/dist/sankhyablocks/{p-efeca7ba.js → p-d24c9dc6.js} +1 -1
- package/dist/sankhyablocks/p-e8763234.entry.js +1 -0
- package/dist/sankhyablocks/p-edd9dd1c.entry.js +1 -0
- package/dist/sankhyablocks/p-f51af6dd.entry.js +1 -0
- package/dist/sankhyablocks/p-fa84e72f.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-attach/snk-attach.d.ts +2 -1
- package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +10 -1
- package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +5 -4
- package/dist/types/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.d.ts +13 -0
- package/dist/types/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.d.ts +11 -0
- package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +21 -4
- package/dist/types/components/snk-data-exporter/interfaces/IExporterStrategy.d.ts +5 -0
- package/dist/types/components/snk-data-exporter/providers/ClientSideExporterProvider.d.ts +17 -0
- package/dist/types/components/snk-data-exporter/providers/ServerSideExporterProvider.d.ts +17 -0
- package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +3 -1
- package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +77 -0
- package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +3 -0
- package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +4 -0
- package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +6 -2
- package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +3 -0
- package/dist/types/components/snk-grid/snk-grid.d.ts +0 -3
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +17 -2
- package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +1 -1
- package/dist/types/components.d.ts +33 -0
- package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +0 -2
- package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +4 -0
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +2 -1
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +1 -0
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +1 -0
- package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/form-config-fetcher-d73f4449.js +0 -256
- package/dist/collection/lib/http/data-fetcher/fetchers/fetchDataExporter/index.js +0 -34
- package/dist/components/DataFetcher.js +0 -7023
- package/dist/components/index3.js +0 -199
- package/dist/esm/form-config-fetcher-765b8498.js +0 -253
- package/dist/sankhyablocks/p-004c356e.js +0 -26
- package/dist/sankhyablocks/p-0bba5c9f.entry.js +0 -1
- package/dist/sankhyablocks/p-1048bd26.entry.js +0 -1
- package/dist/sankhyablocks/p-20b46647.entry.js +0 -1
- package/dist/sankhyablocks/p-24ed6ad6.entry.js +0 -1
- package/dist/sankhyablocks/p-2936303b.js +0 -1
- package/dist/sankhyablocks/p-2d919e32.entry.js +0 -1
- package/dist/sankhyablocks/p-6c9adfca.js +0 -1
- package/dist/sankhyablocks/p-85ba3d6b.entry.js +0 -1
- package/dist/sankhyablocks/p-86801b08.entry.js +0 -1
- package/dist/sankhyablocks/p-88b29791.js +0 -1
- package/dist/sankhyablocks/p-9a5d1b39.js +0 -1
- package/dist/sankhyablocks/p-9e8618ec.entry.js +0 -1
- package/dist/sankhyablocks/p-a043314f.entry.js +0 -1
- package/dist/sankhyablocks/p-a1642e7c.entry.js +0 -1
- package/dist/sankhyablocks/p-ac77949b.entry.js +0 -1
- package/dist/sankhyablocks/p-b10b9934.entry.js +0 -1
- package/dist/sankhyablocks/p-b47c2963.entry.js +0 -1
- package/dist/sankhyablocks/p-be75153c.js +0 -1
- package/dist/sankhyablocks/p-bf39bdb8.entry.js +0 -1
- package/dist/sankhyablocks/p-d5cb4b5a.entry.js +0 -1
- package/dist/sankhyablocks/p-d6317851.entry.js +0 -1
- package/dist/sankhyablocks/p-d78d4062.js +0 -65
- package/dist/sankhyablocks/p-e7dbe53a.entry.js +0 -1
- package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/index.d.ts +0 -3
- /package/dist/sankhyablocks/{p-ae4fc9a9.js → p-61dd89eb.js} +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ApplicationContext, DataType, ElementIDUtils, FloatingManager, JSUtils, ObjectUtils, StringUtils, UserInterface, } from '@sankhyalabs/core';
|
|
2
|
+
import { CSSVarsUtils } from "@sankhyalabs/ezui/dist/collection/utils";
|
|
2
3
|
import { h } from '@stencil/core';
|
|
3
4
|
import { SIMPLE_CRUD_MODE, VIEW_MODE } from '../../lib/utils/constants';
|
|
4
5
|
import { TaskbarElement } from '../snk-taskbar/elements/taskbar-elements';
|
|
@@ -10,16 +11,18 @@ import { buildFieldSearch, openFieldSearch } from '../snk-taskbar/subcomponents/
|
|
|
10
11
|
import { ConfigStorage } from '../../lib/configs/ConfigStorage';
|
|
11
12
|
import { SnkFormConfigManager } from '../snk-form-config/SnkFormConfigManager';
|
|
12
13
|
import { REGULAR_DEFAULT_BTNS, REGULAR_SELECTED_BTNS } from './regular-buttons';
|
|
14
|
+
import ClientSideExporterProvider from '../snk-data-exporter/providers/ClientSideExporterProvider';
|
|
15
|
+
import store from "../../lib/store";
|
|
13
16
|
export class SnkSimpleCrud {
|
|
14
17
|
constructor() {
|
|
15
18
|
this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
|
|
16
19
|
this._keyDownHandler = (event) => this.keyDownListener(event);
|
|
17
20
|
this._formConfigFetcher = new FormConfigFetcher();
|
|
18
21
|
this._taskbarProcessor = new TaskbarProcessor({
|
|
19
|
-
"snkSimpleCrudTaskbar.form_regular": this.getButtons(false, TaskbarElement.GRID_MODE),
|
|
20
|
-
"snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, TaskbarElement.FORM_MODE),
|
|
21
|
-
"snkSimpleCrudTaskbar.form_selected": this.getButtons(true, TaskbarElement.GRID_MODE),
|
|
22
|
-
"snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, TaskbarElement.FORM_MODE),
|
|
22
|
+
"snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [TaskbarElement.GRID_MODE]),
|
|
23
|
+
"snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]),
|
|
24
|
+
"snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [TaskbarElement.GRID_MODE]),
|
|
25
|
+
"snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]),
|
|
23
26
|
"snkSimpleCrudTaskbar.finish_edition": ["CANCEL", "SAVE"]
|
|
24
27
|
});
|
|
25
28
|
this._showPopUpGridConfig = false;
|
|
@@ -30,12 +33,14 @@ export class SnkSimpleCrud {
|
|
|
30
33
|
this._customContainerId = `SNK-SIMPLE-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
|
|
31
34
|
this.dataState = undefined;
|
|
32
35
|
this.dataUnit = undefined;
|
|
36
|
+
this.entityName = undefined;
|
|
33
37
|
this.mode = SIMPLE_CRUD_MODE.SERVER;
|
|
34
38
|
this.gridConfig = undefined;
|
|
35
39
|
this.formConfig = undefined;
|
|
36
40
|
this._formFields = [];
|
|
37
41
|
this.multipleSelection = undefined;
|
|
38
42
|
this.useCancelConfirm = true;
|
|
43
|
+
this.pageSize = 150;
|
|
39
44
|
this.resourceID = undefined;
|
|
40
45
|
this.taskbarManager = undefined;
|
|
41
46
|
this.messagesBuilder = undefined;
|
|
@@ -57,9 +62,9 @@ export class SnkSimpleCrud {
|
|
|
57
62
|
this.loadFormConfig(true);
|
|
58
63
|
this.loadGridConfig(true);
|
|
59
64
|
}
|
|
60
|
-
getButtons(selected,
|
|
65
|
+
getButtons(selected, extraButtons) {
|
|
61
66
|
return this.addConfigButton(this.resolveInMemoryBtns(selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS)
|
|
62
|
-
.concat(
|
|
67
|
+
.concat(extraButtons));
|
|
63
68
|
}
|
|
64
69
|
addConfigButton(buttons) {
|
|
65
70
|
if (this.configName === undefined) {
|
|
@@ -99,6 +104,12 @@ export class SnkSimpleCrud {
|
|
|
99
104
|
}
|
|
100
105
|
evt.stopPropagation();
|
|
101
106
|
}
|
|
107
|
+
async onChangeEntityName(newValue) {
|
|
108
|
+
if (this.dataUnit)
|
|
109
|
+
return;
|
|
110
|
+
const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
|
|
111
|
+
this.dataUnit = await application.getDataUnit(newValue, null, null, this.configName);
|
|
112
|
+
}
|
|
102
113
|
onModeChange() {
|
|
103
114
|
if (this.mode == SIMPLE_CRUD_MODE.IN_MEMORY) {
|
|
104
115
|
this.initInMemoryDataUnit();
|
|
@@ -150,10 +161,15 @@ export class SnkSimpleCrud {
|
|
|
150
161
|
this._showPopUpGridConfig = true;
|
|
151
162
|
});
|
|
152
163
|
}
|
|
153
|
-
openFormConfig() {
|
|
164
|
+
async openFormConfig() {
|
|
165
|
+
var _a, _b;
|
|
154
166
|
//No momento não daremos suporte para configuraçao de formulário quando houver legacy config
|
|
155
|
-
if (this.formLegacyConfigName)
|
|
167
|
+
if (this.formLegacyConfigName) {
|
|
168
|
+
const title = (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage("snkSimpleCrud.formConfigUnavaliable.title", undefined);
|
|
169
|
+
const message = (_b = this.messagesBuilder) === null || _b === void 0 ? void 0 : _b.getMessage("snkSimpleCrud.formConfigUnavaliable.message", undefined);
|
|
170
|
+
await this.application.alert(title, message);
|
|
156
171
|
return;
|
|
172
|
+
}
|
|
157
173
|
this._showFormConfig = true;
|
|
158
174
|
}
|
|
159
175
|
addGridLegacyConfigName() {
|
|
@@ -206,6 +222,7 @@ export class SnkSimpleCrud {
|
|
|
206
222
|
}
|
|
207
223
|
async componentWillRender() {
|
|
208
224
|
this._resourceID = await this.application.getResourceID();
|
|
225
|
+
this.dataExporterProviderStore();
|
|
209
226
|
this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.getTaskBarDisabledButtons());
|
|
210
227
|
if (this.configName === undefined) {
|
|
211
228
|
return;
|
|
@@ -222,18 +239,21 @@ export class SnkSimpleCrud {
|
|
|
222
239
|
this.onModeChange();
|
|
223
240
|
this.configDatasource();
|
|
224
241
|
}
|
|
242
|
+
componentDidLoad() {
|
|
243
|
+
CSSVarsUtils.applyVarsGrid(this._element, this._grid);
|
|
244
|
+
}
|
|
225
245
|
configDatasource() {
|
|
226
246
|
this._multiSelectionListDataSource.setApplication(this.application);
|
|
227
247
|
this._multiSelectionListDataSource.setDataUnit(this.dataUnit);
|
|
228
248
|
}
|
|
229
249
|
getTaskBarId() {
|
|
230
|
-
var _a, _b
|
|
250
|
+
var _a, _b;
|
|
231
251
|
if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) {
|
|
232
252
|
return "snkSimpleCrudTaskbar.finish_edition";
|
|
233
253
|
}
|
|
234
254
|
if (((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) &&
|
|
235
255
|
!this.dataState.selectionInfo.isAllRecords() &&
|
|
236
|
-
|
|
256
|
+
this.dataState.selectionInfo.length > 0) {
|
|
237
257
|
return this._currentViewMode === VIEW_MODE.GRID ? "snkSimpleCrudTaskbar.grid_selected" : "snkSimpleCrudTaskbar.form_selected";
|
|
238
258
|
}
|
|
239
259
|
return this._currentViewMode === VIEW_MODE.GRID ? "snkSimpleCrudTaskbar.grid_regular" : "snkSimpleCrudTaskbar.form_regular";
|
|
@@ -278,6 +298,13 @@ export class SnkSimpleCrud {
|
|
|
278
298
|
var _a;
|
|
279
299
|
(_a = this._snkConfigurator) === null || _a === void 0 ? void 0 : _a.close();
|
|
280
300
|
}
|
|
301
|
+
updateConfig() {
|
|
302
|
+
if (this._formConfigManager == undefined) {
|
|
303
|
+
this._formConfigManager = new SnkFormConfigManager(this.configName, this.resolveResourceID());
|
|
304
|
+
}
|
|
305
|
+
this._formConfigManager.setConfig(this.formConfig);
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
281
308
|
processMetadata() {
|
|
282
309
|
const fieldsMetadataElem = this._element.querySelectorAll("snk-field-metadata");
|
|
283
310
|
const fieldMetadata = [];
|
|
@@ -466,9 +493,23 @@ export class SnkSimpleCrud {
|
|
|
466
493
|
.then(() => {
|
|
467
494
|
this.setGridConfig(config);
|
|
468
495
|
this.closeGridConfig();
|
|
496
|
+
this.dataExporterProviderStore();
|
|
469
497
|
});
|
|
470
498
|
evt.stopPropagation();
|
|
471
499
|
}
|
|
500
|
+
async dataExporterProviderStore() {
|
|
501
|
+
if (this.dataUnit == undefined) {
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
if (this._grid == undefined) {
|
|
505
|
+
return;
|
|
506
|
+
}
|
|
507
|
+
const dataExporterProvider = new ClientSideExporterProvider(this.dataUnit, this._grid);
|
|
508
|
+
store.set("exporterProviders", Object.assign(Object.assign({}, store.get("exporterProviders")), { [this.getDataExporterStoreKey()]: dataExporterProvider }));
|
|
509
|
+
}
|
|
510
|
+
getDataExporterStoreKey() {
|
|
511
|
+
return `SnkSimpleCrudDataExporter:${this.configName == undefined ? this.dataUnit.name : this.configName}`;
|
|
512
|
+
}
|
|
472
513
|
setGridConfig(config) {
|
|
473
514
|
this.gridConfig = config;
|
|
474
515
|
CrudUtils.assertDefaultSorting(this.gridConfig, this.dataUnit);
|
|
@@ -484,6 +525,15 @@ export class SnkSimpleCrud {
|
|
|
484
525
|
closeFormConfig() {
|
|
485
526
|
this._showFormConfig = false;
|
|
486
527
|
}
|
|
528
|
+
getPageSize() {
|
|
529
|
+
if (this.mode === SIMPLE_CRUD_MODE.IN_MEMORY) {
|
|
530
|
+
return 0;
|
|
531
|
+
}
|
|
532
|
+
if (this.pageSize == undefined) {
|
|
533
|
+
return 150;
|
|
534
|
+
}
|
|
535
|
+
return this.pageSize;
|
|
536
|
+
}
|
|
487
537
|
//No momento não daremos suporte para configuração de formulário quando houver formLegacyConfigName
|
|
488
538
|
handleShowFormConfig() {
|
|
489
539
|
return this._showFormConfig && !this.formLegacyConfigName;
|
|
@@ -491,15 +541,23 @@ export class SnkSimpleCrud {
|
|
|
491
541
|
resolveResourceID() {
|
|
492
542
|
return StringUtils.isEmpty(this.resourceID) ? this._resourceID : this.resourceID;
|
|
493
543
|
}
|
|
544
|
+
getFormConfig() {
|
|
545
|
+
var _a, _b;
|
|
546
|
+
const configFromManager = (_a = this._formConfigManager) === null || _a === void 0 ? void 0 : _a.getConfig((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.insertionMode, this.dataUnit, this.ignoreReadOnlyFormFields);
|
|
547
|
+
if (!this.configName && !configFromManager) {
|
|
548
|
+
return this.formConfig;
|
|
549
|
+
}
|
|
550
|
+
return configFromManager;
|
|
551
|
+
}
|
|
494
552
|
/* istanbul ignore next */
|
|
495
553
|
render() {
|
|
496
|
-
var _a
|
|
554
|
+
var _a;
|
|
497
555
|
if (this.dataUnit == undefined) {
|
|
498
556
|
return;
|
|
499
557
|
}
|
|
500
|
-
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
|
|
558
|
+
return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, "data-exporter-store-key": this.getDataExporterStoreKey(), slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
|
|
501
559
|
? undefined
|
|
502
|
-
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config:
|
|
560
|
+
: this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId })), h("div", { id: `${this._customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }))), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
|
|
503
561
|
}
|
|
504
562
|
static get is() { return "snk-simple-crud"; }
|
|
505
563
|
static get encapsulation() { return "scoped"; }
|
|
@@ -555,6 +613,23 @@ export class SnkSimpleCrud {
|
|
|
555
613
|
"text": ""
|
|
556
614
|
}
|
|
557
615
|
},
|
|
616
|
+
"entityName": {
|
|
617
|
+
"type": "string",
|
|
618
|
+
"mutable": false,
|
|
619
|
+
"complexType": {
|
|
620
|
+
"original": "string",
|
|
621
|
+
"resolved": "string",
|
|
622
|
+
"references": {}
|
|
623
|
+
},
|
|
624
|
+
"required": false,
|
|
625
|
+
"optional": false,
|
|
626
|
+
"docs": {
|
|
627
|
+
"tags": [],
|
|
628
|
+
"text": "Define o nome da entidade que o componente vai utilizar para fazer as opera\u00E7\u00F5es de CRUD"
|
|
629
|
+
},
|
|
630
|
+
"attribute": "entity-name",
|
|
631
|
+
"reflect": false
|
|
632
|
+
},
|
|
558
633
|
"mode": {
|
|
559
634
|
"type": "number",
|
|
560
635
|
"mutable": false,
|
|
@@ -600,7 +675,7 @@ export class SnkSimpleCrud {
|
|
|
600
675
|
},
|
|
601
676
|
"formConfig": {
|
|
602
677
|
"type": "unknown",
|
|
603
|
-
"mutable":
|
|
678
|
+
"mutable": true,
|
|
604
679
|
"complexType": {
|
|
605
680
|
"original": "IFormConfig",
|
|
606
681
|
"resolved": "IFormConfig",
|
|
@@ -653,6 +728,24 @@ export class SnkSimpleCrud {
|
|
|
653
728
|
"reflect": false,
|
|
654
729
|
"defaultValue": "true"
|
|
655
730
|
},
|
|
731
|
+
"pageSize": {
|
|
732
|
+
"type": "number",
|
|
733
|
+
"mutable": false,
|
|
734
|
+
"complexType": {
|
|
735
|
+
"original": "number",
|
|
736
|
+
"resolved": "number",
|
|
737
|
+
"references": {}
|
|
738
|
+
},
|
|
739
|
+
"required": false,
|
|
740
|
+
"optional": false,
|
|
741
|
+
"docs": {
|
|
742
|
+
"tags": [],
|
|
743
|
+
"text": "Determina quantas linhas s\u00E3o retornadas por p\u00E1gina."
|
|
744
|
+
},
|
|
745
|
+
"attribute": "page-size",
|
|
746
|
+
"reflect": false,
|
|
747
|
+
"defaultValue": "150"
|
|
748
|
+
},
|
|
656
749
|
"resourceID": {
|
|
657
750
|
"type": "string",
|
|
658
751
|
"mutable": false,
|
|
@@ -1088,6 +1181,22 @@ export class SnkSimpleCrud {
|
|
|
1088
1181
|
"text": "Usado para fechar o configurator do CRUD",
|
|
1089
1182
|
"tags": []
|
|
1090
1183
|
}
|
|
1184
|
+
},
|
|
1185
|
+
"updateConfig": {
|
|
1186
|
+
"complexType": {
|
|
1187
|
+
"signature": "() => Promise<void>",
|
|
1188
|
+
"parameters": [],
|
|
1189
|
+
"references": {
|
|
1190
|
+
"Promise": {
|
|
1191
|
+
"location": "global"
|
|
1192
|
+
}
|
|
1193
|
+
},
|
|
1194
|
+
"return": "Promise<void>"
|
|
1195
|
+
},
|
|
1196
|
+
"docs": {
|
|
1197
|
+
"text": "",
|
|
1198
|
+
"tags": []
|
|
1199
|
+
}
|
|
1091
1200
|
}
|
|
1092
1201
|
};
|
|
1093
1202
|
}
|
|
@@ -1096,6 +1205,9 @@ export class SnkSimpleCrud {
|
|
|
1096
1205
|
return [{
|
|
1097
1206
|
"propName": "resourceID",
|
|
1098
1207
|
"methodName": "handleResourceIDChanged"
|
|
1208
|
+
}, {
|
|
1209
|
+
"propName": "entityName",
|
|
1210
|
+
"methodName": "onChangeEntityName"
|
|
1099
1211
|
}, {
|
|
1100
1212
|
"propName": "mode",
|
|
1101
1213
|
"methodName": "onModeChange"
|
|
@@ -47,7 +47,7 @@ export const buildCustomButton = (def, className, dataElementId, action, isEnabl
|
|
|
47
47
|
return textButton(def.name, className, dataElementId, text, hint, action, isEnabled);
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
-
export const buildElem = (element, className, dataElementId, getTitle, action, isEnabled, actions,
|
|
50
|
+
export const buildElem = (element, className, dataElementId, getTitle, action, isEnabled, actions, dataExporterStoreKey, presentationMode) => {
|
|
51
51
|
var _a;
|
|
52
52
|
const title = getTitle(element);
|
|
53
53
|
switch (element) {
|
|
@@ -90,7 +90,7 @@ export const buildElem = (element, className, dataElementId, getTitle, action, i
|
|
|
90
90
|
case TaskbarElement.DIVIDER:
|
|
91
91
|
return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin--none ez-margin-left--medium", "data-taskbar-divider": true });
|
|
92
92
|
case TaskbarElement.DATA_EXPORTER:
|
|
93
|
-
const provider = (_a = store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[
|
|
93
|
+
const provider = (_a = store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[dataExporterStoreKey];
|
|
94
94
|
return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId, "data-taskbar-element": element });
|
|
95
95
|
case TaskbarElement.ATTACH:
|
|
96
96
|
return iconButton("anexo", element, className, dataElementId, title, action, isEnabled);
|
|
@@ -156,8 +156,9 @@ export class SnkTaskbar {
|
|
|
156
156
|
className += "ez-padding-left--medium";
|
|
157
157
|
}
|
|
158
158
|
const taskbarElement = TaskbarElement[def.toString()];
|
|
159
|
+
const dataExporterStoreKey = this._element.dataset.exporterStoreKey || this.configName;
|
|
159
160
|
if (taskbarElement) {
|
|
160
|
-
return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.buildDynamicActionsList(),
|
|
161
|
+
return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.buildDynamicActionsList(), dataExporterStoreKey, this.presentationMode);
|
|
161
162
|
}
|
|
162
163
|
else {
|
|
163
164
|
return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ChangeOperation, DataType, DataUnit, DateUtils, StringUtils, } from '@sankhyalabs/core';
|
|
2
|
-
import {
|
|
3
|
-
import PreloadManager from '../http/data-fetcher/fetchers/data-unit/cache/PreloadManager';
|
|
2
|
+
import { applyFilter, applySorting, buildPaginationInfo } from './dataUnitInMemoryUtils';
|
|
4
3
|
export default class InMemoryLoader {
|
|
5
4
|
constructor(metadata, records) {
|
|
6
5
|
this.metadata = metadata;
|
|
@@ -13,9 +12,13 @@ export default class InMemoryLoader {
|
|
|
13
12
|
this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
|
|
14
13
|
}
|
|
15
14
|
getRecordsToLoad() {
|
|
16
|
-
if (this._initialRecords == undefined
|
|
15
|
+
if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
|
|
17
16
|
this._initialRecords = this.dataUnit.records;
|
|
18
17
|
}
|
|
18
|
+
const addedRecords = this.dataUnit.getAddedRecords();
|
|
19
|
+
if (addedRecords) {
|
|
20
|
+
return [...this._initialRecords, ...addedRecords];
|
|
21
|
+
}
|
|
19
22
|
return this._initialRecords;
|
|
20
23
|
}
|
|
21
24
|
get dataUnit() {
|
|
@@ -58,7 +61,7 @@ export default class InMemoryLoader {
|
|
|
58
61
|
this._initialRecords = newRecords;
|
|
59
62
|
if (this._dataUnit) {
|
|
60
63
|
//Isso força o refresh internamente no datunit
|
|
61
|
-
this._dataUnit.
|
|
64
|
+
this._dataUnit.loadData();
|
|
62
65
|
}
|
|
63
66
|
}
|
|
64
67
|
get metadata() {
|
|
@@ -74,30 +77,9 @@ export default class InMemoryLoader {
|
|
|
74
77
|
return StringUtils.generateUUID();
|
|
75
78
|
}
|
|
76
79
|
inMemoryLoader(dataUnit, request, recordsIn) {
|
|
77
|
-
let records =
|
|
78
|
-
records =
|
|
79
|
-
return Promise.resolve({ records, paginationInfo: buildPaginationInfo(request,
|
|
80
|
-
}
|
|
81
|
-
applyFilter(records, dataUnit, filters) {
|
|
82
|
-
const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
|
|
83
|
-
if (columnFilters == undefined || columnFilters.size == 0) {
|
|
84
|
-
return records;
|
|
85
|
-
}
|
|
86
|
-
const filterFunciton = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
|
|
87
|
-
if (filterFunciton == undefined) {
|
|
88
|
-
return records;
|
|
89
|
-
}
|
|
90
|
-
return records.filter(filterFunciton);
|
|
91
|
-
}
|
|
92
|
-
applySorting(records, dataUnit, sorting) {
|
|
93
|
-
if (sorting == undefined || sorting.length == 0) {
|
|
94
|
-
return records;
|
|
95
|
-
}
|
|
96
|
-
const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
|
|
97
|
-
if (sortingFunction == undefined) {
|
|
98
|
-
return records;
|
|
99
|
-
}
|
|
100
|
-
return records.sort(sortingFunction);
|
|
80
|
+
let records = applyFilter(recordsIn, dataUnit, request.filters);
|
|
81
|
+
records = applySorting(records, dataUnit, request.sort);
|
|
82
|
+
return Promise.resolve({ records, paginationInfo: buildPaginationInfo(records, request.offset, request.limit) });
|
|
101
83
|
}
|
|
102
84
|
metadaLoader() {
|
|
103
85
|
return Promise.resolve(this._metadata);
|
|
@@ -130,16 +112,3 @@ export default class InMemoryLoader {
|
|
|
130
112
|
}
|
|
131
113
|
}
|
|
132
114
|
InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
|
|
133
|
-
function buildPaginationInfo({ offset, limit }, records) {
|
|
134
|
-
if (offset === undefined || limit === undefined) {
|
|
135
|
-
return undefined;
|
|
136
|
-
}
|
|
137
|
-
const lastRecord = Math.min(offset + limit, records.length);
|
|
138
|
-
return {
|
|
139
|
-
currentPage: Math.ceil(offset / limit),
|
|
140
|
-
firstRecord: offset,
|
|
141
|
-
lastRecord: lastRecord,
|
|
142
|
-
total: records.length,
|
|
143
|
-
hasMore: !!(records.length - lastRecord),
|
|
144
|
-
};
|
|
145
|
-
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import SortingUtils from '@sankhyalabs/core/dist/utils/SortingUtils';
|
|
2
|
+
import { ColumnFilterManager } from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
|
|
3
|
+
export function applyFilter(records, dataUnit, filters) {
|
|
4
|
+
const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
|
|
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);
|
|
13
|
+
}
|
|
14
|
+
export function applySorting(records, dataUnit, sorting) {
|
|
15
|
+
if (sorting == undefined || sorting.length == 0) {
|
|
16
|
+
return records;
|
|
17
|
+
}
|
|
18
|
+
const sortingFunction = SortingUtils.getSortingFunction(dataUnit, sorting);
|
|
19
|
+
if (sortingFunction == undefined) {
|
|
20
|
+
return records;
|
|
21
|
+
}
|
|
22
|
+
return records.sort(sortingFunction);
|
|
23
|
+
}
|
|
24
|
+
export function buildPaginationInfo(records, offset = 0, limit = 0) {
|
|
25
|
+
const lastRecord = Math.min(offset + limit, records === null || records === void 0 ? void 0 : records.length);
|
|
26
|
+
return {
|
|
27
|
+
currentPage: limit === 0 ? 0 : Math.ceil(offset / limit),
|
|
28
|
+
firstRecord: offset,
|
|
29
|
+
lastRecord: lastRecord,
|
|
30
|
+
total: records === null || records === void 0 ? void 0 : records.length,
|
|
31
|
+
hasMore: !!((records === null || records === void 0 ? void 0 : records.length) - lastRecord),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
@@ -21,6 +21,9 @@ export default class DataUnitDataLoader {
|
|
|
21
21
|
});
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
+
static getCachedRecords(dataUnit) {
|
|
25
|
+
return PreloadManager.getCachedRecords(dataUnit);
|
|
26
|
+
}
|
|
24
27
|
static async loadFromServer(dataUnit, request, loadingInfo) {
|
|
25
28
|
try {
|
|
26
29
|
//Registramos a request com as informações de carga para determinarmos a última.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ObjectUtils } from "@sankhyalabs/core";
|
|
1
2
|
export class ArrayRepository {
|
|
2
3
|
constructor(equalsFunction) {
|
|
3
4
|
this._list = [];
|
|
@@ -77,4 +78,7 @@ export class ArrayRepository {
|
|
|
77
78
|
async count() {
|
|
78
79
|
return Promise.resolve(this._list.length);
|
|
79
80
|
}
|
|
81
|
+
getFromCache() {
|
|
82
|
+
return ObjectUtils.copy(this._list);
|
|
83
|
+
}
|
|
80
84
|
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DataUnit, FieldComparator, SortMode } from "@sankhyalabs/core";
|
|
2
2
|
import { ArrayRepository } from "./ArrayRepository";
|
|
3
3
|
import { ColumnFilterManager } from "@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";
|
|
4
|
+
import SortingUtils from "@sankhyalabs/core/dist/utils/SortingUtils";
|
|
4
5
|
export default class PreloadManager {
|
|
5
6
|
static setLoadingStatus(dataUnit, loadingInProgress) {
|
|
6
7
|
this._loadingStatus.set(dataUnit.name, loadingInProgress);
|
|
@@ -67,7 +68,11 @@ export default class PreloadManager {
|
|
|
67
68
|
static async loadData(dataUnit, request, loadFromServer) {
|
|
68
69
|
try {
|
|
69
70
|
if (PreloadManager.isCacheEnabled(dataUnit)) {
|
|
70
|
-
|
|
71
|
+
const useCache = [
|
|
72
|
+
"EZ_GRID_LOADING_SOURCE",
|
|
73
|
+
DataUnit.CHANGING_PAGE_LOADING_SOURCE,
|
|
74
|
+
DataUnit.ALL_RECORDS_SELECTION_SOURCE
|
|
75
|
+
].includes(request.source);
|
|
71
76
|
if (useCache) {
|
|
72
77
|
const isCacheEmpty = await PreloadManager.getRepository(dataUnit).isEmpty();
|
|
73
78
|
if (!isCacheEmpty) {
|
|
@@ -117,7 +122,7 @@ export default class PreloadManager {
|
|
|
117
122
|
const columnFilters = ColumnFilterManager.getColumnFilters(request.filters, "");
|
|
118
123
|
const { limit, offset, sort } = request;
|
|
119
124
|
PreloadManager.getRepository(dataUnit)
|
|
120
|
-
.load(ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values())),
|
|
125
|
+
.load(ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values())), SortingUtils.getSortingFunction(dataUnit, sort), offset, limit)
|
|
121
126
|
.then(loadResult => {
|
|
122
127
|
const stillLoading = PreloadManager._loadingStatus.get(dataUnit.name);
|
|
123
128
|
const { count, result: records } = loadResult;
|
|
@@ -134,6 +139,9 @@ export default class PreloadManager {
|
|
|
134
139
|
.catch(reason => reject(reason));
|
|
135
140
|
});
|
|
136
141
|
}
|
|
142
|
+
static getCachedRecords(dataUnit) {
|
|
143
|
+
return PreloadManager.getRepository(dataUnit).getFromCache();
|
|
144
|
+
}
|
|
137
145
|
}
|
|
138
146
|
PreloadManager._repositories = new Map();
|
|
139
147
|
PreloadManager._loadingStatus = new Map();
|
|
@@ -111,6 +111,7 @@ export default class DataUnitFetcher {
|
|
|
111
111
|
dataUnit.saveLoader = (_dataUnit, changes) => this.saveData(dataUnit, changes);
|
|
112
112
|
dataUnit.removeLoader = (dataUnit, recordIds) => this.removeRecords(dataUnit, recordIds);
|
|
113
113
|
dataUnit.recordLoader = (dataUnit, recordIds) => this.loadRecord(dataUnit, recordIds);
|
|
114
|
+
dataUnit.allRecordsLoader = (dataUnit) => DataUnitDataLoader.getCachedRecords(dataUnit);
|
|
114
115
|
return dataUnit;
|
|
115
116
|
}
|
|
116
117
|
loadMetadata(dataUnit) {
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export const snkSimpleCrudMessages = {
|
|
2
2
|
findColumn: "Busca de colunas",
|
|
3
|
+
formConfigUnavaliable: {
|
|
4
|
+
title: "Aviso",
|
|
5
|
+
message: 'A opção "Configurar formulário" será disponibilizada em breve. Enquanto isso, acesse a configuração do fomulário através dos layouts anteriores, HTML5 ou Flex.'
|
|
6
|
+
}
|
|
3
7
|
};
|
|
4
8
|
export default snkSimpleCrudMessages;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher.js';
|
|
1
|
+
import { R as ResourceFetcher, d as dist, D as DataFetcher, F as FormConfigFetcher } from './form-config-fetcher.js';
|
|
2
2
|
import { F as FilterItemType } from './filter-item-type.enum.js';
|
|
3
3
|
import { ObjectUtils } from '@sankhyalabs/core';
|
|
4
|
-
import { d as dist, D as DataFetcher } from './DataFetcher.js';
|
|
5
4
|
|
|
6
5
|
var __rest = (undefined && undefined.__rest) || function (s, e) {
|
|
7
6
|
var t = {};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { D as DataFetcher } from './
|
|
1
|
+
import { D as DataFetcher } from './form-config-fetcher.js';
|
|
2
2
|
import { a as PreloadManager } from './dataunit-fetcher.js';
|
|
3
|
-
import { SortMode, ApplicationContext, UserInterface, DateUtils } from '@sankhyalabs/core';
|
|
4
|
-
import './
|
|
5
|
-
import './snk-actions-button2.js';
|
|
3
|
+
import { SortMode, ApplicationContext, UserInterface, DateUtils, DataType } from '@sankhyalabs/core';
|
|
4
|
+
import './ISave.js';
|
|
6
5
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
|
7
|
-
import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
|
6
|
+
import { UserInterface as UserInterface$1 } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
|
8
7
|
import './filter-item-type.enum.js';
|
|
9
|
-
import './form-config-fetcher.js';
|
|
10
8
|
import InMemoryFilterColumnDataSource from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource';
|
|
11
9
|
import { h } from '@stencil/core/internal/client';
|
|
12
10
|
|
|
@@ -208,4 +206,51 @@ const openFieldSearch = async (moreOptions, field) => {
|
|
|
208
206
|
await moreOptions.showActions();
|
|
209
207
|
};
|
|
210
208
|
|
|
211
|
-
|
|
209
|
+
class CommonsExporter {
|
|
210
|
+
constructor(dataUnit, grid) {
|
|
211
|
+
this.dataUnit = dataUnit;
|
|
212
|
+
this.grid = grid;
|
|
213
|
+
}
|
|
214
|
+
async getColumnsMetadata() {
|
|
215
|
+
var _a;
|
|
216
|
+
const columnsState = await ((_a = this.grid) === null || _a === void 0 ? void 0 : _a.getColumnsState());
|
|
217
|
+
return this.buildColumnsMetadata(columnsState);
|
|
218
|
+
}
|
|
219
|
+
buildColumnsMetadata(gridColumns) {
|
|
220
|
+
const columnsMetadata = [];
|
|
221
|
+
gridColumns === null || gridColumns === void 0 ? void 0 : gridColumns.forEach((column) => {
|
|
222
|
+
var _a, _b;
|
|
223
|
+
/**
|
|
224
|
+
* TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
|
|
225
|
+
*/
|
|
226
|
+
if (column.hidden && column.name !== "RECDESP") {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
|
|
230
|
+
const columnData = {
|
|
231
|
+
label: column.label,
|
|
232
|
+
id: column.name,
|
|
233
|
+
width: (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface$1.SEARCH ? 30 : column.width,
|
|
234
|
+
type: fieldData === null || fieldData === void 0 ? void 0 : fieldData.dataType,
|
|
235
|
+
userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface
|
|
236
|
+
};
|
|
237
|
+
columnsMetadata.push(columnData);
|
|
238
|
+
if (((_b = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _b === void 0 ? void 0 : _b.DESCRIPTIONFIELD) != undefined) {
|
|
239
|
+
const mergedFrom = fieldData.properties.mergedFrom;
|
|
240
|
+
const descriptionField = `${fieldData.properties.ENTITYNAME}.${fieldData.properties.DESCRIPTIONFIELD}`;
|
|
241
|
+
const descriptionColumn = {
|
|
242
|
+
label: fieldData.properties.DESCRIPTIONENTITY,
|
|
243
|
+
id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
|
|
244
|
+
width: 200,
|
|
245
|
+
type: DataType.TEXT,
|
|
246
|
+
userInterface: UserInterface$1.LONGTEXT,
|
|
247
|
+
descriptionFrom: fieldData.name
|
|
248
|
+
};
|
|
249
|
+
columnsMetadata.push(descriptionColumn);
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
return columnsMetadata || [];
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export { CommonsExporter as C, SnkMultiSelectionListDataSource as S, TaskbarProcessor as T, CrudUtils as a, buildFieldSearch as b, openFieldSearch as o };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var PresentationMode;
|
|
2
|
+
(function (PresentationMode) {
|
|
3
|
+
PresentationMode["PRIMARY"] = "primary";
|
|
4
|
+
PresentationMode["SECONDARY"] = "secondary";
|
|
5
|
+
PresentationMode["SINGLE_TASKBAR"] = "singleTaskbar";
|
|
6
|
+
})(PresentationMode || (PresentationMode = {}));
|
|
7
|
+
var DataExporterOption;
|
|
8
|
+
(function (DataExporterOption) {
|
|
9
|
+
DataExporterOption["EXPORT_TO_PDF"] = "exportToPDF";
|
|
10
|
+
DataExporterOption["EXPORT_TO_XLS"] = "exportToXLS";
|
|
11
|
+
DataExporterOption["EXPORT_CURRENT_PAGE"] = "exportCurrentPage";
|
|
12
|
+
DataExporterOption["EXPORT_PAGE_TO_PDF"] = "exportPageToPDF";
|
|
13
|
+
DataExporterOption["EXPORT_PAGE_TO_XLS"] = "exportPageToXLS";
|
|
14
|
+
DataExporterOption["EXPORT_BY_EMAIL"] = "exportToEmail";
|
|
15
|
+
DataExporterOption["EXPORT_PDF_TO_EMAIL"] = "exportPDFToEmail";
|
|
16
|
+
DataExporterOption["EXPORT_XLS_TO_EMAIL"] = "exportXLSToEmail";
|
|
17
|
+
})(DataExporterOption || (DataExporterOption = {}));
|
|
18
|
+
var DataExporterFormat;
|
|
19
|
+
(function (DataExporterFormat) {
|
|
20
|
+
DataExporterFormat["PDF"] = "exportPDFToEmail";
|
|
21
|
+
DataExporterFormat["XLS"] = "exportXLSToEmail";
|
|
22
|
+
DataExporterFormat["XLSX"] = "exportXLSToEmail";
|
|
23
|
+
})(DataExporterFormat || (DataExporterFormat = {}));
|
|
24
|
+
var DataExporterType;
|
|
25
|
+
(function (DataExporterType) {
|
|
26
|
+
DataExporterType["EXPORT_TO_PDF"] = "PDF";
|
|
27
|
+
DataExporterType["EXPORT_TO_XLS"] = "XLS";
|
|
28
|
+
DataExporterType["EXPORT_PAGE_TO_PDF"] = "PDF";
|
|
29
|
+
DataExporterType["EXPORT_PAGE_TO_XLS"] = "XLS";
|
|
30
|
+
DataExporterType["EXPORT_PDF_TO_EMAIL"] = "PDF";
|
|
31
|
+
DataExporterType["EXPORT_XLS_TO_EMAIL"] = "XLS";
|
|
32
|
+
})(DataExporterType || (DataExporterType = {}));
|
|
33
|
+
|
|
34
|
+
var SaveErrorsEnum;
|
|
35
|
+
(function (SaveErrorsEnum) {
|
|
36
|
+
SaveErrorsEnum["LINK_AND_FILE_AT_THE_SAME_TIME"] = "LINK_AND_FILE_AT_THE_SAME_TIME";
|
|
37
|
+
SaveErrorsEnum["ANY_LINK_OR_FILE_FILLED"] = "ANY_LINK_OR_FILE_FILLED";
|
|
38
|
+
SaveErrorsEnum["UNKNOWN"] = "UNKNOWN";
|
|
39
|
+
SaveErrorsEnum["DESCRIPTION_CANNOT_BE_CHANGED"] = "DESCRIPTION_CANNOT_BE_CHANGED";
|
|
40
|
+
})(SaveErrorsEnum || (SaveErrorsEnum = {}));
|
|
41
|
+
|
|
42
|
+
export { DataExporterOption as D, PresentationMode as P, SaveErrorsEnum as S, DataExporterFormat as a, DataExporterType as b };
|