@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-48570.0 → 0.0.0-bugfix-dev-KB-49747.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 (105) hide show
  1. package/dist/cjs/{ConfigStorage-d4c99a5e.js → ConfigStorage-34be11ce.js} +68 -5
  2. package/dist/cjs/{SnkFormConfigManager-0ffd098d.js → SnkFormConfigManager-6211fb28.js} +6 -1
  3. package/dist/cjs/{SnkMultiSelectionListDataSource-5213120b.js → SnkMultiSelectionListDataSource-cae896f4.js} +1 -1
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{pesquisa-fetcher-94f6b316.js → pesquisa-fetcher-16e4be85.js} +1 -1
  6. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  7. package/dist/cjs/snk-actions-button_4.cjs.entry.js +2 -2
  8. package/dist/cjs/snk-application.cjs.entry.js +9 -3
  9. package/dist/cjs/snk-attach.cjs.entry.js +1 -1
  10. package/dist/cjs/snk-crud.cjs.entry.js +5 -2
  11. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -4
  12. package/dist/cjs/snk-filter-bar.cjs.entry.js +8 -1
  13. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +1 -1
  14. package/dist/cjs/snk-form.cjs.entry.js +9 -2
  15. package/dist/cjs/snk-grid.cjs.entry.js +13 -4
  16. package/dist/cjs/{snk-guides-viewer-75047f22.js → snk-guides-viewer-09ef0a84.js} +9 -2
  17. package/dist/cjs/snk-guides-viewer.cjs.entry.js +4 -4
  18. package/dist/cjs/snk-personalized-filter.cjs.entry.js +1 -1
  19. package/dist/cjs/snk-simple-crud.cjs.entry.js +70 -13
  20. package/dist/cjs/snk-taskbar.cjs.entry.js +6 -1
  21. package/dist/collection/components/snk-application/snk-application.js +42 -2
  22. package/dist/collection/components/snk-crud/snk-crud.js +55 -1
  23. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +24 -0
  24. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +24 -0
  25. package/dist/collection/components/snk-form/snk-form.js +24 -0
  26. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +6 -1
  27. package/dist/collection/components/snk-grid/snk-grid.js +44 -1
  28. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +103 -8
  29. package/dist/collection/components/snk-taskbar/snk-taskbar.js +7 -0
  30. package/dist/collection/lib/configs/ConfigStorage.js +63 -3
  31. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +6 -3
  32. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +1 -1
  33. package/dist/components/ConfigStorage.js +68 -5
  34. package/dist/components/SnkFormConfigManager.js +5 -0
  35. package/dist/components/dataunit-fetcher.js +1 -1
  36. package/dist/components/snk-application2.js +9 -1
  37. package/dist/components/snk-crud.js +7 -1
  38. package/dist/components/snk-detail-view2.js +8 -0
  39. package/dist/components/snk-filter-bar2.js +8 -0
  40. package/dist/components/snk-form.js +8 -0
  41. package/dist/components/snk-grid2.js +12 -1
  42. package/dist/components/snk-simple-crud2.js +68 -9
  43. package/dist/components/snk-taskbar2.js +6 -1
  44. package/dist/esm/{ConfigStorage-39ed8aeb.js → ConfigStorage-101a2b4c.js} +68 -5
  45. package/dist/esm/{SnkFormConfigManager-dd450734.js → SnkFormConfigManager-d86ba46f.js} +6 -1
  46. package/dist/esm/{SnkMultiSelectionListDataSource-7e7eada5.js → SnkMultiSelectionListDataSource-79774916.js} +1 -1
  47. package/dist/esm/loader.js +1 -1
  48. package/dist/esm/{pesquisa-fetcher-f05a12ca.js → pesquisa-fetcher-74b97d1c.js} +1 -1
  49. package/dist/esm/sankhyablocks.js +1 -1
  50. package/dist/esm/snk-actions-button_4.entry.js +2 -2
  51. package/dist/esm/snk-application.entry.js +9 -3
  52. package/dist/esm/snk-attach.entry.js +1 -1
  53. package/dist/esm/snk-crud.entry.js +5 -2
  54. package/dist/esm/snk-detail-view.entry.js +4 -4
  55. package/dist/esm/snk-filter-bar.entry.js +8 -1
  56. package/dist/esm/snk-filter-modal-item.entry.js +1 -1
  57. package/dist/esm/snk-form.entry.js +9 -2
  58. package/dist/esm/snk-grid.entry.js +13 -4
  59. package/dist/esm/{snk-guides-viewer-8b679ee6.js → snk-guides-viewer-b8147267.js} +9 -2
  60. package/dist/esm/snk-guides-viewer.entry.js +4 -4
  61. package/dist/esm/snk-personalized-filter.entry.js +1 -1
  62. package/dist/esm/snk-simple-crud.entry.js +70 -13
  63. package/dist/esm/snk-taskbar.entry.js +6 -1
  64. package/dist/sankhyablocks/{p-ba4871b5.entry.js → p-1ba55dd0.entry.js} +1 -1
  65. package/dist/sankhyablocks/p-1f3174cb.entry.js +1 -0
  66. package/dist/sankhyablocks/{p-2897fb8c.js → p-1fca250b.js} +1 -1
  67. package/dist/sankhyablocks/{p-9fb97691.entry.js → p-324842c9.entry.js} +1 -1
  68. package/dist/sankhyablocks/p-360fc431.entry.js +1 -0
  69. package/dist/sankhyablocks/p-4b7ecfa7.entry.js +11 -0
  70. package/dist/sankhyablocks/p-5c0b53ce.js +56 -0
  71. package/dist/sankhyablocks/p-60fa6c7a.js +1 -0
  72. package/dist/sankhyablocks/p-64c1b368.entry.js +1 -0
  73. package/dist/sankhyablocks/p-6ae25c2c.js +1 -0
  74. package/dist/sankhyablocks/{p-9d608b62.entry.js → p-6b28cc74.entry.js} +1 -1
  75. package/dist/sankhyablocks/{p-827e4b01.entry.js → p-7ddd95b6.entry.js} +1 -1
  76. package/dist/sankhyablocks/{p-d78d4062.js → p-8eb454fc.js} +3 -3
  77. package/dist/sankhyablocks/p-9baa835f.entry.js +1 -0
  78. package/dist/sankhyablocks/{p-d0bc5ef3.entry.js → p-a9c8085c.entry.js} +1 -1
  79. package/dist/sankhyablocks/p-d304659d.entry.js +1 -0
  80. package/dist/sankhyablocks/p-eaac4cf1.entry.js +1 -0
  81. package/dist/sankhyablocks/{p-a1c630fb.entry.js → p-eb34f712.entry.js} +1 -1
  82. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  83. package/dist/types/components/snk-application/snk-application.d.ts +8 -0
  84. package/dist/types/components/snk-crud/snk-crud.d.ts +12 -0
  85. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +5 -0
  86. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +5 -0
  87. package/dist/types/components/snk-form/snk-form.d.ts +5 -0
  88. package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +1 -0
  89. package/dist/types/components/snk-grid/snk-grid.d.ts +9 -0
  90. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +15 -0
  91. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +1 -0
  92. package/dist/types/components.d.ts +96 -0
  93. package/dist/types/lib/configs/ConfigStorage.d.ts +21 -1
  94. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
  95. package/package.json +1 -1
  96. package/dist/sankhyablocks/p-230f5148.entry.js +0 -1
  97. package/dist/sankhyablocks/p-3e2e2424.entry.js +0 -1
  98. package/dist/sankhyablocks/p-4b0c5921.entry.js +0 -1
  99. package/dist/sankhyablocks/p-5eaecd30.entry.js +0 -1
  100. package/dist/sankhyablocks/p-61da4a55.entry.js +0 -1
  101. package/dist/sankhyablocks/p-67aedbe0.js +0 -56
  102. package/dist/sankhyablocks/p-746fc99e.entry.js +0 -1
  103. package/dist/sankhyablocks/p-8a00836e.js +0 -1
  104. package/dist/sankhyablocks/p-9ea14b61.js +0 -1
  105. package/dist/sankhyablocks/p-c4bcdd4b.entry.js +0 -11
