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

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 +143 -20
  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 +195 -19
  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 +164 -35
  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 +144 -21
  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-3d0cc5c0.entry.js +1 -0
  225. package/dist/sankhyablocks/p-3f1efb97.entry.js +1 -0
  226. package/dist/sankhyablocks/p-47b60deb.entry.js +1 -0
  227. package/dist/sankhyablocks/p-4ce73e88.js +1 -0
  228. package/dist/sankhyablocks/p-54a5d52a.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 +36 -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,4 +1,4 @@
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';
@@ -6,6 +6,9 @@ import { PresentationMode } from '../../lib/@types';
6
6
  export class SnkTaskbar {
7
7
  constructor() {
8
8
  this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
9
+ this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME = 'taskbar-custom-elements-container';
10
+ this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
11
+ this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
9
12
  this._titleKeyByElement = {
10
13
  [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
11
14
  [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
@@ -23,11 +26,17 @@ export class SnkTaskbar {
23
26
  [TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
24
27
  };
25
28
  this._permissions = undefined;
29
+ this._overFlowedElements = [];
26
30
  this._customElements = undefined;
27
31
  this._customElementsId = undefined;
28
32
  this._slotContainer = undefined;
33
+ this._hiddenActionsList = [];
34
+ this._lastWidth = undefined;
35
+ this._hasToUpdateOverFlow = false;
36
+ this.alignRigth = false;
29
37
  this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
30
38
  this.customContainerId = undefined;
39
+ this.overflowStrategy = 'hiddenItems';
31
40
  this.configName = undefined;
32
41
  this.resourceID = undefined;
33
42
  this.buttons = undefined;
@@ -39,8 +48,28 @@ export class SnkTaskbar {
39
48
  this.presentationMode = PresentationMode.PRIMARY;
40
49
  this.messagesBuilder = undefined;
41
50
  }
51
+ handleCustomSlotElementsLoaded(event) {
52
+ if (this.hasToSearchCustomElements(event)) {
53
+ this.getCustomElements(true);
54
+ }
55
+ }
56
+ hasToSearchCustomElements(event) {
57
+ return this.customSlotId === event.detail && !this._slotContainer;
58
+ }
42
59
  observeButtons() {
43
60
  this._definitions = undefined;
61
+ requestAnimationFrame(() => {
62
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
63
+ });
64
+ }
65
+ observeDisabledButtons() {
66
+ var _a;
67
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate();
68
+ }
69
+ observeLastWidth(newValue, oldValue) {
70
+ if (oldValue === 0 && newValue !== 0) {
71
+ this._hasToUpdateOverFlow = true;
72
+ }
44
73
  }
45
74
  // Internal methods
46
75
  elementsFromString(strButtons) {
@@ -135,13 +164,21 @@ export class SnkTaskbar {
135
164
  className += "ez-padding-left--medium";
136
165
  }
137
166
  const taskbarElement = TaskbarElement[def.toString()];
167
+ const dataExporterStoreKey = this._element.dataset.exporterStoreKey || this.configName;
138
168
  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);
169
+ 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
170
  }
141
171
  else {
142
172
  return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
143
173
  }
144
174
  }
175
+ buildDynamicActionsList() {
176
+ var _a;
177
+ if (this._hiddenActionsList.length) {
178
+ return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), { type: 'divider', label: "", value: "" }, ...this._hiddenActionsList];
179
+ }
180
+ return this.actionsList;
181
+ }
145
182
  getIdElemBtnNative(taskbarElem) {
146
183
  return StringUtils.toCamelCase(taskbarElem);
147
184
  }
@@ -182,28 +219,36 @@ export class SnkTaskbar {
182
219
  });
183
220
  }
184
221
  addCustomElementContainer(elem) {
222
+ var _a;
185
223
  const elementId = `${this.TASKBAR_ITEM_ID_PREFIX}${elem}`;
186
224
  if (!this._customElementsId.includes(elementId)) {
187
225
  this._customElementsId.push(elementId);
226
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.addNotOverFlowElement(elementId);
188
227
  }
189
- return h("span", { key: elementId, id: elementId });
228
+ return h("span", { class: "ez-padding-left--medium", key: elementId, id: elementId });
190
229
  }
