@sankhyalabs/sankhyablocks 8.15.0-rc.1 → 8.15.0-rc.11

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 (216) hide show
  1. package/dist/cjs/{ConfigStorage-302bbbd4.js → ConfigStorage-34be11ce.js} +70 -7
  2. package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-99f0f6ed.js} +5 -3
  3. package/dist/cjs/{SnkFormConfigManager-71c4768e.js → SnkFormConfigManager-531a191c.js} +21 -13
  4. package/dist/cjs/{SnkMessageBuilder-e7dcf408.js → SnkMessageBuilder-141aa18d.js} +2 -1
  5. package/dist/cjs/SnkMultiSelectionListDataSource-5213120b.js +140 -0
  6. package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-5161d082.js} +1 -1
  7. package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-9f1a13ca.js} +1 -1
  8. package/dist/cjs/index-f9e81701.js +2 -10
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{pesquisa-fetcher-e4a7c4c3.js → pesquisa-fetcher-94f6b316.js} +235 -24
  11. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  12. package/dist/cjs/{snk-actions-button_2.cjs.entry.js → snk-actions-button_4.cjs.entry.js} +520 -5
  13. package/dist/cjs/snk-application.cjs.entry.js +34 -8
  14. package/dist/cjs/snk-attach.cjs.entry.js +7 -8
  15. package/dist/cjs/snk-crud.cjs.entry.js +16 -10
  16. package/dist/cjs/snk-data-exporter.cjs.entry.js +8 -4
  17. package/dist/cjs/{snk-data-unit-82c08a8c.js → snk-data-unit-6026a9f7.js} +1 -1
  18. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  19. package/dist/cjs/snk-detail-view.cjs.entry.js +9 -10
  20. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  21. package/dist/cjs/snk-filter-bar.cjs.entry.js +36 -7
  22. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-form-config.cjs.entry.js +47 -27
  24. package/dist/cjs/snk-form.cjs.entry.js +11 -4
  25. package/dist/cjs/snk-grid.cjs.entry.js +40 -22
  26. package/dist/cjs/{snk-guides-viewer-d32c096f.js → snk-guides-viewer-76b4c346.js} +15 -9
  27. package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -8
  28. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
  29. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  30. package/dist/cjs/snk-simple-crud.cjs.entry.js +215 -23
  31. package/dist/cjs/snk-taskbar.cjs.entry.js +100 -14
  32. package/dist/cjs/{taskbar-elements-01b85b99.js → taskbar-elements-3ecd1278.js} +9 -9
  33. package/dist/collection/collection-manifest.json +6 -6
  34. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  35. package/dist/collection/components/snk-application/snk-application.js +51 -11
  36. package/dist/collection/components/snk-crud/snk-crud.js +95 -3
  37. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -2
  38. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  39. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +27 -3
  40. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +5 -1
  41. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  42. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -1
  43. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +23 -1
  44. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +116 -4
  45. package/dist/collection/components/snk-form/snk-form.js +25 -1
  46. package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.js +20 -12
  47. package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +50 -30
  48. package/dist/collection/components/snk-grid/snk-grid.js +103 -16
  49. package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.js +130 -123
  50. package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.js +1 -1
  51. package/dist/collection/components/snk-simple-crud/regular-buttons.js +3 -0
  52. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +5 -0
  53. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +344 -17
  54. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +1 -1
  55. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +9 -9
  56. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  57. package/dist/collection/components/snk-taskbar/snk-taskbar.js +139 -13
  58. package/dist/collection/lib/configs/ConfigStorage.js +63 -3
  59. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +5 -3
  60. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  61. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +6 -3
  62. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +4 -11
  63. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -1
  64. package/dist/collection/lib/utils/CrudUtils.js +13 -1
  65. package/dist/components/ConfigStorage.js +68 -5
  66. package/dist/components/DataFetcher.js +5 -3
  67. package/dist/components/SnkFormConfigManager.js +19 -11
  68. package/dist/components/SnkMessageBuilder.js +2 -1
  69. package/dist/components/dataunit-fetcher.js +4 -11
  70. package/dist/components/field-search.js +93 -3
  71. package/dist/components/index.d.ts +6 -6
  72. package/dist/components/snk-application2.js +30 -1
  73. package/dist/components/snk-attach2.js +54 -12
  74. package/dist/components/snk-crud.js +15 -3
  75. package/dist/components/snk-data-exporter2.js +5 -1
  76. package/dist/components/snk-detail-view2.js +40 -7
  77. package/dist/components/snk-entity-list.js +5 -3
  78. package/dist/components/snk-filter-bar2.js +38 -5
  79. package/dist/components/snk-form-config2.js +46 -26
  80. package/dist/components/snk-form.js +8 -0
  81. package/dist/components/snk-grid-config2.js +128 -102
  82. package/dist/components/snk-grid2.js +41 -17
  83. package/dist/components/snk-personalized-filter-editor.js +3 -1
  84. package/dist/components/snk-simple-crud2.js +272 -28
  85. package/dist/components/snk-taskbar2.js +114 -24
  86. package/dist/components/taskbar-actions-button2.js +1 -1
  87. package/dist/esm/{ConfigStorage-4151acc8.js → ConfigStorage-101a2b4c.js} +70 -7
  88. package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-a650ae58.js} +5 -3
  89. package/dist/esm/{SnkFormConfigManager-5c7d3771.js → SnkFormConfigManager-02ecf57f.js} +21 -13
  90. package/dist/esm/{SnkMessageBuilder-0fb796b9.js → SnkMessageBuilder-9747ddd2.js} +2 -1
  91. package/dist/esm/SnkMultiSelectionListDataSource-7e7eada5.js +133 -0
  92. package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-17dc5b5e.js} +1 -1
  93. package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-f121f880.js} +1 -1
  94. package/dist/esm/index-a7d3d3f1.js +2 -10
  95. package/dist/esm/loader.js +1 -1
  96. package/dist/esm/{pesquisa-fetcher-fa0c2540.js → pesquisa-fetcher-f05a12ca.js} +226 -16
  97. package/dist/esm/sankhyablocks.js +1 -1
  98. package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +519 -6
  99. package/dist/esm/snk-application.entry.js +34 -8
  100. package/dist/esm/snk-attach.entry.js +6 -7
  101. package/dist/esm/snk-crud.entry.js +16 -10
  102. package/dist/esm/snk-data-exporter.entry.js +8 -4
  103. package/dist/esm/{snk-data-unit-5d201fb3.js → snk-data-unit-4c343635.js} +1 -1
  104. package/dist/esm/snk-data-unit.entry.js +2 -2
  105. package/dist/esm/snk-detail-view.entry.js +9 -10
  106. package/dist/esm/snk-entity-list.entry.js +5 -3
  107. package/dist/esm/snk-filter-bar.entry.js +36 -7
  108. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  109. package/dist/esm/snk-form-config.entry.js +48 -28
  110. package/dist/esm/snk-form.entry.js +11 -4
  111. package/dist/esm/snk-grid.entry.js +41 -23
  112. package/dist/esm/{snk-guides-viewer-f49613c6.js → snk-guides-viewer-90ca9105.js} +15 -9
  113. package/dist/esm/snk-guides-viewer.entry.js +7 -8
  114. package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
  115. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  116. package/dist/esm/snk-simple-crud.entry.js +216 -24
  117. package/dist/esm/snk-taskbar.entry.js +101 -15
  118. package/dist/esm/{taskbar-elements-d4d0b424.js → taskbar-elements-2473c8ac.js} +9 -9
  119. package/dist/sankhyablocks/p-1f3174cb.entry.js +1 -0
  120. package/dist/sankhyablocks/p-1fa5a18c.entry.js +11 -0
  121. package/dist/sankhyablocks/p-20b46647.entry.js +1 -0
  122. package/dist/sankhyablocks/p-2897fb8c.js +1 -0
  123. package/dist/sankhyablocks/{p-05243555.js → p-2936303b.js} +1 -1
  124. package/dist/sankhyablocks/p-2cfe0c2c.entry.js +1 -0
  125. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  126. package/dist/sankhyablocks/p-384fd6ae.js +1 -0
  127. package/dist/sankhyablocks/p-50783a8b.js +1 -0
  128. package/dist/sankhyablocks/p-5c0b53ce.js +56 -0
  129. package/dist/sankhyablocks/p-663ff67b.entry.js +1 -0
  130. package/dist/sankhyablocks/{p-7f3c7b09.entry.js → p-6b28cc74.entry.js} +1 -1
  131. package/dist/sankhyablocks/{p-e0fd9555.entry.js → p-7ddd95b6.entry.js} +1 -1
  132. package/dist/sankhyablocks/p-7e05bd83.entry.js +1 -0
  133. package/dist/sankhyablocks/p-7f97fee2.entry.js +1 -0
  134. package/dist/sankhyablocks/p-8111f63f.entry.js +1 -0
  135. package/dist/sankhyablocks/{p-f3d1c48e.js → p-9a5d1b39.js} +1 -1
  136. package/dist/sankhyablocks/{p-0d7863ed.js → p-a13ccb86.js} +1 -1
  137. package/dist/sankhyablocks/p-a83487a0.entry.js +1 -0
  138. package/dist/sankhyablocks/p-ae4fc9a9.js +1 -0
  139. package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
  140. package/dist/sankhyablocks/p-b41a622a.entry.js +1 -0
  141. package/dist/sankhyablocks/p-ba4871b5.entry.js +1 -0
  142. package/dist/sankhyablocks/{p-9695f78b.js → p-be75153c.js} +1 -1
  143. package/dist/sankhyablocks/p-d01ceda6.entry.js +1 -0
  144. package/dist/sankhyablocks/p-d304659d.entry.js +1 -0
  145. package/dist/sankhyablocks/p-d78d4062.js +65 -0
  146. package/dist/sankhyablocks/p-e7dbe53a.entry.js +1 -0
  147. package/dist/sankhyablocks/p-fad4c2fe.js +1 -0
  148. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  149. package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +1 -1
  150. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  151. package/dist/types/components/snk-application/snk-application.d.ts +8 -0
  152. package/dist/types/components/snk-crud/snk-crud.d.ts +21 -0
  153. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
  154. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +6 -1
  155. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +19 -1
  156. package/dist/types/components/snk-form/snk-form.d.ts +6 -1
  157. package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +2 -1
  158. package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +5 -3
  159. package/dist/types/components/snk-grid/snk-grid.d.ts +20 -1
  160. package/dist/types/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.d.ts +11 -6
  161. package/dist/types/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.d.ts +1 -1
  162. package/dist/types/components/snk-simple-crud/regular-buttons.d.ts +3 -0
  163. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +65 -3
  164. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +28 -1
  165. package/dist/types/components.d.ts +201 -12
  166. package/dist/types/lib/configs/ConfigStorage.d.ts +21 -1
  167. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  168. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
  169. package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
  170. package/package.json +9 -2
  171. package/dist/cjs/PreloadManager-84466da6.js +0 -224
  172. package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
  173. package/dist/cjs/snk-grid-config.cjs.entry.js +0 -483
  174. package/dist/cjs/snk-select-box.cjs.entry.js +0 -25
  175. package/dist/esm/PreloadManager-c1c2f2b4.js +0 -222
  176. package/dist/esm/SnkMultiSelectionListDataSource-44494b0e.js +0 -43
  177. package/dist/esm/snk-grid-config.entry.js +0 -479
  178. package/dist/esm/snk-select-box.entry.js +0 -21
  179. package/dist/sankhyablocks/p-02e3a45b.entry.js +0 -1
  180. package/dist/sankhyablocks/p-094c30cb.js +0 -1
  181. package/dist/sankhyablocks/p-0ec5b2e5.js +0 -1
  182. package/dist/sankhyablocks/p-1d75d9f9.entry.js +0 -1
  183. package/dist/sankhyablocks/p-2582537c.entry.js +0 -1
  184. package/dist/sankhyablocks/p-282789a6.entry.js +0 -1
  185. package/dist/sankhyablocks/p-374d03f6.js +0 -1
  186. package/dist/sankhyablocks/p-3b0e4e08.js +0 -65
  187. package/dist/sankhyablocks/p-40915359.entry.js +0 -1
  188. package/dist/sankhyablocks/p-573a07c5.js +0 -1
  189. package/dist/sankhyablocks/p-62896624.entry.js +0 -1
  190. package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
  191. package/dist/sankhyablocks/p-761ed32f.entry.js +0 -1
  192. package/dist/sankhyablocks/p-98674137.entry.js +0 -1
  193. package/dist/sankhyablocks/p-9b5944a4.entry.js +0 -1
  194. package/dist/sankhyablocks/p-9bdbc7d8.entry.js +0 -1
  195. package/dist/sankhyablocks/p-aa95fb2c.js +0 -56
  196. package/dist/sankhyablocks/p-ac384baf.entry.js +0 -1
  197. package/dist/sankhyablocks/p-b05ab13d.entry.js +0 -1
  198. package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
  199. package/dist/sankhyablocks/p-c4874327.entry.js +0 -1
  200. package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
  201. package/dist/sankhyablocks/p-cb7419e0.entry.js +0 -1
  202. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  203. package/dist/sankhyablocks/p-e6380c60.js +0 -1
  204. package/dist/sankhyablocks/p-e817f254.entry.js +0 -11
  205. /package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.css +0 -0
  206. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.css +0 -0
  207. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.js +0 -0
  208. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.css +0 -0
  209. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.js +0 -0
  210. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.css +0 -0
  211. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.js +0 -0
  212. /package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.css +0 -0
  213. /package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.css +0 -0
  214. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.d.ts +0 -0
  215. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.d.ts +0 -0
  216. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -0