@@ -11,6 +11,7 @@ export class SnkForm {
11
11
  this.configName = undefined;
12
12
  this.recordsValidator = undefined;
13
13
  this.messagesBuilder = undefined;
14
+ this.formLegacyConfigName = undefined;
14
15
  this.resourceID = undefined;
15
16
  }
16
17
  /**
@@ -58,8 +59,14 @@ export class SnkForm {
58
59
  this.resourceID = await ResourceIDUtils.getResourceID();
59
60
  }
60
61
  this._configManager = new SnkFormConfigManager(this.configName, this.resourceID);
62
+ this.addFormLegacyConfig();
61
63
  this._configManager.loadConfig();
62
64
  }
65
+ addFormLegacyConfig() {
66
+ if (this.formLegacyConfigName) {
67
+ this._configManager.addFormLegacyConfig(this.formLegacyConfigName);
68
+ }
69
+ }
63
70
  render() {
64
71
  if (!this._dataUnit || !this._dataState) {
65
72
  return undefined;
@@ -138,6 +145,23 @@ export class SnkForm {
138
145
  "text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
139
146
  }
140
147
  },
148
+ "formLegacyConfigName": {
149
+ "type": "string",
150
+ "mutable": false,
151
+ "complexType": {
152
+ "original": "string",
153
+ "resolved": "string",
154
+ "references": {}
155
+ },
156
+ "required": false,
157
+ "optional": false,
158
+ "docs": {
159
+ "tags": [],
160
+ "text": "Chave da configura\u00E7\u00E3o legado do formul\u00E1rio."
161
+ },
162
+ "attribute": "form-legacy-config-name",
163
+ "reflect": false
164
+ },
141
165
  "resourceID": {
142
166
  "type": "string",
143
167
  "mutable": false,
@@ -1,4 +1,4 @@
1
- import { ConfigStorage } from "../../lib/configs/ConfigStorage";
1
+ import { ConfigStorage } from '../../lib/configs/ConfigStorage';
2
2
  import { ObjectUtils, StringUtils } from "@sankhyalabs/core";
3
3
  import { FormConfigFetcher } from "../../lib/http/data-fetcher/fetchers/form-config-fetcher";
4
4
  export class SnkFormConfigManager {
@@ -7,6 +7,11 @@ export class SnkFormConfigManager {
7
7
  this._configName = configName;
8
8
  this._onConfigChange = onConfigChange;
9
9
  }
10
+ addFormLegacyConfig(legacyConfigName) {
11
+ if (this._configName) {
12
+ ConfigStorage.addFormLegacyConfig(this._configName, legacyConfigName);
13
+ }
14
+ }
10
15
  async loadConfig() {
11
16
  return new Promise(resolve => {
12
17
  ConfigStorage.loadFormConfig(this._configName, this._resourceID)
@@ -55,6 +55,8 @@ export class SnkGrid {
55
55
  this.gridHeaderCustomSlotId = 'GRID_HEADER_CUSTOM_ELEMENTS';
56
56
  this.topTaskbarCustomSlotId = 'GRID_TASKBAR_CUSTOM_ELEMENTS';
57
57
  this.disablePersonalizedFilter = undefined;
58
+ this.gridLegacyConfigName = undefined;
59
+ this.filterBarLegacyConfigName = undefined;
58
60
  }
59
61
  /**
60
62
  * Exibe a janela de configurações da grade.
@@ -123,6 +125,11 @@ export class SnkGrid {
123
125
  console.warn(error);
124
126
  });
125
127
  }
128
+ addGridLegacyConfigName() {
129
+ if (this.gridLegacyConfigName && this.configName) {
130
+ ConfigStorage.addGridLegacyConfig(this.configName, this.gridLegacyConfigName);
131
+ }
132
+ }
126
133
  gridConfigChangeHandler(evt) {
127
134
  const config = evt.detail;
128
135
  ConfigStorage.saveGridConfig(config, this.configName, this.resourceID);
@@ -247,6 +254,7 @@ export class SnkGrid {
247
254
  }
248
255
  componentWillLoad() {
249
256
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
257
+ //TODO: substituir pelo metodo nativo closest
250
258
  let parent = this._element.parentElement;
251
259
  while (parent) {
252
260
  if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
@@ -276,6 +284,7 @@ export class SnkGrid {
276
284
  }
277
285
  parent = parent.parentElement;
278
286
  }
287
+ this.addGridLegacyConfigName();
279
288
  this.loadConfig();
280
289
  }
281
290
  getHeaderDisabledButtons() {
@@ -390,7 +399,7 @@ export class SnkGrid {
390
399
  return undefined;
391
400
  }
392
401
  return (h("div", { class: "snk-grid__container ez-flex ez-flex--column ez-flex-item--auto ez-padding--large" }, h("div", { class: "snk-grid__header ez-margin-bottom--medium" }, this._showSnkFilterBar &&
393
- h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, title: this.filterBarTitle, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail), disablePersonalizedFilter: this.disablePersonalizedFilter }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId, overflowStrategy: 'none' }, h("slot", { name: this.topTaskbarCustomSlotId }))), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { id: 'teste', dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, h("slot", { name: this.gridHeaderCustomSlotId }))), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
402
+ h(Fragment, null, h("snk-filter-bar", { ref: (ref) => this._snkFilterBar = ref, title: this.filterBarTitle, dataUnit: this._dataUnit, "data-element-id": "gridFilter", class: "snk-grid__filter-bar ez-align--top", configName: this.configName, messagesBuilder: this.messagesBuilder, resourceID: this.resourceID, onConfigUpdated: evt => this.handleFilterConfigUpdated(evt.detail), disablePersonalizedFilter: this.disablePersonalizedFilter, filterBarLegacyConfigName: this.filterBarLegacyConfigName }), h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-left--medium snk-grid__header-divider" })), h("snk-taskbar", { class: "ez-padding-left--medium", "data-element-id": "grid_top", key: "topTaskbar", configName: this.configName, dataUnit: this._dataUnit, messagesBuilder: this.messagesBuilder, buttons: this._topTaskbarProcessor.buttons, disabledButtons: this._topTaskbarProcessor.disabledButtons, customButtons: this._topTaskbarProcessor.customButtons, primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.topTaskbarCustomSlotId, overflowStrategy: 'none' }, h("slot", { name: this.topTaskbarCustomSlotId }))), h("ez-grid", { ref: ref => this._grid = ref, class: (this.presentationMode === PresentationMode.SECONDARY ? "snk-grid-container__without-shadow " : "") + "snk-grid__table", "data-element-id": "embedded", dataUnit: this._dataUnit, key: "grid-" + this._snkDataUnit.entityName, config: this._gridConfig, onConfigChange: (evt) => { this.gridConfigChangeHandler(evt); }, onEzDoubleClick: (evt) => this.gridDoubleClick.emit(evt.detail), statusResolver: this.statusResolver, multipleSelection: this.multipleSelection, columnfilterDataSource: this.columnFilterDataSource, selectionToastConfig: this.selectionToastConfig, useEnterLikeTab: this.useEnterLikeTab, recordsValidator: this.recordsValidator, canEdit: this.canEdit }, h("snk-taskbar", { id: 'teste', dataUnit: this._dataUnit, configName: this.configName, messagesBuilder: this.messagesBuilder, "data-element-id": "grid_left", buttons: this._headerTaskbarProcessor.buttons, presentationMode: this.presentationMode, disabledButtons: this._headerTaskbarProcessor.disabledButtons, customButtons: this._headerTaskbarProcessor.customButtons, slot: "leftButtons", actionsList: this.getActionsList(), primaryButton: this.getPrimaryButton(), resourceID: this.resourceID, customContainerId: this.taskbarCustomContainerId, customSlotId: this.gridHeaderCustomSlotId }, h("slot", { name: this.gridHeaderCustomSlotId }))), h("div", { class: "ez-col ez-col--sd-12" }, h("slot", { name: "SnkGridFooter" })), h("ez-modal", { modalSize: "small", closeEsc: false, closeOutsideClick: false, opened: this._popUpGridConfig, onEzCloseModal: () => this.closeGridConfig() }, h("snk-grid-config", { ref: ref => this._snkGridConfig = ref, config: this._gridConfig, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), selectedIndex: 0, configName: this.configName, onConfigChange: (evt) => this.modalConfigChangeHandler(evt), onConfigCancel: () => this.closeGridConfig(), resourceID: this.resourceID }))));
394
403
  }
395
404
  static get is() { return "snk-grid"; }
396
405
  static get encapsulation() { return "scoped"; }
@@ -767,6 +776,40 @@ export class SnkGrid {
767
776
  },
768
777
  "attribute": "disable-personalized-filter",
769
778
  "reflect": false
779
+ },
780
+ "gridLegacyConfigName": {
781
+ "type": "string",
782
+ "mutable": false,
783
+ "complexType": {
784
+ "original": "string",
785
+ "resolved": "string",
786
+ "references": {}
787
+ },
788
+ "required": false,
789
+ "optional": false,
790
+ "docs": {
791
+ "tags": [],
792
+ "text": "Chave da configura\u00E7\u00E3o legado da grade."
793
+ },
794
+ "attribute": "grid-legacy-config-name",
795
+ "reflect": false
796
+ },
797
+ "filterBarLegacyConfigName": {
798
+ "type": "string",
799
+ "mutable": false,
800
+ "complexType": {
801
+ "original": "string",
802
+ "resolved": "string",
803
+ "references": {}
804
+ },
805
+ "required": false,
806
+ "optional": false,
807
+ "docs": {
808
+ "tags": [],
809
+ "text": "Chave da configura\u00E7\u00E3o legado da barra de filtros."
810
+ },
811
+ "attribute": "filter-bar-legacy-config-name",
812
+ "reflect": false
770
813
  }
771
814
  };
772
815
  }
@@ -41,6 +41,8 @@ export class SnkSimpleCrud {
41
41
  this.actionsList = undefined;
42
42
  this.configName = undefined;
43
43
  this.showConfiguratorButtons = undefined;
44
+ this.gridLegacyConfigName = undefined;
45
+ this.formLegacyConfigName = undefined;
44
46
  }
45
47
  getButtons(selected, changeModeBtn) {
46
48
  return this.addConfigButton(this.resolveInMemoryBtns(selected ? REGULAR_SELECTED_BTNS : REGULAR_DEFAULT_BTNS)
@@ -94,6 +96,44 @@ export class SnkSimpleCrud {
94
96
  this.dataStateChange.emit(newValue);
95
97
  }
96
98
  }
99
+ async observeFormLegacy() {
100
+ await this.handleUpdateFormLegacyConfig();
101
+ }
102
+ async observeGridLegacy() {
103
+ await this.handleUpdateGridLegacyConfig();
104
+ }
105
+ async handleUpdateGridLegacyConfig() {
106
+ if (this.gridLegacyConfigName) {
107
+ this.addGridLegacyConfigName();
108
+ if (this._gridConfigAlreadyLoaded) {
109
+ await this.loadGridConfig(true);
110
+ }
111
+ }
112
+ }
113
+ async handleUpdateFormLegacyConfig() {
114
+ var _a, _b, _c;
115
+ if (this.formLegacyConfigName) {
116
+ const legacyConfig = await this.fetchFormLegacyConfig();
117
+ if (!legacyConfig)
118
+ return;
119
+ 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 : [];
120
+ const fields = Array.isArray(rawFields) ? rawFields : [rawFields];
121
+ const newConfig = { emptyConfig: false, fields: fields };
122
+ this.setFormConfig(newConfig, true);
123
+ this._formConfigManager.setConfig(this.formConfig);
124
+ }
125
+ }
126
+ async fetchFormLegacyConfig() {
127
+ const payload = {
128
+ 'requestBody': {
129
+ 'config': {
130
+ 'chave': this.formLegacyConfigName,
131
+ 'tipo': 'T',
132
+ },
133
+ },
134
+ };
135
+ return await this.application.callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
136
+ }
97
137
  openConfig(viewMode) {
98
138
  this._snkConfigurator.close();
99
139
  if (viewMode === VIEW_MODE.GRID) {
@@ -112,10 +152,18 @@ export class SnkSimpleCrud {
112
152
  });
113
153
  }
114
154
  openFormConfig() {
155
+ //No momento não daremos suporte para configuraçao de formulário quando houver legacy config
156
+ if (this.formLegacyConfigName)
157
+ return;
115
158
  this._showFormConfig = true;
116
159
  }
117
- loadGridConfig() {
118
- if (this.gridConfig != undefined || this._gridConfigAlreadyLoaded) {
160
+ addGridLegacyConfigName() {
161
+ if (this.gridLegacyConfigName && this.configName) {
162
+ ConfigStorage.addGridLegacyConfig(this.configName, this.gridLegacyConfigName);
163
+ }
164
+ }
165
+ loadGridConfig(forceUpdate) {
166
+ if ((this.gridConfig != undefined || this._gridConfigAlreadyLoaded) && !forceUpdate) {
119
167
  return;
120
168
  }
121
169
  this._gridConfigAlreadyLoaded = true;
@@ -150,6 +198,7 @@ export class SnkSimpleCrud {
150
198
  if (this.gridConfig != undefined || this._gridConfigAlreadyLoaded) {
151
199
  return;
152
200
  }
201
+ await this.addGridLegacyConfigName();
153
202
  this.loadGridConfig();
154
203
  this.loadFormConfig();
155
204
  }
@@ -317,7 +366,9 @@ export class SnkSimpleCrud {
317
366
  return (_b = (_a = this.formConfig) === null || _a === void 0 ? void 0 : _a.fields) !== null && _b !== void 0 ? _b : this._formFields;
318
367
  }
319
368
  handleFormSetFields(fields) {
320
- this._formFields = fields !== null && fields !== void 0 ? fields : [];
369
+ if (!ObjectUtils.equals(this._formFields, fields)) {
370
+ this._formFields = fields !== null && fields !== void 0 ? fields : [];
371
+ }
321
372
  }
322
373
  fieldsOptionLoader(argument) {
323
374
  const searchTerm = argument === null || argument === void 0 ? void 0 : argument.toLowerCase();
@@ -407,7 +458,9 @@ export class SnkSimpleCrud {
407
458
  this.gridConfig = config;
408
459
  CrudUtils.assertDefaultSorting(this.gridConfig, this.dataUnit);
409
460
  }
410
- setFormConfig(config) {
461
+ setFormConfig(config, forceUpdate) {
462
+ if (this.formConfig && !forceUpdate)
463
+ return;
411
464
  this.formConfig = config;
412
465
  }
413
466
  closeGridConfig() {
@@ -416,17 +469,19 @@ export class SnkSimpleCrud {
416
469
  closeFormConfig() {
417
470
  this._showFormConfig = false;
418
471
  }
472
+ //No momento não daremos suporte para configuração de formulário quando houver formLegacyConfigName
473
+ handleShowFormConfig() {
474
+ return this._showFormConfig && !this.formLegacyConfigName;
475
+ }
419
476
  /* istanbul ignore next */
