@sankhyalabs/sankhyablocks 10.1.0-dev.24 → 10.1.0-dev.26

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 (127) hide show
  1. package/dist/cjs/{ConfigStorage-f61eedd2.js → ConfigStorage-d9d24844.js} +2 -2
  2. package/dist/cjs/{DataFetcher-0c830777.js → DataFetcher-3a8ea521.js} +1 -1
  3. package/dist/cjs/{ISave-e1e8ec96.js → ISave-a66bb65e.js} +1 -1
  4. package/dist/cjs/{SnkFormConfigManager-421f3581.js → SnkFormConfigManager-c88cf1e9.js} +2 -2
  5. package/dist/cjs/{SnkMessageBuilder-32950342.js → SnkMessageBuilder-d9558dba.js} +32 -8
  6. package/dist/cjs/{SnkMultiSelectionListDataSource-d30a96ef.js → SnkMultiSelectionListDataSource-a891430e.js} +4 -4
  7. package/dist/cjs/{auth-fetcher-761d54c4.js → auth-fetcher-faa61f64.js} +1 -1
  8. package/dist/cjs/{dataunit-fetcher-86e286bb.js → dataunit-fetcher-4320f7ec.js} +2 -2
  9. package/dist/cjs/{form-config-fetcher-227b2db2.js → form-config-fetcher-72cf0e3d.js} +1 -1
  10. package/dist/cjs/index-1894343a.js +6 -2
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +5 -5
  13. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  14. package/dist/cjs/{snk-actions-button_9.cjs.entry.js → snk-actions-button_8.cjs.entry.js} +7 -57
  15. package/dist/cjs/snk-application.cjs.entry.js +7 -7
  16. package/dist/cjs/snk-attach.cjs.entry.js +6 -6
  17. package/dist/cjs/snk-crud.cjs.entry.js +7 -7
  18. package/dist/cjs/snk-data-exporter.cjs.entry.js +6 -6
  19. package/dist/cjs/{snk-data-unit-c06263da.js → snk-data-unit-b54fdf9a.js} +2 -2
  20. package/dist/cjs/snk-data-unit.cjs.entry.js +4 -4
  21. package/dist/cjs/snk-detail-view.cjs.entry.js +12 -9
  22. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +4 -4
  23. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +4 -4
  24. package/dist/cjs/snk-form-view.cjs.entry.js +17 -6
  25. package/dist/cjs/snk-form_2.cjs.entry.js +5 -5
  26. package/dist/cjs/snk-grid.cjs.entry.js +10 -8
  27. package/dist/cjs/{snk-guides-viewer-92dadfa6.js → snk-guides-viewer-c252149f.js} +8 -6
  28. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -8
  29. package/dist/cjs/snk-image-input.cjs.entry.js +1 -1
  30. package/dist/cjs/snk-layout-form-config.cjs.entry.js +72 -0
  31. package/dist/cjs/snk-personalized-filter.cjs.entry.js +4 -4
  32. package/dist/cjs/snk-pesquisa.cjs.entry.js +5 -5
  33. package/dist/cjs/snk-simple-crud.cjs.entry.js +8 -8
  34. package/dist/collection/collection-manifest.json +5 -0
  35. package/dist/collection/components/snk-crud/snk-crud.js +2 -2
  36. package/dist/collection/components/snk-crud/subcomponents/GuideBuilder.js +1 -1
  37. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +3 -0
  38. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +19 -7
  39. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +3 -1
  40. package/dist/collection/components/snk-grid/snk-grid.js +3 -1
  41. package/dist/collection/components/snk-layout-form-config/snk-layout-form-config.js +1 -1
  42. package/dist/collection/components/snk-layout-form-config/snk-view-representation/snk-view-representation.js +1 -1
  43. package/dist/collection/lib/message/resources/en-us/snk-crud.msg.js +1 -1
  44. package/dist/collection/lib/message/resources/en-us/snk-layout-form-config.msg.js +10 -2
  45. package/dist/collection/lib/message/resources/es-es/snk-crud.msg.js +1 -1
  46. package/dist/collection/lib/message/resources/es-es/snk-layout-form-config.msg.js +8 -0
  47. package/dist/collection/lib/message/resources/pt-br/snk-configurator.msg.js +1 -1
  48. package/dist/collection/lib/message/resources/pt-br/snk-crud.msg.js +1 -1
  49. package/dist/collection/lib/message/resources/pt-br/snk-layout-form-config.msg.js +10 -2
  50. package/dist/components/SnkMessageBuilder.js +32 -8
  51. package/dist/components/snk-crud.js +1 -1
  52. package/dist/components/snk-detail-view2.js +7 -2
  53. package/dist/components/snk-form-view2.js +18 -6
  54. package/dist/components/snk-grid2.js +3 -1
  55. package/dist/components/snk-layout-form-config2.js +1 -1
  56. package/dist/components/snk-view-representation2.js +1 -1
  57. package/dist/esm/{ConfigStorage-175813dc.js → ConfigStorage-d15d2014.js} +2 -2
  58. package/dist/esm/{DataFetcher-49594174.js → DataFetcher-1dd7e8c0.js} +1 -1
  59. package/dist/esm/{ISave-4bdffce4.js → ISave-498c4831.js} +1 -1
  60. package/dist/esm/{SnkFormConfigManager-0bda2ef5.js → SnkFormConfigManager-86befa68.js} +2 -2
  61. package/dist/esm/{SnkMessageBuilder-1c0fada0.js → SnkMessageBuilder-c0bc4424.js} +32 -8
  62. package/dist/esm/{SnkMultiSelectionListDataSource-e13b72f7.js → SnkMultiSelectionListDataSource-14633bf6.js} +4 -4
  63. package/dist/esm/{auth-fetcher-62c5abf1.js → auth-fetcher-69cbda8d.js} +1 -1
  64. package/dist/esm/{dataunit-fetcher-b7a9ef67.js → dataunit-fetcher-3d5c4ae4.js} +2 -2
  65. package/dist/esm/{form-config-fetcher-5e29a152.js → form-config-fetcher-fcc7b62f.js} +1 -1
  66. package/dist/esm/index-04f73a26.js +6 -2
  67. package/dist/esm/loader.js +1 -1
  68. package/dist/esm/pesquisa-grid_2.entry.js +5 -5
  69. package/dist/esm/sankhyablocks.js +1 -1
  70. package/dist/esm/{snk-actions-button_9.entry.js → snk-actions-button_8.entry.js} +8 -57
  71. package/dist/esm/snk-application.entry.js +7 -7
  72. package/dist/esm/snk-attach.entry.js +6 -6
  73. package/dist/esm/snk-crud.entry.js +7 -7
  74. package/dist/esm/snk-data-exporter.entry.js +6 -6
  75. package/dist/esm/{snk-data-unit-865a1e27.js → snk-data-unit-363c3551.js} +2 -2
  76. package/dist/esm/snk-data-unit.entry.js +4 -4
  77. package/dist/esm/snk-detail-view.entry.js +12 -9
  78. package/dist/esm/snk-filter-bar_4.entry.js +4 -4
  79. package/dist/esm/snk-filter-modal-item.entry.js +4 -4
  80. package/dist/esm/snk-form-view.entry.js +17 -6
  81. package/dist/esm/snk-form_2.entry.js +5 -5
  82. package/dist/esm/snk-grid.entry.js +10 -8
  83. package/dist/esm/{snk-guides-viewer-2e2f48af.js → snk-guides-viewer-988e7e1a.js} +8 -6
  84. package/dist/esm/snk-guides-viewer.entry.js +8 -8
  85. package/dist/esm/snk-image-input.entry.js +1 -1
  86. package/dist/esm/snk-layout-form-config.entry.js +68 -0
  87. package/dist/esm/snk-personalized-filter.entry.js +4 -4
  88. package/dist/esm/snk-pesquisa.entry.js +5 -5
  89. package/dist/esm/snk-simple-crud.entry.js +8 -8
  90. package/dist/sankhyablocks/{p-36a82166.entry.js → p-10cad767.entry.js} +1 -1
  91. package/dist/sankhyablocks/{p-ddb20d9e.entry.js → p-18cc9111.entry.js} +1 -1
  92. package/dist/sankhyablocks/{p-71ea8d08.entry.js → p-1df34264.entry.js} +1 -1
  93. package/dist/sankhyablocks/p-27d6590e.js +1 -0
  94. package/dist/sankhyablocks/p-2a356340.entry.js +1 -0
  95. package/dist/sankhyablocks/{p-f63e1093.js → p-2ccbbeec.js} +1 -1
  96. package/dist/sankhyablocks/{p-f21109d6.entry.js → p-30641d55.entry.js} +1 -1
  97. package/dist/sankhyablocks/{p-bf37b0e2.js → p-32ad76cc.js} +1 -1
  98. package/dist/sankhyablocks/{p-f455a553.entry.js → p-3b07c117.entry.js} +1 -1
  99. package/dist/sankhyablocks/{p-8bf2a358.entry.js → p-43d84207.entry.js} +1 -1
  100. package/dist/sankhyablocks/{p-0fbd3f2f.entry.js → p-48c580b9.entry.js} +1 -1
  101. package/dist/sankhyablocks/p-4d2f5708.entry.js +1 -0
  102. package/dist/sankhyablocks/{p-3448ebdc.js → p-685bc841.js} +2 -2
  103. package/dist/sankhyablocks/{p-8e5f4851.js → p-7c4f4851.js} +1 -1
  104. package/dist/sankhyablocks/{p-1d0e4e8f.js → p-7e9f8fa4.js} +1 -1
  105. package/dist/sankhyablocks/{p-93f4104a.js → p-9114e869.js} +1 -1
  106. package/dist/sankhyablocks/{p-abcfff93.entry.js → p-a65559fe.entry.js} +1 -1
  107. package/dist/sankhyablocks/{p-34d56802.js → p-a9839628.js} +1 -1
  108. package/dist/sankhyablocks/p-adc59e2c.entry.js +1 -0
  109. package/dist/sankhyablocks/p-b16322aa.js +1 -0
  110. package/dist/sankhyablocks/{p-f61fef9a.entry.js → p-bb81a356.entry.js} +1 -1
  111. package/dist/sankhyablocks/{p-e9bbd66b.js → p-bdf0077f.js} +1 -1
  112. package/dist/sankhyablocks/p-c6a97fda.entry.js +1 -0
  113. package/dist/sankhyablocks/{p-c5d6717d.entry.js → p-c860552e.entry.js} +1 -1
  114. package/dist/sankhyablocks/{p-e19a65a2.js → p-e0a6818c.js} +1 -1
  115. package/dist/sankhyablocks/{p-e892ae6c.entry.js → p-e0e3914e.entry.js} +1 -1
  116. package/dist/sankhyablocks/{p-3f762af3.entry.js → p-e973a5d4.entry.js} +1 -1
  117. package/dist/sankhyablocks/{p-fc0736ad.entry.js → p-ebce5394.entry.js} +1 -1
  118. package/dist/sankhyablocks/{p-d2581c6b.entry.js → p-fc5e95f4.entry.js} +1 -1
  119. package/dist/sankhyablocks/{p-e9e9ff1c.entry.js → p-fce86770.entry.js} +1 -1
  120. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  121. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +3 -0
  122. package/package.json +1 -1
  123. package/dist/sankhyablocks/p-164721f4.entry.js +0 -1
  124. package/dist/sankhyablocks/p-4005bd63.entry.js +0 -1
  125. package/dist/sankhyablocks/p-b10e79bb.js +0 -1
  126. package/dist/sankhyablocks/p-bafeda2d.entry.js +0 -1
  127. package/dist/sankhyablocks/p-d4e3e549.js +0 -1