@@ -11,6 +11,7 @@ export class SnkFilterBar {
11
11
  this._updateSequence = [];
12
12
  this._loadingPending = false;
13
13
  this._configUpdated = false;
14
+ this._firstLoad = true;
14
15
  this._pendingVariables = false;
15
16
  this._customfiltersToBeUpdated = [];
16
17
  this._calculateSortIndex = (item) => {
@@ -27,11 +28,14 @@ export class SnkFilterBar {
27
28
  return this._calculateSortIndex(b) - this._calculateSortIndex(a);
28
29
  };
29
30
  this.dataUnit = undefined;
31
+ this.title = undefined;
30
32
  this.configName = undefined;
31
33
  this.resourceID = undefined;
34
+ this.mode = "regular";
32
35
  this.filterConfig = undefined;
33
36
  this.messagesBuilder = undefined;
34
37
  this.disablePersonalizedFilter = undefined;
38
+ this.filterBarLegacyConfigName = undefined;
35
39
  this.allowDefault = undefined;
36
40
  this.scrollerLocked = false;
37
41
  this.showPersonalizedFilter = false;
@@ -165,13 +169,27 @@ export class SnkFilterBar {
165
169
  return;
166
170
  }
167
171
  this._loadingPending = false;
168
- this.dataUnit.loadData(undefined, undefined, true);
172
+ this.doLoadData(this.dataUnit.getLastLoadRequest() != undefined);
169
173
  }
170
174
  if (this._configUpdated) {
171
175
  this._configUpdated = false;
172
176
  ConfigStorage.saveFilterBarConfig(this.filterConfig, this.configName, this.resourceID);
173
177
  }
174
178
  }
