@sankhyalabs/sankhyablocks 5.1.3 → 5.2.0

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 (136) hide show
  1. package/dist/cjs/{SnkMessageBuilder-47185d5d.js → SnkMessageBuilder-c6bd8bc7.js} +9 -2
  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-config-options.cjs.entry.js +2 -1
  6. package/dist/cjs/snk-configurator.cjs.entry.js +3 -2
  7. package/dist/cjs/snk-crud.cjs.entry.js +10 -3
  8. package/dist/cjs/snk-data-exporter.cjs.entry.js +10 -1
  9. package/dist/cjs/snk-data-unit-3b6ab2ad.js +436 -0
  10. package/dist/cjs/snk-data-unit.cjs.entry.js +6 -411
  11. package/dist/cjs/snk-detail-view.cjs.entry.js +7 -2
  12. package/dist/cjs/snk-field-config.cjs.entry.js +2 -4
  13. package/dist/cjs/snk-filter-bar.cjs.entry.js +3 -1
  14. package/dist/cjs/snk-filter-param-config.cjs.entry.js +2 -1
  15. package/dist/cjs/snk-form-config.cjs.entry.js +6 -5
  16. package/dist/cjs/snk-form.cjs.entry.js +2 -1
  17. package/dist/cjs/snk-grid.cjs.entry.js +6 -4
  18. package/dist/cjs/{snk-guides-viewer-6225bb73.js → snk-guides-viewer-8a6743d6.js} +8 -5
  19. package/dist/cjs/snk-guides-viewer.cjs.entry.js +1 -1
  20. package/dist/cjs/snk-simple-crud.cjs.entry.js +2 -1
  21. package/dist/cjs/snk-tab-config.cjs.entry.js +2 -1
  22. package/dist/cjs/snk-taskbar.cjs.entry.js +3 -1
  23. package/dist/collection/components/snk-application/snk-application.js +2 -2
  24. package/dist/collection/components/snk-configurator/snk-configurator.js +23 -2
  25. package/dist/collection/components/snk-crud/snk-crud.js +30 -3
  26. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view.js +27 -2
  27. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +29 -6
  28. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +29 -1
  29. package/dist/collection/components/snk-data-unit/snk-data-unit.js +64 -3
  30. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +23 -1
  31. package/dist/collection/components/snk-form/snk-form.js +22 -1
  32. package/dist/collection/components/snk-form/subcomponents/snk-config-options/snk-config-options.js +22 -1
  33. package/dist/collection/components/snk-form/subcomponents/snk-field-config/snk-field-config.js +23 -5
  34. package/dist/collection/components/snk-form/subcomponents/snk-form-config/snk-form-config.js +26 -5
  35. package/dist/collection/components/snk-form/subcomponents/snk-tab-config/snk-tab-config.js +22 -1
  36. package/dist/collection/components/snk-grid/snk-grid.js +26 -4
  37. package/dist/collection/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js +26 -1
  38. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +22 -1
  39. package/dist/collection/components/snk-taskbar/snk-taskbar.js +23 -1
  40. package/dist/collection/lib/message/SnkMessageBuilder.js +9 -2
  41. package/dist/components/SnkMessageBuilder.js +9 -2
  42. package/dist/components/snk-application2.js +1 -1
  43. package/dist/components/snk-config-options2.js +3 -1
  44. package/dist/components/snk-configurator2.js +4 -2
  45. package/dist/components/snk-crud.js +11 -3
  46. package/dist/components/snk-data-exporter2.js +10 -1
  47. package/dist/components/snk-data-unit2.js +25 -4
  48. package/dist/components/snk-detail-view2.js +17 -7
  49. package/dist/components/snk-field-config2.js +5 -6
  50. package/dist/components/snk-filter-bar2.js +4 -1
  51. package/dist/components/snk-filter-param-config.js +3 -1
  52. package/dist/components/snk-form-config2.js +7 -5
  53. package/dist/components/snk-form.js +3 -1
  54. package/dist/components/snk-grid2.js +7 -4
  55. package/dist/components/snk-simple-crud.js +3 -1
  56. package/dist/components/snk-tab-config2.js +3 -1
  57. package/dist/components/snk-taskbar2.js +4 -1
  58. package/dist/esm/{SnkMessageBuilder-ec0850af.js → SnkMessageBuilder-68bbf0ae.js} +9 -2
  59. package/dist/esm/loader.js +1 -1
  60. package/dist/esm/sankhyablocks.js +1 -1
  61. package/dist/esm/snk-application.entry.js +1 -1
  62. package/dist/esm/snk-config-options.entry.js +2 -1
  63. package/dist/esm/snk-configurator.entry.js +3 -2
  64. package/dist/esm/snk-crud.entry.js +10 -3
  65. package/dist/esm/snk-data-exporter.entry.js +10 -1
  66. package/dist/esm/snk-data-unit-a8093f95.js +434 -0
  67. package/dist/esm/snk-data-unit.entry.js +5 -414
  68. package/dist/esm/snk-detail-view.entry.js +7 -2
  69. package/dist/esm/snk-field-config.entry.js +3 -5
  70. package/dist/esm/snk-filter-bar.entry.js +3 -1
  71. package/dist/esm/snk-filter-param-config.entry.js +2 -1
  72. package/dist/esm/snk-form-config.entry.js +6 -5
  73. package/dist/esm/snk-form.entry.js +2 -1
  74. package/dist/esm/snk-grid.entry.js +6 -4
  75. package/dist/esm/{snk-guides-viewer-73b9eb29.js → snk-guides-viewer-d8654e2a.js} +9 -6
  76. package/dist/esm/snk-guides-viewer.entry.js +1 -1
  77. package/dist/esm/snk-simple-crud.entry.js +2 -1
  78. package/dist/esm/snk-tab-config.entry.js +2 -1
  79. package/dist/esm/snk-taskbar.entry.js +3 -1
  80. package/dist/sankhyablocks/p-046b2563.entry.js +1 -0
  81. package/dist/sankhyablocks/p-0a1e7f75.entry.js +1 -0
  82. package/dist/sankhyablocks/{p-28c800b9.js → p-0d70c017.js} +1 -1
  83. package/dist/sankhyablocks/p-1a16426f.js +1 -0
  84. package/dist/sankhyablocks/{p-9ce550b7.entry.js → p-21a6c546.entry.js} +1 -1
  85. package/dist/sankhyablocks/p-280b1321.entry.js +1 -0
  86. package/dist/sankhyablocks/p-32599159.entry.js +1 -0
  87. package/dist/sankhyablocks/p-5b84b0c5.entry.js +1 -0
  88. package/dist/sankhyablocks/p-601e6920.entry.js +1 -0
  89. package/dist/sankhyablocks/p-69af76d4.entry.js +1 -0
  90. package/dist/sankhyablocks/p-76f04efe.entry.js +1 -0
  91. package/dist/sankhyablocks/p-93d8fe00.entry.js +1 -0
  92. package/dist/sankhyablocks/p-a12d74dc.entry.js +1 -0
  93. package/dist/sankhyablocks/p-a7468f4b.js +1 -0
  94. package/dist/sankhyablocks/p-a80c766c.entry.js +1 -0
  95. package/dist/sankhyablocks/p-b686e91a.entry.js +1 -0
  96. package/dist/sankhyablocks/p-b80cf644.entry.js +1 -0
  97. package/dist/sankhyablocks/p-d65809d5.entry.js +1 -0
  98. package/dist/sankhyablocks/{p-b9fe5ed3.entry.js → p-e999631f.entry.js} +2 -2
  99. package/dist/sankhyablocks/p-f29caa0a.entry.js +1 -0
  100. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  101. package/dist/types/components/snk-application/snk-application.d.ts +1 -4
  102. package/dist/types/components/snk-configurator/snk-configurator.d.ts +5 -0
  103. package/dist/types/components/snk-crud/snk-crud.d.ts +6 -0
  104. package/dist/types/components/snk-crud/subcomponents/snk-detail-view.d.ts +2 -3
  105. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +5 -1
  106. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +5 -0
  107. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +13 -2
  108. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +5 -0
  109. package/dist/types/components/snk-form/snk-form.d.ts +5 -0
  110. package/dist/types/components/snk-form/subcomponents/snk-config-options/snk-config-options.d.ts +5 -0
  111. package/dist/types/components/snk-form/subcomponents/snk-field-config/snk-field-config.d.ts +5 -2
  112. package/dist/types/components/snk-form/subcomponents/snk-form-config/snk-form-config.d.ts +5 -0
  113. package/dist/types/components/snk-form/subcomponents/snk-tab-config/snk-tab-config.d.ts +5 -0
  114. package/dist/types/components/snk-grid/snk-grid.d.ts +5 -0
  115. package/dist/types/components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.d.ts +5 -0
  116. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +5 -0
  117. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +5 -0
  118. package/dist/types/components.d.ts +126 -12
  119. package/dist/types/lib/message/SnkMessageBuilder.d.ts +4 -2
  120. package/package.json +1 -1
  121. package/dist/sankhyablocks/p-0154ae58.entry.js +0 -1
  122. package/dist/sankhyablocks/p-10be1b2a.entry.js +0 -1
  123. package/dist/sankhyablocks/p-12d2dccf.entry.js +0 -1
  124. package/dist/sankhyablocks/p-193b0fa5.entry.js +0 -1
  125. package/dist/sankhyablocks/p-31d4e5d4.entry.js +0 -1
  126. package/dist/sankhyablocks/p-68507ace.entry.js +0 -1
  127. package/dist/sankhyablocks/p-72277163.entry.js +0 -1
  128. package/dist/sankhyablocks/p-7d4bb27a.entry.js +0 -1
  129. package/dist/sankhyablocks/p-94fef424.entry.js +0 -1
  130. package/dist/sankhyablocks/p-983fef8f.js +0 -1
  131. package/dist/sankhyablocks/p-af8cf505.entry.js +0 -1
  132. package/dist/sankhyablocks/p-c88c4f80.entry.js +0 -1
  133. package/dist/sankhyablocks/p-dd90bd52.entry.js +0 -1
  134. package/dist/sankhyablocks/p-eb7b2496.entry.js +0 -1
  135. package/dist/sankhyablocks/p-ecd3cad5.entry.js +0 -1
  136. package/dist/sankhyablocks/p-f9ca6d74.entry.js +0 -1
