@sankhyalabs/sankhyablocks 8.15.0-rc.12 → 8.15.0-rc.13

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 (73) hide show
  1. package/dist/cjs/{ConfigStorage-34be11ce.js → ConfigStorage-8d4e9d53.js} +1 -1
  2. package/dist/cjs/{SnkFormConfigManager-531a191c.js → SnkFormConfigManager-33995e92.js} +2 -2
  3. package/dist/cjs/{SnkMultiSelectionListDataSource-5213120b.js → SnkMultiSelectionListDataSource-1438f8f2.js} +1 -1
  4. package/dist/cjs/{auth-fetcher-5161d082.js → auth-fetcher-bb8e9ae4.js} +1 -1
  5. package/dist/cjs/{form-config-fetcher-9f1a13ca.js → form-config-fetcher-d73f4449.js} +12 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  8. package/dist/cjs/snk-actions-button_4.cjs.entry.js +2 -2
  9. package/dist/cjs/snk-application.cjs.entry.js +3 -3
  10. package/dist/cjs/snk-attach.cjs.entry.js +2 -2
  11. package/dist/cjs/snk-crud.cjs.entry.js +2 -2
  12. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  13. package/dist/cjs/snk-filter-bar.cjs.entry.js +2 -2
  14. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -2
  15. package/dist/cjs/snk-form-config.cjs.entry.js +1 -1
  16. package/dist/cjs/snk-form.cjs.entry.js +3 -3
  17. package/dist/cjs/snk-grid.cjs.entry.js +3 -3
  18. package/dist/cjs/{snk-guides-viewer-76b4c346.js → snk-guides-viewer-25721856.js} +2 -2
  19. package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -4
  20. package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -2
  21. package/dist/cjs/snk-simple-crud.cjs.entry.js +54 -42
  22. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +70 -39
  23. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +12 -0
  24. package/dist/components/form-config-fetcher.js +12 -0
  25. package/dist/components/snk-simple-crud2.js +52 -39
  26. package/dist/esm/{ConfigStorage-101a2b4c.js → ConfigStorage-6e241cd7.js} +1 -1
  27. package/dist/esm/{SnkFormConfigManager-02ecf57f.js → SnkFormConfigManager-7a4e678f.js} +2 -2
  28. package/dist/esm/{SnkMultiSelectionListDataSource-7e7eada5.js → SnkMultiSelectionListDataSource-aad5d4ff.js} +1 -1
  29. package/dist/esm/{auth-fetcher-17dc5b5e.js → auth-fetcher-8ec448b0.js} +1 -1
  30. package/dist/esm/{form-config-fetcher-f121f880.js → form-config-fetcher-765b8498.js} +12 -0
  31. package/dist/esm/loader.js +1 -1
  32. package/dist/esm/sankhyablocks.js +1 -1
  33. package/dist/esm/snk-actions-button_4.entry.js +2 -2
  34. package/dist/esm/snk-application.entry.js +3 -3
  35. package/dist/esm/snk-attach.entry.js +2 -2
  36. package/dist/esm/snk-crud.entry.js +2 -2
  37. package/dist/esm/snk-detail-view.entry.js +4 -4
  38. package/dist/esm/snk-filter-bar.entry.js +2 -2
  39. package/dist/esm/snk-filter-modal-item.entry.js +2 -2
  40. package/dist/esm/snk-form-config.entry.js +1 -1
  41. package/dist/esm/snk-form.entry.js +3 -3
  42. package/dist/esm/snk-grid.entry.js +3 -3
  43. package/dist/esm/{snk-guides-viewer-90ca9105.js → snk-guides-viewer-b94752f2.js} +2 -2
  44. package/dist/esm/snk-guides-viewer.entry.js +4 -4
  45. package/dist/esm/snk-personalized-filter.entry.js +2 -2
  46. package/dist/esm/snk-simple-crud.entry.js +54 -42
  47. package/dist/sankhyablocks/p-004c356e.js +26 -0
  48. package/dist/sankhyablocks/{p-5c0b53ce.js → p-0624f62d.js} +1 -1
  49. package/dist/sankhyablocks/{p-d01ceda6.entry.js → p-0bba5c9f.entry.js} +1 -1
  50. package/dist/sankhyablocks/{p-663ff67b.entry.js → p-1048bd26.entry.js} +1 -1
  51. package/dist/sankhyablocks/p-125bb902.js +1 -0
  52. package/dist/sankhyablocks/{p-7ddd95b6.entry.js → p-24ed6ad6.entry.js} +1 -1
  53. package/dist/sankhyablocks/{p-1f3174cb.entry.js → p-2d919e32.entry.js} +1 -1
  54. package/dist/sankhyablocks/{p-1fa5a18c.entry.js → p-400097f2.entry.js} +1 -1
  55. package/dist/sankhyablocks/{p-2897fb8c.js → p-6c9adfca.js} +1 -1
  56. package/dist/sankhyablocks/{p-b41a622a.entry.js → p-85ba3d6b.entry.js} +1 -1
  57. package/dist/sankhyablocks/{p-384fd6ae.js → p-88b29791.js} +1 -1
  58. package/dist/sankhyablocks/{p-ba4871b5.entry.js → p-9e8618ec.entry.js} +1 -1
  59. package/dist/sankhyablocks/{p-e7c1bce4.entry.js → p-a1642e7c.entry.js} +1 -1
  60. package/dist/sankhyablocks/{p-6b28cc74.entry.js → p-ac77949b.entry.js} +1 -1
  61. package/dist/sankhyablocks/{p-2cfe0c2c.entry.js → p-b47c2963.entry.js} +1 -1
  62. package/dist/sankhyablocks/{p-7e05bd83.entry.js → p-bf39bdb8.entry.js} +1 -1
  63. package/dist/sankhyablocks/{p-8111f63f.entry.js → p-d5cb4b5a.entry.js} +1 -1
  64. package/dist/sankhyablocks/p-e8364f8c.entry.js +1 -0
  65. package/dist/sankhyablocks/{p-fad4c2fe.js → p-efeca7ba.js} +1 -1
  66. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  67. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +11 -3
  68. package/dist/types/components.d.ts +8 -0
  69. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +2 -0
  70. package/package.json +1 -1
  71. package/dist/sankhyablocks/p-50783a8b.js +0 -1
  72. package/dist/sankhyablocks/p-a13ccb86.js +0 -26
  73. package/dist/sankhyablocks/p-a83487a0.entry.js +0 -1
