@sankhyalabs/sankhyablocks 8.15.0-dev.8 → 8.15.0-dev.81

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 (397) hide show
  1. package/dist/cjs/{ConfigStorage-302bbbd4.js → ConfigStorage-942ce74b.js} +70 -7
  2. package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-313debd8.js} +18 -8
  3. package/dist/cjs/IExporterProvider-0c814e9a.js +230 -0
  4. package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
  5. package/dist/cjs/RecordIDUtils-3735135c.js +43 -0
  6. package/dist/cjs/{SnkFormConfigManager-71c4768e.js → SnkFormConfigManager-52f99b4d.js} +23 -15
  7. package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-4a95fe86.js} +25 -13
  8. package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-54f5ff9d.js} +1 -1
  9. package/dist/cjs/{dataunit-fetcher-14108bec.js → dataunit-fetcher-620b29a1.js} +409 -77
  10. package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-2dd00e5b.js} +13 -1
  11. package/dist/cjs/index-f9e81701.js +2 -10
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/{pesquisa-fetcher-ef050a47.js → pesquisa-fetcher-680e198f.js} +12 -13
  14. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  15. package/dist/cjs/{snk-actions-button_2.cjs.entry.js → snk-actions-button_4.cjs.entry.js} +526 -8
  16. package/dist/cjs/snk-application.cjs.entry.js +88 -26
  17. package/dist/cjs/snk-attach.cjs.entry.js +441 -65
  18. package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
  19. package/dist/cjs/snk-crud.cjs.entry.js +125 -28
  20. package/dist/cjs/snk-custom-slot-elements.cjs.entry.js +6 -2
  21. package/dist/cjs/snk-data-exporter.cjs.entry.js +207 -83
  22. package/dist/cjs/snk-data-unit-eca53cfc.js +671 -0
  23. package/dist/cjs/snk-data-unit.cjs.entry.js +11 -2
  24. package/dist/cjs/snk-detail-view.cjs.entry.js +52 -13
  25. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  26. package/dist/cjs/snk-filter-bar.cjs.entry.js +65 -8
  27. package/dist/cjs/snk-filter-detail.cjs.entry.js +4 -1
  28. package/dist/cjs/snk-filter-item.cjs.entry.js +13 -6
  29. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  30. package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -1
  31. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  32. package/dist/cjs/snk-form-config.cjs.entry.js +47 -27
  33. package/dist/cjs/snk-form-view.cjs.entry.js +67 -0
  34. package/dist/cjs/snk-form.cjs.entry.js +60 -8
  35. package/dist/cjs/snk-grid.cjs.entry.js +200 -122
  36. package/dist/cjs/{snk-guides-viewer-c8b9374f.js → snk-guides-viewer-5d5f0f25.js} +56 -20
  37. package/dist/cjs/snk-guides-viewer.cjs.entry.js +10 -10
  38. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
  39. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  40. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  41. package/dist/cjs/snk-simple-crud.cjs.entry.js +512 -40
  42. package/dist/cjs/snk-taskbar.cjs.entry.js +164 -21
  43. package/dist/cjs/{taskbar-elements-01b85b99.js → taskbar-elements-d9392685.js} +11 -11
  44. package/dist/collection/collection-manifest.json +8 -8
  45. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  46. package/dist/collection/components/snk-application/snk-application.js +148 -24
  47. package/dist/collection/components/snk-attach/snk-attach.js +231 -44
  48. package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
  49. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
  50. package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
  51. package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
  52. package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
  53. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +118 -0
  54. package/dist/collection/components/snk-attach/structure/index.js +6 -3
  55. package/dist/collection/components/snk-configurator/snk-configurator.js +1 -1
  56. package/dist/collection/components/snk-crud/interfaces/PropsCustomEditor.js +1 -0
  57. package/dist/collection/components/snk-crud/interfaces/PropsCustomRender.js +1 -0
  58. package/dist/collection/components/snk-crud/snk-crud.js +359 -19
  59. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +137 -2
  60. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +161 -0
  61. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  62. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +163 -13
  63. package/dist/collection/components/snk-custom-slot-elements/snk-custom-slot-elements.css +1 -1
  64. package/dist/collection/components/snk-custom-slot-elements/snk-custom-slot-elements.js +22 -1
  65. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +90 -0
  66. package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +68 -0
  67. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +54 -1
  68. package/dist/collection/components/snk-data-exporter/interfaces/IExporterStrategy.js +1 -0
  69. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +58 -0
  70. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +55 -0
  71. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +44 -50
  72. package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +88 -0
  73. package/dist/collection/components/snk-data-exporter/utils/RecordIDUtils.js +38 -0
  74. package/dist/collection/components/snk-data-unit/snk-data-unit.js +501 -216
  75. package/dist/collection/components/snk-data-unit/test/resources/metadataMock.js +24 -0
  76. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  77. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  78. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -1
  79. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +22 -1
  80. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +31 -6
  81. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +19 -1
  82. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +24 -1
  83. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +175 -3
  84. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +3 -1
  85. package/dist/collection/components/snk-form/snk-form.js +126 -5
  86. package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.js +22 -14
  87. package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +50 -30
  88. package/dist/collection/components/snk-grid/snk-grid.js +360 -115
  89. package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.js +130 -123
  90. package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.js +1 -1
  91. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
  92. package/dist/collection/components/snk-simple-crud/regular-buttons.js +3 -0
  93. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +10 -2
  94. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +847 -23
  95. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +4 -2
  96. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +11 -11
  97. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  98. package/dist/collection/components/snk-taskbar/snk-taskbar.js +218 -20
  99. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +35 -0
  100. package/dist/collection/lib/configs/ConfigStorage.js +63 -3
  101. package/dist/collection/lib/dataUnit/InMemoryLoader.js +15 -42
  102. package/dist/collection/lib/dataUnit/ValueFormatter.js +4 -0
  103. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +33 -0
  104. package/dist/collection/lib/dataUnit/interfaces/InMemoryLoaderConfig.js +1 -0
  105. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +18 -8
  106. package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
  107. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
  108. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
  109. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
  110. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
  111. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
  112. package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
  113. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +3 -0
  114. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +4 -0
  115. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +11 -13
  116. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +30 -2
  117. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.js +1 -0
  118. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.js +1 -0
  119. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +87 -24
  120. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.js +22 -0
  121. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +12 -0
  122. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  123. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +6 -3
  124. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +12 -13
  125. package/dist/collection/lib/index.js +1 -1
  126. package/dist/collection/lib/message/SnkMessageBuilder.js +25 -32
  127. package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
  128. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -1
  129. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +1 -0
  130. package/dist/collection/lib/message/resources/snk-simple-crud.msg.js +4 -0
  131. package/dist/collection/lib/utils/CrudUtils.js +13 -1
  132. package/dist/components/ConfigStorage.js +68 -5
  133. package/dist/components/DataFetcher.js +18 -8
  134. package/dist/components/IExporterProvider.js +298 -0
  135. package/dist/components/ISave.js +42 -0
  136. package/dist/components/SnkFormConfigManager.js +21 -13
  137. package/dist/components/SnkMessageBuilder.js +25 -13
  138. package/dist/components/dataunit-fetcher.js +185 -241
  139. package/dist/components/form-config-fetcher.js +12 -0
  140. package/dist/components/index.d.ts +6 -6
  141. package/dist/components/index2.js +198 -33
  142. package/dist/{esm/pesquisa-fetcher-dd3ca0a5.js → components/pesquisa-fetcher.js} +13 -14
  143. package/dist/components/snk-actions-button2.js +4 -10
  144. package/dist/components/snk-application2.js +86 -20
  145. package/dist/components/snk-attach2.js +496 -72
  146. package/dist/components/snk-configurator2.js +1 -1
  147. package/dist/components/snk-crud.js +133 -23
  148. package/dist/components/snk-custom-slot-elements.js +7 -3
  149. package/dist/components/snk-data-exporter2.js +202 -83
  150. package/dist/components/snk-data-unit2.js +464 -214
  151. package/dist/components/snk-detail-view2.js +137 -23
  152. package/dist/components/snk-entity-list.js +5 -3
  153. package/dist/components/snk-expression-item2.js +1 -1
  154. package/dist/components/snk-filter-bar2.js +69 -6
  155. package/dist/components/snk-filter-detail2.js +5 -1
  156. package/dist/components/snk-filter-item2.js +14 -6
  157. package/dist/components/snk-filter-modal.js +4 -2
  158. package/dist/components/snk-filter-multi-select.js +2 -1
  159. package/dist/components/snk-form-config2.js +46 -26
  160. package/dist/components/snk-form-view2.js +72 -1
  161. package/dist/components/snk-form.js +60 -5
  162. package/dist/components/snk-grid-config2.js +128 -102
  163. package/dist/components/snk-grid2.js +209 -119
  164. package/dist/components/snk-personalized-filter-editor.js +3 -1
  165. package/dist/components/snk-personalized-filter2.js +1 -1
  166. package/dist/components/snk-pesquisa2.js +1 -1
  167. package/dist/components/snk-simple-crud2.js +574 -36
  168. package/dist/components/snk-taskbar2.js +186 -36
  169. package/dist/components/taskbar-actions-button2.js +4 -2
  170. package/dist/esm/{ConfigStorage-4151acc8.js → ConfigStorage-86187da3.js} +70 -7
  171. package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-c1baf61d.js} +18 -8
  172. package/dist/esm/IExporterProvider-c0194569.js +221 -0
  173. package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
  174. package/dist/esm/RecordIDUtils-87d02110.js +41 -0
  175. package/dist/esm/{SnkFormConfigManager-5c7d3771.js → SnkFormConfigManager-5b0d69cd.js} +23 -15
  176. package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-3a767111.js} +25 -13
  177. package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-039abba3.js} +1 -1
  178. package/dist/esm/{dataunit-fetcher-cbec1594.js → dataunit-fetcher-3fbf9d12.js} +392 -70
  179. package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-30fb808f.js} +13 -1
  180. package/dist/esm/index-a7d3d3f1.js +2 -10
  181. package/dist/esm/loader.js +1 -1
  182. package/dist/esm/pesquisa-fetcher-03c8f919.js +164 -0
  183. package/dist/esm/sankhyablocks.js +1 -1
  184. package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +525 -9
  185. package/dist/esm/snk-application.entry.js +88 -26
  186. package/dist/esm/snk-attach.entry.js +441 -65
  187. package/dist/esm/snk-configurator.entry.js +1 -1
  188. package/dist/esm/snk-crud.entry.js +125 -28
  189. package/dist/esm/snk-custom-slot-elements.entry.js +7 -3
  190. package/dist/esm/snk-data-exporter.entry.js +208 -84
  191. package/dist/esm/snk-data-unit-49b898f7.js +669 -0
  192. package/dist/esm/snk-data-unit.entry.js +11 -2
  193. package/dist/esm/snk-detail-view.entry.js +52 -13
  194. package/dist/esm/snk-entity-list.entry.js +5 -3
  195. package/dist/esm/snk-filter-bar.entry.js +65 -8
  196. package/dist/esm/snk-filter-detail.entry.js +4 -1
  197. package/dist/esm/snk-filter-item.entry.js +13 -6
  198. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  199. package/dist/esm/snk-filter-modal.entry.js +2 -1
  200. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  201. package/dist/esm/snk-form-config.entry.js +48 -28
  202. package/dist/esm/snk-form-view.entry.js +67 -0
  203. package/dist/esm/snk-form.entry.js +60 -8
  204. package/dist/esm/snk-grid.entry.js +200 -122
  205. package/dist/esm/{snk-guides-viewer-8da24475.js → snk-guides-viewer-ef8c4eec.js} +56 -20
  206. package/dist/esm/snk-guides-viewer.entry.js +10 -10
  207. package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
  208. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  209. package/dist/esm/snk-pesquisa.entry.js +1 -1
  210. package/dist/esm/snk-simple-crud.entry.js +505 -33
  211. package/dist/esm/snk-taskbar.entry.js +165 -22
  212. package/dist/esm/{taskbar-elements-d4d0b424.js → taskbar-elements-ad766858.js} +11 -11
  213. package/dist/sankhyablocks/p-039c7148.entry.js +1 -0
  214. package/dist/sankhyablocks/p-04821c60.entry.js +1 -0
  215. package/dist/sankhyablocks/p-060fdb6c.js +1 -0
  216. package/dist/sankhyablocks/p-14a08904.entry.js +1 -0
  217. package/dist/sankhyablocks/p-1db45d26.entry.js +1 -0
  218. package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
  219. package/dist/sankhyablocks/p-21a81901.entry.js +1 -0
  220. package/dist/sankhyablocks/p-294df368.entry.js +1 -0
  221. package/dist/sankhyablocks/p-2ac8bd11.entry.js +1 -0
  222. package/dist/sankhyablocks/p-32062be4.entry.js +1 -0
  223. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  224. package/dist/sankhyablocks/p-3f1efb97.entry.js +1 -0
  225. package/dist/sankhyablocks/p-47b60deb.entry.js +1 -0
  226. package/dist/sankhyablocks/p-4ce73e88.js +1 -0
  227. package/dist/sankhyablocks/p-54a5d52a.entry.js +1 -0
  228. package/dist/sankhyablocks/p-58687027.entry.js +1 -0
  229. package/dist/sankhyablocks/p-5fa1576b.entry.js +11 -0
  230. package/dist/sankhyablocks/p-61dd89eb.js +1 -0
  231. package/dist/sankhyablocks/p-672302c3.js +60 -0
  232. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  233. package/dist/sankhyablocks/p-7663f597.entry.js +1 -0
  234. package/dist/sankhyablocks/p-8322ccdb.entry.js +1 -0
  235. package/dist/sankhyablocks/p-913a9979.js +1 -0
  236. package/dist/sankhyablocks/p-9863d682.js +1 -0
  237. package/dist/sankhyablocks/{p-e0fd9555.entry.js → p-a1d72395.entry.js} +1 -1
  238. package/dist/sankhyablocks/p-a64baa0f.entry.js +1 -0
  239. package/dist/sankhyablocks/p-af8efd95.js +6 -0
  240. package/dist/sankhyablocks/p-aff76a53.js +56 -0
  241. package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
  242. package/dist/sankhyablocks/p-ba05fdb8.entry.js +1 -0
  243. package/dist/sankhyablocks/p-babe7665.js +1 -0
  244. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  245. package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
  246. package/dist/sankhyablocks/p-d26365ad.js +1 -0
  247. package/dist/sankhyablocks/{p-9695f78b.js → p-dc7c9047.js} +1 -1
  248. package/dist/sankhyablocks/p-df5451c7.js +26 -0
  249. package/dist/sankhyablocks/p-e5c25e0b.entry.js +1 -0
  250. package/dist/sankhyablocks/p-e8763234.entry.js +1 -0
  251. package/dist/sankhyablocks/{p-7f3c7b09.entry.js → p-eae7a817.entry.js} +1 -1
  252. package/dist/sankhyablocks/p-f88cfc3c.js +1 -0
  253. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  254. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  255. package/dist/types/components/snk-application/snk-application.d.ts +27 -5
  256. package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
  257. package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
  258. package/dist/types/components/snk-attach/snk-attach.d.ts +34 -10
  259. package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
  260. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +40 -0
  261. package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
  262. package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
  263. package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
  264. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +16 -0
  265. package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
  266. package/dist/types/components/snk-crud/interfaces/PropsCustomEditor.d.ts +4 -0
  267. package/dist/types/components/snk-crud/interfaces/PropsCustomRender.d.ts +4 -0
  268. package/dist/types/components/snk-crud/snk-crud.d.ts +57 -1
  269. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +24 -1
  270. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +28 -3
  271. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +30 -1
  272. package/dist/types/components/snk-custom-slot-elements/snk-custom-slot-elements.d.ts +6 -0
  273. package/dist/types/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.d.ts +13 -0
  274. package/dist/types/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.d.ts +11 -0
  275. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +24 -4
  276. package/dist/types/components/snk-data-exporter/interfaces/IExporterStrategy.d.ts +5 -0
  277. package/dist/types/components/snk-data-exporter/providers/ClientSideExporterProvider.d.ts +17 -0
  278. package/dist/types/components/snk-data-exporter/providers/ServerSideExporterProvider.d.ts +17 -0
  279. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +3 -1
  280. package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +77 -0
  281. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +3 -0
  282. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +61 -2
  283. package/dist/types/components/snk-data-unit/test/resources/metadataMock.d.ts +3 -0
  284. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +4 -0
  285. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +7 -3
  286. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +5 -0
  287. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +31 -1
  288. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +3 -1
  289. package/dist/types/components/snk-form/snk-form.d.ts +20 -1
  290. package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +2 -1
  291. package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +5 -3
  292. package/dist/types/components/snk-grid/snk-grid.d.ts +69 -7
  293. package/dist/types/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.d.ts +11 -6
  294. package/dist/types/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.d.ts +1 -1
  295. package/dist/types/components/snk-simple-crud/regular-buttons.d.ts +3 -0
  296. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +142 -6
  297. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +1 -1
  298. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +38 -1
  299. package/dist/types/components.d.ts +536 -18
  300. package/dist/types/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.d.ts +11 -0
  301. package/dist/types/lib/configs/ConfigStorage.d.ts +21 -1
  302. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +2 -3
  303. package/dist/types/lib/dataUnit/ValueFormatter.d.ts +2 -0
  304. package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +4 -0
  305. package/dist/types/lib/dataUnit/interfaces/InMemoryLoaderConfig.d.ts +3 -0
  306. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  307. package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
  308. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
  309. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
  310. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
  311. package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
  312. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +2 -1
  313. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +1 -0
  314. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +1 -0
  315. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
  316. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.d.ts +10 -0
  317. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.d.ts +7 -0
  318. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +7 -0
  319. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.d.ts +20 -0
  320. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +3 -0
  321. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +2 -0
  322. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  323. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
  324. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +1 -0
  325. package/dist/types/lib/index.d.ts +1 -1
  326. package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
  327. package/package.json +15 -6
  328. package/dist/cjs/PreloadManager-84466da6.js +0 -224
  329. package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
  330. package/dist/cjs/snk-data-unit-1bc69073.js +0 -462
  331. package/dist/cjs/snk-grid-config.cjs.entry.js +0 -483
  332. package/dist/cjs/snk-select-box.cjs.entry.js +0 -25
  333. package/dist/collection/lib/http/data-fetcher/fetchers/fetchDataExporter/index.js +0 -34
  334. package/dist/components/field-search.js +0 -121
  335. package/dist/components/index3.js +0 -199
  336. package/dist/esm/PreloadManager-c1c2f2b4.js +0 -222
  337. package/dist/esm/SnkMultiSelectionListDataSource-44494b0e.js +0 -43
  338. package/dist/esm/snk-data-unit-6208ebf0.js +0 -460
  339. package/dist/esm/snk-grid-config.entry.js +0 -479
  340. package/dist/esm/snk-select-box.entry.js +0 -21
  341. package/dist/sankhyablocks/p-03dcc5ff.entry.js +0 -1
  342. package/dist/sankhyablocks/p-0874adb5.entry.js +0 -1
  343. package/dist/sankhyablocks/p-094c30cb.js +0 -1
  344. package/dist/sankhyablocks/p-0d7863ed.js +0 -26
  345. package/dist/sankhyablocks/p-1d75d9f9.entry.js +0 -1
  346. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  347. package/dist/sankhyablocks/p-25927311.entry.js +0 -1
  348. package/dist/sankhyablocks/p-32f0935f.js +0 -1
  349. package/dist/sankhyablocks/p-374d03f6.js +0 -1
  350. package/dist/sankhyablocks/p-3891ae6f.js +0 -60
  351. package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
  352. package/dist/sankhyablocks/p-573a07c5.js +0 -1
  353. package/dist/sankhyablocks/p-5f74c859.entry.js +0 -1
  354. package/dist/sankhyablocks/p-69754d94.entry.js +0 -1
  355. package/dist/sankhyablocks/p-6977a26c.entry.js +0 -1
  356. package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
  357. package/dist/sankhyablocks/p-761ed32f.entry.js +0 -1
  358. package/dist/sankhyablocks/p-7d8d7fe9.entry.js +0 -1
  359. package/dist/sankhyablocks/p-8d70b5d5.entry.js +0 -1
  360. package/dist/sankhyablocks/p-98674137.entry.js +0 -1
  361. package/dist/sankhyablocks/p-a9e4bb55.entry.js +0 -1
  362. package/dist/sankhyablocks/p-a9e5b094.entry.js +0 -1
  363. package/dist/sankhyablocks/p-aa0ae6bc.entry.js +0 -1
  364. package/dist/sankhyablocks/p-aa95fb2c.js +0 -56
  365. package/dist/sankhyablocks/p-b05ab13d.entry.js +0 -1
  366. package/dist/sankhyablocks/p-ba3d3fa9.entry.js +0 -11
  367. package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
  368. package/dist/sankhyablocks/p-c4d19840.entry.js +0 -1
  369. package/dist/sankhyablocks/p-c6e477ff.js +0 -1
  370. package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
  371. package/dist/sankhyablocks/p-cb7419e0.entry.js +0 -1
  372. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  373. package/dist/sankhyablocks/p-d6317851.entry.js +0 -1
  374. package/dist/sankhyablocks/p-d81f20c4.entry.js +0 -1
  375. package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
  376. package/dist/sankhyablocks/p-e6380c60.js +0 -1
  377. package/dist/sankhyablocks/p-ff6064e7.js +0 -1
  378. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
  379. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/index.d.ts +0 -3
  380. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
  381. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
  382. /package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.css +0 -0
  383. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.css +0 -0
  384. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.js +0 -0
  385. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.css +0 -0
  386. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.js +0 -0
  387. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.css +0 -0
  388. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.js +0 -0
  389. /package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.css +0 -0
  390. /package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.css +0 -0
  391. /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
  392. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.d.ts +0 -0
  393. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.d.ts +0 -0
  394. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -0
  395. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
  396. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
  397. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.d.ts +0 -0
