@sankhyalabs/sankhyablocks 8.15.0-rc.2 → 8.15.0-rc.21

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 (243) hide show
  1. package/dist/cjs/{ConfigStorage-302bbbd4.js → ConfigStorage-8d4e9d53.js} +70 -7
  2. package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-99f0f6ed.js} +5 -3
  3. package/dist/cjs/{SnkFormConfigManager-71c4768e.js → SnkFormConfigManager-33995e92.js} +21 -13
  4. package/dist/cjs/{SnkMessageBuilder-e7dcf408.js → SnkMessageBuilder-66aa2557.js} +6 -1
  5. package/dist/cjs/SnkMultiSelectionListDataSource-d15f7aac.js +140 -0
  6. package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-bb8e9ae4.js} +1 -1
  7. package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-d73f4449.js} +13 -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-bdbbe9ac.js} +277 -61
  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 +13 -8
  14. package/dist/cjs/snk-attach.cjs.entry.js +67 -47
  15. package/dist/cjs/snk-crud.cjs.entry.js +16 -10
  16. package/dist/cjs/snk-data-exporter.cjs.entry.js +10 -6
  17. package/dist/cjs/{snk-data-unit-82c08a8c.js → snk-data-unit-41c29713.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 -5
  22. package/dist/cjs/snk-filter-detail.cjs.entry.js +4 -1
  23. package/dist/cjs/snk-filter-item.cjs.entry.js +10 -6
  24. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  25. package/dist/cjs/snk-form-config.cjs.entry.js +47 -27
  26. package/dist/cjs/snk-form.cjs.entry.js +11 -4
  27. package/dist/cjs/snk-grid.cjs.entry.js +37 -22
  28. package/dist/cjs/{snk-guides-viewer-d32c096f.js → snk-guides-viewer-a8dd24a3.js} +15 -9
  29. package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -8
  30. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
  31. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  32. package/dist/cjs/snk-simple-crud.cjs.entry.js +256 -22
  33. package/dist/cjs/snk-taskbar.cjs.entry.js +123 -15
  34. package/dist/cjs/{taskbar-elements-01b85b99.js → taskbar-elements-3ecd1278.js} +9 -9
  35. package/dist/collection/collection-manifest.json +6 -6
  36. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  37. package/dist/collection/components/snk-application/snk-application.js +51 -11
  38. package/dist/collection/components/snk-attach/snk-attach.js +39 -24
  39. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +1 -1
  40. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +29 -22
  41. package/dist/collection/components/snk-crud/snk-crud.js +95 -3
  42. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -2
  43. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  44. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +27 -3
  45. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +7 -3
  46. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  47. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -1
  48. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +22 -1
  49. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +28 -6
  50. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +24 -1
  51. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +116 -2
  52. package/dist/collection/components/snk-form/snk-form.js +25 -1
  53. package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.js +20 -12
  54. package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +50 -30
  55. package/dist/collection/components/snk-grid/snk-grid.js +100 -16
  56. package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.js +130 -123
  57. package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.js +1 -1
  58. package/dist/collection/components/snk-simple-crud/regular-buttons.js +3 -0
  59. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +10 -2
  60. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +421 -17
  61. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +1 -1
  62. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +9 -9
  63. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  64. package/dist/collection/components/snk-taskbar/snk-taskbar.js +166 -14
  65. package/dist/collection/lib/configs/ConfigStorage.js +63 -3
  66. package/dist/collection/lib/dataUnit/InMemoryLoader.js +9 -40
  67. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +33 -0
  68. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +5 -3
  69. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +12 -0
  70. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +6 -3
  71. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +4 -11
  72. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -1
  73. package/dist/collection/lib/message/resources/snk-simple-crud.msg.js +4 -0
  74. package/dist/collection/lib/utils/CrudUtils.js +13 -1
  75. package/dist/components/ConfigStorage.js +68 -5
  76. package/dist/components/DataFetcher.js +5 -3
  77. package/dist/components/SnkFormConfigManager.js +19 -11
  78. package/dist/components/SnkMessageBuilder.js +6 -1
  79. package/dist/components/dataunit-fetcher.js +45 -50
  80. package/dist/components/field-search.js +93 -3
  81. package/dist/components/form-config-fetcher.js +12 -0
  82. package/dist/components/index.d.ts +6 -6
  83. package/dist/components/snk-application2.js +9 -1
  84. package/dist/components/snk-attach2.js +115 -52
  85. package/dist/components/snk-crud.js +15 -3
  86. package/dist/components/snk-data-exporter2.js +7 -3
  87. package/dist/components/snk-detail-view2.js +40 -7
  88. package/dist/components/snk-entity-list.js +5 -3
  89. package/dist/components/snk-filter-bar2.js +38 -3
  90. package/dist/components/snk-filter-detail2.js +5 -1
  91. package/dist/components/snk-filter-item2.js +11 -6
  92. package/dist/components/snk-form-config2.js +46 -26
  93. package/dist/components/snk-form.js +8 -0
  94. package/dist/components/snk-grid-config2.js +128 -102
  95. package/dist/components/snk-grid2.js +38 -17
  96. package/dist/components/snk-personalized-filter-editor.js +3 -1
  97. package/dist/components/snk-simple-crud2.js +317 -29
  98. package/dist/components/snk-taskbar2.js +139 -25
  99. package/dist/components/taskbar-actions-button2.js +1 -1
  100. package/dist/esm/{ConfigStorage-4151acc8.js → ConfigStorage-6e241cd7.js} +70 -7
  101. package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-a650ae58.js} +5 -3
  102. package/dist/esm/{SnkFormConfigManager-5c7d3771.js → SnkFormConfigManager-7a4e678f.js} +21 -13
  103. package/dist/esm/{SnkMessageBuilder-0fb796b9.js → SnkMessageBuilder-0a4becdd.js} +6 -1
  104. package/dist/esm/SnkMultiSelectionListDataSource-7084f3b3.js +133 -0
  105. package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-8ec448b0.js} +1 -1
  106. package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-765b8498.js} +13 -1
  107. package/dist/esm/index-a7d3d3f1.js +2 -10
  108. package/dist/esm/loader.js +1 -1
  109. package/dist/esm/{pesquisa-fetcher-fa0c2540.js → pesquisa-fetcher-96d2f351.js} +266 -54
  110. package/dist/esm/sankhyablocks.js +1 -1
  111. package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +519 -6
  112. package/dist/esm/snk-application.entry.js +13 -8
  113. package/dist/esm/snk-attach.entry.js +66 -46
  114. package/dist/esm/snk-crud.entry.js +16 -10
  115. package/dist/esm/snk-data-exporter.entry.js +10 -6
  116. package/dist/esm/{snk-data-unit-5d201fb3.js → snk-data-unit-de1d140d.js} +1 -1
  117. package/dist/esm/snk-data-unit.entry.js +2 -2
  118. package/dist/esm/snk-detail-view.entry.js +9 -10
  119. package/dist/esm/snk-entity-list.entry.js +5 -3
  120. package/dist/esm/snk-filter-bar.entry.js +36 -5
  121. package/dist/esm/snk-filter-detail.entry.js +4 -1
  122. package/dist/esm/snk-filter-item.entry.js +10 -6
  123. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  124. package/dist/esm/snk-form-config.entry.js +48 -28
  125. package/dist/esm/snk-form.entry.js +11 -4
  126. package/dist/esm/snk-grid.entry.js +38 -23
  127. package/dist/esm/{snk-guides-viewer-f49613c6.js → snk-guides-viewer-131e9660.js} +15 -9
  128. package/dist/esm/snk-guides-viewer.entry.js +7 -8
  129. package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
  130. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  131. package/dist/esm/snk-simple-crud.entry.js +257 -23
  132. package/dist/esm/snk-taskbar.entry.js +124 -16
  133. package/dist/esm/{taskbar-elements-d4d0b424.js → taskbar-elements-2473c8ac.js} +9 -9
  134. package/dist/sankhyablocks/p-004c356e.js +26 -0
  135. package/dist/sankhyablocks/p-0624f62d.js +56 -0
  136. package/dist/sankhyablocks/p-075bba4c.entry.js +1 -0
  137. package/dist/sankhyablocks/p-07a61550.entry.js +1 -0
  138. package/dist/sankhyablocks/p-103c5956.entry.js +1 -0
  139. package/dist/sankhyablocks/p-1048bd26.entry.js +1 -0
  140. package/dist/sankhyablocks/{p-e6380c60.js → p-125bb902.js} +1 -1
  141. package/dist/sankhyablocks/p-13ae1a89.entry.js +1 -0
  142. package/dist/sankhyablocks/{p-e0fd9555.entry.js → p-24ed6ad6.entry.js} +1 -1
  143. package/dist/sankhyablocks/p-32556aa6.js +1 -0
  144. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  145. package/dist/sankhyablocks/p-34a7f2ab.js +65 -0
  146. package/dist/sankhyablocks/{p-f3d1c48e.js → p-52c8e589.js} +1 -1
  147. package/dist/sankhyablocks/p-54a5d52a.entry.js +1 -0
  148. package/dist/sankhyablocks/p-5833cff9.js +1 -0
  149. package/dist/sankhyablocks/p-5a2e016a.entry.js +1 -0
  150. package/dist/sankhyablocks/p-619c5f6f.entry.js +11 -0
  151. package/dist/sankhyablocks/p-6f560924.entry.js +1 -0
  152. package/dist/sankhyablocks/p-8967fa78.js +1 -0
  153. package/dist/sankhyablocks/p-9b1beac5.entry.js +1 -0
  154. package/dist/sankhyablocks/p-a87149e4.entry.js +1 -0
  155. package/dist/sankhyablocks/{p-7f3c7b09.entry.js → p-ac77949b.entry.js} +1 -1
  156. package/dist/sankhyablocks/p-ae4fc9a9.js +1 -0
  157. package/dist/sankhyablocks/p-b10b9934.entry.js +1 -0
  158. package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
  159. package/dist/sankhyablocks/{p-9695f78b.js → p-be75153c.js} +1 -1
  160. package/dist/sankhyablocks/p-bf39bdb8.entry.js +1 -0
  161. package/dist/sankhyablocks/p-e8763234.entry.js +1 -0
  162. package/dist/sankhyablocks/p-efeca7ba.js +1 -0
  163. package/dist/sankhyablocks/p-f7d0fab9.entry.js +1 -0
  164. package/dist/sankhyablocks/p-f7d9d148.entry.js +1 -0
  165. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  166. package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +1 -1
  167. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  168. package/dist/types/components/snk-application/snk-application.d.ts +8 -0
  169. package/dist/types/components/snk-attach/snk-attach.d.ts +2 -1
  170. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +10 -1
  171. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +5 -4
  172. package/dist/types/components/snk-crud/snk-crud.d.ts +21 -0
  173. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
  174. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +6 -1
  175. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +4 -0
  176. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +6 -2
  177. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +20 -1
  178. package/dist/types/components/snk-form/snk-form.d.ts +6 -1
  179. package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +2 -1
  180. package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +5 -3
  181. package/dist/types/components/snk-grid/snk-grid.d.ts +19 -1
  182. package/dist/types/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.d.ts +11 -6
  183. package/dist/types/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.d.ts +1 -1
  184. package/dist/types/components/snk-simple-crud/regular-buttons.d.ts +3 -0
  185. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +76 -3
  186. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +34 -1
  187. package/dist/types/components.d.ts +226 -12
  188. package/dist/types/lib/configs/ConfigStorage.d.ts +21 -1
  189. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +0 -2
  190. package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +4 -0
  191. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +2 -0
  192. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
  193. package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
  194. package/package.json +9 -2
  195. package/dist/cjs/PreloadManager-84466da6.js +0 -224
  196. package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
  197. package/dist/cjs/snk-grid-config.cjs.entry.js +0 -483
  198. package/dist/cjs/snk-select-box.cjs.entry.js +0 -25
  199. package/dist/esm/PreloadManager-c1c2f2b4.js +0 -222
  200. package/dist/esm/SnkMultiSelectionListDataSource-44494b0e.js +0 -43
  201. package/dist/esm/snk-grid-config.entry.js +0 -479
  202. package/dist/esm/snk-select-box.entry.js +0 -21
  203. package/dist/sankhyablocks/p-02e3a45b.entry.js +0 -1
  204. package/dist/sankhyablocks/p-05243555.js +0 -1
  205. package/dist/sankhyablocks/p-094c30cb.js +0 -1
  206. package/dist/sankhyablocks/p-0d7863ed.js +0 -26
  207. package/dist/sankhyablocks/p-0ec5b2e5.js +0 -1
  208. package/dist/sankhyablocks/p-1d75d9f9.entry.js +0 -1
  209. package/dist/sankhyablocks/p-2582537c.entry.js +0 -1
  210. package/dist/sankhyablocks/p-282789a6.entry.js +0 -1
  211. package/dist/sankhyablocks/p-374d03f6.js +0 -1
  212. package/dist/sankhyablocks/p-3b0e4e08.js +0 -65
  213. package/dist/sankhyablocks/p-40915359.entry.js +0 -1
  214. package/dist/sankhyablocks/p-573a07c5.js +0 -1
  215. package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
  216. package/dist/sankhyablocks/p-761ed32f.entry.js +0 -1
  217. package/dist/sankhyablocks/p-86801b08.entry.js +0 -1
  218. package/dist/sankhyablocks/p-96ef14f9.entry.js +0 -1
  219. package/dist/sankhyablocks/p-98674137.entry.js +0 -1
  220. package/dist/sankhyablocks/p-9b5944a4.entry.js +0 -1
  221. package/dist/sankhyablocks/p-9bdbc7d8.entry.js +0 -1
  222. package/dist/sankhyablocks/p-a52b9254.entry.js +0 -11
  223. package/dist/sankhyablocks/p-aa95fb2c.js +0 -56
  224. package/dist/sankhyablocks/p-ac384baf.entry.js +0 -1
  225. package/dist/sankhyablocks/p-b05ab13d.entry.js +0 -1
  226. package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
  227. package/dist/sankhyablocks/p-c4874327.entry.js +0 -1
  228. package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
  229. package/dist/sankhyablocks/p-cb7419e0.entry.js +0 -1
  230. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  231. package/dist/sankhyablocks/p-d6317851.entry.js +0 -1
  232. /package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.css +0 -0
  233. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.css +0 -0
  234. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.js +0 -0
  235. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.css +0 -0
  236. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.js +0 -0
  237. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.css +0 -0
  238. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.js +0 -0
  239. /package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.css +0 -0
  240. /package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.css +0 -0
  241. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.d.ts +0 -0
  242. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.d.ts +0 -0
  243. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/core/internal/client';
