@sankhyalabs/sankhyablocks 8.15.0-dev.3 → 8.15.0-dev.30

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 (248) hide show
  1. package/dist/cjs/{ConfigStorage-0d507a8f.js → ConfigStorage-d4c99a5e.js} +27 -17
  2. package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-99f0f6ed.js} +5 -3
  3. package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
  4. package/dist/cjs/{SnkFormConfigManager-467907f6.js → SnkFormConfigManager-3621bfc4.js} +2 -2
  5. package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-e7dcf408.js} +13 -0
  6. package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-5161d082.js} +1 -1
  7. package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-9f1a13ca.js} +1 -1
  8. package/dist/cjs/{index-0e663819.js → index-0922807b.js} +1 -0
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{dataunit-fetcher-de65b9fc.js → pesquisa-fetcher-c416a6b7.js} +249 -34
  11. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  12. package/dist/cjs/snk-actions-button_2.cjs.entry.js +23 -8
  13. package/dist/cjs/snk-application.cjs.entry.js +98 -9
  14. package/dist/cjs/snk-attach.cjs.entry.js +396 -58
  15. package/dist/cjs/snk-crud.cjs.entry.js +14 -11
  16. package/dist/cjs/snk-data-exporter.cjs.entry.js +5 -5
  17. package/dist/cjs/{snk-data-unit-1bc69073.js → snk-data-unit-82c08a8c.js} +1 -1
  18. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  19. package/dist/cjs/snk-detail-view.cjs.entry.js +10 -11
  20. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  21. package/dist/cjs/snk-filter-bar.cjs.entry.js +68 -11
  22. package/dist/cjs/snk-filter-item.cjs.entry.js +3 -0
  23. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -4
  24. package/dist/cjs/snk-filter-modal.cjs.entry.js +16 -1
  25. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  26. package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
  27. package/dist/cjs/snk-form.cjs.entry.js +4 -4
  28. package/dist/cjs/snk-grid-config.cjs.entry.js +3 -3
  29. package/dist/cjs/snk-grid.cjs.entry.js +45 -20
  30. package/dist/cjs/{snk-guides-viewer-7e87ffce.js → snk-guides-viewer-bd69fce4.js} +11 -12
  31. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -10
  32. package/dist/cjs/snk-personalized-filter.cjs.entry.js +4 -4
  33. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  34. package/dist/cjs/snk-simple-crud.cjs.entry.js +22 -11
  35. package/dist/cjs/snk-taskbar.cjs.entry.js +91 -7
  36. package/dist/cjs/{taskbar-elements-b8c428a9.js → taskbar-elements-1e4fb2e0.js} +9 -9
  37. package/dist/collection/collection-manifest.json +1 -1
  38. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  39. package/dist/collection/components/snk-application/snk-application.js +111 -5
  40. package/dist/collection/components/snk-attach/snk-attach.js +194 -38
  41. package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
  42. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
  43. package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
  44. package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
  45. package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
  46. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +111 -0
  47. package/dist/collection/components/snk-attach/structure/index.js +6 -3
  48. package/dist/collection/components/snk-crud/snk-crud.js +42 -4
  49. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  50. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +4 -4
  51. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +1 -1
  52. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  53. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  54. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +3 -0
  55. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +84 -2
  56. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +0 -1
  57. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +23 -1
  58. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +175 -6
  59. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +5 -1
  60. package/dist/collection/components/snk-grid/snk-grid.js +75 -16
  61. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +1 -1
  62. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
  63. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +55 -3
  64. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +18 -2
  65. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +8 -8
  66. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  67. package/dist/collection/components/snk-taskbar/snk-taskbar.js +129 -7
  68. package/dist/collection/lib/@types/index.js +1 -0
  69. package/dist/collection/lib/configs/ConfigStorage.js +24 -14
  70. package/dist/collection/lib/dataUnit/InMemoryLoader.js +1 -1
  71. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +5 -3
  72. package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
  73. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
  74. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
  75. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
  76. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
  77. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
  78. package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
  79. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +31 -3
  80. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +48 -29
  81. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +1 -1
  82. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  83. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +10 -4
  84. package/dist/collection/lib/index.js +1 -1
  85. package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
  86. package/dist/components/ConfigStorage.js +25 -15
  87. package/dist/components/DataFetcher.js +5 -3
  88. package/dist/components/SnkMessageBuilder.js +13 -0
  89. package/dist/components/dataunit-fetcher.js +90 -37
  90. package/dist/components/index2.js +1 -0
  91. package/dist/components/snk-actions-button2.js +1 -0
  92. package/dist/components/snk-application2.js +94 -3
  93. package/dist/components/snk-attach2.js +400 -56
  94. package/dist/components/snk-crud.js +9 -3
  95. package/dist/components/snk-data-exporter2.js +1 -1
  96. package/dist/components/snk-detail-view2.js +4 -4
  97. package/dist/components/snk-entity-list.js +5 -3
  98. package/dist/components/snk-filter-bar2.js +71 -9
  99. package/dist/components/snk-filter-item2.js +3 -0
  100. package/dist/components/snk-filter-modal-item2.js +0 -1
  101. package/dist/components/snk-filter-modal.js +21 -3
  102. package/dist/components/snk-filter-multi-select.js +2 -1
  103. package/dist/components/snk-grid2.js +42 -15
  104. package/dist/components/snk-personalized-filter2.js +1 -1
  105. package/dist/components/snk-pesquisa2.js +1 -1
  106. package/dist/components/snk-simple-crud2.js +17 -3
  107. package/dist/components/snk-taskbar2.js +103 -15
  108. package/dist/components/taskbar-actions-button2.js +18 -2
  109. package/dist/esm/{ConfigStorage-379a9cba.js → ConfigStorage-39ed8aeb.js} +27 -17
  110. package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-a650ae58.js} +5 -3
  111. package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
  112. package/dist/esm/{SnkFormConfigManager-587e9030.js → SnkFormConfigManager-692e20c7.js} +2 -2
  113. package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-0fb796b9.js} +13 -0
  114. package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-17dc5b5e.js} +1 -1
  115. package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-f121f880.js} +1 -1
  116. package/dist/esm/{index-1564817d.js → index-0ece87a6.js} +1 -0
  117. package/dist/esm/loader.js +1 -1
  118. package/dist/esm/{dataunit-fetcher-e218c6d2.js → pesquisa-fetcher-ab16a2e8.js} +249 -35
  119. package/dist/esm/sankhyablocks.js +1 -1
  120. package/dist/esm/snk-actions-button_2.entry.js +23 -8
  121. package/dist/esm/snk-application.entry.js +98 -9
  122. package/dist/esm/snk-attach.entry.js +397 -59
  123. package/dist/esm/snk-crud.entry.js +14 -11
  124. package/dist/esm/snk-data-exporter.entry.js +5 -5
  125. package/dist/esm/{snk-data-unit-6208ebf0.js → snk-data-unit-5d201fb3.js} +1 -1
  126. package/dist/esm/snk-data-unit.entry.js +2 -2
  127. package/dist/esm/snk-detail-view.entry.js +10 -11
  128. package/dist/esm/snk-entity-list.entry.js +5 -3
  129. package/dist/esm/snk-filter-bar.entry.js +68 -11
  130. package/dist/esm/snk-filter-item.entry.js +3 -0
  131. package/dist/esm/snk-filter-modal-item.entry.js +3 -4
  132. package/dist/esm/snk-filter-modal.entry.js +16 -1
  133. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  134. package/dist/esm/snk-form-config.entry.js +2 -2
  135. package/dist/esm/snk-form.entry.js +4 -4
  136. package/dist/esm/snk-grid-config.entry.js +3 -3
  137. package/dist/esm/snk-grid.entry.js +45 -20
  138. package/dist/esm/{snk-guides-viewer-2134aba2.js → snk-guides-viewer-fde82cc1.js} +11 -12
  139. package/dist/esm/snk-guides-viewer.entry.js +9 -10
  140. package/dist/esm/snk-personalized-filter.entry.js +4 -4
  141. package/dist/esm/snk-pesquisa.entry.js +1 -1
  142. package/dist/esm/snk-simple-crud.entry.js +21 -10
  143. package/dist/esm/snk-taskbar.entry.js +92 -8
  144. package/dist/esm/{taskbar-elements-26c981af.js → taskbar-elements-846c027c.js} +9 -9
  145. package/dist/sankhyablocks/{p-ff6064e7.js → p-05243555.js} +1 -1
  146. package/dist/sankhyablocks/{p-cb7419e0.entry.js → p-0b0b36ac.entry.js} +1 -1
  147. package/dist/sankhyablocks/p-11ad137d.entry.js +1 -0
  148. package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
  149. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  150. package/dist/sankhyablocks/p-38289a55.js +1 -0
  151. package/dist/sankhyablocks/p-3e2e2424.entry.js +1 -0
  152. package/dist/sankhyablocks/p-50783a8b.js +1 -0
  153. package/dist/sankhyablocks/p-57212bb5.js +1 -0
  154. package/dist/sankhyablocks/p-5f5b58b6.entry.js +1 -0
  155. package/dist/sankhyablocks/p-67aedbe0.js +56 -0
  156. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  157. package/dist/sankhyablocks/{p-2028633c.js → p-725d04ba.js} +1 -1
  158. package/dist/sankhyablocks/p-827e4b01.entry.js +1 -0
  159. package/dist/sankhyablocks/p-84bb8f47.entry.js +1 -0
  160. package/dist/sankhyablocks/{p-6977a26c.entry.js → p-86801b08.entry.js} +1 -1
  161. package/dist/sankhyablocks/p-8c13d8d6.entry.js +1 -0
  162. package/dist/sankhyablocks/p-8c49760e.js +1 -0
  163. package/dist/sankhyablocks/p-91b7f78a.entry.js +1 -0
  164. package/dist/sankhyablocks/p-9d608b62.entry.js +1 -0
  165. package/dist/sankhyablocks/{p-0d7863ed.js → p-a13ccb86.js} +1 -1
  166. package/dist/sankhyablocks/p-b7004423.entry.js +1 -0
  167. package/dist/sankhyablocks/{p-9695f78b.js → p-be75153c.js} +1 -1
  168. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  169. package/dist/sankhyablocks/p-c4874327.entry.js +1 -0
  170. package/dist/sankhyablocks/p-c6247955.js +65 -0
  171. package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
  172. package/dist/sankhyablocks/p-d4802f81.entry.js +1 -0
  173. package/dist/sankhyablocks/{p-aaa1438e.entry.js → p-e3bd000e.entry.js} +1 -1
  174. package/dist/sankhyablocks/{p-32f0935f.js → p-f3d1c48e.js} +1 -1
  175. package/dist/sankhyablocks/p-fb842329.entry.js +1 -0
  176. package/dist/sankhyablocks/{p-729f5f5b.entry.js → p-fcdcb0e2.entry.js} +1 -1
  177. package/dist/sankhyablocks/p-fd0a8d68.entry.js +11 -0
  178. package/dist/sankhyablocks/{p-35fe6e61.entry.js → p-fdc4cb9b.entry.js} +1 -1
  179. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  180. package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +1 -1
  181. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  182. package/dist/types/components/snk-application/snk-application.d.ts +12 -2
  183. package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
  184. package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
  185. package/dist/types/components/snk-attach/snk-attach.d.ts +28 -6
  186. package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
  187. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +31 -0
  188. package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
  189. package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
  190. package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
  191. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +15 -0
  192. package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
  193. package/dist/types/components/snk-crud/snk-crud.d.ts +9 -0
  194. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +1 -1
  195. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +19 -1
  196. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +30 -1
  197. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +7 -1
  198. package/dist/types/components/snk-grid/snk-grid.d.ts +10 -0
  199. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +10 -1
  200. package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +1 -0
  201. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +27 -1
  202. package/dist/types/components/snk-taskbar/subcomponents/field-search.d.ts +1 -0
  203. package/dist/types/components.d.ts +177 -13
  204. package/dist/types/lib/@types/index.d.ts +2 -1
  205. package/dist/types/lib/configs/ConfigStorage.d.ts +4 -0
  206. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  207. package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
  208. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
  209. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
  210. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
  211. package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
  212. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
  213. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +2 -0
  214. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  215. package/dist/types/lib/index.d.ts +1 -1
  216. package/package.json +15 -6
  217. package/dist/cjs/pesquisa-fetcher-ef050a47.js +0 -167
  218. package/dist/esm/pesquisa-fetcher-dd3ca0a5.js +0 -165
  219. package/dist/sankhyablocks/p-0cd2e986.entry.js +0 -1
  220. package/dist/sankhyablocks/p-145c4434.js +0 -1
  221. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  222. package/dist/sankhyablocks/p-4396d1a6.js +0 -56
  223. package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
  224. package/dist/sankhyablocks/p-4b0ea83f.entry.js +0 -1
  225. package/dist/sankhyablocks/p-5534e08c.js +0 -1
  226. package/dist/sankhyablocks/p-58218eb7.entry.js +0 -1
  227. package/dist/sankhyablocks/p-78777ae0.entry.js +0 -1
  228. package/dist/sankhyablocks/p-7915c452.entry.js +0 -1
  229. package/dist/sankhyablocks/p-953346b9.entry.js +0 -1
  230. package/dist/sankhyablocks/p-a037f5b4.entry.js +0 -1
  231. package/dist/sankhyablocks/p-a49b1019.entry.js +0 -1
  232. package/dist/sankhyablocks/p-a7923832.entry.js +0 -1
  233. package/dist/sankhyablocks/p-b52c2175.js +0 -1
  234. package/dist/sankhyablocks/p-ba627e85.js +0 -60
  235. package/dist/sankhyablocks/p-bf9b7149.entry.js +0 -11
  236. package/dist/sankhyablocks/p-c259545b.entry.js +0 -1
  237. package/dist/sankhyablocks/p-ca8e7da0.entry.js +0 -1
  238. package/dist/sankhyablocks/p-d1677df0.entry.js +0 -1
  239. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  240. package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
  241. package/dist/sankhyablocks/p-e6380c60.js +0 -1
  242. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
  243. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
  244. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
  245. /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
  246. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
  247. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
  248. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.d.ts +0 -0
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
2
  import { ObjectUtils, StringUtils, ElementIDUtils } from '@sankhyalabs/core';