420
477
  render() {
421
- var _a;
478
+ var _a, _b, _c;
422
479
  if (this.dataUnit == undefined) {
423
480
  return;
424
481
  }
425
482
  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)
426
483
  ? undefined
427
- : 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._showFormConfig ? "simple-crud__form--hidden" : ""}`, dataUnit: this.dataUnit, config: this.formConfig,
428
- // config={this._formConfigManager?.getConfig(this.dataState?.insertionMode, this.dataUnit)}
429
- fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }), this._showFormConfig && 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 }))));
484
+ : 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), 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 }))));
430
485
  }
431
486
  static get is() { return "snk-simple-crud"; }
432
487
  static get encapsulation() { return "scoped"; }
@@ -694,6 +749,40 @@ export class SnkSimpleCrud {
694
749
  },
695
750
  "attribute": "show-configurator-buttons",
696
751
  "reflect": false
752
+ },
753
+ "gridLegacyConfigName": {
754
+ "type": "string",
755
+ "mutable": false,
756
+ "complexType": {
757
+ "original": "string",
758
+ "resolved": "string",
759
+ "references": {}
760
+ },
761
+ "required": false,
762
+ "optional": false,
763
+ "docs": {
764
+ "tags": [],
765
+ "text": "Chave da configura\u00E7\u00E3o legado da grade."
766
+ },
767
+ "attribute": "grid-legacy-config-name",
768
+ "reflect": false
769
+ },
770
+ "formLegacyConfigName": {
771
+ "type": "string",
772
+ "mutable": false,
773
+ "complexType": {
774
+ "original": "string",
775
+ "resolved": "string",
776
+ "references": {}
777
+ },
778
+ "required": false,
779
+ "optional": false,
780
+ "docs": {
781
+ "tags": [],
782
+ "text": "Chave da configura\u00E7\u00E3o legado do formul\u00E1rio."
783
+ },
784
+ "attribute": "form-legacy-config-name",
785
+ "reflect": false
697
786
  }
698
787
  };
699
788
  }
@@ -957,6 +1046,12 @@ export class SnkSimpleCrud {
957
1046
  }, {
958
1047
  "propName": "dataState",
959
1048
  "methodName": "observeDataState"
1049
+ }, {
1050
+ "propName": "formLegacyConfigName",
1051
+ "methodName": "observeFormLegacy"
1052
+ }, {
1053
+ "propName": "gridLegacyConfigName",
1054
+ "methodName": "observeGridLegacy"
960
1055
  }];
961
1056
  }
962
1057
  static get listeners() {
@@ -52,6 +52,10 @@ export class SnkTaskbar {
52
52
  requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
53
53
  });
54
54
  }
55
+ observeDisabledButtons() {
56
+ var _a;
57
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate();
58
+ }
55
59
  // Internal methods
56
60
  elementsFromString(strButtons) {
57
61
  const elements = [];
@@ -662,6 +666,9 @@ export class SnkTaskbar {
662
666
  return [{
663
667
  "propName": "buttons",
664
668
  "methodName": "observeButtons"
669
+ }, {
670
+ "propName": "disabledButtons",
671
+ "methodName": "observeDisabledButtons"
665
672
  }];
666
673
  }
667
674
  }
@@ -2,18 +2,37 @@ import { FormConfigFetcher } from "../http/data-fetcher/fetchers/form-config-fet
2
2
  import GridConfigFetcher from "../http/data-fetcher/fetchers/grid-config-fetcher";
3
3
  import FilterBarConfigFetcher from "../http/data-fetcher/fetchers/filter-bar-config-fetcher";
4
4
  import PersonalizedFilterFetcher from "../http/data-fetcher/fetchers/personalized-filter-fetcher";
5
- var CONFIG_SOURCE;
5
+ export var CONFIG_SOURCE;
6
6
  (function (CONFIG_SOURCE) {
7
7
  CONFIG_SOURCE["form"] = "form";
8
8
  CONFIG_SOURCE["grid"] = "grid";
9
9
  CONFIG_SOURCE["filterBar"] = "filterBar";
10
10
  })(CONFIG_SOURCE || (CONFIG_SOURCE = {}));
11
11
  export class ConfigStorage {
12
- static preload(resourceID, configName) {
12
+ static addFilterBarLegacyConfig(configName, legacyConfigName) {
13
+ this.validateConfigName(configName, legacyConfigName);
14
+ this.filterBarLegacyConfig.set(configName, legacyConfigName);
15
+ }
16
+ static addFormLegacyConfig(configName, legacyConfigName) {
17
+ this.validateConfigName(configName, legacyConfigName);
18
+ this.formLegacyConfig.set(configName, legacyConfigName);
19
+ }
20
+ static addGridLegacyConfig(configName, legacyConfigName) {
21
+ this.validateConfigName(configName, legacyConfigName);
22
+ this.gridLegacyConfig.set(configName, legacyConfigName);
23
+ }
24
+ static preload(resourceID, configName, legacyConfigs) {
25
+ if (configName && (legacyConfigs === null || legacyConfigs === void 0 ? void 0 : legacyConfigs.gridLegacyConfig)) {
26
+ ConfigStorage.addGridLegacyConfig(configName, legacyConfigs.gridLegacyConfig);
27
+ }
28
+ if (configName && (legacyConfigs === null || legacyConfigs === void 0 ? void 0 : legacyConfigs.formLegacyConfig)) {
29
+ ConfigStorage.addFormLegacyConfig(configName, legacyConfigs.formLegacyConfig);
30
+ }
13
31
  ConfigStorage.loadFormConfig(configName, resourceID);
14
32
  ConfigStorage.loadGridConfig(configName, resourceID);
15
33
  }
16
34
  static async loadFilterBarConfig(name, resourceID, urlParams) {
35
+ urlParams = this.handleLegacyConfig(name, CONFIG_SOURCE.filterBar, urlParams);
17
36
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.filterBar, resourceID);
18
37
  if (!ConfigStorage.configById.has(cacheID)) {
19
38
  ConfigStorage.configById.set(cacheID, ConfigStorage.filterBarConfigFetcher.getConfig(resourceID, name, urlParams));
@@ -21,6 +40,7 @@ export class ConfigStorage {
21
40
  return ConfigStorage.configById.get(cacheID);
22
41
  }
23
42
  static async loadFormConfig(name, resourceID) {
43
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.form);
24
44
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.form, resourceID);
25
45
  if (!ConfigStorage.configById.has(cacheID)) {
26
46
  ConfigStorage.configById.set(cacheID, ConfigStorage.formConfigFetcher.loadFormConfig(name, resourceID));
@@ -28,6 +48,7 @@ export class ConfigStorage {
28
48
  return ConfigStorage.configById.get(cacheID);
29
49
  }
30
50
  static async loadGridConfig(name, resourceID) {
51
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.grid);
31
52
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.grid, resourceID);
32
53
  if (!ConfigStorage.configById.has(cacheID)) {
33
54
  ConfigStorage.configById.set(cacheID, ConfigStorage.gridConfigFetcher.getConfig(name, resourceID));
@@ -39,6 +60,7 @@ export class ConfigStorage {
39
60
  return this.filterBarConfigFetcher.saveConfig(config, resourceID, name);
40
61
  }
41
62
  static async saveFormConfig(config, name, resourceID) {
63
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.form);
42
64
  await this.deleteFormConfigCache(name, resourceID);
43
65
  return this.formConfigFetcher.saveConfig(config, name, resourceID);
44
66
  }
@@ -53,7 +75,8 @@ export class ConfigStorage {
53
75
  return this.gridConfigFetcher.saveConfig(config, name, resourceID);
54
76
  }
55
77
  static async loadPersonalizedFilter(filterId, resourceID, configName) {
56
- return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName);
78
+ const legacyConfigName = this.filterBarLegacyConfig.get(configName);
79
+ return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName, legacyConfigName);
57
80
  }
58
81
  static async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
59
82
  //Ao criar ou alterar um filtro personalizado,
@@ -76,6 +99,38 @@ export class ConfigStorage {
76
99
  static async deleteFilterBarConfigCache(name, resourceID) {
77
100
  await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.filterBar);
78
101
  }
102
+ static validateConfigName(configName, legacyConfigName) {
103
+ if (!configName)
104
+ throw Error(this.CONFIG_NAME_ERROR_MESSAGE);
105
+ if (!legacyConfigName)
106
+ throw Error(this.LEGACY_CONFIG_NAME_ERROR_MESSAGE);
107
+ }
108
+ static handleLegacyConfig(configName, configSource, urlParams) {
109
+ let legacyConfigName;
110
+ switch (configSource) {
111
+ case CONFIG_SOURCE.filterBar:
112
+ legacyConfigName = this.filterBarLegacyConfig.get(configName);
113
+ break;
114
+ case CONFIG_SOURCE.grid:
115
+ legacyConfigName = this.gridLegacyConfig.get(configName);
116
+ break;
117
+ case CONFIG_SOURCE.form:
118
+ legacyConfigName = this.formLegacyConfig.get(configName);
119
+ }
120
+ const params = urlParams ? Object.assign({}, urlParams) : {};
121
+ if (legacyConfigName) {
122
+ params['legacyResourceID'] = legacyConfigName;
123
+ }
124
+ return params;
125
+ }
126
+ static handleLegacyConfigAsString(name, source) {
127
+ const params = this.handleLegacyConfig(name, source);
128
+ const legacyResourceID = params['legacyResourceID'];
129
+ if (legacyResourceID) {
130
+ name = name + `?legacyResourceID=${legacyResourceID}`;
131
+ }
132
+ return name;
133
+ }
79
134
  static async deleteConfigCache(name, resourceID, source) {
80
135
  const cacheID = ConfigStorage.buildCacheID(name, source, resourceID);
81
136
  this.configById.delete(cacheID);
@@ -87,6 +142,11 @@ export class ConfigStorage {
87
142
  return `req_${source}_${name}_${resourceID}`;
88
143
  }
89
144
  }
145
+ ConfigStorage.CONFIG_NAME_ERROR_MESSAGE = "ConfigName precisa ser informado.";
146
+ ConfigStorage.LEGACY_CONFIG_NAME_ERROR_MESSAGE = "LegacyConfigName precisa ser informado.";
147
+ ConfigStorage.filterBarLegacyConfig = new Map();
148
+ ConfigStorage.formLegacyConfig = new Map();
149
+ ConfigStorage.gridLegacyConfig = new Map();
90
150
  ConfigStorage.configById = new Map();
91
151
  ConfigStorage.filterBarConfigFetcher = new FilterBarConfigFetcher();
92
152
  ConfigStorage.formConfigFetcher = new FormConfigFetcher();
@@ -52,7 +52,7 @@ export default class PersonalizedFilterFetcher {
52
52
  assistent
53
53
  }
54
54
  }`);