2
- import { StringUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
2
+ import { StringUtils, ApplicationContext, OVERFLOWED_CLASS_NAME, OverflowWatcher, OverflowDirection, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { A as AuthorizationConfig } from './AuthorizationConfig.js';
4
4
  import { P as PresentationMode } from './index2.js';
5
5
  import { s as store } from './index3.js';
@@ -93,35 +93,35 @@ const buildElem = (element, className, dataElementId, getTitle, action, isEnable
93
93
  case TaskbarElement.CONFIGURATOR:
94
94
  return iconButton("settings-inverted", element, className, dataElementId, title, action, isEnabled);
95
95
  case TaskbarElement.MORE_OPTIONS:
96
- return actionButton(element, dataElementId, title, isEnabled, actions, action);
96
+ return actionButton(element, className, dataElementId, title, isEnabled, actions, action);
97
97
  case TaskbarElement.DIVIDER:
98
- return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium", "data-taskbar-divider": true });
98
+ return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin--none ez-margin-left--medium", "data-taskbar-divider": true });
99
99
  case TaskbarElement.DATA_EXPORTER:
100
100
  const provider = (_a = store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[configName];
101
- return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId });
101
+ return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId, "data-taskbar-element": element });
102
102
  case TaskbarElement.ATTACH:
103
103
  return iconButton("anexo", element, className, dataElementId, title, action, isEnabled);
104
104
  case TaskbarElement.ACTIONS_BUTTON:
105
- return h("snk-actions-button", { "data-element-id": dataElementId });
105
+ return h("snk-actions-button", { "data-element-id": dataElementId, "data-taskbar-element": element });
106
106
  }
107
107
  };
108
108
  function textButton(name, className, dataElementId, text, title, action, isEnabled) {
109
- return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) });
109
+ return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-taskbar-label": text, "data-taskbar-element": name, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) });
110
110
  }
111
111
  function iconButton(iconName, name, className, dataElementId, title, action, isEnabled) {
112
- return h("ez-button", { key: dataElementId, title: title, mode: "icon", size: "small", class: className, "data-element-id": dataElementId, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
112
+ return h("ez-button", { key: dataElementId, title: title, mode: "icon", size: "small", class: className, "data-taskbar-label": title, "data-taskbar-element": name, "data-taskbar-icon": iconName, "data-element-id": dataElementId, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
113
113
  }
114
114
  function iconTextButton(iconName, name, className, dataElementId, text, title, action, isEnabled) {
115
- return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) },
115
+ return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-taskbar-label": text, "data-taskbar-icon": iconName, "data-taskbar-element": name, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) },
116
116
  h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
117
117
  }
118
- function actionButton(element, dataElementId, title, isEnabled, actions, action) {
118
+ function actionButton(element, className, dataElementId, title, isEnabled, actions, action) {
119
119
  return actions && actions.length > 0
120
- ? h("taskbar-actions-button", { key: dataElementId, title: title, "data-element-id": dataElementId, enabled: isEnabled(element), actions: actions, onTaskbarActionSelected: (evt) => action(evt.detail.value) })
120
+ ? h("taskbar-actions-button", { class: className, key: dataElementId, title: title, "data-taskbar-element": element, "data-element-id": dataElementId, enabled: isEnabled(element), actions: actions, onTaskbarActionSelected: (evt) => action(evt.detail.value) })
121
121
  : undefined;
122
122
  }
123
123
 
124
- const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
124
+ const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex;flex-wrap:wrap}.no-wrap.sc-snk-taskbar-h{flex-wrap:nowrap}.full-width.sc-snk-taskbar-h{width:100%}.align-right.sc-snk-taskbar-h{justify-content:flex-end}.overflowed.sc-snk-taskbar{display:none}";
125
125
 
126
126
  const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
127
127
  constructor() {
@@ -129,6 +129,9 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
129
129
  this.__registerHost();
130
130
  this.actionClick = createEvent(this, "actionClick", 7);
131
131
  this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
132
+ this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME = 'taskbar-custom-elements-container';
133
+ this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
134
+ this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
132
135
  this._titleKeyByElement = {
133
136
  [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
134
137
  [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
@@ -146,11 +149,17 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
146
149
  [TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
147
150
  };
148
151
  this._permissions = undefined;
152
+ this._overFlowedElements = [];
149
153
  this._customElements = undefined;
150
154
  this._customElementsId = undefined;
151
155
  this._slotContainer = undefined;
156
+ this._hiddenActionsList = [];
157
+ this._lastWidth = undefined;
158
+ this._hasToUpdateOverFlow = false;
159
+ this.alignRigth = false;
152
160
  this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
153
161
  this.customContainerId = undefined;
162
+ this.overflowStrategy = 'hiddenItems';
154
163
  this.configName = undefined;
155
164
  this.resourceID = undefined;
156
165
  this.buttons = undefined;
@@ -164,6 +173,18 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
164
173
  }
165
174
  observeButtons() {
166
175
  this._definitions = undefined;
176
+ requestAnimationFrame(() => {
177
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
178
+ });
179
+ }
180
+ observeDisabledButtons() {
181
+ var _a;
182
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate();
183
+ }
184
+ observeLastWidth(newValue, oldValue) {
185
+ if (oldValue === 0 && newValue !== 0) {
186
+ this._hasToUpdateOverFlow = true;
187
+ }
167
188
  }
168
189
  // Internal methods
169
190
  elementsFromString(strButtons) {
@@ -259,12 +280,19 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
259
280
  }
260
281
  const taskbarElement = TaskbarElement[def.toString()];
261
282
  if (taskbarElement) {
262
- return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.actionsList, this.configName, this.presentationMode);
283
+ return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.buildDynamicActionsList(), this.configName, this.presentationMode);
263
284
  }
264
285
  else {
265
286
  return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
266
287
  }
267
288
  }
289
+ buildDynamicActionsList() {
290
+ var _a;
291
+ if (this._hiddenActionsList.length) {
292
+ return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), { type: 'divider', label: "", value: "" }, ...this._hiddenActionsList];
293
+ }
294
+ return this.actionsList;
295
+ }
268
296
  getIdElemBtnNative(taskbarElem) {
269
297
  return StringUtils.toCamelCase(taskbarElem);
270
298
  }
