@sankhyalabs/sankhyablocks 8.15.0-dev.6 → 8.15.0-dev.60

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 (352) hide show
  1. package/dist/cjs/{ConfigStorage-8009ecb2.js → ConfigStorage-7df9d3bb.js} +102 -30
  2. package/dist/cjs/IExporterProvider-1ed8e92a.js +187 -0
  3. package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
  4. package/dist/cjs/RecordIDUtils-3735135c.js +43 -0
  5. package/dist/cjs/{SnkFormConfigManager-7d850fbc.js → SnkFormConfigManager-4259edbe.js} +21 -13
  6. package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-66aa2557.js} +19 -1
  7. package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-e6112be7.js} +1 -1
  8. package/dist/cjs/{DataFetcher-ba94ed5b.js → form-config-fetcher-3c4daeb5.js} +258 -4
  9. package/dist/cjs/index-f9e81701.js +2 -10
  10. package/dist/cjs/loader.cjs.js +1 -1
  11. package/dist/cjs/{dataunit-fetcher-bd4c52da.js → pesquisa-fetcher-cb768be1.js} +520 -86
  12. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  13. package/dist/cjs/{snk-actions-button_2.cjs.entry.js → snk-actions-button_4.cjs.entry.js} +529 -13
  14. package/dist/cjs/snk-application.cjs.entry.js +62 -28
  15. package/dist/cjs/snk-attach.cjs.entry.js +422 -62
  16. package/dist/cjs/snk-crud.cjs.entry.js +17 -12
  17. package/dist/cjs/snk-data-exporter.cjs.entry.js +204 -82
  18. package/dist/cjs/{snk-data-unit-1bc69073.js → snk-data-unit-abd2113f.js} +3 -38
  19. package/dist/cjs/snk-data-unit.cjs.entry.js +3 -2
  20. package/dist/cjs/snk-detail-view.cjs.entry.js +10 -12
  21. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  22. package/dist/cjs/snk-filter-bar.cjs.entry.js +65 -10
  23. package/dist/cjs/snk-filter-detail.cjs.entry.js +4 -1
  24. package/dist/cjs/snk-filter-item.cjs.entry.js +13 -6
  25. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +2 -3
  26. package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -1
  27. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  28. package/dist/cjs/snk-form-config.cjs.entry.js +46 -27
  29. package/dist/cjs/snk-form.cjs.entry.js +10 -4
  30. package/dist/cjs/snk-grid.cjs.entry.js +95 -116
  31. package/dist/cjs/{snk-guides-viewer-cb176c4d.js → snk-guides-viewer-bec9c1a5.js} +15 -11
  32. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -10
  33. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
  34. package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -3
  35. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  36. package/dist/cjs/snk-simple-crud.cjs.entry.js +367 -38
  37. package/dist/cjs/snk-taskbar.cjs.entry.js +124 -15
  38. package/dist/cjs/{taskbar-elements-01b85b99.js → taskbar-elements-d9392685.js} +11 -11
  39. package/dist/collection/collection-manifest.json +7 -7
  40. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  41. package/dist/collection/components/snk-application/snk-application.js +85 -2
  42. package/dist/collection/components/snk-attach/snk-attach.js +212 -39
  43. package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
  44. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
  45. package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
  46. package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
  47. package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
  48. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +118 -0
  49. package/dist/collection/components/snk-attach/structure/index.js +6 -3
  50. package/dist/collection/components/snk-crud/snk-crud.js +95 -3
  51. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -2
  52. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  53. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +27 -3
  54. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +90 -0
  55. package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +68 -0
  56. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +48 -1
  57. package/dist/collection/components/snk-data-exporter/interfaces/IExporterStrategy.js +1 -0
  58. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +53 -0
  59. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +55 -0
  60. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +42 -48
  61. package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +88 -0
  62. package/dist/collection/components/snk-data-exporter/utils/RecordIDUtils.js +38 -0
  63. package/dist/collection/components/snk-data-unit/snk-data-unit.js +3 -42
  64. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  65. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  66. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -1
  67. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +22 -1
  68. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +31 -6
  69. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +19 -1
  70. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +24 -1
  71. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +159 -5
  72. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +3 -1
  73. package/dist/collection/components/snk-form/snk-form.js +25 -1
  74. package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.js +20 -12
  75. package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +50 -30
  76. package/dist/collection/components/snk-grid/snk-grid.js +102 -109
  77. package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.js +130 -123
  78. package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.js +1 -1
  79. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
  80. package/dist/collection/components/snk-simple-crud/regular-buttons.js +3 -0
  81. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +10 -2
  82. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +548 -20
  83. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +4 -2
  84. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +11 -11
  85. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  86. package/dist/collection/components/snk-taskbar/snk-taskbar.js +167 -14
  87. package/dist/collection/lib/configs/ConfigStorage.js +86 -16
  88. package/dist/collection/lib/dataUnit/InMemoryLoader.js +9 -40
  89. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +33 -0
  90. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +7 -4
  91. package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
  92. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
  93. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
  94. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
  95. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
  96. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
  97. package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
  98. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +3 -0
  99. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +4 -0
  100. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +11 -13
  101. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +32 -3
  102. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +36 -23
  103. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +12 -0
  104. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  105. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +6 -3
  106. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +12 -13
  107. package/dist/collection/lib/index.js +1 -1
  108. package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
  109. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -1
  110. package/dist/collection/lib/message/resources/snk-simple-crud.msg.js +4 -0
  111. package/dist/collection/lib/utils/CrudUtils.js +13 -1
  112. package/dist/components/ConfigStorage.js +93 -21
  113. package/dist/components/IExporterProvider.js +256 -0
  114. package/dist/components/ISave.js +42 -0
  115. package/dist/components/SnkFormConfigManager.js +19 -11
  116. package/dist/components/SnkMessageBuilder.js +19 -1
  117. package/dist/components/dataunit-fetcher.js +138 -91
  118. package/dist/components/form-config-fetcher.js +7035 -3
  119. package/dist/components/index.d.ts +6 -6
  120. package/dist/components/index2.js +198 -33
  121. package/dist/components/snk-actions-button2.js +3 -11
  122. package/dist/components/snk-application2.js +42 -3
  123. package/dist/components/snk-attach2.js +478 -70
  124. package/dist/components/snk-crud.js +18 -7
  125. package/dist/components/snk-data-exporter2.js +199 -82
  126. package/dist/components/snk-data-unit2.js +41 -39
  127. package/dist/components/snk-detail-view2.js +44 -12
  128. package/dist/components/snk-entity-list.js +5 -3
  129. package/dist/components/snk-expression-item2.js +1 -1
  130. package/dist/components/snk-filter-bar2.js +69 -8
  131. package/dist/components/snk-filter-detail2.js +5 -1
  132. package/dist/components/snk-filter-item2.js +14 -6
  133. package/dist/components/snk-filter-modal.js +4 -2
  134. package/dist/components/snk-filter-multi-select.js +2 -1
  135. package/dist/components/snk-form-config2.js +47 -27
  136. package/dist/components/snk-form.js +8 -0
  137. package/dist/components/snk-grid-config2.js +128 -102
  138. package/dist/components/snk-grid2.js +96 -112
  139. package/dist/components/snk-personalized-filter-editor.js +3 -1
  140. package/dist/components/snk-personalized-filter2.js +1 -1
  141. package/dist/components/snk-pesquisa2.js +1 -1
  142. package/dist/components/snk-simple-crud2.js +421 -34
  143. package/dist/components/snk-taskbar2.js +144 -29
  144. package/dist/components/taskbar-actions-button2.js +4 -2
  145. package/dist/esm/{ConfigStorage-1244b8b0.js → ConfigStorage-928c3bf4.js} +93 -21
  146. package/dist/esm/IExporterProvider-ceabfb7e.js +179 -0
  147. package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
  148. package/dist/esm/RecordIDUtils-87d02110.js +41 -0
  149. package/dist/esm/{SnkFormConfigManager-9be0e7d4.js → SnkFormConfigManager-a87ade7a.js} +21 -13
  150. package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-0a4becdd.js} +19 -1
  151. package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-e1cb288f.js} +1 -1
  152. package/dist/esm/{DataFetcher-aa159c5a.js → form-config-fetcher-e3094014.js} +257 -5
  153. package/dist/esm/index-a7d3d3f1.js +2 -10
  154. package/dist/esm/loader.js +1 -1
  155. package/dist/esm/{dataunit-fetcher-65714f21.js → pesquisa-fetcher-72125b13.js} +494 -69
  156. package/dist/esm/sankhyablocks.js +1 -1
  157. package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +523 -9
  158. package/dist/esm/snk-application.entry.js +43 -9
  159. package/dist/esm/snk-attach.entry.js +422 -62
  160. package/dist/esm/snk-crud.entry.js +17 -12
  161. package/dist/esm/snk-data-exporter.entry.js +204 -82
  162. package/dist/esm/{snk-data-unit-6208ebf0.js → snk-data-unit-29eba11a.js} +4 -39
  163. package/dist/esm/snk-data-unit.entry.js +3 -2
  164. package/dist/esm/snk-detail-view.entry.js +10 -12
  165. package/dist/esm/snk-entity-list.entry.js +5 -3
  166. package/dist/esm/snk-filter-bar.entry.js +65 -10
  167. package/dist/esm/snk-filter-detail.entry.js +4 -1
  168. package/dist/esm/snk-filter-item.entry.js +13 -6
  169. package/dist/esm/snk-filter-modal-item.entry.js +2 -3
  170. package/dist/esm/snk-filter-modal.entry.js +2 -1
  171. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  172. package/dist/esm/snk-form-config.entry.js +47 -28
  173. package/dist/esm/snk-form.entry.js +10 -4
  174. package/dist/esm/snk-grid.entry.js +95 -116
  175. package/dist/esm/{snk-guides-viewer-eeb8f354.js → snk-guides-viewer-303aafb4.js} +15 -11
  176. package/dist/esm/snk-guides-viewer.entry.js +8 -10
  177. package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
  178. package/dist/esm/snk-personalized-filter.entry.js +2 -3
  179. package/dist/esm/snk-pesquisa.entry.js +1 -1
  180. package/dist/esm/snk-simple-crud.entry.js +359 -30
  181. package/dist/esm/snk-taskbar.entry.js +125 -16
  182. package/dist/esm/{taskbar-elements-d4d0b424.js → taskbar-elements-ad766858.js} +11 -11
  183. package/dist/sankhyablocks/p-029bfc09.js +1 -0
  184. package/dist/sankhyablocks/p-07825198.js +1 -0
  185. package/dist/sankhyablocks/p-0e8702f0.js +1 -0
  186. package/dist/sankhyablocks/p-13ea113d.entry.js +1 -0
  187. package/dist/sankhyablocks/p-1fa244c0.entry.js +1 -0
  188. package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
  189. package/dist/sankhyablocks/p-2d972c2e.entry.js +1 -0
  190. package/dist/sankhyablocks/p-314e2d1a.entry.js +1 -0
  191. package/dist/sankhyablocks/p-32556aa6.js +1 -0
  192. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  193. package/dist/sankhyablocks/p-3494a28e.entry.js +1 -0
  194. package/dist/sankhyablocks/p-35bd4df7.entry.js +1 -0
  195. package/dist/sankhyablocks/p-536eeb16.js +26 -0
  196. package/dist/sankhyablocks/p-54a5d52a.entry.js +1 -0
  197. package/dist/sankhyablocks/p-563701f3.js +1 -0
  198. package/dist/sankhyablocks/p-61984566.entry.js +1 -0
  199. package/dist/sankhyablocks/p-61dd89eb.js +1 -0
  200. package/dist/sankhyablocks/p-64977b22.entry.js +1 -0
  201. package/dist/sankhyablocks/p-65b6dba3.entry.js +1 -0
  202. package/dist/sankhyablocks/p-6bc64fb0.entry.js +1 -0
  203. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  204. package/dist/sankhyablocks/p-9863d682.js +1 -0
  205. package/dist/sankhyablocks/p-aedf37fb.js +65 -0
  206. package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
  207. package/dist/sankhyablocks/p-b233f5aa.entry.js +1 -0
  208. package/dist/sankhyablocks/p-b86ea293.entry.js +1 -0
  209. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  210. package/dist/sankhyablocks/p-c73482cf.js +1 -0
  211. package/dist/sankhyablocks/p-cb3c7b4a.entry.js +11 -0
  212. package/dist/sankhyablocks/p-cfb98f51.entry.js +1 -0
  213. package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
  214. package/dist/sankhyablocks/p-d911a023.entry.js +1 -0
  215. package/dist/sankhyablocks/p-e27496ed.js +56 -0
  216. package/dist/sankhyablocks/p-e8763234.entry.js +1 -0
  217. package/dist/sankhyablocks/p-fa84e72f.entry.js +1 -0
  218. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  219. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  220. package/dist/types/components/snk-application/snk-application.d.ts +15 -0
  221. package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
  222. package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
  223. package/dist/types/components/snk-attach/snk-attach.d.ts +29 -6
  224. package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
  225. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +40 -0
  226. package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
  227. package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
  228. package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
  229. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +16 -0
  230. package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
  231. package/dist/types/components/snk-crud/snk-crud.d.ts +21 -0
  232. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -1
  233. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +6 -1
  234. package/dist/types/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.d.ts +13 -0
  235. package/dist/types/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.d.ts +11 -0
  236. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +21 -4
  237. package/dist/types/components/snk-data-exporter/interfaces/IExporterStrategy.d.ts +5 -0
  238. package/dist/types/components/snk-data-exporter/providers/ClientSideExporterProvider.d.ts +17 -0
  239. package/dist/types/components/snk-data-exporter/providers/ServerSideExporterProvider.d.ts +17 -0
  240. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +3 -1
  241. package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +77 -0
  242. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +3 -0
  243. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +4 -0
  244. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +7 -3
  245. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +5 -0
  246. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +27 -1
  247. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +3 -1
  248. package/dist/types/components/snk-form/snk-form.d.ts +6 -1
  249. package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +2 -1
  250. package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +5 -3
  251. package/dist/types/components/snk-grid/snk-grid.d.ts +19 -4
  252. package/dist/types/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.d.ts +11 -6
  253. package/dist/types/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.d.ts +1 -1
  254. package/dist/types/components/snk-simple-crud/regular-buttons.d.ts +3 -0
  255. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +98 -4
  256. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +1 -1
  257. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +34 -1
  258. package/dist/types/components.d.ts +314 -12
  259. package/dist/types/lib/configs/ConfigStorage.d.ts +25 -1
  260. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +0 -2
  261. package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +4 -0
  262. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  263. package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
  264. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
  265. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
  266. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
  267. package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
  268. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +2 -1
  269. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +1 -0
  270. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +1 -0
  271. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
  272. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +1 -0
  273. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +1 -0
  274. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +2 -0
  275. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  276. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
  277. package/dist/types/lib/index.d.ts +1 -1
  278. package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
  279. package/package.json +15 -6
  280. package/dist/cjs/PreloadManager-84466da6.js +0 -224
  281. package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
  282. package/dist/cjs/form-config-fetcher-df043d3d.js +0 -244
  283. package/dist/cjs/pesquisa-fetcher-ef050a47.js +0 -167
  284. package/dist/cjs/snk-grid-config.cjs.entry.js +0 -483
  285. package/dist/cjs/snk-select-box.cjs.entry.js +0 -25
  286. package/dist/collection/lib/http/data-fetcher/fetchers/fetchDataExporter/index.js +0 -34
  287. package/dist/components/DataFetcher.js +0 -7021
  288. package/dist/components/field-search.js +0 -121
  289. package/dist/components/index3.js +0 -199
  290. package/dist/esm/PreloadManager-c1c2f2b4.js +0 -222
  291. package/dist/esm/SnkMultiSelectionListDataSource-44494b0e.js +0 -43
  292. package/dist/esm/form-config-fetcher-36219cd3.js +0 -241
  293. package/dist/esm/pesquisa-fetcher-dd3ca0a5.js +0 -165
  294. package/dist/esm/snk-grid-config.entry.js +0 -479
  295. package/dist/esm/snk-select-box.entry.js +0 -21
  296. package/dist/sankhyablocks/p-0874adb5.entry.js +0 -1
  297. package/dist/sankhyablocks/p-094c30cb.js +0 -1
  298. package/dist/sankhyablocks/p-0d7863ed.js +0 -26
  299. package/dist/sankhyablocks/p-0dca29cb.entry.js +0 -1
  300. package/dist/sankhyablocks/p-11081798.entry.js +0 -1
  301. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  302. package/dist/sankhyablocks/p-29804fc5.js +0 -60
  303. package/dist/sankhyablocks/p-32f0935f.js +0 -1
  304. package/dist/sankhyablocks/p-3520c088.entry.js +0 -1
  305. package/dist/sankhyablocks/p-374d03f6.js +0 -1
  306. package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
  307. package/dist/sankhyablocks/p-585294ee.js +0 -56
  308. package/dist/sankhyablocks/p-6977a26c.entry.js +0 -1
  309. package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
  310. package/dist/sankhyablocks/p-6d20d38c.entry.js +0 -1
  311. package/dist/sankhyablocks/p-776ee8e3.js +0 -1
  312. package/dist/sankhyablocks/p-7d51d949.entry.js +0 -11
  313. package/dist/sankhyablocks/p-809f367d.entry.js +0 -1
  314. package/dist/sankhyablocks/p-95a3778f.entry.js +0 -1
  315. package/dist/sankhyablocks/p-9695f78b.js +0 -1
  316. package/dist/sankhyablocks/p-98674137.entry.js +0 -1
  317. package/dist/sankhyablocks/p-a9e5b094.entry.js +0 -1
  318. package/dist/sankhyablocks/p-b146a9f0.entry.js +0 -1
  319. package/dist/sankhyablocks/p-bedb8ad6.entry.js +0 -1
  320. package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
  321. package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
  322. package/dist/sankhyablocks/p-ca4d337a.entry.js +0 -1
  323. package/dist/sankhyablocks/p-cb7419e0.entry.js +0 -1
  324. package/dist/sankhyablocks/p-d1f5bc50.js +0 -1
  325. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  326. package/dist/sankhyablocks/p-d6317851.entry.js +0 -1
  327. package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
  328. package/dist/sankhyablocks/p-e6380c60.js +0 -1
  329. package/dist/sankhyablocks/p-f2056f66.entry.js +0 -1
  330. package/dist/sankhyablocks/p-f514913b.entry.js +0 -1
  331. package/dist/sankhyablocks/p-fd8814b9.entry.js +0 -1
  332. package/dist/sankhyablocks/p-ff6064e7.js +0 -1
  333. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
  334. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/index.d.ts +0 -3
  335. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
  336. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
  337. /package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.css +0 -0
  338. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.css +0 -0
  339. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.js +0 -0
  340. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.css +0 -0
  341. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.js +0 -0
  342. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.css +0 -0
  343. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.js +0 -0
  344. /package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.css +0 -0
  345. /package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.css +0 -0
  346. /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
  347. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.d.ts +0 -0
  348. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.d.ts +0 -0
  349. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -0
  350. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
  351. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
  352. /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;