@@ -15,6 +15,7 @@ const SnkConfigurator = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
15
15
  this._permissions = undefined;
16
16
  this.configName = undefined;
17
17
  this.viewMode = VIEW_MODE.GRID;
18
+ this.messagesBuilder = undefined;
18
19
  }
19
20
  /**
20
21
  * Exibe a janela de configuração.
@@ -70,8 +71,8 @@ const SnkConfigurator = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
70
71
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-configurator.msg.ts"
71
72
  */
72
73
  getMessage(key) {
73
- var _a, _b;
74
- return (_b = (_a = this._application) === null || _a === void 0 ? void 0 : _a.messagesBuilder) === null || _b === void 0 ? void 0 : _b.getMessage(key, {});
74
+ var _a;
75
+ return (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, {});
75
76
  }
76
77
  componentWillLoad() {
77
78
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
@@ -91,6 +92,7 @@ const SnkConfigurator = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
91
92
  }, [2, "snk-configurator", {
92
93
  "configName": [1, "config-name"],
93
94
  "viewMode": [2, "view-mode"],
95
+ "messagesBuilder": [1040],
94
96
  "_opened": [32],
95
97
  "_permissions": [32],
96
98
  "open": [64],
@@ -42,6 +42,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
42
42
  this.statusResolver = undefined;
43
43
  this.multipleSelection = true;
44
44
  this.presentationMode = PresentationMode.PRIMARY;
45
+ this.messagesBuilder = undefined;
45
46
  }
46
47
  /**
47
48
  * Usado para alternar a visão entre GRID e FORM externamente.
@@ -101,11 +102,11 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
101
102
  if (!this._dataUnit) {
102
103
  this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
103
104
  this._dataUnit = evt.detail;
104
- this.addDataElementID();
105
+ this.initDataUnit();
105
106
  });
106
107
  }
107
108
  else {
108
- this.addDataElementID();
109
+ this.initDataUnit();
109
110
  }
110
111
  this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
111
112
  this._dataState = evt.detail;
@@ -119,8 +120,14 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
119
120
  this.configName = application.configName;
120
121
  }
121
122
  }
123
+ initDataUnit() {
124
+ this.addDataElementID();
125
+ if (!this.messagesBuilder) {
126
+ this.messagesBuilder = this._snkDataUnit.messagesBuilder;
127
+ }
128
+ }
122
129
  render() {
123
- return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode }, 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, 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" }, h("slot", { name: "SnkFormTaskBar" }))), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
130
+ return (h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "crud" }, h("stack-item", null, h("snk-grid", { ref: (ref) => this._snkGrid = ref, "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 }, 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" }, h("slot", { name: "SnkFormTaskBar" }))), 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) })));
124
131
  }
125
132
  get _element() { return this; }
126
133
  static get style() { return snkCrudCss; }
@@ -132,6 +139,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
132
139
  "statusResolver": [16],
133
140
  "multipleSelection": [4, "multiple-selection"],
134
141
  "presentationMode": [1, "presentation-mode"],
142
+ "messagesBuilder": [1040],
135
143
  "_dataUnit": [32],
136
144
  "_dataState": [32],
137
145
  "_currentViewMode": [32],
@@ -4,6 +4,7 @@ import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/
4
4
  import { D as DataExporterOption, d as DataExporterFormat, e as DataExporterType } from './index2.js';
5
5
  import { K as KEY_PORT_EXPORT, W as WEB_CONNECTION, R as REPORT_LAUNCHER_RESOURCE_ID } from './constants.js';
6
6
  import { D as DataFetcher } from './DataFetcher.js';
7
+ import { S as SnkDataUnit } from './snk-data-unit2.js';
7
8
  import { d as defineCustomElement$1 } from './snk-exporter-email-sender2.js';
8
9
 
9
10
  class ItemBuilder {
@@ -239,6 +240,7 @@ const SnkDataExporter = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
239
240
  DataExporterOption.EXPORT_PAGE_TO_XLS
240
241
  ];
241
242
  this.provider = null;
243
+ this.messagesBuilder = undefined;
242
244
  }
243
245
  async exportByEmail() {
244
246
  const selectedRows = this._selectedNumber;
@@ -268,7 +270,13 @@ const SnkDataExporter = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
268
270
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-data-exporter.msg.ts"
269
271
  */
270
272
  getMessage(key, params) {
271
- return this._application.messagesBuilder.getMessage(key, params);
273
+ if (this.messagesBuilder == undefined) {
274
+ const dataUnit = SnkDataUnit.getNearestInstance(this._element);
275
+ if (dataUnit) {
276
+ this.messagesBuilder = dataUnit.messagesBuilder;
277
+ }
278
+ }
279
+ return this.messagesBuilder.getMessage(key, params);
272
280
  }
273
281
  positionDropdown() {
274
282
  var _a;
@@ -509,6 +517,7 @@ const SnkDataExporter = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
509
517
  static get style() { return snkDataExporterCss; }
510
518
  }, [2, "snk-data-exporter", {
511
519
  "provider": [16],
520
+ "messagesBuilder": [1040],
512
521
  "_items": [32],
513
522
  "_showDropdown": [32],
514
523
  "_releasedToExport": [32]
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { Action, ObjectUtils, JSUtils, ApplicationContext, DataType } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
- import { O as OperationMap } from './SnkMessageBuilder.js';
4
+ import { O as OperationMap, S as SnkMessageBuilder } from './SnkMessageBuilder.js';
5
5
 
6
6
  const snkDataUnitCss = ".sc-snk-data-unit-h{display:flex;flex-direction:column;height:100%;width:100%}";
7
7
 
@@ -11,6 +11,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
11
11
  this.__registerHost();
12
12
  this.dataStateChange = createEvent(this, "dataStateChange", 3);
13
13
  this.dataUnitReady = createEvent(this, "dataUnitReady", 3);
14
+ this.messagesBuilderUpdated = createEvent(this, "messagesBuilderUpdated", 3);
14
15
  this.insertionMode = createEvent(this, "insertionMode", 3);
15
16
  this.cancelEdition = createEvent(this, "cancelEdition", 3);
16
17
  this._onDataUnitResolve = [];
@@ -53,9 +54,10 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
53
54
  }
54
55
  }
55
56
  }