@@ -67,7 +67,7 @@ export class TaskbarActionsButton {
67
67
  }
68
68
  }
69
69
  getSelectedAction(id, actions) {
70
- let selectedItem;
70
+ let selectedItem = null;
71
71
  for (const item of actions) {
72
72
  if (item.id === id) {
73
73
  selectedItem = item;
@@ -76,6 +76,8 @@ export class TaskbarActionsButton {
76
76
  if (!(item === null || item === void 0 ? void 0 : item.children))
77
77
  continue;
78
78
  selectedItem = this.getSelectedAction(id, item.children);
79
+ if (selectedItem)
80
+ break;
79
81
  }
80
82
  return selectedItem;
81
83
  }
@@ -116,7 +118,7 @@ export class TaskbarActionsButton {
116
118
  this.taskbarActionsButtonDisconnected.emit();
117
119
  }
118
120
  render() {
119
- 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) }))));
121
+ 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) }))));
120
122
  }
121
123
  static get is() { return "taskbar-actions-button"; }
122
124
  static get encapsulation() { return "scoped"; }
@@ -47,7 +47,7 @@ export const buildCustomButton = (def, className, dataElementId, action, isEnabl
47
47
  return textButton(def.name, className, dataElementId, text, hint, action, isEnabled);
48
48
  }