179
+ async doLoadData(forceReload = false) {
180
+ try {
181
+ if (this._firstLoad && !forceReload) {
182
+ let autoLoad = await this._application.getBooleanParam("global.carregar.registros.iniciar.tela");
183
+ if (!autoLoad) {
184
+ return;
185
+ }
186
+ }
187
+ this.dataUnit.loadData(undefined, undefined, true);
188
+ }
189
+ finally {
190
+ this._firstLoad = false;
191
+ }
192
+ }
175
193
  /**
176
194
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
177
195
  * através de um pequeno modulo na estrutura da aplicação:
@@ -209,7 +227,7 @@ export class SnkFilterBar {
209
227
  registryFilterProvider() {
210
228
  this.dataUnit.addFilterProvider(this);
211
229
  if (this.filterConfig) {
212
- this.dataUnit.loadData(undefined, undefined, true);
230
+ this.doLoadData();
213
231
  }
214
232
  }
215
233
  itemFocused(selectedItem) {
@@ -286,6 +304,11 @@ export class SnkFilterBar {
286
304
  loadPermitions() {
287
305
  this._application.isUserSup().then(value => this.allowDefault = value);
288
306
  }
307
+ addFilterBarLegacyConfigName() {
308
+ if (this.filterBarLegacyConfigName && this.configName) {
309
+ ConfigStorage.addFilterBarLegacyConfig(this.configName, this.filterBarLegacyConfigName);
310
+ }
311
+ }
289
312
  async loadConfigFromStorage(clearCache) {
290
313
  if (clearCache) {
291
314
  await ConfigStorage.deleteFilterBarConfigCache(this.configName, this.resourceID);
@@ -332,6 +355,9 @@ export class SnkFilterBar {
332
355
  filterChangeListener(evt) {
333
356
  this.updateFilter(evt.detail);
334
357
  }
358
+ /**
359
+ * Abre o modal de filtros
360
+ */
335
361
  async showFilterModal() {
336
362
  const callbackOnApplyFilter = (filters) => {
337
363
  this.filterConfig = filters.map(this.normalizeItem).sort((a, b) => this._filtersComparator(a, b));
@@ -389,6 +415,7 @@ export class SnkFilterBar {
389
415
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
390
416
  if (this._application) {
391
417
  this.loadPermitions();
418
+ this.addFilterBarLegacyConfigName();
392
419
  this.loadConfigFromStorage();
393
420
  }
394
421
  this.attachDataUnit();
@@ -403,7 +430,9 @@ export class SnkFilterBar {
403
430
  if (this.showPersonalizedFilter) {
404
431
  return h("snk-personalized-filter", { class: "filter-bar__personalized-filter", filterId: this.personalizedFilterId, ref: (el) => this._elPersonalizedFilter = el, onEzCancel: () => this.handleHidePersonalizedFilter(false), onEzAfterSave: () => this.handleHidePersonalizedFilter(true), entityUri: this.dataUnit.name, configName: this.configName, resourceID: this.resourceID });
405
432
  }
406
- return (h(Host, null, h("ez-scroller", { class: "snk-filter-bar__scroller", direction: EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, h("section", { class: "snk-filter-bar__filter-item-container" }, this.getFilterItems())), h("ez-button", { class: "ez-padding-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" }))));
433
+ if (this.mode === "button")
434
+ return (h(Host, { "data-mode": this.mode }, h("ez-button", { class: "ez-margin-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) })));
435
+ return (h(Host, { "data-mode": this.mode }, h("div", null, h("span", { class: "snk-filter-bar__title", title: this.title, "data-tooltip": this.title, "data-flow": "bottom" }, this.title)), h("ez-scroller", { class: "snk-filter-bar__scroller", direction: EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, h("section", { class: "snk-filter-bar__filter-item-container" }, this.getFilterItems())), h("ez-button", { class: "ez-padding-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" }))));
407
436
  }
408
437
  static get is() { return "snk-filter-bar"; }
409
438
  static get encapsulation() { return "scoped"; }
@@ -439,6 +468,23 @@ export class SnkFilterBar {
439
468
  "text": "Recebe o DataUnit do ambiente. Se n\u00E3o for informado, procura pela refer\u00EAncia\ndo SnkDataUnit. Necess\u00E1rio para se registrar como provedor de filtros."
440
469
  }
441
470
  },
471
+ "title": {
472
+ "type": "string",
473
+ "mutable": false,
474
+ "complexType": {
475
+ "original": "string",
476
+ "resolved": "string",
477
+ "references": {}
478
+ },
479
+ "required": false,
480
+ "optional": false,
481
+ "docs": {
482
+ "tags": [],
483
+ "text": "T\u00EDtulo que ser\u00E1 apresentado na barra de filtros"
484
+ },
485
+ "attribute": "title",
486
+ "reflect": false
487
+ },
442
488
  "configName": {
443
489
  "type": "string",
444
490
  "mutable": false,
@@ -473,6 +519,24 @@ export class SnkFilterBar {
473
519
  "attribute": "resource-i-d",
474
520
  "reflect": false
475
521
  },
522
+ "mode": {
523
+ "type": "string",
524
+ "mutable": false,
525
+ "complexType": {
526
+ "original": "\"regular\" | \"button\" | \"hidden\"",
527
+ "resolved": "\"button\" | \"hidden\" | \"regular\"",
528
+ "references": {}
529
+ },
530
+ "required": false,
531
+ "optional": false,
532
+ "docs": {
533
+ "tags": [],
534
+ "text": "Modo de apresenta\u00E7\u00E3o da filterbar."
535
+ },
536
+ "attribute": "mode",
537
+ "reflect": false,
538
+ "defaultValue": "\"regular\""
539
+ },
476
540
  "filterConfig": {
477
541
  "type": "unknown",
478
542
  "mutable": true,
@@ -528,10 +592,27 @@ export class SnkFilterBar {
528
592
  "optional": false,
529
593
  "docs": {
530
594
  "tags": [],
531
- "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
595
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros)\ne no modal lateral de filtros (container de filtros personalizados)."
532
596
  },
533
597
  "attribute": "disable-personalized-filter",
534
598
  "reflect": false
599
+ },
600
+ "filterBarLegacyConfigName": {
601
+ "type": "string",
602
+ "mutable": false,
603
+ "complexType": {
604
+ "original": "string",
605
+ "resolved": "string",
606
+ "references": {}
607
+ },
608
+ "required": false,
609
+ "optional": false,
610
+ "docs": {
611
+ "tags": [],
612
+ "text": "Chave da configura\u00E7\u00E3o legado da barra de filtros."
613
+ },
614
+ "attribute": "filter-bar-legacy-config-name",
615
+ "reflect": false
535
616
  }
536
617
  };
537
618
  }
@@ -693,6 +774,37 @@ export class SnkFilterBar {
693
774
  "text": "- Retorna o item de filtro removido, ou undefined caso n\u00E3o encontrado."
694
775
  }]
695
776
  }
777
+ },
778
+ "showFilterModal": {
779
+ "complexType": {
780
+ "signature": "() => Promise<void>",
781
+ "parameters": [],
782
+ "references": {
783
+ "Promise": {
784
+ "location": "global"
785
+ },
786
+ "SnkFilterItemConfig": {
787
+ "location": "import",
788
+ "path": "./filter-item/snk-filter-item"
789
+ },
790
+ "Array": {
791
+ "location": "global"
792
+ },
793
+ "SnkFilterModalFactoryParams": {
794
+ "location": "import",
795
+ "path": "./utils/SnkFilterModalFactory"
796
+ },
797
+ "IPersonalizedFilter": {
798
+ "location": "import",
799
+ "path": "../snk-personalized-filter/interfaces/IPersonalizedFilter"
800
+ }
801
+ },
802
+ "return": "Promise<void>"
803
+ },
804
+ "docs": {
805
+ "text": "Abre o modal de filtros",
806
+ "tags": []
807
+ }
696
808
  }
697
809
  };
698
810
  }