@@ -41,6 +50,18 @@ export class SnkTaskbar {
41
50
  }
42
51
  observeButtons() {
43
52
  this._definitions = undefined;
53
+ requestAnimationFrame(() => {
54
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
55
+ });
56
+ }
57
+ observeDisabledButtons() {
58
+ var _a;
59
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate();
60
+ }
61
+ observeLastWidth(newValue, oldValue) {
62
+ if (oldValue === 0 && newValue !== 0) {
63
+ this._hasToUpdateOverFlow = true;
64
+ }
44
65
  }
45
66
  // Internal methods
46
67
  elementsFromString(strButtons) {
@@ -135,13 +156,21 @@ export class SnkTaskbar {
135
156
  className += "ez-padding-left--medium";
136
157
  }
137
158
  const taskbarElement = TaskbarElement[def.toString()];
159
+ const dataExporterStoreKey = this._element.dataset.exporterStoreKey || this.configName;
138
160
  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);
161
+ 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
162
  }
141
163
  else {
142
164
  return buildCustomButton(def, className, this.getIdElemBtnCustom(def), elem => this.elementClick(elem), elem => this.isEnabled(elem));
143
165
  }
144
166
  }
167
+ buildDynamicActionsList() {
168
+ var _a;
169
+ if (this._hiddenActionsList.length) {
170
+ return [...((_a = this.actionsList) !== null && _a !== void 0 ? _a : []), { type: 'divider', label: "", value: "" }, ...this._hiddenActionsList];
171
+ }
172
+ return this.actionsList;
173
+ }
145
174
  getIdElemBtnNative(taskbarElem) {
146
175
  return StringUtils.toCamelCase(taskbarElem);
147
176
  }