@@ -165,7 +165,7 @@ const snkConfiguratorMessages$2 = {
165
165
  labelNumberingConfig: "Configuração de numeração",
166
166
  buttons: {
167
167
  cancel: "Cancelar",
168
- save: "Guardar"
168
+ save: "Salvar"
169
169
  }
170
170
  };
171
171
 
@@ -175,8 +175,8 @@ const snkCrudMessages$2 = {
175
175
  insert: "Cadastrar registro",
176
176
  update: "Alterar registro",
177
177
  clean: "{{ENTITY_NAME}}",
178
- newRecord: "Novo Registro"
179
178
  },
179
+ newRecord: "Novo Registro",
180
180
  findColumn: "Buscar campos (Ctrl+F)",
181
181
  goBackTitle: "Voltar",
182
182
  guide: {
@@ -431,12 +431,20 @@ const snkFilterParamConfigMessages$2 = {
431
431
 
432
432
  const snkLayoutFormConfigMessages$2 = {
433
433
  cascadeLayout: {
434
- label: "Layout em cascata",
434
+ label: "Layout compacto em cascata",
435
435
  description: "Todos os campos serão organizados em uma coluna única."
436
436
  },
437
+ classicCascadeLayout: {
438
+ label: "Layout clássico em cascata",
439
+ description: "Todos os campos serão organizados em uma coluna única com estilo clássico."
440
+ },
437
441
  sideBySideLayout: {
438
- label: "Layout lado a lado",
442
+ label: "Layout compacto lado a lado",
439
443
  description: "Todos os campos serão dispostos lado a lado, ajustando-se automaticamente à largura da tela."
444
+ },
445
+ classicSideBySideLayout: {
446
+ label: "Layout clássico lado a lado",
447
+ description: "Todos os campos serão dispostos lado a lado com estilo clássico, ajustando-se automaticamente à largura da tela."
440
448
  }
441
449
  };
442
450
 
@@ -1052,8 +1060,8 @@ const snkCrudMessages$1 = {
1052
1060
  insert: "Register record",
1053
1061
  update: "Update record",
1054
1062
  clean: "{{ENTITY_NAME}}",
1055
- newRecord: "New Record"
1056
1063
  },
1064
+ newRecord: "New Record",
1057
1065
  findColumn: "Search fields (Ctrl+F)",
1058
1066
  goBackTitle: "Back",
1059
1067
  guide: {
@@ -1308,12 +1316,20 @@ const snkFilterParamConfigMessages$1 = {
1308
1316
 
1309
1317
  const snkLayoutFormConfigMessages$1 = {
1310
1318
  cascadeLayout: {
1311
- label: "Cascade layout",
1319
+ label: "Cascade compact layout",
1312
1320
  description: "All fields will be organized in a single column."
1313
1321
  },
1322
+ classicCascadeLayout: {
1323
+ label: "Classic cascade layout",
1324
+ description: "All fields will be organized in a single column with classic style."
1325
+ },
1314
1326
  sideBySideLayout: {
1315
- label: "Side by side layout",
1327
+ label: "Side by side compact layout",
1316
1328
  description: "All fields will be arranged side by side, automatically adjusting to the screen width."
1329
+ },
1330
+ classicSideBySideLayout: {
1331
+ label: "Classic side by side layout",
1332
+ description: "All fields will be arranged side by side with classic style, automatically adjusting to the screen width."
1317
1333
  }
1318
1334
  };
1319
1335
 
@@ -1930,8 +1946,8 @@ const snkCrudMessages = {
1930
1946
  insert: "Registrar nuevo",
1931
1947
  update: "Modificar registro",
1932
1948
  clean: "{{ENTITY_NAME}}",
1933
- newRecord: "Nuevo Registro"
1934
1949
  },
1950
+ newRecord: "Nuevo Registro",
1935
1951
  findColumn: "Buscar campos (Ctrl+F)",
1936
1952
  goBackTitle: "Volver",
1937
1953
  guide: {
@@ -2189,9 +2205,17 @@ const snkLayoutFormConfigMessages = {
2189
2205
  label: "Diseño en cascada",
2190
2206
  description: "Todos los campos se organizarán en una única columna."
2191
2207
  },
2208
+ classicCascadeLayout: {
2209
+ label: "Diseño clásico en cascada",
2210
+ description: "Todos los campos se organizarán en una única columna con estilo clásico."
2211
+ },
2192
2212
  sideBySideLayout: {
2193
2213
  label: "Diseño lado a lado",
2194
2214
  description: "Todos los campos se dispondrán lado a lado, ajustándose automáticamente al ancho de la pantalla."
2215
+ },
2216
+ classicSideBySideLayout: {
2217
+ label: "Diseño clásico lado a lado",
2218
+ description: "Todos los campos se dispondrán lado a lado con estilo clásico, ajustándose automáticamente al ancho de la pantalla."
2195
2219
  }
2196
2220
  };
2197
2221
 
@@ -124,7 +124,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
124
124
  this.configName = undefined;
125
125
  this.filterBarTitle = undefined;
126
126
  this.selectionToastConfig = undefined;
127
- this.showActionButtons = false;
127
+ this.showActionButtons = true;
128
128
  this.actionsList = undefined;
129
129
  this.taskbarManager = undefined;
130
130
  this.recordsValidator = undefined;
@@ -433,6 +433,8 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
433
433
  }
434
434
  resetGuideBadge(selectedGuide) {
435
435
  var _a;
436
+ if (!selectedGuide)
437
+ return;
436
438
  this._guides = [...(_a = this._guides) === null || _a === void 0 ? void 0 : _a.map(guide => {
437
439
  if (this.canClearGuideBadge(guide, selectedGuide.id)) {
438
440
  return Object.assign(Object.assign({}, guide), { badge: null });
@@ -661,7 +663,7 @@ const SnkGuidesViewer = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
661
663
  propsCustomEditor: this._customEditors,
662
664
  fieldsProps: this._fieldsProps,
663
665
  entityPath: this.entityPath
664
- }), 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), resourceID: this.resourceID })));
666
+ }), 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), resourceID: this.resourceID, layoutFormConfig: false, disableNumberingConfig: true })));
665
667
  }