49
49
  };
50
- export const buildElem = (element, className, dataElementId, getTitle, action, isEnabled, actions, configName, presentationMode) => {
50
+ export const buildElem = (element, className, dataElementId, getTitle, action, isEnabled, actions, dataExporterStoreKey, presentationMode) => {
51
51
  var _a;
52
52
  const title = getTitle(element);
53
53
  switch (element) {
@@ -86,29 +86,29 @@ export const buildElem = (element, className, dataElementId, getTitle, action, i
86
86
  case TaskbarElement.CONFIGURATOR:
87
87
  return iconButton("settings-inverted", element, className, dataElementId, title, action, isEnabled);
88
88
  case TaskbarElement.MORE_OPTIONS:
89
- return actionButton(element, dataElementId, title, isEnabled, actions, action);
89
+ return actionButton(element, className, dataElementId, title, isEnabled, actions, action);
90
90
  case TaskbarElement.DIVIDER:
91
- return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium", "data-taskbar-divider": true });
91
+ return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin--none ez-margin-left--medium", "data-taskbar-divider": true });
92
92
  case TaskbarElement.DATA_EXPORTER:
93
- const provider = (_a = store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[configName];
94
- return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId });
93
+ const provider = (_a = store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[dataExporterStoreKey];
94
+ return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId, "data-taskbar-element": element });
95
95
  case TaskbarElement.ATTACH:
96
96
  return iconButton("anexo", element, className, dataElementId, title, action, isEnabled);
97
97
  case TaskbarElement.ACTIONS_BUTTON:
98
- return h("snk-actions-button", { "data-element-id": dataElementId });
98
+ return h("snk-actions-button", { "data-element-id": dataElementId, "data-taskbar-element": element });
99
99
  }
100
100
  };
