@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
@@ -27,7 +27,7 @@ export class SnkGrid {
|
|
27
27
|
});
|
28
28
|
this._headerTaskbarProcessor = new TaskbarProcessor({
|
29
29
|
"snkGridHeaderTaskbar.unselected": ["REFRESH", "DATA_EXPORTER", "ACTIONS_BUTTON", "MORE_OPTIONS"],
|
30
|
-
"snkGridHeaderTaskbar.selected":
|
30
|
+
"snkGridHeaderTaskbar.selected": this.getGridHeaderSelectedBtns(),
|
31
31
|
"snkGridHeaderTaskbar.detail.unselected": ["REFRESH", "MORE_OPTIONS"],
|
32
32
|
"snkGridHeaderTaskbar.detail.selected": ["UPDATE", "ATTACH", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"],
|
33
33
|
"snkGridHeaderTaskbar.singleTaskbar.unselected": ["INSERT", "FORM_MODE", "CONFIGURATOR", "REFRESH", "DATA_EXPORTER", "ACTIONS_BUTTON", "MORE_OPTIONS"],
|
@@ -78,6 +78,17 @@ export class SnkGrid {
|
|
78
78
|
this.enableGridInsert = false;
|
79
79
|
this.outlineMode = false;
|
80
80
|
this.strategyExporter = ExporterStrategy.SERVER_SIDE;
|
81
|
+
this.multipleEditionEnabled = true;
|
82
|
+
}
|
83
|
+
getGridHeaderSelectedBtns() {
|
84
|
+
const btns = [
|
85
|
+
TaskbarElement.UPDATE, TaskbarElement.CLONE, TaskbarElement.REMOVE,
|
86
|
+
TaskbarElement.MORE_OPTIONS, TaskbarElement.DIVIDER, TaskbarElement.ATTACH, TaskbarElement.FORM_MODE,
|
87
|
+
TaskbarElement.CONFIGURATOR, TaskbarElement.REFRESH, TaskbarElement.DATA_EXPORTER, TaskbarElement.ACTIONS_BUTTON
|
88
|
+
];
|
89
|
+
if (this.multipleEditionEnabled)
|
90
|
+
btns.unshift(TaskbarElement.UPDATE_MULTIPLE);
|
91
|
+
return btns;
|
81
92
|
}
|
82
93
|
reloadConfig() {
|
83
94
|
this.loadConfig();
|
@@ -362,20 +373,23 @@ export class SnkGrid {
|
|
362
373
|
const disabledButtons = [];
|
363
374
|
if ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) {
|
364
375
|
if (this._dataState.selectionInfo.length > 1) {
|
365
|
-
disabledButtons.push(TaskbarElement.CLONE,
|
376
|
+
disabledButtons.push(TaskbarElement.CLONE, TaskbarElement.ATTACH, TaskbarElement.UPDATE);
|
366
377
|
}
|
367
378
|
if (this._dataState.selectionInfo.isAllRecords()) {
|
368
|
-
disabledButtons.push(
|
379
|
+
disabledButtons.push(TaskbarElement.REMOVE);
|
369
380
|
}
|
370
381
|
}
|
371
382
|
return disabledButtons;
|
372
383
|
}
|
373
384
|
getInvisibleButtons() {
|
385
|
+
var _a, _b;
|
374
386
|
let invisibleButtons = [];
|
375
387
|
if (!this._dataUnit || this._dataUnit.records.length === 0)
|
376
|
-
invisibleButtons.push(
|
377
|
-
if (this._dataState
|
378
|
-
invisibleButtons.push(
|
388
|
+
invisibleButtons.push(TaskbarElement.DATA_EXPORTER);
|
389
|
+
if (((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo.mode) === SelectionMode.ALL_RECORDS)
|
390
|
+
invisibleButtons.push(TaskbarElement.ACTIONS_BUTTON);
|
391
|
+
if (((_b = this._dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo.length) === 1)
|
392
|
+
invisibleButtons.push(TaskbarElement.UPDATE_MULTIPLE);
|
379
393
|
return invisibleButtons;
|
380
394
|
}
|
381
395
|
componentWillRender() {
|
@@ -1026,6 +1040,24 @@ export class SnkGrid {
|
|
1026
1040
|
"attribute": "strategy-exporter",
|
1027
1041
|
"reflect": false,
|
1028
1042
|
"defaultValue": "ExporterStrategy.SERVER_SIDE"
|
1043
|
+
},
|
1044
|
+
"multipleEditionEnabled": {
|
1045
|
+
"type": "boolean",
|
1046
|
+
"mutable": false,
|
1047
|
+
"complexType": {
|
1048
|
+
"original": "boolean",
|
1049
|
+
"resolved": "boolean",
|
1050
|
+
"references": {}
|
1051
|
+
},
|
1052
|
+
"required": false,
|
1053
|
+
"optional": false,
|
1054
|
+
"docs": {
|
1055
|
+
"tags": [],
|
1056
|
+
"text": "Habilita a edi\u00E7\u00E3o de m\u00FAltiplos registros simult\u00E2neos."
|
1057
|
+
},
|
1058
|
+
"attribute": "multiple-edition-enabled",
|
1059
|
+
"reflect": false,
|
1060
|
+
"defaultValue": "true"
|
1029
1061
|
}
|
1030
1062
|
};
|
1031
1063
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ApplicationContext, DataType, ElementIDUtils, FloatingManager, JSUtils, KeyboardManager, ObjectUtils, StringUtils, UserInterface, } from '@sankhyalabs/core';
|
1
|
+
import { Action as DUAction, ApplicationContext, DataType, ElementIDUtils, FloatingManager, JSUtils, KeyboardManager, ObjectUtils, StringUtils, UserInterface, } from '@sankhyalabs/core';
|
2
2
|
import { CSSVarsUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
3
3
|
import { h } from '@stencil/core';
|
4
4
|
import { SIMPLE_CRUD_MODE, VIEW_MODE } from '../../lib/utils/constants';
|
@@ -22,13 +22,6 @@ export class SnkSimpleCrud {
|
|
22
22
|
this._formConfigFetcher = new FormConfigFetcher();
|
23
23
|
this._customEditors = new Map();
|
24
24
|
this._customRenders = new Map();
|
25
|
-
this._taskbarProcessor = new TaskbarProcessor({
|
26
|
-
"snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [TaskbarElement.GRID_MODE], true),
|
27
|
-
"snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]),
|
28
|
-
"snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [TaskbarElement.GRID_MODE], true),
|
29
|
-
"snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]),
|
30
|
-
"snkSimpleCrudTaskbar.finish_edition": this.getFinishEditionButtonsCallback.bind(this)
|
31
|
-
});
|
32
25
|
this._showPopUpGridConfig = false;
|
33
26
|
this._currentViewMode = VIEW_MODE.GRID;
|
34
27
|
this._config = undefined;
|
@@ -61,6 +54,7 @@ export class SnkSimpleCrud {
|
|
61
54
|
this.ignoreReadOnlyFormFields = false;
|
62
55
|
this.autoFocus = true;
|
63
56
|
this.domainMessagesBuilder = undefined;
|
57
|
+
this.multipleEditionEnabled = true;
|
64
58
|
this.layoutFormConfig = false;
|
65
59
|
this.autoLoad = undefined;
|
66
60
|
this.outlineMode = false;
|
@@ -121,8 +115,25 @@ export class SnkSimpleCrud {
|
|
121
115
|
newCustomFieldProps.set(fieldName, Object.assign(Object.assign({}, currentProps), { [propName]: value }));
|
122
116
|
this._fieldsProps = newCustomFieldProps;
|
123
117
|
}
|
118
|
+
loadTaskbarProcessor() {
|
119
|
+
const taskbarIDs = {};
|
120
|
+
taskbarIDs[TASKBAR_ID.FORM_REGULAR] = this.getButtons(false, [TaskbarElement.GRID_MODE], true);
|
121
|
+
taskbarIDs[TASKBAR_ID.GRID_REGULAR] = this.getButtons(false, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]);
|
122
|
+
taskbarIDs[TASKBAR_ID.FORM_SELECTED] = this.getButtons(true, [TaskbarElement.GRID_MODE], true);
|
123
|
+
taskbarIDs[TASKBAR_ID.GRID_SELECTED] = this.getGridSelectedButtonsCallBack.bind(this);
|
124
|
+
taskbarIDs[TASKBAR_ID.FINISH_EDITION] = this.getFinishEditionButtonsCallback.bind(this);
|
125
|
+
taskbarIDs[TASKBAR_ID.MULTIPLE_EDITION] = [TaskbarElement.CANCEL];
|
126
|
+
this._taskbarProcessor = new TaskbarProcessor(taskbarIDs);
|
127
|
+
}
|
128
|
+
getGridSelectedButtonsCallBack() {
|
129
|
+
var _a, _b, _c;
|
130
|
+
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) {
|
131
|
+
return this.getButtons(true, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]);
|
132
|
+
}
|
133
|
+
return this.getButtons(true, [TaskbarElement.UPDATE_MULTIPLE, TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]);
|
134
|
+
}
|
124
135
|
getFinishEditionButtonsCallback() {
|
125
|
-
const btns = [
|
136
|
+
const btns = [TaskbarElement.CANCEL, TaskbarElement.SAVE];
|
126
137
|
if (this.enableGridInsert && this._currentViewMode !== VIEW_MODE.ATTACHMENT) {
|
127
138
|
btns.push(this._currentViewMode === VIEW_MODE.GRID ? TaskbarElement.FORM_MODE : TaskbarElement.GRID_MODE);
|
128
139
|
}
|
@@ -158,22 +169,32 @@ export class SnkSimpleCrud {
|
|
158
169
|
async goToView(view) {
|
159
170
|
this._currentViewMode = view;
|
160
171
|
if (this._viewStack) {
|
172
|
+
if (view === VIEW_MODE.GRID)
|
173
|
+
this.dataUnit.isMultipleEdition = false;
|
161
174
|
this._viewStack.show(view);
|
162
175
|
}
|
163
176
|
}
|
164
177
|
actionClickListener(evt) {
|
165
|
-
|
166
|
-
if (act === TaskbarElement.CONFIGURATOR) {
|
167
|
-
this._snkConfigurator.open();
|
168
|
-
}
|
169
|
-
else if (act === TaskbarElement.GRID_MODE) {
|
170
|
-
this.goToView(VIEW_MODE.GRID);
|
171
|
-
}
|
172
|
-
else if (act === TaskbarElement.FORM_MODE) {
|
173
|
-
this.goToView(VIEW_MODE.FORM);
|
174
|
-
}
|
178
|
+
this.handleTaskbarAction(evt.detail);
|
175
179
|
evt.stopPropagation();
|
176
180
|
}
|
181
|
+
handleTaskbarAction(action) {
|
182
|
+
switch (action) {
|
183
|
+
case TaskbarElement.CONFIGURATOR:
|
184
|
+
this._snkConfigurator.open();
|
185
|
+
break;
|
186
|
+
case TaskbarElement.GRID_MODE:
|
187
|
+
this.goToView(VIEW_MODE.GRID);
|
188
|
+
break;
|
189
|
+
case TaskbarElement.FORM_MODE:
|
190
|
+
this.goToView(VIEW_MODE.FORM);
|
191
|
+
break;
|
192
|
+
case TaskbarElement.UPDATE_MULTIPLE:
|
193
|
+
this.dataUnit.isMultipleEdition = true;
|
194
|
+
this.goToView(VIEW_MODE.FORM);
|
195
|
+
break;
|
196
|
+
}
|
197
|
+
}
|
177
198
|
async onChangeEntityName(newValue) {
|
178
199
|
if (this.dataUnit)
|
179
200
|
return;
|
@@ -305,8 +326,10 @@ export class SnkSimpleCrud {
|
|
305
326
|
this.setFormConfig(await this._formConfigManager.loadConfig());
|
306
327
|
}
|
307
328
|
async componentWillRender() {
|
329
|
+
this.loadTaskbarProcessor();
|
308
330
|
this._resourceID = await this.application.getResourceID();
|
309
331
|
this.dataExporterProviderStore();
|
332
|
+
this.dataExporterProviderStore();
|
310
333
|
this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.getTaskBarDisabledButtons());
|
311
334
|
if (this.configName === undefined) {
|
312
335
|
return;
|
@@ -338,6 +361,14 @@ export class SnkSimpleCrud {
|
|
338
361
|
componentDidLoad() {
|
339
362
|
CSSVarsUtils.applyVarsGrid(this._element, this._grid);
|
340
363
|
this.initKeyboardManager();
|
364
|
+
this.dataUnit.subscribe(this.dataUnitActionHandler.bind(this));
|
365
|
+
}
|
366
|
+
async dataUnitActionHandler(action) {
|
367
|
+
if (action.type === DUAction.EDITION_CANCELED || action.type === DUAction.DATA_SAVED) {
|
368
|
+
if (this.dataUnit.isMultipleEdition) {
|
369
|
+
this.goToView(VIEW_MODE.GRID);
|
370
|
+
}
|
371
|
+
}
|
341
372
|
}
|
342
373
|
setCustomRenders() {
|
343
374
|
if (!this._grid) {
|
@@ -376,14 +407,17 @@ export class SnkSimpleCrud {
|
|
376
407
|
getTaskBarId() {
|
377
408
|
var _a, _b;
|
378
409
|
if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) {
|
379
|
-
return
|
410
|
+
return TASKBAR_ID.FINISH_EDITION;
|
411
|
+
}
|
412
|
+
if (this.dataUnit.isMultipleEdition) {
|
413
|
+
return TASKBAR_ID.MULTIPLE_EDITION;
|
380
414
|
}
|
381
415
|
if (((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) &&
|
382
416
|
!this.dataState.selectionInfo.isAllRecords() &&
|
383
417
|
this.dataState.selectionInfo.length > 0) {
|
384
|
-
return this._currentViewMode === VIEW_MODE.GRID ?
|
418
|
+
return this._currentViewMode === VIEW_MODE.GRID ? TASKBAR_ID.GRID_SELECTED : TASKBAR_ID.FORM_SELECTED;
|
385
419
|
}
|
386
|
-
return this._currentViewMode === VIEW_MODE.GRID ?
|
420
|
+
return this._currentViewMode === VIEW_MODE.GRID ? TASKBAR_ID.GRID_REGULAR : TASKBAR_ID.FORM_REGULAR;
|
387
421
|
}
|
388
422
|
initInMemoryDataUnit() {
|
389
423
|
this._inMemoryLoader = new InMemoryLoader(this._metadata, undefined, { autoLoad: this.autoLoad });
|
@@ -1237,6 +1271,24 @@ export class SnkSimpleCrud {
|
|
1237
1271
|
"attribute": "domain-messages-builder",
|
1238
1272
|
"reflect": false
|
1239
1273
|
},
|
1274
|
+
"multipleEditionEnabled": {
|
1275
|
+
"type": "boolean",
|
1276
|
+
"mutable": false,
|
1277
|
+
"complexType": {
|
1278
|
+
"original": "boolean",
|
1279
|
+
"resolved": "boolean",
|
1280
|
+
"references": {}
|
1281
|
+
},
|
1282
|
+
"required": false,
|
1283
|
+
"optional": false,
|
1284
|
+
"docs": {
|
1285
|
+
"tags": [],
|
1286
|
+
"text": "Habilita a edi\u00E7\u00E3o de m\u00FAltiplos registros simult\u00E2neos."
|
1287
|
+
},
|
1288
|
+
"attribute": "multiple-edition-enabled",
|
1289
|
+
"reflect": false,
|
1290
|
+
"defaultValue": "true"
|
1291
|
+
},
|
1240
1292
|
"layoutFormConfig": {
|
1241
1293
|
"type": "boolean",
|
1242
1294
|
"mutable": false,
|
@@ -1714,3 +1766,12 @@ export class SnkSimpleCrud {
|
|
1714
1766
|
}];
|
1715
1767
|
}
|
1716
1768
|
}
|
1769
|
+
var TASKBAR_ID;
|
1770
|
+
(function (TASKBAR_ID) {
|
1771
|
+
TASKBAR_ID["FORM_REGULAR"] = "snkSimpleCrudTaskbar.form_regular";
|
1772
|
+
TASKBAR_ID["GRID_REGULAR"] = "snkSimpleCrudTaskbar.grid_regular";
|
1773
|
+
TASKBAR_ID["FORM_SELECTED"] = "snkSimpleCrudTaskbar.form_selected";
|
1774
|
+
TASKBAR_ID["GRID_SELECTED"] = "snkSimpleCrudTaskbar.grid_selected";
|
1775
|
+
TASKBAR_ID["FINISH_EDITION"] = "snkSimpleCrudTaskbar.finish_edition";
|
1776
|
+
TASKBAR_ID["MULTIPLE_EDITION"] = "snkSimpleCrudTaskbar.multiple_edition";
|
1777
|
+
})(TASKBAR_ID || (TASKBAR_ID = {}));
|
@@ -20,6 +20,7 @@ export var TaskbarElement;
|
|
20
20
|
TaskbarElement["DATA_EXPORTER"] = "DATA_EXPORTER";
|
21
21
|
TaskbarElement["ATTACH"] = "ATTACH";
|
22
22
|
TaskbarElement["ACTIONS_BUTTON"] = "ACTIONS_BUTTON";
|
23
|
+
TaskbarElement["UPDATE_MULTIPLE"] = "UPDATE_MULTIPLE";
|
23
24
|
})(TaskbarElement || (TaskbarElement = {}));
|
24
25
|
export var AuthorizationElements;
|
25
26
|
(function (AuthorizationElements) {
|
@@ -59,6 +60,8 @@ export const buildElem = (element, className, dataElementId, getTitle, action, i
|
|
59
60
|
return iconButton("sync", element, className, dataElementId, title, action, isEnabled);
|
60
61
|
case TaskbarElement.UPDATE:
|
61
62
|
return iconButton("edit", element, className, dataElementId, title, action, isEnabled);
|
63
|
+
case TaskbarElement.UPDATE_MULTIPLE:
|
64
|
+
return iconButton("edit-table", element, className, dataElementId, title, action, isEnabled);
|
62
65
|
case TaskbarElement.CLONE:
|
63
66
|
return iconButton("copy", element, className, dataElementId, title, action, isEnabled);
|
64
67
|
case TaskbarElement.REMOVE:
|
@@ -1,9 +1,8 @@
|
|
1
|
-
import { ApplicationContext, ElementIDUtils,
|
1
|
+
import { Action as DUAction, ApplicationContext, ElementIDUtils, LockManager, LockManagerOperation, OverflowDirection, OVERFLOWED_CLASS_NAME, OverflowWatcher, SilentException, StringUtils, } from '@sankhyalabs/core';
|
2
2
|
import { h, Host } from '@stencil/core';
|
3
3
|
import { AuthorizationConfig } from '../snk-configurator/AuthorizationConfig';
|
4
4
|
import { AuthorizationElements, buildCustomButton, buildElem, TaskbarElement, VisibleWhenForbidden, } from './elements/taskbar-elements';
|
5
5
|
import { PresentationMode } from '../../lib/@types';
|
6
|
-
import { Action as DUAction } from '@sankhyalabs/core';
|
7
6
|
export class SnkTaskbar {
|
8
7
|
constructor() {
|
9
8
|
this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
|
@@ -11,6 +10,7 @@ export class SnkTaskbar {
|
|
11
10
|
this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
|
12
11
|
this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
|
13
12
|
this._titleKeyByElement = {
|
13
|
+
[TaskbarElement.UPDATE_MULTIPLE]: "snkTaskbar.titleUpdateMultiple",
|
14
14
|
[TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
|
15
15
|
[TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
|
16
16
|
[TaskbarElement.NEXT]: "snkTaskbar.titleNext",
|
@@ -23,7 +23,7 @@ export default class PreloadManager {
|
|
23
23
|
static getSortingFunction(dataUnit, sorting) {
|
24
24
|
return SortingUtils.getSortingFunction(dataUnit, sorting);
|
25
25
|
}
|
26
|
-
static async getDistinct(dataUnit, fieldName) {
|
26
|
+
static async getDistinct(dataUnit, fieldName, onlyLabel = false) {
|
27
27
|
if (!PreloadManager.isCacheEnabled(dataUnit)) {
|
28
28
|
return Promise.resolve(ColumnFilterManager.compileDistinct(fieldName, dataUnit));
|
29
29
|
}
|
@@ -42,7 +42,10 @@ export default class PreloadManager {
|
|
42
42
|
if (fieldValue == undefined) {
|
43
43
|
return { key: null, value: null };
|
44
44
|
}
|
45
|
-
|
45
|
+
let value = fieldValue.value != undefined ? fieldValue.value : fieldValue;
|
46
|
+
if ((fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.label) && onlyLabel) {
|
47
|
+
return { key: fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.label, value: dataUnit.getFormattedValue(fieldName, value) };
|
48
|
+
}
|
46
49
|
return { key: dataUnit.getFormattedValue(fieldName, fieldValue), value };
|
47
50
|
})
|
48
51
|
.then(result => {
|
@@ -1,32 +1,37 @@
|
|
1
1
|
const snkDataUnitMessages = {
|
2
2
|
saveInfo: {
|
3
|
-
clone:
|
4
|
-
insert:
|
5
|
-
update:
|
3
|
+
clone: 'Duplicação realizada!',
|
4
|
+
insert: 'Inclusão realizada!',
|
5
|
+
update: 'Alteração realizada!',
|
6
|
+
updateMultiples: 'Múltiplos registros alterados com sucesso!'
|
6
7
|
},
|
7
8
|
cancelInfo: {
|
8
|
-
clone:
|
9
|
-
insert:
|
10
|
-
update:
|
9
|
+
clone: 'Duplicação descartada!',
|
10
|
+
insert: 'A inclusão foi descartada!',
|
11
|
+
update: 'A edição foi descartada!',
|
12
|
+
updateMultiples: 'A edição de múltiplos registros foi descartada com sucesso!'
|
11
13
|
},
|
12
14
|
confirm: {
|
13
|
-
cancel:
|
14
|
-
delete:
|
15
|
-
|
16
|
-
|
15
|
+
cancel: 'Cancelar',
|
16
|
+
delete: 'Excluir',
|
17
|
+
updateMultipleConfirm: 'Confirmar edição',
|
18
|
+
yes: 'Sim',
|
19
|
+
no: 'Não',
|
17
20
|
},
|
18
|
-
removeInfo:
|
19
|
-
cancelConfirmationTitle:
|
20
|
-
cancelConfirmation:
|
21
|
-
removeConfirmationTitle:
|
22
|
-
removeConfirmation:
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
21
|
+
removeInfo: 'Registro removido com sucesso!',
|
22
|
+
cancelConfirmationTitle: 'Aviso',
|
23
|
+
cancelConfirmation: 'As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?',
|
24
|
+
removeConfirmationTitle: 'Aviso',
|
25
|
+
removeConfirmation: 'Deseja realmente excluir o registro atual?',
|
26
|
+
multipleUpdateConfirmationTitle: 'Confirmar edição múltipla',
|
27
|
+
multipleUpdateConfirmationMessage: 'As informações dos campos abaixo foram alteradas e serão aplicadas a {{size}} registros',
|
28
|
+
forbidden: 'Sem permissão',
|
29
|
+
forbiddenUpdate: 'Não é possível fazer alterações. Verifique as permissões de acesso.',
|
30
|
+
forbiddenInsert: 'Não é possível incluir. Verifique as permissões de acesso.',
|
31
|
+
forbiddenClone: 'Não é possível duplicar. Verifique as permissões de acesso.',
|
32
|
+
forbiddenRemove: 'Não é possível remover. Verifique as permissões de acesso.',
|
33
|
+
removeAllConfirmation: 'Os <strong>{{size}} registros selecionados</strong> serão excluídos.<br/><br/><strong>Você realmente gostaria de continuar?</strong>',
|
34
|
+
removeAllInfo: 'Os {{size}} registros foram removidos com sucesso!',
|
35
|
+
fieldNameRequired: 'É necessário informar o nome da coluna.',
|
31
36
|
};
|
32
37
|
export default snkDataUnitMessages;
|
@@ -168,11 +168,11 @@ class SnkMultiSelectionListDataSource {
|
|
168
168
|
}
|
169
169
|
return String(this._dataUnit.getFormattedValue(fieldName, value));
|
170
170
|
}
|
171
|
-
async getStaticOptions(fieldName) {
|
171
|
+
async getStaticOptions(fieldName, options) {
|
172
172
|
if (fieldName == undefined) {
|
173
173
|
return Promise.resolve(undefined);
|
174
174
|
}
|
175
|
-
return Promise.resolve(await PreloadManager.getDistinct(this._dataUnit, fieldName));
|
175
|
+
return Promise.resolve(await PreloadManager.getDistinct(this._dataUnit, fieldName, options === null || options === void 0 ? void 0 : options.onlyLabel));
|
176
176
|
}
|
177
177
|
fetchData(filterTerm, fieldName) {
|
178
178
|
return new Promise(resolve => {
|
@@ -2,34 +2,39 @@ import { ApplicationContext } from '@sankhyalabs/core';
|
|
2
2
|
|
3
3
|
const snkDataUnitMessages = {
|
4
4
|
saveInfo: {
|
5
|
-
clone:
|
6
|
-
insert:
|
7
|
-
update:
|
5
|
+
clone: 'Duplicação realizada!',
|
6
|
+
insert: 'Inclusão realizada!',
|
7
|
+
update: 'Alteração realizada!',
|
8
|
+
updateMultiples: 'Múltiplos registros alterados com sucesso!'
|
8
9
|
},
|
9
10
|
cancelInfo: {
|
10
|
-
clone:
|
11
|
-
insert:
|
12
|
-
update:
|
11
|
+
clone: 'Duplicação descartada!',
|
12
|
+
insert: 'A inclusão foi descartada!',
|
13
|
+
update: 'A edição foi descartada!',
|
14
|
+
updateMultiples: 'A edição de múltiplos registros foi descartada com sucesso!'
|
13
15
|
},
|
14
16
|
confirm: {
|
15
|
-
cancel:
|
16
|
-
delete:
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
17
|
+
cancel: 'Cancelar',
|
18
|
+
delete: 'Excluir',
|
19
|
+
updateMultipleConfirm: 'Confirmar edição',
|
20
|
+
yes: 'Sim',
|
21
|
+
no: 'Não',
|
22
|
+
},
|
23
|
+
removeInfo: 'Registro removido com sucesso!',
|
24
|
+
cancelConfirmationTitle: 'Aviso',
|
25
|
+
cancelConfirmation: 'As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?',
|
26
|
+
removeConfirmationTitle: 'Aviso',
|
27
|
+
removeConfirmation: 'Deseja realmente excluir o registro atual?',
|
28
|
+
multipleUpdateConfirmationTitle: 'Confirmar edição múltipla',
|
29
|
+
multipleUpdateConfirmationMessage: 'As informações dos campos abaixo foram alteradas e serão aplicadas a {{size}} registros',
|
30
|
+
forbidden: 'Sem permissão',
|
31
|
+
forbiddenUpdate: 'Não é possível fazer alterações. Verifique as permissões de acesso.',
|
32
|
+
forbiddenInsert: 'Não é possível incluir. Verifique as permissões de acesso.',
|
33
|
+
forbiddenClone: 'Não é possível duplicar. Verifique as permissões de acesso.',
|
34
|
+
forbiddenRemove: 'Não é possível remover. Verifique as permissões de acesso.',
|
35
|
+
removeAllConfirmation: 'Os <strong>{{size}} registros selecionados</strong> serão excluídos.<br/><br/><strong>Você realmente gostaria de continuar?</strong>',
|
36
|
+
removeAllInfo: 'Os {{size}} registros foram removidos com sucesso!',
|
37
|
+
fieldNameRequired: 'É necessário informar o nome da coluna.',
|
33
38
|
};
|
34
39
|
|
35
40
|
const snkFilterBarMessages = {
|
@@ -92,6 +97,7 @@ const snkFilterBarMessages = {
|
|
92
97
|
};
|
93
98
|
|
94
99
|
const snkTaskbarMessages = {
|
100
|
+
titleUpdateMultiple: "Editar Múltiplos",
|
95
101
|
titleUpdate: "Editar",
|
96
102
|
titlePrevious: "Anterior",
|
97
103
|
titleNext: "Próximo",
|
@@ -663,6 +669,7 @@ var OperationMap;
|
|
663
669
|
OperationMap["INSERT"] = "insert";
|
664
670
|
OperationMap["UPDATE"] = "update";
|
665
671
|
OperationMap["CLEAN"] = "clean";
|
672
|
+
OperationMap["UPDATE_MULTIPLES"] = "updateMultiples";
|
666
673
|
})(OperationMap || (OperationMap = {}));
|
667
674
|
|
668
675
|
export { OperationMap as O, SnkMessageBuilder as S };
|
@@ -153,7 +153,7 @@ class PreloadManager {
|
|
153
153
|
static getSortingFunction(dataUnit, sorting) {
|
154
154
|
return SortingUtils.getSortingFunction(dataUnit, sorting);
|
155
155
|
}
|
156
|
-
static async getDistinct(dataUnit, fieldName) {
|
156
|
+
static async getDistinct(dataUnit, fieldName, onlyLabel = false) {
|
157
157
|
if (!PreloadManager.isCacheEnabled(dataUnit)) {
|
158
158
|
return Promise.resolve(ColumnFilterManager.compileDistinct(fieldName, dataUnit));
|
159
159
|
}
|
@@ -172,7 +172,10 @@ class PreloadManager {
|
|
172
172
|
if (fieldValue == undefined) {
|
173
173
|
return { key: null, value: null };
|
174
174
|
}
|
175
|
-
|
175
|
+
let value = fieldValue.value != undefined ? fieldValue.value : fieldValue;
|
176
|
+
if ((fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.label) && onlyLabel) {
|
177
|
+
return { key: fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.label, value: dataUnit.getFormattedValue(fieldName, value) };
|
178
|
+
}
|
176
179
|
return { key: dataUnit.getFormattedValue(fieldName, fieldValue), value };
|
177
180
|
})
|
178
181
|
.then(result => {
|
@@ -90,6 +90,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
90
90
|
this.setCustomFormTitle = undefined;
|
91
91
|
this.strategyExporter = ExporterStrategy.SERVER_SIDE;
|
92
92
|
this.layoutFormConfig = false;
|
93
|
+
this.multipleEditionEnabled = true;
|
93
94
|
this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
|
94
95
|
}
|
95
96
|
/**
|
@@ -176,14 +177,20 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
176
177
|
this.setViewMode(VIEW_MODE.FORM);
|
177
178
|
}
|
178
179
|
async executeAction(act) {
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
180
|
+
switch (act) {
|
181
|
+
case TaskbarElement.GRID_MODE:
|
182
|
+
return this.setViewMode(VIEW_MODE.GRID);
|
183
|
+
case TaskbarElement.FORM_MODE:
|
184
|
+
case TaskbarElement.UPDATE:
|
185
|
+
return this.gridToForm(act !== TaskbarElement.UPDATE);
|
186
|
+
case TaskbarElement.UPDATE_MULTIPLE:
|
187
|
+
this._dataUnit.isMultipleEdition = true;
|
188
|
+
return this.setViewMode(VIEW_MODE.FORM);
|
189
|
+
case TaskbarElement.CONFIGURATOR:
|
190
|
+
return this._snkConfigurator.open();
|
191
|
+
case TaskbarElement.ATTACH:
|
192
|
+
return this.setViewMode(VIEW_MODE.ATTACHMENT);
|
193
|
+
}
|
187
194
|
}
|
188
195
|
backView() {
|
189
196
|
const lastView = this._viewHistory.at(-2) || VIEW_MODE.GRID;
|
@@ -193,6 +200,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
193
200
|
this._viewStack.show(viewMode);
|
194
201
|
this._currentViewMode = viewMode;
|
195
202
|
if (viewMode === VIEW_MODE.GRID) {
|
203
|
+
this._dataUnit.isMultipleEdition = false;
|
196
204
|
this._snkGrid.setFocus();
|
197
205
|
}
|
198
206
|
else if (viewMode === VIEW_MODE.FORM) {
|
@@ -412,7 +420,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
412
420
|
return;
|
413
421
|
}
|
414
422
|
this._snkDataUnit.ignoreSaveMessage = (this._currentViewMode === VIEW_MODE.GRID && !this.enableGridInsert);
|
415
|
-
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" }))));
|
423
|
+
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" }))));
|
416
424
|
}
|
417
425
|
get _element() { return this; }
|
418
426
|
static get watchers() { return {
|
@@ -446,6 +454,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
446
454
|
"setCustomFormTitle": [16],
|
447
455
|
"strategyExporter": [1025, "strategy-exporter"],
|
448
456
|
"layoutFormConfig": [4, "layout-form-config"],
|
457
|
+
"multipleEditionEnabled": [4, "multiple-edition-enabled"],
|
449
458
|
"_dataUnit": [32],
|
450
459
|
"_dataState": [32],
|
451
460
|
"attachmentRegisterKey": [32],
|