55
- this.templateByQuery.set("savePersonalizedFilter", gql `
55
+ this.templateByQuery.set("savePersonalizedFilter", gql `
56
56
  mutation($name: String!, $filterAssistent: InputFilterAssistent!) {
57
57
  $queryAlias$: savePersonalizedFilter(name: $name, filterAssistent: $filterAssistent) {
58
58
  id
@@ -74,11 +74,11 @@ export default class PersonalizedFilterFetcher {
74
74
  }
75
75
  }`);
76
76
  }
77
- async loadPersonalizedFilter(resourceID, filterID, configName) {
77
+ async loadPersonalizedFilter(resourceID, filterID, configName, legacyConfigName) {
78
78
  return new Promise((resolve, reject) => {
79
79
  DataFetcher.get()
80
80
  .callGraphQL({
81
- values: { name: this.resolveURI(resourceID, configName) + "/" + filterID },
81
+ values: { name: this.resolveURI(resourceID, configName) + "/" + filterID + this.resolveLegacyConfigName(legacyConfigName) },
82
82
  query: this.templateByQuery.get("fetchFilterAssistent"),
83
83
  })
84
84
  .then((resp) => {
@@ -90,6 +90,9 @@ export default class PersonalizedFilterFetcher {
90
90
  });
91
91
  });
92
92
  }
93
+ resolveLegacyConfigName(legacyConfigName) {
94
+ return legacyConfigName ? `?legacyResourceID=${legacyConfigName}` : '';
95
+ }
93
96
  async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
94
97
  if (!personalizedFilter || Object.keys(personalizedFilter).length == 0) {
95
98
  return Promise.reject(new Error("personalizedFilter não pode ser vazio"));
@@ -90,7 +90,7 @@ export class PesquisaFetcher {
90
90
  const reqBody = {
91
91
  "serviceName": serviceName,
92
92
  "requestBody": {
93
- "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_d = values.searchOptions) === null || _d === void 0 ? void 0 : _d.rootEntity }, { options }),
93
+ "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "pk": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_d = values.searchOptions) === null || _d === void 0 ? void 0 : _d.rootEntity }, { options }),
94
94
  "clientEventList": {
95
95
  "clientEvent": []
96
96
  }