@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-72883.1 → 0.0.0-bugfix-dev-KB-73324.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 (95) hide show
  1. package/dist/cjs/{ContinuousInsertUtils-29b65619.js → ContinuousInsertUtils-807730a8.js} +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  4. package/dist/cjs/snk-attach.cjs.entry.js +1 -1
  5. package/dist/cjs/snk-crud.cjs.entry.js +3 -2
  6. package/dist/cjs/snk-data-exporter.cjs.entry.js +11 -10
  7. package/dist/cjs/{snk-data-unit-47202e42.js → snk-data-unit-668dc5e8.js} +9 -8
  8. package/dist/cjs/snk-data-unit.cjs.entry.js +1 -1
  9. package/dist/cjs/snk-detail-view.cjs.entry.js +1 -1
  10. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  11. package/dist/cjs/snk-form-config.cjs.entry.js +3 -2
  12. package/dist/cjs/snk-grid.cjs.entry.js +6 -5
  13. package/dist/cjs/{snk-guides-viewer-68777d37.js → snk-guides-viewer-0a6c21b2.js} +2 -1
  14. package/dist/cjs/snk-guides-viewer.cjs.entry.js +1 -1
  15. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +1 -1
  16. package/dist/cjs/snk-print-selector.cjs.entry.js +1 -1
  17. package/dist/cjs/snk-simple-crud.cjs.entry.js +15 -10
  18. package/dist/collection/components/snk-attach/snk-attach.js +1 -1
  19. package/dist/collection/components/snk-crud/snk-crud.js +20 -2
  20. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +19 -1
  21. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +4 -4
  22. package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +5 -5
  23. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +2 -2
  24. package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +4 -4
  25. package/dist/collection/components/snk-data-unit/snk-data-unit.js +9 -8
  26. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js +1 -1
  27. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +1 -1
  28. package/dist/collection/components/snk-form-config/snk-form-config.css +8 -3
  29. package/dist/collection/components/snk-form-config/snk-form-config.js +19 -1
  30. package/dist/collection/components/snk-grid/snk-grid.js +5 -4
  31. package/dist/collection/components/snk-print-selector/snk-print-selector.js +1 -1
  32. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +14 -9
  33. package/dist/collection/lib/utils/ContinuousInsertUtils.js +1 -1
  34. package/dist/components/ContinuousInsertUtils.js +1 -1
  35. package/dist/components/snk-attach2.js +1 -1
  36. package/dist/components/snk-crud.js +4 -2
  37. package/dist/components/snk-data-exporter2.js +10 -9
  38. package/dist/components/snk-data-unit2.js +9 -8
  39. package/dist/components/snk-detail-view2.js +3 -1
  40. package/dist/components/snk-filter-binary-select.js +1 -1
  41. package/dist/components/snk-form-config2.js +4 -2
  42. package/dist/components/snk-grid2.js +5 -4
  43. package/dist/components/snk-personalized-filter-editor.js +1 -1
  44. package/dist/components/snk-print-selector.js +1 -1
  45. package/dist/components/snk-simple-crud2.js +14 -9
  46. package/dist/esm/{ContinuousInsertUtils-30caa626.js → ContinuousInsertUtils-1a82a768.js} +1 -1
  47. package/dist/esm/loader.js +1 -1
  48. package/dist/esm/sankhyablocks.js +1 -1
  49. package/dist/esm/snk-attach.entry.js +1 -1
  50. package/dist/esm/snk-crud.entry.js +3 -2
  51. package/dist/esm/snk-data-exporter.entry.js +11 -10
  52. package/dist/esm/{snk-data-unit-de45e0e1.js → snk-data-unit-0fdfb6c2.js} +9 -8
  53. package/dist/esm/snk-data-unit.entry.js +1 -1
  54. package/dist/esm/snk-detail-view.entry.js +1 -1
  55. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  56. package/dist/esm/snk-form-config.entry.js +3 -2
  57. package/dist/esm/snk-grid.entry.js +6 -5
  58. package/dist/esm/{snk-guides-viewer-b5dd30e6.js → snk-guides-viewer-3fd3d816.js} +2 -1
  59. package/dist/esm/snk-guides-viewer.entry.js +1 -1
  60. package/dist/esm/snk-personalized-filter-editor.entry.js +1 -1
  61. package/dist/esm/snk-print-selector.entry.js +1 -1
  62. package/dist/esm/snk-simple-crud.entry.js +15 -10
  63. package/dist/sankhyablocks/{p-d11f58d2.entry.js → p-0035ad6e.entry.js} +1 -1
  64. package/dist/sankhyablocks/{p-2923c1b5.js → p-3ae9d08a.js} +1 -1
  65. package/dist/sankhyablocks/p-4258c8c4.js +1 -0
  66. package/dist/sankhyablocks/p-430e4d3c.entry.js +1 -0
  67. package/dist/sankhyablocks/{p-72fc257b.entry.js → p-434817f0.entry.js} +1 -1
  68. package/dist/sankhyablocks/p-5b51491f.entry.js +1 -0
  69. package/dist/sankhyablocks/{p-bccfc262.js → p-5dd8cf4f.js} +1 -1
  70. package/dist/sankhyablocks/{p-694e1c4a.entry.js → p-6eea1074.entry.js} +1 -1
  71. package/dist/sankhyablocks/p-818e3770.entry.js +1 -0
  72. package/dist/sankhyablocks/{p-41f8bfa3.entry.js → p-8c235d4c.entry.js} +1 -1
  73. package/dist/sankhyablocks/{p-62e048c6.entry.js → p-b9c67e45.entry.js} +1 -1
  74. package/dist/sankhyablocks/{p-7eef0898.entry.js → p-d2925f12.entry.js} +1 -1
  75. package/dist/sankhyablocks/p-d80a84fd.entry.js +1 -0
  76. package/dist/sankhyablocks/{p-e16e87fc.entry.js → p-dcead955.entry.js} +1 -1
  77. package/dist/sankhyablocks/p-fcf41e0c.entry.js +1 -0
  78. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  79. package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
  80. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +4 -0
  81. package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +3 -3
  82. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +1 -0
  83. package/dist/types/components/snk-form-config/snk-form-config.d.ts +4 -0
  84. package/dist/types/components/snk-grid/snk-grid.d.ts +1 -0
  85. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +1 -0
  86. package/dist/types/components.d.ts +24 -0
  87. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IFetchDataExporterParams.d.ts +1 -1
  88. package/dist/types/lib/utils/ContinuousInsertUtils.d.ts +1 -1
  89. package/package.json +1 -1
  90. package/dist/sankhyablocks/p-27128876.entry.js +0 -1
  91. package/dist/sankhyablocks/p-3e3cc017.js +0 -1
  92. package/dist/sankhyablocks/p-73185e58.entry.js +0 -1
  93. package/dist/sankhyablocks/p-7e78ddef.entry.js +0 -1
  94. package/dist/sankhyablocks/p-b11aa1e0.entry.js +0 -1
  95. package/dist/sankhyablocks/p-da34270e.entry.js +0 -1