191
- getCustomElements() {
230
+ getCustomElements(searchOnDocument) {
192
231
  var _a, _b;
193
232
  this._customElementsId = [];
194
233
  this._customElements = new Map();
195
- this._slotContainer = this.buildSlotContainer();
234
+ this._slotContainer = this.buildSlotContainer(searchOnDocument);
196
235
  const customElementsArray = Array.from((_b = (_a = this._slotContainer) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : []);
197
236
  customElementsArray.forEach(item => this._customElements.set(item.id, item));
198
237
  }
199
- buildSlotContainer() {
238
+ buildSlotContainer(searchOnDocument) {
239
+ let slotContainer;
200
240
  if (this.customContainerId) {
201
241
  const container = document.querySelector(`#${this.customContainerId}`);
202
- return container === null || container === void 0 ? void 0 : container.querySelector(`#${this.customSlotId}`);
242
+ slotContainer = container === null || container === void 0 ? void 0 : container.querySelector(`#${this.customSlotId}`);
203
243
  }
204
244
  else {
205
- return this._element.querySelector(`#${this.customSlotId}`);
245
+ slotContainer = this._element.querySelector(`#${this.customSlotId}`);
206
246
  }
247
+ // Caso nõa encontre o slot container dentro do próprio elemento, tenta buscar na DOM do document.
248
+ if (searchOnDocument && !slotContainer) {
249
+ slotContainer = document.querySelector(`#${this.customSlotId}`);
250
+ }
251
+ return slotContainer;
207
252
  }
208
253
  componentWillLoad() {
209
254
  this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
@@ -216,20 +261,95 @@ export class SnkTaskbar {
216
261
  this.getCustomElements();
217
262
  }
218
263
  componentWillRender() {
264
+ this.handleDefinitions();
265
+ this.validatePresentationMode();
266
+ this.updateOverFlowIfNeeded();
267
+ }
268
+ handleDefinitions() {
219
269
  if (this._definitions == undefined && this._permissions) {
220
270
  this._definitions = this.elementsFromString(this.buttons);
221
271
  }
222
- this.validatePresentationMode();
272
+ }
273
+ updateOverFlowIfNeeded() {
274
+ if (this._hasToUpdateOverFlow) {
275
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
276
+ this._hasToUpdateOverFlow = false;
277
+ }
278
+ }
279
+ handleOverFlow(overFlowingElements) {
280
+ const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
281
+ this.resetOverFlowedElements();
282
+ this.doOverFlowElements(elementsToHandle);
283
+ }
284
+ resetOverFlowedElements() {
285
+ this._overFlowedElements.forEach(element => {
286
+ element.classList.remove(OVERFLOWED_CLASS_NAME);
287
+ });
288
+ this._hiddenActionsList = [];
289
+ this._overFlowedElements = [];
290
+ }
291
+ doOverFlowElements(overFlowedElements) {
292
+ overFlowedElements.forEach(element => {
293
+ element.classList.add(OVERFLOWED_CLASS_NAME);
294
+ this._overFlowedElements.push(element);
295
+ this.addItemToActionList(element);
296
+ });
297
+ }
298
+ addItemToActionList(element) {
299
+ const taskbarElement = this.getTaskbarElementName(element);
300
+ if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
301
+ const optionItem = {
302
+ value: taskbarElement,
303
+ label: this.getTaskbarElementLabel(element),
304
+ iconName: this.getTaskbarElementIcon(element)
305
+ };
306
+ this._hiddenActionsList.push(optionItem);
307
+ }
308
+ }
309
+ getTaskbarElementName(element) {
310
+ var _a;
311
+ return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
312
+ }
313
+ getTaskbarElementIcon(element) {
314
+ var _a;
315
+ return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
316
+ }
317
+ getTaskbarElementLabel(element) {
318
+ var _a;
319
+ return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
320
+ }
321
+ hasToIgnoreOverFlow(element) {
322
+ return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
323
+ }
324
+ handleOverFlowStrategy() {
325
+ if (this.overflowStrategy === 'hiddenItems') {
326
+ this._overFlowWatcher = new OverflowWatcher(this.buildOverFlowWatcherParams());
327
+ }
328
+ }
329
+ buildOverFlowWatcherParams() {
330
+ return {
331
+ element: this._element,
332
+ callback: this.handleOverFlow.bind(this),
333
+ overFlowDirection: OverflowDirection.HORIZONTAL,
334
+ notOverFlow: this.NOT_OVERFLOW_ELEMENTS
335
+ };
223
336
  }
224
337
  componentDidLoad() {
225
338
  const dataInfo = { dataUnit: this.dataUnit };
226
339
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
340
+ this.handleOverFlowStrategy();
227
341
  }
228
342
  componentDidRender() {
229
343
  this.appendCustomElementsInTaskbar();
344
+ this.updateLastWidth();
345
+ }
346
+ updateLastWidth() {
347
+ this._lastWidth = this._element.getBoundingClientRect().width;
230
348
  }
231
349
  disconnectedCallback() {
350
+ var _a;
232
351
  this.unlinkAllCustomElements();
352
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
233
353
  }
234
354
  unlinkAllCustomElements() {
235
355
  var _a;
@@ -247,14 +367,9 @@ export class SnkTaskbar {
247
367
  return undefined;
248
368
  }
249
369
  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
- }
370
+ return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
371
+ var _a, _b;
372
+ index++;
258
373
  if (TaskbarElement[elem]) {
259
374
  return this.getElement(index, TaskbarElement[elem]);
260
375
  }
@@ -264,8 +379,14 @@ export class SnkTaskbar {
264
379
  if (this._customElements.has(elem)) {
265
380
  return this.addCustomElementContainer(elem);
266
381
  }
382
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
267
383
  return h("slot", { name: elem });
268
- })), h("div", { class: "taskbar-custom-elements-container" }, h("slot", { name: this.customSlotId }))));
384
+ })), h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }))));
385
+ }
386
+ getHostClasses() {
387
+ if (this.overflowStrategy !== 'hiddenItems')
388
+ return 'no-wrap';
389
+ return `full-width ${this.alignRigth ? 'align-right' : ""}`;
269
390
  }