@@ -305,11 +333,13 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
305
333
  });
306
334
  }
307
335
  addCustomElementContainer(elem) {
336
+ var _a;
308
337
  const elementId = `${this.TASKBAR_ITEM_ID_PREFIX}${elem}`;
309
338
  if (!this._customElementsId.includes(elementId)) {
310
339
  this._customElementsId.push(elementId);
340
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.addNotOverFlowElement(elementId);
311
341
  }
312
- return h("span", { key: elementId, id: elementId });
342
+ return h("span", { class: "ez-padding-left--medium", key: elementId, id: elementId });
313
343
  }
314
344
  getCustomElements() {
315
345
  var _a, _b;
@@ -339,20 +369,95 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
339
369
  this.getCustomElements();
340
370
  }
341
371
  componentWillRender() {
372
+ this.handleDefinitions();
373
+ this.validatePresentationMode();
374
+ this.updateOverFlowIfNeeded();
375
+ }
376
+ handleDefinitions() {
342
377
  if (this._definitions == undefined && this._permissions) {
343
378
  this._definitions = this.elementsFromString(this.buttons);
344
379
  }
345
- this.validatePresentationMode();
380
+ }
381
+ updateOverFlowIfNeeded() {
382
+ if (this._hasToUpdateOverFlow) {
383
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
384
+ this._hasToUpdateOverFlow = false;
385
+ }
386
+ }
387
+ handleOverFlow(overFlowingElements) {
388
+ const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
389
+ this.resetOverFlowedElements();
390
+ this.doOverFlowElements(elementsToHandle);
391
+ }
392
+ resetOverFlowedElements() {
393
+ this._overFlowedElements.forEach(element => {
394
+ element.classList.remove(OVERFLOWED_CLASS_NAME);
395
+ });
396
+ this._hiddenActionsList = [];
397
+ this._overFlowedElements = [];
398
+ }
399
+ doOverFlowElements(overFlowedElements) {
400
+ overFlowedElements.forEach(element => {
401
+ element.classList.add(OVERFLOWED_CLASS_NAME);
402
+ this._overFlowedElements.push(element);
403
+ this.addItemToActionList(element);
404
+ });
405
+ }
406
+ addItemToActionList(element) {
407
+ const taskbarElement = this.getTaskbarElementName(element);
408
+ if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
409
+ const optionItem = {
410
+ value: taskbarElement,
411
+ label: this.getTaskbarElementLabel(element),
412
+ iconName: this.getTaskbarElementIcon(element)
413
+ };
414
+ this._hiddenActionsList.push(optionItem);
415
+ }
416
+ }
417
+ getTaskbarElementName(element) {
418
+ var _a;
419
+ return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
420
+ }
421
+ getTaskbarElementIcon(element) {
422
+ var _a;
423
+ return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
424
+ }
425
+ getTaskbarElementLabel(element) {
426
+ var _a;
427
+ return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
428
+ }
429
+ hasToIgnoreOverFlow(element) {
430
+ return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
431
+ }
432
+ handleOverFlowStrategy() {
433
+ if (this.overflowStrategy === 'hiddenItems') {
434
+ this._overFlowWatcher = new OverflowWatcher(this.buildOverFlowWatcherParams());
435
+ }
436
+ }
437
+ buildOverFlowWatcherParams() {
438
+ return {
439
+ element: this._element,
440
+ callback: this.handleOverFlow.bind(this),
441
+ overFlowDirection: OverflowDirection.HORIZONTAL,
442
+ notOverFlow: this.NOT_OVERFLOW_ELEMENTS
443
+ };
346
444
  }