3
3
 
4
- const snkPesquisaCss = ".sc-snk-pesquisa-h{--snk-pesquisa--font-size:var(--text--medium, 14px);--snk-pesquisa--font-family:var(--font-pattern, Arial);--snk-pesquisa--font-weight:var(--text-weight--medium, 400);--snk-pesquisa__records--color:var(--text--primary, #626e82);--snk-pesquisa__records--padding-vertical:var(--space--medium, 12px);--snk-pesquisa__content--padding-right:var(--space--small, 6px);--snk-pesquisa__btn--color:var(--title--primary, #2B3A54);--snk-pesquisa__btn-disabled--color:var(--text--disable, #AFB6C0);--snk-pesquisa__btn-hover--color:var(--color--primary, #4e4e4e);--snk-pesquisa__scrollbar--color-default:var(--scrollbar--default, #626e82);--snk-pesquisa__scrollbar--color-background:var(--scrollbar--background, #E5EAF0);--snk-pesquisa__scrollbar--color-hover:var(--scrollbar--hover, #2B3A54);--snk-pesquisa__scrollbar--color-clicked:var(--scrollbar--clicked, #a2abb9);--snk-pesquisa__scrollbar--border-radius:var(--border--radius-small, 6px);--snk-pesquisa__scrollbar--width:var(--space--medium, 12px);max-height:100%;height:100%;display:flex;flex-direction:column;overflow-y:auto}.snk-pesquisa.sc-snk-pesquisa{display:flex;flex-direction:column;height:100%}.snk-pesquisa__input.sc-snk-pesquisa{display:flex;width:100%;box-sizing:border-box;padding-top:4px;padding-right:4px}.snk-pesquisa__input.sc-snk-pesquisa ez-icon.sc-snk-pesquisa{--ez-icon--color:inherit;font-weight:var(--text-weight--large, 600)}.snk-pesquisa__content.sc-snk-pesquisa{display:flex;flex-direction:column;height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-pesquisa__scrollbar--color-clicked) var(--snk-pesquisa__scrollbar--color-background);padding-right:var(--snk-pesquisa__content--padding-right)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar{background-color:var(--snk-pesquisa__scrollbar--color-background);width:var(--snk-pesquisa__scrollbar--width);max-width:var(--snk-pesquisa__scrollbar--width);min-width:var(--snk-pesquisa__scrollbar--width)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-track{background-color:var(--snk-pesquisa__scrollbar--color-background);border-radius:var(--snk-pesquisa__scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb{background-color:var(--snk-pesquisa__scrollbar--color-default);border-radius:var(--snk-pesquisa__scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb:vertical:hover,.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--snk-pesquisa__scrollbar--color-hover)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb:vertical:active,.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb:horizontal:active{background-color:var(--snk-pesquisa__scrollbar--color-clicked)}.snk-pesquisa__records.sc-snk-pesquisa{font-family:var(--snk-pesquisa--font-family);font-weight:var(--snk-pesquisa--font-weight);font-size:var(--snk-pesquisa--font-size);color:var(--snk-pesquisa__records--color);padding-bottom:var(--snk-pesquisa__records--padding-vertical);padding-top:var(--snk-pesquisa__records--padding-vertical)}.snk-pesquisa__btn.sc-snk-pesquisa{outline:none;border:none;background:none;cursor:pointer;color:var(--snk-pesquisa__btn--color)}.snk-pesquisa__btn.sc-snk-pesquisa:disabled{cursor:unset;color:var(--snk-pesquisa__btn-disabled--color)}.snk-pesquisa__btn.sc-snk-pesquisa:disabled:hover{cursor:unset;color:var(--snk-pesquisa__btn-disabled--color)}.snk-pesquisa__btn.sc-snk-pesquisa:hover{color:var(--snk-pesquisa__btn-hover--color)}";
4
+ const snkPesquisaCss = ".sc-snk-pesquisa-h{--snk-pesquisa--font-size:var(--text--medium, 14px);--snk-pesquisa--font-family:var(--font-pattern, Arial);--snk-pesquisa--font-weight:var(--text-weight--medium, 400);--snk-pesquisa__records--color:var(--text--primary, #626e82);--snk-pesquisa__records--padding-vertical:var(--space--medium, 12px);--snk-pesquisa__content--padding-right:var(--space--small, 6px);--snk-pesquisa__btn--color:var(--title--primary, #2B3A54);--snk-pesquisa__btn-disabled--color:var(--text--disable, #AFB6C0);--snk-pesquisa__btn-hover--color:var(--color--primary, #4e4e4e);--snk-pesquisa__scrollbar--color-default:var(--scrollbar--default, #626e82);--snk-pesquisa__scrollbar--color-background:var(--scrollbar--background, #E5EAF0);--snk-pesquisa__scrollbar--color-hover:var(--scrollbar--hover, #2B3A54);--snk-pesquisa__scrollbar--color-clicked:var(--scrollbar--clicked, #a2abb9);--snk-pesquisa__scrollbar--border-radius:var(--border--radius-small, 6px);--snk-pesquisa__scrollbar--width:var(--space--medium, 12px);height:100%;display:flex;flex-direction:column;overflow-y:auto}.snk-pesquisa.sc-snk-pesquisa{display:flex;flex-direction:column;height:100%}.snk-pesquisa__input.sc-snk-pesquisa{display:flex;width:100%;box-sizing:border-box;padding-top:4px;padding-right:4px}.snk-pesquisa__input.sc-snk-pesquisa ez-icon.sc-snk-pesquisa{--ez-icon--color:inherit;font-weight:var(--text-weight--large, 600)}.snk-pesquisa__content.sc-snk-pesquisa{display:flex;flex-direction:column;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--snk-pesquisa__scrollbar--color-clicked) var(--snk-pesquisa__scrollbar--color-background);padding-right:var(--snk-pesquisa__content--padding-right)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar{background-color:var(--snk-pesquisa__scrollbar--color-background);width:var(--snk-pesquisa__scrollbar--width);max-width:var(--snk-pesquisa__scrollbar--width);min-width:var(--snk-pesquisa__scrollbar--width)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-track{background-color:var(--snk-pesquisa__scrollbar--color-background);border-radius:var(--snk-pesquisa__scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb{background-color:var(--snk-pesquisa__scrollbar--color-default);border-radius:var(--snk-pesquisa__scrollbar--border-radius)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb:vertical:hover,.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb:horizontal:hover{background-color:var(--snk-pesquisa__scrollbar--color-hover)}.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb:vertical:active,.snk-pesquisa__content.sc-snk-pesquisa::-webkit-scrollbar-thumb:horizontal:active{background-color:var(--snk-pesquisa__scrollbar--color-clicked)}.snk-pesquisa__records.sc-snk-pesquisa{font-family:var(--snk-pesquisa--font-family);font-weight:var(--snk-pesquisa--font-weight);font-size:var(--snk-pesquisa--font-size);color:var(--snk-pesquisa__records--color);padding-bottom:var(--snk-pesquisa__records--padding-vertical);padding-top:var(--snk-pesquisa__records--padding-vertical)}.snk-pesquisa__btn.sc-snk-pesquisa{outline:none;border:none;background:none;cursor:pointer;color:var(--snk-pesquisa__btn--color)}.snk-pesquisa__btn.sc-snk-pesquisa:disabled{cursor:unset;color:var(--snk-pesquisa__btn-disabled--color)}.snk-pesquisa__btn.sc-snk-pesquisa:disabled:hover{cursor:unset;color:var(--snk-pesquisa__btn-disabled--color)}.snk-pesquisa__btn.sc-snk-pesquisa:hover{color:var(--snk-pesquisa__btn-hover--color)}";
5
5
 