@@ -9,7 +9,7 @@ const constants = require('./constants-35ddd366.js');
9
9
  const taskbarElements = require('./taskbar-elements-9ad1f9c0.js');
10
10
  require('./DataFetcher-cadeef8e.js');
11
11
  require('./pesquisa-fetcher-ca89181c.js');
12
- const ContinuousInsertUtils = require('./ContinuousInsertUtils-29b65619.js');
12
+ const ContinuousInsertUtils = require('./ContinuousInsertUtils-807730a8.js');
13
13
  const index = require('./index-1dfc7a6e.js');
14
14
  require('./ISave-e91b70a7.js');
15
15
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
@@ -103,9 +103,9 @@ const SnkSimpleCrud = class {
103
103
  this._customEditors = new Map();
104
104
  this._customRenders = new Map();
105
105
  this._taskbarProcessor = new fieldSearch.TaskbarProcessor({
106
- "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [taskbarElements.TaskbarElement.GRID_MODE]),
106
+ "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [taskbarElements.TaskbarElement.GRID_MODE], true),
107
107
  "snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
108
- "snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [taskbarElements.TaskbarElement.GRID_MODE]),
108
+ "snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [taskbarElements.TaskbarElement.GRID_MODE], true),
109
109
  "snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, [taskbarElements.TaskbarElement.DATA_EXPORTER, taskbarElements.TaskbarElement.FORM_MODE]),
110
110
  "snkSimpleCrudTaskbar.finish_edition": this.getFinishEditionButtonsCallback.bind(this)
111
111
  });
@@ -205,8 +205,12 @@ const SnkSimpleCrud = class {
205
205
  }
206
206
  return btns;
207
207
  }
208
- getButtons(selected, extraButtons) {
209
- return this.addConfigButton(this.resolveInMemoryBtns(selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS)
208
+ getButtons(selected, extraButtons, removeRefresh) {
209
+ let btnList = selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS;
210
+ if (removeRefresh) {
211
+ btnList = btnList.filter(item => item !== taskbarElements.TaskbarElement.REFRESH);
212
+ }
213
+ return this.addConfigButton(this.resolveInMemoryBtns(btnList)
210
214
  .concat(extraButtons));
211
215
  }
212
216
  addConfigButton(buttons) {
@@ -662,10 +666,7 @@ const SnkSimpleCrud = class {
662
666
  : this.getFieldSearch(actionButton, item)
663
667
  }];
664
668
  if (this.enableGridInsert) {
665
- hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, () => {
666
- this._enableContinuousInsert = !this._enableContinuousInsert;
667
- this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
668
- }));
669
+ hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, this.handleEnableContinuousInsert));
669
670
  }
670
671
  if (this.isGridInsertActive())
671
672
  return hardList;
@@ -677,6 +678,10 @@ const SnkSimpleCrud = class {
677
678
  return hardList.concat(this.actionsList);
678
679
  return hardList;
679
680
  }
681
+ handleEnableContinuousInsert() {
682
+ this._enableContinuousInsert = !this._enableContinuousInsert;
683
+ this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
684
+ }
680
685
  getTopTaskBarId() {
681
686
  var _a;
682
687
  return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? `snkGridTopTaskbar.finish_edition${index.PresentationMode.PRIMARY}` :
@@ -806,7 +811,7 @@ const SnkSimpleCrud = class {
806
811
  return;
807
812
  }
808
813
  const taskbarContent = (index$1.h("snk-taskbar", { class: this._currentViewMode === constants.VIEW_MODE.FORM && "ez-box ez-box--shadow ez-padding--small", 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, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, "data-exporter-store-key": this.getDataExporterStoreKey(), slot: "leftButtons", presentationMode: index.PresentationMode.SECONDARY }, index$1.h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })));