101
101
  function textButton(name, className, dataElementId, text, title, action, isEnabled) {
102
- return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) });
102
+ 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) });
103
103
  }
104
104
  function iconButton(iconName, name, className, dataElementId, title, action, isEnabled) {
105
- 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) });
105
+ 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) });
106
106
  }
107
107
  function iconTextButton(iconName, name, className, dataElementId, text, title, action, isEnabled) {
108
- return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) }, h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
108
+ 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) }, h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
109
109
  }
110
- function actionButton(element, dataElementId, title, isEnabled, actions, action) {
110
+ function actionButton(element, className, dataElementId, title, isEnabled, actions, action) {
111
111
  return actions && actions.length > 0
112
- ? h("taskbar-actions-button", { key: dataElementId, title: title, "data-element-id": dataElementId, enabled: isEnabled(element), actions: actions, onTaskbarActionSelected: (evt) => action(evt.detail.value) })
112
+ ? 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) })
113
113
  : undefined;
114
114
  }
@@ -1,3 +1,20 @@
1
1
  :host {
2
2
  display: flex;
3
+ flex-wrap: wrap;
4
+ }
5
+
6
+ :host.no-wrap {
7
+ flex-wrap: nowrap;
8
+ }
9
+
10
+ :host.full-width{
11
+ width: 100%;
12
+ }
13
+
14
+ :host.align-right{
15
+ justify-content: flex-end;
16
+ }
17
+
18
+ .overflowed {
19
+ display: none;
3
20
  }