666
668
  render() {
667
669
  if (!this.dataUnit || !this._configManager.isLoaded) {
@@ -999,7 +1001,7 @@ class GuideBuilder {
999
1001
  };
1000
1002
  });
1001
1003
  const newGuideItem = children.shift();
1002
- newGuideItem.label = isNewRecord ? this.getMessage("snkCrud.title.newRecord") : currentRecord.__record__label__;
1004
+ newGuideItem.label = isNewRecord ? this.getMessage("snkCrud.newRecord") : currentRecord.__record__label__;
1003
1005
  newGuideItem.children = children;
1004
1006
  item.children = [newGuideItem];
1005
1007
  return item;
@@ -1249,6 +1251,9 @@ const SnkDetailView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
1249
1251
  if (action.type === Action.FIELD_INVALIDATED) {
1250
1252
  this.addErrorBadgeToBranchGuide();
1251
1253
  }
1254
+ else if (action.type === Action.DATA_LOADED) {
1255
+ this.dataUnit.selectFirst();
1256
+ }
1252
1257
  }
1253
1258
  addErrorBadgeToBranchGuide() {
1254
1259
  this.branchGuide = Object.assign(Object.assign({}, this.branchGuide), { badge: 'error' });
@@ -44,6 +44,7 @@ const SnkFormView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
44
44
  ]