270
391
  static get is() { return "snk-taskbar"; }
271
392
  static get encapsulation() { return "scoped"; }
@@ -281,6 +402,24 @@ export class SnkTaskbar {
281
402
  }
282
403
  static get properties() {
283
404
  return {
405
+ "alignRigth": {
406
+ "type": "boolean",
407
+ "mutable": false,
408
+ "complexType": {
409
+ "original": "boolean",
410
+ "resolved": "boolean",
411
+ "references": {}
412
+ },
413
+ "required": false,
414
+ "optional": false,
415
+ "docs": {
416
+ "tags": [],
417
+ "text": "Usado para determinar O alinhamento dos items na taskbar."
418
+ },
419
+ "attribute": "align-rigth",
420
+ "reflect": false,
421
+ "defaultValue": "false"
422
+ },
284
423
  "customSlotId": {
285
424
  "type": "string",
286
425
  "mutable": false,
@@ -316,6 +455,24 @@ export class SnkTaskbar {
316
455
  "attribute": "custom-container-id",
317
456
  "reflect": false
318
457
  },
458
+ "overflowStrategy": {
459
+ "type": "string",
460
+ "mutable": false,
461
+ "complexType": {
462
+ "original": "'hiddenItems' | 'none'",
463
+ "resolved": "\"hiddenItems\" | \"none\"",
464
+ "references": {}
465
+ },
466
+ "required": false,
467
+ "optional": false,
468
+ "docs": {
469
+ "tags": [],
470
+ "text": "Define como ser\u00E1 o comportamento da taskbar quando ocorrer overflow"
471
+ },
472
+ "attribute": "overflow-strategy",
473
+ "reflect": false,
474
+ "defaultValue": "'hiddenItems'"
475
+ },
319
476
  "configName": {
320
477
  "type": "string",
321
478
  "mutable": false,
@@ -515,9 +672,13 @@ export class SnkTaskbar {
515
672
  static get states() {
516
673
  return {
517
674
  "_permissions": {},
675
+ "_overFlowedElements": {},
518
676
  "_customElements": {},
519
677
  "_customElementsId": {},
520
- "_slotContainer": {}
678
+ "_slotContainer": {},
679
+ "_hiddenActionsList": {},
680
+ "_lastWidth": {},
681
+ "_hasToUpdateOverFlow": {}
521
682
  };
522
683
  }
523
684
  static get events() {
@@ -543,6 +704,21 @@ export class SnkTaskbar {
543
704
  return [{
544
705
  "propName": "buttons",
545
706
  "methodName": "observeButtons"
707
+ }, {
708
+ "propName": "disabledButtons",
709
+ "methodName": "observeDisabledButtons"
710
+ }, {
711
+ "propName": "_lastWidth",
712
+ "methodName": "observeLastWidth"
713
+ }];
714
+ }
715
+ static get listeners() {
716
+ return [{
717
+ "name": "snkCustomSlotElementsLoaded",
718
+ "method": "handleCustomSlotElementsLoaded",
719
+ "target": "window",
720
+ "capture": false,
721
+ "passive": false
546
722
  }];
547
723
  }
548
724
  }
@@ -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();