56
- this._application.messagesBuilder.currentOperation = this.getMessageOperation();
57
+ this.messagesBuilder.currentOperation = this.getMessageOperation();
57
58
  };
58
59
  this.dataState = undefined;
60
+ this.messagesBuilder = undefined;
59
61
  this.dataUnitName = undefined;
60
62
  this.entityName = undefined;
61
63
  this.pageSize = 150;
@@ -94,6 +96,11 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
94
96
  this.handlerLinkFields();
95
97
  this.dataUnitReady.emit(this.dataUnit);
96
98
  }
99
+ observeMessagesBuilder(newValue) {
100
+ if (newValue) {
101
+ this.messagesBuilderUpdated.emit(newValue);
102
+ }
103
+ }
97
104
  /**
98
105
  * Obtém o dataUnit.
99
106
  */
@@ -289,7 +296,7 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
289
296
  if (!params) {
290
297
  params = this.getMessageParams();
291
298
  }
292
- return this._application.messagesBuilder.getMessage(key, params);
299
+ return this.messagesBuilder.getMessage(key, params);
293
300
  }
294
301
  getMessageParams() {
295
302
  //FIXME: Devido ao recurso de multiseleção do dataunit, precisaremos criar um mecanismo para
@@ -361,6 +368,15 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
361
368
  });
362
369
  this.dataUnit.metadata = metadata;
363
370
  }
371
+ static getNearestInstance(element) {
372
+ let parent = element.parentElement;
373
+ while (parent) {
374
+ if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
375
+ return parent;
376
+ }
377
+ parent = parent.parentElement;
378
+ }
379
+ }
364
380
  //---------------------------------------------
365
381
  // Lifecycle web component
366
382
  //---------------------------------------------
@@ -368,6 +384,9 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
368
384
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
369
385
  this._application.getAllAccess().then(access => this._permissions = access);
370
386
  this._parentSnkDataUnit = this.getParentSnkDataUnit();
387
+ if (this.messagesBuilder == undefined) {
388
+ this.messagesBuilder = new SnkMessageBuilder(this.entityName);
389
+ }
371
390
  }
372
391
  disconnectedCallback() {
373
392
  if (this.dataUnit) {
@@ -387,11 +406,13 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
387
406
  "dataUnitName": ["observeDataUnitName"],
388
407
  "entityName": ["observeEntityName"],
389
408
  "dataState": ["observeDataState"],
390
- "dataUnit": ["observeDataUnit"]
409
+ "dataUnit": ["observeDataUnit"],
410
+ "messagesBuilder": ["observeMessagesBuilder"]
391
411
  }; }
392
412
  static get style() { return snkDataUnitCss; }
