@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
@@ -1,11 +1,140 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement, H as Host } from './index-a7d3d3f1.js';
2
2
  import { Action, ObjectUtils, DataUnitAction, StringUtils, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
- import { O as OperationMap, S as SnkMessageBuilder } from './SnkMessageBuilder-6fff4a4c.js';
4
+ import { O as OperationMap, S as SnkMessageBuilder } from './SnkMessageBuilder-12f5fe1a.js';
5
5
  import { g as getRecordValue, a as DatasetStrategy } from './dataunit-fetcher-1d02ecfc.js';
6
6
  import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
7
7
  import { g as getSelectedRecordsIDsInfo } from './GetSelectedRecordsIDsInfo-9fa41508.js';
8
8
 
9
+ const NO_TAB_NAME = "__NO_TAB_NAME__";
10
+ const MAIN_TAB_NAME = "__main";
11
+ async function showConfirmMultipleUpdatePopup({ title, labelBtnConfirm, labelBtnCancel, message, changingFields, }) {
12
+ return new Promise((resolve) => {
13
+ const popup = builPopup(title, resolve);
14
+ const contentContainer = buildContentContainer();
15
+ contentContainer.appendChild(buildMessage(message));
16
+ contentContainer.appendChild(buildChangesContainer(changingFields));
17
+ const actionsContainer = buildActionsContainer();
18
+ actionsContainer.appendChild(buildCancelBtn(popup, labelBtnCancel, resolve));
19
+ actionsContainer.appendChild(buildConfirmBtn(popup, labelBtnConfirm, resolve));
20
+ contentContainer.appendChild(actionsContainer);
21
+ popup.appendChild(contentContainer);
22
+ document.body.appendChild(popup);
23
+ });
24
+ }
25
+ function groupChanges(changingFields) {
26
+ const changesMap = new Map();
27
+ changingFields.forEach(change => {
28
+ var _a;
29
+ const key = (_a = change.tabName) !== null && _a !== void 0 ? _a : NO_TAB_NAME;
30
+ if (!changesMap.has(key))
31
+ changesMap.set(key, []);
32
+ changesMap.get(key).push(change);
33
+ });
34
+ return changesMap;
35
+ }
36
+ function getTabName(tabName) {
37
+ switch (tabName) {
38
+ case NO_TAB_NAME:
39
+ return "";
40
+ case MAIN_TAB_NAME:
41
+ return "Principal";
42
+ default:
43
+ return tabName;
44
+ }
45
+ }
46
+ function buildChangesDiv(tabName, changes) {
47
+ const changeLabel = document.createElement('span');
48
+ changeLabel.innerText = getTabName(tabName);
49
+ changeLabel.style.display = 'block';
50
+ changeLabel.style.fontWeight = 'var(--text-weight--large, 500)';
51
+ changeLabel.style.fontSize = 'var(--text--medium, 14px)';
52
+ changeLabel.style.marginBottom = 'var(--space--small, 6px)';
53
+ const changeDiv = document.createElement('div');
54
+ changeDiv.style.padding = 'var(--space--medium, 12px) 0';
55
+ changeDiv.style.borderTop = '1px solid var(--color--disable-secondary, #f2f5f8)';
56
+ changeDiv.appendChild(changeLabel);
57
+ changes.forEach(change => {
58
+ const changeLine = document.createElement('span');
59
+ changeLine.innerHTML = `${change.label}: <span style="color: var(--text--primary, #626e82)">${change.value}</span>`;
60
+ changeLine.style.display = 'block';
61
+ changeLine.style.marginBottom = 'var(--space--extra-small, 3px)';
62
+ changeDiv.appendChild(changeLine);
63
+ });
64
+ return changeDiv;
65
+ }
66
+ function buildChangesContainer(changingFields) {
67
+ const changesContainer = document.createElement('div');
68
+ changesContainer.style.flexDirection = 'column';
69
+ changesContainer.style.display = 'flex';
70
+ changesContainer.style.overflow = 'auto';
71
+ changesContainer.style.maxHeight = '300px';
72
+ const changesMap = groupChanges(changingFields);
73
+ changesMap.forEach((changes, key) => {
74
+ changesContainer.appendChild(buildChangesDiv(key, changes));
75
+ });
76
+ return changesContainer;
77
+ }
78
+ function buildMessage(messageContent) {
79
+ const message = document.createElement('p');
80
+ message.textContent = messageContent;
81
+ message.style.fontSize = 'var(--text--medium, 14px)';
82
+ return message;
83
+ }
84
+ function buildContentContainer() {
85
+ const contentContainer = document.createElement('div');
86
+ contentContainer.style.display = 'flex';
87
+ contentContainer.style.flexDirection = 'column';
88
+ contentContainer.style.fontFamily = 'var(--font-pattern, Roboto)';
89
+ contentContainer.style.fontSize = 'var(--text--medium, 14px)';
90
+ return contentContainer;
91
+ }
92
+ function buildActionsContainer() {
93
+ const actionsContainer = document.createElement('div');
94
+ actionsContainer.style.display = 'flex';
95
+ actionsContainer.style.flexDirection = 'row';
96
+ actionsContainer.style.justifyContent = 'flex-end';
97
+ actionsContainer.style.gap = '5px';
98
+ return actionsContainer;
99
+ }
100
+ function builPopup(title, resolve) {
101
+ const popup = document.createElement('ez-popup');
102
+ popup.opened = true;
103
+ popup.size = 'small';
104
+ popup.ezTitle = title;
105
+ popup.heightMode = 'auto';
106
+ popup.addEventListener('ezClosePopup', () => {
107
+ document.body.removeChild(popup);
108
+ resolve(false);
109
+ }, { once: true });
110
+ popup.addEventListener('ezPopupAction', () => {
111
+ document.body.removeChild(popup);
112
+ resolve(false);
113
+ }, { once: true });
114
+ return popup;
115
+ }
116
+ function buildConfirmBtn(popup, confirmBtnLabel, resolve) {
117
+ const confirmBtn = document.createElement('ez-button');
118
+ confirmBtn.label = confirmBtnLabel;
119
+ confirmBtn.size = 'medium';
120
+ confirmBtn.classList.add('ez-button--primary');
121
+ confirmBtn.onclick = () => {
122
+ document.body.removeChild(popup);
123
+ resolve(true);
124
+ };
125
+ return confirmBtn;
126
+ }
127
+ function buildCancelBtn(popup, cancelBtnLabel, resolve) {
128
+ const cancelBtn = document.createElement('ez-button');
129
+ cancelBtn.label = cancelBtnLabel;
130
+ cancelBtn.size = 'medium';
131
+ cancelBtn.onclick = () => {
132
+ document.body.removeChild(popup);
133
+ resolve(false);
134
+ };
135
+ return cancelBtn;
136
+ }
137
+
9
138
  const SnkDataUnit = class {
10
139
  constructor(hostRef) {
11
140
  registerInstance(this, hostRef);
@@ -21,6 +150,7 @@ const SnkDataUnit = class {
21
150
  this._fieldsWithRmPrecision = [];
22
151
  this._metadataByRow = new Map();
23
152
  this._rowMetadataCache = new Map();
153
+ this._formFieldsConfig = [];
24
154
  this.REGEX_DATAUNIT_NAME = /dd:\/\/(.+?)\//;
25
155
  this._dataUnitObserver = async (action) => {
26
156
  const duState = await this.buildDataState(action.type);
@@ -97,6 +227,10 @@ const SnkDataUnit = class {
97
227
  this.messagesBuilderUpdated.emit(newValue);
98
228
  }
99
229
  }
230
+ onMasterFormConfigChange({ detail }) {
231
+ var _a;
232
+ this._formFieldsConfig = (_a = detail === null || detail === void 0 ? void 0 : detail.fields) !== null && _a !== void 0 ? _a : [];
233
+ }
100
234
  /**
101
235
  * Obtém o dataUnit.
102
236
  */
@@ -271,9 +405,13 @@ const SnkDataUnit = class {
271
405
  this._openedAlert = false;
272
406
  }
273
407
  async interceptSavingData(action) {
274
- if (!this.beforeSave) {
275
- return action;
408
+ if (this.dataUnit.isMultipleEdition) {
409
+ const confirm = await this.confirmMultipleSavingData();
410
+ if (!confirm)
411
+ return undefined;
276
412
  }
413
+ if (!this.beforeSave)
414
+ return action;
277
415
  const continueAction = this.beforeSave(this.dataUnit);
278
416
  if (continueAction instanceof Promise) {
279
417
  const result = await continueAction;
@@ -281,6 +419,46 @@ const SnkDataUnit = class {
281
419
  }
282
420
  return continueAction ? action : undefined;
283
421
  }
422
+ async confirmMultipleSavingData() {
423
+ const selectedRecords = this.dataUnit.getSelectionInfo().records;
424
+ const title = this.getMessage('snkDataUnit.multipleUpdateConfirmationTitle');
425
+ const message = this.getMessage('snkDataUnit.multipleUpdateConfirmationMessage', { size: selectedRecords.length });
426
+ const labelBtnCancel = this.getMessage('snkDataUnit.confirm.cancel');
427
+ const labelBtnConfirm = this.getMessage('snkDataUnit.confirm.updateMultipleConfirm');
428
+ return await showConfirmMultipleUpdatePopup({
429
+ title,
430
+ message,
431
+ labelBtnConfirm,
432
+ labelBtnCancel,
433
+ changingFields: this.getChangingFields(),
434
+ });
435
+ }
436
+ getChangingFields() {
437
+ const changes = this.dataUnit.buildChangesToSave();
438
+ if (!(changes === null || changes === void 0 ? void 0 : changes.length))
439
+ return [];
440
+ const change = changes[0];
441
+ const changingFields = Object.keys(change.updatingFields).map(key => this.buildChangingField(key, change[key]));
442
+ return changingFields;
443
+ }
444
+ buildChangingField(key, value) {
445
+ const fieldLabel = this.dataUnit.getField(key).label;
446
+ const formattedValue = this.dataUnit.getFormattedValue(key, value);
447
+ return {
448
+ label: fieldLabel,
449
+ value: formattedValue,
450
+ tabName: this.getFieldTabName(key),
451
+ };
452
+ }
453
+ getFieldTabName(fieldName) {
454
+ var _a;
455
+ const tab = (_a = this._formFieldsConfig.find(f => f.name === fieldName)) === null || _a === void 0 ? void 0 : _a.tab;
456
+ if (!tab)
457
+ return undefined;
458
+ if (typeof tab === 'string')
459
+ return tab;
460
+ return tab.label;
461
+ }
284
462
  interceptDataSaved(action) {
285
463
  if (this.afterSave) {
286
464
  this.afterSave(this.dataUnit);
@@ -300,7 +478,17 @@ const SnkDataUnit = class {
300
478
  }
301
479
  const cancelConfirmationTitle = this.getMessage("snkDataUnit.cancelConfirmationTitle");
302
480
  const confirm = await ApplicationUtils.confirm(cancelConfirmationTitle, cancelConfirmation);
303
- confirm && this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
481
+ if (confirm) {
482
+ let editionCanceledMessage;
483
+ if (this.dataUnit.isMultipleEdition) {
484
+ const selectedRecords = this.dataUnit.getSelectionInfo().records;
485
+ editionCanceledMessage = this.buildMultipleUpdateMessage(selectedRecords, true);
486
+ }
487
+ else {
488
+ editionCanceledMessage = this.getMessage("snkDataUnit.cancelInfo");
489
+ }
490
+ this.showSuccessMessage(editionCanceledMessage);
491
+ }
304
492
  return confirm ? action : undefined;
305
493
  }
306
494
  async interceptRemovingRecords(action) {
@@ -478,24 +666,50 @@ const SnkDataUnit = class {
478
666
  }
479
667
  async handleDataSaved(action) {
480
668
  var _a, _b, _c;
481
- const newRowMetadata = await this.handleLoadRowMetadata((_c = (_b = (_a = action === null || action === void 0 ? void 0 : action.payload) === null || _a === void 0 ? void 0 : _a.changes) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.record);
669
+ const changes = (_a = action === null || action === void 0 ? void 0 : action.payload) === null || _a === void 0 ? void 0 : _a.changes;
670
+ const affectedRecords = (_b = action === null || action === void 0 ? void 0 : action.payload) === null || _b === void 0 ? void 0 : _b.records;
671
+ const newRowMetadata = await this.handleLoadRowMetadata((_c = changes === null || changes === void 0 ? void 0 : changes[0]) === null || _c === void 0 ? void 0 : _c.record);
482
672
  if (newRowMetadata) {
483
673
  newRowMetadata.getProp = this.buildGetPropRowMetadata(newRowMetadata);
484
674
  }
485
- const recordId = action.payload.records[0].__record__id__;
675
+ const recordId = affectedRecords[0].__record__id__;
486
676
  this._metadataByRow.set(recordId, newRowMetadata);
487
677
  this.dataState = await this.buildDataState();
488
- let saveOperation = action.payload.changes[0]._operation.toLowerCase();
489
- if (saveOperation == 'copy')
678
+ let saveOperation = changes[0]._operation.toLowerCase();
679
+ if (saveOperation == 'copy') {
490
680
  saveOperation = OperationMap.CLONE;
491
- if (this.ignoreSaveMessage && ![OperationMap.CLONE, OperationMap.INSERT].includes(saveOperation)) {
492
- return;
493
681
  }
494
- const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0], saveOperation);
682
+ if (this.canIgnoreOperationMessage(saveOperation))
683
+ return;
684
+ let msg = this.buildOperationMessage(saveOperation, affectedRecords);
495
685
  if (msg != undefined) {
496
686
  this.showSuccessMessage(msg);
497
687
  }
498
688
  }
689
+ canIgnoreOperationMessage(saveOperation) {
690
+ return this.ignoreSaveMessage && !this.isCloneOrInsertOperation(saveOperation);
691
+ }
692
+ isCloneOrInsertOperation(saveOperation) {
693
+ return [OperationMap.CLONE, OperationMap.INSERT].includes(saveOperation);
694
+ }
695
+ buildOperationMessage(saveOperation, records) {
696
+ if (this.isMultiplesUpdate(saveOperation, records)) {
697
+ return this.buildMultipleUpdateMessage(records);
698
+ }
699
+ return this.getMessage('snkDataUnit.saveInfo', records[0], saveOperation);
700
+ }
701
+ buildMultipleUpdateMessage(records, isCancel) {
702
+ /**
703
+ * FIXME: No futuro, precisamos pensar em um mecanismo para deixar as mensagens de feedback mais dinâmicas.
704
+ * Podemo ocorrer cenários onde temos mais de um registro selecionado e também cenários onde a chave primária
705
+ * de um registro se trata de uma chave composta.
706
+ */
707
+ const key = `snkDataUnit.${isCancel ? 'cancelInfo' : 'saveInfo'}`;
708
+ return this.getMessage(key, { records: records }, OperationMap.UPDATE_MULTIPLES);
709
+ }
710
+ isMultiplesUpdate(saveOperation, records) {
711
+ return saveOperation === OperationMap.UPDATE && records.length > 1;
712
+ }
499
713
  handleRecordsRemoved(action) {
500
714
  var _a, _b;
501
715
  let removeFinishMsg = this.buildRemoveFinishMessage(action);
@@ -1,8 +1,8 @@
1
- export { S as snk_data_unit } from './snk-data-unit-7d0ce406.js';
1
+ export { S as snk_data_unit } from './snk-data-unit-affee080.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
4
  import '@sankhyalabs/ezui/dist/collection/utils';
5
- import './SnkMessageBuilder-6fff4a4c.js';
5
+ import './SnkMessageBuilder-12f5fe1a.js';
6
6
  import './dataunit-fetcher-1d02ecfc.js';
7
7
  import './DataFetcher-88e56266.js';
8
8
  import './PrintUtils-3e4ff0f5.js';
@@ -11,9 +11,9 @@ import './dataunit-fetcher-1d02ecfc.js';
11
11
  import './filter-item-type.enum-d45e026f.js';
12
12
  import './form-config-fetcher-fa208a6c.js';
13
13
  import { V as VIEW_MODE } from './constants-7db1128a.js';
14
- import { T as TaskbarElement } from './taskbar-elements-d2353c64.js';
15
- import { S as SnkGuidesViewer } from './snk-guides-viewer-c44b3839.js';
16
- import { S as SnkMessageBuilder } from './SnkMessageBuilder-6fff4a4c.js';
14
+ import { T as TaskbarElement } from './taskbar-elements-c62b6c66.js';
15
+ import { S as SnkGuidesViewer } from './snk-guides-viewer-3befd409.js';
16
+ import { S as SnkMessageBuilder } from './SnkMessageBuilder-12f5fe1a.js';
17
17
  import './ConfigStorage-71e6766f.js';
18
18
  import './PrintUtils-3e4ff0f5.js';
19
19
  import '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
@@ -1,6 +1,6 @@
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-d2353c64.js';
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';
@@ -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": ["UPDATE", "CLONE", "REMOVE", "MORE_OPTIONS", "DIVIDER", "ATTACH", "REFRESH", "DATA_EXPORTER", "ACTIONS_BUTTON"],
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, "ATTACH", TaskbarElement.UPDATE);
445
+ disabledButtons.push(TaskbarElement.CLONE, TaskbarElement.ATTACH, TaskbarElement.UPDATE);
435
446
  }
436
447
  if (this._dataState.selectionInfo.isAllRecords()) {
437
- disabledButtons.push("REMOVE");
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("DATA_EXPORTER");
446
- if (this._dataState && this._dataState.selectionInfo.mode === SelectionMode.ALL_RECORDS)
447
- invisibleButtons.push("ACTIONS_BUTTON");
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,9 +1,9 @@
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-d2353c64.js';
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';
@@ -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
- const newRecord = newValue === null || newValue === void 0 ? void 0 : newValue.selectedRecord;
61
- const oldRecord = oldValue === null || oldValue === void 0 ? void 0 : oldValue.selectedRecord;
62
- if ((newRecord === null || newRecord === void 0 ? void 0 : newRecord.__record__id__) !== (oldRecord === null || oldRecord === void 0 ? void 0 : oldRecord.__record__id__)) {
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 = !currentRecord || this.dataUnit.isNewRecord(currentRecord.__record__id__);
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
- return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "snkGuideViewer.finish_edition" : "snkGuideViewer.regular";
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 (!this.dataState || !this.dataState.hasNext) {
203
- disabledButtons.push("NEXT");
209
+ if (this.dataUnit.isMultipleEdition) {
210
+ return TASKBAR_ID.MUTIPLE_EDITION;
204
211
  }
205
- if ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.selectionInfo) {
206
- if (this.dataState.selectionInfo.length > 1) {
207
- disabledButtons.push("CLONE");
208
- }
209
- if (this.dataState.selectionInfo.isAllRecords()) {
210
- disabledButtons.push("REMOVE");
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("INSERT");
232
+ btnsRegularMode.unshift(TaskbarElement.INSERT);
216
233
  }
217
234
  else {
218
- btnsRegularMode.push("INSERT");
235
+ btnsRegularMode.push(TaskbarElement.INSERT);
219
236
  }
220
- const invisibleButtons = this.getInvisibleButtons();
221
- this._taskbarProcessor = new TaskbarProcessor({
222
- "snkGuideViewer.regular": btnsRegularMode,
223
- "snkGuideViewer.finish_edition": ["CANCEL", "SAVE", this.handleAddGridMode()],
224
- });
225
- this._taskbarProcessor.process(taskbarId, this.taskbarManager, this.dataState, disabledButtons, invisibleButtons);
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
- getInvisibleButtons() {
255
+ buildInvisibleButtons() {
231
256
  const invisibleButtons = [];
232
257
  if (this.dataState && this.dataState.selectionInfo.mode === SelectionMode.ALL_RECORDS)
233
- invisibleButtons.push("ACTIONS_BUTTON");
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) ? "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" })));
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
- if (action.type === Action.FIELD_INVALIDATED) {
451
- const guideName = this.getGuideName((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fieldName);
452
- await this.addErrorBadgeToGuide(guideName);
453
- await this.openGuideNavigator(guideName);
454
- }
455
- if (action.type === Action.METADATA_LOADED) {
456
- this.loadGuides(this.noGuideSelected());
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-c44b3839.js';
1
+ export { S as snk_guides_viewer } from './snk-guides-viewer-3befd409.js';
2
2
  import './index-a7d3d3f1.js';
3
3
  import '@sankhyalabs/core';
4
4
  import './SnkFormConfigManager-be490a33.js';
@@ -11,7 +11,7 @@ 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-d2353c64.js';
14
+ import './taskbar-elements-c62b6c66.js';
15
15
  import './index-b40568ff.js';
16
16
  import './index-bdf75557.js';
17
17
  import './ISave-5efafc97.js';