347
445
  componentDidLoad() {
348
446
  const dataInfo = { dataUnit: this.dataUnit };
349
447
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
448
+ this.handleOverFlowStrategy();
350
449
  }
351
450
  componentDidRender() {
352
451
  this.appendCustomElementsInTaskbar();
452
+ this.updateLastWidth();
453
+ }
454
+ updateLastWidth() {
455
+ this._lastWidth = this._element.getBoundingClientRect().width;
353
456
  }
354
457
  disconnectedCallback() {
458
+ var _a;
355
459
  this.unlinkAllCustomElements();
460
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
356
461
  }
357
462
  unlinkAllCustomElements() {
358
463
  var _a;
@@ -370,14 +475,9 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
370
475
  return undefined;
371
476
  }
372
477
  let index = 0;
373
- return (h(Host, null, this.removeEmpty(this._definitions.map((elem) => {
374
- var _a;
375
- if (elem === TaskbarElement.DIVIDER) {
376
- index = 0;
377
- }
378
- else {
379
- index++;
380
- }
478
+ return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
479
+ var _a, _b;
480
+ index++;
381
481
  if (TaskbarElement[elem]) {
382
482
  return this.getElement(index, TaskbarElement[elem]);
383
483
  }
@@ -387,17 +487,27 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
387
487
  if (this._customElements.has(elem)) {
388
488
  return this.addCustomElementContainer(elem);
389
489
  }
490
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
390
491
  return h("slot", { name: elem });
391
- })), h("div", { class: "taskbar-custom-elements-container" }, h("slot", { name: this.customSlotId }))));
492
+ })), h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }))));
493
+ }
494
+ getHostClasses() {
495
+ if (this.overflowStrategy !== 'hiddenItems')
496
+ return 'no-wrap';
497
+ return `full-width ${this.alignRigth ? 'align-right' : ""}`;
392
498
  }
393
499
  get _element() { return this; }
394
500
  static get watchers() { return {
395
- "buttons": ["observeButtons"]
501
+ "buttons": ["observeButtons"],
502
+ "disabledButtons": ["observeDisabledButtons"],
503
+ "_lastWidth": ["observeLastWidth"]
396
504
  }; }
397
505
  static get style() { return snkTaskbarCss; }
398
506
  }, [6, "snk-taskbar", {
507
+ "alignRigth": [4, "align-rigth"],
399
508
  "customSlotId": [1, "custom-slot-id"],
400
509
  "customContainerId": [1, "custom-container-id"],
510
+ "overflowStrategy": [1, "overflow-strategy"],
401
511
  "configName": [1, "config-name"],
402
512
  "resourceID": [1, "resource-i-d"],
403
513
  "buttons": [1],
@@ -409,9 +519,13 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
409
519
  "presentationMode": [1537, "presentation-mode"],
410
520
  "messagesBuilder": [1040],
411
521
  "_permissions": [32],
522
+ "_overFlowedElements": [32],
412
523
  "_customElements": [32],
413
524
  "_customElementsId": [32],
414
- "_slotContainer": [32]
525
+ "_slotContainer": [32],
526
+ "_hiddenActionsList": [32],
527
+ "_lastWidth": [32],
528
+ "_hasToUpdateOverFlow": [32]
415
529
  }]);