6
6
  const SnkPesquisa = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
7
  constructor() {
@@ -51,6 +51,8 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
51
51
  this.taskbarManager = undefined;
52
52
  this.messagesBuilder = undefined;
53
53
  this.useEnterLikeTab = false;
54
+ this.actionsList = undefined;
55
+ this.configName = undefined;
54
56
  }
55
57
  resolveInMemoryBtns(taskbarButtons) {
56
58
  const newTaskBarConfig = [...taskbarButtons];
@@ -249,7 +251,7 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
249
251
  }
250
252
  getActionsList() {
251
253
  var _a, _b;
252
- return [{
254
+ const hardList = [{
253
255
  value: StringUtils.generateUUID(),
254
256
  label: (_b = (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage("snkSimpleCrud.findColumn", undefined)) !== null && _b !== void 0 ? _b : "Buscar",
255
257
  disableCloseOnSelect: true,
@@ -258,6 +260,16 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
258
260
  ? this.getColumnSearch(actionButton, item)
259
261
  : this.getFieldSearch(actionButton, item)
260
262
  }];
263
+ if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
264
+ const taskbarID = this.getTopTaskBarId();
265
+ return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this.dataState, this.actionsList));
266
+ }
267
+ return hardList.concat(this.actionsList);
268
+ }
269
+ getTopTaskBarId() {
270
+ var _a;
271
+ return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? `snkGridTopTaskbar.finish_edition${PresentationMode.PRIMARY}` :
272
+ `snkGridTopTaskbar.regular${PresentationMode.PRIMARY}`;
261
273
  }