393
413
  }, [2, "snk-data-unit", {
394
414
  "dataState": [1040],
415
+ "messagesBuilder": [1040],
395
416
  "dataUnitName": [1, "data-unit-name"],
396
417
  "entityName": [1, "entity-name"],
397
418
  "pageSize": [2, "page-size"],
@@ -3,7 +3,7 @@ import { S as SnkFormConfigManager } from './SnkFormConfigManager.js';
3
3
  import { buildFormMetadata, FormMetadata } from '@sankhyalabs/ezui/dist/collection/utils/form';
4
4
  import './DataFetcher.js';
5
5
  import './pesquisa-fetcher.js';
6
- import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
6
+ import { ElementIDUtils } from '@sankhyalabs/core';
7
7
  import { P as PresentationMode } from './index2.js';
8
8
  import { T as TaskbarElement, d as defineCustomElement$2 } from './snk-taskbar2.js';
9
9
  import { V as VIEW_MODE } from './constants.js';
@@ -12,6 +12,7 @@ import { d as defineCustomElement$k } from './snk-config-options2.js';
12
12
  import { d as defineCustomElement$j } from './snk-configurator2.js';
13
13
  import { d as defineCustomElement$i } from './snk-data-exporter2.js';
14
14
  import { d as defineCustomElement$h } from './snk-data-unit2.js';
15
+ import { S as SnkMessageBuilder } from './SnkMessageBuilder.js';
15
16
  import { d as defineCustomElement$g } from './snk-exporter-email-sender2.js';
16
17
  import { d as defineCustomElement$e } from './snk-filter-bar2.js';
17
18
  import { d as defineCustomElement$d } from './snk-filter-detail2.js';
@@ -46,6 +47,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
46
47
  this.masterFormConfig = undefined;
47
48
  this.selectedGuide = undefined;
48
49
  this.taskbarManager = undefined;
50
+ this.messagesBuilder = undefined;
49
51
  this.presentationMode = undefined;
50
52
  this._breadcrumbItems = [];
51
53
  this._guides = undefined;
@@ -103,7 +105,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
103
105
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-crud.msg.ts"
104
106
  */
105
107
  getMessage(key) {
106
- return this._application.messagesBuilder.getMessage(key, this.dataUnit.getSelectedRecord());
108
+ return this.messagesBuilder.getMessage(key, this.dataUnit.getSelectedRecord());
107
109
  }
108
110
  loadGuides(changeSelection) {
109
111
  if (!this.dataUnit) {
@@ -286,7 +288,6 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
286
288
  }
287
289
  }
288
290
  componentWillLoad() {
289
- this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
290
291
  this._configManager = new SnkFormConfigManager(this.configName, config => this.masterFormConfig = config);
291
292
  this._configManager.loadConfig();
292
293
  }
@@ -306,12 +307,12 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
306
307
  }
307
308
  buildTaskBar() {
308
309
  var _a;
309
- return h("div", { class: `ez-col ez-flex-item--align-center ez-col--sd-6 ez-col--tb-6 ${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.actionsList, presentationMode: this.presentationMode, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-taskbar-owner": "master", dataUnit: this.dataUnit }));
310
+ return h("div", { class: `ez-col ez-flex-item--align-center ez-col--sd-6 ez-col--tb-6 ${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.actionsList, 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 }));
310
311
  }
311
312
  render() {
312
313
  var _a, _b;
313
314
  if (this._formEditorConfigManager != undefined) {
314
- return (h("snk-form-config", { dataUnit: this._formEditorDataUnit, configManager: this._formEditorConfigManager, onConfigClose: () => this._formEditorConfigManager = null }));
315
+ return (h("snk-form-config", { dataUnit: this._formEditorDataUnit, messagesBuilder: this.messagesBuilder, configManager: this._formEditorConfigManager, onConfigClose: () => this._formEditorConfigManager = null }));
315
316
  }
316
317
  if (!this.dataUnit) {
317
318
  return;
@@ -322,7 +323,10 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
322
323
  this.loadTaskbarProcessor();
323
324
  const showGuides = this._guides && (this._guides.length > 1);
324
325
  return (h("section", { class: "snk-guides-viewer" }, h("div", { class: "ez-row snk-guides-viewer__header" }, h("div", { class: "ez-col ez-col--sd-6 ez-col--tb-6 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.getMessage("snkCrud.title")), ((_a = this._breadcrumbItems) === null || _a === void 0 ? void 0 : _a.length) > 1 &&
325
- 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: showGuides ? "snk-guides-viewer__container" : undefined }, showGuides && 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, onEzChange: evt => this.updateSelectedGuideHandler(evt.detail) }), h("div", { class: "snk-guides-viewer__detail-container" }, SnkGuidesViewer.buildFixedForms(this.masterFormConfig, this._masterFormMetadata, (_b = this.selectedGuide) === null || _b === void 0 ? void 0 : _b.id, this.dataUnit, this.recordsValidator), this.getContent())), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this.getConfigViewMode(), onConfigSelected: (evt) => this.changeConfigViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail) })));
326
+ 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 ?
327
+ 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, onEzChange: evt => this.updateSelectedGuideHandler(evt.detail) })
328
+ :
329
+ h("div", null), h("div", { class: "snk-guides-viewer__detail-container" }, SnkGuidesViewer.buildFixedForms(this.masterFormConfig, this._masterFormMetadata, (_b = this.selectedGuide) === null || _b === void 0 ? void 0 : _b.id, this.dataUnit, this.recordsValidator), this.getContent())), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this.getConfigViewMode(), onConfigSelected: (evt) => this.changeConfigViewMode(evt.detail), messagesBuilder: this.messagesBuilder, onOpenConfig: (evt) => this.openConfig(evt.detail) })));
326
330
  }