@@ -1,11 +1,15 @@
1
- import { ApplicationContext, ElementIDUtils, StringUtils } from '@sankhyalabs/core';
1
+ import { ApplicationContext, ElementIDUtils, OverflowDirection, OverflowWatcher, StringUtils, OVERFLOWED_CLASS_NAME } from '@sankhyalabs/core';
2
2
  import { h, Host } from '@stencil/core';
3
3
  import { AuthorizationConfig } from '../snk-configurator/AuthorizationConfig';
4
4
  import { AuthorizationElements, buildCustomButton, buildElem, TaskbarElement, VisibleWhenForbidden, } from './elements/taskbar-elements';
5
5
  import { PresentationMode } from '../../lib/@types';
6
+ import { Action as DUAction } from '@sankhyalabs/core';
6
7
  export class SnkTaskbar {
7
8
  constructor() {
8
9
  this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
10
+ this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME = 'taskbar-custom-elements-container';
11
+ this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
12
+ this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
9
13
  this._titleKeyByElement = {
10
14
  [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
11
15
  [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
@@ -22,12 +26,31 @@ export class SnkTaskbar {
22
26
  [TaskbarElement.CONFIGURATOR]: "snkTaskbar.titleConfigurator",
23
27
  [TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
24
28
  };
29
+ this.onSaveEvent = (action) => {
30
+ switch (action.type) {
31
+ case DUAction.FIELD_INVALIDATED:
32
+ case DUAction.DATA_SAVED:
33
+ case DUAction.SAVING_ERROR:
34
+ this._isWaitingForSave = false;
35
+ break;
36
+ case DUAction.SAVING_DATA:
37
+ this._isWaitingForSave = true;
38
+ break;
39
+ }
40
+ };
25
41
  this._permissions = undefined;
42
+ this._overFlowedElements = [];
26
43
  this._customElements = undefined;
27
44
  this._customElementsId = undefined;
28
45
  this._slotContainer = undefined;
46
+ this._hiddenActionsList = [];
47
+ this._lastWidth = undefined;
48
+ this._hasToUpdateOverFlow = false;
49
+ this._isWaitingForSave = false;
50
+ this.alignRigth = false;
29
51
  this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
30
52
  this.customContainerId = undefined;
53
+ this.overflowStrategy = 'hiddenItems';
31
54
  this.configName = undefined;
32
55
  this.resourceID = undefined;
33
56
  this.buttons = undefined;
@@ -39,8 +62,28 @@ export class SnkTaskbar {
39
62
  this.presentationMode = PresentationMode.PRIMARY;
40
63
  this.messagesBuilder = undefined;
41
64
  }
65
+ handleCustomSlotElementsLoaded(event) {
66
+ if (this.hasToSearchCustomElements(event)) {
67
+ this.getCustomElements(true);
68
+ }
69
+ }
70
+ hasToSearchCustomElements(event) {
71
+ return this.customSlotId === event.detail && !this._slotContainer;
72
+ }
42
73
  observeButtons() {
43
74
  this._definitions = undefined;
75
+ requestAnimationFrame(() => {
76
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
77
+ });
78
+ }
79
+ observeDisabledButtons() {
80
+ var _a;
81
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate();
82
+ }
83
+ observeLastWidth(newValue, oldValue) {
84
+ if (oldValue === 0 && newValue !== 0) {
85
+ this._hasToUpdateOverFlow = true;
86
+ }
44
87
  }
45
88
  // Internal methods
46
89
  elementsFromString(strButtons) {
@@ -110,7 +153,13 @@ export class SnkTaskbar {
110
153
  this.dataUnit.cancelEdition();
111
154
  break;
112
155
  case TaskbarElement.SAVE:
113
- this.dataUnit.saveData();
156
+ if (!this._isWaitingForSave) {
157
+ this._isWaitingForSave = true;
158
+ this.dataUnit.saveData()
159
+ .finally(() => {
160
+ this._isWaitingForSave = false;
161
+ });
162
+ }
114
163
  break;
115
164
  }
116
165
  }
@@ -135,13 +184,21 @@ export class SnkTaskbar {
135
184
  className += "ez-padding-left--medium";
136
185
  }
137
186
  const taskbarElement = TaskbarElement[def.toString()];
187
+ const dataExporterStoreKey = this._element.dataset.exporterStoreKey || this.configName;
138
188
  if (taskbarElement) {
139
- 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);
189
+ return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.buildDynamicActionsList(), dataExporterStoreKey, this.presentationMode);
140
190
  }
141
191
  else {
142
192
  return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
143
193
  }
144
194
  }
195
+ buildDynamicActionsList() {
196
+ var _a;
197
+ if (this._hiddenActionsList.length) {
198
+ return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), { type: 'divider', label: "", value: "" }, ...this._hiddenActionsList];
199
+ }
200
+ return this.actionsList;
201
+ }
145
202
  getIdElemBtnNative(taskbarElem) {
146
203
  return StringUtils.toCamelCase(taskbarElem);
147
204
  }
@@ -182,28 +239,36 @@ export class SnkTaskbar {
182
239
  });