@@ -8,16 +8,16 @@ const constants = require('./constants-35ddd366.js');
8
8
  const taskbarElements = require('./taskbar-elements-3ecd1278.js');
9
9
  require('./DataFetcher-99f0f6ed.js');
10
10
  const pesquisaFetcher = require('./pesquisa-fetcher-94f6b316.js');
11
- const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-5213120b.js');
11
+ const SnkMultiSelectionListDataSource = require('./SnkMultiSelectionListDataSource-1438f8f2.js');
12
12
  const index$1 = require('./index-0922807b.js');
13
13
  require('./ISave-e91b70a7.js');
14
14
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
15
15
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
16
16
  require('./filter-item-type.enum-a7ffdaa6.js');
17
- require('./form-config-fetcher-9f1a13ca.js');
17
+ const formConfigFetcher = require('./form-config-fetcher-d73f4449.js');
18
18
  const fieldSearch = require('./field-search-f56aa7d6.js');
19
- const ConfigStorage = require('./ConfigStorage-34be11ce.js');
20
- const SnkFormConfigManager = require('./SnkFormConfigManager-531a191c.js');
19
+ const ConfigStorage = require('./ConfigStorage-8d4e9d53.js');
20
+ const SnkFormConfigManager = require('./SnkFormConfigManager-33995e92.js');
21
21
  require('./index-102ba62d.js');
22
22
  require('./PrintUtils-bcaeb82f.js');
