@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
@@ -1,17 +1,17 @@
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, F as Fragment, g as getElement } from './index-a7d3d3f1.js';
|
2
2
|
import { Action, ElementIDUtils, ApplicationContext, StringUtils } from '@sankhyalabs/core';
|
3
|
-
import { T as TaskbarElement } from './taskbar-elements-
|
3
|
+
import { T as TaskbarElement } from './taskbar-elements-c62b6c66.js';
|
4
4
|
import { C as ConfigStorage } from './ConfigStorage-71e6766f.js';
|
5
5
|
import { P as PresentationMode, E as ExporterStrategy } from './index-b40568ff.js';
|
6
6
|
import { T as TaskbarProcessor, o as openFieldSearch, b as buildFieldSearch } from './field-search-f8b1d91e.js';
|
7
7
|
import { s as store } from './index-bdf75557.js';
|
8
|
-
import { C as CommonsExporter, S as SnkMultiSelectionListDataSource, a as CrudUtils, R as RmPrecisionCustomValueFormatter, b as ContinuousInsertUtils, c as ClientSideExporterProvider } from './ClientSideExporterProvider-
|
8
|
+
import { C as CommonsExporter, S as SnkMultiSelectionListDataSource, a as CrudUtils, R as RmPrecisionCustomValueFormatter, b as ContinuousInsertUtils, c as ClientSideExporterProvider } from './ClientSideExporterProvider-b3871edb.js';
|
9
9
|
import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
|
10
10
|
import './DataFetcher-88e56266.js';
|
11
11
|
import './ISave-5efafc97.js';
|
12
12
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
13
13
|
import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
14
|
-
import './dataunit-fetcher-
|
14
|
+
import './dataunit-fetcher-0e025732.js';
|
15
15
|
import './filter-item-type.enum-d45e026f.js';
|
16
16
|
import './form-config-fetcher-fa208a6c.js';
|
17
17
|
import './constants-7db1128a.js';
|
@@ -96,7 +96,7 @@ const SnkGrid = class {
|
|
96
96
|
});
|
97
97
|
this._headerTaskbarProcessor = new TaskbarProcessor({
|
98
98
|
"snkGridHeaderTaskbar.unselected": ["REFRESH", "DATA_EXPORTER", "ACTIONS_BUTTON", "MORE_OPTIONS"],
|
99
|
-
"snkGridHeaderTaskbar.selected":
|
99
|
+
"snkGridHeaderTaskbar.selected": this.getGridHeaderSelectedBtns(),
|
100
100
|
"snkGridHeaderTaskbar.detail.unselected": ["REFRESH", "MORE_OPTIONS"],
|
101
101
|
"snkGridHeaderTaskbar.detail.selected": ["UPDATE", "ATTACH", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "REFRESH"],
|
102
102
|
"snkGridHeaderTaskbar.singleTaskbar.unselected": ["INSERT", "FORM_MODE", "CONFIGURATOR", "REFRESH", "DATA_EXPORTER", "ACTIONS_BUTTON", "MORE_OPTIONS"],
|
@@ -147,6 +147,17 @@ const SnkGrid = class {
|
|
147
147
|
this.enableGridInsert = false;
|
148
148
|
this.outlineMode = false;
|
149
149
|
this.strategyExporter = ExporterStrategy.SERVER_SIDE;
|
150
|
+
this.multipleEditionEnabled = true;
|
151
|
+
}
|
152
|
+
getGridHeaderSelectedBtns() {
|
153
|
+
const btns = [
|
154
|
+
TaskbarElement.UPDATE, TaskbarElement.CLONE, TaskbarElement.REMOVE,
|
155
|
+
TaskbarElement.MORE_OPTIONS, TaskbarElement.DIVIDER, TaskbarElement.ATTACH, TaskbarElement.FORM_MODE,
|
156
|
+
TaskbarElement.CONFIGURATOR, TaskbarElement.REFRESH, TaskbarElement.DATA_EXPORTER, TaskbarElement.ACTIONS_BUTTON
|
157
|
+
];
|
158
|
+
if (this.multipleEditionEnabled)
|
159
|
+
btns.unshift(TaskbarElement.UPDATE_MULTIPLE);
|
160
|
+
return btns;
|
150
161
|
}
|
151
162
|
reloadConfig() {
|
152
163
|
this.loadConfig();
|
@@ -431,20 +442,23 @@ const SnkGrid = class {
|
|
431
442
|
const disabledButtons = [];
|
432
443
|
if ((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) {
|
433
444
|
if (this._dataState.selectionInfo.length > 1) {
|
434
|
-
disabledButtons.push(TaskbarElement.CLONE,
|
445
|
+
disabledButtons.push(TaskbarElement.CLONE, TaskbarElement.ATTACH, TaskbarElement.UPDATE);
|
435
446
|
}
|
436
447
|
if (this._dataState.selectionInfo.isAllRecords()) {
|
437
|
-
disabledButtons.push(
|
448
|
+
disabledButtons.push(TaskbarElement.REMOVE);
|
438
449
|
}
|
439
450
|
}
|
440
451
|
return disabledButtons;
|
441
452
|
}
|
442
453
|
getInvisibleButtons() {
|
454
|
+
var _a, _b;
|
443
455
|
let invisibleButtons = [];
|
444
456
|
if (!this._dataUnit || this._dataUnit.records.length === 0)
|
445
|
-
invisibleButtons.push(
|
446
|
-
if (this._dataState
|
447
|
-
invisibleButtons.push(
|
457
|
+
invisibleButtons.push(TaskbarElement.DATA_EXPORTER);
|
458
|
+
if (((_a = this._dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo.mode) === SelectionMode.ALL_RECORDS)
|
459
|
+
invisibleButtons.push(TaskbarElement.ACTIONS_BUTTON);
|
460
|
+
if (((_b = this._dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo.length) === 1)
|
461
|
+
invisibleButtons.push(TaskbarElement.UPDATE_MULTIPLE);
|
448
462
|
return invisibleButtons;
|
449
463
|
}
|
450
464
|
componentWillRender() {
|
@@ -1,16 +1,16 @@
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, F as Fragment } from './index-a7d3d3f1.js';
|
2
|
-
import { Action, ElementIDUtils } from '@sankhyalabs/core';
|
2
|
+
import { ObjectUtils, Action, ElementIDUtils } from '@sankhyalabs/core';
|
3
3
|
import { S as SnkFormConfigManager } from './SnkFormConfigManager-be490a33.js';
|
4
4
|
import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
|
5
5
|
import { o as openFieldSearch, T as TaskbarProcessor, b as buildFieldSearch } from './field-search-f8b1d91e.js';
|
6
|
-
import { T as TaskbarElement } from './taskbar-elements-
|
6
|
+
import { T as TaskbarElement } from './taskbar-elements-c62b6c66.js';
|
7
7
|
import { V as VIEW_MODE } from './constants-7db1128a.js';
|
8
8
|
import './DataFetcher-88e56266.js';
|
9
9
|
import './ISave-5efafc97.js';
|
10
10
|
import { P as PresentationMode } from './index-b40568ff.js';
|
11
11
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
12
12
|
import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
13
|
-
import './dataunit-fetcher-
|
13
|
+
import './dataunit-fetcher-0e025732.js';
|
14
14
|
import './filter-item-type.enum-d45e026f.js';
|
15
15
|
import './form-config-fetcher-fa208a6c.js';
|
16
16
|
import { SelectionMode } from '@sankhyalabs/core/dist/dataunit/DataUnit';
|
@@ -21,6 +21,7 @@ const FORM_NAME_PREFIX = "__FORM:";
|
|
21
21
|
const SnkGuidesViewer = class {
|
22
22
|
constructor(hostRef) {
|
23
23
|
registerInstance(this, hostRef);
|
24
|
+
this.snkMasterFormConfigChange = createEvent(this, "snkMasterFormConfigChange", 7);
|
24
25
|
this.exit = createEvent(this, "exit", 7);
|
25
26
|
this.actionClick = createEvent(this, "actionClick", 7);
|
26
27
|
this.formItemsReady = createEvent(this, "formItemsReady", 7);
|
@@ -57,14 +58,16 @@ const SnkGuidesViewer = class {
|
|
57
58
|
this.loadGuides(true);
|
58
59
|
}
|
59
60
|
observeDataState(newValue, oldValue) {
|
60
|
-
|
61
|
-
const
|
62
|
-
|
61
|
+
var _a, _b, _c, _d, _e, _f;
|
62
|
+
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__'];
|
63
|
+
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__'];
|
64
|
+
if (!ObjectUtils.equals(newRecordsIds, oldRecordsIds)) {
|
63
65
|
this.loadGuides((oldValue === null || oldValue === void 0 ? void 0 : oldValue.insertionMode) != (newValue === null || newValue === void 0 ? void 0 : newValue.insertionMode));
|
64
66
|
}
|
65
67
|
}
|
66
68
|
observeMasterFormConfig() {
|
67
69
|
this.loadGuides(this.noGuideSelected());
|
70
|
+
this.snkMasterFormConfigChange.emit(this.masterFormConfig);
|
68
71
|
}
|
69
72
|
/**
|
70
73
|
* Abre o configurador do formulário
|
@@ -138,6 +141,11 @@ const SnkGuidesViewer = class {
|
|
138
141
|
* Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-crud.msg.ts"
|
139
142
|
*/
|
140
143
|
getMessage(key) {
|
144
|
+
var _a, _b;
|
145
|
+
if (this.dataUnit.isMultipleEdition) {
|
146
|
+
const selectedRecords = (_b = (_a = this.dataUnit.getSelectionInfo()) === null || _a === void 0 ? void 0 : _a.records) !== null && _b !== void 0 ? _b : [];
|
147
|
+
return `Editando ${selectedRecords.length} registros`;
|
148
|
+
}
|
141
149
|
return this.messagesBuilder.getMessage(key, this.dataUnit.getSelectedRecord());
|
142
150
|
}
|
143
151
|
loadGuides(changeSelection) {
|
@@ -150,12 +158,12 @@ const SnkGuidesViewer = class {
|
|
150
158
|
this._masterFormMetadata = buildFormMetadata(this.masterFormConfig, this.dataUnit, true);
|
151
159
|
const allSheets = this._masterFormMetadata.getAllSheets();
|
152
160
|
const currentRecord = this.dataUnit.getSelectedRecord();
|
153
|
-
const disableDetails =
|
161
|
+
const disableDetails = this.hasToDisableDetails(currentRecord);
|
154
162
|
const guides = [];
|
155
163
|
Array.from(allSheets.values()).forEach((sheet) => {
|
156
164
|
const item = { id: sheet.name, label: sheet.label };
|
157
165
|
if (this.isDetail(sheet.name) && disableDetails) {
|
158
|
-
item.tooltip = "Para alterar detalhes é necessário estar com um registro selecionado.";
|
166
|
+
item.tooltip = "Para alterar detalhes é necessário estar com um (e apenas um) registro selecionado.";
|
159
167
|
item.disabled = true;
|
160
168
|
}
|
161
169
|
guides.push(item);
|
@@ -168,6 +176,11 @@ const SnkGuidesViewer = class {
|
|
168
176
|
this.selectedGuide = this._guides.length > 0 ? this._guides[0] : undefined;
|
169
177
|
}
|
170
178
|
}
|
179
|
+
hasToDisableDetails(currentRecord) {
|
180
|
+
return !currentRecord
|
181
|
+
|| this.dataUnit.isNewRecord(currentRecord.__record__id__)
|
182
|
+
|| this.dataUnit.isMultipleEdition;
|
183
|
+
}
|
171
184
|
isDetail(formId) {
|
172
185
|
return FormMetadata.getDetailName(formId) != undefined;
|
173
186
|
}
|
@@ -190,47 +203,59 @@ const SnkGuidesViewer = class {
|
|
190
203
|
}
|
191
204
|
getTaskBarId() {
|
192
205
|
var _a;
|
193
|
-
|
194
|
-
|
195
|
-
loadTaskbarProcessor() {
|
196
|
-
var _a;
|
197
|
-
const taskbarId = this.getTaskBarId();
|
198
|
-
const disabledButtons = [];
|
199
|
-
if (!this.dataState || !this.dataState.hasPrevious) {
|
200
|
-
disabledButtons.push("PREVIOUS");
|
206
|
+
if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) {
|
207
|
+
return TASKBAR_ID.FINISH_EDITION;
|
201
208
|
}
|
202
|
-
if (
|
203
|
-
|
209
|
+
if (this.dataUnit.isMultipleEdition) {
|
210
|
+
return TASKBAR_ID.MUTIPLE_EDITION;
|
204
211
|
}
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
+
return TASKBAR_ID.REGULAR;
|
213
|
+
}
|
214
|
+
loadTaskbarProcessor() {
|
215
|
+
const taskbarIDs = {};
|
216
|
+
taskbarIDs[TASKBAR_ID.REGULAR] = this.buildBtnsRegularMode();
|
217
|
+
taskbarIDs[TASKBAR_ID.FINISH_EDITION] = [TaskbarElement.CANCEL, TaskbarElement.SAVE, this.handleAddGridMode()];
|
218
|
+
taskbarIDs[TASKBAR_ID.MUTIPLE_EDITION] = [TaskbarElement.CANCEL];
|
219
|
+
this._taskbarProcessor = new TaskbarProcessor(taskbarIDs);
|
220
|
+
this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.buildDisabledButtons(), this.buildInvisibleButtons());
|
221
|
+
}
|
222
|
+
buildBtnsRegularMode() {
|
223
|
+
var _a, _b;
|
224
|
+
const btnsRegularMode = [
|
225
|
+
TaskbarElement.ATTACH, TaskbarElement.CLONE, TaskbarElement.REMOVE, TaskbarElement.MORE_OPTIONS,
|
226
|
+
TaskbarElement.ACTIONS_BUTTON, TaskbarElement.DIVIDER, TaskbarElement.GRID_MODE, TaskbarElement.CONFIGURATOR,
|
227
|
+
];
|
228
|
+
if (((_b = (_a = this.dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) === null || _b === void 0 ? void 0 : _b.length) <= 1) {
|
229
|
+
btnsRegularMode.unshift(TaskbarElement.PREVIOUS, TaskbarElement.NEXT, TaskbarElement.DIVIDER);
|
212
230
|
}
|
213
|
-
const btnsRegularMode = ["PREVIOUS", "NEXT", "DIVIDER", "ATTACH", "CLONE", "REMOVE", "MORE_OPTIONS", "ACTIONS_BUTTON", "DIVIDER", "GRID_MODE", "CONFIGURATOR"];
|
214
231
|
if (this.presentationMode == PresentationMode.SECONDARY) {
|
215
|
-
btnsRegularMode.unshift(
|
232
|
+
btnsRegularMode.unshift(TaskbarElement.INSERT);
|
216
233
|
}
|
217
234
|
else {
|
218
|
-
btnsRegularMode.push(
|
235
|
+
btnsRegularMode.push(TaskbarElement.INSERT);
|
219
236
|
}
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
237
|
+
return btnsRegularMode;
|
238
|
+
}
|
239
|
+
buildDisabledButtons() {
|
240
|
+
var _a, _b, _c, _d, _e, _f;
|
241
|
+
const disabledButtons = [];
|
242
|
+
if (!((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.hasPrevious))
|
243
|
+
disabledButtons.push(TaskbarElement.PREVIOUS);
|
244
|
+
if (!((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.hasNext))
|
245
|
+
disabledButtons.push(TaskbarElement.NEXT);
|
246
|
+
if (((_d = (_c = this.dataState) === null || _c === void 0 ? void 0 : _c.selectionInfo) === null || _d === void 0 ? void 0 : _d.length) > 1)
|
247
|
+
disabledButtons.push(TaskbarElement.CLONE);
|
248
|
+
if ((_f = (_e = this.dataState) === null || _e === void 0 ? void 0 : _e.selectionInfo) === null || _f === void 0 ? void 0 : _f.isAllRecords())
|
249
|
+
disabledButtons.push(TaskbarElement.REMOVE);
|
250
|
+
return disabledButtons;
|
226
251
|
}
|
227
252
|
handleAddGridMode() {
|
228
253
|
return this.enableGridInsert ? TaskbarElement.GRID_MODE : "";
|
229
254
|
}
|
230
|
-
|
255
|
+
buildInvisibleButtons() {
|
231
256
|
const invisibleButtons = [];
|
232
257
|
if (this.dataState && this.dataState.selectionInfo.mode === SelectionMode.ALL_RECORDS)
|
233
|
-
invisibleButtons.push(
|
258
|
+
invisibleButtons.push(TaskbarElement.ACTIONS_BUTTON);
|
234
259
|
return invisibleButtons;
|
235
260
|
}
|
236
261
|
static updateContentCard(formName, cardConfig, propertyChanged, configManager) {
|
@@ -443,17 +468,27 @@ const SnkGuidesViewer = class {
|
|
443
468
|
}
|
444
469
|
buildTaskBar() {
|
445
470
|
var _a;
|
446
|
-
return h("div", { class: `snk-guides-viewer__header-taskbar ${this.presentationMode != PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, 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) ?
|
471
|
+
return h("div", { class: `snk-guides-viewer__header-taskbar ${this.presentationMode != PresentationMode.SECONDARY ? 'ez-align--right' : 'ez-padding-bottom--medium'}` }, 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) ? TaskbarElement.SAVE : TaskbarElement.INSERT, "data-taskbar-owner": "master", dataUnit: this.dataUnit, resourceID: this.resourceID, customSlotId: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS", alignRigth: true }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" })));
|
447
472
|
}
|
448
473
|
async dataUnitActionHandler(action) {
|
449
474
|
var _a;
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
475
|
+
switch (action.type) {
|
476
|
+
case Action.EDITION_CANCELED:
|
477
|
+
case Action.DATA_SAVED:
|
478
|
+
if (this.dataUnit.isMultipleEdition) {
|
479
|
+
this.exitViewer();
|
480
|
+
this.dataUnit.isMultipleEdition = false;
|
481
|
+
}
|
482
|
+
break;
|
483
|
+
case Action.FIELD_INVALIDATED:
|
484
|
+
const guideName = this.getGuideName((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fieldName);
|
485
|
+
await this.addErrorBadgeToGuide(guideName);
|
486
|
+
await this.openGuideNavigator(guideName);
|
487
|
+
break;
|
488
|
+
case Action.METADATA_LOADED:
|
489
|
+
case Action.MULTIPLE_EDITION_CHANGED:
|
490
|
+
this.loadGuides(this.noGuideSelected());
|
491
|
+
break;
|
457
492
|
}
|
458
493
|
}
|
459
494
|
async addErrorBadgeToGuide(guideName) {
|
@@ -493,6 +528,20 @@ const SnkGuidesViewer = class {
|
|
493
528
|
var _a, _b;
|
494
529
|
return (_b = (_a = this.getCustomTitle) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : this.getMessage("snkCrud.title");
|
495
530
|
}
|
531
|
+
getTitleTooltip() {
|
532
|
+
if (!this.dataUnit.isMultipleEdition)
|
533
|
+
return;
|
534
|
+
return this.buildRecordIdsArray();
|
535
|
+
}
|
536
|
+
buildRecordIdsArray() {
|
537
|
+
var _a, _b;
|
538
|
+
const selectedRecords = (_b = (_a = this.dataUnit.getSelectionInfo()) === null || _a === void 0 ? void 0 : _a.records) !== null && _b !== void 0 ? _b : [];
|
539
|
+
if (selectedRecords.length === 0) {
|
540
|
+
return "[]";
|
541
|
+
}
|
542
|
+
const labels = selectedRecords.map(record => this.messagesBuilder.getMessage("snkCrud.title", record));
|
543
|
+
return `[${labels.join(", ")}]`;
|
544
|
+
}
|
496
545
|
componentDidLoad() {
|
497
546
|
this.dataUnit.subscribe(this.dataUnitActionHandler.bind(this));
|
498
547
|
}
|
@@ -506,7 +555,7 @@ const SnkGuidesViewer = class {
|
|
506
555
|
}
|
507
556
|
this.loadTaskbarProcessor();
|
508
557
|
const showGuides = this._guides && (this._guides.length > 1);
|
509
|
-
return (h("section", { class: "snk-guides-viewer", ref: ref => this._container = ref, tabindex: -1 }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "snk-guides-viewer__header-breadcrumb ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, 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 &&
|
558
|
+
return (h("section", { class: "snk-guides-viewer", ref: ref => this._container = ref, tabindex: -1 }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "snk-guides-viewer__header-breadcrumb ez-flex--align-items-center ez-flex-item--align-center ez-padding-left--large", key: "header" }, h("ez-button", { onClick: () => this.exitViewer(), title: this.getMessage("snkCrud.goBackTitle"), mode: "icon", iconName: "arrow_back", class: "ez-padding-right--medium", size: "small" }), h("div", { class: "ez-flex ez-flex--column ez-flex-item--auto" }, 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 &&
|
510
559
|
h("div", { class: "ez-margin-top--extra-small" }, h("ez-breadcrumb", Object.assign({ items: this._breadcrumbItems, onSelectedItem: (evt) => this.onBreadcrumbClickHandler(evt === null || evt === void 0 ? void 0 : evt.detail) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo("breadcrumb")}` }))))), this.presentationMode != PresentationMode.SECONDARY && this.buildTaskBar()), h("div", { class: "snk-guides-viewer__container" }, showGuides ?
|
511
560
|
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) })
|
512
561
|
:
|
@@ -528,6 +577,12 @@ const SnkGuidesViewer = class {
|
|
528
577
|
"masterFormConfig": ["observeMasterFormConfig"]
|
529
578
|
}; }
|
530
579
|
};
|
580
|
+
var TASKBAR_ID;
|
581
|
+
(function (TASKBAR_ID) {
|
582
|
+
TASKBAR_ID["FINISH_EDITION"] = "snkGuideViewer.finish_edition";
|
583
|
+
TASKBAR_ID["MUTIPLE_EDITION"] = "snkGuideViewer.multiple_edition";
|
584
|
+
TASKBAR_ID["REGULAR"] = "snkGuideViewer.regular";
|
585
|
+
})(TASKBAR_ID || (TASKBAR_ID = {}));
|
531
586
|
SnkGuidesViewer.style = snkGuidesViewerCss;
|
532
587
|
|
533
588
|
export { SnkGuidesViewer as S };
|
@@ -1,4 +1,4 @@
|
|
1
|
-
export { S as snk_guides_viewer } from './snk-guides-viewer-
|
1
|
+
export { S as snk_guides_viewer } from './snk-guides-viewer-75e06feb.js';
|
2
2
|
import './index-a7d3d3f1.js';
|
3
3
|
import '@sankhyalabs/core';
|
4
4
|
import './SnkFormConfigManager-be490a33.js';
|
@@ -11,12 +11,12 @@ import './filter-item-type.enum-d45e026f.js';
|
|
11
11
|
import './constants-7db1128a.js';
|
12
12
|
import '@sankhyalabs/ezui/dist/collection/utils/form';
|
13
13
|
import './field-search-f8b1d91e.js';
|
14
|
-
import './taskbar-elements-
|
14
|
+
import './taskbar-elements-c62b6c66.js';
|
15
15
|
import './index-b40568ff.js';
|
16
16
|
import './index-bdf75557.js';
|
17
17
|
import './ISave-5efafc97.js';
|
18
18
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
19
|
-
import './dataunit-fetcher-
|
19
|
+
import './dataunit-fetcher-0e025732.js';
|
20
20
|
import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
|
21
21
|
import '@sankhyalabs/core/dist/utils/SortingUtils';
|
22
22
|
import './ResourceIDUtils-a114189a.js';
|
@@ -5,7 +5,7 @@ import './DataFetcher-88e56266.js';
|
|
5
5
|
import './index-b40568ff.js';
|
6
6
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
7
7
|
import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
8
|
-
import './dataunit-fetcher-
|
8
|
+
import './dataunit-fetcher-0e025732.js';
|
9
9
|
import './filter-item-type.enum-d45e026f.js';
|
10
10
|
import './form-config-fetcher-fa208a6c.js';
|
11
11
|
import './constants-7db1128a.js';
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a7d3d3f1.js';
|
2
|
-
import { StringUtils, ApplicationContext, ObjectUtils, DataType, UserInterface, JSUtils, FloatingManager, KeyboardManager, ElementIDUtils } from '@sankhyalabs/core';
|
2
|
+
import { StringUtils, ApplicationContext, ObjectUtils, Action, DataType, UserInterface, JSUtils, FloatingManager, KeyboardManager, ElementIDUtils } from '@sankhyalabs/core';
|
3
3
|
import { CSSVarsUtils } from '@sankhyalabs/ezui/dist/collection/utils';
|
4
4
|
import { V as VIEW_MODE, S as SIMPLE_CRUD_MODE } from './constants-7db1128a.js';
|
5
|
-
import { T as TaskbarElement } from './taskbar-elements-
|
5
|
+
import { T as TaskbarElement } from './taskbar-elements-c62b6c66.js';
|
6
6
|
import './DataFetcher-88e56266.js';
|
7
7
|
import './ISave-5efafc97.js';
|
8
|
-
import { S as SnkMultiSelectionListDataSource, R as RmPrecisionCustomValueFormatter, b as ContinuousInsertUtils, a as CrudUtils, c as ClientSideExporterProvider } from './ClientSideExporterProvider-
|
8
|
+
import { S as SnkMultiSelectionListDataSource, R as RmPrecisionCustomValueFormatter, b as ContinuousInsertUtils, a as CrudUtils, c as ClientSideExporterProvider } from './ClientSideExporterProvider-b3871edb.js';
|
9
9
|
import { P as PresentationMode } from './index-b40568ff.js';
|
10
10
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
11
11
|
import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
12
|
-
import { I as InMemoryLoader } from './dataunit-fetcher-
|
12
|
+
import { I as InMemoryLoader } from './dataunit-fetcher-0e025732.js';
|
13
13
|
import './filter-item-type.enum-d45e026f.js';
|
14
14
|
import { F as FormConfigFetcher } from './form-config-fetcher-fa208a6c.js';
|
15
15
|
import { T as TaskbarProcessor, b as buildFieldSearch, o as openFieldSearch } from './field-search-f8b1d91e.js';
|
@@ -43,13 +43,6 @@ const SnkSimpleCrud = class {
|
|
43
43
|
this._formConfigFetcher = new FormConfigFetcher();
|
44
44
|
this._customEditors = new Map();
|
45
45
|
this._customRenders = new Map();
|
46
|
-
this._taskbarProcessor = new TaskbarProcessor({
|
47
|
-
"snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [TaskbarElement.GRID_MODE], true),
|
48
|
-
"snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]),
|
49
|
-
"snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [TaskbarElement.GRID_MODE], true),
|
50
|
-
"snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]),
|
51
|
-
"snkSimpleCrudTaskbar.finish_edition": this.getFinishEditionButtonsCallback.bind(this)
|
52
|
-
});
|
53
46
|
this._showPopUpGridConfig = false;
|
54
47
|
this._currentViewMode = VIEW_MODE.GRID;
|
55
48
|
this._config = undefined;
|
@@ -82,6 +75,7 @@ const SnkSimpleCrud = class {
|
|
82
75
|
this.ignoreReadOnlyFormFields = false;
|
83
76
|
this.autoFocus = true;
|
84
77
|
this.domainMessagesBuilder = undefined;
|
78
|
+
this.multipleEditionEnabled = true;
|
85
79
|
this.layoutFormConfig = false;
|
86
80
|
this.autoLoad = undefined;
|
87
81
|
this.outlineMode = false;
|
@@ -142,8 +136,25 @@ const SnkSimpleCrud = class {
|
|
142
136
|
newCustomFieldProps.set(fieldName, Object.assign(Object.assign({}, currentProps), { [propName]: value }));
|
143
137
|
this._fieldsProps = newCustomFieldProps;
|
144
138
|
}
|
139
|
+
loadTaskbarProcessor() {
|
140
|
+
const taskbarIDs = {};
|
141
|
+
taskbarIDs[TASKBAR_ID.FORM_REGULAR] = this.getButtons(false, [TaskbarElement.GRID_MODE], true);
|
142
|
+
taskbarIDs[TASKBAR_ID.GRID_REGULAR] = this.getButtons(false, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]);
|
143
|
+
taskbarIDs[TASKBAR_ID.FORM_SELECTED] = this.getButtons(true, [TaskbarElement.GRID_MODE], true);
|
144
|
+
taskbarIDs[TASKBAR_ID.GRID_SELECTED] = this.getGridSelectedButtonsCallBack.bind(this);
|
145
|
+
taskbarIDs[TASKBAR_ID.FINISH_EDITION] = this.getFinishEditionButtonsCallback.bind(this);
|
146
|
+
taskbarIDs[TASKBAR_ID.MULTIPLE_EDITION] = [TaskbarElement.CANCEL];
|
147
|
+
this._taskbarProcessor = new TaskbarProcessor(taskbarIDs);
|
148
|
+
}
|
149
|
+
getGridSelectedButtonsCallBack() {
|
150
|
+
var _a, _b, _c;
|
151
|
+
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) {
|
152
|
+
return this.getButtons(true, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]);
|
153
|
+
}
|
154
|
+
return this.getButtons(true, [TaskbarElement.UPDATE_MULTIPLE, TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]);
|
155
|
+
}
|
145
156
|
getFinishEditionButtonsCallback() {
|
146
|
-
const btns = [
|
157
|
+
const btns = [TaskbarElement.CANCEL, TaskbarElement.SAVE];
|
147
158
|
if (this.enableGridInsert && this._currentViewMode !== VIEW_MODE.ATTACHMENT) {
|
148
159
|
btns.push(this._currentViewMode === VIEW_MODE.GRID ? TaskbarElement.FORM_MODE : TaskbarElement.GRID_MODE);
|
149
160
|
}
|
@@ -179,22 +190,32 @@ const SnkSimpleCrud = class {
|
|
179
190
|
async goToView(view) {
|
180
191
|
this._currentViewMode = view;
|
181
192
|
if (this._viewStack) {
|
193
|
+
if (view === VIEW_MODE.GRID)
|
194
|
+
this.dataUnit.isMultipleEdition = false;
|
182
195
|
this._viewStack.show(view);
|
183
196
|
}
|
184
197
|
}
|
185
198
|
actionClickListener(evt) {
|
186
|
-
|
187
|
-
if (act === TaskbarElement.CONFIGURATOR) {
|
188
|
-
this._snkConfigurator.open();
|
189
|
-
}
|
190
|
-
else if (act === TaskbarElement.GRID_MODE) {
|
191
|
-
this.goToView(VIEW_MODE.GRID);
|
192
|
-
}
|
193
|
-
else if (act === TaskbarElement.FORM_MODE) {
|
194
|
-
this.goToView(VIEW_MODE.FORM);
|
195
|
-
}
|
199
|
+
this.handleTaskbarAction(evt.detail);
|
196
200
|
evt.stopPropagation();
|
197
201
|
}
|
202
|
+
handleTaskbarAction(action) {
|
203
|
+
switch (action) {
|
204
|
+
case TaskbarElement.CONFIGURATOR:
|
205
|
+
this._snkConfigurator.open();
|
206
|
+
break;
|
207
|
+
case TaskbarElement.GRID_MODE:
|
208
|
+
this.goToView(VIEW_MODE.GRID);
|
209
|
+
break;
|
210
|
+
case TaskbarElement.FORM_MODE:
|
211
|
+
this.goToView(VIEW_MODE.FORM);
|
212
|
+
break;
|
213
|
+
case TaskbarElement.UPDATE_MULTIPLE:
|
214
|
+
this.dataUnit.isMultipleEdition = true;
|
215
|
+
this.goToView(VIEW_MODE.FORM);
|
216
|
+
break;
|
217
|
+
}
|
218
|
+
}
|
198
219
|
async onChangeEntityName(newValue) {
|
199
220
|
if (this.dataUnit)
|
200
221
|
return;
|
@@ -326,8 +347,10 @@ const SnkSimpleCrud = class {
|
|
326
347
|
this.setFormConfig(await this._formConfigManager.loadConfig());
|
327
348
|
}
|
328
349
|
async componentWillRender() {
|
350
|
+
this.loadTaskbarProcessor();
|
329
351
|
this._resourceID = await this.application.getResourceID();
|
330
352
|
this.dataExporterProviderStore();
|
353
|
+
this.dataExporterProviderStore();
|
331
354
|
this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.getTaskBarDisabledButtons());
|
332
355
|
if (this.configName === undefined) {
|
333
356
|
return;
|
@@ -359,6 +382,14 @@ const SnkSimpleCrud = class {
|
|
359
382
|
componentDidLoad() {
|
360
383
|
CSSVarsUtils.applyVarsGrid(this._element, this._grid);
|
361
384
|
this.initKeyboardManager();
|
385
|
+
this.dataUnit.subscribe(this.dataUnitActionHandler.bind(this));
|
386
|
+
}
|
387
|
+
async dataUnitActionHandler(action) {
|
388
|
+
if (action.type === Action.EDITION_CANCELED || action.type === Action.DATA_SAVED) {
|
389
|
+
if (this.dataUnit.isMultipleEdition) {
|
390
|
+
this.goToView(VIEW_MODE.GRID);
|
391
|
+
}
|
392
|
+
}
|
362
393
|
}
|
363
394
|
setCustomRenders() {
|
364
395
|
if (!this._grid) {
|
@@ -397,14 +428,17 @@ const SnkSimpleCrud = class {
|
|
397
428
|
getTaskBarId() {
|
398
429
|
var _a, _b;
|
399
430
|
if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) {
|
400
|
-
return
|
431
|
+
return TASKBAR_ID.FINISH_EDITION;
|
432
|
+
}
|
433
|
+
if (this.dataUnit.isMultipleEdition) {
|
434
|
+
return TASKBAR_ID.MULTIPLE_EDITION;
|
401
435
|
}
|
402
436
|
if (((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) &&
|
403
437
|
!this.dataState.selectionInfo.isAllRecords() &&
|
404
438
|
this.dataState.selectionInfo.length > 0) {
|
405
|
-
return this._currentViewMode === VIEW_MODE.GRID ?
|
439
|
+
return this._currentViewMode === VIEW_MODE.GRID ? TASKBAR_ID.GRID_SELECTED : TASKBAR_ID.FORM_SELECTED;
|
406
440
|
}
|
407
|
-
return this._currentViewMode === VIEW_MODE.GRID ?
|
441
|
+
return this._currentViewMode === VIEW_MODE.GRID ? TASKBAR_ID.GRID_REGULAR : TASKBAR_ID.FORM_REGULAR;
|
408
442
|
}
|
409
443
|
initInMemoryDataUnit() {
|
410
444
|
this._inMemoryLoader = new InMemoryLoader(this._metadata, undefined, { autoLoad: this.autoLoad });
|
@@ -790,6 +824,15 @@ const SnkSimpleCrud = class {
|
|
790
824
|
"gridLegacyConfigName": ["observeGridLegacy"]
|
791
825
|
}; }
|
792
826
|
};
|
827
|
+
var TASKBAR_ID;
|
828
|
+
(function (TASKBAR_ID) {
|
829
|
+
TASKBAR_ID["FORM_REGULAR"] = "snkSimpleCrudTaskbar.form_regular";
|
830
|
+
TASKBAR_ID["GRID_REGULAR"] = "snkSimpleCrudTaskbar.grid_regular";
|
831
|
+
TASKBAR_ID["FORM_SELECTED"] = "snkSimpleCrudTaskbar.form_selected";
|
832
|
+
TASKBAR_ID["GRID_SELECTED"] = "snkSimpleCrudTaskbar.grid_selected";
|
833
|
+
TASKBAR_ID["FINISH_EDITION"] = "snkSimpleCrudTaskbar.finish_edition";
|
834
|
+
TASKBAR_ID["MULTIPLE_EDITION"] = "snkSimpleCrudTaskbar.multiple_edition";
|
835
|
+
})(TASKBAR_ID || (TASKBAR_ID = {}));
|
793
836
|
SnkSimpleCrud.style = snkSimpleCrudCss;
|
794
837
|
|
795
838
|
export { SnkSimpleCrud as snk_simple_crud };
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
|
2
2
|
import { Action, LockManager, LockManagerOperation, SilentException, StringUtils, ApplicationContext, OVERFLOWED_CLASS_NAME, OverflowWatcher, OverflowDirection, ElementIDUtils } from '@sankhyalabs/core';
|
3
3
|
import { A as AuthorizationConfig } from './AuthorizationConfig-dcbd207a.js';
|
4
|
-
import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-
|
4
|
+
import { T as TaskbarElement, V as VisibleWhenForbidden, A as AuthorizationElements, b as buildElem, a as buildCustomButton } from './taskbar-elements-c62b6c66.js';
|
5
5
|
import { P as PresentationMode } from './index-b40568ff.js';
|
6
6
|
import './index-bdf75557.js';
|
7
7
|
|
@@ -18,6 +18,7 @@ const SnkTaskbar = class {
|
|
18
18
|
this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
|
19
19
|
this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
|
20
20
|
this._titleKeyByElement = {
|
21
|
+
[TaskbarElement.UPDATE_MULTIPLE]: "snkTaskbar.titleUpdateMultiple",
|
21
22
|
[TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
|
22
23
|
[TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
|
23
24
|
[TaskbarElement.NEXT]: "snkTaskbar.titleNext",
|
@@ -21,6 +21,7 @@ var TaskbarElement;
|
|
21
21
|
TaskbarElement["DATA_EXPORTER"] = "DATA_EXPORTER";
|
22
22
|
TaskbarElement["ATTACH"] = "ATTACH";
|
23
23
|
TaskbarElement["ACTIONS_BUTTON"] = "ACTIONS_BUTTON";
|
24
|
+
TaskbarElement["UPDATE_MULTIPLE"] = "UPDATE_MULTIPLE";
|
24
25
|
})(TaskbarElement || (TaskbarElement = {}));
|
25
26
|
var AuthorizationElements;
|
26
27
|
(function (AuthorizationElements) {
|
@@ -60,6 +61,8 @@ const buildElem = (element, className, dataElementId, getTitle, action, isEnable
|
|
60
61
|
return iconButton("sync", element, className, dataElementId, title, action, isEnabled);
|
61
62
|
case TaskbarElement.UPDATE:
|
62
63
|
return iconButton("edit", element, className, dataElementId, title, action, isEnabled);
|
64
|
+
case TaskbarElement.UPDATE_MULTIPLE:
|
65
|
+
return iconButton("edit-table", element, className, dataElementId, title, action, isEnabled);
|
63
66
|
case TaskbarElement.CLONE:
|
64
67
|
return iconButton("copy", element, className, dataElementId, title, action, isEnabled);
|
65
68
|
case TaskbarElement.REMOVE:
|
@@ -1 +1 @@
|
|
1
|
-
import{r as t,c as i,f as s,h as e,H as a}from"./p-d2d301a6.js";import{Action as o}from"@sankhyalabs/core";import{S as h}from"./p-ebdb9d89.js";import{FormMetadata as n,buildFormMetadata as r}from"@sankhyalabs/ezui/dist/collection/utils/form";import"./p-fbba7e3d.js";import"./p-6dd38d7b.js";import{P as d}from"./p-0f3698af.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-a8be1d67.js";import"./p-ff1990ad.js";import"./p-601b252b.js";import{V as l}from"./p-9261d8a0.js";import{T as c}from"./p-3fc82614.js";import{S as u}from"./p-92778d5a.js";import{S as m}from"./p-17425c72.js";import"./p-03b68a74.js";import"./p-8d884fab.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";import"@sankhyalabs/core/dist/utils/SortingUtils";import"./p-688dcb4c.js";import"./p-6dc031de.js";import"./p-23736d75.js";import"@sankhyalabs/core/dist/dataunit/DataUnit";class v{constructor(t,i,s){this._parentGuide=t,this._formMetadata=i,this._dataUnit=s}get id(){return this._parentGuide.id}buildGuideItem(t){const i=Object.assign({},this._parentGuide);delete i.expanded,delete i.children;const s=this._dataUnit.getSelectedRecord();if(!s)return i;const e=this._dataUnit.isNewRecord(s.__record__id__),a=Array.from(this._formMetadata.getAllSheets().values()).map((i=>{const{name:s,label:a}=i,o=null!=n.getDetailName(s.split("::").pop()),h=o&&e,r=this._parentGuide.id,d=o?`${r}::${s}`:`${r}__FORM:${s}`;return o&&t.has(d)&&!h?t.get(d).buildGuideItem(t):{id:d,label:a,disabled:h,tooltip:h?"Finalize o cadastro para ter acesso a esta guia.":void 0}})),o=a.shift();return o.label=e?"Novo Registro":s.__record__label__,o.children=a,i.children=[o],i}}const p=class{constructor(s){t(this,s),this.snkDetailGuidesChange=i(this,"snkDetailGuidesChange",7),this.snkSwitchGuide=i(this,"snkSwitchGuide",7),this.formItemsReady=i(this,"formItemsReady",7),this._disabledButtons=void 0,this._currentView=void 0,this.attachmentRegisterKey=void 0,this.formConfigManager=void 0,this.dataUnitName=void 0,this.resourceID=void 0,this.guideItemPath=void 0,this.entityName=void 0,this.label=void 0,this.dataUnit=void 0,this.selectedForm=void 0,this.dataState=void 0,this.messagesBuilder=void 0,this.branchGuide=void 0,this.canEdit=!0,this.taskbarCustomContainerId=void 0,this.customEditors=void 0,this.customRenders=void 0,this.presentationMode=d.SECONDARY}observeDataUnit(t,i){null==t||t.subscribe(this.dataUnitActionHandler.bind(this)),null==i||i.unsubscribe(this.dataUnitActionHandler)}observerDataState(t,i){const s=!(null==i?void 0:i.insertionMode)&&(null==t?void 0:t.insertionMode),e=(null==i?void 0:i.insertionMode)&&!(null==t?void 0:t.insertionMode);if((s||e)&&this.loadMetadata(),null==this._formMetadata)return;const a=null==t?void 0:t.selectedRecord,o=null==i?void 0:i.selectedRecord;(null==a?void 0:a.__record__id__)!==(null==o?void 0:o.__record__id__)&&this.snkDetailGuidesChange.emit(new v(this.branchGuide,this._formMetadata,this.dataUnit)),s&&setTimeout((()=>{this.changeViewMode(l.FORM)}),0),e&&this.changeViewMode(l.GRID);const h=[];this.dataState.hasPrevious||h.push(c.PREVIOUS),this.dataState.hasNext||h.push(c.NEXT),this.dataState.insertionMode&&h.push(c.INSERT),this._disabledButtons=h}async changeViewMode(t){this.emitSwitchEvent(t)}async configGrid(){this._snkGrid&&this._snkGrid.showConfig()}async showUp(){this._snkFormView&&this._snkFormView.showUp(),this._snkGrid&&this._snkGrid.scrollIntoView({behavior:"smooth",block:"start"})}async addCustomEditor(t,i){var s;const e=this.normalizeBranchGuideId(null===(s=this.branchGuide)||void 0===s?void 0:s.id);this._snkGrid.addCustomEditor(t,i,e),this._snkFormView.addCustomEditor(t,i,e)}async observerPropsCustomEditor(t){for(const i in t)await this.addCustomEditor(i,t[i])}async addGridCustomRender(t,i){var s;const e=this.normalizeBranchGuideId(null===(s=this.branchGuide)||void 0===s?void 0:s.id);await this._snkGrid.addGridCustomRender(t,i,e)}onContentCardChanged(t){u.updateContentCard(t.detail.formName,t.detail.cardConfig,t.detail.propertyChanged,this.formConfigManager).then((()=>s(this))),t.stopPropagation()}async observeCustomRenders(t){for(const i in t){const s=t[i];await this.addGridCustomRender(i,s)}}updateLabel(){const t=this.guideItemPath?this.guideItemPath.length:0;if(t>0){const i=t>0?this.guideItemPath.map((t=>t.label)):void 0;this.label=i.pop(),this._levelPath=i.length>0?i.join(" / "):void 0}else this.label="",this._levelPath=void 0}getFormGuideId(t){var i;if(!t){if(null==(null===(i=this.dataState)||void 0===i?void 0:i.selectedRecord))return;const s=Array.from(this._formMetadata.getAllSheets().keys());if(!s||0==s.length)return;t=s[0]}return`${this.stripFormPattern(this.branchGuide.id)}__FORM:${t}`}stripFormPattern(t){return t.replace(p.REGEX_FORM_ID,"")}loadMetadata(){if(!this.dataUnit)return;if(!this.formConfigManager.isLoaded)return;const t=this.formConfigManager.getConfig(this.dataUnit);this._formMetadata=r(null==t||0===t.fields.length?void 0:t,this.dataUnit,!0)}dataUnitReadyHandler(t){this.dataUnit=t.detail,this.loadMetadata()}updateViewStack(t){var i,s;this._viewStack=t,this._currentView=this.selectedForm?1:0,null===(s=null===(i=this._viewStack)||void 0===i?void 0:i.show)||void 0===s||s.call(i,this._currentView)}getFormFields(){return this.selectedForm&&this._formMetadata?this._formMetadata.getSheet(this.selectedForm).fields:[]}emitSwitchEvent(t){const i=t===l.GRID?this.stripFormPattern(this.branchGuide.id):this.getFormGuideId();i&&this.snkSwitchGuide.emit(i)}handleAttachBack(){this._viewStack.show(l.GRID)}executeActionHandler(t){t.detail===c.GRID_MODE&&(this.emitSwitchEvent(l.GRID),t.stopPropagation()),t.detail!==c.FORM_MODE&&t.detail!==c.UPDATE||(this.emitSwitchEvent(l.FORM),t.stopPropagation()),t.detail===c.ATTACH&&(this._viewStack.show(l.ATTACHMENT),t.stopPropagation())}async getAttachmentRegisterKey(){if(this._snkDataUnit)return(await this._snkDataUnit.getSelectedRecordsIDsInfo()).map((({value:t})=>t)).join("_")}async handleDataStateChange({detail:t}){this.dataState=t,void 0!==t.selectedRecord&&this._snkDataUnit&&(this.attachmentRegisterKey=await this.getAttachmentRegisterKey())}componentWillLoad(){this._configName=`dynaform.${this.entityName}`,this.formConfigManager=new h(this._configName,this.resourceID,(()=>this.loadMetadata()),this.dataUnit),this.formConfigManager.loadConfig(),null==this.messagesBuilder&&(this.messagesBuilder=new m(this.entityName))}async componentDidLoad(){await this.observerPropsCustomEditor(this.customEditors),await this.observeCustomRenders(this.customRenders)}async dataUnitActionHandler(t){t.type===o.FIELD_INVALIDATED&&this.addErrorBadgeToBranchGuide()}addErrorBadgeToBranchGuide(){this.branchGuide=Object.assign(Object.assign({},this.branchGuide),{badge:"error"}),this.snkDetailGuidesChange.emit(new v(this.branchGuide,this._formMetadata,this.dataUnit))}normalizeBranchGuideId(t){return null==t?void 0:t.replace(/child\[(.*?)\]/g,"$1").replace(/::/g,">")}render(){return this.updateLabel(),e(a,null,e("snk-data-unit",{ref:t=>this._snkDataUnit=t,dataUnitName:`${this.dataUnitName}`,onDataUnitReady:t=>this.dataUnitReadyHandler(t),entityName:this.entityName,onDataStateChange:this.handleDataStateChange.bind(this),ignoreSaveMessage:this._currentView===l.GRID,messagesBuilder:this.messagesBuilder,configName:this._configName},e("ez-view-stack",{ref:t=>this.updateViewStack(t)},e("stack-item",null,e("div",{class:"ez-box ez-box--shadow grid-container"},e("div",{class:"ez-title--primary ez-size-width--full ez-padding--large detail-header"},e("div",{class:"ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center"},this._levelPath?e("span",{class:"level-path"},this._levelPath+" /"):void 0,this.label)),e("snk-grid",{class:"ez-size-width--full",ref:t=>this._snkGrid=t,configName:this._configName,messagesBuilder:this.messagesBuilder,onGridDoubleClick:()=>this.emitSwitchEvent(l.FORM),onActionClick:t=>this.executeActionHandler(t),presentationMode:this.presentationMode,canEdit:this.canEdit,isDetail:!0,taskbarCustomContainerId:this.taskbarCustomContainerId,gridHeaderCustomSlotId:"DETAIL_GRID_HEADER_CUSTOM_ELEMENTS",topTaskbarCustomSlotId:"DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS",outlineMode:!1}))),e("stack-item",null,e("snk-form-view",{ref:t=>this._snkFormView=t,canExpand:!1,canFix:!1,name:this.selectedForm,formMetadata:this._formMetadata,dataUnit:this.dataUnit,fields:this.getFormFields(),label:this.label,levelPath:this._levelPath,onFormItemsReady:({detail:t})=>this.formItemsReady.emit(t)},e("snk-taskbar",{key:"guideViewerTaskbar",class:"form-taskbar","data-element-id":"guideViewer",configName:this._configName,messagesBuilder:this.messagesBuilder,disabledButtons:this._disabledButtons,buttons:"INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR",primaryButton:"INSERT",presentationMode:this.presentationMode,onActionClick:t=>this.executeActionHandler(t),dataUnit:this.dataUnit,resourceID:this.resourceID,customContainerId:this.taskbarCustomContainerId,customSlotId:"DETAIL_TASKBAR_CUSTOM_ELEMENTS"},e("slot",{name:"DETAIL_TASKBAR_CUSTOM_ELEMENTS"})))),e("stack-item",null,e("snk-attach",{registerKey:this.attachmentRegisterKey,messagesBuilder:this.messagesBuilder,entityName:this.entityName,onBack:this.handleAttachBack.bind(this)})))))}static get watchers(){return{dataUnit:["observeDataUnit"],dataState:["observerDataState"],customEditors:["observerPropsCustomEditor"],customRenders:["observeCustomRenders"]}}};p.REGEX_FORM_ID=/__FORM:[^:]+/g,p.style=".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px;height:100%}.detail-header.sc-snk-detail-view{padding-bottom:0}snk-data-unit.sc-snk-detail-view{flex:1}snk-grid.sc-snk-detail-view{height:calc(100% - 43px)}";export{p as snk_detail_view}
|
1
|
+
import{r as t,c as i,f as s,h as e,H as a}from"./p-d2d301a6.js";import{Action as o}from"@sankhyalabs/core";import{S as h}from"./p-ebdb9d89.js";import{FormMetadata as n,buildFormMetadata as r}from"@sankhyalabs/ezui/dist/collection/utils/form";import"./p-fbba7e3d.js";import"./p-6dd38d7b.js";import{P as d}from"./p-0f3698af.js";import"@sankhyalabs/ezui/dist/collection/utils/constants";import"@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata";import"./p-7993b2e3.js";import"./p-ff1990ad.js";import"./p-601b252b.js";import{V as l}from"./p-9261d8a0.js";import{T as c}from"./p-fb0f0087.js";import{S as u}from"./p-41da5310.js";import{S as m}from"./p-80f8c22c.js";import"./p-03b68a74.js";import"./p-8d884fab.js";import"@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";import"@sankhyalabs/core/dist/utils/SortingUtils";import"./p-688dcb4c.js";import"./p-6dc031de.js";import"./p-23736d75.js";import"@sankhyalabs/core/dist/dataunit/DataUnit";class v{constructor(t,i,s){this._parentGuide=t,this._formMetadata=i,this._dataUnit=s}get id(){return this._parentGuide.id}buildGuideItem(t){const i=Object.assign({},this._parentGuide);delete i.expanded,delete i.children;const s=this._dataUnit.getSelectedRecord();if(!s)return i;const e=this._dataUnit.isNewRecord(s.__record__id__),a=Array.from(this._formMetadata.getAllSheets().values()).map((i=>{const{name:s,label:a}=i,o=null!=n.getDetailName(s.split("::").pop()),h=o&&e,r=this._parentGuide.id,d=o?`${r}::${s}`:`${r}__FORM:${s}`;return o&&t.has(d)&&!h?t.get(d).buildGuideItem(t):{id:d,label:a,disabled:h,tooltip:h?"Finalize o cadastro para ter acesso a esta guia.":void 0}})),o=a.shift();return o.label=e?"Novo Registro":s.__record__label__,o.children=a,i.children=[o],i}}const p=class{constructor(s){t(this,s),this.snkDetailGuidesChange=i(this,"snkDetailGuidesChange",7),this.snkSwitchGuide=i(this,"snkSwitchGuide",7),this.formItemsReady=i(this,"formItemsReady",7),this._disabledButtons=void 0,this._currentView=void 0,this.attachmentRegisterKey=void 0,this.formConfigManager=void 0,this.dataUnitName=void 0,this.resourceID=void 0,this.guideItemPath=void 0,this.entityName=void 0,this.label=void 0,this.dataUnit=void 0,this.selectedForm=void 0,this.dataState=void 0,this.messagesBuilder=void 0,this.branchGuide=void 0,this.canEdit=!0,this.taskbarCustomContainerId=void 0,this.customEditors=void 0,this.customRenders=void 0,this.presentationMode=d.SECONDARY}observeDataUnit(t,i){null==t||t.subscribe(this.dataUnitActionHandler.bind(this)),null==i||i.unsubscribe(this.dataUnitActionHandler)}observerDataState(t,i){const s=!(null==i?void 0:i.insertionMode)&&(null==t?void 0:t.insertionMode),e=(null==i?void 0:i.insertionMode)&&!(null==t?void 0:t.insertionMode);if((s||e)&&this.loadMetadata(),null==this._formMetadata)return;const a=null==t?void 0:t.selectedRecord,o=null==i?void 0:i.selectedRecord;(null==a?void 0:a.__record__id__)!==(null==o?void 0:o.__record__id__)&&this.snkDetailGuidesChange.emit(new v(this.branchGuide,this._formMetadata,this.dataUnit)),s&&setTimeout((()=>{this.changeViewMode(l.FORM)}),0),e&&this.changeViewMode(l.GRID);const h=[];this.dataState.hasPrevious||h.push(c.PREVIOUS),this.dataState.hasNext||h.push(c.NEXT),this.dataState.insertionMode&&h.push(c.INSERT),this._disabledButtons=h}async changeViewMode(t){this.emitSwitchEvent(t)}async configGrid(){this._snkGrid&&this._snkGrid.showConfig()}async showUp(){this._snkFormView&&this._snkFormView.showUp(),this._snkGrid&&this._snkGrid.scrollIntoView({behavior:"smooth",block:"start"})}async addCustomEditor(t,i){var s;const e=this.normalizeBranchGuideId(null===(s=this.branchGuide)||void 0===s?void 0:s.id);this._snkGrid.addCustomEditor(t,i,e),this._snkFormView.addCustomEditor(t,i,e)}async observerPropsCustomEditor(t){for(const i in t)await this.addCustomEditor(i,t[i])}async addGridCustomRender(t,i){var s;const e=this.normalizeBranchGuideId(null===(s=this.branchGuide)||void 0===s?void 0:s.id);await this._snkGrid.addGridCustomRender(t,i,e)}onContentCardChanged(t){u.updateContentCard(t.detail.formName,t.detail.cardConfig,t.detail.propertyChanged,this.formConfigManager).then((()=>s(this))),t.stopPropagation()}async observeCustomRenders(t){for(const i in t){const s=t[i];await this.addGridCustomRender(i,s)}}updateLabel(){const t=this.guideItemPath?this.guideItemPath.length:0;if(t>0){const i=t>0?this.guideItemPath.map((t=>t.label)):void 0;this.label=i.pop(),this._levelPath=i.length>0?i.join(" / "):void 0}else this.label="",this._levelPath=void 0}getFormGuideId(t){var i;if(!t){if(null==(null===(i=this.dataState)||void 0===i?void 0:i.selectedRecord))return;const s=Array.from(this._formMetadata.getAllSheets().keys());if(!s||0==s.length)return;t=s[0]}return`${this.stripFormPattern(this.branchGuide.id)}__FORM:${t}`}stripFormPattern(t){return t.replace(p.REGEX_FORM_ID,"")}loadMetadata(){if(!this.dataUnit)return;if(!this.formConfigManager.isLoaded)return;const t=this.formConfigManager.getConfig(this.dataUnit);this._formMetadata=r(null==t||0===t.fields.length?void 0:t,this.dataUnit,!0)}dataUnitReadyHandler(t){this.dataUnit=t.detail,this.loadMetadata()}updateViewStack(t){var i,s;this._viewStack=t,this._currentView=this.selectedForm?1:0,null===(s=null===(i=this._viewStack)||void 0===i?void 0:i.show)||void 0===s||s.call(i,this._currentView)}getFormFields(){return this.selectedForm&&this._formMetadata?this._formMetadata.getSheet(this.selectedForm).fields:[]}emitSwitchEvent(t){const i=t===l.GRID?this.stripFormPattern(this.branchGuide.id):this.getFormGuideId();i&&this.snkSwitchGuide.emit(i)}handleAttachBack(){this._viewStack.show(l.GRID)}executeActionHandler(t){t.detail===c.GRID_MODE&&(this.emitSwitchEvent(l.GRID),t.stopPropagation()),t.detail!==c.FORM_MODE&&t.detail!==c.UPDATE||(this.emitSwitchEvent(l.FORM),t.stopPropagation()),t.detail===c.ATTACH&&(this._viewStack.show(l.ATTACHMENT),t.stopPropagation())}async getAttachmentRegisterKey(){if(this._snkDataUnit)return(await this._snkDataUnit.getSelectedRecordsIDsInfo()).map((({value:t})=>t)).join("_")}async handleDataStateChange({detail:t}){this.dataState=t,void 0!==t.selectedRecord&&this._snkDataUnit&&(this.attachmentRegisterKey=await this.getAttachmentRegisterKey())}componentWillLoad(){this._configName=`dynaform.${this.entityName}`,this.formConfigManager=new h(this._configName,this.resourceID,(()=>this.loadMetadata()),this.dataUnit),this.formConfigManager.loadConfig(),null==this.messagesBuilder&&(this.messagesBuilder=new m(this.entityName))}async componentDidLoad(){await this.observerPropsCustomEditor(this.customEditors),await this.observeCustomRenders(this.customRenders)}async dataUnitActionHandler(t){t.type===o.FIELD_INVALIDATED&&this.addErrorBadgeToBranchGuide()}addErrorBadgeToBranchGuide(){this.branchGuide=Object.assign(Object.assign({},this.branchGuide),{badge:"error"}),this.snkDetailGuidesChange.emit(new v(this.branchGuide,this._formMetadata,this.dataUnit))}normalizeBranchGuideId(t){return null==t?void 0:t.replace(/child\[(.*?)\]/g,"$1").replace(/::/g,">")}render(){return this.updateLabel(),e(a,null,e("snk-data-unit",{ref:t=>this._snkDataUnit=t,dataUnitName:`${this.dataUnitName}`,onDataUnitReady:t=>this.dataUnitReadyHandler(t),entityName:this.entityName,onDataStateChange:this.handleDataStateChange.bind(this),ignoreSaveMessage:this._currentView===l.GRID,messagesBuilder:this.messagesBuilder,configName:this._configName},e("ez-view-stack",{ref:t=>this.updateViewStack(t)},e("stack-item",null,e("div",{class:"ez-box ez-box--shadow grid-container"},e("div",{class:"ez-title--primary ez-size-width--full ez-padding--large detail-header"},e("div",{class:"ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center"},this._levelPath?e("span",{class:"level-path"},this._levelPath+" /"):void 0,this.label)),e("snk-grid",{class:"ez-size-width--full",ref:t=>this._snkGrid=t,configName:this._configName,messagesBuilder:this.messagesBuilder,onGridDoubleClick:()=>this.emitSwitchEvent(l.FORM),onActionClick:t=>this.executeActionHandler(t),presentationMode:this.presentationMode,canEdit:this.canEdit,isDetail:!0,taskbarCustomContainerId:this.taskbarCustomContainerId,gridHeaderCustomSlotId:"DETAIL_GRID_HEADER_CUSTOM_ELEMENTS",topTaskbarCustomSlotId:"DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS",outlineMode:!1}))),e("stack-item",null,e("snk-form-view",{ref:t=>this._snkFormView=t,canExpand:!1,canFix:!1,name:this.selectedForm,formMetadata:this._formMetadata,dataUnit:this.dataUnit,fields:this.getFormFields(),label:this.label,levelPath:this._levelPath,onFormItemsReady:({detail:t})=>this.formItemsReady.emit(t)},e("snk-taskbar",{key:"guideViewerTaskbar",class:"form-taskbar","data-element-id":"guideViewer",configName:this._configName,messagesBuilder:this.messagesBuilder,disabledButtons:this._disabledButtons,buttons:"INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR",primaryButton:"INSERT",presentationMode:this.presentationMode,onActionClick:t=>this.executeActionHandler(t),dataUnit:this.dataUnit,resourceID:this.resourceID,customContainerId:this.taskbarCustomContainerId,customSlotId:"DETAIL_TASKBAR_CUSTOM_ELEMENTS"},e("slot",{name:"DETAIL_TASKBAR_CUSTOM_ELEMENTS"})))),e("stack-item",null,e("snk-attach",{registerKey:this.attachmentRegisterKey,messagesBuilder:this.messagesBuilder,entityName:this.entityName,onBack:this.handleAttachBack.bind(this)})))))}static get watchers(){return{dataUnit:["observeDataUnit"],dataState:["observerDataState"],customEditors:["observerPropsCustomEditor"],customRenders:["observeCustomRenders"]}}};p.REGEX_FORM_ID=/__FORM:[^:]+/g,p.style=".sc-snk-detail-view-h{display:flex;row-gap:24px;flex-direction:column;width:100%;height:100%}.level-path.sc-snk-detail-view{color:var(--color--title-primary, #2B3A54);font-weight:var(--text-weight--medium, 400);padding-right:3px}.form-taskbar.sc-snk-detail-view{padding-bottom:var(--space--medium)}.grid-container.sc-snk-detail-view{background-color:#FFF;min-height:100px;height:100%}.detail-header.sc-snk-detail-view{padding-bottom:0}snk-data-unit.sc-snk-detail-view{flex:1}snk-grid.sc-snk-detail-view{height:calc(100% - 43px)}";export{p as snk_detail_view}
|