327
331
  static get watchers() { return {
328
332
  "dataUnit": ["observeDataUnit"],
@@ -341,6 +345,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
341
345
  "masterFormConfig": [1040],
342
346
  "selectedGuide": [16],
343
347
  "taskbarManager": [16],
348
+ "messagesBuilder": [1040],
344
349
  "presentationMode": [1, "presentation-mode"],
345
350
  "_breadcrumbItems": [32],
346
351
  "_guides": [32],
@@ -522,6 +527,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
522
527
  this.dataUnit = undefined;
523
528
  this.selectedForm = undefined;
524
529
  this.dataState = undefined;
530
+ this.messagesBuilder = undefined;
525
531
  this.branchGuide = undefined;
526
532
  }
527
533
  observerDataState(newValue, oldValue) {
@@ -662,11 +668,14 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
662
668
  this._configName = `dynaform.${this.entityName}`;
663
669
  this.formConfigManager = new SnkFormConfigManager(this._configName, () => this.loadMetadata());
664
670
  this.formConfigManager.loadConfig();
671
+ if (this.messagesBuilder == undefined) {
672
+ this.messagesBuilder = new SnkMessageBuilder(this.entityName);
673
+ }
665
674
  }
666
675
  render() {
667
676
  this.updateLabel();
668
677
  //const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
669
- return (h(Host, null, h("snk-data-unit", { dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: evt => this.dataState = evt.detail }, h("ez-view-stack", { ref: ref => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-flex ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: evt => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, isDetail: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath }, h("snk-taskbar", { key: "guideViewerTaskbar", class: "form-taskbar", "data-element-id": "guideViewer", configName: this._configName, disabledButtons: this._disabledButtons, buttons: "INSERT,PREVIOUS,NEXT,DIVIDER,CLONE,REMOVE,MORE_OPTIONS,DIVIDER,GRID_MODE,CONFIGURATOR", primaryButton: "INSERT", presentationMode: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit })))))));
678
+ return (h(Host, null, h("snk-data-unit", { dataUnitName: `${this.dataUnitName}`, onDataUnitReady: evt => this.dataUnitReadyHandler(evt), entityName: this.entityName, onDataStateChange: evt => this.dataState = evt.detail, messagesBuilder: this.messagesBuilder }, h("ez-view-stack", { ref: ref => this.updateViewStack(ref) }, h("stack-item", null, h("div", { class: "ez-box ez-box--shadow grid-container" }, h("div", { class: "ez-flex ez-size-width--full ez-padding--large detail-header" }, h("div", { class: "ez-flex ez-text ez-text--bold ez-flex--justify-start ez-flex--align-items-center" }, this._levelPath ? h("span", { class: "level-path" }, this._levelPath + " /") : undefined, this.label)), h("snk-grid", { class: "ez-size-width--full ez-size-height--full", ref: (ref) => this._snkGrid = ref, configName: this._configName, messagesBuilder: this.messagesBuilder, onGridDoubleClick: () => this.emitSwitchEvent(VIEW_MODE.FORM), onActionClick: evt => this.executeActionHandler(evt), presentationMode: PresentationMode.SECONDARY, isDetail: true }))), h("stack-item", null, h("snk-form-view", { ref: (ref) => this._snkFormView = ref, canExpand: false, canFix: false, name: this.selectedForm, formMetadata: this._formMetadata, dataUnit: this.dataUnit, fields: this.getFormFields(), label: this.label, levelPath: this._levelPath }, h("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: PresentationMode.SECONDARY, onActionClick: evt => this.executeActionHandler(evt), dataUnit: this.dataUnit })))))));
670
679
  }
671
680
  static get watchers() { return {
672
681
  "dataState": ["observerDataState"]
@@ -681,6 +690,7 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
681
690
  "dataUnit": [1040],
682
691
  "selectedForm": [1025, "selected-form"],
683
692
  "dataState": [1040],
693
+ "messagesBuilder": [1040],
684
694
  "branchGuide": [16],
685
695
  "_disabledButtons": [32],
686
696
  "changeViewMode": [64],
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
2
+ import { ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { A as ACTION_CONFIG } from './constants.js';
4
4
 
5
5
  const snkFieldConfigCss = ".sc-snk-field-config-h{--snk-field-config--height:42px;--snk-field-config--width:100%;--snk-field-config__icon--width:48px;--snk-field-config-slim--height:32px;--snk-field-config--border-radius:var(--border--radius-medium, 12px);--snk-field-config--font-size:var(--text--medium, 14px);--snk-field-config--font-family:var(--font-pattern, Arial);--snk-field-config--font-weight:var(--text-weight--medium, 400);--snk-field-config--color:var(--title--primary, #000);--snk-field-config--padding-left:var(--space--medium, 6px);--snk-field-config__input--background-color:var(--background--medium, #e0e0e0);--snk-field-config__input--border:var(--border--medium, 2px solid);--snk-field-config__input--border-color:var(--background--xlight, #fff);--snk-field-config__required--color:var(--color--error, #FF0000);--snk-field-config__label--gap:var(--space--extra-small, 3px);--snk-field-config__transition--visibility:var(--transition, 0.2s linear);--snk-field-config__transition--opacity:var(--transition, 0.15s linear);--snk-field-config__config-popover--z-index:var(--more-visible, 2);--snk-field-config__config-outer-arrow--background-color:var(--color--secondary-200, #D2D3DA);--snk-field-config__draggable--padding-right:var(--space--small, 6px);display:flex;flex-wrap:wrap;position:relative;width:var(--snk-field-config--width)}.field-config.sc-snk-field-config{width:100%;box-sizing:border-box;display:flex;align-items:center;padding-left:var(--snk-field-config--padding-left);font-weight:var(--snk-field-config--font-weight);height:var(--snk-field-config--height);border-radius:var(--snk-field-config--border-radius);font-family:var(--snk-field-config--font-family);font-size:var(--snk-field-config--font-size);border:var(--snk-field-config__input--border);border-color:var(--snk-field-config__input--border-color);background-color:var(--snk-field-config__input--background-color);color:var(--snk-field-config--color)}.field-config__config-popover.sc-snk-field-config{width:40px;margin-left:auto;z-index:var(--snk-field-config__config-popover--z-index)}.field-config__label.sc-snk-field-config{display:flex;flex-direction:row-reverse;line-height:calc(var(--snk-field-config--font-size) + 2px);gap:var(--snk-field-config__label--gap)}.field-config__label-text.sc-snk-field-config{overflow:hidden;-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;height:auto;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;display:-webkit-box;-o-text-overflow:ellipsis;text-overflow:ellipsis;word-break:break-word}.field-config__label-required.sc-snk-field-config{color:var(--snk-field-config__required--color)}.field-config__add.sc-snk-field-config{display:flex;margin-left:auto;visibility:hidden;opacity:0;transition:visibility var(--snk-field-config__transition--visibility), opacity var(--snk-field-config__transition--opacity)}.field-config__options.sc-snk-field-config{display:flex;margin-left:auto;visibility:hidden;opacity:0;transition:visibility var(--snk-field-config__transition--visibility), opacity var(--snk-field-config__transition--opacity)}.field-config__options--is-active.sc-snk-field-config{display:flex;visibility:visible;opacity:1}.field-config__remove-icon.sc-snk-field-config{margin-right:-15px}.field-config.sc-snk-field-config:hover .field-config__options.sc-snk-field-config{display:flex;visibility:visible;opacity:1}.field-config.sc-snk-field-config:hover .field-config__add.sc-snk-field-config{visibility:visible;opacity:1}.field-config__draggable.sc-snk-field-config{padding-right:var(--snk-field-config__draggable--padding-right)}.field-config__config-outer-arrow.sc-snk-field-config{clip-path:polygon(50% 0, 90% 100%, 10% 100%);border-radius:0.25em 0 0 0;width:30px;height:15px;padding-top:3px;border-bottom:1px solid #FFFFFF;background-color:var(--snk-field-config__config-outer-arrow--background-color)}.field-config__config-inner-arrow.sc-snk-field-config{background-color:#FFFFFF;clip-path:polygon(50% 0, 90% 100%, 10% 100%);border-radius:0.25em 0 0 0;width:30px;height:15px}.ez-box__container.sc-snk-field-config ez-collapsible-box.sc-snk-field-config{--snk-collapsible-box__header--padding-left:6px}ez-icon.sc-snk-field-config{--snk-icon--color:var(--snk-field-config--color)}ez-popover.sc-snk-field-config{--snk-popover__box--background-color:transparent;--snk-popover__box--box-shadow:none}.field-config__options.sc-snk-field-config ez-button.sc-snk-field-config{--snk-button--background-color:transparent;--snk-button--focus--border:none;--snk-button--focus--box-shadow:none}@media screen and (min-width: 1200px){.field-config__label.sc-snk-field-config{flex-direction:row}}";
@@ -14,6 +14,7 @@ const SnkFieldConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
14
14
  this.fieldConfig = undefined;
15
15
  this.modeInsertion = true;
16
16
  this.dataUnit = undefined;
17
+ this.messagesBuilder = undefined;
17
18
  }
18
19
  handleAction(evt, type) {
19
20
  evt.preventDefault();
@@ -31,16 +32,13 @@ const SnkFieldConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
31
32
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-form.msg.ts".
32
33
  */
33
34
  getMessage(key) {
34
- return this._application.messagesBuilder.getMessage(key, {});
35
+ return this.messagesBuilder.getMessage(key, {});
35
36
  }
36
37
  isRequired() {
37
38
  var _a, _b;
38
39
  const fieldMD = this.dataUnit && this.dataUnit.getField((_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.name);
39
40
  return (fieldMD === null || fieldMD === void 0 ? void 0 : fieldMD.required) === true || ((_b = this.fieldConfig) === null || _b === void 0 ? void 0 : _b.required) === true;
40
41
  }
41
- componentWillLoad() {
42
- this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
43
- }
44
42
  componentDidLoad() {
45
43
  ElementIDUtils.addIDInfo(this._element);
46
44
  }
@@ -58,7 +56,8 @@ const SnkFieldConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElemen
58
56
  "isConfigActive": [16],
59
57
  "fieldConfig": [16],
60
58
  "modeInsertion": [516, "mode-insertion"],
61
- "dataUnit": [16]
59
+ "dataUnit": [16],
60
+ "messagesBuilder": [1040]
62
61
  }]);
63
62
  function defineCustomElement() {
64
63
  if (typeof customElements === "undefined") {
@@ -138,6 +138,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
138
138
  this.dataUnit = undefined;
139
139
  this.configName = undefined;
140
140
  this.filterConfig = undefined;
141
+ this.messagesBuilder = undefined;
141
142
  this.allowDefault = undefined;
142
143
  this.scrollerLocked = false;
143
144
  }
@@ -202,7 +203,8 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
202
203
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-filter-bar.msg.ts"
203
204
  */
204
205
  getMessage(key, params) {
205
- return this._application.messagesBuilder.getMessage(key, params);
206
+ var _a;
207
+ return (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params);
206
208
  }
207
209
  getFilter(_dataUnit) {
208
210
  var _a;
@@ -495,6 +497,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
495
497
  "dataUnit": [1040],
496
498
  "configName": [1, "config-name"],
497
499
  "filterConfig": [1040],
500
+ "messagesBuilder": [1040],
498
501
  "allowDefault": [32],
499
502
  "scrollerLocked": [32]
500
503
  }, [[0, "filterChange", "filterChangeListener"]]]);
@@ -69,6 +69,7 @@ const SnkFilterParamConfig$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
69
69
  this._expressionItem = undefined;
70
70
  this._informedInstance = false;
71
71
  this._canSave = false;
72
+ this.messagesBuilder = undefined;
72
73
  }
73
74
  open(expressionItem) {
74
75
  this._opened = true;
@@ -91,7 +92,7 @@ const SnkFilterParamConfig$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
91
92
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-filter-param-config.msg.ts"
92
93
  */
93
94
  getMessage(key, params) {
94
- return this._application.messagesBuilder.getMessage(key, params);
95
+ return this.messagesBuilder.getMessage(key, params);
95
96
  }
96
97
  getConfigValue(configName, inputName, inputAlias = "") {
97
98
  var _a, _b, _c;
@@ -248,6 +249,7 @@ const SnkFilterParamConfig$1 = /*@__PURE__*/ proxyCustomElement(class extends HT
248
249
  get _element() { return this; }
249
250
  static get style() { return snkFilterParamConfigCss; }
250
251
  }, [2, "snk-filter-param-config", {
252
+ "messagesBuilder": [1040],
251
253
  "_opened": [32],
252
254
  "_configType": [32],
253
255
  "_expressionItem": [32],
@@ -46,6 +46,7 @@ const SnkFormConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
46
46
  this._tempGroups = [];
47
47
  this.dataUnit = undefined;
48
48
  this.configManager = undefined;
49
+ this.messagesBuilder = undefined;
49
50
  }
50
51
  observeConfigManager() {
51
52
  this.loadConfig(this._sortableTimer);
@@ -250,8 +251,8 @@ const SnkFormConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
250
251
  var _a;
251
252
  return ((_a = group.fields) === null || _a === void 0 ? void 0 : _a.length) ? group.fields.map((field) => {
252
253
  var _a, _b;
253
- return h("div", { key: field.name, class: this.getFieldConfigStyle(field), "data-draggable-element": "field", onMouseDown: (evt) => this.controlMoveField(evt) }, h("snk-field-config", { onEzClickIcon: (evt) => { this.handleFieldConfigChange(evt); }, modeInsertion: false, fieldConfig: field, dataUnit: this.dataUnit, isConfigActive: ((_a = this._fieldConfigSelected) === null || _a === void 0 ? void 0 : _a.name) === field.name, id: field.name }), ((_b = this._fieldConfigSelected) === null || _b === void 0 ? void 0 : _b.name) === field.name &&
254
- h("div", { class: "ez-flex form-config__config-options" }, h("snk-config-options", { idConfig: field.name, dataUnit: this.dataUnit, fieldConfig: this._fieldConfigSelected, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), onConfigOptionsChanged: (evt) => this.handleconfigOptionsChanged(evt.detail) })));
254
+ return h("div", { key: field.name, class: this.getFieldConfigStyle(field), "data-draggable-element": "field", onMouseDown: (evt) => this.controlMoveField(evt) }, h("snk-field-config", { messagesBuilder: this.messagesBuilder, onEzClickIcon: (evt) => { this.handleFieldConfigChange(evt); }, modeInsertion: false, fieldConfig: field, dataUnit: this.dataUnit, isConfigActive: ((_a = this._fieldConfigSelected) === null || _a === void 0 ? void 0 : _a.name) === field.name, id: field.name }), ((_b = this._fieldConfigSelected) === null || _b === void 0 ? void 0 : _b.name) === field.name &&
255
+ h("div", { class: "ez-flex form-config__config-options" }, h("snk-config-options", { idConfig: field.name, messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, fieldConfig: this._fieldConfigSelected, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), onConfigOptionsChanged: (evt) => this.handleconfigOptionsChanged(evt.detail) })));
255
256
  }) : h("div", { class: "form-config__add-group-container" }, h("div", { class: "form-config__add-group-content" }, h("div", { class: "form-config__add-group-label" }, h("label", { class: "ez-text ez-text--center ez-text--medium ez-text--primary ez-text--bold" }, this.getMessage("snkFormConfig.form.labelDropField")))));
256
257
  }
257
258
  handleconfigOptionsChanged(fieldEdited) {
@@ -958,7 +959,7 @@ const SnkFormConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
958
959
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-form.msg.ts"
959
960
  */
960
961
  getMessage(key, params) {
961
- return this._application.messagesBuilder.getMessage(key, params);
962
+ return this.messagesBuilder.getMessage(key, params);
962
963
  }
963
964
  componentDidRender() {
964
965
  this.controlSortableField();
@@ -983,7 +984,7 @@ const SnkFormConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
983
984
  }), onEzAction: (evt) => this.controlSelectFormConfig(evt), id: "selectConfig" })), h("div", { class: "ez-col ez-col--sd-5 ez-col--tb-3 ez-align--middle ez-align--right" }, this._formConfigChanged === true && this._optionFormConfigChanged === false &&
984
985
  h("div", { class: "ez-row ez-align--middle ez-align--right" }, h("ez-button", { label: "Cancelar", class: "ez-padding-left--medium", size: "small", onClick: () => this.cancelChangeConfig() }), h("ez-button", { label: "Salvar", class: "ez-button--primary ez-padding-left--medium", size: "small", onClick: () => this.saveConfig() }, h("ez-icon", { class: "ez-margin-right--small", slot: "leftIcon", iconName: "save" }))), this._optionFormConfigChanged === true &&
985
986
  h("div", { class: "ez-row ez-align--middle ez-align--right" }, h("ez-button", { label: "Cancelar", class: "ez-padding-left--medium", size: "small", onClick: () => this.cancelChangeOptionConfig() }), h("ez-button", { label: this.getMessage("snkFormConfig.applyConfig"), class: "ez-button--primary ez-padding-left--medium", size: "small", onClick: () => this.applyOptionConfig() })))), h("div", { class: "ez-row ez-padding--medium", ref: ref => this._sortableContainer = ref }, h("div", { class: "form-config__tab-container ez-col ez-col--sd-9 ez-col--tb-9 ez-padding-right--medium" }, ((_b = this._layoutFormConfig) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
986
- h("section", { class: "ez-box__container", ref: ref => this._formContainer = ref }, h("snk-tab-config", { ref: ref => this._tabConfig = ref, selectedIndex: this._tabSelected, onEzTabChange: (ev) => this.changeTabSelected(ev.detail), onEzOrderChange: (ev) => this.changeTabOrder(ev.detail), onEditionTitleTab: (ev) => this.changeTabLabel(ev), onDeleteTab: (ev) => this.handleDeleteTab(ev), onHideTab: (ev) => this.changeHideTab(ev), onCanStartDrag: () => this.handleCanStartDragTab() }, this._layoutFormConfig.map((tab) => h("snk-tab", { tabKey: tab.tab, label: tab.tab, visible: tab.visible }))), this._layoutFormConfig.map((tab, indexTab) => h("div", { id: "tab" + indexTab, "data-draggable-parent": "group", class: this._tabSelected === indexTab
987
+ h("section", { class: "ez-box__container", ref: ref => this._formContainer = ref }, h("snk-tab-config", { ref: ref => this._tabConfig = ref, selectedIndex: this._tabSelected, messagesBuilder: this.messagesBuilder, onEzTabChange: (ev) => this.changeTabSelected(ev.detail), onEzOrderChange: (ev) => this.changeTabOrder(ev.detail), onEditionTitleTab: (ev) => this.changeTabLabel(ev), onDeleteTab: (ev) => this.handleDeleteTab(ev), onHideTab: (ev) => this.changeHideTab(ev), onCanStartDrag: () => this.handleCanStartDragTab() }, this._layoutFormConfig.map((tab) => h("snk-tab", { tabKey: tab.tab, label: tab.tab, visible: tab.visible }))), this._layoutFormConfig.map((tab, indexTab) => h("div", { id: "tab" + indexTab, "data-draggable-parent": "group", class: this._tabSelected === indexTab
987
988
  ? "form-config__tab-content ez-flex ez-flex--column ez-size-width--full ez-padding--medium"
988
989
  : "form-config__hide-content" }, tab.groups.map((group, indexGroup) => {
989
990
  if (group.group) {
@@ -996,7 +997,7 @@ const SnkFormConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
996
997
  return h("div", { class: "ez-flex ez-flex--column ez-size-width--full" }, h("label", { class: "ez-text ez-text--secondary ez-margin-vertical--small" }, this.getMessage("snkFormConfig.form.subTitleInfo")), h("div", { id: CONTAINER_ID.withoutGroup, class: "ez-row", "data-draggable-parent": "field" }, this.getFieldsByGroup(group)), h("hr", { class: "ez-divider-horizontal ez-margin-vertical--medium" }));
997
998
  }
998
999
  }), this.renderTempGroupByTab(tab.tab))), h("div", { class: "form-config__btn-add-group ez-row" }, h("div", { class: "form-config__btn-add-group-container ez-col ez-col--sd-12 ez-col--tb-12 ez-align--center" }, h("ez-button", { label: this.getMessage("snkFormConfig.form.labelNewGroup"), class: "ez-padding-horizontal--small ez-button--primary", size: "small", onClick: () => this.addNewGroup() }, h("ez-icon", { class: "ez-margin-right--small", slot: "leftIcon", iconName: "plus" })))))), h("div", { class: "form-config__fields-available ez-col ez-col--sd-3 ez-col--tb-3" }, h("section", { class: "ez-box__container ez-col ez-col--pn-12" }, h("h1", { class: "ez-title ez-title--large ez-title--primary ez-padding-bottom--medium" }, this.getMessage("snkFormConfig.availableFields.title")), h("ez-filter-input", { id: "searchFields", ref: ref => this._filterFieldsAvailable = ref, label: this.getMessage("snkFormConfig.availableFields.labelSearchField"), onEzChange: evt => this.onFilterChange(evt.detail) }), h("span", { class: "ez-box__label-counter ez-text ez-text--medium ez-text--primary ez-margin-bottom--medium" }, this.handleLabelCounter((_c = this._fieldsAvailable) === null || _c === void 0 ? void 0 : _c.length)), ((_d = this._layoutFormConfig) === null || _d === void 0 ? void 0 : _d.length) > 0 &&
999
- h("div", { id: CONTAINER_ID.fieldsAvailable, class: "ez-row", "data-draggable-parent": "field" }, this.orderFieldsAvailable(this._fieldsAvailable).map((field) => h("div", { key: field.name, class: this._fieldsAvailableStyle, "data-draggable-element": "field", onMouseDown: (evt) => this.controlMoveField(evt) }, h("snk-field-config", { onEzClickIcon: (evt) => { this.handleFieldConfigChange(evt); }, dataUnit: this.dataUnit, fieldConfig: field, id: field.name })))))))));
1000
+ h("div", { id: CONTAINER_ID.fieldsAvailable, class: "ez-row", "data-draggable-parent": "field" }, this.orderFieldsAvailable(this._fieldsAvailable).map((field) => h("div", { key: field.name, class: this._fieldsAvailableStyle, "data-draggable-element": "field", onMouseDown: (evt) => this.controlMoveField(evt) }, h("snk-field-config", { messagesBuilder: this.messagesBuilder, onEzClickIcon: (evt) => { this.handleFieldConfigChange(evt); }, dataUnit: this.dataUnit, fieldConfig: field, id: field.name })))))))));
1000
1001
  }