45
45
  ]);
46
46
  this._singleColumn = false;
47
+ this._currentFormLayout = undefined;
47
48
  this.levelPath = undefined;
48
49
  this.fieldSearch = undefined;
49
50
  this.label = undefined;
@@ -176,27 +177,37 @@ const SnkFormView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
176
177
  this.dataUnit.unsubscribe(this.dataUnitObserver);
177
178
  }
178
179
  }
180
+ async componentWillLoad() {
181
+ await this.initLayoutFormConfig();
182
+ }
183
+ async componentWillLoad() {
184
+ await this.initLayoutFormConfig();
185
+ }
179
186
  componentDidLoad() {
180
187
  this.observePropsCustomEditor(this.customEditors);
181
188
  this.observeFieldsProps(this.fieldsProps);
182
- this.initLayoutFormConfig();
183
189
  }
184
190
  async initLayoutFormConfig() {
185
- const _application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
186
- const layoutFormConfig = await (_application === null || _application === void 0 ? void 0 : _application.getLayoutFormConfig());
191
+ var _a;
192
+ if (!this._application) {
193
+ this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
194
+ }
195
+ const layoutFormConfig = await ((_a = this._application) === null || _a === void 0 ? void 0 : _a.getLayoutFormConfig());
187
196
  if (layoutFormConfig) {
188
197
  this.setSingleColumn(layoutFormConfig);
189
198
  this.registerNotifyListeners(layoutFormConfig);
190
199
  }
191
200
  }