183
240
  }
184
241
  addCustomElementContainer(elem) {
242
+ var _a;
185
243
  const elementId = `${this.TASKBAR_ITEM_ID_PREFIX}${elem}`;
186
244
  if (!this._customElementsId.includes(elementId)) {
187
245
  this._customElementsId.push(elementId);
246
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.addNotOverFlowElement(elementId);
188
247
  }
189
- return h("span", { key: elementId, id: elementId });
248
+ return h("span", { class: "ez-padding-left--medium", key: elementId, id: elementId });
190
249
  }
191
- getCustomElements() {
250
+ getCustomElements(searchOnDocument) {
192
251
  var _a, _b;
193
252
  this._customElementsId = [];
194
253
  this._customElements = new Map();
195
- this._slotContainer = this.buildSlotContainer();
254
+ this._slotContainer = this.buildSlotContainer(searchOnDocument);
196
255
  const customElementsArray = Array.from((_b = (_a = this._slotContainer) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : []);
197
256
  customElementsArray.forEach(item => this._customElements.set(item.id, item));
198
257
  }
199
- buildSlotContainer() {
258
+ buildSlotContainer(searchOnDocument) {
259
+ let slotContainer;
200
260
  if (this.customContainerId) {
201
261
  const container = document.querySelector(`#${this.customContainerId}`);
202
- return container === null || container === void 0 ? void 0 : container.querySelector(`#${this.customSlotId}`);
262
+ slotContainer = container === null || container === void 0 ? void 0 : container.querySelector(`#${this.customSlotId}`);
203
263
  }
204
264
  else {
205
- return this._element.querySelector(`#${this.customSlotId}`);
265
+ slotContainer = this._element.querySelector(`#${this.customSlotId}`);
206
266
  }
267
+ // Caso nõa encontre o slot container dentro do próprio elemento, tenta buscar na DOM do document.
268
+ if (searchOnDocument && !slotContainer) {
269
+ slotContainer = document.querySelector(`#${this.customSlotId}`);
270
+ }
271
+ return slotContainer;
207
272
  }
208
273
  componentWillLoad() {
209
274
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
@@ -216,20 +281,96 @@ export class SnkTaskbar {
216
281
  this.getCustomElements();
217
282
  }
218
283
  componentWillRender() {
284
+ this.handleDefinitions();
285
+ this.validatePresentationMode();
286
+ this.updateOverFlowIfNeeded();
287
+ }
288
+ handleDefinitions() {
219
289
  if (this._definitions == undefined && this._permissions) {
220
290
  this._definitions = this.elementsFromString(this.buttons);
221
291
  }
222
- this.validatePresentationMode();
292
+ }
293
+ updateOverFlowIfNeeded() {
294
+ if (this._hasToUpdateOverFlow) {
295
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
296
+ this._hasToUpdateOverFlow = false;
297
+ }
298
+ }
299
+ handleOverFlow(overFlowingElements) {
300
+ const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
301
+ this.resetOverFlowedElements();
302
+ this.doOverFlowElements(elementsToHandle);
303
+ }
304
+ resetOverFlowedElements() {
305
+ this._overFlowedElements.forEach(element => {
306
+ element.classList.remove(OVERFLOWED_CLASS_NAME);
307
+ });
308
+ this._hiddenActionsList = [];
309
+ this._overFlowedElements = [];
310
+ }
311
+ doOverFlowElements(overFlowedElements) {
312
+ overFlowedElements.forEach(element => {
313
+ element.classList.add(OVERFLOWED_CLASS_NAME);
314
+ this._overFlowedElements.push(element);
315
+ this.addItemToActionList(element);
316
+ });
317
+ }
318
+ addItemToActionList(element) {
319
+ const taskbarElement = this.getTaskbarElementName(element);
320
+ if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
321
+ const optionItem = {
322
+ value: taskbarElement,
323
+ label: this.getTaskbarElementLabel(element),
324
+ iconName: this.getTaskbarElementIcon(element)
325
+ };
326
+ this._hiddenActionsList.push(optionItem);
327
+ }
328
+ }
329
+ getTaskbarElementName(element) {
330
+ var _a;
331
+ return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
332
+ }
333
+ getTaskbarElementIcon(element) {
334
+ var _a;
335
+ return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
336
+ }
337
+ getTaskbarElementLabel(element) {
338
+ var _a;
339
+ return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
340
+ }
341
+ hasToIgnoreOverFlow(element) {
342
+ return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
343
+ }
344
+ handleOverFlowStrategy() {
345
+ if (this.overflowStrategy === 'hiddenItems') {
346
+ this._overFlowWatcher = new OverflowWatcher(this.buildOverFlowWatcherParams());
347
+ }
348
+ }
349
+ buildOverFlowWatcherParams() {
350
+ return {
351
+ element: this._element,
352
+ callback: this.handleOverFlow.bind(this),
353
+ overFlowDirection: OverflowDirection.HORIZONTAL,
354
+ notOverFlow: this.NOT_OVERFLOW_ELEMENTS
355
+ };
223
356
  }
224
357
  componentDidLoad() {
225
358
  const dataInfo = { dataUnit: this.dataUnit };
226
359
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
360
+ this.handleOverFlowStrategy();
361
+ this.dataUnit.subscribe(this.onSaveEvent);
227
362
  }
228
363
  componentDidRender() {
229
364
  this.appendCustomElementsInTaskbar();
365
+ this.updateLastWidth();
366
+ }
367
+ updateLastWidth() {
368
+ this._lastWidth = this._element.getBoundingClientRect().width;
230
369
  }
231
370
  disconnectedCallback() {
371
+ var _a;
232
372
  this.unlinkAllCustomElements();
373
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
233
374
  }
234
375
  unlinkAllCustomElements() {
235
376
  var _a;
@@ -247,14 +388,9 @@ export class SnkTaskbar {
247
388
  return undefined;
248
389
  }
249
390
  let index = 0;
250
- return (h(Host, null, this.removeEmpty(this._definitions.map((elem) => {
251
- var _a;
252
- if (elem === TaskbarElement.DIVIDER) {
253
- index = 0;
254
- }
255
- else {
256
- index++;
257
- }
391
+ return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
392
+ var _a, _b;
393
+ index++;
258
394
  if (TaskbarElement[elem]) {
259
395
  return this.getElement(index, TaskbarElement[elem]);
260
396
  }
@@ -264,8 +400,14 @@ export class SnkTaskbar {
264
400
  if (this._customElements.has(elem)) {
265
401
  return this.addCustomElementContainer(elem);
266
402
  }
403
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
267
404
  return h("slot", { name: elem });
268
- })), h("div", { class: "taskbar-custom-elements-container" }, h("slot", { name: this.customSlotId }))));
405
+ })), h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }))));
406
+ }
407
+ getHostClasses() {
408
+ if (this.overflowStrategy !== 'hiddenItems')
409
+ return 'no-wrap';
410
+ return `full-width ${this.alignRigth ? 'align-right' : ""}`;
269
411
  }