@@ -1,6 +1,6 @@
1
1
  import { ElementIDUtils } from '@sankhyalabs/core';
2
2
  import { h } from '@stencil/core';
3
- import { SnkFormConfigManager } from './SnkFormConfigManager';
3
+ import { SnkFormConfigManager } from '../snk-form-config/SnkFormConfigManager';
4
4
  import ResourceIDUtils from '../../lib/resourceid/ResourceIDUtils';
5
5
  export class SnkForm {
6
6
  constructor() {
@@ -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)
@@ -92,16 +97,19 @@ export class SnkFormConfigManager {
92
97
  const normalizedFilter = StringUtils.replaceAccentuatedCharsLower(descriptionFilter.toLocaleLowerCase());
93
98
  return normalizedText.includes(normalizedFilter);
94
99
  }
95
- getInsertionConfig(dataUnit) {
96
- const fields = this.getFieldsList(dataUnit).filter(field => {
97
- if (dataUnit) {
98
- const def = dataUnit.getField(field.name);
99
- if (def && def.readOnly) {
100
- return false;
100
+ getInsertionConfig(dataUnit, ignoreReadOnlyFormFields) {
101
+ let fields = this.getFieldsList(dataUnit);
102
+ if (ignoreReadOnlyFormFields) {
103
+ fields = fields.filter(field => {
104
+ if (dataUnit) {
105
+ const def = dataUnit.getField(field.name);
106
+ if (def && def.readOnly) {
107
+ return false;
108
+ }
101
109
  }
102
- }
103
- return !field.readOnly;
104
- });
110
+ return !field.readOnly;
111
+ });
112
+ }
105
113
  return Object.assign(Object.assign({}, this._config), { fields });
106
114
  }
107
115
  setConfig(config) {
@@ -121,8 +129,8 @@ export class SnkFormConfigManager {
121
129
  this._onConfigChange(Object.assign({}, this._config));
122
130
  }
123
131
  }
124
- getConfig(insertionMode, dataUnit) {
125
- return insertionMode ? this.getInsertionConfig(dataUnit) : Object.assign({}, this._config);
132
+ getConfig(insertionMode, dataUnit, ignoreReadOnlyFormFields) {
133
+ return insertionMode ? this.getInsertionConfig(dataUnit, ignoreReadOnlyFormFields !== null && ignoreReadOnlyFormFields !== void 0 ? ignoreReadOnlyFormFields : true) : Object.assign({}, this._config);
126
134
  }
127
135
  getFormConfigFetcher() {
128
136
  if (this._formConfigFetcher == undefined) {
@@ -1,9 +1,9 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { Sortable } from '@shopify/draggable';
3
- import { ObjectUtils, ArrayUtils, ElementIDUtils } from '@sankhyalabs/core';
3
+ import { ObjectUtils, ArrayUtils, ElementIDUtils, ApplicationContext } from '@sankhyalabs/core';
4
4
  import { ApplicationUtils, DialogType } from "@sankhyalabs/ezui/dist/collection/utils";
5
- import { ACTION_CONFIG, CONFIG_EVENTS, CONFIG_SORTABLE_EVENTS, DEFAULT_TYPE, TAB_NAMES } from "../../../../lib/utils/constants";
6
- import { UserConfigType } from "../../../../lib/http/data-fetcher/fetchers/form-config-fetcher";
5
+ import { ACTION_CONFIG, CONFIG_EVENTS, CONFIG_SORTABLE_EVENTS, DEFAULT_TYPE, TAB_NAMES } from "../../lib/utils/constants";
6
+ import { UserConfigType } from "../../lib/http/data-fetcher/fetchers/form-config-fetcher";
7
7
  import { buildFormConfigFromDataUnit } from "@sankhyalabs/ezui/dist/collection/utils/form";
8
8
  const CONTAINER_ID = {
9
9
  collapsibleBox: "EZ-COLLAPSIBLE-BOX",
@@ -25,6 +25,7 @@ export class SnkFormConfig {
25
25
  this._formFieldsStyle = "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding-right--small ez-padding-bottom--medium sc-snk-form-config";
26
26
  this._fieldsAvailableStyle = "ez-col ez-col--sd-12 ez-col--tb-12 ez-margin-bottom--medium ez-margin-right--medium sc-snk-form-config";
27
27
  this._fieldFloatingStyle = "form-config__field-config--dragged";
28
+ this._sortableTimer = 100;
28
29
  this._formConfigOptions = [];
29
30
  this._fieldConfigSelected = undefined;
30
31
  this._layoutFormConfig = undefined;
@@ -39,20 +40,27 @@ export class SnkFormConfig {
39
40
  this.messagesBuilder = undefined;
40
41
  }
41
42
  observeConfigManager() {
42
- this.loadConfig();
43
+ this.loadConfig(this._sortableTimer);
43
44
  }
44
- loadFields() {
45
+ loadFields(updateTimer = 0) {
45
46
  this._layoutFormConfig = [];
46
- this.buildFields();
47
+ if (updateTimer > 0) {
48
+ setTimeout(() => {
49
+ this.buildFields();
50
+ }, updateTimer);
51
+ }
52
+ else {
53
+ this.buildFields();
54
+ }
47
55
  }
48
56
  buildFields() {
49
57
  this.buildFormConfig();
50
58
  this.buildAvailableFields();
51
59
  }
52
- loadFormConfig() {
60
+ loadFormConfig(updateTimer) {
53
61
  var _a;
54
62
  this._formConfig = this.getConfig();
55
- this.loadFields();
63
+ this.loadFields(updateTimer);
56
64
  this.controlFieldConfig();
57
65
  if (((_a = this._filterFieldsAvailable) === null || _a === void 0 ? void 0 : _a.value) != undefined) {
58
66
  this._filterFieldsAvailable.value = "";
@@ -95,12 +103,12 @@ export class SnkFormConfig {
95
103
  }
96
104
  }
97
105
  resetChangeConfig() {
98
- this.loadFormConfig();
106
+ this.loadFormConfig(this._sortableTimer);
99
107
  this.clearTempGroups();
100
108
  }
101
109
  resetChangeOptionConfig() {
102
110
  this._formConfigChanged = false;
103
- this.loadConfig();
111
+ this.loadConfig(this._sortableTimer);
104
112
  this.clearTempGroups();
105
113
  }
106
114
  getTabsToSave() {
@@ -318,7 +326,9 @@ export class SnkFormConfig {
318
326
  && oldContainer.id === newContainer.id) {
319
327
  evt.cancel();
320
328
  this._fieldsAvailable = [];
321
- this.buildAvailableFields();
329
+ setTimeout(() => {
330
+ this.buildAvailableFields();
331
+ }, this._sortableTimer);
322
332
  return true;
323
333
  }
324
334
  return false;
@@ -361,7 +371,11 @@ export class SnkFormConfig {
361
371
  if (isNewGroup) {
362
372
  this.clearTempGroups(true);
363
373
  }
364
- this.updateFieldsToSave();
374
+ const sortableTimer = oldContainer.dataset.groupName !== newContainer.dataset.groupName
375
+ || (newContainer.id === CONTAINER_ID.withoutGroup && oldContainer.id === CONTAINER_ID.fieldsAvailable)
376
+ ? this._sortableTimer
377
+ : 0;
378
+ this.updateFieldsToSave(sortableTimer);
365
379
  }, this._renderTimer);
366
380
  return true;
367
381
  }
@@ -391,12 +405,12 @@ export class SnkFormConfig {
391
405
  return;
392
406
  }
393
407
  }
394
- updateFieldsToSave() {
408
+ updateFieldsToSave(updateTimer = 0) {
395
409
  const fields = this.getFieldsToSave();
396
410
  if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
397
411
  this._formConfig.fields = fields;
398
412
  }
399
- this.loadFields();
413
+ this.loadFields(updateTimer);
400
414
  this._formConfigChanged = true;
401
415
  }
402
416
  controlSortableField() {
@@ -426,7 +440,7 @@ export class SnkFormConfig {
426
440
  controlStopDraggingGroup(evt) {
427
441
  if (evt.data.newIndex !== evt.data.oldIndex) {
428
442
  setTimeout(() => {
429
- this.updateFieldsToSave();
443
+ this.updateFieldsToSave(this._sortableTimer);
430
444
  }, this._renderTimer);
431
445
  }
432
446
  }
@@ -499,7 +513,7 @@ export class SnkFormConfig {
499
513
  });
500
514
  if (tabs.length > 0) {
501
515
  this._formConfig.tabs = tabs;
502
- this.loadFields();
516
+ this.loadFields(this._sortableTimer);
503
517
  this.controlFieldConfig();
504
518
  this._formConfigChanged = true;
505
519
  }
@@ -523,13 +537,13 @@ export class SnkFormConfig {
523
537
  if (config != undefined) {
524
538
  this._formConfig = config;
525
539
  this._tabSelected = 1;
526
- this.loadFields();
540
+ this.loadFields(this._sortableTimer);
527
541
  this.controlFieldConfig();
528
542
  this.clearTempGroups();
529
543
  }
530
544
  }
531
- loadConfig() {
532
- this.loadFormConfig();
545
+ loadConfig(updateTimer = 0) {
546
+ this.loadFormConfig(updateTimer);
533
547
  this.loadUserConfig();
534
548
  }
535
549
  addNewGroup() {
@@ -570,7 +584,7 @@ export class SnkFormConfig {
570
584
  });
571
585
  }
572
586
  else {
573
- this.updateFieldsToSave();
587
+ this.updateFieldsToSave(this._sortableTimer);
574
588
  }
575
589
  }
576
590
  checkGroupExists(newLabel, indexGroup, isTempGroup = false) {
@@ -616,7 +630,7 @@ export class SnkFormConfig {
616
630
  field.group = newLabel;
617
631
  }
618
632
  });
619
- this.loadFields();
633
+ this.loadFields(this._sortableTimer);
620
634
  this.controlFieldConfig();
621
635
  this._formConfigChanged = true;
622
636
  }
@@ -830,14 +844,14 @@ export class SnkFormConfig {
830
844
  this._formConfigChanged = true;
831
845
  this.resetSortables();
832
846
  }
833
- controlRemoveFieldConfig(fieldConfig) {
847
+ controlRemoveFieldConfig(fieldConfig, updateTimer) {
834
848
  var _a;
835
849
  this._formConfigChanged = false;
836
850
  if (fieldConfig == undefined) {
837
851
  return;
838
852
  }
839
853
  this._formConfig.fields = (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.filter((field) => field.name !== fieldConfig.name);
840
- this.loadFields();
854
+ this.loadFields(updateTimer);
841
855
  this.controlFieldConfig();
842
856
  this._formConfigChanged = true;
843
857
  this.resetSortables();
@@ -846,14 +860,14 @@ export class SnkFormConfig {
846
860
  this.controlSortableField();
847
861
  this.controlSortableGroup();
848
862
  }
849
- handleFieldConfigChange(evt) {
863
+ handleFieldConfigChange(evt, updateTimer = 0) {
850
864
  const { field: fieldConfig, type: actionType } = evt.detail;
851
865
  if (actionType === ACTION_CONFIG.configuration) {
852
866
  this.controlFieldConfig(fieldConfig);
853
867
  return;
854
868
  }
855
869
  if (actionType === ACTION_CONFIG.remove) {
856
- this.controlRemoveFieldConfig(fieldConfig);
870
+ this.controlRemoveFieldConfig(fieldConfig, updateTimer);
857
871
  return;
858
872
  }
859
873
  if (actionType === ACTION_CONFIG.add) {
@@ -874,7 +888,7 @@ export class SnkFormConfig {
874
888
  tab.label = newLabel;
875
889
  }
876
890
  });
877
- this.loadFields();
891
+ this.loadFields(this._sortableTimer);
878
892
  this.controlFieldConfig();
879
893
  this._formConfigChanged = true;
880
894
  }
@@ -894,7 +908,7 @@ export class SnkFormConfig {
894
908
  this._formConfig.tabs = (_a = this._formConfig.tabs) === null || _a === void 0 ? void 0 : _a.filter((tab) => {
895
909
  return tab.label !== tabSelected.detail.label;
896
910
  });
897
- this.loadFields();
911
+ this.loadFields(this._sortableTimer);
898
912
  this.controlFieldConfig();
899
913
  this._formConfigChanged = true;
900
914
  }
@@ -907,7 +921,7 @@ export class SnkFormConfig {
907
921
  tab.visible = !tab.visible;
908
922
  }
909
923
  });
910
- this.loadFields();
924
+ this.loadFields(this._sortableTimer);
911
925
  this.controlFieldConfig();
912
926
  this._formConfigChanged = true;
913
927
  }
@@ -932,6 +946,12 @@ export class SnkFormConfig {
932
946
  this.controlSortableField();
933
947
  this.controlSortableGroup();
934
948
  }
949
+ async componentWillRender() {
950
+ if (this.messagesBuilder == undefined) {
951
+ const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
952
+ this.messagesBuilder = application.messagesBuilder;
953
+ }
954
+ }
935
955
  componentWillLoad() {
936
956
  this.loadConfig();
937
957
  }
@@ -1005,7 +1025,7 @@ export class SnkFormConfig {
1005
1025
  "references": {
1006
1026
  "SnkFormConfigManager": {
1007
1027
  "location": "import",
1008
- "path": "../../SnkFormConfigManager"
1028
+ "path": "./SnkFormConfigManager"
1009
1029
  }
1010
1030
  }
1011
1031
  },
@@ -1025,7 +1045,7 @@ export class SnkFormConfig {
1025
1045
  "references": {
1026
1046
  "SnkMessageBuilder": {
1027
1047
  "location": "import",
1028
- "path": "../../../../lib/message/SnkMessageBuilder"
1048
+ "path": "../../lib/message/SnkMessageBuilder"
1029
1049
  }
1030
1050
  }
1031
1051
  },