192
201
  setSingleColumn(layoutFormConfig) {
193
- this._singleColumn = (layoutFormConfig === null || layoutFormConfig === void 0 ? void 0 : layoutFormConfig.config) === FormLayout.CASCADE;
202
+ this._singleColumn = (layoutFormConfig === null || layoutFormConfig === void 0 ? void 0 : layoutFormConfig.config) === FormLayout.CASCADE || (layoutFormConfig === null || layoutFormConfig === void 0 ? void 0 : layoutFormConfig.config) === FormLayout.CLASSIC_CASCADE;
203
+ this._currentFormLayout = layoutFormConfig === null || layoutFormConfig === void 0 ? void 0 : layoutFormConfig.config;
194
204
  }
195
205
  registerNotifyListeners(layoutFormConfig) {
196
206
  if (!layoutFormConfig)
197
207
  return;
198
208
  layoutFormConfig.onConfigChange((config) => {
199
- this._singleColumn = (config === FormLayout.CASCADE);
209
+ this._singleColumn = (config === FormLayout.CASCADE || config === FormLayout.CLASSIC_CASCADE);
210
+ this._currentFormLayout = config;
200
211
  });
201
212
  }
202
213
  componentDidRender() {
@@ -256,7 +267,7 @@ const SnkFormView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
256
267
  ?
257
268
  h("snk-form-summary", { summary: this.getCardSummary() })
258
269
  :
259
- h("ez-form-view", { ref: ref => this._formView = ref, fields: this.fields, onEzContentReady: evt => this.bindFields(evt.detail), onFormItemsReady: (event) => this.handleFormItemsReady(event), singleColumn: this._singleColumn, customUiBuilders: this.customUiBuilders }), this.fieldSearch && h("ez-popover", { ref: elem => (this._ezPopoverFieldColumn = elem), overlayType: "none" }, this.fieldSearch)));
270
+ h("ez-form-view", { ref: ref => this._formView = ref, fields: this.fields, onEzContentReady: evt => this.bindFields(evt.detail), onFormItemsReady: (event) => this.handleFormItemsReady(event), singleColumn: this._singleColumn, customUiBuilders: this.customUiBuilders, formLayout: this._currentFormLayout }), this.fieldSearch && h("ez-popover", { ref: elem => (this._ezPopoverFieldColumn = elem), overlayType: "none" }, this.fieldSearch)));
260
271
  }