270
412
  static get is() { return "snk-taskbar"; }
271
413
  static get encapsulation() { return "scoped"; }
@@ -281,6 +423,24 @@ export class SnkTaskbar {
281
423
  }
282
424
  static get properties() {
283
425
  return {
426
+ "alignRigth": {
427
+ "type": "boolean",
428
+ "mutable": false,
429
+ "complexType": {
430
+ "original": "boolean",
431
+ "resolved": "boolean",
432
+ "references": {}
433
+ },
434
+ "required": false,
435
+ "optional": false,
436
+ "docs": {
437
+ "tags": [],
438
+ "text": "Usado para determinar O alinhamento dos items na taskbar."
439
+ },
440
+ "attribute": "align-rigth",
441
+ "reflect": false,
442
+ "defaultValue": "false"
443
+ },
284
444
  "customSlotId": {
285
445
  "type": "string",
286
446
  "mutable": false,
@@ -316,6 +476,24 @@ export class SnkTaskbar {
316
476
  "attribute": "custom-container-id",
317
477
  "reflect": false
318
478
  },
479
+ "overflowStrategy": {
480
+ "type": "string",
481
+ "mutable": false,
482
+ "complexType": {
483
+ "original": "'hiddenItems' | 'none'",
484
+ "resolved": "\"hiddenItems\" | \"none\"",
485
+ "references": {}
486
+ },
487
+ "required": false,
488
+ "optional": false,
489
+ "docs": {
490
+ "tags": [],
491
+ "text": "Define como ser\u00E1 o comportamento da taskbar quando ocorrer overflow"
492
+ },
493
+ "attribute": "overflow-strategy",
494
+ "reflect": false,
495
+ "defaultValue": "'hiddenItems'"
496
+ },
319
497
  "configName": {
320
498
  "type": "string",
321
499
  "mutable": false,
@@ -515,9 +693,14 @@ export class SnkTaskbar {
515
693
  static get states() {
516
694
  return {
517
695
  "_permissions": {},
696
+ "_overFlowedElements": {},
518
697
  "_customElements": {},
519
698
  "_customElementsId": {},
520
- "_slotContainer": {}
699
+ "_slotContainer": {},
700
+ "_hiddenActionsList": {},
701
+ "_lastWidth": {},
702
+ "_hasToUpdateOverFlow": {},
703
+ "_isWaitingForSave": {}
521
704
  };
522
705
  }
523
706
  static get events() {
@@ -543,6 +726,21 @@ export class SnkTaskbar {
543
726
  return [{
544
727
  "propName": "buttons",
545
728
  "methodName": "observeButtons"
729
+ }, {
730
+ "propName": "disabledButtons",
731
+ "methodName": "observeDisabledButtons"
732
+ }, {
733
+ "propName": "_lastWidth",
734
+ "methodName": "observeLastWidth"
735
+ }];
736
+ }
737
+ static get listeners() {
738
+ return [{
739
+ "name": "snkCustomSlotElementsLoaded",
740
+ "method": "handleCustomSlotElementsLoaded",
741
+ "target": "window",
742
+ "capture": false,
743
+ "passive": false
546
744
  }];
547
745
  }
548
746
  }
@@ -0,0 +1,35 @@
1
+ import { NumberUtils, ObjectUtils } from "@sankhyalabs/core";
2
+ export default class RmPrecisionCustomValueFormatter {
3
+ setGrid(grid) {
4
+ if (this._grid) {
5
+ return;
6
+ }
7
+ this._grid = grid;
8
+ this.refreshSelectedRows();
9
+ }
10
+ setDataState(dataState) {
11
+ if (ObjectUtils.objectToString(dataState) === ObjectUtils.objectToString(this._dataState)) {
12
+ return;
13
+ }
14
+ this._dataState = dataState;
15
+ this.refreshSelectedRows();
16
+ }
17
+ format(currentValue, column, recordId) {
18
+ var _a;
19
+ if (!currentValue) {
20
+ return currentValue;
21
+ }
22
+ const rowMetadata = (_a = this._dataState) === null || _a === void 0 ? void 0 : _a.metadataByRow.get(recordId);
23
+ const rmPrecision = rowMetadata === null || rowMetadata === void 0 ? void 0 : rowMetadata.getProp('rm_precision', column.name);
24
+ if (rmPrecision || rmPrecision === 0) {
25
+ return NumberUtils.format(currentValue, rmPrecision, rmPrecision);
26
+ }
27
+ else {
28
+ return currentValue;
29
+ }
30
+ }
31
+ refreshSelectedRows() {
32
+ var _a;
33
+ (_a = this._grid) === null || _a === void 0 ? void 0 : _a.refreshSelectedRows();
34
+ }
35
+ }
@@ -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();