@sankhyalabs/sankhyablocks 8.16.0-dev.104 → 8.16.0-dev.105

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.
Files changed (84) hide show
  1. package/dist/cjs/{SnkMessageBuilder-bae64d0d.js → SnkMessageBuilder-aecd7c18.js} +31 -24
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  4. package/dist/cjs/snk-application.cjs.entry.js +1 -1
  5. package/dist/cjs/snk-attach.cjs.entry.js +1 -1
  6. package/dist/cjs/snk-crud.cjs.entry.js +18 -10
  7. package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
  8. package/dist/cjs/{snk-data-unit-4b510d6e.js → snk-data-unit-9a463a4f.js} +225 -11
  9. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  10. package/dist/cjs/snk-detail-view.cjs.entry.js +3 -3
  11. package/dist/cjs/snk-grid.cjs.entry.js +21 -7
  12. package/dist/cjs/{snk-guides-viewer-e8e5f7b4.js → snk-guides-viewer-c9e1e97b.js} +98 -43
  13. package/dist/cjs/snk-guides-viewer.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-simple-crud.cjs.entry.js +65 -22
  15. package/dist/cjs/snk-taskbar.cjs.entry.js +2 -1
  16. package/dist/cjs/{taskbar-elements-7e19882d.js → taskbar-elements-02379452.js} +3 -0
  17. package/dist/collection/components/snk-crud/snk-crud.js +35 -9
  18. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +117 -43
  19. package/dist/collection/components/snk-data-unit/MultipleUpdateHelper.js +128 -0
  20. package/dist/collection/components/snk-data-unit/snk-data-unit.js +107 -12
  21. package/dist/collection/components/snk-grid/snk-grid.js +38 -6
  22. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +83 -22
  23. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +3 -0
  24. package/dist/collection/components/snk-taskbar/snk-taskbar.js +2 -2
  25. package/dist/collection/lib/message/SnkMessageBuilder.js +1 -0
  26. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +28 -23
  27. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +1 -0
  28. package/dist/components/SnkMessageBuilder.js +31 -24
  29. package/dist/components/snk-crud.js +18 -9
  30. package/dist/components/snk-data-unit2.js +225 -11
  31. package/dist/components/snk-detail-view2.js +98 -43
  32. package/dist/components/snk-grid2.js +21 -6
  33. package/dist/components/snk-simple-crud2.js +66 -22
  34. package/dist/components/snk-taskbar2.js +4 -0
  35. package/dist/esm/{SnkMessageBuilder-6fff4a4c.js → SnkMessageBuilder-12f5fe1a.js} +31 -24
  36. package/dist/esm/loader.js +1 -1
  37. package/dist/esm/sankhyablocks.js +1 -1
  38. package/dist/esm/snk-application.entry.js +1 -1
  39. package/dist/esm/snk-attach.entry.js +1 -1
  40. package/dist/esm/snk-crud.entry.js +18 -10
  41. package/dist/esm/snk-data-exporter.entry.js +2 -2
  42. package/dist/esm/{snk-data-unit-7d0ce406.js → snk-data-unit-affee080.js} +225 -11
  43. package/dist/esm/snk-data-unit.entry.js +2 -2
  44. package/dist/esm/snk-detail-view.entry.js +3 -3
  45. package/dist/esm/snk-grid.entry.js +21 -7
  46. package/dist/esm/{snk-guides-viewer-c44b3839.js → snk-guides-viewer-3befd409.js} +99 -44
  47. package/dist/esm/snk-guides-viewer.entry.js +2 -2
  48. package/dist/esm/snk-simple-crud.entry.js +66 -23
  49. package/dist/esm/snk-taskbar.entry.js +2 -1
  50. package/dist/esm/{taskbar-elements-d2353c64.js → taskbar-elements-c62b6c66.js} +3 -0
  51. package/dist/sankhyablocks/{p-35f85998.entry.js → p-2101be8b.entry.js} +1 -1
  52. package/dist/sankhyablocks/{p-ef6f0a1b.entry.js → p-21a5acc4.entry.js} +1 -1
  53. package/dist/sankhyablocks/p-2d6df7e7.entry.js +1 -0
  54. package/dist/sankhyablocks/p-3f624cbe.js +1 -0
  55. package/dist/sankhyablocks/p-53e1de0a.entry.js +1 -0
  56. package/dist/sankhyablocks/{p-b2a2a83e.entry.js → p-624390bb.entry.js} +1 -1
  57. package/dist/sankhyablocks/p-80f8c22c.js +1 -0
  58. package/dist/sankhyablocks/p-82177c24.js +1 -0
  59. package/dist/sankhyablocks/{p-754559b9.entry.js → p-a5e5574c.entry.js} +1 -1
  60. package/dist/sankhyablocks/{p-5503e89f.entry.js → p-cbb4c043.entry.js} +1 -1
  61. package/dist/sankhyablocks/p-cf685cef.entry.js +1 -0
  62. package/dist/sankhyablocks/p-dcfc8b35.entry.js +1 -0
  63. package/dist/sankhyablocks/{p-38e3ffda.entry.js → p-ea55f2ab.entry.js} +1 -1
  64. package/dist/sankhyablocks/p-fb0f0087.js +1 -0
  65. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  66. package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
  67. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +10 -1
  68. package/dist/types/components/snk-data-unit/MultipleUpdateHelper.d.ts +9 -0
  69. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +17 -0
  70. package/dist/types/components/snk-grid/snk-grid.d.ts +5 -0
  71. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +9 -2
  72. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +2 -1
  73. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +1 -0
  74. package/dist/types/components.d.ts +28 -0
  75. package/dist/types/lib/message/SnkMessageBuilder.d.ts +2 -1
  76. package/package.json +1 -1
  77. package/dist/sankhyablocks/p-17425c72.js +0 -1
  78. package/dist/sankhyablocks/p-3fc82614.js +0 -1
  79. package/dist/sankhyablocks/p-460f1827.entry.js +0 -1
  80. package/dist/sankhyablocks/p-6e0a5314.js +0 -1
  81. package/dist/sankhyablocks/p-835128f5.entry.js +0 -1
  82. package/dist/sankhyablocks/p-92778d5a.js +0 -1
  83. package/dist/sankhyablocks/p-a962a3e4.entry.js +0 -1
  84. package/dist/sankhyablocks/p-e35fe2bd.entry.js +0 -1