@@ -182,11 +211,13 @@ export class SnkTaskbar {
182
211
  });
183
212
  }
184
213
  addCustomElementContainer(elem) {
214
+ var _a;
185
215
  const elementId = `${this.TASKBAR_ITEM_ID_PREFIX}${elem}`;
186
216
  if (!this._customElementsId.includes(elementId)) {
187
217
  this._customElementsId.push(elementId);
218
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.addNotOverFlowElement(elementId);
188
219
  }
189
- return h("span", { key: elementId, id: elementId });
220
+ return h("span", { class: "ez-padding-left--medium", key: elementId, id: elementId });
190
221
  }
191
222
  getCustomElements() {
192
223
  var _a, _b;
@@ -216,20 +247,95 @@ export class SnkTaskbar {
216
247
  this.getCustomElements();
217
248
  }
218
249
  componentWillRender() {
250
+ this.handleDefinitions();
251
+ this.validatePresentationMode();
252
+ this.updateOverFlowIfNeeded();
253
+ }
254
+ handleDefinitions() {
219
255
  if (this._definitions == undefined && this._permissions) {
220
256
  this._definitions = this.elementsFromString(this.buttons);
221
257
  }
222
- this.validatePresentationMode();
258
+ }
259
+ updateOverFlowIfNeeded() {
260
+ if (this._hasToUpdateOverFlow) {
261
+ requestAnimationFrame(() => { var _a; return (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.forceUpdate(); });
262
+ this._hasToUpdateOverFlow = false;
263
+ }
264
+ }
265
+ handleOverFlow(overFlowingElements) {
266
+ const elementsToHandle = overFlowingElements.filter(element => !this.hasToIgnoreOverFlow(element));
267
+ this.resetOverFlowedElements();
268
+ this.doOverFlowElements(elementsToHandle);
269
+ }
270
+ resetOverFlowedElements() {
271
+ this._overFlowedElements.forEach(element => {
272
+ element.classList.remove(OVERFLOWED_CLASS_NAME);
273
+ });
274
+ this._hiddenActionsList = [];
275
+ this._overFlowedElements = [];
276
+ }
277
+ doOverFlowElements(overFlowedElements) {
278
+ overFlowedElements.forEach(element => {
279
+ element.classList.add(OVERFLOWED_CLASS_NAME);
280
+ this._overFlowedElements.push(element);
281
+ this.addItemToActionList(element);
282
+ });
283
+ }
284
+ addItemToActionList(element) {
285
+ const taskbarElement = this.getTaskbarElementName(element);
286
+ if (taskbarElement && this.isEnabled(taskbarElement) && this.isAllowed(taskbarElement)) {
287
+ const optionItem = {
288
+ value: taskbarElement,
289
+ label: this.getTaskbarElementLabel(element),
290
+ iconName: this.getTaskbarElementIcon(element)
291
+ };
292
+ this._hiddenActionsList.push(optionItem);
293
+ }
294
+ }
295
+ getTaskbarElementName(element) {
296
+ var _a;
297
+ return (_a = element.getAttribute('data-taskbar-element')) !== null && _a !== void 0 ? _a : "";
298
+ }
299
+ getTaskbarElementIcon(element) {
300
+ var _a;
301
+ return (_a = element.getAttribute('data-taskbar-icon')) !== null && _a !== void 0 ? _a : "";
302
+ }
303
+ getTaskbarElementLabel(element) {
304
+ var _a;
305
+ return (_a = element.getAttribute('data-taskbar-label')) !== null && _a !== void 0 ? _a : "";
306
+ }
307
+ hasToIgnoreOverFlow(element) {
308
+ return element.classList.contains(this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME);
309
+ }
310
+ handleOverFlowStrategy() {
311
+ if (this.overflowStrategy === 'hiddenItems') {
312
+ this._overFlowWatcher = new OverflowWatcher(this.buildOverFlowWatcherParams());
313
+ }
314
+ }
315
+ buildOverFlowWatcherParams() {
316
+ return {
317
+ element: this._element,
318
+ callback: this.handleOverFlow.bind(this),
319
+ overFlowDirection: OverflowDirection.HORIZONTAL,
320
+ notOverFlow: this.NOT_OVERFLOW_ELEMENTS
321
+ };
223
322
  }
224
323
  componentDidLoad() {
225
324
  const dataInfo = { dataUnit: this.dataUnit };
226
325
  ElementIDUtils.addIDInfo(this._element, null, dataInfo);
326
+ this.handleOverFlowStrategy();
227
327
  }
228
328
  componentDidRender() {
229
329
  this.appendCustomElementsInTaskbar();
330
+ this.updateLastWidth();
331
+ }
332
+ updateLastWidth() {
333
+ this._lastWidth = this._element.getBoundingClientRect().width;
230
334
  }
231
335
  disconnectedCallback() {
336
+ var _a;
232
337
  this.unlinkAllCustomElements();
338
+ (_a = this._overFlowWatcher) === null || _a === void 0 ? void 0 : _a.destroy();
233
339
  }
234
340
  unlinkAllCustomElements() {
235
341
  var _a;
@@ -247,14 +353,9 @@ export class SnkTaskbar {
247
353
  return undefined;
248
354
  }
249
355
  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
- }
356
+ return (h(Host, { class: this.getHostClasses() }, this.removeEmpty(this._definitions.map((elem) => {
357
+ var _a, _b;
358
+ index++;
258
359
  if (TaskbarElement[elem]) {
259
360
  return this.getElement(index, TaskbarElement[elem]);
260
361
  }
@@ -264,8 +365,14 @@ export class SnkTaskbar {
264
365
  if (this._customElements.has(elem)) {
265
366
  return this.addCustomElementContainer(elem);
266
367
  }
368
+ (_b = this._overFlowWatcher) === null || _b === void 0 ? void 0 : _b.addNotOverFlowElement(elem);
267
369
  return h("slot", { name: elem });
268
- })), h("div", { class: "taskbar-custom-elements-container" }, h("slot", { name: this.customSlotId }))));
370
+ })), h("div", { class: this.TASKBAR_CUSTOM_ELEMENTS_CONTAINER_CLASS_NAME }, h("slot", { name: this.customSlotId }))));
371
+ }
372
+ getHostClasses() {
373
+ if (this.overflowStrategy !== 'hiddenItems')
374
+ return 'no-wrap';
375
+ return `full-width ${this.alignRigth ? 'align-right' : ""}`;
269
376
  }