262
274
  async keyDownListener(event) {
263
275
  if (!event.ctrlKey || event.key == undefined || event.key.toUpperCase() !== "F") {
@@ -298,9 +310,9 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
298
310
  }
299
311
  render() {
300
312
  var _a;
301
- return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium ez-margin-bottom--large", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
313
+ return (h("snk-data-unit", { class: "simple-crud__container", dataUnit: this.dataUnit, useCancelConfirm: this.useCancelConfirm, onDataStateChange: evt => this.onDataStateChange(evt), onCancelEdition: this.handleCancelEdit.bind(this), onInsertionMode: () => this.goToView(VIEW_MODE.FORM), onDataUnitReady: (evt) => this.dataUnitReady.emit(evt.detail), ignoreSaveMessage: this._currentViewMode === VIEW_MODE.GRID, onMessagesBuilderUpdated: evt => this.messagesBuilder = evt.detail }, h("header", null, h("slot", { name: "snkSimpleCrudHeader" })), h("section", { class: "ez-box ez-box--shadow simple-crud__container-section" }, h("snk-taskbar", { class: "ez-box ez-box--shadow ez-padding--medium", dataUnit: this.dataUnit, primaryButton: ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? "SAVE" : "INSERT", "data-element-id": "grid_left", messagesBuilder: this.messagesBuilder, buttons: this._taskbarProcessor.buttons, actionsList: this.getActionsList(), disabledButtons: this._taskbarProcessor.disabledButtons, customButtons: this._taskbarProcessor.customButtons, slot: "leftButtons", presentationMode: PresentationMode.SECONDARY }, h("slot", { name: "TASKBAR_CUSTOM_ELEMENTS" })), h("ez-view-stack", { ref: (ref) => this._viewStack = ref, "data-element-id": "simple-crud" }, h("stack-item", null, h("ez-grid", { class: "ez-margin-bottom--large", ref: ref => this._grid = ref, dataUnit: this.dataUnit, config: this.gridConfig, "no-header": true, multipleSelection: this.multipleSelection, onEzDoubleClick: () => this.goToView(VIEW_MODE.FORM), columnfilterDataSource: this.dataUnit.name.includes(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME)
302
314
  ? undefined
303
- : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { dataUnit: this.dataUnit, config: this.formConfig, fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }))))));
315
+ : this._multiSelectionListDataSource, useEnterLikeTab: this.useEnterLikeTab }, h("div", { slot: "footer" }, h("slot", { name: "snkSimpleCrudFooter" })))), h("stack-item", null, h("ez-form", { class: "ez-margin-top--large", dataUnit: this.dataUnit, config: this.formConfig, fieldToFocus: this._fieldToGetFocus, onEzFormSetFields: (evt) => this.handleFormSetFields(evt.detail), onEzFormRequestClearFieldToFocus: this.clearFieldToFocusHandler.bind(this) }))))));
304
316
  }
305
317
  get _element() { return this; }