261
272
  static get watchers() { return {
262
273
  "customEditors": ["observePropsCustomEditor"],
@@ -283,6 +294,7 @@ const SnkFormView = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
283
294
  "fieldsProps": [16],
284
295
  "entityPath": [1, "entity-path"],
285
296
  "_singleColumn": [32],
297
+ "_currentFormLayout": [32],
286
298
  "showUp": [64],
287
299
  "addCustomEditor": [64],
288
300
  "setFieldProp": [64],
@@ -563,7 +563,7 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
563
563
  return disabledButtons;
564
564
  }
565
565
  getInvisibleButtons() {
566
- var _a, _b;
566
+ var _a, _b, _c;
567
567
  let invisibleButtons = [];
568
568
  if (!this._dataUnit || this._dataUnit.records.length === 0)
569
569
  invisibleButtons.push(TaskbarElement.DATA_EXPORTER);
@@ -571,6 +571,8 @@ const SnkGrid = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
571
571
  invisibleButtons.push(TaskbarElement.ACTIONS_BUTTON);
572
572
  if (((_b = this._dataState) === null || _b === void 0 ? void 0 : _b.selectionInfo.length) === 1)
573
573
  invisibleButtons.push(TaskbarElement.UPDATE_MULTIPLE);
574
+ if (!((_c = this._dataState) === null || _c === void 0 ? void 0 : _c.selectionInfo.length))
575
+ invisibleButtons.push(TaskbarElement.FORM_MODE);
574
576
  return invisibleButtons;
575
577
  }
576
578
  componentWillRender() {
@@ -56,7 +56,7 @@ const SnkLayoutFormConfig = /*@__PURE__*/ proxyCustomElement(class extends HTMLE
56
56
  return (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params);
57
57
  }
58
58
  render() {
59
- return (h("div", { class: "ez-flex ez-flex--column" }, h("div", { class: "ez-margin-bottom--small" }, h("ez-check", { label: this.getMessage('snkLayoutFormConfig.cascadeLayout.label'), class: "ez-margin-bottom--small", onEzChange: () => this.toggleLayout(FormLayout.CASCADE), value: this.layoutType === FormLayout.CASCADE }), h("snk-view-representation", { mode: FormLayout.CASCADE }), h("label", { class: "ez-label ez-margin--small ez-flex ez-text--medium" }, this.getMessage('snkLayoutFormConfig.cascadeLayout.description'))), h("div", null, h("ez-check", { label: this.getMessage('snkLayoutFormConfig.sideBySideLayout.label'), class: "ez-margin-bottom--small", onEzChange: () => this.toggleLayout(FormLayout.SIDE_BY_SIDE), value: this.layoutType === FormLayout.SIDE_BY_SIDE }), h("snk-view-representation", { mode: FormLayout.SIDE_BY_SIDE }), h("label", { class: "ez-label ez-margin--small ez-flex ez-text--medium" }, this.getMessage('snkLayoutFormConfig.sideBySideLayout.description')))));
59
+ return (h("div", { class: "ez-flex ez-flex--column" }, h("div", { class: "ez-margin-bottom--small" }, h("ez-check", { label: this.getMessage('snkLayoutFormConfig.cascadeLayout.label'), class: "ez-margin-bottom--small", onEzChange: () => this.toggleLayout(FormLayout.CASCADE), value: this.layoutType === FormLayout.CASCADE }), h("snk-view-representation", { mode: FormLayout.CASCADE }), h("label", { class: "ez-label ez-margin--small ez-flex ez-text--medium" }, this.getMessage('snkLayoutFormConfig.cascadeLayout.description'))), h("div", { class: "ez-margin-bottom--small" }, h("ez-check", { label: this.getMessage('snkLayoutFormConfig.classicCascadeLayout.label'), class: "ez-margin-bottom--small", onEzChange: () => this.toggleLayout(FormLayout.CLASSIC_CASCADE), value: this.layoutType === FormLayout.CLASSIC_CASCADE }), h("snk-view-representation", { mode: FormLayout.CLASSIC_CASCADE }), h("label", { class: "ez-label ez-margin--small ez-flex ez-text--medium" }, this.getMessage('snkLayoutFormConfig.classicCascadeLayout.description'))), h("div", { class: "ez-margin-bottom--small" }, h("ez-check", { label: this.getMessage('snkLayoutFormConfig.sideBySideLayout.label'), class: "ez-margin-bottom--small", onEzChange: () => this.toggleLayout(FormLayout.SIDE_BY_SIDE), value: this.layoutType === FormLayout.SIDE_BY_SIDE }), h("snk-view-representation", { mode: FormLayout.SIDE_BY_SIDE }), h("label", { class: "ez-label ez-margin--small ez-flex ez-text--medium" }, this.getMessage('snkLayoutFormConfig.sideBySideLayout.description'))), h("div", null, h("ez-check", { label: this.getMessage('snkLayoutFormConfig.classicSideBySideLayout.label'), class: "ez-margin-bottom--small", onEzChange: () => this.toggleLayout(FormLayout.CLASSIC_SIDE_BY_SIDE), value: this.layoutType === FormLayout.CLASSIC_SIDE_BY_SIDE }), h("snk-view-representation", { mode: FormLayout.CLASSIC_SIDE_BY_SIDE }), h("label", { class: "ez-label ez-margin--small ez-flex ez-text--medium" }, this.getMessage('snkLayoutFormConfig.classicSideBySideLayout.description')))));
60
60
  }
61
61
  static get style() { return snkLayoutFormConfigCss; }
62
62
  }, [2, "snk-layout-form-config", {
@@ -16,7 +16,7 @@ const SnkViewRepresentation = /*@__PURE__*/ proxyCustomElement(class extends HTM
16
16
  return (h("div", { class: "svg-container__inline" }, [...Array(2)].map(() => this.renderCascadeLayout())));
17
17
  }
18
18
  render() {
19
- return (h("div", { class: "svg-container ez-margin-left--small" }, h("div", { class: "svg-container__background" }, h("div", { class: "svg-container__header" }, h("div", { class: "svg-container__circle svg-container__circle--red" }), h("div", { class: "svg-container__circle svg-container__circle--yellow" }), h("div", { class: "svg-container__circle svg-container__circle--green" })), this.mode === FormLayout.CASCADE
19
+ return (h("div", { class: "svg-container ez-margin-left--small" }, h("div", { class: "svg-container__background" }, h("div", { class: "svg-container__header" }, h("div", { class: "svg-container__circle svg-container__circle--red" }), h("div", { class: "svg-container__circle svg-container__circle--yellow" }), h("div", { class: "svg-container__circle svg-container__circle--green" })), (this.mode === FormLayout.CASCADE || this.mode === FormLayout.CLASSIC_CASCADE)
20
20
  ? this.renderCascadeLayout()
21
21
  : this.renderSideBySideLayout())));
22
22
  }
@@ -1,5 +1,5 @@
1
- import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-5e29a152.js';
2
- import { D as DataFetcher, d as dist } from './DataFetcher-49594174.js';
1
+ import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-fcc7b62f.js';
2
+ import { D as DataFetcher, d as dist } from './DataFetcher-1dd7e8c0.js';
3
3
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
4
4
  import { ObjectUtils } from '@sankhyalabs/core';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { DataType, ApplicationContext, StringUtils, ErrorException, WarningException, ObjectUtils, ServiceCanceledException } from '@sankhyalabs/core';
2
2
  import { P as PrintUtils } from './PrintUtils-3e4ff0f5.js';
3
- import { S as SnkMessageBuilder } from './SnkMessageBuilder-1c0fada0.js';
3
+ import { S as SnkMessageBuilder } from './SnkMessageBuilder-c0bc4424.js';
4
4
  import { DataUnitTransient } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
5
5
 
6
6
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
@@ -1,5 +1,5 @@
1
1
  import { UserInterface, DataType, ApplicationContext, ErrorException } from '@sankhyalabs/core';
2
- import { d as dist, D as DataFetcher } from './DataFetcher-49594174.js';
2
+ import { d as dist, D as DataFetcher } from './DataFetcher-1dd7e8c0.js';
3
3
 
4
4
  function buildGridMetadata(rawValue) {
5
5
  const fieldsMetadata = buildFieldsMetadata(rawValue.fieldsMetadata);
@@ -1,6 +1,6 @@
1
1
  import { ObjectUtils, StringUtils } from '@sankhyalabs/core';
2
- import { C as ConfigStorage } from './ConfigStorage-175813dc.js';
3
- import { F as FormConfigFetcher } from './form-config-fetcher-5e29a152.js';
2
+ import { C as ConfigStorage } from './ConfigStorage-d15d2014.js';
3
+ import { F as FormConfigFetcher } from './form-config-fetcher-fcc7b62f.js';
4
4
  import { a as TAB_NAMES } from './constants-7b422de0.js';
5
5
 
6
6
  class SnkFormConfigManager {
@@ -165,7 +165,7 @@ const snkConfiguratorMessages$2 = {
165
165
  labelNumberingConfig: "Configuração de numeração",
166
166
  buttons: {
167
167
  cancel: "Cancelar",
168
- save: "Guardar"
168
+ save: "Salvar"
169
169
  }
170
170
  };
171
171
 
@@ -175,8 +175,8 @@ const snkCrudMessages$2 = {
175
175
  insert: "Cadastrar registro",
176
176
  update: "Alterar registro",
177
177
  clean: "{{ENTITY_NAME}}",
178
- newRecord: "Novo Registro"
179
178
  },
179
+ newRecord: "Novo Registro",
180
180
  findColumn: "Buscar campos (Ctrl+F)",
181
181
  goBackTitle: "Voltar",
182
182
  guide: {
@@ -431,12 +431,20 @@ const snkFilterParamConfigMessages$2 = {
431
431
 
432
432
  const snkLayoutFormConfigMessages$2 = {
433
433
  cascadeLayout: {
434
- label: "Layout em cascata",
434
+ label: "Layout compacto em cascata",
435
435
  description: "Todos os campos serão organizados em uma coluna única."
436
436
  },
437
+ classicCascadeLayout: {
438
+ label: "Layout clássico em cascata",
439
+ description: "Todos os campos serão organizados em uma coluna única com estilo clássico."
440
+ },
437
441
  sideBySideLayout: {
438
- label: "Layout lado a lado",
442
+ label: "Layout compacto lado a lado",
439
443
  description: "Todos os campos serão dispostos lado a lado, ajustando-se automaticamente à largura da tela."
444
+ },
445
+ classicSideBySideLayout: {
446
+ label: "Layout clássico lado a lado",
447
+ description: "Todos os campos serão dispostos lado a lado com estilo clássico, ajustando-se automaticamente à largura da tela."
440
448
  }
441
449
  };
442
450
 
@@ -1052,8 +1060,8 @@ const snkCrudMessages$1 = {
1052
1060
  insert: "Register record",
1053
1061
  update: "Update record",
1054
1062
  clean: "{{ENTITY_NAME}}",
1055
- newRecord: "New Record"
1056
1063
  },
1064
+ newRecord: "New Record",
1057
1065
  findColumn: "Search fields (Ctrl+F)",
1058
1066
  goBackTitle: "Back",
1059
1067
  guide: {
@@ -1308,12 +1316,20 @@ const snkFilterParamConfigMessages$1 = {
1308
1316
 
1309
1317
  const snkLayoutFormConfigMessages$1 = {
1310
1318
  cascadeLayout: {
1311
- label: "Cascade layout",
1319
+ label: "Cascade compact layout",
1312
1320
  description: "All fields will be organized in a single column."
1313
1321
  },
1322
+ classicCascadeLayout: {
1323
+ label: "Classic cascade layout",
1324
+ description: "All fields will be organized in a single column with classic style."
1325
+ },
1314
1326
  sideBySideLayout: {
1315
- label: "Side by side layout",
1327
+ label: "Side by side compact layout",
1316
1328
  description: "All fields will be arranged side by side, automatically adjusting to the screen width."
1329
+ },
1330
+ classicSideBySideLayout: {
1331
+ label: "Classic side by side layout",
1332
+ description: "All fields will be arranged side by side with classic style, automatically adjusting to the screen width."
1317
1333
  }
1318
1334
  };
1319
1335
 
@@ -1930,8 +1946,8 @@ const snkCrudMessages = {
1930
1946
  insert: "Registrar nuevo",
1931
1947
  update: "Modificar registro",
1932
1948
  clean: "{{ENTITY_NAME}}",
1933
- newRecord: "Nuevo Registro"
1934
1949
  },
1950
+ newRecord: "Nuevo Registro",
1935
1951
  findColumn: "Buscar campos (Ctrl+F)",
1936
1952
  goBackTitle: "Volver",
1937
1953
  guide: {
@@ -2189,9 +2205,17 @@ const snkLayoutFormConfigMessages = {
2189
2205
  label: "Diseño en cascada",
2190
2206
  description: "Todos los campos se organizarán en una única columna."
2191
2207
  },
2208
+ classicCascadeLayout: {
2209
+ label: "Diseño clásico en cascada",
2210
+ description: "Todos los campos se organizarán en una única columna con estilo clásico."
2211
+ },
2192
2212
  sideBySideLayout: {
2193
2213
  label: "Diseño lado a lado",
2194
2214
  description: "Todos los campos se dispondrán lado a lado, ajustándose automáticamente al ancho de la pantalla."
2215
+ },
2216
+ classicSideBySideLayout: {
2217
+ label: "Diseño clásico lado a lado",
2218
+ description: "Todos los campos se dispondrán lado a lado con estilo clásico, ajustándose automáticamente al ancho de la pantalla."
2195
2219
  }
2196
2220
  };
2197
2221
 
@@ -1,12 +1,12 @@
1
- import { D as DataFetcher } from './DataFetcher-49594174.js';
2
- import './ISave-4bdffce4.js';
1
+ import { D as DataFetcher } from './DataFetcher-1dd7e8c0.js';
2
+ import './ISave-498c4831.js';
3
3
  import { SortMode, ApplicationContext, ObjectUtils, StringUtils, NumberUtils, DataType, UserInterface as UserInterface$1, DateUtils } from '@sankhyalabs/core';
4
4
  import { D as DataExporterOption } from './index-b40568ff.js';
5
5
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
6
6
  import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
7
- import { P as PreloadManager } from './dataunit-fetcher-b7a9ef67.js';
7
+ import { P as PreloadManager } from './dataunit-fetcher-3d5c4ae4.js';
8
8
  import './filter-item-type.enum-d45e026f.js';
9
- import './form-config-fetcher-5e29a152.js';
9
+ import './form-config-fetcher-fcc7b62f.js';
10
10
  import './constants-7b422de0.js';
11
11
  import { h } from './index-04f73a26.js';
12
12
  import { g as getSelectedRecordsIDsInfo } from './GetSelectedRecordsIDsInfo-9fa41508.js';
@@ -1,5 +1,5 @@
1
1
  import { ObjectUtils } from '@sankhyalabs/core';
2
- import { R as ResourceFetcher } from './form-config-fetcher-5e29a152.js';
2
+ import { R as ResourceFetcher } from './form-config-fetcher-fcc7b62f.js';
3
3
 
4
4
  class AuthFetcher extends ResourceFetcher {
5
5
  getData(resourceID) {
@@ -1,11 +1,11 @@
1
1
  import { ObjectUtils, DataUnit, DataUnitInMemoryLoader, ApplicationContext, StringUtils, UserInterface, DataUnitStorage, DataType, ChangeOperation } from '@sankhyalabs/core';
2
- import { D as DataFetcher, d as dist } from './DataFetcher-49594174.js';
2
+ import { D as DataFetcher, d as dist } from './DataFetcher-1dd7e8c0.js';
3
3
  import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
4
4
  import { DataUnitTransient } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
5
5
  import { ColumnFilterManager } from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
6
6
  import SortingUtils from '@sankhyalabs/core/dist/utils/SortingUtils';
7
7
  import { R as ResourceIDUtils } from './ResourceIDUtils-a114189a.js';
8
- import { S as SnkMessageBuilder } from './SnkMessageBuilder-1c0fada0.js';
8
+ import { S as SnkMessageBuilder } from './SnkMessageBuilder-c0bc4424.js';
9
9
 
10
10
  class ArrayRepository {
11
11
  constructor(equalsFunction) {
@@ -1,4 +1,4 @@
1
- import { d as dist, D as DataFetcher } from './DataFetcher-49594174.js';
1
+ import { d as dist, D as DataFetcher } from './DataFetcher-1dd7e8c0.js';
2
2
  import { ObjectUtils } from '@sankhyalabs/core';
3
3
 
4
4
  class ResourceFetcher {
@@ -3261,6 +3261,10 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
3261
3261
  return import(
3262
3262
  /* webpackMode: "lazy" */
3263
3263
  './snk-guides-viewer.entry.js').then(processMod, consoleError);
3264
+ case 'snk-layout-form-config':
3265
+ return import(
3266
+ /* webpackMode: "lazy" */
3267
+ './snk-layout-form-config.entry.js').then(processMod, consoleError);
3264
3268
  case 'snk-data-exporter':
3265
3269
  return import(
3266
3270
  /* webpackMode: "lazy" */
@@ -3393,10 +3397,10 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
3393
3397
  return import(
3394
3398
  /* webpackMode: "lazy" */
3395
3399
  './snk-personalized-filter.entry.js').then(processMod, consoleError);
3396
- case 'snk-actions-button_9':
3400
+ case 'snk-actions-button_8':
3397
3401
  return import(
3398
3402
  /* webpackMode: "lazy" */
3399
- './snk-actions-button_9.entry.js').then(processMod, consoleError);
3403
+ './snk-actions-button_8.entry.js').then(processMod, consoleError);
3400
3404
  case 'field-config_2':
3401
3405
  return import(
3402
3406
  /* webpackMode: "lazy" */