@sankhyalabs/sankhyablocks 8.16.0-dev.104 → 8.16.0-dev.106
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-8c219037.js → ClientSideExporterProvider-a2753c93.js} +3 -3
- package/dist/cjs/{SnkMessageBuilder-bae64d0d.js → SnkMessageBuilder-aecd7c18.js} +31 -24
- package/dist/cjs/{dataunit-fetcher-4a5d491a.js → dataunit-fetcher-a723f0dc.js} +5 -2
- 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_7.cjs.entry.js +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +2 -2
- package/dist/cjs/snk-attach.cjs.entry.js +2 -2
- package/dist/cjs/snk-crud.cjs.entry.js +19 -11
- package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
- package/dist/cjs/{snk-data-unit-4b510d6e.js → snk-data-unit-ebfdb9ba.js} +226 -12
- package/dist/cjs/snk-data-unit.cjs.entry.js +3 -3
- package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
- package/dist/cjs/snk-grid.cjs.entry.js +23 -9
- package/dist/cjs/{snk-guides-viewer-e8e5f7b4.js → snk-guides-viewer-fd39f437.js} +99 -44
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
- package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +67 -24
- package/dist/cjs/snk-taskbar.cjs.entry.js +2 -1
- package/dist/cjs/{taskbar-elements-7e19882d.js → taskbar-elements-02379452.js} +3 -0
- package/dist/collection/components/snk-crud/snk-crud.js +35 -9
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +117 -43
- package/dist/collection/components/snk-data-unit/MultipleUpdateHelper.js +128 -0
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +107 -12
- package/dist/collection/components/snk-grid/filtercolumn/SnkMultiSelectionListDataSource.js +2 -2
- package/dist/collection/components/snk-grid/snk-grid.js +38 -6
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +83 -22
- package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +3 -0
- package/dist/collection/components/snk-taskbar/snk-taskbar.js +2 -2
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +5 -2
- package/dist/collection/lib/message/SnkMessageBuilder.js +1 -0
- package/dist/collection/lib/message/resources/snk-data-unit.msg.js +28 -23
- package/dist/collection/lib/message/resources/snk-taskbar.msg.js +1 -0
- package/dist/components/ContinuousInsertUtils.js +2 -2
- package/dist/components/SnkMessageBuilder.js +31 -24
- package/dist/components/dataunit-fetcher.js +5 -2
- package/dist/components/snk-crud.js +18 -9
- package/dist/components/snk-data-unit2.js +225 -11
- package/dist/components/snk-detail-view2.js +98 -43
- package/dist/components/snk-grid2.js +21 -6
- package/dist/components/snk-simple-crud2.js +66 -22
- package/dist/components/snk-taskbar2.js +4 -0
- package/dist/esm/{ClientSideExporterProvider-a37f890b.js → ClientSideExporterProvider-b3871edb.js} +3 -3
- package/dist/esm/{SnkMessageBuilder-6fff4a4c.js → SnkMessageBuilder-12f5fe1a.js} +31 -24
- package/dist/esm/{dataunit-fetcher-1d02ecfc.js → dataunit-fetcher-0e025732.js} +5 -2
- 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_7.entry.js +1 -1
- package/dist/esm/snk-application.entry.js +2 -2
- package/dist/esm/snk-attach.entry.js +2 -2
- package/dist/esm/snk-crud.entry.js +19 -11
- package/dist/esm/snk-data-exporter.entry.js +3 -3
- package/dist/esm/{snk-data-unit-7d0ce406.js → snk-data-unit-03654813.js} +226 -12
- package/dist/esm/snk-data-unit.entry.js +3 -3
- package/dist/esm/snk-detail-view.entry.js +4 -4
- package/dist/esm/snk-grid.entry.js +23 -9
- package/dist/esm/{snk-guides-viewer-c44b3839.js → snk-guides-viewer-75e06feb.js} +100 -45
- package/dist/esm/snk-guides-viewer.entry.js +3 -3
- package/dist/esm/snk-pesquisa.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +68 -25
- package/dist/esm/snk-taskbar.entry.js +2 -1
- package/dist/esm/{taskbar-elements-d2353c64.js → taskbar-elements-c62b6c66.js} +3 -0
- package/dist/sankhyablocks/{p-35f85998.entry.js → p-1a51dfde.entry.js} +1 -1
- package/dist/sankhyablocks/{p-ef6f0a1b.entry.js → p-1c29409b.entry.js} +1 -1
- package/dist/sankhyablocks/{p-5503e89f.entry.js → p-271c86d3.entry.js} +1 -1
- package/dist/sankhyablocks/p-2d6df7e7.entry.js +1 -0
- package/dist/sankhyablocks/p-41da5310.js +1 -0
- package/dist/sankhyablocks/{p-b2a2a83e.entry.js → p-4a93daef.entry.js} +1 -1
- package/dist/sankhyablocks/p-65be98c5.entry.js +1 -0
- package/dist/sankhyablocks/{p-6541bb6d.entry.js → p-6a0c8ce0.entry.js} +1 -1
- package/dist/sankhyablocks/p-7993b2e3.js +60 -0
- package/dist/sankhyablocks/{p-754559b9.entry.js → p-7cd5c315.entry.js} +1 -1
- package/dist/sankhyablocks/p-80f8c22c.js +1 -0
- package/dist/sankhyablocks/p-885802c3.js +1 -0
- package/dist/sankhyablocks/p-ab0caed6.entry.js +1 -0
- package/dist/sankhyablocks/{p-38e3ffda.entry.js → p-ad07f0c5.entry.js} +1 -1
- package/dist/sankhyablocks/p-cc8c3bca.entry.js +1 -0
- package/dist/sankhyablocks/{p-3b190fb1.entry.js → p-d31a701e.entry.js} +1 -1
- package/dist/sankhyablocks/{p-00796b12.entry.js → p-dc6ad9a6.entry.js} +1 -1
- package/dist/sankhyablocks/p-f4d5bb7f.js +1 -0
- package/dist/sankhyablocks/p-fb0f0087.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +10 -1
- package/dist/types/components/snk-data-unit/MultipleUpdateHelper.d.ts +9 -0
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +17 -0
- package/dist/types/components/snk-grid/filtercolumn/SnkMultiSelectionListDataSource.d.ts +2 -1
- package/dist/types/components/snk-grid/snk-grid.d.ts +5 -0
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +9 -2
- package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +2 -1
- package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +1 -0
- package/dist/types/components.d.ts +28 -0
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +1 -1
- package/dist/types/lib/message/SnkMessageBuilder.d.ts +2 -1
- package/package.json +1 -1
- package/dist/sankhyablocks/p-17425c72.js +0 -1
- package/dist/sankhyablocks/p-3fc82614.js +0 -1
- package/dist/sankhyablocks/p-460f1827.entry.js +0 -1
- package/dist/sankhyablocks/p-6e0a5314.js +0 -1
- package/dist/sankhyablocks/p-835128f5.entry.js +0 -1
- package/dist/sankhyablocks/p-8fa828b5.js +0 -1
- package/dist/sankhyablocks/p-92778d5a.js +0 -1
- package/dist/sankhyablocks/p-a8be1d67.js +0 -60
- package/dist/sankhyablocks/p-a962a3e4.entry.js +0 -1
- package/dist/sankhyablocks/p-e35fe2bd.entry.js +0 -1
@@ -5,14 +5,14 @@ const core = require('@sankhyalabs/core');
|
|
5
5
|
const SnkFormConfigManager = require('./SnkFormConfigManager-45a8d7b7.js');
|
6
6
|
const form = require('@sankhyalabs/ezui/dist/collection/utils/form');
|
7
7
|
const fieldSearch = require('./field-search-68e34bf4.js');
|
8
|
-
const taskbarElements = require('./taskbar-elements-
|
8
|
+
const taskbarElements = require('./taskbar-elements-02379452.js');
|
9
9
|
const constants = require('./constants-77c1b8bd.js');
|
10
10
|
require('./DataFetcher-1afdb18e.js');
|
11
11
|
require('./ISave-c76e2c51.js');
|
12
12
|
const index$1 = require('./index-e3e39724.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-a723f0dc.js');
|
16
16
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
17
17
|
require('./form-config-fetcher-40d3f752.js');
|
18
18
|
const DataUnit = require('@sankhyalabs/core/dist/dataunit/DataUnit');
|
@@ -23,6 +23,7 @@ const FORM_NAME_PREFIX = "__FORM:";
|
|
23
23
|
const SnkGuidesViewer = class {
|
24
24
|
constructor(hostRef) {
|
25
25
|
index.registerInstance(this, hostRef);
|
26
|
+
this.snkMasterFormConfigChange = index.createEvent(this, "snkMasterFormConfigChange", 7);
|
26
27
|
this.exit = index.createEvent(this, "exit", 7);
|
27
28
|
this.actionClick = index.createEvent(this, "actionClick", 7);
|
28
29
|
this.formItemsReady = index.createEvent(this, "formItemsReady", 7);
|
@@ -59,14 +60,16 @@ const SnkGuidesViewer = class {
|
|
59
60
|
this.loadGuides(true);
|
60
61
|
}
|
61
62
|
observeDataState(newValue, oldValue) {
|
62
|
-
|
63
|
-
const
|
64
|
-
|
63
|
+
var _a, _b, _c, _d, _e, _f;
|
64
|
+
const newRecordsIds = (_b = (_a = newValue === null || newValue === void 0 ? void 0 : newValue.selectionInfo) === null || _a === void 0 ? void 0 : _a.recordIds) !== null && _b !== void 0 ? _b : (_c = newValue === null || newValue === void 0 ? void 0 : newValue.selectedRecord) === null || _c === void 0 ? void 0 : _c['__record__id__'];
|
65
|
+
const oldRecordsIds = (_e = (_d = oldValue === null || oldValue === void 0 ? void 0 : oldValue.selectionInfo) === null || _d === void 0 ? void 0 : _d.recordIds) !== null && _e !== void 0 ? _e : (_f = oldValue === null || oldValue === void 0 ? void 0 : oldValue.selectedRecord) === null || _f === void 0 ? void 0 : _f['__record__id__'];
|
66
|
+
if (!core.ObjectUtils.equals(newRecordsIds, oldRecordsIds)) {
|
65
67
|
this.loadGuides((oldValue === null || oldValue === void 0 ? void 0 : oldValue.insertionMode) != (newValue === null || newValue === void 0 ? void 0 : newValue.insertionMode));
|
66
68
|
}
|
67
69
|
}
|
68
70
|
observeMasterFormConfig() {
|
69
71
|
this.loadGuides(this.noGuideSelected());
|
72
|
+
this.snkMasterFormConfigChange.emit(this.masterFormConfig);
|
70
73
|
}
|
71
74
|
/**
|
72
75
|
* Abre o configurador do formulário
|
@@ -140,6 +143,11 @@ const SnkGuidesViewer = class {
|
|
140
143
|
* Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-crud.msg.ts"
|
141
144
|
*/
|
142
145
|
getMessage(key) {
|
146
|
+
var _a, _b;
|
147
|
+
if (this.dataUnit.isMultipleEdition) {
|
148
|
+
const selectedRecords = (_b = (_a = this.dataUnit.getSelectionInfo()) === null || _a === void 0 ? void 0 : _a.records) !== null && _b !== void 0 ? _b : [];
|
149
|
+
return `Editando ${selectedRecords.length} registros`;
|
150
|
+
}
|
143
151
|
return this.messagesBuilder.getMessage(key, this.dataUnit.getSelectedRecord());
|
144
152
|
}
|
145
153
|
loadGuides(changeSelection) {
|
@@ -152,12 +160,12 @@ const SnkGuidesViewer = class {
|
|
152
160
|
this._masterFormMetadata = form.buildFormMetadata(this.masterFormConfig, this.dataUnit, true);
|
153
161
|
const allSheets = this._masterFormMetadata.getAllSheets();
|
154
162
|
const currentRecord = this.dataUnit.getSelectedRecord();
|
155
|
-
const disableDetails =
|
163
|
+
const disableDetails = this.hasToDisableDetails(currentRecord);
|
156
164
|
const guides = [];
|
157
165
|
Array.from(allSheets.values()).forEach((sheet) => {
|
158
166
|
const item = { id: sheet.name, label: sheet.label };
|
159
167
|
if (this.isDetail(sheet.name) && disableDetails) {
|
160
|
-
item.tooltip = "Para alterar detalhes é necessário estar com um registro selecionado.";
|
168
|
+
item.tooltip = "Para alterar detalhes é necessário estar com um (e apenas um) registro selecionado.";
|
161
169
|
item.disabled = true;
|
162
170
|
}
|
163
171
|
guides.push(item);
|
@@ -170,6 +178,11 @@ const SnkGuidesViewer = class {
|
|
170
178
|
this.selectedGuide = this._guides.length > 0 ? this._guides[0] : undefined;
|
171
179
|
}
|
172
180
|
}
|
181
|
+
hasToDisableDetails(currentRecord) {
|
182
|
+
return !currentRecord
|
183
|
+
|| this.dataUnit.isNewRecord(currentRecord.__record__id__)
|
184
|
+
|| this.dataUnit.isMultipleEdition;
|
185
|
+
}
|
173
186
|
isDetail(formId) {
|
174
187
|
return form.FormMetadata.getDetailName(formId) != undefined;
|
175
188
|
}
|
@@ -192,47 +205,59 @@ const SnkGuidesViewer = class {
|
|
192
205
|
}
|
193
206
|
getTaskBarId() {
|
194
207
|
var _a;
|
195
|
-
|
196
|
-
|
197
|
-
loadTaskbarProcessor() {
|
198
|
-
var _a;
|
199
|
-
const taskbarId = this.getTaskBarId();
|
200
|
-
const disabledButtons = [];
|
201
|
-
if (!this.dataState || !this.dataState.hasPrevious) {
|
202
|
-
disabledButtons.push("PREVIOUS");
|
208
|
+
if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) {
|
209
|
+
return TASKBAR_ID.FINISH_EDITION;
|
203
210
|
}
|
204
|
-
if (
|
205
|
-
|
211
|
+
if (this.dataUnit.isMultipleEdition) {
|
212
|
+
return TASKBAR_ID.MUTIPLE_EDITION;
|
206
213
|
}
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
+
return TASKBAR_ID.REGULAR;
|
215
|
+
}
|
216
|
+
loadTaskbarProcessor() {
|
217
|
+
const taskbarIDs = {};
|
218
|
+
taskbarIDs[TASKBAR_ID.REGULAR] = this.buildBtnsRegularMode();
|
219
|
+
taskbarIDs[TASKBAR_ID.FINISH_EDITION] = [taskbarElements.TaskbarElement.CANCEL, taskbarElements.TaskbarElement.SAVE, this.handleAddGridMode()];
|
220
|
+
taskbarIDs[TASKBAR_ID.MUTIPLE_EDITION] = [taskbarElements.TaskbarElement.CANCEL];
|
221
|
+
this._taskbarProcessor = new fieldSearch.TaskbarProcessor(taskbarIDs);
|
222
|
+
this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.buildDisabledButtons(), this.buildInvisibleButtons());
|
223
|
+
}
|
224
|
+
buildBtnsRegularMode() {
|
225
|
+
var _a, _b;
|
226
|
+
const btnsRegularMode = [
|
227
|
+
taskbarElements.TaskbarElement.ATTACH, taskbarElements.TaskbarElement.CLONE, taskbarElements.TaskbarElement.REMOVE, taskbarElements.TaskbarElement.MORE_OPTIONS,
|
228
|
+
taskbarElements.TaskbarElement.ACTIONS_BUTTON, taskbarElements.TaskbarElement.DIVIDER, taskbarElements.TaskbarElement.GRID_MODE, taskbarElements.TaskbarElement.CONFIGURATOR,
|
229
|
+
];
|
230
|
+
if (((_b = (_a = this.dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) === null || _b === void 0 ? void 0 : _b.length) <= 1) {
|
231
|
+
btnsRegularMode.unshift(taskbarElements.TaskbarElement.PREVIOUS, taskbarElements.TaskbarElement.NEXT, taskbarElements.TaskbarElement.DIVIDER);
|
214
232
|
}
|
215
|
-
const btnsRegularMode = ["PREVIOUS", "NEXT", "DIVIDER", "ATTACH", "CLONE", "REMOVE", "MORE_OPTIONS", "ACTIONS_BUTTON", "DIVIDER", "GRID_MODE", "CONFIGURATOR"];
|
216
233
|
if (this.presentationMode == index$1.PresentationMode.SECONDARY) {
|
217
|
-
btnsRegularMode.unshift(
|
234
|
+
btnsRegularMode.unshift(taskbarElements.TaskbarElement.INSERT);
|
218
235
|
}
|
219
236
|
else {
|
220
|
-
btnsRegularMode.push(
|
237
|
+
btnsRegularMode.push(taskbarElements.TaskbarElement.INSERT);
|
221
238
|
}
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
239
|
+
return btnsRegularMode;
|
240
|
+
}
|
241
|
+
buildDisabledButtons() {
|
242
|
+
var _a, _b, _c, _d, _e, _f;
|
243
|
+
const disabledButtons = [];
|
244
|
+
if (!((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.hasPrevious))
|
245
|
+
disabledButtons.push(taskbarElements.TaskbarElement.PREVIOUS);
|
246
|
+
if (!((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.hasNext))
|
247
|
+
disabledButtons.push(taskbarElements.TaskbarElement.NEXT);
|
248
|
+
if (((_d = (_c = this.dataState) === null || _c === void 0 ? void 0 : _c.selectionInfo) === null || _d === void 0 ? void 0 : _d.length) > 1)
|
249
|
+
disabledButtons.push(taskbarElements.TaskbarElement.CLONE);
|
250
|
+
if ((_f = (_e = this.dataState) === null || _e === void 0 ? void 0 : _e.selectionInfo) === null || _f === void 0 ? void 0 : _f.isAllRecords())
|
251
|
+
disabledButtons.push(taskbarElements.TaskbarElement.REMOVE);
|
252
|
+
return disabledButtons;
|
228
253
|
}
|
229
254
|
handleAddGridMode() {
|
230
255
|
return this.enableGridInsert ? taskbarElements.TaskbarElement.GRID_MODE : "";
|
231
256
|
}
|
232
|
-
|
257
|
+
buildInvisibleButtons() {
|
233
258
|
const invisibleButtons = [];
|
234
259
|
if (this.dataState && this.dataState.selectionInfo.mode === DataUnit.SelectionMode.ALL_RECORDS)
|
235
|
-
invisibleButtons.push(
|
260
|
+
invisibleButtons.push(taskbarElements.TaskbarElement.ACTIONS_BUTTON);
|
236
261
|
return invisibleButtons;
|
237
262
|
}
|
238
263
|
static updateContentCard(formName, cardConfig, propertyChanged, configManager) {
|
@@ -445,17 +470,27 @@ const SnkGuidesViewer = class {
|
|
445
470
|
}
|
446
471
|
buildTaskBar() {
|
447
472
|
var _a;
|
448
|
-
return index.h("div", { class: `snk-guides-viewer__header-taskbar ${this.presentationMode != index$1.PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, index.h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ?
|
473
|
+
return index.h("div", { class: `snk-guides-viewer__header-taskbar ${this.presentationMode != index$1.PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, index.h("snk-taskbar", { key: "guideViewerTaskbar", "data-element-id": "guideViewer", configName: this.configName, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, actionsList: this.getActionsList(), messagesBuilder: this.messagesBuilder, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? taskbarElements.TaskbarElement.SAVE : taskbarElements.TaskbarElement.INSERT, "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS", alignRigth: true }, index.h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
|
449
474
|
}
|
450
475
|
async dataUnitActionHandler(action) {
|
451
476
|
var _a;
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
477
|
+
switch (action.type) {
|
478
|
+
case core.Action.EDITION_CANCELED:
|
479
|
+
case core.Action.DATA_SAVED:
|
480
|
+
if (this.dataUnit.isMultipleEdition) {
|
481
|
+
this.exitViewer();
|
482
|
+
this.dataUnit.isMultipleEdition = false;
|
483
|
+
}
|
484
|
+
break;
|
485
|
+
case core.Action.FIELD_INVALIDATED:
|
486
|
+
const guideName = this.getGuideName((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fieldName);
|
487
|
+
await this.addErrorBadgeToGuide(guideName);
|
488
|
+
await this.openGuideNavigator(guideName);
|
489
|
+
break;
|
490
|
+
case core.Action.METADATA_LOADED:
|
491
|
+
case core.Action.MULTIPLE_EDITION_CHANGED:
|
492
|
+
this.loadGuides(this.noGuideSelected());
|
493
|
+
break;
|
459
494
|
}
|
460
495
|
}
|
461
496
|
async addErrorBadgeToGuide(guideName) {
|
@@ -495,6 +530,20 @@ const SnkGuidesViewer = class {
|
|
495
530
|
var _a, _b;
|
496
531
|
return (_b = (_a = this.getCustomTitle) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : this.getMessage("snkCrud.title");
|
497
532
|
}
|
533
|
+
getTitleTooltip() {
|
534
|
+
if (!this.dataUnit.isMultipleEdition)
|
535
|
+
return;
|
536
|
+
return this.buildRecordIdsArray();
|
537
|
+
}
|
538
|
+
buildRecordIdsArray() {
|
539
|
+
var _a, _b;
|
540
|
+
const selectedRecords = (_b = (_a = this.dataUnit.getSelectionInfo()) === null || _a === void 0 ? void 0 : _a.records) !== null && _b !== void 0 ? _b : [];
|
541
|
+
if (selectedRecords.length === 0) {
|
542
|
+
return "[]";
|
543
|
+
}
|
544
|
+
const labels = selectedRecords.map(record => this.messagesBuilder.getMessage("snkCrud.title", record));
|
545
|
+
return `[${labels.join(", ")}]`;
|
546
|
+
}
|
498
547
|
componentDidLoad() {
|
499
548
|
this.dataUnit.subscribe(this.dataUnitActionHandler.bind(this));
|
500
549
|
}
|
@@ -508,7 +557,7 @@ const SnkGuidesViewer = class {
|
|
508
557
|
}
|
509
558
|
this.loadTaskbarProcessor();
|
510
559
|
const showGuides = this._guides && (this._guides.length > 1);
|
511
|
-
return (index.h("section", { class: "snk-guides-viewer", ref: ref => this._container = ref, tabindex: -1 }, index.h("div", { class: "ez-row snk-guides-viewer__header" }, index.h("div", { class: "snk-guides-viewer__header-breadcrumb ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, index.h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), index.h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, index.h("h1", { class: "ez-title ez-title--primary ez-title--xlarge" }, this.getTitle()), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
|
560
|
+
return (index.h("section", { class: "snk-guides-viewer", ref: ref => this._container = ref, tabindex: -1 }, index.h("div", { class: "ez-row snk-guides-viewer__header" }, index.h("div", { class: "snk-guides-viewer__header-breadcrumb ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, index.h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), index.h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, index.h("h1", { class: "ez-title ez-title--primary ez-title--xlarge", title: this.getTitleTooltip() }, this.getTitle()), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
|
512
561
|
index.h("div", { class: "ez-margin-top--extra-small" }, index.h("ez-breadcrumb", Object.assign({ items: this._breadcrumbItems, onSelectedItem: (evt) => this.onBreadcrumbClickHandler(evt === null || evt === void 0 ? void 0 : evt.detail) }, { [core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${core.ElementIDUtils.getInternalIDInfo("breadcrumb")}` }))))), this.presentationMode != index$1.PresentationMode.SECONDARY && this.buildTaskBar()), index.h("div", { class: "snk-guides-viewer__container" }, showGuides ?
|
513
562
|
index.h("ez-guide-navigator", { ref: (ref) => this._guideNavigator = ref, class: "snk-guides-viewer__guide-navigator", items: this._guides, selectedId: this.selectedGuide ? this.selectedGuide.id : undefined, onEzSelectionChange: evt => this.updateSelectedGuideHandler(evt.detail) })
|
514
563
|
:
|
@@ -530,6 +579,12 @@ const SnkGuidesViewer = class {
|
|
530
579
|
"masterFormConfig": ["observeMasterFormConfig"]
|
531
580
|
}; }
|
532
581
|
};
|
582
|
+
var TASKBAR_ID;
|
583
|
+
(function (TASKBAR_ID) {
|
584
|
+
TASKBAR_ID["FINISH_EDITION"] = "snkGuideViewer.finish_edition";
|
585
|
+
TASKBAR_ID["MUTIPLE_EDITION"] = "snkGuideViewer.multiple_edition";
|
586
|
+
TASKBAR_ID["REGULAR"] = "snkGuideViewer.regular";
|
587
|
+
})(TASKBAR_ID || (TASKBAR_ID = {}));
|
533
588
|
SnkGuidesViewer.style = snkGuidesViewerCss;
|
534
589
|
|
535
590
|
exports.SnkGuidesViewer = SnkGuidesViewer;
|
@@ -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-fd39f437.js');
|
6
6
|
require('./index-f9e81701.js');
|
7
7
|
require('@sankhyalabs/core');
|
8
8
|
require('./SnkFormConfigManager-45a8d7b7.js');
|
@@ -15,12 +15,12 @@ require('./filter-item-type.enum-a7ffdaa6.js');
|
|
15
15
|
require('./constants-77c1b8bd.js');
|
16
16
|
require('@sankhyalabs/ezui/dist/collection/utils/form');
|
17
17
|
require('./field-search-68e34bf4.js');
|
18
|
-
require('./taskbar-elements-
|
18
|
+
require('./taskbar-elements-02379452.js');
|
19
19
|
require('./index-e3e39724.js');
|
20
20
|
require('./index-102ba62d.js');
|
21
21
|
require('./ISave-c76e2c51.js');
|
22
22
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
23
|
-
require('./dataunit-fetcher-
|
23
|
+
require('./dataunit-fetcher-a723f0dc.js');
|
24
24
|
require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
|
25
25
|
require('@sankhyalabs/core/dist/utils/SortingUtils');
|
26
26
|
require('./ResourceIDUtils-5ff86aa7.js');
|
@@ -9,7 +9,7 @@ require('./DataFetcher-1afdb18e.js');
|
|
9
9
|
require('./index-e3e39724.js');
|
10
10
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
11
11
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
12
|
-
require('./dataunit-fetcher-
|
12
|
+
require('./dataunit-fetcher-a723f0dc.js');
|
13
13
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
14
14
|
require('./form-config-fetcher-40d3f752.js');
|
15
15
|
require('./constants-77c1b8bd.js');
|
@@ -6,14 +6,14 @@ const index = require('./index-f9e81701.js');
|
|
6
6
|
const core = require('@sankhyalabs/core');
|
7
7
|
const utils = require('@sankhyalabs/ezui/dist/collection/utils');
|
8
8
|
const constants = require('./constants-77c1b8bd.js');
|
9
|
-
const taskbarElements = require('./taskbar-elements-
|
9
|
+
const taskbarElements = require('./taskbar-elements-02379452.js');
|
10
10
|
require('./DataFetcher-1afdb18e.js');
|
11
11
|
require('./ISave-c76e2c51.js');
|
12
|
-
const ClientSideExporterProvider = require('./ClientSideExporterProvider-
|
12
|
+
const ClientSideExporterProvider = require('./ClientSideExporterProvider-a2753c93.js');
|
13
13
|
const index$1 = require('./index-e3e39724.js');
|
14
14
|
require('@sankhyalabs/ezui/dist/collection/utils/constants');
|
15
15
|
require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
|
16
|
-
const dataunitFetcher = require('./dataunit-fetcher-
|
16
|
+
const dataunitFetcher = require('./dataunit-fetcher-a723f0dc.js');
|
17
17
|
require('./filter-item-type.enum-a7ffdaa6.js');
|
18
18
|
const formConfigFetcher = require('./form-config-fetcher-40d3f752.js');
|
19
19
|
const fieldSearch = require('./field-search-68e34bf4.js');
|
@@ -47,13 +47,6 @@ const SnkSimpleCrud = class {
|
|
47
47
|
this._formConfigFetcher = new formConfigFetcher.FormConfigFetcher();
|
48
48
|
this._customEditors = new Map();
|
49
49
|
this._customRenders = new Map();
|
50
|
-
this._taskbarProcessor = new fieldSearch.TaskbarProcessor({
|
51
|
-
"snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [taskbarElements.TaskbarElement.GRID_MODE], true),
|
52
|
-
"snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
|
53
|
-
"snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [taskbarElements.TaskbarElement.GRID_MODE], true),
|
54
|
-
"snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
|
55
|
-
"snkSimpleCrudTaskbar.finish_edition": this.getFinishEditionButtonsCallback.bind(this)
|
56
|
-
});
|
57
50
|
this._showPopUpGridConfig = false;
|
58
51
|
this._currentViewMode = constants.VIEW_MODE.GRID;
|
59
52
|
this._config = undefined;
|
@@ -86,6 +79,7 @@ const SnkSimpleCrud = class {
|
|
86
79
|
this.ignoreReadOnlyFormFields = false;
|
87
80
|
this.autoFocus = true;
|
88
81
|
this.domainMessagesBuilder = undefined;
|
82
|
+
this.multipleEditionEnabled = true;
|
89
83
|
this.layoutFormConfig = false;
|
90
84
|
this.autoLoad = undefined;
|
91
85
|
this.outlineMode = false;
|
@@ -146,8 +140,25 @@ const SnkSimpleCrud = class {
|
|
146
140
|
newCustomFieldProps.set(fieldName, Object.assign(Object.assign({}, currentProps), { [propName]: value }));
|
147
141
|
this._fieldsProps = newCustomFieldProps;
|
148
142
|
}
|
143
|
+
loadTaskbarProcessor() {
|
144
|
+
const taskbarIDs = {};
|
145
|
+
taskbarIDs[TASKBAR_ID.FORM_REGULAR] = this.getButtons(false, [taskbarElements.TaskbarElement.GRID_MODE], true);
|
146
|
+
taskbarIDs[TASKBAR_ID.GRID_REGULAR] = this.getButtons(false, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]);
|
147
|
+
taskbarIDs[TASKBAR_ID.FORM_SELECTED] = this.getButtons(true, [taskbarElements.TaskbarElement.GRID_MODE], true);
|
148
|
+
taskbarIDs[TASKBAR_ID.GRID_SELECTED] = this.getGridSelectedButtonsCallBack.bind(this);
|
149
|
+
taskbarIDs[TASKBAR_ID.FINISH_EDITION] = this.getFinishEditionButtonsCallback.bind(this);
|
150
|
+
taskbarIDs[TASKBAR_ID.MULTIPLE_EDITION] = [taskbarElements.TaskbarElement.CANCEL];
|
151
|
+
this._taskbarProcessor = new fieldSearch.TaskbarProcessor(taskbarIDs);
|
152
|
+
}
|
153
|
+
getGridSelectedButtonsCallBack() {
|
154
|
+
var _a, _b, _c;
|
155
|
+
if (!this.multipleEditionEnabled || ((_c = (_b = (_a = this.dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length) === 1) {
|
156
|
+
return this.getButtons(true, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]);
|
157
|
+
}
|
158
|
+
return this.getButtons(true, [taskbarElements.TaskbarElement.UPDATE_MULTIPLE, taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]);
|
159
|
+
}
|
149
160
|
getFinishEditionButtonsCallback() {
|
150
|
-
const btns = [
|
161
|
+
const btns = [taskbarElements.TaskbarElement.CANCEL, taskbarElements.TaskbarElement.SAVE];
|
151
162
|
if (this.enableGridInsert && this._currentViewMode !== constants.VIEW_MODE.ATTACHMENT) {
|
152
163
|
btns.push(this._currentViewMode === constants.VIEW_MODE.GRID ? taskbarElements.TaskbarElement.FORM_MODE : taskbarElements.TaskbarElement.GRID_MODE);
|
153
164
|
}
|
@@ -183,22 +194,32 @@ const SnkSimpleCrud = class {
|
|
183
194
|
async goToView(view) {
|
184
195
|
this._currentViewMode = view;
|
185
196
|
if (this._viewStack) {
|
197
|
+
if (view === constants.VIEW_MODE.GRID)
|
198
|
+
this.dataUnit.isMultipleEdition = false;
|
186
199
|
this._viewStack.show(view);
|
187
200
|
}
|
188
201
|
}
|
189
202
|
actionClickListener(evt) {
|
190
|
-
|
191
|
-
if (act === taskbarElements.TaskbarElement.CONFIGURATOR) {
|
192
|
-
this._snkConfigurator.open();
|
193
|
-
}
|
194
|
-
else if (act === taskbarElements.TaskbarElement.GRID_MODE) {
|
195
|
-
this.goToView(constants.VIEW_MODE.GRID);
|
196
|
-
}
|
197
|
-
else if (act === taskbarElements.TaskbarElement.FORM_MODE) {
|
198
|
-
this.goToView(constants.VIEW_MODE.FORM);
|
199
|
-
}
|
203
|
+
this.handleTaskbarAction(evt.detail);
|
200
204
|
evt.stopPropagation();
|
201
205
|
}
|
206
|
+
handleTaskbarAction(action) {
|
207
|
+
switch (action) {
|
208
|
+
case taskbarElements.TaskbarElement.CONFIGURATOR:
|
209
|
+
this._snkConfigurator.open();
|
210
|
+
break;
|
211
|
+
case taskbarElements.TaskbarElement.GRID_MODE:
|
212
|
+
this.goToView(constants.VIEW_MODE.GRID);
|
213
|
+
break;
|
214
|
+
case taskbarElements.TaskbarElement.FORM_MODE:
|
215
|
+
this.goToView(constants.VIEW_MODE.FORM);
|
216
|
+
break;
|
217
|
+
case taskbarElements.TaskbarElement.UPDATE_MULTIPLE:
|
218
|
+
this.dataUnit.isMultipleEdition = true;
|
219
|
+
this.goToView(constants.VIEW_MODE.FORM);
|
220
|
+
break;
|
221
|
+
}
|
222
|
+
}
|
202
223
|
async onChangeEntityName(newValue) {
|
203
224
|
if (this.dataUnit)
|
204
225
|
return;
|
@@ -330,8 +351,10 @@ const SnkSimpleCrud = class {
|
|
330
351
|
this.setFormConfig(await this._formConfigManager.loadConfig());
|
331
352
|
}
|
332
353
|
async componentWillRender() {
|
354
|
+
this.loadTaskbarProcessor();
|
333
355
|
this._resourceID = await this.application.getResourceID();
|
334
356
|
this.dataExporterProviderStore();
|
357
|
+
this.dataExporterProviderStore();
|
335
358
|
this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.getTaskBarDisabledButtons());
|
336
359
|
if (this.configName === undefined) {
|
337
360
|
return;
|
@@ -363,6 +386,14 @@ const SnkSimpleCrud = class {
|
|
363
386
|
componentDidLoad() {
|
364
387
|
utils.CSSVarsUtils.applyVarsGrid(this._element, this._grid);
|
365
388
|
this.initKeyboardManager();
|
389
|
+
this.dataUnit.subscribe(this.dataUnitActionHandler.bind(this));
|
390
|
+
}
|
391
|
+
async dataUnitActionHandler(action) {
|
392
|
+
if (action.type === core.Action.EDITION_CANCELED || action.type === core.Action.DATA_SAVED) {
|
393
|
+
if (this.dataUnit.isMultipleEdition) {
|
394
|
+
this.goToView(constants.VIEW_MODE.GRID);
|
395
|
+
}
|
396
|
+
}
|
366
397
|
}
|
367
398
|
setCustomRenders() {
|
368
399
|
if (!this._grid) {
|
@@ -401,14 +432,17 @@ const SnkSimpleCrud = class {
|
|
401
432
|
getTaskBarId() {
|
402
433
|
var _a, _b;
|
403
434
|
if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) {
|
404
|
-
return
|
435
|
+
return TASKBAR_ID.FINISH_EDITION;
|
436
|
+
}
|
437
|
+
if (this.dataUnit.isMultipleEdition) {
|
438
|
+
return TASKBAR_ID.MULTIPLE_EDITION;
|
405
439
|
}
|
406
440
|
if (((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) &&
|
407
441
|
!this.dataState.selectionInfo.isAllRecords() &&
|
408
442
|
this.dataState.selectionInfo.length > 0) {
|
409
|
-
return this._currentViewMode === constants.VIEW_MODE.GRID ?
|
443
|
+
return this._currentViewMode === constants.VIEW_MODE.GRID ? TASKBAR_ID.GRID_SELECTED : TASKBAR_ID.FORM_SELECTED;
|
410
444
|
}
|
411
|
-
return this._currentViewMode === constants.VIEW_MODE.GRID ?
|
445
|
+
return this._currentViewMode === constants.VIEW_MODE.GRID ? TASKBAR_ID.GRID_REGULAR : TASKBAR_ID.FORM_REGULAR;
|
412
446
|
}
|
413
447
|
initInMemoryDataUnit() {
|
414
448
|
this._inMemoryLoader = new dataunitFetcher.InMemoryLoader(this._metadata, undefined, { autoLoad: this.autoLoad });
|
@@ -794,6 +828,15 @@ const SnkSimpleCrud = class {
|
|
794
828
|
"gridLegacyConfigName": ["observeGridLegacy"]
|
795
829
|
}; }
|
796
830
|
};
|
831
|
+
var TASKBAR_ID;
|
832
|
+
(function (TASKBAR_ID) {
|
833
|
+
TASKBAR_ID["FORM_REGULAR"] = "snkSimpleCrudTaskbar.form_regular";
|
834
|
+
TASKBAR_ID["GRID_REGULAR"] = "snkSimpleCrudTaskbar.grid_regular";
|
835
|
+
TASKBAR_ID["FORM_SELECTED"] = "snkSimpleCrudTaskbar.form_selected";
|
836
|
+
TASKBAR_ID["GRID_SELECTED"] = "snkSimpleCrudTaskbar.grid_selected";
|
837
|
+
TASKBAR_ID["FINISH_EDITION"] = "snkSimpleCrudTaskbar.finish_edition";
|
838
|
+
TASKBAR_ID["MULTIPLE_EDITION"] = "snkSimpleCrudTaskbar.multiple_edition";
|
839
|
+
})(TASKBAR_ID || (TASKBAR_ID = {}));
|
797
840
|
SnkSimpleCrud.style = snkSimpleCrudCss;
|
798
841
|
|
799
842
|
exports.snk_simple_crud = SnkSimpleCrud;
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
5
5
|
const index = require('./index-f9e81701.js');
|
6
6
|
const core = require('@sankhyalabs/core');
|
7
7
|
const AuthorizationConfig = require('./AuthorizationConfig-79ffae4b.js');
|
8
|
-
const taskbarElements = require('./taskbar-elements-
|
8
|
+
const taskbarElements = require('./taskbar-elements-02379452.js');
|
9
9
|
const index$1 = require('./index-e3e39724.js');
|
10
10
|
require('./index-102ba62d.js');
|
11
11
|
|
@@ -22,6 +22,7 @@ const SnkTaskbar = class {
|
|
22
22
|
this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
|
23
23
|
this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
|
24
24
|
this._titleKeyByElement = {
|
25
|
+
[taskbarElements.TaskbarElement.UPDATE_MULTIPLE]: "snkTaskbar.titleUpdateMultiple",
|
25
26
|
[taskbarElements.TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
|
26
27
|
[taskbarElements.TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
|
27
28
|
[taskbarElements.TaskbarElement.NEXT]: "snkTaskbar.titleNext",
|
@@ -23,6 +23,7 @@ exports.TaskbarElement = void 0;
|
|
23
23
|
TaskbarElement["DATA_EXPORTER"] = "DATA_EXPORTER";
|
24
24
|
TaskbarElement["ATTACH"] = "ATTACH";
|
25
25
|
TaskbarElement["ACTIONS_BUTTON"] = "ACTIONS_BUTTON";
|
26
|
+
TaskbarElement["UPDATE_MULTIPLE"] = "UPDATE_MULTIPLE";
|
26
27
|
})(exports.TaskbarElement || (exports.TaskbarElement = {}));
|
27
28
|
exports.AuthorizationElements = void 0;
|
28
29
|
(function (AuthorizationElements) {
|
@@ -62,6 +63,8 @@ const buildElem = (element, className, dataElementId, getTitle, action, isEnable
|
|
62
63
|
return iconButton("sync", element, className, dataElementId, title, action, isEnabled);
|
63
64
|
case exports.TaskbarElement.UPDATE:
|
64
65
|
return iconButton("edit", element, className, dataElementId, title, action, isEnabled);
|
66
|
+
case exports.TaskbarElement.UPDATE_MULTIPLE:
|
67
|
+
return iconButton("edit-table", element, className, dataElementId, title, action, isEnabled);
|
65
68
|
case exports.TaskbarElement.CLONE:
|
66
69
|
return iconButton("copy", element, className, dataElementId, title, action, isEnabled);
|
67
70
|
case exports.TaskbarElement.REMOVE:
|
@@ -48,6 +48,7 @@ export class SnkCrud {
|
|
48
48
|
this.setCustomFormTitle = undefined;
|
49
49
|
this.strategyExporter = ExporterStrategy.SERVER_SIDE;
|
50
50
|
this.layoutFormConfig = false;
|
51
|
+
this.multipleEditionEnabled = true;
|
51
52
|
this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
|
52
53
|
}
|
53
54
|
/**
|
@@ -134,14 +135,20 @@ export class SnkCrud {
|
|
134
135
|
this.setViewMode(VIEW_MODE.FORM);
|
135
136
|
}
|
136
137
|
async executeAction(act) {
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
138
|
+
switch (act) {
|
139
|
+
case TaskbarElement.GRID_MODE:
|
140
|
+
return this.setViewMode(VIEW_MODE.GRID);
|
141
|
+
case TaskbarElement.FORM_MODE:
|
142
|
+
case TaskbarElement.UPDATE:
|
143
|
+
return this.gridToForm(act !== TaskbarElement.UPDATE);
|
144
|
+
case TaskbarElement.UPDATE_MULTIPLE:
|
145
|
+
this._dataUnit.isMultipleEdition = true;
|
146
|
+
return this.setViewMode(VIEW_MODE.FORM);
|
147
|
+
case TaskbarElement.CONFIGURATOR:
|
148
|
+
return this._snkConfigurator.open();
|
149
|
+
case TaskbarElement.ATTACH:
|
150
|
+
return this.setViewMode(VIEW_MODE.ATTACHMENT);
|
151
|
+
}
|
145
152
|
}
|
146
153
|
backView() {
|
147
154
|
const lastView = this._viewHistory.at(-2) || VIEW_MODE.GRID;
|
@@ -151,6 +158,7 @@ export class SnkCrud {
|
|
151
158
|
this._viewStack.show(viewMode);
|
152
159
|
this._currentViewMode = viewMode;
|
153
160
|
if (viewMode === VIEW_MODE.GRID) {
|
161
|
+
this._dataUnit.isMultipleEdition = false;
|
154
162
|
this._snkGrid.setFocus();
|
155
163
|
}
|
156
164
|
else if (viewMode === VIEW_MODE.FORM) {
|
@@ -371,7 +379,7 @@ export class SnkCrud {
|
|
371
379
|
return;
|
372
380
|
}
|
373
381
|
this._snkDataUnit.ignoreSaveMessage = (this._currentViewMode === VIEW_MODE.GRID && !this.enableGridInsert);
|
374
|
-
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, layoutFormConfig: this.layoutFormConfig })), 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" }))));
|
382
|
+
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, multipleEditionEnabled: this.multipleEditionEnabled }, 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, layoutFormConfig: this.layoutFormConfig })), 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" }))));
|
375
383
|
}
|
376
384
|
static get is() { return "snk-crud"; }
|
377
385
|
static get encapsulation() { return "scoped"; }
|
@@ -871,6 +879,24 @@ export class SnkCrud {
|
|
871
879
|
"attribute": "layout-form-config",
|
872
880
|
"reflect": false,
|
873
881
|
"defaultValue": "false"
|
882
|
+
},
|
883
|
+
"multipleEditionEnabled": {
|
884
|
+
"type": "boolean",
|
885
|
+
"mutable": false,
|
886
|
+
"complexType": {
|
887
|
+
"original": "boolean",
|
888
|
+
"resolved": "boolean",
|
889
|
+
"references": {}
|
890
|
+
},
|
891
|
+
"required": false,
|
892
|
+
"optional": false,
|
893
|
+
"docs": {
|
894
|
+
"tags": [],
|
895
|
+
"text": "Habilita a edi\u00E7\u00E3o de m\u00FAltiplos registros simult\u00E2neos."
|
896
|
+
},
|
897
|
+
"attribute": "multiple-edition-enabled",
|
898
|
+
"reflect": false,
|
899
|
+
"defaultValue": "true"
|
874
900
|
}
|
875
901
|
};
|
876
902
|
}
|