306
318
  static get watchers() { return {
@@ -319,6 +331,8 @@ const SnkSimpleCrud = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
319
331
  "taskbarManager": [16],
320
332
  "messagesBuilder": [1040],
321
333
  "useEnterLikeTab": [4, "use-enter-like-tab"],
334
+ "actionsList": [16],
335
+ "configName": [1025, "config-name"],
322
336
  "_currentViewMode": [32],
323
337
  "_config": [32],
324
338
  "_fieldToGetFocus": [32],
@@ -1,5 +1,5 @@
1
1
  import { h, proxyCustomElement, HTMLElement, createEvent, Host } from '@stencil/core/internal/client';
2
- import { StringUtils, ApplicationContext, ElementIDUtils } from '@sankhyalabs/core';
2
+ import { StringUtils, ApplicationContext, OVERFLOWED_CLASS_NAME, OverflowWatcher, OverflowDirection, ElementIDUtils } from '@sankhyalabs/core';
3
3
  import { A as AuthorizationConfig } from './AuthorizationConfig.js';
4
4
  import { P as PresentationMode } from './index2.js';
5
5
  import { s as store } from './index3.js';
@@ -93,35 +93,35 @@ const buildElem = (element, className, dataElementId, getTitle, action, isEnable
93
93
  case TaskbarElement.CONFIGURATOR:
94
94
  return iconButton("settings-inverted", element, className, dataElementId, title, action, isEnabled);
95
95
  case TaskbarElement.MORE_OPTIONS:
96
- return actionButton(element, dataElementId, title, isEnabled, actions, action);
96
+ return actionButton(element, className, dataElementId, title, isEnabled, actions, action);
97
97
  case TaskbarElement.DIVIDER:
98
98
  return h("hr", { class: "ez-divider-vertical ez-divider--dark ez-margin-horizontal--medium", "data-taskbar-divider": true });
99
99
  case TaskbarElement.DATA_EXPORTER:
100
100
  const provider = (_a = store.get("exporterProviders")) === null || _a === void 0 ? void 0 : _a[configName];
101
- return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId });
101
+ return h("snk-data-exporter", { class: className, provider: provider, "data-element-id": dataElementId, "data-taskbar-element": element });
102
102
  case TaskbarElement.ATTACH:
103
103
  return iconButton("anexo", element, className, dataElementId, title, action, isEnabled);
104
104
  case TaskbarElement.ACTIONS_BUTTON:
105
- return h("snk-actions-button", { "data-element-id": dataElementId });
105
+ return h("snk-actions-button", { "data-element-id": dataElementId, "data-taskbar-element": element });
106
106
  }
107
107
  };
108
108
  function textButton(name, className, dataElementId, text, title, action, isEnabled) {
109
- return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) });
109
+ return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-taskbar-label": text, "data-taskbar-element": name, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) });
110
110
  }
111
111
  function iconButton(iconName, name, className, dataElementId, title, action, isEnabled) {
112
- return h("ez-button", { key: dataElementId, title: title, mode: "icon", size: "small", class: className, "data-element-id": dataElementId, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
112
+ return h("ez-button", { key: dataElementId, title: title, mode: "icon", size: "small", class: className, "data-taskbar-label": title, "data-taskbar-element": name, "data-taskbar-icon": iconName, "data-element-id": dataElementId, iconName: iconName, enabled: isEnabled(name), onClick: () => action(name) });
113
113
  }
114
114
  function iconTextButton(iconName, name, className, dataElementId, text, title, action, isEnabled) {
115
- return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) },
115
+ return h("ez-button", { key: dataElementId, title: title, label: text, size: "small", class: className, "data-taskbar-label": text, "data-taskbar-icon": iconName, "data-taskbar-element": name, "data-element-id": dataElementId, enabled: isEnabled(name), onClick: () => action(name) },
116
116
  h("ez-icon", { class: "ez-padding-right--small", slot: "leftIcon", iconName: iconName }));
117
117
  }
118
- function actionButton(element, dataElementId, title, isEnabled, actions, action) {
118
+ function actionButton(element, className, dataElementId, title, isEnabled, actions, action) {
119
119
  return actions && actions.length > 0
120
- ? h("taskbar-actions-button", { key: dataElementId, title: title, "data-element-id": dataElementId, enabled: isEnabled(element), actions: actions, onTaskbarActionSelected: (evt) => action(evt.detail.value) })
120
+ ? h("taskbar-actions-button", { class: className, key: dataElementId, title: title, "data-taskbar-element": element, "data-element-id": dataElementId, enabled: isEnabled(element), actions: actions, onTaskbarActionSelected: (evt) => action(evt.detail.value) })
121
121
  : undefined;
122
122
  }
123
123
 
124
- const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex}";
124
+ const snkTaskbarCss = ".sc-snk-taskbar-h{display:flex;flex-wrap:wrap}.no-wrap.sc-snk-taskbar-h{flex-wrap:nowrap}.full-width.sc-snk-taskbar-h{width:100%}.align-right.sc-snk-taskbar-h{justify-content:flex-end}.overflowed.sc-snk-taskbar{display:none}";
125
125
 
126
126
  const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
127
127
  constructor() {
@@ -129,6 +129,9 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
129
129
  this.__registerHost();
130
130
  this.actionClick = createEvent(this, "actionClick", 7);
131
131
  this.TASKBAR_ITEM_ID_PREFIX = 'TASKBAR_ITEM_';
132
+ this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME = 'taskbar-custom-elements-container';
133
+ this.ACTIONS_BUTTON_TAG = 'TASKBAR-ACTIONS-BUTTON';
134
+ this.NOT_OVERFLOW_ELEMENTS = ["moreOptions", "dataExporter_snkDataExporter", "actionsButton_snkActionsButton"];
132
135
  this._titleKeyByElement = {
133
136
  [TaskbarElement.UPDATE]: "snkTaskbar.titleUpdate",
134
137
  [TaskbarElement.PREVIOUS]: "snkTaskbar.titlePrevious",
@@ -146,11 +149,15 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
146
149
  [TaskbarElement.ATTACH]: "snkTaskbar.titleAttach",
147
150
  };
148
151
  this._permissions = undefined;
152
+ this._overFlowedElements = [];
149
153
  this._customElements = undefined;
150
154
  this._customElementsId = undefined;
151
155
  this._slotContainer = undefined;
156
+ this._hiddenActionsList = [];
157
+ this.alignRigth = false;
152
158
  this.customSlotId = "TASKBAR_CUSTOM_ELEMENTS";
153
159
  this.customContainerId = undefined;
160
+ this.overflowStrategy = 'hiddenItems';
154
161
  this.configName = undefined;
155
162
  this.resourceID = undefined;
156
163
  this.buttons = undefined;
@@ -164,6 +171,7 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
164
171
  }
165
172
  observeButtons() {
166
173
  this._definitions = undefined;
174
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
167
175
  }
168
176
  // Internal methods
169
177
  elementsFromString(strButtons) {
@@ -259,12 +267,19 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
259
267
  }
260
268
  const taskbarElement = TaskbarElement[def.toString()];