23
23
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
@@ -40,6 +40,7 @@ const SnkSimpleCrud = class {
40
40
  this.configuratorCancel = index.createEvent(this, "configuratorCancel", 7);
41
41
  this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource.SnkMultiSelectionListDataSource();
42
42
  this._keyDownHandler = (event) => this.keyDownListener(event);
43
+ this._formConfigFetcher = new formConfigFetcher.FormConfigFetcher();
43
44
  this._taskbarProcessor = new fieldSearch.TaskbarProcessor({
44
45
  "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, taskbarElements.TaskbarElement.GRID_MODE),
45
46
  "snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, taskbarElements.TaskbarElement.FORM_MODE),
@@ -61,6 +62,7 @@ const SnkSimpleCrud = class {
61
62
  this._formFields = [];
62
63
  this.multipleSelection = undefined;
63
64
  this.useCancelConfirm = true;
65
+ this.resourceID = undefined;
64
66
  this.taskbarManager = undefined;
65
67
  this.messagesBuilder = undefined;
66
68
  this.useEnterLikeTab = false;
@@ -71,6 +73,16 @@ const SnkSimpleCrud = class {
71
73
  this.formLegacyConfigName = undefined;
72
74
  this.ignoreReadOnlyFormFields = false;
73
75
  }
76
+ handleResourceIDChanged(newValue, oldValue) {
77
+ if (core.StringUtils.isEmpty(newValue)) {
78
+ return;
79
+ }
80
+ if (newValue === oldValue) {
81
+ return;
82
+ }
83
+ this.loadFormConfig(true);
84
+ this.loadGridConfig(true);
85
+ }
74
86
  getButtons(selected, changeModeBtn) {
75
87
  return this.addConfigButton(this.resolveInMemoryBtns(selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS)
76
88
  .concat(changeModeBtn));
@@ -123,43 +135,23 @@ const SnkSimpleCrud = class {
123
135
  this.dataStateChange.emit(newValue);
124
136
  }
125
137
  }
126
- async observeFormLegacy() {
127
- await this.handleUpdateFormLegacyConfig();
138
+ async observeFormLegacy(newValue, oldValue) {
139
+ await this.handleUpdateFormLegacyConfig(newValue, oldValue);
128
140
  }
129
- async observeGridLegacy() {
130
- await this.handleUpdateGridLegacyConfig();
141
+ async observeGridLegacy(newValue, oldValue) {
142
+ await this.handleUpdateGridLegacyConfig(newValue, oldValue);
131
143
  }
132
- async handleUpdateGridLegacyConfig() {
133
- if (this.gridLegacyConfigName) {
134
- this.addGridLegacyConfigName();
135
- if (this._gridConfigAlreadyLoaded) {
136
- await this.loadGridConfig(true);
137
- }
144
+ async handleUpdateGridLegacyConfig(newValue, oldValue) {
145
+ if (newValue == undefined || newValue == oldValue) {
146
+ return;
138
147
  }
148
+ await this.loadGridConfig(true);
139
149
  }
140
- async handleUpdateFormLegacyConfig() {
141
- var _a, _b, _c;
142
- if (this.formLegacyConfigName) {
143
- const legacyConfig = await this.fetchFormLegacyConfig();
144
- if (!legacyConfig)
145
- return;
146
- const rawFields = (_c = (_b = (_a = legacyConfig === null || legacyConfig === void 0 ? void 0 : legacyConfig.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
147
- const fields = Array.isArray(rawFields) ? rawFields : [rawFields];
148
- const newConfig = { emptyConfig: false, fields: fields };
149
- this.setFormConfig(newConfig, true);
150
- this._formConfigManager.setConfig(this.formConfig);
150
+ async handleUpdateFormLegacyConfig(newValue, oldValue) {
151
+ if (newValue == undefined || newValue == oldValue) {
152
+ return;
151
153
  }
152
- }
153
- async fetchFormLegacyConfig() {
154
- const payload = {
155
- 'requestBody': {
156
- 'config': {
157
- 'chave': this.formLegacyConfigName,
158
- 'tipo': 'T',
159
- },
160
- },
161
- };
162
- return await this.application.callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
154
+ this.loadFormConfig(true);
163
155
  }
164
156
  openConfig(viewMode) {
165
157
  this._snkConfigurator.close();
@@ -190,12 +182,16 @@ const SnkSimpleCrud = class {
190
182
  }
191
183
  }
192
184
  loadGridConfig(forceUpdate) {
185
+ if (this.configName === undefined) {
186
+ return;
187
+ }
193
188
  if ((this.gridConfig != undefined || this._gridConfigAlreadyLoaded) && !forceUpdate) {
194
189
  return;
195
190
  }
191
+ this.addGridLegacyConfigName();
196
192
  this._gridConfigAlreadyLoaded = true;
197
193
  return new Promise((accept, reject) => {
198
- ConfigStorage.ConfigStorage.loadGridConfig(this.configName, this._resourceID)
194
+ ConfigStorage.ConfigStorage.loadGridConfig(this.configName, this.resolveResourceID())
199
195
  .then(config => {
200
196
  this.setGridConfig(config);
201
197
  accept();
@@ -205,15 +201,27 @@ const SnkSimpleCrud = class {
205
201
  });
206
202
  });
207
203
  }
208
- async loadFormConfig() {
204
+ formConfigIsLoaded() {
205
+ return this.formConfig != undefined || this._formConfigAlreadyLoaded;
206
+ }
207
+ async loadFormConfig(forceLoad = false) {
208
+ if (this.configName === undefined) {
209
+ return;
210
+ }
209
211
  if (this._formConfigManager == undefined) {
210
- this._formConfigManager = new SnkFormConfigManager.SnkFormConfigManager(this.configName, this._resourceID);
212
+ this._formConfigManager = new SnkFormConfigManager.SnkFormConfigManager(this.configName, this.resolveResourceID());
211
213
  this._formConfigManager.setConfig(this.formConfig);
212
214
  }
213
- if (this.formConfig != undefined || this._formConfigAlreadyLoaded) {
215
+ if (this.formConfigIsLoaded() && !forceLoad) {
214
216
  return;
215
217
  }
216
218
  this._formConfigAlreadyLoaded = true;
219
+ let loadedLegacyConfig = await this._formConfigFetcher.fetchLegacyConfigurableForm(this.formLegacyConfigName);
220
+ if (loadedLegacyConfig != undefined) {
221
+ this._formConfigManager.setConfig(loadedLegacyConfig);
222
+ this.setFormConfig(loadedLegacyConfig);
223
+ return;
224
+ }
217
225
  this.setFormConfig(await this._formConfigManager.loadConfig());
218
226
  }
219
227
  async componentWillRender() {
@@ -469,7 +477,7 @@ const SnkSimpleCrud = class {
469
477
  }
470
478
  gridConfigChangeHandler(evt) {
471
479
  const config = evt.detail;
472
- ConfigStorage.ConfigStorage.saveGridConfig(config, this.configName, this._resourceID);
480
+ ConfigStorage.ConfigStorage.saveGridConfig(config, this.configName, this.resolveResourceID());
473
481
  evt.stopPropagation();
474
482
  }
475
483
  modalConfigChangeHandler(evt) {
@@ -500,6 +508,9 @@ const SnkSimpleCrud = class {
500
508
  handleShowFormConfig() {
501
509
  return this._showFormConfig && !this.formLegacyConfigName;
502
510
  }
511
+ resolveResourceID() {
512
+ return core.StringUtils.isEmpty(this.resourceID) ? this._resourceID : this.resourceID;
513
+ }
503
514
  /* istanbul ignore next */
504
515
  render() {
505
516
  var _a, _b, _c;
@@ -508,10 +519,11 @@ const SnkSimpleCrud = class {
508
519
  }
509
520
  return (index.h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(constants.VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === constants.VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, index.h("header", null, index.h("slot", { name: "snkSimpleCrudHeader" })), index.h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, index.h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: index$1.PresentationMode.SECONDARY }, index.h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), index.h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, index.h("stack-item", null, index.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(pesquisaFetcher.InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
510
521
  ? undefined
511
- : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, index.h("div", { slot: "footer" }, index.h("slot", { name: "snkSimpleCrudFooter" })))), index.h("stack-item", null, index.h("ez-form", { class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: (_b = this._formConfigManager) === null || _b === void 0 ? void 0 : _b.getConfig((_c = this.dataState) === null || _c === void 0 ? void 0 : _c.insertionMode, this.dataUnit, this.ignoreReadOnlyFormFields), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && index.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && index.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._resourceID, customContainerId: this._customContainerId })), index.h("div", { id: `${this._customContainerId}` }, index.h("slot", { name: "SnkConfigContainerSlot" }))), index.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index.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._resourceID }))));
522
+ : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, index.h("div", { slot: "footer" }, index.h("slot", { name: "snkSimpleCrudFooter" })))), index.h("stack-item", null, index.h("ez-form", { class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: (_b = this._formConfigManager) === null || _b === void 0 ? void 0 : _b.getConfig((_c = this.dataState) === null || _c === void 0 ? void 0 : _c.insertionMode, this.dataUnit, this.ignoreReadOnlyFormFields), fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this.handleShowFormConfig() && index.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, configManager: this._formConfigManager, onConfigClose: () => this.closeFormConfig() })), this.messagesBuilder && index.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.h("div", { id: `${this._customContainerId}` }, index.h("slot", { name: "SnkConfigContainerSlot" }))), index.h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._showPopUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, index.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() }))));
512
523
  }
513
524
  get _element() { return index.getElement(this); }
514
525
  static get watchers() { return {
526
+ "resourceID": ["handleResourceIDChanged"],
515
527
  "mode": ["onModeChange"],
516
528
  "dataState": ["observeDataState"],
517
529
  "formLegacyConfigName": ["observeFormLegacy"],
@@ -2,7 +2,7 @@ import { ApplicationContext, DataType, ElementIDUtils, FloatingManager, JSUtils,
2
2
  import { h } from '@stencil/core';
3
3
  import { SIMPLE_CRUD_MODE, VIEW_MODE } from '../../lib/utils/constants';
4
4
  import { TaskbarElement } from '../snk-taskbar/elements/taskbar-elements';
5
- import { CrudUtils, PresentationMode } from '../../lib';
5
+ import { CrudUtils, FormConfigFetcher, PresentationMode } from '../../lib';
6
6
  import TaskbarProcessor from '../snk-taskbar/processor/taskbar-processor';
7
7
  import InMemoryLoader from '../../lib/dataUnit/InMemoryLoader';
8
8
  import SnkMultiSelectionListDataSource from '../snk-grid/filtercolumn/SnkMultiSelectionListDataSource';
@@ -14,6 +14,7 @@ export class SnkSimpleCrud {
14
14
  constructor() {
15
15
  this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
16
16
  this._keyDownHandler = (event) => this.keyDownListener(event);
17
+ this._formConfigFetcher = new FormConfigFetcher();
17
18
  this._taskbarProcessor = new TaskbarProcessor({
18
19
  "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, TaskbarElement.GRID_MODE),
19
20
  "snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, TaskbarElement.FORM_MODE),
@@ -35,6 +36,7 @@ export class SnkSimpleCrud {
35
36
  this._formFields = [];
36
37
  this.multipleSelection = undefined;
37
38
  this.useCancelConfirm = true;
39
+ this.resourceID = undefined;
38
40
  this.taskbarManager = undefined;
39
41
  this.messagesBuilder = undefined;
40
42
  this.useEnterLikeTab = false;
@@ -45,6 +47,16 @@ export class SnkSimpleCrud {
45
47
  this.formLegacyConfigName = undefined;
46
48
  this.ignoreReadOnlyFormFields = false;
47
49
  }
50
+ handleResourceIDChanged(newValue, oldValue) {
51
+ if (StringUtils.isEmpty(newValue)) {
52
+ return;
53
+ }
54
+ if (newValue === oldValue) {
55
+ return;
56
+ }
57
+ this.loadFormConfig(true);
58
+ this.loadGridConfig(true);
59
+ }
48
60
  getButtons(selected, changeModeBtn) {
49
61
  return this.addConfigButton(this.resolveInMemoryBtns(selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS)
50
62
  .concat(changeModeBtn));
@@ -97,43 +109,23 @@ export class SnkSimpleCrud {
97
109
  this.dataStateChange.emit(newValue);
98
110
  }
99
111
  }
100
- async observeFormLegacy() {
101
- await this.handleUpdateFormLegacyConfig();
112
+ async observeFormLegacy(newValue, oldValue) {
113
+ await this.handleUpdateFormLegacyConfig(newValue, oldValue);
102
114
  }
103
- async observeGridLegacy() {
104
- await this.handleUpdateGridLegacyConfig();
115
+ async observeGridLegacy(newValue, oldValue) {
116
+ await this.handleUpdateGridLegacyConfig(newValue, oldValue);
105
117
  }
106
- async handleUpdateGridLegacyConfig() {
107
- if (this.gridLegacyConfigName) {
108
- this.addGridLegacyConfigName();
109
- if (this._gridConfigAlreadyLoaded) {
110
- await this.loadGridConfig(true);
111
- }
118
+ async handleUpdateGridLegacyConfig(newValue, oldValue) {
119
+ if (newValue == undefined || newValue == oldValue) {
120
+ return;
112
121
  }
122
+ await this.loadGridConfig(true);
113
123
  }
114
- async handleUpdateFormLegacyConfig() {
115
- var _a, _b, _c;
116
- if (this.formLegacyConfigName) {
117
- const legacyConfig = await this.fetchFormLegacyConfig();
118
- if (!legacyConfig)
119
- return;
120
- const rawFields = (_c = (_b = (_a = legacyConfig === null || legacyConfig === void 0 ? void 0 : legacyConfig.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
121
- const fields = Array.isArray(rawFields) ? rawFields : [rawFields];
122
- const newConfig = { emptyConfig: false, fields: fields };
123
- this.setFormConfig(newConfig, true);
124
- this._formConfigManager.setConfig(this.formConfig);
124
+ async handleUpdateFormLegacyConfig(newValue, oldValue) {
125
+ if (newValue == undefined || newValue == oldValue) {
126
+ return;
125
127
  }
126
- }
127
- async fetchFormLegacyConfig() {
128
- const payload = {
129
- 'requestBody': {
130
- 'config': {
131
- 'chave': this.formLegacyConfigName,
132
- 'tipo': 'T',
133
- },
134
- },
135
- };
136
- return await this.application.callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
128
+ this.loadFormConfig(true);
137
129
  }
138
130
  openConfig(viewMode) {
139
131
  this._snkConfigurator.close();
@@ -164,12 +156,16 @@ export class SnkSimpleCrud {
164
156
  }
165
157
  }
166
158
  loadGridConfig(forceUpdate) {
159
+ if (this.configName === undefined) {
160
+ return;
161
+ }
167
162
  if ((this.gridConfig != undefined || this._gridConfigAlreadyLoaded) && !forceUpdate) {
168
163
  return;
169
164
  }
165
+ this.addGridLegacyConfigName();
170
166
  this._gridConfigAlreadyLoaded = true;
171
167
  return new Promise((accept, reject) => {
172
- ConfigStorage.loadGridConfig(this.configName, this._resourceID)
168
+ ConfigStorage.loadGridConfig(this.configName, this.resolveResourceID())
173
169
  .then(config => {
174
170
  this.setGridConfig(config);
175
171
  accept();
@@ -179,15 +175,27 @@ export class SnkSimpleCrud {
179
175
  });
180
176
  });
181
177
  }
182
- async loadFormConfig() {
178
+ formConfigIsLoaded() {
179
+ return this.formConfig != undefined || this._formConfigAlreadyLoaded;
180
+ }
181
+ async loadFormConfig(forceLoad = false) {
182
+ if (this.configName === undefined) {
183
+ return;
184
+ }
183
185
  if (this._formConfigManager == undefined) {
184
- this._formConfigManager = new SnkFormConfigManager(this.configName, this._resourceID);
186
+ this._formConfigManager = new SnkFormConfigManager(this.configName, this.resolveResourceID());
185
187
  this._formConfigManager.setConfig(this.formConfig);
186
188
  }
187
- if (this.formConfig != undefined || this._formConfigAlreadyLoaded) {
189
+ if (this.formConfigIsLoaded() && !forceLoad) {
188
190
  return;
189
191
  }
190
192
  this._formConfigAlreadyLoaded = true;
193
+ let loadedLegacyConfig = await this._formConfigFetcher.fetchLegacyConfigurableForm(this.formLegacyConfigName);
194
+ if (loadedLegacyConfig != undefined) {
195
+ this._formConfigManager.setConfig(loadedLegacyConfig);
196
+ this.setFormConfig(loadedLegacyConfig);
197
+ return;
198
+ }
191
199
  this.setFormConfig(await this._formConfigManager.loadConfig());
192
200
  }
193
201
  async componentWillRender() {
@@ -443,7 +451,7 @@ export class SnkSimpleCrud {
443
451
  }
444
452
  gridConfigChangeHandler(evt) {
445
453
  const config = evt.detail;
446
- ConfigStorage.saveGridConfig(config, this.configName, this._resourceID);
454
+ ConfigStorage.saveGridConfig(config, this.configName, this.resolveResourceID());
447
455
  evt.stopPropagation();
448
456
  }
449
457
  modalConfigChangeHandler(evt) {
@@ -474,6 +482,9 @@ export class SnkSimpleCrud {
474
482
  handleShowFormConfig() {
475
483
  return this._showFormConfig && !this.formLegacyConfigName;
476
484
  }
485
+ resolveResourceID() {
486
+ return StringUtils.isEmpty(this.resourceID) ? this._resourceID : this.resourceID;
487
+ }
477
488
  /* istanbul ignore next */
478
489
  render() {
479
490
  var _a, _b, _c;
@@ -482,7 +493,7 @@ export class SnkSimpleCrud {
482
493
  }
483
494
  return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), 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)
484
495
  ? undefined
485
- : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: (_b = this._formConfigManager) === null || _b === void 0 ? void 0 : _b.getConfig((_c = this.dataState) === null || _c === void 0 ? void 0 : _c.insertionMode, this.dataUnit, this.ignoreReadOnlyFormFields), 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._resourceID, 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._resourceID }))));
496
+ : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: (_b = this._formConfigManager) === null || _b === void 0 ? void 0 : _b.getConfig((_c = this.dataState) === null || _c === void 0 ? void 0 : _c.insertionMode, this.dataUnit, this.ignoreReadOnlyFormFields), 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() }))));
486
497
  }
487
498
  static get is() { return "snk-simple-crud"; }
488
499
  static get encapsulation() { return "scoped"; }
@@ -636,6 +647,23 @@ export class SnkSimpleCrud {
636
647
  "reflect": false,
637
648
  "defaultValue": "true"
638
649
  },
650
+ "resourceID": {
651
+ "type": "string",
652
+ "mutable": false,
653
+ "complexType": {
654
+ "original": "string",
655
+ "resolved": "string",
656
+ "references": {}
657
+ },
658
+ "required": false,
659
+ "optional": false,
660
+ "docs": {
661
+ "tags": [],
662
+ "text": "Identificador de recursos como configura\u00E7\u00F5es e acesso."
663
+ },
664
+ "attribute": "resource-i-d",
665
+ "reflect": false
666
+ },
639
667
  "taskbarManager": {
640
668
  "type": "unknown",
641
669
  "mutable": false,
@@ -1060,6 +1088,9 @@ export class SnkSimpleCrud {
1060
1088
  static get elementRef() { return "_element"; }
1061
1089
  static get watchers() {
1062
1090
  return [{
1091
+ "propName": "resourceID",
1092
+ "methodName": "handleResourceIDChanged"
1093
+ }, {
1063
1094
  "propName": "mode",
1064
1095
  "methodName": "onModeChange"
1065
1096
  }, {
@@ -168,6 +168,18 @@ export class FormConfigFetcher extends ResourceFetcher {
168
168
  }
169
169
  return `cfg://${authority}/${resourceID}`;
170
170
  }
171
+ async fetchLegacyConfigurableForm(configName) {
172
+ const payload = { 'requestBody': { 'config': { 'chave': configName, 'tipo': 'T' } } };
173
+ const response = await DataFetcher.get().callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
174
+ if (ObjectUtils.isEmpty(response))
175
+ return undefined;
176
+ return this.buildLegacyConfigurableForm(response);
177
+ }
178
+ buildLegacyConfigurableForm(config) {
179
+ var _a, _b, _c;
180
+ const rawFields = (_c = (_b = (_a = config === null || config === void 0 ? void 0 : config.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
181
+ return { emptyConfig: false, fields: Array.isArray(rawFields) ? rawFields : [rawFields] };
182
+ }
171
183
  }
172
184
  export var UserConfigType;
173
185
  (function (UserConfigType) {
@@ -230,6 +230,18 @@ class FormConfigFetcher extends ResourceFetcher {
230
230
  }
231
231
  return `cfg://${authority}/${resourceID}`;
232
232
  }
233
+ async fetchLegacyConfigurableForm(configName) {
234
+ const payload = { 'requestBody': { 'config': { 'chave': configName, 'tipo': 'T' } } };
235
+ const response = await DataFetcher.get().callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
236
+ if (ObjectUtils.isEmpty(response))
237
+ return undefined;
238
+ return this.buildLegacyConfigurableForm(response);
239
+ }
240
+ buildLegacyConfigurableForm(config) {
241
+ var _a, _b, _c;
242
+ const rawFields = (_c = (_b = (_a = config === null || config === void 0 ? void 0 : config.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
243
+ return { emptyConfig: false, fields: Array.isArray(rawFields) ? rawFields : [rawFields] };
244
+ }
233
245
  }
234
246
  var UserConfigType;
235
247
  (function (UserConfigType) {
@@ -10,7 +10,7 @@ import { d as defineCustomElement$d } from './snk-actions-button2.js';
10
10
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
11
11
  import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
12
12
  import './filter-item-type.enum.js';
13
- import './form-config-fetcher.js';
13
+ import { F as FormConfigFetcher } from './form-config-fetcher.js';
14
14
  import { C as ConfigStorage } from './ConfigStorage.js';
15
15
  import { S as SnkFormConfigManager } from './SnkFormConfigManager.js';
16
16
  import { d as defineCustomElement$c } from './snk-config-options2.js';
@@ -42,6 +42,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
42
42
  this.configuratorCancel = createEvent(this, "configuratorCancel", 7);
43
43
  this._multiSelectionListDataSource = new SnkMultiSelectionListDataSource();
44
44
  this._keyDownHandler = (event) => this.keyDownListener(event);
45
+ this._formConfigFetcher = new FormConfigFetcher();
45
46
  this._taskbarProcessor = new TaskbarProcessor({
46
47
  "snkSimpleCrudTaskbar.form_regular": this.getButtons(false, TaskbarElement.GRID_MODE),
47
48
  "snkSimpleCrudTaskbar.grid_regular": this.getButtons(false, TaskbarElement.FORM_MODE),
@@ -63,6 +64,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
63
64
  this._formFields = [];
64
65
  this.multipleSelection = undefined;
65
66
  this.useCancelConfirm = true;
67
+ this.resourceID = undefined;
66
68
  this.taskbarManager = undefined;
67
69
  this.messagesBuilder = undefined;
68
70
  this.useEnterLikeTab = false;
@@ -73,6 +75,16 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
73
75
  this.formLegacyConfigName = undefined;
74
76
  this.ignoreReadOnlyFormFields = false;
75
77
  }
78
+ handleResourceIDChanged(newValue, oldValue) {
79
+ if (StringUtils.isEmpty(newValue)) {
80
+ return;
81
+ }
82
+ if (newValue === oldValue) {
83
+ return;
84
+ }
85
+ this.loadFormConfig(true);
86
+ this.loadGridConfig(true);
87
+ }
76
88
  getButtons(selected, changeModeBtn) {
77
89
  return this.addConfigButton(this.resolveInMemoryBtns(selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS)
78
90
  .concat(changeModeBtn));
@@ -125,43 +137,23 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
125
137
  this.dataStateChange.emit(newValue);
126
138
  }
127
139
  }
128
- async observeFormLegacy() {
129
- await this.handleUpdateFormLegacyConfig();
140
+ async observeFormLegacy(newValue, oldValue) {
141
+ await this.handleUpdateFormLegacyConfig(newValue, oldValue);
130
142
  }
131
- async observeGridLegacy() {
132
- await this.handleUpdateGridLegacyConfig();
143
+ async observeGridLegacy(newValue, oldValue) {
144
+ await this.handleUpdateGridLegacyConfig(newValue, oldValue);
133
145
  }
134
- async handleUpdateGridLegacyConfig() {
135
- if (this.gridLegacyConfigName) {
136
- this.addGridLegacyConfigName();
137
- if (this._gridConfigAlreadyLoaded) {
138
- await this.loadGridConfig(true);
139
- }
146
+ async handleUpdateGridLegacyConfig(newValue, oldValue) {
147
+ if (newValue == undefined || newValue == oldValue) {
148
+ return;
140
149
  }
150
+ await this.loadGridConfig(true);
141
151
  }
142
- async handleUpdateFormLegacyConfig() {
143
- var _a, _b, _c;
144
- if (this.formLegacyConfigName) {
145
- const legacyConfig = await this.fetchFormLegacyConfig();
146
- if (!legacyConfig)
147
- return;
148
- const rawFields = (_c = (_b = (_a = legacyConfig === null || legacyConfig === void 0 ? void 0 : legacyConfig.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
149
- const fields = Array.isArray(rawFields) ? rawFields : [rawFields];
150
- const newConfig = { emptyConfig: false, fields: fields };
151
- this.setFormConfig(newConfig, true);
152
- this._formConfigManager.setConfig(this.formConfig);
152
+ async handleUpdateFormLegacyConfig(newValue, oldValue) {
153
+ if (newValue == undefined || newValue == oldValue) {
154
+ return;
153
155
  }
154
- }
155
- async fetchFormLegacyConfig() {
156
- const payload = {
157
- 'requestBody': {
158
- 'config': {
159
- 'chave': this.formLegacyConfigName,
160
- 'tipo': 'T',
161
- },
162
- },
163
- };
164
- return await this.application.callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
156
+ this.loadFormConfig(true);
165
157
  }
166
158
  openConfig(viewMode) {
167
159
  this._snkConfigurator.close();
@@ -192,12 +184,16 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
192
184
  }
193
185
  }
194
186
  loadGridConfig(forceUpdate) {
187
+ if (this.configName === undefined) {
188
+ return;
189
+ }
195
190
  if ((this.gridConfig != undefined || this._gridConfigAlreadyLoaded) && !forceUpdate) {
196
191
  return;
197
192
  }
193
+ this.addGridLegacyConfigName();
198
194
  this._gridConfigAlreadyLoaded = true;
199
195
  return new Promise((accept, reject) => {
200
- ConfigStorage.loadGridConfig(this.configName, this._resourceID)
196
+ ConfigStorage.loadGridConfig(this.configName, this.resolveResourceID())
201
197
  .then(config => {
202
198
  this.setGridConfig(config);
203
199
  accept();
@@ -207,15 +203,27 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
207
203
  });
208
204
  });
209
205
  }
210
- async loadFormConfig() {
206
+ formConfigIsLoaded() {
207
+ return this.formConfig != undefined || this._formConfigAlreadyLoaded;
208
+ }
209
+ async loadFormConfig(forceLoad = false) {
210
+ if (this.configName === undefined) {
211
+ return;
212
+ }
211
213
  if (this._formConfigManager == undefined) {
212
- this._formConfigManager = new SnkFormConfigManager(this.configName, this._resourceID);
214
+ this._formConfigManager = new SnkFormConfigManager(this.configName, this.resolveResourceID());
213
215
  this._formConfigManager.setConfig(this.formConfig);
214
216
  }
215
- if (this.formConfig != undefined || this._formConfigAlreadyLoaded) {
217
+ if (this.formConfigIsLoaded() && !forceLoad) {
216
218
  return;
217
219
  }
218
220
  this._formConfigAlreadyLoaded = true;
221
+ let loadedLegacyConfig = await this._formConfigFetcher.fetchLegacyConfigurableForm(this.formLegacyConfigName);
222
+ if (loadedLegacyConfig != undefined) {
223
+ this._formConfigManager.setConfig(loadedLegacyConfig);
224
+ this.setFormConfig(loadedLegacyConfig);
225
+ return;
226
+ }
219
227
  this.setFormConfig(await this._formConfigManager.loadConfig());
220
228
  }
221
229
  async componentWillRender() {
@@ -471,7 +479,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
471
479
  }
472
480
  gridConfigChangeHandler(evt) {
473
481
  const config = evt.detail;
474
- ConfigStorage.saveGridConfig(config, this.configName, this._resourceID);
482
+ ConfigStorage.saveGridConfig(config, this.configName, this.resolveResourceID());
475
483
  evt.stopPropagation();
476
484
  }
477
485
  modalConfigChangeHandler(evt) {
@@ -502,6 +510,9 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
502
510
  handleShowFormConfig() {
503
511
  return this._showFormConfig && !this.formLegacyConfigName;
504
512
  }
513
+ resolveResourceID() {
514
+ return StringUtils.isEmpty(this.resourceID) ? this._resourceID : this.resourceID;
515
+ }
505
516
  /* istanbul ignore next */
506
517
  render() {
507
518
  var _a, _b, _c;
@@ -510,10 +521,11 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
510
521
  }
511
522
  return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), 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)
512
523
  ? undefined
513
- : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: (_b = this._formConfigManager) === null || _b === void 0 ? void 0 : _b.getConfig((_c = this.dataState) === null || _c === void 0 ? void 0 : _c.insertionMode, this.dataUnit, this.ignoreReadOnlyFormFields), 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._resourceID, 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._resourceID }))));
524
+ : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { class: `ez-margin-top--large ${this.handleShowFormConfig() ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: (_b = this._formConfigManager) === null || _b === void 0 ? void 0 : _b.getConfig((_c = this.dataState) === null || _c === void 0 ? void 0 : _c.insertionMode, this.dataUnit, this.ignoreReadOnlyFormFields), 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() }))));
514
525
  }
515
526
  get _element() { return this; }
516
527
  static get watchers() { return {
528
+ "resourceID": ["handleResourceIDChanged"],
517
529
  "mode": ["onModeChange"],
518
530
  "dataState": ["observeDataState"],
519
531
  "formLegacyConfigName": ["observeFormLegacy"],
@@ -528,6 +540,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
528
540
  "formConfig": [16],
529
541
  "multipleSelection": [4, "multiple-selection"],
530
542
  "useCancelConfirm": [4, "use-cancel-confirm"],
543
+ "resourceID": [1, "resource-i-d"],
531
544
  "taskbarManager": [16],
532
545
  "messagesBuilder": [1040],
533
546
  "useEnterLikeTab": [4, "use-enter-like-tab"],
@@ -1,4 +1,4 @@
1
- import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-f121f880.js';
1
+ import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-765b8498.js';
2
2
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
3
3
  import { ObjectUtils } from '@sankhyalabs/core';
4
4
  import { d as dist, D as DataFetcher } from './DataFetcher-a650ae58.js';