809
- return (index$1.h("snk-data-unit", { ref: ref => this._snkDataUnit = ref, class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode: this.handleDataUnitOnInsertionMode.bind(this), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === constants.VIEW_MODE.GRID && !this.enableGridInsert, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail, onDataUnitFieldsHidded: this.updateFormConfig.bind(this), domainMessagesBuilder: this.domainMessagesBuilder }, index$1.h("header", null, index$1.h("slot", { name: "snkSimpleCrudHeader" })), index$1.h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, this._currentViewMode === constants.VIEW_MODE.FORM && taskbarContent, index$1.h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index$1.h("stack-item", null, index$1.h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(constants.VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(dataunitFetcher.InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
814
+ return (index$1.h("snk-data-unit", { ref: ref => this._snkDataUnit = ref, class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode: this.handleDataUnitOnInsertionMode.bind(this), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === constants.VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail, onDataUnitFieldsHidded: this.updateFormConfig.bind(this), domainMessagesBuilder: this.domainMessagesBuilder }, index$1.h("header", null, index$1.h("slot", { name: "snkSimpleCrudHeader" })), index$1.h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, this._currentViewMode === constants.VIEW_MODE.FORM && taskbarContent, index$1.h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index$1.h("stack-item", null, index$1.h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(constants.VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(dataunitFetcher.InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
810
815
  ? undefined
811
816
  : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableContinuousInsert: this._enableContinuousInsert }, this._currentViewMode === constants.VIEW_MODE.GRID && taskbarContent, index$1.h("div", { slot: "footer" }, index$1.h("slot", { name: "snkSimpleCrudFooter" })))), index$1.h("stack-item", null, index$1.h("ez-form", { ref: (ref) => this._form = ref, class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && index$1.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && index$1.h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId })), index$1.h("div", { id: `${this._customContainerId}` }, index$1.h("slot", { name: "SnkConfigContainerSlot" }))), index$1.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index$1.h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this.gridConfig, "data-element-id": this._element.getAttribute(core.ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
812
817
  }
@@ -230,7 +230,7 @@ export class SnkAttach {
230
230
  var _a, _b;
231
231
  if (!this._currentDataUnit)
232
232
  return null;
233
- return (h("main", { class: "snk-attach__main" }, h("header", { class: "snk-attach__header" }, h("snk-simple-bar", { onExit: this.handleBack, messagesBuilder: this.messagesBuilder }, h("div", { slot: "rightSlot" }, h("ez-button", { class: "ez-button--primary", label: this.getMessage("snkAttach.finish"), onClick: this.handleFinish })))), h("div", { class: "snk-attach__crud-section ez-size-height--full ez-size-width--full ez-flex ez-flex--column" }, h("div", { class: "ez-box__container" }, h("snk-simple-crud", { ref: (el) => this._crudElement = el, dataUnit: this._currentDataUnit, taskbarManager: buildTaskBarManager(), gridConfig: (_a = this.crudConfig) === null || _a === void 0 ? void 0 : _a.grid, formConfig: (_b = this.crudConfig) === null || _b === void 0 ? void 0 : _b.form, useCancelConfirm: false, onActionClick: this.handleTaskbarClick, messagesBuilder: this.messagesBuilder, onDataStateChange: this.handleOnDataStateChange.bind(this) }, h("div", { slot: "snkSimpleCrudHeader" }, h("div", { class: "ez-flex ez-flex--column" }, h("span", { class: "ez-title--primary ez-text ez-text--large ez-text--bold ez-padding-bottom--medium" }, this.getMessage("snkAttach.title")), h("span", { class: "ez-text ez-text--medium ez-text--secondary" }, this.getMessage("snkAttach.description")))))))));
233
+ return (h("main", { class: "snk-attach__main" }, h("header", { class: "snk-attach__header" }, h("snk-simple-bar", { onExit: this.handleBack, messagesBuilder: this.messagesBuilder }, h("div", { slot: "rightSlot" }, h("ez-button", { class: "ez-button--primary", label: this.getMessage("snkAttach.finish"), onClick: this.handleFinish })))), h("div", { class: "snk-attach__crud-section ez-size-height--full ez-size-width--full ez-flex ez-flex--column" }, h("div", { class: "ez-box__container" }, h("snk-simple-crud", { ref: (el) => this._crudElement = el, dataUnit: this._currentDataUnit, taskbarManager: buildTaskBarManager(), gridConfig: (_a = this.crudConfig) === null || _a === void 0 ? void 0 : _a.grid, formConfig: (_b = this.crudConfig) === null || _b === void 0 ? void 0 : _b.form, useCancelConfirm: false, onActionClick: this.handleTaskbarClick, messagesBuilder: this.messagesBuilder, onDataStateChange: this.handleOnDataStateChange.bind(this) }, h("div", { slot: "snkSimpleCrudHeader" }, h("div", { class: "ez-flex ez-flex--column" }, h("span", { class: "ez-title--primary ez-text ez-text--large ez-text--bold ez-padding-bottom--medium" }, this.getMessage("snkAttach.title")), h("span", { class: "ez-text ez-text--medium ez-text--secondary ez-padding-bottom--medium" }, this.getMessage("snkAttach.description")))))))));
234
234
  }
235
235
  static get is() { return "snk-attach"; }
236
236
  static get encapsulation() { return "scoped"; }
@@ -41,6 +41,7 @@ export class SnkCrud {
41
41
  this.autoFocus = true;
42
42
  this.enableGridInsert = false;
43
43
  this.domainMessagesBuilder = undefined;
44
+ this.ignoreReadOnlyFormFields = undefined;
44
45
  this.setCustomFormTitle = undefined;
45
46
  this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
46
47
  }
@@ -382,8 +383,8 @@ export class SnkCrud {
382
383
  if (this._resourceID == undefined) {
383
384
  return;
384
385
  }
385
- this._snkDataUnit.ignoreSaveMessage = (this._currentViewMode === VIEW_MODE.GRID && !this.enableGridInsert);
386
- return (h(Host, null, 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, filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
386
+ this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
387
+ return (h(Host, null, 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, filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
387
388
  }
388
389
  static get is() { return "snk-crud"; }
389
390
  static get encapsulation() { return "scoped"; }
@@ -775,6 +776,23 @@ export class SnkCrud {
775
776
  "attribute": "domain-messages-builder",
776
777
  "reflect": false
777
778
  },
779
+ "ignoreReadOnlyFormFields": {
780
+ "type": "boolean",
781
+ "mutable": false,
782
+ "complexType": {
783
+ "original": "boolean",
784
+ "resolved": "boolean",
785
+ "references": {}
786
+ },
787
+ "required": false,
788
+ "optional": true,
789
+ "docs": {
790
+ "tags": [],
791
+ "text": "Ignora os campos \"somente leitura\" no modo de inser\u00E7\u00E3o."
792
+ },
793
+ "attribute": "ignore-read-only-form-fields",
794
+ "reflect": false
795
+ },
778
796
  "setCustomFormTitle": {
779
797
  "type": "unknown",
780
798
  "mutable": false,
@@ -28,6 +28,7 @@ export class SnkGuidesViewer {
28
28
  this.detailTaskbarCustomContainerId = undefined;
29
29
  this.formLegacyConfigName = undefined;
30
30
  this.enableGridInsert = false;
31
+ this.ignoreReadOnlyFormFields = undefined;
31
32
  this.getCustomTitle = undefined;
32
33
  this._hasToCreateFieldSearch = true;
33
34
  this._breadcrumbItems = [];
@@ -482,7 +483,7 @@ export class SnkGuidesViewer {
482
483
  render() {
483
484
  var _a, _b;
484
485
  if (this._formEditorConfigManager != undefined) {
485
- return (h("snk-form-config", { ref: ref => this._container = ref, tabindex: -1, dataUnit: this._formEditorDataUnit, messagesBuilder: this.messagesBuilder, configManager: this._formEditorConfigManager, onConfigClose: () => this._formEditorConfigManager = null }));
486
+ return (h("snk-form-config", { ref: ref => this._container = ref, tabindex: -1, dataUnit: this._formEditorDataUnit, messagesBuilder: this.messagesBuilder, configManager: this._formEditorConfigManager, onConfigClose: () => this._formEditorConfigManager = null, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }));
486
487
  }
487
488
  if (!this.dataUnit || !this._configManager.isLoaded) {
488
489
  return;
@@ -825,6 +826,23 @@ export class SnkGuidesViewer {
825
826
  "reflect": false,
826
827
  "defaultValue": "false"
827
828
  },
829
+ "ignoreReadOnlyFormFields": {
830
+ "type": "boolean",
831
+ "mutable": false,
832
+ "complexType": {
833
+ "original": "boolean",
834
+ "resolved": "boolean",
835
+ "references": {}
836
+ },
837
+ "required": false,
838
+ "optional": true,
839
+ "docs": {
840
+ "tags": [],
841
+ "text": "Ignora os campos \"somente leitura\" no modo de inser\u00E7\u00E3o."
842
+ },
843
+ "attribute": "ignore-read-only-form-fields",
844
+ "reflect": false
845
+ },
828
846
  "getCustomTitle": {
829
847
  "type": "unknown",
830
848
  "mutable": false,
@@ -1,7 +1,6 @@
1
1
  import { UserInterface } from "@sankhyalabs/core";
2
2
  import { DataFetcher } from "../../../lib";
3
3
  import { getOptionKey, getVisibleColumns } from "../utils/ParserExport";
4
- import { DataExporterType } from "../../../lib/@types";
5
4
  export default class ClientSideExporterStrategy {
6
5
  constructor(provider) {
7
6
  this._provider = provider;
@@ -12,15 +11,16 @@ export default class ClientSideExporterStrategy {
12
11
  return visibleColumns;
13
12
  }
14
13
  async executeExport(resolveProps) {
15
- const { methodName, titleGrid } = resolveProps;
14
+ var _a;
15
+ const { methodName, gridTitle } = resolveProps;
16
16
  const records = await this._provider.getRecords();
17
- const columns = [DataExporterType.EXPORT_TO_PDF, DataExporterType.EXPORT_PAGE_TO_PDF, DataExporterType.EXPORT_PDF_TO_EMAIL, DataExporterType.EXPORT_ALL_RECORDS_TO_PDF].includes(getOptionKey(resolveProps === null || resolveProps === void 0 ? void 0 : resolveProps.exportOption)) ? await this.getParsedColumns() : await this._provider.getColumnsMetadata();
17
+ const columns = ((_a = getOptionKey(resolveProps === null || resolveProps === void 0 ? void 0 : resolveProps.exportOption)) === null || _a === void 0 ? void 0 : _a.includes("PDF")) ? await this.getParsedColumns() : await this._provider.getColumnsMetadata();
18
18
  const [serviceName, processor] = this.getExecutor(methodName);
19
19
  const payload = {
20
20
  serviceName,
21
21
  requestBody: {
22
22
  grid: {
23
- titleGrid,
23
+ gridTitle,
24
24
  columns: this.buildColumnsObject(columns),
25
25
  rows: this.buildRowsObject(columns, records),
26
26
  customOptions: { xlsxExtension: false }
@@ -12,7 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  };
13
13
  import { ApplicationContext, ObjectUtils } from "@sankhyalabs/core";
14
14
  import { DataFetcher } from '../../../lib/http/data-fetcher/DataFetcher';
15
- import { DataExporterOption, DataExporterType } from "../../../lib/@types";
15
+ import { DataExporterOption } from "../../../lib/@types";
16
16
  import { getOptionKey, getVisibleColumns } from "../utils/ParserExport";
17
17
  export default class ServerSideExporterStrategy {
18
18
  constructor(provider) {
@@ -24,11 +24,11 @@ export default class ServerSideExporterStrategy {
24
24
  return visibleColumns;
25
25
  }
26
26
  async getParams(resolveProps) {
27
- var _a, _b, _c, _d, _e, _f;
27
+ var _a, _b, _c, _d, _e, _f, _g;
28
28
  const filters = (_b = (_a = this._provider).getFilters) === null || _b === void 0 ? void 0 : _b.call(_a);
29
- const columns = [DataExporterType.EXPORT_TO_PDF, DataExporterType.EXPORT_PAGE_TO_PDF, DataExporterType.EXPORT_PDF_TO_EMAIL, DataExporterType.EXPORT_ALL_RECORDS_TO_PDF].includes(getOptionKey(resolveProps === null || resolveProps === void 0 ? void 0 : resolveProps.exportOption)) ? await this.getParsedColumns() : await this._provider.getColumnsMetadata();
30
- const sort = (_d = (_c = this._provider).getOrders) === null || _d === void 0 ? void 0 : _d.call(_c);
31
- const resourceURI = (_f = (_e = this._provider).getResourceURI) === null || _f === void 0 ? void 0 : _f.call(_e);
29
+ const columns = ((_c = getOptionKey(resolveProps === null || resolveProps === void 0 ? void 0 : resolveProps.exportOption)) === null || _c === void 0 ? void 0 : _c.includes("PDF")) ? await this.getParsedColumns() : await this._provider.getColumnsMetadata();
30
+ const sort = (_e = (_d = this._provider).getOrders) === null || _e === void 0 ? void 0 : _e.call(_d);
31
+ const resourceURI = (_g = (_f = this._provider).getResourceURI) === null || _g === void 0 ? void 0 : _g.call(_f);
32
32
  const selectedIDs = this._provider.getSelectedIDs();
33
33
  const option = resolveProps.exportOption;
34
34
  const currentPageOptions = [
@@ -42,7 +42,7 @@ export class SnkDataExporter {
42
42
  resolver: ({ type, format, email: { to, subject, message } }) => {
43
43
  var _a;
44
44
  const methodName = (_a = DataExporterFormat[format === null || format === void 0 ? void 0 : format.toUpperCase()]) !== null && _a !== void 0 ? _a : DataExporterFormat.PDF;
45
- this.resolveExporter({ type, methodName, to, subject, message, fileName: this._appLabel, titleGrid: this._appLabel }, () => {
45
+ this.resolveExporter({ type, methodName, to, subject, message, fileName: this._appLabel, gridTitle: this._appLabel }, () => {
46
46
  this._snkEmailSender.close();
47
47
  ApplicationUtils.info(this.getMessage("snkDataExporter.message.emailSuccess"), { iconName: "check" });
48
48
  });
@@ -130,7 +130,7 @@ export class SnkDataExporter {
130
130
  const params = {
131
131
  methodName: DataExporterOption[`EXPORT_TO_${fileType}`],
132
132
  fileName: this._appLabel,
133
- titleGrid: this._appLabel,
133
+ gridTitle: this._appLabel,
134
134
  exportOption: option,
135
135
  limit: (_c = (_b = this.provider) === null || _b === void 0 ? void 0 : _b.getExportLimit) === null || _c === void 0 ? void 0 : _c.call(_b),
136
136
  type: this.getExportType(option),
@@ -42,21 +42,21 @@ export const dataFetcherXLSResponse = {
42
42
  export const exportPDFParams = {
43
43
  methodName: 'exportToPDF',
44
44
  fileName: '',
45
- titleGrid: '',
45
+ gridTitle: '',
46
46
  };
47
47
  export const exportXLSParams = {
48
48
  methodName: 'exportToXLS',
49
49
  fileName: '',
50
- titleGrid: '',
50
+ gridTitle: '',
51
51
  };
52
52
  export const serviceNamePDF = "GridPDFBuilderSP.buildPDFFromJson";
53
53
  export const serviceNameXLS = "GridXLSBuilderSP.buildXLSFromJson";
54
- export function buildExpectedResponse({ serviceName, titleGrid, value, align = 'left', type = 'S' }) {
54
+ export function buildExpectedResponse({ serviceName, gridTitle, value, align = 'left', type = 'S' }) {
55
55
  return {
56
56
  serviceName: serviceName,
57
57
  requestBody: {
58
58
  grid: {
59
- titleGrid: titleGrid,
59
+ gridTitle: gridTitle,
60
60
  columns: {
61
61
  column: [
62
62
  {
@@ -479,14 +479,7 @@ export class SnkDataUnit {
479
479
  }
480
480
  handleRecordsRemoved(action) {
481
481
  var _a, _b;
482
- const cachedRecords = action.payload.cachedRecords;
483
- let removeFinishMsg;
484
- if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
485
- removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
486
- }
487
- else {
488
- removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
489
- }
482
+ let removeFinishMsg = this.buildRemoveFinishMessage(action);
490
483
  if (removeFinishMsg != undefined) {
491
484
  this.showSuccessMessage(removeFinishMsg);
492
485
  }
@@ -497,6 +490,14 @@ export class SnkDataUnit {
497
490
  this.dataUnit.gotoPage(page);
498
491
  }
499
492
  }
493
+ buildRemoveFinishMessage(action) {
494
+ const records = action.payload.records;
495
+ if (!records || !records.length)
496
+ return undefined;
497
+ if ((records === null || records === void 0 ? void 0 : records.length) > 1)
498
+ return this.getMessage('snkDataUnit.removeAllInfo', { size: records.length });
499
+ return this.getMessage('snkDataUnit.removeInfo', records);
500
+ }
500
501
  /**
501
502
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
502
503
  * através de um pequeno modulo na estrutura da aplicação:
@@ -74,7 +74,7 @@ export class SnkFilterBinarySelect {
74
74
  }
75
75
  const [optOne, optTwo] = this.config.props.options;
76
76
  if (this.presentationMode === EPresentationMode.MODAL) {
77
- return (h(Host, null, h("div", { class: "ez-row ez-size-height--full" }, h("label", { class: "ez-text ez-title--small ez-title--primary ez-size-height--full ez-flex ez-flex--row ez-flex--align-items-center ez-col ez-col--sd-4" }, this.config.detailModal), h("div", { class: "ez-col ez-col--sd-4" }, h("ez-check", { ref: (ref) => this._checkOne = ref, id: `${this.config.id}_${optOne.name || "option1"}`, class: "sc-snk-filter-bar editor__ez-check", label: optOne.label, value: this.isSelected(optOne.name), compact: true })), h("div", { class: "ez-col ez-col--sd-4" }, h("ez-check", { ref: (ref) => this._checkTwo = ref, id: `${this.config.id}_${optTwo.name || "option2"}`, class: "sc-snk-filter-bar editor__ez-check", label: optTwo.label, value: this.isSelected(optTwo.name), compact: true })))));
77
+ return (h(Host, null, h("div", { class: "ez-row ez-size-height--full" }, h("label", { class: "ez-text ez-title--small ez-title--primary ez-size-height--full ez-flex ez-flex--row ez-flex--align-items-center ez-col ez-col--sd-4" }, this.config.detailModal), h("div", { class: "ez-col ez-col--sd-4" }, h("ez-check", { ref: (ref) => this._checkOne = ref, id: `${this.config.id}_${optOne.name || "option1"}`, class: "sc-snk-filter-bar editor__ez-check", label: optOne.label, value: this.isSelected(optOne.name) })), h("div", { class: "ez-col ez-col--sd-4" }, h("ez-check", { ref: (ref) => this._checkTwo = ref, id: `${this.config.id}_${optTwo.name || "option2"}`, class: "sc-snk-filter-bar editor__ez-check", label: optTwo.label, value: this.isSelected(optTwo.name) })))));
78
78
  }
79
79
  return (h(Host, null, h("ez-radio-button", { value: this._radioButtonValue }, h("ez-radio-button-option", { id: `${this.config.id}_${optOne.name || "option1"}`, class: "sc-snk-filter-bar editor__ez-check", label: optOne.label, value: optOne.name }), h("ez-radio-button-option", { id: `${this.config.id}_${optTwo.name || "option2"}`, class: "sc-snk-filter-bar editor__ez-check", label: optTwo.label, value: optTwo.name }), h("ez-radio-button-option", { id: `${this.config.id}_option3`, class: "sc-snk-filter-bar editor__ez-check", label: `${optOne.label} + ${optTwo.label}`, value: this._noOptionValue }))));
80
80
  }
@@ -39,7 +39,7 @@ export class SnkFilterPersonalized {
39
39
  }
40
40
  getItemContent(item) {
41
41
  var _a, _b;
42
- const CheckboxElement = () => (h("ez-check", Object.assign({ class: "SnkFilterPersonalized_checkbox", id: `param_${item.id}`, key: item.id, compact: true, value: item.visible, label: item.label, onEzChange: ({ detail: visible }) => this.handleItemChange.bind(this)(visible, item.id) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`checkboxFilter_${item.id}`)}` })));
42
+ const CheckboxElement = () => (h("ez-check", Object.assign({ class: "SnkFilterPersonalized_checkbox", id: `param_${item.id}`, key: item.id, value: item.visible, label: item.label, onEzChange: ({ detail: visible }) => this.handleItemChange.bind(this)(visible, item.id) }, { [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: `${ElementIDUtils.getInternalIDInfo(`checkboxFilter_${item.id}`)}` })));
43
43
  const isVariable = !!((_b = (_a = item.props) === null || _a === void 0 ? void 0 : _a.personalizedFilter) === null || _b === void 0 ? void 0 : _b.parameters.length);
44
44
  return (h("div", { class: `${!this.isModalMode() ? "SnkFilterPersonalized_list-item--chip" : ""}` }, h("li", { class: `${this.isModalMode() ? "SnkFilterPersonalized_list-item--modal" : ""}` }, h("div", { class: "ez-flex ez-flex--align-items-center ez-margin-right--small ez-size-width--full" }, h(CheckboxElement, null), this.buildModalListActions(item, isVariable))), (item.visible && isVariable) && (h("div", { class: "ez-row ez-padding--small" }, this.getFormField(item)))));
45
45
  }
@@ -44,6 +44,11 @@
44
44
  background-color: var(--snk-form-config--background-color);
45
45
  }
46
46
 
47
+ div:focus-visible,
48
+ div:focus {
49
+ outline: none;
50
+ }
51
+
47
52
  .form-config__header-container {
48
53
  /*private*/
49
54
  display: flex;
@@ -58,7 +63,7 @@
58
63
  .form-config__hide-content {
59
64
  /*private*/
60
65
  display: none;
61
- }
66
+ }
62
67
 
63
68
  ez-icon .left-icon {
64
69
  /*public*/
@@ -229,9 +234,9 @@ ez-collapsible-box{
229
234
  /*private*/
230
235
  left: calc(100% / 1 * -1);
231
236
  }
232
-
237
+
233
238
  .form-config__field-config--selected:nth-child(3n+3) .ez-flex.form-config__config-options {
234
239
  /*private*/
235
240
  left: calc(100% / 1 * -2);
236
241
  }
237
- }
242
+ }
@@ -38,6 +38,7 @@ export class SnkFormConfig {
38
38
  this.dataUnit = undefined;
39
39
  this.configManager = undefined;
40
40
  this.messagesBuilder = undefined;
41
+ this.ignoreReadOnlyFormFields = undefined;
41
42
  }
42
43
  observeConfigManager() {
43
44
  this.loadConfig(this._sortableTimer);
@@ -67,7 +68,7 @@ export class SnkFormConfig {
67
68
  }
68
69
  }
69
70
  getConfig() {
70
- let config = this.configManager.getConfig(this.dataUnit);
71
+ let config = this.configManager.getConfig(this.dataUnit, this.ignoreReadOnlyFormFields);
71
72
  if (config.fields && config.fields.length === 0) {
72
73
  config = undefined;
73
74
  }
@@ -1066,6 +1067,23 @@ export class SnkFormConfig {
1066
1067
  "tags": [],
1067
1068
  "text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
1068
1069
  }
1070
+ },
1071
+ "ignoreReadOnlyFormFields": {
1072
+ "type": "boolean",
1073
+ "mutable": false,
1074
+ "complexType": {
1075
+ "original": "boolean",
1076
+ "resolved": "boolean",
1077
+ "references": {}
1078
+ },
1079
+ "required": false,
1080
+ "optional": true,
1081
+ "docs": {
1082
+ "tags": [],
1083
+ "text": "Ignora os campos \"somente leitura\" no modo de inser\u00E7\u00E3o."
1084
+ },
1085
+ "attribute": "ignore-read-only-form-fields",
1086
+ "reflect": false
1069
1087
  }
1070
1088
  };
1071
1089
  }
@@ -419,10 +419,7 @@ export class SnkGrid {
419
419
  itemBuilder: (actionButton, item) => this.getColumnSearch(actionButton, item)
420
420
  }];
421
421
  if (this.enableGridInsert) {
422
- hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, () => {
423
- this._enableContinuousInsert = !this._enableContinuousInsert;
424
- this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
425
- }));
422
+ hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, this.handleEnableContinuousInsert));
426
423
  }
427
424
  if (this.isGridInsertActive())
428
425
  return hardList;
@@ -432,6 +429,10 @@ export class SnkGrid {
432
429
  }
433
430
  return hardList.concat(this.actionsList);
434
431
  }
432
+ handleEnableContinuousInsert() {
433
+ this._enableContinuousInsert = !this._enableContinuousInsert;
434
+ this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
435
+ }
435
436
  handleFilterConfigUpdated(filterConfig) {
436
437
  if (!filterConfig.length) {
437
438
  this._showSnkFilterBar = false;
@@ -146,7 +146,7 @@ export class SnkPrintSelector {
146
146
  render() {
147
147
  return (h(Host, null, h("ez-popup", Object.assign({ size: 'small', heightMode: 'full', useHeader: false, ref: (ref) => this._ezPopup = ref }, this.getElementID("snk-print-selector")), h("ez-modal-container", { modalTitle: this.getMessage("snkPrintSelector.title.printerSelection"), okButtonLabel: this.getMessage("snkPrintSelector.button.print"), okButtonStatus: this._selectedPrinter ? ModalButtonStatus.ENABLED : ModalButtonStatus.DISABLED, cancelButtonLabel: this.getMessage("snkPrintSelector.button.cancel"), onEzModalAction: (evt) => this.handleModalAction(evt.detail) }, this._isSingleJob &&
148
148
  h("div", { class: 'ez-flex ez-margin-bottom--large' }, h("div", { class: 'ez-flex ez-margin-right--large' }, h("span", { class: 'ez-text ez-text--bold ez-text--medium ez-padding-right--small' }, this.getMessage("snkPrintSelector.subtitle.document")), h("span", { class: 'ez-text ez-text--primary ez-text--medium' }, this._printJobData.pendingPrinters[0].docTypeDescription)), h("div", { class: 'ez-flex ez-margin-right--large' }, h("span", { class: 'ez-text ez-text--bold ez-text--medium ez-padding-right--small' }, this.getMessage("snkPrintSelector.subtitle.jobs")), h("span", { class: 'ez-text ez-text--primary ez-text--medium' }, this._printJobData.pendingPrinters[0].printJobCount))), h("ez-tabselector", { tabs: this.buildIdTabSelector(), onEzChange: (evt) => this.onChangeTab(evt), selectedTab: this._printServerActive ? this.REMOTE_PRINTERS_TAB : this.LOCAL_PRINTERS_TAB }), h("ez-view-stack", { ref: (ref) => this._viewStack = ref }, h("stack-item", { hidePolicy: 'hide' }, this._printServerActive &&
149
- h("div", { class: `list-scroll ez-size-height--full ${this._isSingleJob ? 'with-header' : 'without-header'}` }, h("ez-list", { ref: (ref) => this._remotePrintersList = ref, class: `ez-padding-top--medium ${this._hasRemotePrinters ? '' : 'hidden'}`, dataSource: this._remotePrintersDataSource, onEzSelectItem: (evt) => this.onSelectPrinter(evt.detail, false), itemLeftSlotBuilder: this.buildPrinterIcon, useGroups: true, ezSelectable: true, hoverFeedback: true, "data-element-id": 'remotePrintersList' }), !this._hasRemotePrinters && this.renderNoPrinters())), h("stack-item", { hidePolicy: 'hide' }, h("div", { class: `list-scroll ez-size-height--full ${this._isSingleJob ? 'with-header' : 'without-header'}` }, h("ez-list", { ref: (ref) => this._localPrintersList = ref, class: `ez-padding-top--medium ${this._hasLocalPrinters ? '' : 'hidden'}`, dataSource: this._localPrintersDataSource, onEzSelectItem: (evt) => this.onSelectPrinter(evt.detail, true), itemLeftSlotBuilder: this.buildPrinterIcon, ezSelectable: true, hoverFeedback: true }), !this._hasLocalPrinters && this.renderNoPrinters()))), h("ez-check", { label: this.getMessage("snkPrintSelector.message.savePrinter"), onEzChange: evt => this._saveSubstitute = evt.detail, compact: true })))));
149
+ h("div", { class: `list-scroll ez-size-height--full ${this._isSingleJob ? 'with-header' : 'without-header'}` }, h("ez-list", { ref: (ref) => this._remotePrintersList = ref, class: `ez-padding-top--medium ${this._hasRemotePrinters ? '' : 'hidden'}`, dataSource: this._remotePrintersDataSource, onEzSelectItem: (evt) => this.onSelectPrinter(evt.detail, false), itemLeftSlotBuilder: this.buildPrinterIcon, useGroups: true, ezSelectable: true, hoverFeedback: true, "data-element-id": 'remotePrintersList' }), !this._hasRemotePrinters && this.renderNoPrinters())), h("stack-item", { hidePolicy: 'hide' }, h("div", { class: `list-scroll ez-size-height--full ${this._isSingleJob ? 'with-header' : 'without-header'}` }, h("ez-list", { ref: (ref) => this._localPrintersList = ref, class: `ez-padding-top--medium ${this._hasLocalPrinters ? '' : 'hidden'}`, dataSource: this._localPrintersDataSource, onEzSelectItem: (evt) => this.onSelectPrinter(evt.detail, true), itemLeftSlotBuilder: this.buildPrinterIcon, ezSelectable: true, hoverFeedback: true }), !this._hasLocalPrinters && this.renderNoPrinters()))), h("ez-check", { label: this.getMessage("snkPrintSelector.message.savePrinter"), onEzChange: evt => this._saveSubstitute = evt.detail })))));
150
150
  }
151
151
  static get is() { return "snk-print-selector"; }
152
152
  static get encapsulation() { return "scoped"; }
@@ -23,9 +23,9 @@ export class SnkSimpleCrud {
23
23
  this._customEditors = new Map();
24
24
  this._customRenders = new Map();
25
25
  this._taskbarProcessor = new TaskbarProcessor({
26
- "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [TaskbarElement.GRID_MODE]),
26
+ "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, [TaskbarElement.GRID_MODE], true),
27
27
  "snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]),
28
- "snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [TaskbarElement.GRID_MODE]),
28
+ "snkSimpleCrudTaskbar.form_selected": this.getButtons(true, [TaskbarElement.GRID_MODE], true),
29
29
  "snkSimpleCrudTaskbar.grid_selected": this.getButtons(true, [TaskbarElement.DATA_EXPORTER, TaskbarElement.FORM_MODE]),
30
30
  "snkSimpleCrudTaskbar.finish_edition": this.getFinishEditionButtonsCallback.bind(this)
31
31
  });
@@ -125,8 +125,12 @@ export class SnkSimpleCrud {
125
125
  }
126
126
  return btns;
127
127
  }
128
- getButtons(selected, extraButtons) {
129
- return this.addConfigButton(this.resolveInMemoryBtns(selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS)
128
+ getButtons(selected, extraButtons, removeRefresh) {
129
+ let btnList = selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS;
130
+ if (removeRefresh) {
131
+ btnList = btnList.filter(item => item !== TaskbarElement.REFRESH);
132
+ }
133
+ return this.addConfigButton(this.resolveInMemoryBtns(btnList)
130
134
  .concat(extraButtons));
131
135
  }
132
136
  addConfigButton(buttons) {
@@ -582,10 +586,7 @@ export class SnkSimpleCrud {
582
586
  : this.getFieldSearch(actionButton, item)
583
587
  }];
584
588
  if (this.enableGridInsert) {
585
- hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, () => {
586
- this._enableContinuousInsert = !this._enableContinuousInsert;
587
- this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
588
- }));
589
+ hardList.push(this._continuousInsertUtils.actionContinuousInsert(this._enableContinuousInsert, this.handleEnableContinuousInsert));
589
590
  }
590
591
  if (this.isGridInsertActive())
591
592
  return hardList;
@@ -597,6 +598,10 @@ export class SnkSimpleCrud {
597
598
  return hardList.concat(this.actionsList);
598
599
  return hardList;
599
600
  }
601
+ handleEnableContinuousInsert() {
602
+ this._enableContinuousInsert = !this._enableContinuousInsert;
603
+ this._continuousInsertUtils.handleSaveConfig(this._enableContinuousInsert);
604
+ }
600
605
  getTopTaskBarId() {
601
606
  var _a;
602
607
  return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? `snkGridTopTaskbar.finish_edition${PresentationMode.PRIMARY}` :
@@ -726,7 +731,7 @@ export class SnkSimpleCrud {
726
731
  return;
727
732
  }
728
733
  const taskbarContent = (h("snk-taskbar", { class: this._currentViewMode === VIEW_MODE.FORM && "ez-box ez-box--shadow ez-padding--small", 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, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, "data-exporter-store-key": this.getDataExporterStoreKey(), slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })));
729
- return (h("snk-data-unit", { ref: ref => this._snkDataUnit = ref, class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode: this.handleDataUnitOnInsertionMode.bind(this), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID && !this.enableGridInsert, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail, onDataUnitFieldsHidded: this.updateFormConfig.bind(this), domainMessagesBuilder: this.domainMessagesBuilder }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, this._currentViewMode === VIEW_MODE.FORM && taskbarContent, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
734
+ return (h("snk-data-unit", { ref: ref => this._snkDataUnit = ref, class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), pageSize: this.getPageSize(), onInsertionMode: this.handleDataUnitOnInsertionMode.bind(this), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail, onDataUnitFieldsHidded: this.updateFormConfig.bind(this), domainMessagesBuilder: this.domainMessagesBuilder }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, this._currentViewMode === VIEW_MODE.FORM && taskbarContent, h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), onConfigChange: evt => this.gridConfigChangeHandler(evt), columnfilterDataSource: this.dataUnit.name && this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
730
735
  ? undefined
731
736
  : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert, enableContinuousInsert: this._enableContinuousInsert }, this._currentViewMode === VIEW_MODE.GRID && taskbarContent, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { ref: (ref) => this._form = ref, class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: this.getFormConfig(), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.goToView(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showConfiguratorButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this.resolveResourceID(), customContainerId: this._customContainerId })), h("div", { id: `${this._customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }))), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, 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), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resolveResourceID() }))));
732
737
  }
@@ -24,7 +24,7 @@ export class ContinuousInsertUtils {
24
24
  label: enableContinuousInsert ? 'Desativar inclusão contínua' : 'Ativar inclusão contínua',
25
25
  enabled: true,
26
26
  itemBuilder: () => {
27
- return (h("div", { class: "ez-dropdown__item-wrapper", onClick: handleEnableContinuousInsert }, h("span", { class: "ez-dropdown__item-label" }, enableContinuousInsert ? 'Desativar inclusão contínua' : 'Ativar inclusão contínua')));
27
+ return (h("div", { class: "ez-dropdown__item-wrapper", onClick: () => handleEnableContinuousInsert() }, h("span", { class: "ez-dropdown__item-label" }, enableContinuousInsert ? 'Desativar inclusão contínua' : 'Ativar inclusão contínua')));
28
28
  },
29
29
  };
30
30
  }
@@ -323,7 +323,7 @@ class ContinuousInsertUtils {
323
323
  label: enableContinuousInsert ? 'Desativar inclusão contínua' : 'Ativar inclusão contínua',
324
324
  enabled: true,
325
325
  itemBuilder: () => {
326
- return (h("div", { class: "ez-dropdown__item-wrapper", onClick: handleEnableContinuousInsert },
326
+ return (h("div", { class: "ez-dropdown__item-wrapper", onClick: () => handleEnableContinuousInsert() },
327
327
  h("span", { class: "ez-dropdown__item-label" }, enableContinuousInsert ? 'Desativar inclusão contínua' : 'Ativar inclusão contínua')));
328
328
  },
329
329
  };
@@ -847,7 +847,7 @@ const SnkAttach = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
847
847
  var _a, _b;
848
848
  if (!this._currentDataUnit)
849
849
  return null;
850
- return (h("main", { class: "snk-attach__main" }, h("header", { class: "snk-attach__header" }, h("snk-simple-bar", { onExit: this.handleBack, messagesBuilder: this.messagesBuilder }, h("div", { slot: "rightSlot" }, h("ez-button", { class: "ez-button--primary", label: this.getMessage("snkAttach.finish"), onClick: this.handleFinish })))), h("div", { class: "snk-attach__crud-section ez-size-height--full ez-size-width--full ez-flex ez-flex--column" }, h("div", { class: "ez-box__container" }, h("snk-simple-crud", { ref: (el) => this._crudElement = el, dataUnit: this._currentDataUnit, taskbarManager: buildTaskBarManager(), gridConfig: (_a = this.crudConfig) === null || _a === void 0 ? void 0 : _a.grid, formConfig: (_b = this.crudConfig) === null || _b === void 0 ? void 0 : _b.form, useCancelConfirm: false, onActionClick: this.handleTaskbarClick, messagesBuilder: this.messagesBuilder, onDataStateChange: this.handleOnDataStateChange.bind(this) }, h("div", { slot: "snkSimpleCrudHeader" }, h("div", { class: "ez-flex ez-flex--column" }, h("span", { class: "ez-title--primary ez-text ez-text--large ez-text--bold ez-padding-bottom--medium" }, this.getMessage("snkAttach.title")), h("span", { class: "ez-text ez-text--medium ez-text--secondary" }, this.getMessage("snkAttach.description")))))))));
850
+ return (h("main", { class: "snk-attach__main" }, h("header", { class: "snk-attach__header" }, h("snk-simple-bar", { onExit: this.handleBack, messagesBuilder: this.messagesBuilder }, h("div", { slot: "rightSlot" }, h("ez-button", { class: "ez-button--primary", label: this.getMessage("snkAttach.finish"), onClick: this.handleFinish })))), h("div", { class: "snk-attach__crud-section ez-size-height--full ez-size-width--full ez-flex ez-flex--column" }, h("div", { class: "ez-box__container" }, h("snk-simple-crud", { ref: (el) => this._crudElement = el, dataUnit: this._currentDataUnit, taskbarManager: buildTaskBarManager(), gridConfig: (_a = this.crudConfig) === null || _a === void 0 ? void 0 : _a.grid, formConfig: (_b = this.crudConfig) === null || _b === void 0 ? void 0 : _b.form, useCancelConfirm: false, onActionClick: this.handleTaskbarClick, messagesBuilder: this.messagesBuilder, onDataStateChange: this.handleOnDataStateChange.bind(this) }, h("div", { slot: "snkSimpleCrudHeader" }, h("div", { class: "ez-flex ez-flex--column" }, h("span", { class: "ez-title--primary ez-text ez-text--large ez-text--bold ez-padding-bottom--medium" }, this.getMessage("snkAttach.title")), h("span", { class: "ez-text ez-text--medium ez-text--secondary ez-padding-bottom--medium" }, this.getMessage("snkAttach.description")))))))));
851
851
  }
852
852
  static get watchers() { return {
853
853
  "registerKey": ["registerKeyWatcher"]
@@ -82,6 +82,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
82
82
  this.autoFocus = true;
83
83
  this.enableGridInsert = false;
84
84
  this.domainMessagesBuilder = undefined;
85
+ this.ignoreReadOnlyFormFields = undefined;
85
86
  this.setCustomFormTitle = undefined;
86
87
  this.customContainerId = `SNK-CRUD-CUSTOM-CONTAINER-${StringUtils.generateUUID()}`;
87
88
  }
@@ -422,8 +423,8 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
422
423
  if (this._resourceID == undefined) {
423
424
  return;
424
425
  }
425
- this._snkDataUnit.ignoreSaveMessage = (this._currentViewMode === VIEW_MODE.GRID && !this.enableGridInsert);
426
- return (h(Host, null, 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, filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
426
+ this._snkDataUnit.ignoreSaveMessage = this._currentViewMode === VIEW_MODE.GRID;
427
+ return (h(Host, null, 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, filterBarTitle: this.filterBarTitle, "data-element-id": "crud_grid", configName: this.configName, onGridDoubleClick: () => this.gridToForm(true), taskbarManager: this.taskbarManager, onActionClick: evt => this.executeAction(evt.detail), messagesBuilder: this.messagesBuilder, actionsList: this.actionsList, statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, presentationMode: this.presentationMode, recordsValidator: this.recordsValidator, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, canEdit: this._canEdit, resourceID: this._resourceID, disablePersonalizedFilter: this.disablePersonalizedFilter, gridLegacyConfigName: this.gridLegacyConfigName, filterBarLegacyConfigName: this.filterBarLegacyConfigName, autoLoad: this.autoLoad, autoFocus: this.autoFocus, enableGridInsert: this.enableGridInsert }, h("slot", { name: "GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkGridHeader" }), h("slot", { name: "SnkGridFooter" }), h("slot", { name: "SnkGridTaskBar" }))), h("stack-item", null, h("snk-guides-viewer", { ref: ref => this._guidesViewer = ref, entityPath: this._snkDataUnit.entityName, messagesBuilder: this.messagesBuilder, onExit: () => this.setViewMode(VIEW_MODE.GRID), dataState: this._dataState, dataUnit: this._dataUnit, actionsList: this.actionsList, taskbarManager: this.taskbarManager, configName: this.configName, onActionClick: evt => this.executeAction(evt.detail), presentationMode: this.presentationMode, "data-element-id": "crud_form", canEdit: this._canEdit, recordsValidator: this.recordsValidator, resourceID: this._resourceID, detailTaskbarCustomContainerId: this.customContainerId, formLegacyConfigName: this.formLegacyConfigName, enableGridInsert: this.enableGridInsert, getCustomTitle: this.setCustomFormTitle, ignoreReadOnlyFormFields: this.ignoreReadOnlyFormFields }, h("slot", { name: "GUIDES_VIEWER_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "SnkFormTaskBar" }))), h("stack-item", null, h("snk-attach", { registerKey: this.attachmentRegisterKey, messagesBuilder: this.messagesBuilder, entityName: this._snkDataUnit.entityName, onBack: this.backView.bind(this) })), h("snk-configurator", { ref: (ref) => this._snkConfigurator = ref, viewMode: this._currentViewMode, messagesBuilder: this.messagesBuilder, onConfigSelected: (evt) => this.setViewMode(evt.detail), onOpenConfig: (evt) => this.openConfig(evt.detail), showActionButtons: this.showActionButtons, onSave: evt => this.handleConfiguratorEvent(evt, 'SAVE'), onCancel: evt => this.handleConfiguratorEvent(evt, 'CANCEL'), resourceID: this._resourceID, customContainerId: this.customContainerId })), h("div", { id: `${this.customContainerId}` }, h("slot", { name: "SnkConfigContainerSlot" }), h("slot", { name: "DETAIL_GRID_HEADER_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_GRID_TASKBAR_CUSTOM_ELEMENTS" }), h("slot", { name: "DETAIL_TASKBAR_CUSTOM_ELEMENTS" }))));
427
428
  }
428
429
  get _element() { return this; }
429
430
  static get watchers() { return {
@@ -451,6 +452,7 @@ const SnkCrud$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
451
452
  "autoFocus": [4, "auto-focus"],
452
453
  "enableGridInsert": [4, "enable-grid-insert"],
453
454
  "domainMessagesBuilder": [1, "domain-messages-builder"],
455
+ "ignoreReadOnlyFormFields": [4, "ignore-read-only-form-fields"],
454
456
  "setCustomFormTitle": [16],
455
457
  "_dataUnit": [32],
456
458
  "_dataState": [32],