261
269
  if (taskbarElement) {
262
- return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.actionsList, this.configName, this.presentationMode);
270
+ return buildElem(def, className, this.getIdElemBtnNative(def), elem => this.getTitle(elem), elem => this.elementClick(elem), elem => this.isEnabled(elem), this.buildDynamicActionsList(), this.configName, this.presentationMode);
263
271
  }
264
272
  else {
265
273
  return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
266
274
  }
267
275
  }
276
+ buildDynamicActionsList() {
277
+ var _a;
278
+ if (this._hiddenActionsList.length) {
279
+ return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), { type: 'divider', label: "", value: "" }, ...this._hiddenActionsList];
280
+ }
281
+ return this.actionsList;
282
+ }
268
283
  getIdElemBtnNative(taskbarElem) {
269
284
  return StringUtils.toCamelCase(taskbarElem);
270
285
  }
@@ -305,9 +320,11 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
305
320
  });
306
321
  }
307
322
  addCustomElementContainer(elem) {
323
+ var _a;
308
324
  const elementId = `${this.TASKBAR_ITEM_ID_PREFIX}${elem}`;
309
325
  if (!this._customElementsId.includes(elementId)) {
310
326
  this._customElementsId.push(elementId);
327
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.addNotOverFlowElement(elementId);
311
328
  }
312
329
  return h("span", { key: elementId, id: elementId });
313
330
  }
@@ -344,15 +361,76 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
344
361
  }
345
362
  this.validatePresentationMode();
346
363
  }
364
+ handleOverFlow(overFlowingElements) {
365
+ const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
366
+ this.resetOverFlowedElements();
367
+ this.doOverFlowElements(elementsToHandle);
368
+ }
369
+ resetOverFlowedElements() {
370
+ this._overFlowedElements.forEach(element => {
371
+ element.classList.remove(OVERFLOWED_CLASS_NAME);
372
+ });
373
+ this._hiddenActionsList = [];
374
+ this._overFlowedElements = [];
375
+ }
376
+ doOverFlowElements(overFlowedElements) {
377
+ overFlowedElements.forEach(element => {
378
+ element.classList.add(OVERFLOWED_CLASS_NAME);
379
+ this._overFlowedElements.push(element);
380
+ this.addItemToActionList(element);
381
+ });
382
+ }
383
+ addItemToActionList(element) {
384
+ const taskbarElement = this.getTaskbarElementName(element);
385
+ if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
386
+ const optionItem = {
387
+ value: taskbarElement,
388
+ label: this.getTaskbarElementLabel(element),
389
+ iconName: this.getTaskbarElementIcon(element)
390
+ };
391
+ this._hiddenActionsList.push(optionItem);
392
+ }
393
+ }
394
+ getTaskbarElementName(element) {
395
+ var _a;
396
+ return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
397
+ }
398
+ getTaskbarElementIcon(element) {
399
+ var _a;
400
+ return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
401
+ }
402
+ getTaskbarElementLabel(element) {
403
+ var _a;
404
+ return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
405
+ }
406
+ hasToIgnoreOverFlow(element) {
407
+ return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
408
+ }
409
+ handleOverFlowStrategy() {
410
+ if (this.overflowStrategy === 'hiddenItems') {
411
+ this._overFlowWatcher = new OverflowWatcher(this.buildOverFlowWatcherParams());
412
+ }
413
+ }
414
+ buildOverFlowWatcherParams() {
415
+ return {
416
+ element: this._element,
417
+ callback: this.handleOverFlow.bind(this),
418
+ overFlowDirection: OverflowDirection.HORIZONTAL,
419
+ notOverFlow: this.NOT_OVERFLOW_ELEMENTS
420
+ };
421
+ }
347
422
  componentDidLoad() {
348
423
  const dataInfo = { dataUnit: this.dataUnit };
349
424
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
425
+ this.handleOverFlowStrategy();
350
426
  }
351
427
  componentDidRender() {
352
428
  this.appendCustomElementsInTaskbar();
353
429
  }
354
430
  disconnectedCallback() {
431
+ var _a;
355
432
  this.unlinkAllCustomElements();
433
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
356
434
  }
357
435
  unlinkAllCustomElements() {
358
436
  var _a;
@@ -370,8 +448,8 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
370
448
  return undefined;
371
449
  }
372
450
  let index = 0;
373
- return (h(Host, null, this.removeEmpty(this._definitions.map((elem) => {
374
- var _a;
451
+ return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
452
+ var _a, _b;
375
453
  if (elem === TaskbarElement.DIVIDER) {
376
454
  index = 0;
377
455
  }
@@ -387,8 +465,14 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
387
465
  if (this._customElements.has(elem)) {
388
466
  return this.addCustomElementContainer(elem);
389
467
  }
468
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
390
469
  return h("slot", { name: elem });
391
- })), h("div", { class: "taskbar-custom-elements-container" }, h("slot", { name: this.customSlotId }))));
470
+ })), h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }))));
471
+ }
472
+ getHostClasses() {
473
+ if (this.overflowStrategy !== 'hiddenItems')
474
+ return 'no-wrap';
475
+ return `full-width ${this.alignRigth ? 'align-right' : ""}`;
392
476
  }
393
477
  get _element() { return this; }
394
478
  static get watchers() { return {
@@ -396,8 +480,10 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
396
480
  }; }
397
481
  static get style() { return snkTaskbarCss; }
398
482
  }, [6, "snk-taskbar", {
483
+ "alignRigth": [4, "align-rigth"],
399
484
  "customSlotId": [1, "custom-slot-id"],
400
485
  "customContainerId": [1, "custom-container-id"],
486
+ "overflowStrategy": [1, "overflow-strategy"],
401
487
  "configName": [1, "config-name"],
402
488
  "resourceID": [1, "resource-i-d"],
403
489
  "buttons": [1],
@@ -409,9 +495,11 @@ const SnkTaskbar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
409
495
  "presentationMode": [1537, "presentation-mode"],
410
496
  "messagesBuilder": [1040],
411
497
  "_permissions": [32],
498
+ "_overFlowedElements": [32],
412
499
  "_customElements": [32],
413
500
  "_customElementsId": [32],
414
- "_slotContainer": [32]
501
+ "_slotContainer": [32],
502
+ "_hiddenActionsList": [32]
415
503
  }]);