1001
1002
  get _element() { return this; }
1002
1003
  static get watchers() { return {
@@ -1006,6 +1007,7 @@ const SnkFormConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
1006
1007
  }, [2, "snk-form-config", {
1007
1008
  "dataUnit": [16],
1008
1009
  "configManager": [16],
1010
+ "messagesBuilder": [1040],
1009
1011
  "_formConfigOptions": [32],
1010
1012
  "_fieldConfigSelected": [32],
1011
1013
  "_layoutFormConfig": [32],
@@ -20,6 +20,7 @@ const SnkForm$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
20
20
  this._configManager = undefined;
21
21
  this.configName = undefined;
22
22
  this.recordsValidator = undefined;
23
+ this.messagesBuilder = undefined;
23
24
  }
24
25
  /**
25
26
  * Exibe a janela de configurações do formulário.
@@ -70,13 +71,14 @@ const SnkForm$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
70
71
  return undefined;
71
72
  }
72
73
  return (h("section", null, h("div", { class: "ez-row" }, h("div", { class: "ez-col ez-col--sd-12" }, h("ez-form", { key: "ezForm" + this._snkDataUnit.entityName, "data-element-id": "embedded", dataUnit: this._dataUnit, config: this._configManager.getConfig(this._dataState.insertionMode, this._dataUnit), recordsValidator: this.recordsValidator, class: this._showFormConfig ? 'snk-form__form--hidden' : '' }), this._showFormConfig &&
73
- h("snk-form-config", { dataUnit: this._dataUnit, configManager: this._configManager, onConfigClose: () => this.closeConfig() })))));
74
+ h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this._dataUnit, configManager: this._configManager, onConfigClose: () => this.closeConfig() })))));
74
75
  }
75
76
  get _element() { return this; }
76
77
  static get style() { return snkFormCss; }
77
78
  }, [2, "snk-form", {
78
79
  "configName": [1, "config-name"],
79
80
  "recordsValidator": [16],
81
+ "messagesBuilder": [1040],
80
82
  "_dataUnit": [32],
81
83
  "_dataState": [32],
82
84
  "_showFormConfig": [32],
@@ -46,6 +46,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
46
46
  this.statusResolver = undefined;
47
47
  this.multipleSelection = undefined;
48
48
  this.presentationMode = PresentationMode.PRIMARY;
49
+ this.messagesBuilder = undefined;
49
50
  }
50
51
  /**
51
52
  * Exibe a janela de configurações da grade.
@@ -249,10 +250,11 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
249
250
  return disabledButtons;
250
251
  }
251
252
  componentWillRender() {
253
+ var _a;
252
254
  const invisibleButtons = this._dataUnit && this._dataUnit.records.length > 0 ? [] : ["DATA_EXPORTER"];
253
- const selectedRecord = this._dataState && this._dataState.selectedRecord;
255
+ const hasSelectedRecord = this._dataState && !!((_a = this._dataState.selectionInfo) === null || _a === void 0 ? void 0 : _a.length);
254
256
  let headerTaskbarId;
255
- if (selectedRecord) {
257
+ if (hasSelectedRecord) {
256
258
  headerTaskbarId = this.isDetail ? "snkGridHeaderTaskbar.detail.selected" : "snkGridHeaderTaskbar.selected";
257
259
  }
258
260
  else {
@@ -277,8 +279,8 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
277
279
  if (!this._dataUnit) {
278
280
  return undefined;
279
281
  }
280
- return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName }), ((_b = (_a = this._snkFilterBar) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
281
- h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton() })), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig() }))));
282
+ return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder }), ((_b = (_a = this._snkFilterBar) === null || _a === void 0 ? void 0 : _a.filterConfig) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
283
+ h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" }), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton() })), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: () => this.gridDoubleClick.emit(), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection }, h("snk-taskbar", { dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.actionsList })), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), application: this._application, selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig() }))));
282
284
  }
283
285
  get _element() { return this; }
284
286
  static get style() { return snkGridCss; }
@@ -290,6 +292,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
290
292
  "statusResolver": [16],
291
293
  "multipleSelection": [4, "multiple-selection"],
292
294
  "presentationMode": [1, "presentation-mode"],
295
+ "messagesBuilder": [1040],
293
296
  "_dataUnit": [32],
294
297
  "_dataState": [32],
295
298
  "_gridConfig": [32],
@@ -145,6 +145,7 @@ const SnkSimpleCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
145
145
  this.dataUnit = undefined;
146
146
  this.mode = SIMPLE_CRUD_MODE.SERVER;
147
147
  this.taskbarManager = undefined;
148
+ this.messagesBuilder = undefined;
148
149
  }
149
150
  resolveInMemoryBtns(taskbarButtons) {
150
151
  const newTaskBarConfig = [...taskbarButtons];
@@ -260,7 +261,7 @@ const SnkSimpleCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
260
261
  }
261
262
  render() {
262
263
  var _a;
263
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail) }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "simple-crud__taskbar ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), "no-header": true }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this._config }))))));
264
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, onDataStateChange: evt => this.onDataStateChange(evt), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-flex ez-box ez-box--shadow" }, h("snk-taskbar", { class: "simple-crud__taskbar ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }), h("ez-view-stack", { class: "ez-flex ez-flex--column", ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { dataUnit: this.dataUnit, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), "no-header": true }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this._config }))))));
264
265
  }
265
266
  get _element() { return this; }
266
267
  static get watchers() { return {
@@ -273,6 +274,7 @@ const SnkSimpleCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
273
274
  "dataUnit": [16],
274
275
  "mode": [2],
275
276
  "taskbarManager": [16],
277
+ "messagesBuilder": [1040],
276
278
  "_currentViewMode": [32],
277
279
  "_config": [32],
278
280
  "goToView": [64],
@@ -6905,6 +6905,7 @@ const SnkTabConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$
6905
6905
  this.selectedIndex = undefined;
6906
6906
  this.selectedTab = undefined;
6907
6907
  this.tabs = undefined;
6908
+ this.messagesBuilder = undefined;
6908
6909
  }
6909
6910
  /**
6910
6911
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
@@ -6913,7 +6914,7 @@ const SnkTabConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$
6913
6914
  * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-form.msg.ts"
6914
6915
  */
6915
6916
  getMessage(key, params) {
6916
- return this._application.messagesBuilder.getMessage(key, params);
6917
+ return this.messagesBuilder.getMessage(key, params);
6917
6918
  }
6918
6919
  controlSortableTab() {
6919
6920
  if (this._sortableTab) {
@@ -7214,6 +7215,7 @@ const SnkTabConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement$
7214
7215
  "selectedIndex": [1538, "selected-index"],
7215
7216
  "selectedTab": [1537, "selected-tab"],
7216
7217
  "tabs": [1],
7218
+ "messagesBuilder": [1040],
7217
7219
  "_processedTabs": [32],
7218
7220
  "_activeEditText": [32],
7219
7221
  "_activeEditTextIndex": [32],