270
377
  static get is() { return "snk-taskbar"; }
271
378
  static get encapsulation() { return "scoped"; }
@@ -281,6 +388,24 @@ export class SnkTaskbar {
281
388
  }
282
389
  static get properties() {
283
390
  return {
391
+ "alignRigth": {
392
+ "type": "boolean",
393
+ "mutable": false,
394
+ "complexType": {
395
+ "original": "boolean",
396
+ "resolved": "boolean",
397
+ "references": {}
398
+ },
399
+ "required": false,
400
+ "optional": false,
401
+ "docs": {
402
+ "tags": [],
403
+ "text": "Usado para determinar O alinhamento dos items na taskbar."
404
+ },
405
+ "attribute": "align-rigth",
406
+ "reflect": false,
407
+ "defaultValue": "false"
408
+ },
284
409
  "customSlotId": {
285
410
  "type": "string",
286
411
  "mutable": false,
@@ -316,6 +441,24 @@ export class SnkTaskbar {
316
441
  "attribute": "custom-container-id",
317
442
  "reflect": false
318
443
  },
444
+ "overflowStrategy": {
445
+ "type": "string",
446
+ "mutable": false,
447
+ "complexType": {
448
+ "original": "'hiddenItems' | 'none'",
449
+ "resolved": "\"hiddenItems\" | \"none\"",
450
+ "references": {}
451
+ },
452
+ "required": false,
453
+ "optional": false,
454
+ "docs": {
455
+ "tags": [],
456
+ "text": "Define como ser\u00E1 o comportamento da taskbar quando ocorrer overflow"
457
+ },
458
+ "attribute": "overflow-strategy",
459
+ "reflect": false,
460
+ "defaultValue": "'hiddenItems'"
461
+ },
319
462
  "configName": {
320
463
  "type": "string",
321
464
  "mutable": false,
@@ -515,9 +658,13 @@ export class SnkTaskbar {
515
658
  static get states() {
516
659
  return {
517
660
  "_permissions": {},
661
+ "_overFlowedElements": {},
518
662
  "_customElements": {},
519
663
  "_customElementsId": {},
520
- "_slotContainer": {}
664
+ "_slotContainer": {},
665
+ "_hiddenActionsList": {},
666
+ "_lastWidth": {},
667
+ "_hasToUpdateOverFlow": {}
521
668
  };
522
669
  }
523
670
  static get events() {
@@ -543,6 +690,12 @@ export class SnkTaskbar {
543
690
  return [{
544
691
  "propName": "buttons",
545
692
  "methodName": "observeButtons"
693
+ }, {
694
+ "propName": "disabledButtons",
695
+ "methodName": "observeDisabledButtons"
696
+ }, {
697
+ "propName": "_lastWidth",
698
+ "methodName": "observeLastWidth"
546
699
  }];
547
700
  }
548
701
  }
@@ -2,17 +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
- const CONFIG_SOURCE = {
6
- form: "form",
7
- grid: "grid",
8
- filterBar: "filterBar"
9
- };
5
+ export var CONFIG_SOURCE;
6
+ (function (CONFIG_SOURCE) {
7
+ CONFIG_SOURCE["form"] = "form";
8
+ CONFIG_SOURCE["grid"] = "grid";
9
+ CONFIG_SOURCE["filterBar"] = "filterBar";
10
+ })(CONFIG_SOURCE || (CONFIG_SOURCE = {}));
10
11
  export class ConfigStorage {
11
- 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
+ }
12
31
  ConfigStorage.loadFormConfig(configName, resourceID);
13
32
  ConfigStorage.loadGridConfig(configName, resourceID);
14
33
  }
15
34
  static async loadFilterBarConfig(name, resourceID, urlParams) {
35
+ urlParams = this.handleLegacyConfig(name, CONFIG_SOURCE.filterBar, urlParams);
16
36
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.filterBar, resourceID);
17
37
  if (!ConfigStorage.configById.has(cacheID)) {
18
38
  ConfigStorage.configById.set(cacheID, ConfigStorage.filterBarConfigFetcher.getConfig(resourceID, name, urlParams));
@@ -20,6 +40,7 @@ export class ConfigStorage {
20
40
  return ConfigStorage.configById.get(cacheID);
21
41
  }
22
42
  static async loadFormConfig(name, resourceID) {
43
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.form);
23
44
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.form, resourceID);
24
45
  if (!ConfigStorage.configById.has(cacheID)) {
25
46
  ConfigStorage.configById.set(cacheID, ConfigStorage.formConfigFetcher.loadFormConfig(name, resourceID));
@@ -27,6 +48,7 @@ export class ConfigStorage {
27
48
  return ConfigStorage.configById.get(cacheID);
28
49
  }
29
50
  static async loadGridConfig(name, resourceID) {
51
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.grid);
30
52
  const cacheID = ConfigStorage.buildCacheID(name, CONFIG_SOURCE.grid, resourceID);
31
53
  if (!ConfigStorage.configById.has(cacheID)) {
32
54
  ConfigStorage.configById.set(cacheID, ConfigStorage.gridConfigFetcher.getConfig(name, resourceID));
@@ -34,13 +56,12 @@ export class ConfigStorage {
34
56
  return ConfigStorage.configById.get(cacheID);
35
57
  }
36
58
  static async saveFilterBarConfig(config, name, resourceID) {
37
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.filterBar, resourceID);
38
- this.configById.delete(cacheID);
59
+ await this.deleteFilterBarConfigCache(name, resourceID);
39
60
  return this.filterBarConfigFetcher.saveConfig(config, resourceID, name);
40
61
  }
41
62
  static async saveFormConfig(config, name, resourceID) {
42
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.form, resourceID);
43
- this.configById.delete(cacheID);
63
+ name = this.handleLegacyConfigAsString(name, CONFIG_SOURCE.form);
64
+ await this.deleteFormConfigCache(name, resourceID);
44
65
  return this.formConfigFetcher.saveConfig(config, name, resourceID);
45
66
  }
46
67
  static async saveCardState(config, name, resourceID) {
@@ -50,18 +71,17 @@ export class ConfigStorage {
50
71
  if (config == undefined) {
51
72
  return;
52
73
  }
53
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.grid, resourceID);
54
- this.configById.delete(cacheID);
74
+ await this.deleteGridConfigCache(name, resourceID);
55
75
  return this.gridConfigFetcher.saveConfig(config, name, resourceID);
56
76
  }
57
77
  static async loadPersonalizedFilter(filterId, resourceID, configName) {
58
- return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName);
78
+ const legacyConfigName = this.filterBarLegacyConfig.get(configName);
79
+ return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName, legacyConfigName);
59
80
  }
60
81
  static async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
61
- //Ao criar ou alterar um filtro personalizado,
82
+ //Ao criar ou alterar um filtro personalizado,
62
83
  //precisamos remover o cache do status da filterbar.
63
- const cacheID = this.buildCacheID(configName, CONFIG_SOURCE.filterBar, resourceID);
64
- this.configById.delete(cacheID);
84
+ await this.deleteFilterBarConfigCache(configName, resourceID);
65
85
  return this.personalizedFilterFetcher.savePersonalizedFilter(personalizedFilter, resourceID, configName);
66
86
  }
67
87
  static async removePersonalizedFilter(personalizedFilter, resourceID, configName) {
@@ -70,6 +90,51 @@ export class ConfigStorage {
70
90
  static async validatePersonalizedFilter(dataUnitName, expression) {
71
91
  return this.personalizedFilterFetcher.validatePersonalizedFilter(dataUnitName, expression);
72
92
  }
93
+ static async deleteGridConfigCache(name, resourceID) {
94
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.grid);
95
+ }
96
+ static async deleteFormConfigCache(name, resourceID) {
97
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.form);
98
+ }
99
+ static async deleteFilterBarConfigCache(name, resourceID) {
100
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.filterBar);
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
+ }
134
+ static async deleteConfigCache(name, resourceID, source) {
135
+ const cacheID = ConfigStorage.buildCacheID(name, source, resourceID);
136
+ this.configById.delete(cacheID);
137
+ }
73
138
  static buildCacheID(name, source, resourceID) {
74
139
  if (name == undefined) {
75
140
  return `req_${source}_${resourceID}`;
@@ -77,6 +142,11 @@ export class ConfigStorage {
77
142
  return `req_${source}_${name}_${resourceID}`;
78
143
  }
79
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();
80
150
  ConfigStorage.configById = new Map();
81
151
  ConfigStorage.filterBarConfigFetcher = new FilterBarConfigFetcher();
82
152
  ConfigStorage.formConfigFetcher = new FormConfigFetcher();
@@ -1,6 +1,5 @@
1
1
  import { ChangeOperation, DataType, DataUnit, DateUtils, StringUtils, } from '@sankhyalabs/core';
2
- import { ColumnFilterManager } from "@sankhyalabs/ezui/dist/collection/components/ez-grid/utils";
3
- import PreloadManager from '../http/data-fetcher/fetchers/data-unit/cache/PreloadManager';
2
+ import { applyFilter, applySorting, buildPaginationInfo } from './dataUnitInMemoryUtils';
4
3
  export default class InMemoryLoader {
5
4
  constructor(metadata, records) {
6
5
  this.metadata = metadata;
@@ -16,6 +15,10 @@ export default class InMemoryLoader {
16
15
  if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
17
16
  this._initialRecords = this.dataUnit.records;
18
17
  }
18
+ const addedRecords = this.dataUnit.getAddedRecords();
19
+ if (addedRecords) {
20
+ return [...this._initialRecords, ...addedRecords];
21
+ }
19
22
  return this._initialRecords;
20
23
  }
21
24
  get dataUnit() {
@@ -58,7 +61,7 @@ export default class InMemoryLoader {
58
61
  this._initialRecords = newRecords;
59
62
  if (this._dataUnit) {
60
63
  //Isso força o refresh internamente no datunit
61
- this._dataUnit.gotoPage(0);
64
+ this._dataUnit.loadData();
62
65
  }
63
66
  }
64
67
  get metadata() {
@@ -74,30 +77,9 @@ export default class InMemoryLoader {
74
77
  return StringUtils.generateUUID();
75
78
  }
76
79
  inMemoryLoader(dataUnit, request, recordsIn) {
77
- let records = this.applyFilter(recordsIn, dataUnit, request.filters);
78
- records = this.applySorting(records, dataUnit, request.sort);
79
- return Promise.resolve({ records, paginationInfo: buildPaginationInfo(request, records) });
80
- }
81
- applyFilter(records, dataUnit, filters) {
82
- const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
83
- if (columnFilters == undefined || columnFilters.size == 0) {
84
- return records;
85
- }
86
- const filterFunciton = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
87
- if (filterFunciton == undefined) {
88
- return records;
89
- }
90
- return records.filter(filterFunciton);
91
- }
92
- applySorting(records, dataUnit, sorting) {
93
- if (sorting == undefined || sorting.length == 0) {
94
- return records;
95
- }
96
- const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
97
- if (sortingFunction == undefined) {
98
- return records;
99
- }
100
- return records.sort(sortingFunction);
80
+ let records = applyFilter(recordsIn, dataUnit, request.filters);
81
+ records = applySorting(records, dataUnit, request.sort);
82
+ return Promise.resolve({ records, paginationInfo: buildPaginationInfo(records, request.offset, request.limit) });
101
83
  }
102
84
  metadaLoader() {
103
85
  return Promise.resolve(this._metadata);
@@ -130,16 +112,3 @@ export default class InMemoryLoader {
130
112
  }
131
113
  }
132
114
  InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
133
- function buildPaginationInfo({ offset, limit }, records) {
134
- if (offset === undefined || limit === undefined) {
135
- return undefined;
136
- }
137
- const lastRecord = Math.min(offset + limit, records.length);
138
- return {
139
- currentPage: Math.ceil(offset / limit),
140
- firstRecord: offset,
141
- lastRecord: lastRecord,
142
- total: records.length,
143
- hasMore: !!(records.length - lastRecord),
144
- };
145
- }
@@ -0,0 +1,33 @@
1
+ import { ColumnFilterManager } from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
2
+ import PreloadManager from '../http/data-fetcher/fetchers/data-unit/cache/PreloadManager';
3
+ export function applyFilter(records, dataUnit, filters) {
4
+ const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
5
+ if (!(columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.size)) {
6
+ return records;
7
+ }
8
+ const filterFunction = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
9
+ if (filterFunction == undefined) {
10
+ return records;
11
+ }
12
+ return records.filter(filterFunction);
13
+ }
14
+ export function applySorting(records, dataUnit, sorting) {
15
+ if (sorting == undefined || sorting.length == 0) {
16
+ return records;
17
+ }
18
+ const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
19
+ if (sortingFunction == undefined) {
20
+ return records;
21
+ }
22
+ return records.sort(sortingFunction);
23
+ }
24
+ export function buildPaginationInfo(records, offset = 0, limit = 0) {
25
+ const lastRecord = Math.min(offset + limit, records === null || records === void 0 ? void 0 : records.length);
26
+ return {
27
+ currentPage: limit === 0 ? 0 : Math.ceil(offset / limit),
28
+ firstRecord: offset,
29
+ lastRecord: lastRecord,
30
+ total: records === null || records === void 0 ? void 0 : records.length,
31
+ hasMore: !!((records === null || records === void 0 ? void 0 : records.length) - lastRecord),
32
+ };
33
+ }