416
504
  function defineCustomElement() {
417
505
  if (typeof customElements === "undefined") {
@@ -67,12 +67,28 @@ const TaskbarActionsButton = /*@__PURE__*/ proxyCustomElement(class extends HTML
67
67
  return this._showDropdown && ((_a = this.actions) === null || _a === void 0 ? void 0 : _a.length) > 0;
68
68
  }
69
69
  onSelectAction(iAction) {
70
- const selectedAction = this.actions.find(action => action.value === iAction.id);
70
+ const actions = this.actions.map(action => (Object.assign(Object.assign({}, action), { id: action.value })));
71
+ const selectedAction = this.getSelectedAction(iAction.id, actions);
71
72
  this.taskbarActionSelected.emit(selectedAction);
72
73
  if (!selectedAction.disableCloseOnSelect) {
73
74
  this._showDropdown = false;
74
75
  }
75
76
  }
77
+ getSelectedAction(id, actions) {
78
+ let selectedItem = null;
79
+ for (const item of actions) {
80
+ if (item.id === id) {
81
+ selectedItem = item;
82
+ break;
83
+ }
84
+ if (!(item === null || item === void 0 ? void 0 : item.children))
85
+ continue;
86
+ selectedItem = this.getSelectedAction(id, item.children);
87
+ if (selectedItem)
88
+ break;
89
+ }
90
+ return selectedItem;
91
+ }
76
92
  dropdownItemBuilder(item, _level) {
77
93
  const itemAction = this.actions.find(action => action.value === item.id);
78
94
  if (!itemAction || !itemAction.itemBuilder) {
@@ -110,7 +126,7 @@ const TaskbarActionsButton = /*@__PURE__*/ proxyCustomElement(class extends HTML
110
126
  this.taskbarActionsButtonDisconnected.emit();
111
127
  }
112
128
  render() {
113
- return (h(Host, null, h("div", { class: `ez-padding-left--medium ${this.canShowDropdown() ? ' ez-elevation--16' : ''}` }, h("ez-button", { title: this.title, mode: 'icon', iconName: 'dots-vertical', size: 'small', enabled: this.enabled, onClick: () => this.controlDropdown() }), this.canShowDropdown() && h("ez-dropdown", { items: this.loadItems(), onEzClick: (evt) => this.onSelectAction(evt.detail), onEzOutsideClick: () => this._showDropdown = false, itemBuilder: (item, level) => this.dropdownItemBuilder(item, level) }))));
129
+ return (h(Host, null, h("div", { class: `${this.canShowDropdown() ? ' ez-elevation--16' : ''}` }, h("ez-button", { title: this.title, mode: 'icon', iconName: 'dots-vertical', size: 'small', enabled: this.enabled, onClick: () => this.controlDropdown() }), this.canShowDropdown() && h("ez-dropdown", { items: this.loadItems(), onEzClick: (evt) => this.onSelectAction(evt.detail), onEzOutsideClick: () => this._showDropdown = false, itemBuilder: (item, level) => this.dropdownItemBuilder(item, level) }))));
114
130
  }
115
131
  get _element() { return this; }
116
132
  static get style() { return taskbarActionsButtonCss; }
@@ -1,7 +1,7 @@
1
- import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-36219cd3.js';
1
+ import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-f121f880.js';
2
2
  import { F as FilterItemType } from './filter-item-type.enum-d45e026f.js';
3
3
  import { ObjectUtils } from '@sankhyalabs/core';
4
- import { d as dist, D as DataFetcher } from './DataFetcher-aa159c5a.js';
4
+ import { d as dist, D as DataFetcher } from './DataFetcher-a650ae58.js';
5
5
 
6
6
  class GridConfigFetcher extends ResourceFetcher {
7
7
  constructor() {
@@ -148,7 +148,7 @@ class FilterBarConfigFetcher extends ResourceFetcher {
148
148
  multilistValueArray = Array.isArray(multilistValueArray) ? multilistValueArray : [multilistValueArray];
149
149
  // Existem cenários onde o HTML5 não salva o Id do filtro, apenas seu label e value
150
150
  multilistValueArray = multilistValueArray.map(itemRaw => {
151
- return Object.assign(Object.assign({}, itemRaw), { id: itemRaw.id ? itemRaw.id : itemRaw.value });
151
+ return Object.assign(Object.assign({}, itemRaw), { id: (itemRaw.id !== undefined) ? itemRaw.id : itemRaw.value });
152
152
  });
153
153
  item.value = ObjectUtils.copy(multilistValueArray);
154
154
  }
@@ -351,11 +351,12 @@ class PersonalizedFilterFetcher {
351
351
  }
352
352
  }
353
353
 
354
- const CONFIG_SOURCE = {
355
- form: "form",
356
- grid: "grid",
357
- filterBar: "filterBar"
358
- };
354
+ var CONFIG_SOURCE;
355
+ (function (CONFIG_SOURCE) {
356
+ CONFIG_SOURCE["form"] = "form";
357
+ CONFIG_SOURCE["grid"] = "grid";
358
+ CONFIG_SOURCE["filterBar"] = "filterBar";
359
+ })(CONFIG_SOURCE || (CONFIG_SOURCE = {}));
359
360
  class ConfigStorage {
360
361
  static preload(resourceID, configName) {
361
362
  ConfigStorage.loadFormConfig(configName, resourceID);
@@ -383,13 +384,11 @@ class ConfigStorage {
383
384
  return ConfigStorage.configById.get(cacheID);
384
385
  }
385
386
  static async saveFilterBarConfig(config, name, resourceID) {
386
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.filterBar, resourceID);
387
- this.configById.delete(cacheID);
387
+ await this.deleteFilterBarConfigCache(name, resourceID);
388
388
  return this.filterBarConfigFetcher.saveConfig(config, resourceID, name);
389
389
  }
390
390
  static async saveFormConfig(config, name, resourceID) {
391
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.form, resourceID);
392
- this.configById.delete(cacheID);
391
+ await this.deleteFormConfigCache(name, resourceID);
393
392
  return this.formConfigFetcher.saveConfig(config, name, resourceID);
394
393
  }
395
394
  static async saveCardState(config, name, resourceID) {
@@ -399,18 +398,16 @@ class ConfigStorage {
399
398
  if (config == undefined) {
400
399
  return;
401
400
  }
402
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.grid, resourceID);
403
- this.configById.delete(cacheID);
401
+ await this.deleteGridConfigCache(name, resourceID);
404
402
  return this.gridConfigFetcher.saveConfig(config, name, resourceID);
405
403
  }
406
404
  static async loadPersonalizedFilter(filterId, resourceID, configName) {
407
405
  return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName);
408
406
  }
409
407
  static async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
410
- //Ao criar ou alterar um filtro personalizado,
408
+ //Ao criar ou alterar um filtro personalizado,
411
409
  //precisamos remover o cache do status da filterbar.
412
- const cacheID = this.buildCacheID(configName, CONFIG_SOURCE.filterBar, resourceID);
413
- this.configById.delete(cacheID);
410
+ await this.deleteFilterBarConfigCache(configName, resourceID);
414
411
  return this.personalizedFilterFetcher.savePersonalizedFilter(personalizedFilter, resourceID, configName);
415
412
  }
416
413
  static async removePersonalizedFilter(personalizedFilter, resourceID, configName) {
@@ -419,6 +416,19 @@ class ConfigStorage {
419
416
  static async validatePersonalizedFilter(dataUnitName, expression) {
420
417
  return this.personalizedFilterFetcher.validatePersonalizedFilter(dataUnitName, expression);
421
418
  }
419
+ static async deleteGridConfigCache(name, resourceID) {
420
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.grid);
421
+ }
422
+ static async deleteFormConfigCache(name, resourceID) {
423
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.form);
424
+ }
425
+ static async deleteFilterBarConfigCache(name, resourceID) {
426
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.filterBar);
427
+ }
428
+ static async deleteConfigCache(name, resourceID, source) {
429
+ const cacheID = ConfigStorage.buildCacheID(name, source, resourceID);
430
+ this.configById.delete(cacheID);
431
+ }
422
432
  static buildCacheID(name, source, resourceID) {
423
433
  if (name == undefined) {
424
434
  return `req_${source}_${resourceID}`;
@@ -6786,7 +6786,6 @@ class DataFetcher {
6786
6786
  if (http.readyState == 4 && http.status == 200) {
6787
6787
  try {
6788
6788
  const jsonResp = JSON.parse(http.responseText);
6789
- await this.processServiceBrokerClientEvents({ clientEvents: jsonResp === null || jsonResp === void 0 ? void 0 : jsonResp.clientEvents, serviceName, payloadJson, accept, reject });
6790
6789
  /**
6791
6790
  * Este trecho difere do projeto HTML5 devido à decisão de adotar uma abordagem síncrona para esta chamada. Isso é justificado pelo fato de que, no cenário em questão, a abordagem assíncrona teria impactos negativos.
6792
6791
  *
@@ -6797,8 +6796,10 @@ class DataFetcher {
6797
6796
  if (this.isServiceBrokerError(jsonResp)) {
6798
6797
  reject(this.processServiceBrokerErrorInfo(jsonResp));
6799
6798
  }
6800
- else if (jsonResp.status == DataFetcher.SERVICE_BROKER_STATUS.SERVICE_CANCELED && jsonResp.statusMessage) {
6801
- console.debug(`[DataFetcher] ${jsonResp.statusMessage}`);
6799
+ else if (jsonResp.status == DataFetcher.SERVICE_BROKER_STATUS.SERVICE_CANCELED) {
6800
+ if (jsonResp.statusMessage) {
6801
+ console.debug(`[DataFetcher] ${jsonResp.statusMessage}`);
6802
+ }
6802
6803
  }
6803
6804
  else {
6804
6805
  accept(jsonResp.responseBody);
@@ -6806,6 +6807,7 @@ class DataFetcher {
6806
6807
  (_a = this.application) === null || _a === void 0 ? void 0 : _a.info(jsonResp.statusMessage);
6807
6808
  }
6808
6809
  }
6810
+ this.processServiceBrokerClientEvents({ clientEvents: jsonResp === null || jsonResp === void 0 ? void 0 : jsonResp.clientEvents, serviceName, payloadJson, accept, reject });
6809
6811
  }
6810
6812
  catch (err) {
6811
6813
  console.warn(`Erro ao executar serviço: ${err}`);
@@ -3,6 +3,7 @@ var SaveErrorsEnum;
3
3
  SaveErrorsEnum["LINK_AND_FILE_AT_THE_SAME_TIME"] = "LINK_AND_FILE_AT_THE_SAME_TIME";
4
4
  SaveErrorsEnum["ANY_LINK_OR_FILE_FILLED"] = "ANY_LINK_OR_FILE_FILLED";
5
5
  SaveErrorsEnum["UNKNOWN"] = "UNKNOWN";
6
+ SaveErrorsEnum["DESCRIPTION_CANNOT_BE_CHANGED"] = "DESCRIPTION_CANNOT_BE_CHANGED";
6
7
  })(SaveErrorsEnum || (SaveErrorsEnum = {}));
7
8
 
8
9
  export { SaveErrorsEnum as S };
@@ -1,6 +1,6 @@
1
- import { C as ConfigStorage } from './ConfigStorage-379a9cba.js';
1
+ import { C as ConfigStorage } from './ConfigStorage-39ed8aeb.js';
2
2
  import { ObjectUtils, StringUtils } from '@sankhyalabs/core';
3
- import { F as FormConfigFetcher } from './form-config-fetcher-36219cd3.js';
3
+ import { F as FormConfigFetcher } from './form-config-fetcher-f121f880.js';
4
4
 
5
5
  class SnkFormConfigManager {
6
6
  constructor(configName, resourceID, onConfigChange) {
@@ -351,11 +351,24 @@ const snkAttachMessages = {
351
351
  anyLinkOrFileFilled: {
352
352
  title: "Atenção",
353
353
  message: `É necessário preencher o campo "Link" ou anexar um arquivo.`
354
+ },
355
+ descriptionCannotBeChanged: {
356
+ title: "Atenção",
357
+ message: "O campo 'Descrição' não pode ser alterado."
354
358
  }
355
359
  },
356
360
  taskbar: {
357
361
  titleDownload: "Fazer download",
358
362
  titleLink: "Abrir link",
363
+ },
364
+ attachMetadata: {
365
+ lblCode: "Código",
366
+ lblDescription: "Descrição",
367
+ lblFileOrLink: "Arquivo / Link",
368
+ lblUser: "Usuário",
369
+ lblDate: "Data de alteração",
370
+ lblFile: "Arquivo",
371
+ lblSubTitle: "Clique para selecionar um arquivo",
359
372
  }
360
373
  };
361
374
 
@@ -1,5 +1,5 @@
1
1
  import { ObjectUtils } from '@sankhyalabs/core';
2
- import { R as ResourceFetcher } from './form-config-fetcher-36219cd3.js';
2
+ import { R as ResourceFetcher } from './form-config-fetcher-f121f880.js';
3
3
 
4
4
  class AuthFetcher extends ResourceFetcher {
5
5
  getData(resourceID) {
@@ -1,4 +1,4 @@
1
- import { d as dist, D as DataFetcher } from './DataFetcher-aa159c5a.js';
1
+ import { d as dist, D as DataFetcher } from './DataFetcher-a650ae58.js';
2
2
  import { ObjectUtils } from '@sankhyalabs/core';
3
3
 
4
4
  class ResourceFetcher {
@@ -2,6 +2,7 @@ var PresentationMode;
2
2
  (function (PresentationMode) {
3
3
  PresentationMode["PRIMARY"] = "primary";
4
4
  PresentationMode["SECONDARY"] = "secondary";
5
+ PresentationMode["SINGLE_TASKBAR"] = "singleTaskbar";
5
6
  })(PresentationMode || (PresentationMode = {}));
6
7
  var DataExporterOption;
7
8
  (function (DataExporterOption) {