416
530
  function defineCustomElement() {
417
531
  if (typeof customElements === "undefined") {
@@ -126,7 +126,7 @@ const TaskbarActionsButton = /*@__PURE__*/ proxyCustomElement(class extends HTML
126
126
  this.taskbarActionsButtonDisconnected.emit();
127
127
  }
128
128
  render() {
129
- return (h(Host, null, h("div", { class: `ez-padding-left--medium ${this.canShowDropdown() ? ' ez-elevation--16' : ''}` }, h("ez-button", { title: this.title, mode: 'icon', iconName: 'dots-vertical', size: 'small', enabled: this.enabled, onClick: () => this.controlDropdown() }), this.canShowDropdown() && h("ez-dropdown", { items: this.loadItems(), onEzClick: (evt) => this.onSelectAction(evt.detail), onEzOutsideClick: () => this._showDropdown = false, itemBuilder: (item, level) => this.dropdownItemBuilder(item, level) }))));
129
+ return (h(Host, null, h("div", { class: `${this.canShowDropdown() ? ' ez-elevation--16' : ''}` }, h("ez-button", { title: this.title, mode: 'icon', iconName: 'dots-vertical', size: 'small', enabled: this.enabled, onClick: () => this.controlDropdown() }), this.canShowDropdown() && h("ez-dropdown", { items: this.loadItems(), onEzClick: (evt) => this.onSelectAction(evt.detail), onEzOutsideClick: () => this._showDropdown = false, itemBuilder: (item, level) => this.dropdownItemBuilder(item, level) }))));
130
130
  }
131
131
  get _element() { return this; }
132
132
  static get style() { return taskbarActionsButtonCss; }
@@ -1,7 +1,7 @@
1
- import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-36219cd3.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
- import { d as dist, D as DataFetcher } from './DataFetcher-aa159c5a.js';
4
+ import { d as dist, D as DataFetcher } from './DataFetcher-a650ae58.js';
5
5
 
6
6
  class GridConfigFetcher extends ResourceFetcher {
7
7
  constructor() {
@@ -232,7 +232,7 @@ class PersonalizedFilterFetcher {
232
232
  assistent
233
233
  }
234
234
  }`);
235
- this.templateByQuery.set("savePersonalizedFilter", dist.gql `
235
+ this.templateByQuery.set("savePersonalizedFilter", dist.gql `
236
236
  mutation($name: String!, $filterAssistent: InputFilterAssistent!) {
237
237
  $queryAlias$: savePersonalizedFilter(name: $name, filterAssistent: $filterAssistent) {
238
238
  id
@@ -254,11 +254,11 @@ class PersonalizedFilterFetcher {
254
254
  }
255
255
  }`);
256
256
  }
257
- async loadPersonalizedFilter(resourceID, filterID, configName) {
257
+ async loadPersonalizedFilter(resourceID, filterID, configName, legacyConfigName) {
258
258
  return new Promise((resolve, reject) => {
259
259
  DataFetcher.get()
260
260
  .callGraphQL({
261
- values: { name: this.resolveURI(resourceID, configName) + "/" + filterID },
261
+ values: { name: this.resolveURI(resourceID, configName) + "/" + filterID + this.resolveLegacyConfigName(legacyConfigName) },
262
262
  query: this.templateByQuery.get("fetchFilterAssistent"),
263
263
  })
264
264
  .then((resp) => {
@@ -270,6 +270,9 @@ class PersonalizedFilterFetcher {
270
270
  });
271
271
  });
272
272
  }
273
+ resolveLegacyConfigName(legacyConfigName) {
274
+ return legacyConfigName ? `?legacyResourceID=${legacyConfigName}` : '';
275
+ }
273
276
  async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
274
277
  if (!personalizedFilter || Object.keys(personalizedFilter).length == 0) {
275
278
  return Promise.reject(new Error("personalizedFilter não pode ser vazio"));
@@ -358,11 +361,30 @@ var CONFIG_SOURCE;
358
361
  CONFIG_SOURCE["filterBar"] = "filterBar";
359
362
  })(CONFIG_SOURCE || (CONFIG_SOURCE = {}));
360
363
  class ConfigStorage {
361
- static preload(resourceID, configName) {
364
+ static addFilterBarLegacyConfig(configName, legacyConfigName) {
365
+ this.validateConfigName(configName, legacyConfigName);
366
+ this.filterBarLegacyConfig.set(configName, legacyConfigName);
367
+ }
368
+ static addFormLegacyConfig(configName, legacyConfigName) {
369
+ this.validateConfigName(configName, legacyConfigName);
370
+ this.formLegacyConfig.set(configName, legacyConfigName);
371
+ }
372
+ static addGridLegacyConfig(configName, legacyConfigName) {
373
+ this.validateConfigName(configName, legacyConfigName);
374
+ this.gridLegacyConfig.set(configName, legacyConfigName);
375
+ }
376
+ static preload(resourceID, configName, legacyConfigs) {
377
+ if (configName && (legacyConfigs === null || legacyConfigs === void 0 ? void 0 : legacyConfigs.gridLegacyConfig)) {
378
+ ConfigStorage.addGridLegacyConfig(configName, legacyConfigs.gridLegacyConfig);
379
+ }
380
+ if (configName && (legacyConfigs === null || legacyConfigs === void 0 ? void 0 : legacyConfigs.formLegacyConfig)) {
381
+ ConfigStorage.addFormLegacyConfig(configName, legacyConfigs.formLegacyConfig);
382
+ }
362
383
  ConfigStorage.loadFormConfig(configName, resourceID);
363
384
  ConfigStorage.loadGridConfig(configName, resourceID);
364
385
  }
365
386
  static async loadFilterBarConfig(name, resourceID, urlParams) {
387
+ urlParams = this.handleLegacyConfig(name, CONFIG_SOURCE.filterBar, urlParams);
366
388
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.filterBar, resourceID);
367
389
  if (!ConfigStorage.configById.has(cacheID)) {
368
390
  ConfigStorage.configById.set(cacheID, ConfigStorage.filterBarConfigFetcher.getConfig(resourceID, name, urlParams));
@@ -370,6 +392,7 @@ class ConfigStorage {
370
392
  return ConfigStorage.configById.get(cacheID);
371
393
  }
372
394
  static async loadFormConfig(name, resourceID) {
395
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.form);
373
396
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.form, resourceID);
374
397
  if (!ConfigStorage.configById.has(cacheID)) {
375
398
  ConfigStorage.configById.set(cacheID, ConfigStorage.formConfigFetcher.loadFormConfig(name, resourceID));
@@ -377,6 +400,7 @@ class ConfigStorage {
377
400
  return ConfigStorage.configById.get(cacheID);
378
401
  }
379
402
  static async loadGridConfig(name, resourceID) {
403
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.grid);
380
404
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.grid, resourceID);
381
405
  if (!ConfigStorage.configById.has(cacheID)) {
382
406
  ConfigStorage.configById.set(cacheID, ConfigStorage.gridConfigFetcher.getConfig(name, resourceID));
@@ -388,6 +412,7 @@ class ConfigStorage {
388
412
  return this.filterBarConfigFetcher.saveConfig(config, resourceID, name);
389
413
  }
390
414
  static async saveFormConfig(config, name, resourceID) {
415
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.form);
391
416
  await this.deleteFormConfigCache(name, resourceID);
392
417
  return this.formConfigFetcher.saveConfig(config, name, resourceID);
393
418
  }
@@ -402,7 +427,8 @@ class ConfigStorage {
402
427
  return this.gridConfigFetcher.saveConfig(config, name, resourceID);
403
428
  }
404
429
  static async loadPersonalizedFilter(filterId, resourceID, configName) {
405
- return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName);
430
+ const legacyConfigName = this.filterBarLegacyConfig.get(configName);
431
+ return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName, legacyConfigName);
406
432
  }
407
433
  static async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
408
434
  //Ao criar ou alterar um filtro personalizado,
@@ -425,6 +451,38 @@ class ConfigStorage {
425
451
  static async deleteFilterBarConfigCache(name, resourceID) {
426
452
  await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.filterBar);
427
453
  }
454
+ static validateConfigName(configName, legacyConfigName) {
455
+ if (!configName)
456
+ throw Error(this.CONFIG_NAME_ERROR_MESSAGE);
457
+ if (!legacyConfigName)
458
+ throw Error(this.LEGACY_CONFIG_NAME_ERROR_MESSAGE);
459
+ }
460
+ static handleLegacyConfig(configName, configSource, urlParams) {
461
+ let legacyConfigName;
462
+ switch (configSource) {
463
+ case CONFIG_SOURCE.filterBar:
464
+ legacyConfigName = this.filterBarLegacyConfig.get(configName);
465
+ break;
466
+ case CONFIG_SOURCE.grid:
467
+ legacyConfigName = this.gridLegacyConfig.get(configName);
468
+ break;
469
+ case CONFIG_SOURCE.form:
470
+ legacyConfigName = this.formLegacyConfig.get(configName);
471
+ }
472
+ const params = urlParams ? Object.assign({}, urlParams) : {};
473
+ if (legacyConfigName) {
474
+ params['legacyResourceID'] = legacyConfigName;
475
+ }
476
+ return params;
477
+ }
478
+ static handleLegacyConfigAsString(name, source) {
479
+ const params = this.handleLegacyConfig(name, source);
480
+ const legacyResourceID = params['legacyResourceID'];
481
+ if (legacyResourceID) {
482
+ name = name + `?legacyResourceID=${legacyResourceID}`;
483
+ }
484
+ return name;
485
+ }
428
486
  static async deleteConfigCache(name, resourceID, source) {
429
487
  const cacheID = ConfigStorage.buildCacheID(name, source, resourceID);
430
488
  this.configById.delete(cacheID);
@@ -436,6 +494,11 @@ class ConfigStorage {
436
494
  return `req_${source}_${name}_${resourceID}`;
437
495
  }
438
496
  }
497
+ ConfigStorage.CONFIG_NAME_ERROR_MESSAGE = "ConfigName precisa ser informado.";
498
+ ConfigStorage.LEGACY_CONFIG_NAME_ERROR_MESSAGE = "LegacyConfigName precisa ser informado.";
499
+ ConfigStorage.filterBarLegacyConfig = new Map();
500
+ ConfigStorage.formLegacyConfig = new Map();
501
+ ConfigStorage.gridLegacyConfig = new Map();
439
502
  ConfigStorage.configById = new Map();
440
503
  ConfigStorage.filterBarConfigFetcher = new FilterBarConfigFetcher();
441
504
  ConfigStorage.formConfigFetcher = new FormConfigFetcher();
@@ -6786,7 +6786,6 @@ class DataFetcher {
6786
6786
  if (http.readyState == 4 && http.status == 200) {
6787
6787
  try {
6788
6788
  const jsonResp = JSON.parse(http.responseText);
6789
- await this.processServiceBrokerClientEvents({ clientEvents: jsonResp === null || jsonResp === void 0 ? void 0 : jsonResp.clientEvents, serviceName, payloadJson, accept, reject });
6790
6789
  /**
6791
6790
  * Este trecho difere do projeto HTML5 devido à decisão de adotar uma abordagem síncrona para esta chamada. Isso é justificado pelo fato de que, no cenário em questão, a abordagem assíncrona teria impactos negativos.
6792
6791
  *
@@ -6797,8 +6796,10 @@ class DataFetcher {
6797
6796
  if (this.isServiceBrokerError(jsonResp)) {
6798
6797
  reject(this.processServiceBrokerErrorInfo(jsonResp));
6799
6798
  }
6800
- else if (jsonResp.status == DataFetcher.SERVICE_BROKER_STATUS.SERVICE_CANCELED && jsonResp.statusMessage) {
6801
- console.debug(`[DataFetcher] ${jsonResp.statusMessage}`);
6799
+ else if (jsonResp.status == DataFetcher.SERVICE_BROKER_STATUS.SERVICE_CANCELED) {
6800
+ if (jsonResp.statusMessage) {
6801
+ console.debug(`[DataFetcher] ${jsonResp.statusMessage}`);
6802
+ }
6802
6803
  }
6803
6804
  else {
6804
6805
  accept(jsonResp.responseBody);
@@ -6806,6 +6807,7 @@ class DataFetcher {
6806
6807
  (_a = this.application) === null || _a === void 0 ? void 0 : _a.info(jsonResp.statusMessage);
6807
6808
  }
6808
6809
  }
6810
+ this.processServiceBrokerClientEvents({ clientEvents: jsonResp === null || jsonResp === void 0 ? void 0 : jsonResp.clientEvents, serviceName, payloadJson, accept, reject });
6809
6811
  }
6810
6812
  catch (err) {
6811
6813
  console.warn(`Erro ao executar serviço: ${err}`);
@@ -1,6 +1,6 @@
1
- import { C as ConfigStorage } from './ConfigStorage-4151acc8.js';
1
+ import { C as ConfigStorage } from './ConfigStorage-6e241cd7.js';
2
2
  import { ObjectUtils, StringUtils } from '@sankhyalabs/core';
3
- import { F as FormConfigFetcher } from './form-config-fetcher-36219cd3.js';
3
+ import { F as FormConfigFetcher } from './form-config-fetcher-765b8498.js';
4
4
 
5
5
  class SnkFormConfigManager {
6
6
  constructor(configName, resourceID, onConfigChange) {
@@ -8,6 +8,11 @@ class SnkFormConfigManager {
8
8
  this._configName = configName;
9
9
  this._onConfigChange = onConfigChange;
10
10
  }
11
+ addFormLegacyConfig(legacyConfigName) {
12
+ if (this._configName) {
13
+ ConfigStorage.addFormLegacyConfig(this._configName, legacyConfigName);
14
+ }
15
+ }
11
16
  async loadConfig() {
12
17
  return new Promise(resolve => {
13
18
  ConfigStorage.loadFormConfig(this._configName, this._resourceID)
@@ -93,16 +98,19 @@ class SnkFormConfigManager {
93
98
  const normalizedFilter = StringUtils.replaceAccentuatedCharsLower(descriptionFilter.toLocaleLowerCase());
94
99
  return normalizedText.includes(normalizedFilter);
95
100
  }
96
- getInsertionConfig(dataUnit) {
97
- const fields = this.getFieldsList(dataUnit).filter(field => {
98
- if (dataUnit) {
99
- const def = dataUnit.getField(field.name);
100
- if (def && def.readOnly) {
101
- return false;
101
+ getInsertionConfig(dataUnit, ignoreReadOnlyFormFields) {
102
+ let fields = this.getFieldsList(dataUnit);
103
+ if (ignoreReadOnlyFormFields) {
104
+ fields = fields.filter(field => {
105
+ if (dataUnit) {
106
+ const def = dataUnit.getField(field.name);
107
+ if (def && def.readOnly) {
108
+ return false;
109
+ }
102
110
  }
103
- }
104
- return !field.readOnly;
105
- });
111
+ return !field.readOnly;
112
+ });
113
+ }
106
114
  return Object.assign(Object.assign({}, this._config), { fields });
107
115
  }
108
116
  setConfig(config) {
@@ -122,8 +130,8 @@ class SnkFormConfigManager {
122
130
  this._onConfigChange(Object.assign({}, this._config));
123
131
  }
124
132
  }
125
- getConfig(insertionMode, dataUnit) {
126
- return insertionMode ? this.getInsertionConfig(dataUnit) : Object.assign({}, this._config);
133
+ getConfig(insertionMode, dataUnit, ignoreReadOnlyFormFields) {
134
+ return insertionMode ? this.getInsertionConfig(dataUnit, ignoreReadOnlyFormFields !== null && ignoreReadOnlyFormFields !== void 0 ? ignoreReadOnlyFormFields : true) : Object.assign({}, this._config);
127
135
  }
128
136
  getFormConfigFetcher() {
129
137
  if (this._formConfigFetcher == undefined) {
@@ -146,6 +146,10 @@ const snkCrudMessages = {
146
146
 
147
147
  const snkSimpleCrudMessages = {
148
148
  findColumn: "Busca de colunas",
149
+ formConfigUnavaliable: {
150
+ title: "Aviso",
151
+ message: 'A opção "Configurar formulário" será disponibilizada em breve. Enquanto isso, acesse a configuração do fomulário através dos layouts anteriores, HTML5 ou Flex.'
152
+ }
149
153
  };
150
154
 
151
155
  const fileViewerMessages = {
@@ -286,7 +290,8 @@ const snkDataExporterMessages = {
286
290
  },
287
291
  message: {
288
292
  emailSuccess: "E-mail enviado com sucesso",
289
- exportError: "Usuário sem permissão",
293
+ exportError: "Falha ao exportar dados",
294
+ unknownFailure: "O motivo da falha não pode ser identificado.",
290
295
  exportPermission: "O usuário não possui permissão para exportar o arquivo.",
291
296
  },
292
297
  title: {