@@ -6,7 +6,7 @@ const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
8
  const constants = require('./constants-77c1b8bd.js');
9
- const taskbarElements = require('./taskbar-elements-7e19882d.js');
9
+ const taskbarElements = require('./taskbar-elements-02379452.js');
10
10
  require('./DataFetcher-1afdb18e.js');
11
11
  require('./ISave-c76e2c51.js');
12
12
  const ClientSideExporterProvider = require('./ClientSideExporterProvider-8c219037.js');
@@ -47,13 +47,6 @@ const SnkSimpleCrud = class {
47
47
  this._formConfigFetcher = new formConfigFetcher.FormConfigFetcher();
48
48
  this._customEditors = new Map();
49
49
  this._customRenders = new Map();
50
- this._taskbarProcessor = new fieldSearch.TaskbarProcessor({
51
- "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [taskbarElements.TaskbarElement.GRID_MODE], true),
52
- "snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
53
- "snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [taskbarElements.TaskbarElement.GRID_MODE], true),
54
- "snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
55
- "snkSimpleCrudTaskbar.finish_edition": this.getFinishEditionButtonsCallback.bind(this)
56
- });
57
50
  this._showPopUpGridConfig = false;
58
51
  this._currentViewMode = constants.VIEW_MODE.GRID;
59
52
  this._config = undefined;
@@ -86,6 +79,7 @@ const SnkSimpleCrud = class {
86
79
  this.ignoreReadOnlyFormFields = false;
87
80
  this.autoFocus = true;
88
81
  this.domainMessagesBuilder = undefined;
82
+ this.multipleEditionEnabled = true;
89
83
  this.layoutFormConfig = false;
90
84
  this.autoLoad = undefined;
91
85
  this.outlineMode = false;
@@ -146,8 +140,25 @@ const SnkSimpleCrud = class {
146
140
  newCustomFieldProps.set(fieldName, Object.assign(Object.assign({}, currentProps), { [propName]: value }));
147
141
  this._fieldsProps = newCustomFieldProps;
148
142
  }
143
+ loadTaskbarProcessor() {
144
+ const taskbarIDs = {};
145
+ taskbarIDs[TASKBAR_ID.FORM_REGULAR] = this.getButtons(false, [taskbarElements.TaskbarElement.GRID_MODE], true);
146
+ taskbarIDs[TASKBAR_ID.GRID_REGULAR] = this.getButtons(false, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]);
147
+ taskbarIDs[TASKBAR_ID.FORM_SELECTED] = this.getButtons(true, [taskbarElements.TaskbarElement.GRID_MODE], true);
148
+ taskbarIDs[TASKBAR_ID.GRID_SELECTED] = this.getGridSelectedButtonsCallBack.bind(this);
149
+ taskbarIDs[TASKBAR_ID.FINISH_EDITION] = this.getFinishEditionButtonsCallback.bind(this);
150
+ taskbarIDs[TASKBAR_ID.MULTIPLE_EDITION] = [taskbarElements.TaskbarElement.CANCEL];
151
+ this._taskbarProcessor = new fieldSearch.TaskbarProcessor(taskbarIDs);
152
+ }
153
+ getGridSelectedButtonsCallBack() {
154
+ var _a, _b, _c;
155
+ if (!this.multipleEditionEnabled || ((_c = (_b = (_a = this.dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length) === 1) {
156
+ return this.getButtons(true, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]);
157
+ }
158
+ return this.getButtons(true, [taskbarElements.TaskbarElement.UPDATE_MULTIPLE, taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]);
159
+ }
149
160
  getFinishEditionButtonsCallback() {
150
- const btns = ["CANCEL", "SAVE"];
161
+ const btns = [taskbarElements.TaskbarElement.CANCEL, taskbarElements.TaskbarElement.SAVE];
151
162
  if (this.enableGridInsert && this._currentViewMode !== constants.VIEW_MODE.ATTACHMENT) {
152
163
  btns.push(this._currentViewMode === constants.VIEW_MODE.GRID ? taskbarElements.TaskbarElement.FORM_MODE : taskbarElements.TaskbarElement.GRID_MODE);
153
164
  }
@@ -183,22 +194,32 @@ const SnkSimpleCrud = class {
183
194
  async goToView(view) {
184
195
  this._currentViewMode = view;
185
196
  if (this._viewStack) {
197
+ if (view === constants.VIEW_MODE.GRID)
198
+ this.dataUnit.isMultipleEdition = false;
186
199
  this._viewStack.show(view);
187
200
  }
188
201
  }
189
202
  actionClickListener(evt) {
190
- const act = evt.detail;
191
- if (act === taskbarElements.TaskbarElement.CONFIGURATOR) {
192
- this._snkConfigurator.open();
193
- }
194
- else if (act === taskbarElements.TaskbarElement.GRID_MODE) {
195
- this.goToView(constants.VIEW_MODE.GRID);
196
- }
197
- else if (act === taskbarElements.TaskbarElement.FORM_MODE) {
198
- this.goToView(constants.VIEW_MODE.FORM);
199
- }
203
+ this.handleTaskbarAction(evt.detail);
200
204
  evt.stopPropagation();
201
205
  }
206
+ handleTaskbarAction(action) {
207
+ switch (action) {
208
+ case taskbarElements.TaskbarElement.CONFIGURATOR:
209
+ this._snkConfigurator.open();
210
+ break;
211
+ case taskbarElements.TaskbarElement.GRID_MODE:
212
+ this.goToView(constants.VIEW_MODE.GRID);
213
+ break;
214
+ case taskbarElements.TaskbarElement.FORM_MODE:
215
+ this.goToView(constants.VIEW_MODE.FORM);
216
+ break;
217
+ case taskbarElements.TaskbarElement.UPDATE_MULTIPLE:
218
+ this.dataUnit.isMultipleEdition = true;
219
+ this.goToView(constants.VIEW_MODE.FORM);
220
+ break;
221
+ }
222
+ }
202
223
  async onChangeEntityName(newValue) {
203
224
  if (this.dataUnit)
204
225
  return;
@@ -330,8 +351,10 @@ const SnkSimpleCrud = class {
330
351
  this.setFormConfig(await this._formConfigManager.loadConfig());
331
352
  }
332
353
  async componentWillRender() {
354
+ this.loadTaskbarProcessor();
333
355
  this._resourceID = await this.application.getResourceID();
334
356
  this.dataExporterProviderStore();
357
+ this.dataExporterProviderStore();
335
358
  this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.getTaskBarDisabledButtons());
336
359
  if (this.configName === undefined) {
337
360
  return;
@@ -363,6 +386,14 @@ const SnkSimpleCrud = class {
363
386
  componentDidLoad() {
364
387
  utils.CSSVarsUtils.applyVarsGrid(this._element, this._grid);
365
388
  this.initKeyboardManager();
389
+ this.dataUnit.subscribe(this.dataUnitActionHandler.bind(this));
390
+ }
391
+ async dataUnitActionHandler(action) {
392
+ if (action.type === core.Action.EDITION_CANCELED || action.type === core.Action.DATA_SAVED) {
393
+ if (this.dataUnit.isMultipleEdition) {
394
+ this.goToView(constants.VIEW_MODE.GRID);
395
+ }
396
+ }
366
397
  }
367
398
  setCustomRenders() {
368
399
  if (!this._grid) {
@@ -401,14 +432,17 @@ const SnkSimpleCrud = class {
401
432
  getTaskBarId() {
402
433
  var _a, _b;
403
434
  if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) {
404
- return "snkSimpleCrudTaskbar.finish_edition";
435
+ return TASKBAR_ID.FINISH_EDITION;
436
+ }
437
+ if (this.dataUnit.isMultipleEdition) {
438
+ return TASKBAR_ID.MULTIPLE_EDITION;
405
439
  }
406
440
  if (((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo) &&
407
441
  !this.dataState.selectionInfo.isAllRecords() &&
408
442
  this.dataState.selectionInfo.length > 0) {
409
- return this._currentViewMode === constants.VIEW_MODE.GRID ? "snkSimpleCrudTaskbar.grid_selected" : "snkSimpleCrudTaskbar.form_selected";
443
+ return this._currentViewMode === constants.VIEW_MODE.GRID ? TASKBAR_ID.GRID_SELECTED : TASKBAR_ID.FORM_SELECTED;
410
444
  }
411
- return this._currentViewMode === constants.VIEW_MODE.GRID ? "snkSimpleCrudTaskbar.grid_regular" : "snkSimpleCrudTaskbar.form_regular";
445
+ return this._currentViewMode === constants.VIEW_MODE.GRID ? TASKBAR_ID.GRID_REGULAR : TASKBAR_ID.FORM_REGULAR;
412
446
  }
413
447
  initInMemoryDataUnit() {
414
448
  this._inMemoryLoader = new dataunitFetcher.InMemoryLoader(this._metadata, undefined, { autoLoad: this.autoLoad });
@@ -794,6 +828,15 @@ const SnkSimpleCrud = class {
794
828
  "gridLegacyConfigName": ["observeGridLegacy"]
795
829
  }; }
796
830
  };
831
+ var TASKBAR_ID;
832
+ (function (TASKBAR_ID) {
833
+ TASKBAR_ID["FORM_REGULAR"] = "snkSimpleCrudTaskbar.form_regular";
834
+ TASKBAR_ID["GRID_REGULAR"] = "snkSimpleCrudTaskbar.grid_regular";
835
+ TASKBAR_ID["FORM_SELECTED"] = "snkSimpleCrudTaskbar.form_selected";
836
+ TASKBAR_ID["GRID_SELECTED"] = "snkSimpleCrudTaskbar.grid_selected";
837
+ TASKBAR_ID["FINISH_EDITION"] = "snkSimpleCrudTaskbar.finish_edition";
838
+ TASKBAR_ID["MULTIPLE_EDITION"] = "snkSimpleCrudTaskbar.multiple_edition";
839
+ })(TASKBAR_ID || (TASKBAR_ID = {}));
797
840
  SnkSimpleCrud.style = snkSimpleCrudCss;
798
841
 
799
842
  exports.snk_simple_crud = SnkSimpleCrud;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const AuthorizationConfig = require('./AuthorizationConfig-79ffae4b.js');
8
- const taskbarElements = require('./taskbar-elements-7e19882d.js');
8
+ const taskbarElements = require('./taskbar-elements-02379452.js');
9
9
  const index$1 = require('./index-e3e39724.js');
10
10
  require('./index-102ba62d.js');
11
11
 
@@ -22,6 +22,7 @@ const SnkTaskbar = class {
22
22
  this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
23
23
  this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
24
24
  this._titleKeyByElement = {
25
+ [taskbarElements.TaskbarElement.UPDATE_MULTIPLE]: "snkTaskbar.titleUpdateMultiple",
25
26
  [taskbarElements.TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
26
27
  [taskbarElements.TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
27
28
  [taskbarElements.TaskbarElement.NEXT]: "snkTaskbar.titleNext",
@@ -23,6 +23,7 @@ exports.TaskbarElement = void 0;
23
23
  TaskbarElement["DATA_EXPORTER"] = "DATA_EXPORTER";
24
24
  TaskbarElement["ATTACH"] = "ATTACH";
25
25
  TaskbarElement["ACTIONS_BUTTON"] = "ACTIONS_BUTTON";
26
+ TaskbarElement["UPDATE_MULTIPLE"] = "UPDATE_MULTIPLE";
26
27
  })(exports.TaskbarElement || (exports.TaskbarElement = {}));
27
28
  exports.AuthorizationElements = void 0;
28
29
  (function (AuthorizationElements) {
@@ -62,6 +63,8 @@ const buildElem = (element, className, dataElementId, getTitle, action, isEnable
62
63
  return iconButton("sync", element, className, dataElementId, title, action, isEnabled);
63
64
  case exports.TaskbarElement.UPDATE:
64
65
  return iconButton("edit", element, className, dataElementId, title, action, isEnabled);
66
+ case exports.TaskbarElement.UPDATE_MULTIPLE:
67
+ return iconButton("edit-table", element, className, dataElementId, title, action, isEnabled);
65
68
  case exports.TaskbarElement.CLONE:
66
69
  return iconButton("copy", element, className, dataElementId, title, action, isEnabled);
67
70
  case exports.TaskbarElement.REMOVE:
@@ -48,6 +48,7 @@ export class SnkCrud {
48
48
  this.setCustomFormTitle = undefined;
49
49
  this.strategyExporter = ExporterStrategy.SERVER_SIDE;
50
50
  this.layoutFormConfig = false;
51
+ this.multipleEditionEnabled = true;
51
52
  this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
52
53
  }
53
54
  /**
@@ -134,14 +135,20 @@ export class SnkCrud {
134
135
  this.setViewMode(VIEW_MODE.FORM);
135
136
  }
136
137
  async executeAction(act) {
137
- if (act === TaskbarElement.GRID_MODE)
138
- return this.setViewMode(VIEW_MODE.GRID);
139
- if (act === TaskbarElement.FORM_MODE || act === TaskbarElement.UPDATE)
140
- return this.gridToForm(act !== TaskbarElement.UPDATE);
141
- if (act === TaskbarElement.CONFIGURATOR)
142
- return this._snkConfigurator.open();
143
- if (act === "ATTACH")
144
- return this.setViewMode(VIEW_MODE.ATTACHMENT);
138
+ switch (act) {
139
+ case TaskbarElement.GRID_MODE:
140
+ return this.setViewMode(VIEW_MODE.GRID);
141
+ case TaskbarElement.FORM_MODE:
142
+ case TaskbarElement.UPDATE:
143
+ return this.gridToForm(act !== TaskbarElement.UPDATE);
144
+ case TaskbarElement.UPDATE_MULTIPLE:
145
+ this._dataUnit.isMultipleEdition = true;
146
+ return this.setViewMode(VIEW_MODE.FORM);
147
+ case TaskbarElement.CONFIGURATOR:
148
+ return this._snkConfigurator.open();
149
+ case TaskbarElement.ATTACH:
150
+ return this.setViewMode(VIEW_MODE.ATTACHMENT);
151
+ }
145
152
  }
146
153
  backView() {
147
154
  const lastView = this._viewHistory.at(-2) || VIEW_MODE.GRID;
@@ -151,6 +158,7 @@ export class SnkCrud {
151
158
  this._viewStack.show(viewMode);
152
159
  this._currentViewMode = viewMode;
153
160
  if (viewMode === VIEW_MODE.GRID) {
161
+ this._dataUnit.isMultipleEdition = false;
154
162
  this._snkGrid.setFocus();
155
163
  }
156
164
  else if (viewMode === VIEW_MODE.FORM) {
@@ -371,7 +379,7 @@ export class SnkCrud {
371
379
  return;
372
380
  }
373
381
  this._snkDataUnit.ignoreSaveMessage = (this._currentViewMode === VIEW_MODE.GRID && !this.enableGridInsert);
374
- return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", { class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full ez-padding--medium' }, h("snk-grid", { ref: (ref) => this._snkGrid = ref, class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full', filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick, enableLockManagerLoadingComp: this.enableLockManagerLoadingComp, strategyExporter: this.strategyExporter }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId, layoutFormConfig: this.layoutFormConfig })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
382
+ return (h(Host, null, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", { class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full ez-padding--medium' }, h("snk-grid", { ref: (ref) => this._snkGrid = ref, class: 'ez-flex ez-flex--column ez-size-height--full ez-size-width--full', filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableLockManagerTaskbarClick: this.enableLockManagerTaskbarClick, enableLockManagerLoadingComp: this.enableLockManagerLoadingComp, strategyExporter: this.strategyExporter, multipleEditionEnabled: this.multipleEditionEnabled }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId, layoutFormConfig: this.layoutFormConfig })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
375
383
  }
376
384
  static get is() { return "snk-crud"; }
377
385
  static get encapsulation() { return "scoped"; }
@@ -871,6 +879,24 @@ export class SnkCrud {
871
879
  "attribute": "layout-form-config",
872
880
  "reflect": false,
873
881
  "defaultValue": "false"
882
+ },
883
+ "multipleEditionEnabled": {
884
+ "type": "boolean",
885
+ "mutable": false,
886
+ "complexType": {
887
+ "original": "boolean",
888
+ "resolved": "boolean",
889
+ "references": {}
890
+ },
891
+ "required": false,
892
+ "optional": false,
893
+ "docs": {
894
+ "tags": [],
895
+ "text": "Habilita a edi\u00E7\u00E3o de m\u00FAltiplos registros simult\u00E2neos."
896
+ },
897
+ "attribute": "multiple-edition-enabled",
898
+ "reflect": false,
899
+ "defaultValue": "true"
874
900
  }
875
901
  };
876
902
  }
@@ -1,4 +1,4 @@
1
- import { Action as DUAction, ElementIDUtils } from '@sankhyalabs/core';
1
+ import { Action as DUAction, ElementIDUtils, ObjectUtils } from '@sankhyalabs/core';
2
2
  import { Fragment, h } from '@stencil/core';
3
3
  import { SnkFormConfigManager } from '../../snk-form-config/SnkFormConfigManager';
4
4
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
@@ -44,14 +44,16 @@ export class SnkGuidesViewer {
44
44
  this.loadGuides(true);
45
45
  }
46
46
  observeDataState(newValue, oldValue) {
47
- const newRecord = newValue === null || newValue === void 0 ? void 0 : newValue.selectedRecord;
48
- const oldRecord = oldValue === null || oldValue === void 0 ? void 0 : oldValue.selectedRecord;
49
- if ((newRecord === null || newRecord === void 0 ? void 0 : newRecord.__record__id__) !== (oldRecord === null || oldRecord === void 0 ? void 0 : oldRecord.__record__id__)) {
47
+ var _a, _b, _c, _d, _e, _f;
48
+ 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__'];
49
+ 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__'];
50
+ if (!ObjectUtils.equals(newRecordsIds, oldRecordsIds)) {
50
51
  this.loadGuides((oldValue === null || oldValue === void 0 ? void 0 : oldValue.insertionMode) != (newValue === null || newValue === void 0 ? void 0 : newValue.insertionMode));
51
52
  }
52
53
  }
53
54
  observeMasterFormConfig() {
54
55
  this.loadGuides(this.noGuideSelected());
56
+ this.snkMasterFormConfigChange.emit(this.masterFormConfig);
55
57
  }
56
58
  /**
57
59
  * Abre o configurador do formulário
@@ -125,6 +127,11 @@ export class SnkGuidesViewer {
125
127
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-crud.msg.ts"
126
128
  */
127
129
  getMessage(key) {
130
+ var _a, _b;
131
+ if (this.dataUnit.isMultipleEdition) {
132
+ const selectedRecords = (_b = (_a = this.dataUnit.getSelectionInfo()) === null || _a === void 0 ? void 0 : _a.records) !== null && _b !== void 0 ? _b : [];
133
+ return `Editando ${selectedRecords.length} registros`;
134
+ }
128
135
  return this.messagesBuilder.getMessage(key, this.dataUnit.getSelectedRecord());
129
136
  }
130
137
  loadGuides(changeSelection) {
@@ -137,12 +144,12 @@ export class SnkGuidesViewer {
137
144
  this._masterFormMetadata = buildFormMetadata(this.masterFormConfig, this.dataUnit, true);
138
145
  const allSheets = this._masterFormMetadata.getAllSheets();
139
146
  const currentRecord = this.dataUnit.getSelectedRecord();
140
- const disableDetails = !currentRecord || this.dataUnit.isNewRecord(currentRecord.__record__id__);
147
+ const disableDetails = this.hasToDisableDetails(currentRecord);
141
148
  const guides = [];
142
149
  Array.from(allSheets.values()).forEach((sheet) => {
143
150
  const item = { id: sheet.name, label: sheet.label };
144
151
  if (this.isDetail(sheet.name) && disableDetails) {
145
- item.tooltip = "Para alterar detalhes é necessário estar com um registro selecionado.";
152
+ item.tooltip = "Para alterar detalhes é necessário estar com um (e apenas um) registro selecionado.";
146
153
  item.disabled = true;
147
154
  }
148
155
  guides.push(item);
@@ -155,6 +162,11 @@ export class SnkGuidesViewer {
155
162
  this.selectedGuide = this._guides.length > 0 ? this._guides[0] : undefined;
156
163
  }
157
164
  }
165
+ hasToDisableDetails(currentRecord) {
166
+ return !currentRecord
167
+ || this.dataUnit.isNewRecord(currentRecord.__record__id__)
168
+ || this.dataUnit.isMultipleEdition;
169
+ }
158
170
  isDetail(formId) {
159
171
  return FormMetadata.getDetailName(formId) != undefined;
160
172
  }
@@ -177,47 +189,59 @@ export class SnkGuidesViewer {
177
189
  }
178
190
  getTaskBarId() {
179
191
  var _a;
180
- return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "snkGuideViewer.finish_edition" : "snkGuideViewer.regular";
181
- }
182
- loadTaskbarProcessor() {
183
- var _a;
184
- const taskbarId = this.getTaskBarId();
185
- const disabledButtons = [];
186
- if (!this.dataState || !this.dataState.hasPrevious) {
187
- disabledButtons.push("PREVIOUS");
192
+ if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) {
193
+ return TASKBAR_ID.FINISH_EDITION;
188
194
  }
189
- if (!this.dataState || !this.dataState.hasNext) {
190
- disabledButtons.push("NEXT");
195
+ if (this.dataUnit.isMultipleEdition) {
196
+ return TASKBAR_ID.MUTIPLE_EDITION;
191
197
  }
192
- if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) {
193
- if (this.dataState.selectionInfo.length > 1) {
194
- disabledButtons.push("CLONE");
195
- }
196
- if (this.dataState.selectionInfo.isAllRecords()) {
197
- disabledButtons.push("REMOVE");
198
- }
198
+ return TASKBAR_ID.REGULAR;
199
+ }
200
+ loadTaskbarProcessor() {
201
+ const taskbarIDs = {};
202
+ taskbarIDs[TASKBAR_ID.REGULAR] = this.buildBtnsRegularMode();
203
+ taskbarIDs[TASKBAR_ID.FINISH_EDITION] = [TaskbarElement.CANCEL, TaskbarElement.SAVE, this.handleAddGridMode()];
204
+ taskbarIDs[TASKBAR_ID.MUTIPLE_EDITION] = [TaskbarElement.CANCEL];
205
+ this._taskbarProcessor = new TaskbarProcessor(taskbarIDs);
206
+ this._taskbarProcessor.process(this.getTaskBarId(), this.taskbarManager, this.dataState, this.buildDisabledButtons(), this.buildInvisibleButtons());
207
+ }
208
+ buildBtnsRegularMode() {
209
+ var _a, _b;
210
+ const btnsRegularMode = [
211
+ TaskbarElement.ATTACH, TaskbarElement.CLONE, TaskbarElement.REMOVE, TaskbarElement.MORE_OPTIONS,
212
+ TaskbarElement.ACTIONS_BUTTON, TaskbarElement.DIVIDER, TaskbarElement.GRID_MODE, TaskbarElement.CONFIGURATOR,
213
+ ];
214
+ if (((_b = (_a = this.dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) === null || _b === void 0 ? void 0 : _b.length) <= 1) {
215
+ btnsRegularMode.unshift(TaskbarElement.PREVIOUS, TaskbarElement.NEXT, TaskbarElement.DIVIDER);
199
216
  }
200
- const btnsRegularMode = ["PREVIOUS", "NEXT", "DIVIDER", "ATTACH", "CLONE", "REMOVE", "MORE_OPTIONS", "ACTIONS_BUTTON", "DIVIDER", "GRID_MODE", "CONFIGURATOR"];
201
217
  if (this.presentationMode == PresentationMode.SECONDARY) {
202
- btnsRegularMode.unshift("INSERT");
218
+ btnsRegularMode.unshift(TaskbarElement.INSERT);
203
219
  }
204
220
  else {
205
- btnsRegularMode.push("INSERT");
221
+ btnsRegularMode.push(TaskbarElement.INSERT);
206
222
  }
207
- const invisibleButtons = this.getInvisibleButtons();
208
- this._taskbarProcessor = new TaskbarProcessor({
209
- "snkGuideViewer.regular": btnsRegularMode,
210
- "snkGuideViewer.finish_edition": ["CANCEL", "SAVE", this.handleAddGridMode()],
211
- });
212
- this._taskbarProcessor.process(taskbarId, this.taskbarManager, this.dataState, disabledButtons, invisibleButtons);
223
+ return btnsRegularMode;
224
+ }
225
+ buildDisabledButtons() {
226
+ var _a, _b, _c, _d, _e, _f;
227
+ const disabledButtons = [];
228
+ if (!((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.hasPrevious))
229
+ disabledButtons.push(TaskbarElement.PREVIOUS);
230
+ if (!((_b = this.dataState) === null || _b === void 0 ? void 0 : _b.hasNext))
231
+ disabledButtons.push(TaskbarElement.NEXT);
232
+ if (((_d = (_c = this.dataState) === null || _c === void 0 ? void 0 : _c.selectionInfo) === null || _d === void 0 ? void 0 : _d.length) > 1)
233
+ disabledButtons.push(TaskbarElement.CLONE);
234
+ if ((_f = (_e = this.dataState) === null || _e === void 0 ? void 0 : _e.selectionInfo) === null || _f === void 0 ? void 0 : _f.isAllRecords())
235
+ disabledButtons.push(TaskbarElement.REMOVE);
236
+ return disabledButtons;
213
237
  }
214
238
  handleAddGridMode() {
215
239
  return this.enableGridInsert ? TaskbarElement.GRID_MODE : "";
216
240
  }
217
- getInvisibleButtons() {
241
+ buildInvisibleButtons() {
218
242
  const invisibleButtons = [];
219
243
  if (this.dataState && this.dataState.selectionInfo.mode === SelectionMode.ALL_RECORDS)
220
- invisibleButtons.push("ACTIONS_BUTTON");
244
+ invisibleButtons.push(TaskbarElement.ACTIONS_BUTTON);
221
245
  return invisibleButtons;
222
246
  }
223
247
  static updateContentCard(formName, cardConfig, propertyChanged, configManager) {
@@ -430,17 +454,27 @@ export class SnkGuidesViewer {
430
454
  }
431
455
  buildTaskBar() {
432
456
  var _a;
433
- 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) ? "SAVE" : "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" })));
457
+ 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" })));
434
458
  }
435
459
  async dataUnitActionHandler(action) {
436
460
  var _a;
437
- if (action.type === DUAction.FIELD_INVALIDATED) {
438
- const guideName = this.getGuideName((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fieldName);
439
- await this.addErrorBadgeToGuide(guideName);
440
- await this.openGuideNavigator(guideName);
441
- }
442
- if (action.type === DUAction.METADATA_LOADED) {
443
- this.loadGuides(this.noGuideSelected());
461
+ switch (action.type) {
462
+ case DUAction.EDITION_CANCELED:
463
+ case DUAction.DATA_SAVED:
464
+ if (this.dataUnit.isMultipleEdition) {
465
+ this.exitViewer();
466
+ this.dataUnit.isMultipleEdition = false;
467
+ }
468
+ break;
469
+ case DUAction.FIELD_INVALIDATED:
470
+ const guideName = this.getGuideName((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fieldName);
471
+ await this.addErrorBadgeToGuide(guideName);
472
+ await this.openGuideNavigator(guideName);
473
+ break;
474
+ case DUAction.METADATA_LOADED:
475
+ case DUAction.MULTIPLE_EDITION_CHANGED:
476
+ this.loadGuides(this.noGuideSelected());
477
+ break;
444
478
  }
445
479
  }
446
480
  async addErrorBadgeToGuide(guideName) {
@@ -480,6 +514,20 @@ export class SnkGuidesViewer {
480
514
  var _a, _b;
481
515
  return (_b = (_a = this.getCustomTitle) === null || _a === void 0 ? void 0 : _a.call(this)) !== null && _b !== void 0 ? _b : this.getMessage("snkCrud.title");
482
516
  }
517
+ getTitleTooltip() {
518
+ if (!this.dataUnit.isMultipleEdition)
519
+ return;
520
+ return this.buildRecordIdsArray();
521
+ }
522
+ buildRecordIdsArray() {
523
+ var _a, _b;
524
+ const selectedRecords = (_b = (_a = this.dataUnit.getSelectionInfo()) === null || _a === void 0 ? void 0 : _a.records) !== null && _b !== void 0 ? _b : [];
525
+ if (selectedRecords.length === 0) {
526
+ return "[]";
527
+ }
528
+ const labels = selectedRecords.map(record => this.messagesBuilder.getMessage("snkCrud.title", record));
529
+ return `[${labels.join(", ")}]`;
530
+ }
483
531
  componentDidLoad() {
484
532
  this.dataUnit.subscribe(this.dataUnitActionHandler.bind(this));
485
533
  }
@@ -493,7 +541,7 @@ export class SnkGuidesViewer {
493
541
  }
494
542
  this.loadTaskbarProcessor();
495
543
  const showGuides = this._guides && (this._guides.length > 1);
496
- 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 &&
544
+ 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 &&
497
545
  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 ?
498
546
  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) })
499
547
  :
@@ -878,6 +926,26 @@ export class SnkGuidesViewer {
878
926
  }
879
927
  static get events() {
880
928
  return [{
929
+ "method": "snkMasterFormConfigChange",
930
+ "name": "snkMasterFormConfigChange",
931
+ "bubbles": true,
932
+ "cancelable": true,
933
+ "composed": true,
934
+ "docs": {
935
+ "tags": [],
936
+ "text": "Emitido quando a configura\u00E7\u00E3o do formul\u00E1rio master \u00E9 definida."
937
+ },
938
+ "complexType": {
939
+ "original": "IFormConfig",
940
+ "resolved": "IFormConfig",
941
+ "references": {
942
+ "IFormConfig": {
943
+ "location": "import",
944
+ "path": "@sankhyalabs/ezui/dist/types/utils/form/interfaces"
945
+ }
946
+ }
947
+ }
948
+ }, {
881
949
  "method": "exit",
882
950
  "name": "exit",
883
951
  "bubbles": true,
@@ -1097,3 +1165,9 @@ export class SnkGuidesViewer {
1097
1165
  }];
1098
1166
  }
1099
1167
  }
1168
+ var TASKBAR_ID;
1169
+ (function (TASKBAR_ID) {
1170
+ TASKBAR_ID["FINISH_EDITION"] = "snkGuideViewer.finish_edition";
1171
+ TASKBAR_ID["MUTIPLE_EDITION"] = "snkGuideViewer.multiple_edition";
1172
+ TASKBAR_ID["REGULAR"] = "snkGuideViewer.regular";
1173
+ })(TASKBAR_ID || (TASKBAR_ID = {}));