@sankhyalabs/sankhyablocks 8.16.0-dev.9 → 8.16.0-dev.90

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 (383) hide show
  1. package/dist/cjs/{IExporterProvider-597949f9.js → ClientSideExporterProvider-6b781452.js} +136 -24
  2. package/dist/cjs/{ConfigStorage-a343e418.js → ConfigStorage-d024aec8.js} +2 -2
  3. package/dist/cjs/{DataFetcher-313debd8.js → DataFetcher-65879b2c.js} +216 -76
  4. package/dist/cjs/{RecordIDUtils-3735135c.js → GetSelectedRecordsIDsInfo-bd50caf1.js} +10 -10
  5. package/dist/cjs/IFetchDataExporterParams-e78ec415.js +8 -0
  6. package/dist/cjs/{SnkFormConfigManager-166cbd1f.js → SnkFormConfigManager-c11d8468.js} +75 -17
  7. package/dist/cjs/{SnkMessageBuilder-897ffd08.js → SnkMessageBuilder-bae64d0d.js} +6 -2
  8. package/dist/cjs/{auth-fetcher-54f5ff9d.js → auth-fetcher-8480751c.js} +1 -1
  9. package/dist/cjs/{constants-35ddd366.js → constants-241934b3.js} +9 -0
  10. package/dist/cjs/{dataunit-fetcher-688d3f05.js → dataunit-fetcher-8291ac21.js} +239 -43
  11. package/dist/cjs/{field-search-f56aa7d6.js → field-search-68e34bf4.js} +5 -1
  12. package/dist/cjs/{form-config-fetcher-2dd00e5b.js → form-config-fetcher-90126e4c.js} +42 -2
  13. package/dist/cjs/{index-1dfc7a6e.js → index-e3e39724.js} +5 -0
  14. package/dist/cjs/index-f9e81701.js +16 -32
  15. package/dist/cjs/loader.cjs.js +1 -1
  16. package/dist/cjs/pesquisa-fetcher-5c583c93.js +365 -0
  17. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +156 -0
  18. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  19. package/dist/cjs/{snk-actions-button_4.cjs.entry.js → snk-actions-button_5.cjs.entry.js} +139 -43
  20. package/dist/cjs/snk-application.cjs.entry.js +301 -70
  21. package/dist/cjs/snk-attach.cjs.entry.js +49 -36
  22. package/dist/cjs/{snk-form-config.cjs.entry.js → snk-config-options_3.cjs.entry.js} +399 -13
  23. package/dist/cjs/snk-configurator.cjs.entry.js +2 -2
  24. package/dist/cjs/snk-crud.cjs.entry.js +26 -22
  25. package/dist/cjs/snk-data-exporter.cjs.entry.js +38 -29
  26. package/dist/cjs/{snk-data-unit-8fa7917a.js → snk-data-unit-c8096724.js} +55 -31
  27. package/dist/cjs/snk-data-unit.cjs.entry.js +5 -5
  28. package/dist/cjs/snk-detail-view.cjs.entry.js +15 -15
  29. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
  30. package/dist/cjs/snk-field-config.cjs.entry.js +1 -1
  31. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +1437 -0
  32. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  33. package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +1 -1
  34. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  35. package/dist/cjs/snk-filter-number.cjs.entry.js +1 -1
  36. package/dist/cjs/snk-filter-text.cjs.entry.js +2 -1
  37. package/dist/cjs/snk-grid.cjs.entry.js +96 -27
  38. package/dist/cjs/{snk-guides-viewer-bdc41281.js → snk-guides-viewer-a029ff50.js} +32 -16
  39. package/dist/cjs/snk-guides-viewer.cjs.entry.js +11 -11
  40. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +4 -4
  41. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  42. package/dist/cjs/snk-pesquisa.cjs.entry.js +111 -31
  43. package/dist/cjs/snk-print-selector.cjs.entry.js +1 -1
  44. package/dist/cjs/snk-simple-bar.cjs.entry.js +1 -1
  45. package/dist/cjs/snk-simple-crud.cjs.entry.js +115 -112
  46. package/dist/cjs/snk-tab-config.cjs.entry.js +1 -1
  47. package/dist/cjs/snk-taskbar.cjs.entry.js +72 -40
  48. package/dist/cjs/{taskbar-elements-9ad1f9c0.js → taskbar-elements-7e19882d.js} +1 -1
  49. package/dist/collection/collection-manifest.json +14 -31
  50. package/dist/collection/components/snk-actions-button/actions/index.js +16 -13
  51. package/dist/collection/components/snk-actions-button/interfaces/index.js +1 -0
  52. package/dist/collection/components/snk-actions-button/snk-actions-button.js +27 -26
  53. package/dist/collection/components/snk-application/request-listener/DebouncedRequestListener.js +29 -0
  54. package/dist/collection/components/snk-application/request-listener/RequestListenerFactory.js +16 -0
  55. package/dist/collection/components/snk-application/request-listener/RequestListenerLoadingBar.js +52 -0
  56. package/dist/collection/components/snk-application/snk-application.css +36 -0
  57. package/dist/collection/components/snk-application/snk-application.js +323 -65
  58. package/dist/collection/components/snk-attach/snk-attach.js +25 -16
  59. package/dist/collection/components/snk-attach/structure/builder/taskbar-builder.js +8 -4
  60. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +2 -4
  61. package/dist/collection/components/snk-configurator/snk-configurator.css +1 -1
  62. package/dist/collection/components/snk-crud/snk-crud.js +147 -14
  63. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +3 -3
  64. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +6 -6
  65. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +72 -6
  66. package/dist/collection/components/snk-data-exporter/exporter-email-sender/options-step.js +1 -1
  67. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +8 -8
  68. package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +9 -2
  69. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +1 -1
  70. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +18 -6
  71. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +1 -1
  72. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +10 -9
  73. package/dist/collection/components/snk-data-exporter/structure/ItemBuilder.js +2 -2
  74. package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +4 -4
  75. package/dist/collection/components/snk-data-exporter/utils/ParserExport.js +1 -1
  76. package/dist/collection/components/snk-data-unit/snk-data-unit.js +53 -29
  77. package/dist/collection/components/snk-filter-bar/filter-item/dataunitfilter/data-unit-filter-builder.js +3 -3
  78. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-binary-select.js +1 -1
  79. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-checkbox-list.js +1 -1
  80. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-number.js +1 -1
  81. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-text.js +2 -1
  82. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.css +13 -0
  83. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -3
  84. package/dist/collection/components/snk-filter-bar/filter-item/filter-item-type-mask.enum.js +8 -0
  85. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +9 -4
  86. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.css +1 -1
  87. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +3 -1
  88. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +2 -6
  89. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +119 -29
  90. package/dist/collection/components/snk-form/snk-form.js +2 -2
  91. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +73 -15
  92. package/dist/collection/components/snk-form-config/snk-form-config.css +8 -3
  93. package/dist/collection/components/snk-form-config/snk-form-config.js +49 -8
  94. package/dist/collection/components/snk-grid/snk-grid.css +8 -0
  95. package/dist/collection/components/snk-grid/snk-grid.js +199 -13
  96. package/dist/collection/components/snk-grid-config/snk-grid-config.css +1 -1
  97. package/dist/collection/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.css +9 -0
  98. package/dist/collection/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.js +226 -0
  99. package/dist/collection/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.css +28 -0
  100. package/dist/collection/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.js +208 -0
  101. package/dist/collection/components/snk-pesquisa/pesquisaHelper.js +99 -0
  102. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +35 -6
  103. package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +174 -32
  104. package/dist/collection/components/snk-print-selector/snk-print-selector.js +1 -1
  105. package/dist/collection/components/snk-simple-bar/snk-simple-bar.js +1 -1
  106. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +1 -1
  107. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +180 -34
  108. package/dist/collection/components/snk-simple-form-config/snk-simple-form-config.css +22 -0
  109. package/dist/collection/components/snk-simple-form-config/snk-simple-form-config.js +181 -0
  110. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +5 -1
  111. package/dist/collection/components/snk-taskbar/snk-taskbar.js +112 -38
  112. package/dist/collection/lib/@types/index.js +5 -0
  113. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +3 -3
  114. package/dist/collection/lib/dataUnit/InMemoryLoader.js +2 -4
  115. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +34 -9
  116. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +29 -21
  117. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/anexo-sistema-fetcher.js +7 -5
  118. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +59 -14
  119. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +21 -7
  120. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/helpers/DataUnitDataLoaderHelper.js +108 -0
  121. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +17 -9
  122. package/dist/collection/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IFetchDataExporterParams.js +6 -1
  123. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +45 -5
  124. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +7 -1
  125. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +107 -7
  126. package/dist/collection/lib/index.js +1 -0
  127. package/dist/collection/lib/message/resources/snk-exporter.msg.js +1 -1
  128. package/dist/collection/lib/message/resources/snk-grid.msg.js +5 -1
  129. package/dist/collection/lib/utils/ContinuousInsertUtils.js +31 -0
  130. package/dist/collection/lib/utils/CrudUtils.js +25 -16
  131. package/dist/collection/{components/snk-data-exporter/utils/RecordIDUtils.js → lib/utils/GetSelectedRecordsIDsInfo.js} +9 -9
  132. package/dist/collection/lib/utils/constants.js +9 -0
  133. package/dist/collection/sw.js +46 -0
  134. package/dist/components/{IExporterProvider.js → ContinuousInsertUtils.js} +136 -24
  135. package/dist/components/DataFetcher.js +217 -77
  136. package/dist/{esm/RecordIDUtils-87d02110.js → components/GetSelectedRecordsIDsInfo.js} +10 -10
  137. package/dist/components/ISave.js +367 -1
  138. package/dist/components/SnkFormConfigManager.js +73 -15
  139. package/dist/components/SnkMessageBuilder.js +6 -2
  140. package/dist/components/constants.js +10 -1
  141. package/dist/components/dataunit-fetcher.js +238 -40
  142. package/dist/components/form-config-fetcher.js +41 -1
  143. package/dist/components/index.d.ts +3 -0
  144. package/dist/components/index.js +3 -0
  145. package/dist/components/pesquisa-grid.d.ts +11 -0
  146. package/dist/components/pesquisa-grid.js +6 -0
  147. package/dist/components/pesquisa-grid2.js +102 -0
  148. package/dist/components/pesquisa-tree.d.ts +11 -0
  149. package/dist/components/pesquisa-tree.js +6 -0
  150. package/dist/components/pesquisa-tree2.js +91 -0
  151. package/dist/components/snk-actions-button2.js +44 -40
  152. package/dist/components/snk-application2.js +320 -69
  153. package/dist/components/snk-attach2.js +54 -60
  154. package/dist/components/snk-config-options2.js +1 -1
  155. package/dist/components/snk-configurator2.js +1 -1
  156. package/dist/components/snk-crud.js +86 -71
  157. package/dist/components/snk-data-exporter2.js +37 -23
  158. package/dist/components/snk-data-unit2.js +56 -69
  159. package/dist/components/snk-detail-view2.js +115 -106
  160. package/dist/components/snk-exporter-email-sender2.js +1 -1
  161. package/dist/components/snk-filter-bar2.js +68 -34
  162. package/dist/components/snk-filter-binary-select.js +1 -1
  163. package/dist/components/snk-filter-checkbox-list.js +1 -1
  164. package/dist/components/snk-filter-item2.js +9 -4
  165. package/dist/components/snk-filter-modal.js +4 -2
  166. package/dist/components/snk-filter-number.js +1 -1
  167. package/dist/components/snk-filter-text.js +2 -1
  168. package/dist/components/snk-form-config2.js +35 -10
  169. package/dist/components/snk-form.js +2 -2
  170. package/dist/components/snk-grid-config2.js +1 -1
  171. package/dist/components/snk-grid2.js +92 -18
  172. package/dist/components/snk-personalized-filter-editor.js +4 -4
  173. package/dist/components/snk-pesquisa2.js +125 -33
  174. package/dist/components/snk-print-selector.js +1 -1
  175. package/dist/components/snk-simple-bar2.js +1 -1
  176. package/dist/components/snk-simple-crud2.js +107 -120
  177. package/dist/components/snk-simple-form-config.d.ts +11 -0
  178. package/dist/components/snk-simple-form-config.js +6 -0
  179. package/dist/components/snk-simple-form-config2.js +121 -0
  180. package/dist/components/snk-tab-config2.js +1 -1
  181. package/dist/components/snk-taskbar2.js +72 -40
  182. package/dist/components/teste-pesquisa.js +13 -1
  183. package/dist/esm/{IExporterProvider-63a188b6.js → ClientSideExporterProvider-ff89c7e9.js} +136 -26
  184. package/dist/esm/{ConfigStorage-3806514e.js → ConfigStorage-373bb440.js} +2 -2
  185. package/dist/esm/{DataFetcher-c1baf61d.js → DataFetcher-5221b992.js} +217 -77
  186. package/dist/esm/GetSelectedRecordsIDsInfo-9fa41508.js +41 -0
  187. package/dist/esm/IFetchDataExporterParams-d73bed3d.js +8 -0
  188. package/dist/esm/{SnkFormConfigManager-31b24066.js → SnkFormConfigManager-5022f87f.js} +75 -17
  189. package/dist/esm/{SnkMessageBuilder-571462fb.js → SnkMessageBuilder-6fff4a4c.js} +6 -2
  190. package/dist/esm/{auth-fetcher-039abba3.js → auth-fetcher-e32fe8a4.js} +1 -1
  191. package/dist/esm/{constants-8457af36.js → constants-75abb876.js} +10 -1
  192. package/dist/esm/{dataunit-fetcher-264191b2.js → dataunit-fetcher-5247a708.js} +239 -41
  193. package/dist/esm/{field-search-efbe307f.js → field-search-f8b1d91e.js} +5 -1
  194. package/dist/esm/{form-config-fetcher-30fb808f.js → form-config-fetcher-126e2471.js} +42 -2
  195. package/dist/esm/index-a7d3d3f1.js +16 -32
  196. package/dist/esm/{index-3aa4977a.js → index-b40568ff.js} +6 -1
  197. package/dist/esm/loader.js +1 -1
  198. package/dist/esm/pesquisa-fetcher-4284f2a3.js +362 -0
  199. package/dist/esm/pesquisa-grid_2.entry.js +151 -0
  200. package/dist/esm/sankhyablocks.js +1 -1
  201. package/dist/esm/{snk-actions-button_4.entry.js → snk-actions-button_5.entry.js} +140 -45
  202. package/dist/esm/snk-application.entry.js +303 -72
  203. package/dist/esm/snk-attach.entry.js +49 -36
  204. package/dist/esm/{snk-form-config.entry.js → snk-config-options_3.entry.js} +399 -15
  205. package/dist/esm/snk-configurator.entry.js +2 -2
  206. package/dist/esm/snk-crud.entry.js +26 -22
  207. package/dist/esm/snk-data-exporter.entry.js +38 -29
  208. package/dist/esm/{snk-data-unit-f5cbe64b.js → snk-data-unit-51659955.js} +55 -31
  209. package/dist/esm/snk-data-unit.entry.js +5 -5
  210. package/dist/esm/snk-detail-view.entry.js +15 -15
  211. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  212. package/dist/esm/snk-field-config.entry.js +1 -1
  213. package/dist/esm/snk-filter-bar_4.entry.js +1430 -0
  214. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  215. package/dist/esm/snk-filter-checkbox-list.entry.js +1 -1
  216. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  217. package/dist/esm/snk-filter-number.entry.js +1 -1
  218. package/dist/esm/snk-filter-text.entry.js +2 -1
  219. package/dist/esm/snk-grid.entry.js +91 -22
  220. package/dist/esm/{snk-guides-viewer-dda0fede.js → snk-guides-viewer-fa45714d.js} +32 -16
  221. package/dist/esm/snk-guides-viewer.entry.js +11 -11
  222. package/dist/esm/snk-personalized-filter-editor.entry.js +4 -4
  223. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  224. package/dist/esm/snk-pesquisa.entry.js +111 -31
  225. package/dist/esm/snk-print-selector.entry.js +1 -1
  226. package/dist/esm/snk-simple-bar.entry.js +1 -1
  227. package/dist/esm/snk-simple-crud.entry.js +101 -98
  228. package/dist/esm/snk-tab-config.entry.js +1 -1
  229. package/dist/esm/snk-taskbar.entry.js +73 -41
  230. package/dist/esm/{taskbar-elements-d59867f1.js → taskbar-elements-d2353c64.js} +1 -1
  231. package/dist/sankhyablocks/p-0b00d69c.entry.js +1 -0
  232. package/dist/sankhyablocks/p-0ce56d43.entry.js +1 -0
  233. package/dist/sankhyablocks/p-0f3698af.js +1 -0
  234. package/dist/sankhyablocks/p-1435701f.js +26 -0
  235. package/dist/sankhyablocks/p-16a1dd18.entry.js +1 -0
  236. package/dist/sankhyablocks/p-172848d4.entry.js +1 -0
  237. package/dist/sankhyablocks/p-17425c72.js +1 -0
  238. package/dist/sankhyablocks/{p-52920496.js → p-19dc71e9.js} +1 -1
  239. package/dist/sankhyablocks/{p-47db7e88.entry.js → p-1cf39cfd.entry.js} +1 -1
  240. package/dist/sankhyablocks/{p-b0ef4383.js → p-1d19a5b0.js} +1 -1
  241. package/dist/sankhyablocks/p-23736d75.js +1 -0
  242. package/dist/sankhyablocks/{p-8eb67fa4.entry.js → p-23cd6abf.entry.js} +1 -1
  243. package/dist/sankhyablocks/{p-95df461f.entry.js → p-2953c481.entry.js} +1 -1
  244. package/dist/sankhyablocks/p-38179225.js +60 -0
  245. package/dist/sankhyablocks/p-3ba431c9.js +1 -0
  246. package/dist/sankhyablocks/{p-7e7a7473.js → p-3fc82614.js} +1 -1
  247. package/dist/sankhyablocks/p-40e323f9.js +1 -0
  248. package/dist/sankhyablocks/p-41c3bee5.js +6 -0
  249. package/dist/sankhyablocks/{p-72fc257b.entry.js → p-434817f0.entry.js} +1 -1
  250. package/dist/sankhyablocks/p-47178038.entry.js +1 -0
  251. package/dist/sankhyablocks/{p-7663f597.entry.js → p-4c9adf1c.entry.js} +1 -1
  252. package/dist/sankhyablocks/{p-aaa3ee68.entry.js → p-5f157b09.entry.js} +1 -1
  253. package/dist/sankhyablocks/p-700a4cc3.entry.js +1 -0
  254. package/dist/sankhyablocks/p-79f823f3.entry.js +1 -0
  255. package/dist/sankhyablocks/p-7dd49d15.js +1 -0
  256. package/dist/sankhyablocks/p-82839c9f.js +1 -0
  257. package/dist/sankhyablocks/{p-2c68b3ae.entry.js → p-82ee6dc3.entry.js} +1 -1
  258. package/dist/sankhyablocks/p-89c92727.entry.js +1 -0
  259. package/dist/sankhyablocks/{p-41f8bfa3.entry.js → p-8c235d4c.entry.js} +1 -1
  260. package/dist/sankhyablocks/p-8f3f2306.js +1 -0
  261. package/dist/sankhyablocks/p-a962a3e4.entry.js +1 -0
  262. package/dist/sankhyablocks/p-aa1a0f3e.entry.js +1 -0
  263. package/dist/sankhyablocks/p-b02e58fd.entry.js +1 -0
  264. package/dist/sankhyablocks/p-b0ff53b7.entry.js +1 -0
  265. package/dist/sankhyablocks/p-bee2a6d3.entry.js +1 -0
  266. package/dist/sankhyablocks/p-c021a3a9.entry.js +1 -0
  267. package/dist/sankhyablocks/p-c2e468c9.entry.js +1 -0
  268. package/dist/sankhyablocks/p-c82deea7.entry.js +1 -0
  269. package/dist/sankhyablocks/p-d2d0535f.entry.js +1 -0
  270. package/dist/sankhyablocks/p-d62228fb.js +1 -0
  271. package/dist/sankhyablocks/p-de9da2f2.js +1 -0
  272. package/dist/sankhyablocks/p-e0a6d819.entry.js +1 -0
  273. package/dist/sankhyablocks/p-e10faff0.entry.js +11 -0
  274. package/dist/sankhyablocks/p-e718fb81.entry.js +1 -0
  275. package/dist/sankhyablocks/{p-913a9979.js → p-f0b9303b.js} +1 -1
  276. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  277. package/dist/types/components/snk-actions-button/actions/index.d.ts +1 -0
  278. package/dist/types/components/snk-actions-button/interfaces/index.d.ts +3 -0
  279. package/dist/types/components/snk-actions-button/snk-actions-button.d.ts +3 -2
  280. package/dist/types/components/snk-application/request-listener/DebouncedRequestListener.d.ts +11 -0
  281. package/dist/types/components/snk-application/request-listener/RequestListenerFactory.d.ts +12 -0
  282. package/dist/types/components/snk-application/request-listener/RequestListenerLoadingBar.d.ts +13 -0
  283. package/dist/types/components/snk-application/snk-application.d.ts +38 -14
  284. package/dist/types/components/snk-attach/snk-attach.d.ts +1 -0
  285. package/dist/types/components/snk-crud/snk-crud.d.ts +26 -0
  286. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +15 -0
  287. package/dist/types/components/snk-data-exporter/data/export-result.d.ts +2 -1
  288. package/dist/types/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.d.ts +1 -0
  289. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +2 -1
  290. package/dist/types/components/snk-data-exporter/interfaces/IRecordID.d.ts +1 -0
  291. package/dist/types/components/snk-data-exporter/providers/ClientSideExporterProvider.d.ts +3 -1
  292. package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +3 -3
  293. package/dist/types/components/snk-data-exporter/utils/ParserExport.d.ts +1 -1
  294. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +2 -0
  295. package/dist/types/components/snk-filter-bar/filter-item/filter-item-type-mask.enum.d.ts +7 -0
  296. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +2 -0
  297. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +15 -1
  298. package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +7 -2
  299. package/dist/types/components/snk-form-config/snk-form-config.d.ts +4 -0
  300. package/dist/types/components/snk-grid/snk-grid.d.ts +33 -0
  301. package/dist/types/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.d.ts +44 -0
  302. package/dist/types/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.d.ts +33 -0
  303. package/dist/types/components/snk-pesquisa/pesquisaHelper.d.ts +24 -0
  304. package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +35 -1
  305. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +27 -3
  306. package/dist/types/components/snk-simple-form-config/snk-simple-form-config.d.ts +34 -0
  307. package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +1 -0
  308. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +11 -0
  309. package/dist/types/components.d.ts +407 -15
  310. package/dist/types/lib/@types/index.d.ts +4 -0
  311. package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +12 -2
  312. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -0
  313. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/anexo-sistema-fetcher.d.ts +3 -2
  314. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +9 -1
  315. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +4 -0
  316. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/helpers/DataUnitDataLoaderHelper.d.ts +6 -0
  317. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/ILoadingInfo.d.ts +4 -0
  318. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +3 -3
  319. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IFetchDataExporterParams.d.ts +6 -2
  320. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +8 -2
  321. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  322. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +17 -1
  323. package/dist/types/lib/index.d.ts +1 -0
  324. package/dist/types/lib/utils/ContinuousInsertUtils.d.ts +10 -0
  325. package/dist/types/lib/utils/CrudUtils.d.ts +1 -0
  326. package/dist/types/lib/utils/GetSelectedRecordsIDsInfo.d.ts +3 -0
  327. package/dist/types/lib/utils/constants.d.ts +7 -0
  328. package/package.json +4 -3
  329. package/react/components.d.ts +3 -0
  330. package/react/components.js +3 -0
  331. package/react/components.js.map +1 -1
  332. package/dist/cjs/pesquisa-fetcher-680e198f.js +0 -166
  333. package/dist/cjs/snk-config-options.cjs.entry.js +0 -239
  334. package/dist/cjs/snk-filter-bar.cjs.entry.js +0 -714
  335. package/dist/cjs/snk-filter-item.cjs.entry.js +0 -312
  336. package/dist/cjs/snk-filter-list.cjs.entry.js +0 -152
  337. package/dist/cjs/snk-filter-modal.cjs.entry.js +0 -249
  338. package/dist/cjs/snk-form.cjs.entry.js +0 -143
  339. package/dist/components/pesquisa-fetcher.js +0 -164
  340. package/dist/esm/pesquisa-fetcher-03c8f919.js +0 -164
  341. package/dist/esm/snk-config-options.entry.js +0 -235
  342. package/dist/esm/snk-filter-bar.entry.js +0 -710
  343. package/dist/esm/snk-filter-item.entry.js +0 -308
  344. package/dist/esm/snk-filter-list.entry.js +0 -148
  345. package/dist/esm/snk-filter-modal.entry.js +0 -245
  346. package/dist/esm/snk-form.entry.js +0 -139
  347. package/dist/sankhyablocks/p-01ba23cd.entry.js +0 -1
  348. package/dist/sankhyablocks/p-17def7cd.js +0 -1
  349. package/dist/sankhyablocks/p-219f888d.entry.js +0 -1
  350. package/dist/sankhyablocks/p-2a408684.js +0 -1
  351. package/dist/sankhyablocks/p-30cf616e.js +0 -1
  352. package/dist/sankhyablocks/p-3a212712.js +0 -1
  353. package/dist/sankhyablocks/p-3b60db06.entry.js +0 -1
  354. package/dist/sankhyablocks/p-450c60e4.entry.js +0 -1
  355. package/dist/sankhyablocks/p-4e5e1313.entry.js +0 -1
  356. package/dist/sankhyablocks/p-62ba211a.entry.js +0 -1
  357. package/dist/sankhyablocks/p-6bb2f3e9.entry.js +0 -1
  358. package/dist/sankhyablocks/p-70a4af56.entry.js +0 -1
  359. package/dist/sankhyablocks/p-7505da04.entry.js +0 -1
  360. package/dist/sankhyablocks/p-75e674ed.entry.js +0 -1
  361. package/dist/sankhyablocks/p-7619bdb1.entry.js +0 -11
  362. package/dist/sankhyablocks/p-7a85fd49.entry.js +0 -1
  363. package/dist/sankhyablocks/p-7ef9c55c.js +0 -1
  364. package/dist/sankhyablocks/p-80042dc6.entry.js +0 -1
  365. package/dist/sankhyablocks/p-871aa14e.entry.js +0 -1
  366. package/dist/sankhyablocks/p-88aa931b.entry.js +0 -1
  367. package/dist/sankhyablocks/p-8c59edd7.entry.js +0 -1
  368. package/dist/sankhyablocks/p-96a89d58.entry.js +0 -1
  369. package/dist/sankhyablocks/p-9863d682.js +0 -1
  370. package/dist/sankhyablocks/p-af8efd95.js +0 -6
  371. package/dist/sankhyablocks/p-b05d8893.entry.js +0 -1
  372. package/dist/sankhyablocks/p-b11aa1e0.entry.js +0 -1
  373. package/dist/sankhyablocks/p-c2495304.js +0 -1
  374. package/dist/sankhyablocks/p-d1791da2.entry.js +0 -1
  375. package/dist/sankhyablocks/p-d3f53df2.entry.js +0 -1
  376. package/dist/sankhyablocks/p-d6e26ea8.entry.js +0 -1
  377. package/dist/sankhyablocks/p-dc7c9047.js +0 -1
  378. package/dist/sankhyablocks/p-df5451c7.js +0 -26
  379. package/dist/sankhyablocks/p-e8763234.entry.js +0 -1
  380. package/dist/sankhyablocks/p-f2809746.entry.js +0 -1
  381. package/dist/sankhyablocks/p-fa4d8cb4.js +0 -1
  382. package/dist/sankhyablocks/p-fe79f83a.js +0 -60
  383. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +0 -3
@@ -1,14 +1,16 @@
1
1
  'use strict';
2
2
 
3
- const ConfigStorage = require('./ConfigStorage-a343e418.js');
3
+ const ConfigStorage = require('./ConfigStorage-d024aec8.js');
4
4
  const core = require('@sankhyalabs/core');
5
- const formConfigFetcher = require('./form-config-fetcher-2dd00e5b.js');
5
+ const formConfigFetcher = require('./form-config-fetcher-90126e4c.js');
6
+ const constants = require('./constants-241934b3.js');
6
7
 
7
8
  class SnkFormConfigManager {
8
- constructor(configName, resourceID, onConfigChange) {
9
+ constructor(configName, resourceID, onConfigChange, dataUnit) {
9
10
  this._resourceID = resourceID;
10
11
  this._configName = configName;
11
12
  this._onConfigChange = onConfigChange;
13
+ this._dataUnit = dataUnit;
12
14
  }
13
15
  addFormLegacyConfig(legacyConfigName) {
14
16
  if (this._configName) {
@@ -19,6 +21,7 @@ class SnkFormConfigManager {
19
21
  return new Promise(resolve => {
20
22
  ConfigStorage.ConfigStorage.loadFormConfig(this._configName, this._resourceID)
21
23
  .then((config) => {
24
+ config = this.buildFormMetadataUITabs(config);
22
25
  this.setConfig(config);
23
26
  resolve(config);
24
27
  })
@@ -27,6 +30,10 @@ class SnkFormConfigManager {
27
30
  });
28
31
  });
29
32
  }
33
+ getEmptyConfig() {
34
+ const config = this.buildFormMetadataUITabs({ fields: [], emptyConfig: true }, true);
35
+ return config;
36
+ }
30
37
  saveConfig(config) {
31
38
  const configToSave = core.ObjectUtils.copy(config);
32
39
  return new Promise(accept => {
@@ -70,28 +77,41 @@ class SnkFormConfigManager {
70
77
  }
71
78
  return updatingCardConfig;
72
79
  }
73
- getFieldsList(dataUnit, descriptionFilter) {
80
+ hasConfig(config) {
81
+ var _a;
82
+ const currentConfig = config !== null && config !== void 0 ? config : this._config;
83
+ if (currentConfig && ((_a = currentConfig.fields) === null || _a === void 0 ? void 0 : _a.length)) {
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ getFieldsList(descriptionFilter, forceEmptyConfig = false) {
74
89
  var _a;
75
90
  const fields = (_a = this._config) === null || _a === void 0 ? void 0 : _a.fields;
76
- if (fields != undefined && fields.length > 0) {
77
- return fields.map(({ label, name, readOnly, visible, required }) => {
91
+ const hasConfig = this.hasConfig();
92
+ if (hasConfig && !forceEmptyConfig) {
93
+ return fields.map(({ label, name, readOnly, visible, required, tab, group }) => {
94
+ var _a;
78
95
  if (label == undefined) {
79
- const currentField = dataUnit.getField(name);
80
- return Object.assign(Object.assign({}, currentField), { name: name !== null && name !== void 0 ? name : currentField.name, readOnly: readOnly !== null && readOnly !== void 0 ? readOnly : currentField.readOnly, visible: visible !== null && visible !== void 0 ? visible : currentField.visible, required: required !== null && required !== void 0 ? required : currentField.required });
96
+ const currentField = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.getField(name);
97
+ if (!currentField)
98
+ return;
99
+ return Object.assign(Object.assign({}, currentField), { name: name !== null && name !== void 0 ? name : currentField.name, readOnly: readOnly !== null && readOnly !== void 0 ? readOnly : currentField.readOnly, visible: visible !== null && visible !== void 0 ? visible : currentField.visible, required: required !== null && required !== void 0 ? required : currentField.required, tab: tab, group: group });
81
100
  }
82
- return { name, label, readOnly, visible, required };
101
+ return { name, label, readOnly, visible, required, tab, group };
83
102
  })
84
103
  .filter(field => this.isFieldVisible(field, descriptionFilter));
85
104
  }
86
- if (dataUnit != undefined) {
87
- return dataUnit.metadata.fields
88
- .filter(field => this.isFieldVisible(field, descriptionFilter))
89
- .map(({ label, name, readOnly }) => { return { label, name, readOnly }; });
105
+ if (!this._dataUnit) {
106
+ return [];
90
107
  }
91
- return [];
108
+ const filteredFields = this._dataUnit.metadata.fields
109
+ .filter(field => this.isFieldVisible(field, descriptionFilter))
110
+ .map(({ label, name, readOnly, visible, required, properties }) => ({ label, name, readOnly, visible, required, tab: properties === null || properties === void 0 ? void 0 : properties.UITabName }));
111
+ return filteredFields;
92
112
  }
93
113
  isFieldVisible(field, descriptionFilter) {
94
- if (field.visible === false) {
114
+ if (field === undefined || field.visible === false) {
95
115
  return false;
96
116
  }
97
117
  if (descriptionFilter == undefined) {
@@ -101,8 +121,8 @@ class SnkFormConfigManager {
101
121
  const normalizedFilter = core.StringUtils.replaceAccentuatedCharsLower(descriptionFilter.toLocaleLowerCase());
102
122
  return normalizedText.includes(normalizedFilter);
103
123
  }
104
- getFormConfig(dataUnit, ignoreReadOnlyFormFields) {
105
- let fields = this.getFieldsList(dataUnit);
124
+ getFormConfig(dataUnit, ignoreReadOnlyFormFields, forceEmptyConfig = false) {
125
+ let fields = this.getFieldsList(undefined, forceEmptyConfig);
106
126
  if (ignoreReadOnlyFormFields) {
107
127
  fields = fields.filter(field => {
108
128
  if (dataUnit) {
@@ -155,6 +175,44 @@ class SnkFormConfigManager {
155
175
  async fetchDefaultConfig() {
156
176
  return this.getFormConfigFetcher().fetchDefaultConfig(this._configName, this._resourceID);
157
177
  }
178
+ parseObjectList(object) {
179
+ if (!object) {
180
+ return [];
181
+ }
182
+ return Array.isArray(object) ? object : [object];
183
+ }
184
+ buildFormMetadataUITabs(config, forceEmptyConfig = false) {
185
+ var _a;
186
+ const hasConfig = this.hasConfig(config);
187
+ if (!forceEmptyConfig && (!this._dataUnit || hasConfig)) {
188
+ return config;
189
+ }
190
+ config = this.getFormConfig(this._dataUnit, false, true);
191
+ config.tabs = this.parseObjectList(config.tabs);
192
+ config.emptyConfig = false;
193
+ config.defaultConfiguration = true;
194
+ const fields = this._dataUnit.metadata.fields;
195
+ for (const currentField of fields) {
196
+ const field = config.fields.find(field => field.name === currentField.name);
197
+ const uiTabName = (_a = currentField.properties) === null || _a === void 0 ? void 0 : _a.UITabName;
198
+ if (!uiTabName || uiTabName === constants.TAB_NAMES.main) {
199
+ continue;
200
+ }
201
+ const haveTab = config.tabs.some((tab) => tab.label === uiTabName);
202
+ if (!haveTab) {
203
+ config.tabs.push({
204
+ label: uiTabName,
205
+ name: uiTabName,
206
+ order: 0,
207
+ visible: true,
208
+ });
209
+ }
210
+ if (field) {
211
+ field.tab = uiTabName;
212
+ }
213
+ }
214
+ return config;
215
+ }
158
216
  }
159
217
 
160
218
  exports.SnkFormConfigManager = SnkFormConfigManager;
@@ -144,7 +144,7 @@ const snkExporterMessages = {
144
144
  emailSenderOptStep_subtitle: "Primeiro, escolha o formato do arquivo",
145
145
  emailSenderOptStep_lblFormat: "Formato:",
146
146
  emailSenderOptStep_formatPDF: "PDF (.pdf)",
147
- emailSenderOptStep_formatXLSX: "Planilha (.xlsx)",
147
+ emailSenderOptStep_formatXLS: "Planilha (.xls)",
148
148
  emailSenderOptStep_export: "Exportar:",
149
149
  emailSenderOptStep_allData: "Toda a grade",
150
150
  emailSenderOptStep_currentPage: "Somente a página atual",
@@ -267,7 +267,11 @@ const snkConfiguratorMessages = {
267
267
  };
268
268
 
269
269
  const snkGridMessages = {
270
- findColumn: "Busca de colunas"
270
+ findColumn: "Busca de colunas",
271
+ cancelConfirmation: {
272
+ title: "Aviso",
273
+ message: "As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?</b>",
274
+ }
271
275
  };
272
276
  const snkGridConfigMessages = {
273
277
  gridConfiguration: "Configuração da Grade",
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
- const formConfigFetcher = require('./form-config-fetcher-2dd00e5b.js');
4
+ const formConfigFetcher = require('./form-config-fetcher-90126e4c.js');
5
5
 
6
6
  class AuthFetcher extends formConfigFetcher.ResourceFetcher {
7
7
  getData(resourceID) {
@@ -91,6 +91,15 @@ exports.SIMPLE_CRUD_MODE = void 0;
91
91
  SIMPLE_CRUD_MODE[SIMPLE_CRUD_MODE["SERVER"] = 0] = "SERVER";
92
92
  SIMPLE_CRUD_MODE[SIMPLE_CRUD_MODE["IN_MEMORY"] = 1] = "IN_MEMORY";
93
93
  })(exports.SIMPLE_CRUD_MODE || (exports.SIMPLE_CRUD_MODE = {}));
94
+ // TODO: validar forma de compartilhar os templates com outros projetos
95
+ exports.TEMPLATES_SKELETON = void 0;
96
+ (function (TEMPLATES_SKELETON) {
97
+ TEMPLATES_SKELETON[TEMPLATES_SKELETON["CUSTOM_TEMPLATE"] = 0] = "CUSTOM_TEMPLATE";
98
+ TEMPLATES_SKELETON[TEMPLATES_SKELETON["GRID"] = 1] = "GRID";
99
+ TEMPLATES_SKELETON[TEMPLATES_SKELETON["GRID_WITH_SIDEBAR"] = 2] = "GRID_WITH_SIDEBAR";
100
+ TEMPLATES_SKELETON[TEMPLATES_SKELETON["GRID_WITH_PANEL"] = 3] = "GRID_WITH_PANEL";
101
+ TEMPLATES_SKELETON[TEMPLATES_SKELETON["FORM_WITH_SIDEBAR"] = 4] = "FORM_WITH_SIDEBAR";
102
+ })(exports.TEMPLATES_SKELETON || (exports.TEMPLATES_SKELETON = {}));
94
103
 
95
104
  exports.ACTION_CONFIG = ACTION_CONFIG;
96
105
  exports.CONFIG_EVENTS = CONFIG_EVENTS;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
- const DataFetcher = require('./DataFetcher-313debd8.js');
4
+ const DataFetcher = require('./DataFetcher-65879b2c.js');
5
5
  const constants = require('@sankhyalabs/ezui/dist/collection/utils/constants');
6
6
  const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
@@ -15,6 +15,9 @@ const SortingUtils__default = /*#__PURE__*/_interopDefaultLegacy(SortingUtils);
15
15
  class ArrayRepository {
16
16
  constructor(equalsFunction) {
17
17
  this._list = [];
18
+ this._listCopy = [];
19
+ this._listLastUpdate = 0;
20
+ this._listCopyLastUpdate = 0;
18
21
  this._equalsFunction = equalsFunction;
19
22
  }
20
23
  async load(filterFunction, sortingFunction, offset, limit) {
@@ -53,13 +56,13 @@ class ArrayRepository {
53
56
  return Promise.resolve(new Map(processedItems.map(item => [item.key, item.value])));
54
57
  }
55
58
  async push(items) {
56
- this._list.push(...items);
59
+ this.updateList([...this._list, ...items]);
57
60
  }
58
61
  async clear() {
59
- this._list = [];
62
+ this.updateList([]);
60
63
  }
61
64
  async delete(items) {
62
- this._list = this._list.filter(item => {
65
+ const list = this._list.filter(item => {
63
66
  for (const removed of items) {
64
67
  if (this._equalsFunction(item, removed)) {
65
68
  return false;
@@ -67,20 +70,23 @@ class ArrayRepository {
67
70
  }
68
71
  return true;
69
72
  });
73
+ this.updateList(list);
70
74
  }
71
75
  async update(items) {
72
- this._list = this._list.map(existingItem => {
76
+ const list = this._list.map(existingItem => {
73
77
  const newItem = items.find(newItem => this._equalsFunction(existingItem, newItem));
74
78
  return newItem == undefined ? existingItem : newItem;
75
79
  });
80
+ this.updateList(list);
76
81
  }
77
82
  async insert(itemReference, items) {
78
83
  const itemPosition = this._list.indexOf(itemReference);
79
84
  if (itemPosition == -1) {
80
- this._list.push(...items);
85
+ this.push(items);
81
86
  return;
82
87
  }
83
- this._list = this._list.slice(0, itemPosition).concat(items).concat(this._list.slice(itemPosition));
88
+ const list = this._list.slice(0, itemPosition).concat(items).concat(this._list.slice(itemPosition));
89
+ this.updateList(list);
84
90
  }
85
91
  isOperating() {
86
92
  return true;
@@ -92,7 +98,15 @@ class ArrayRepository {
92
98
  return Promise.resolve(this._list.length);
93
99
  }
94
100
  getFromCache() {
95
- return core.ObjectUtils.copy(this._list);
101
+ if (this._listLastUpdate > this._listCopyLastUpdate) {
102
+ this._listCopyLastUpdate = this._listLastUpdate;
103
+ this._listCopy = core.ObjectUtils.copy(this._list);
104
+ }
105
+ return this._listCopy;
106
+ }
107
+ updateList(newList) {
108
+ this._list = newList;
109
+ this._listLastUpdate = Date.now();
96
110
  }
97
111
  }
98
112
 
@@ -241,6 +255,21 @@ function applyFilter(records, dataUnit, filters) {
241
255
  }
242
256
  return records.filter(filterFunction);
243
257
  }
258
+ function buildLoadDataResponse(recordsIn, dataUnit, request) {
259
+ let records = recordsIn ? [...recordsIn] : [];
260
+ records = applyFilter(records, dataUnit, request.filters);
261
+ records = applySorting(records, dataUnit, request.sort);
262
+ const { offset, limit } = request;
263
+ const paginationInfoBuilderParams = {
264
+ recordsLength: records.length,
265
+ offset,
266
+ recordsPerPage: limit,
267
+ };
268
+ return Promise.resolve({
269
+ records: getPagesByRecords(records, offset, limit),
270
+ paginationInfo: dataUnit.pageSize ? buildPaginationInfo(paginationInfoBuilderParams) : undefined,
271
+ });
272
+ }
244
273
  function applySorting(records, dataUnit, sorting) {
245
274
  if (sorting == undefined || sorting.length == 0) {
246
275
  return records;
@@ -251,18 +280,28 @@ function applySorting(records, dataUnit, sorting) {
251
280
  }
252
281
  return records.sort(sortingFunction);
253
282
  }
254
- function buildPaginationInfo(records, offset = 0, limit = 0) {
255
- if (records === undefined) {
256
- return undefined;
283
+ function hasValidLimitAndOffset(offset, limit) {
284
+ return offset >= 0 && limit >= 0;
285
+ }
286
+ function getPagesByRecords(records, offset = 0, limit = 0) {
287
+ if (!records || !records.length || !hasValidLimitAndOffset(offset, limit))
288
+ return [];
289
+ if (limit === 0 && offset === 0)
290
+ return records;
291
+ return records.slice(offset, offset + limit);
292
+ }
293
+ function buildPaginationInfo({ recordsLength = 0, offset = 0, recordsPerPage = 0 }) {
294
+ if (!recordsLength) {
295
+ return { currentPage: 0, firstRecord: 0, lastRecord: 0, total: 0, hasMore: false };
257
296
  }
258
- const total = (records === null || records === void 0 ? void 0 : records.length) || 0;
259
- const lastRecord = Math.min(offset + limit, total);
297
+ const lastRecordIndex = offset + recordsPerPage;
298
+ const lastRecord = lastRecordIndex ? Math.min(lastRecordIndex, recordsLength) : recordsLength;
260
299
  return {
261
- currentPage: limit === 0 ? 0 : Math.ceil(offset / limit),
262
- firstRecord: offset,
300
+ currentPage: recordsPerPage === 0 ? 0 : Math.ceil(offset / recordsPerPage),
301
+ firstRecord: offset + 1,
263
302
  lastRecord: lastRecord,
264
- total: total,
265
- hasMore: !!(total - lastRecord),
303
+ total: recordsLength,
304
+ hasMore: lastRecord < recordsLength,
266
305
  };
267
306
  }
268
307
 
@@ -348,9 +387,7 @@ class InMemoryLoader {
348
387
  return core.StringUtils.generateUUID();
349
388
  }
350
389
  inMemoryLoader(dataUnit, request, recordsIn) {
351
- let records = applyFilter(recordsIn, dataUnit, request.filters);
352
- records = applySorting(records, dataUnit, request.sort);
353
- return Promise.resolve({ records, paginationInfo: buildPaginationInfo(records, request.offset, request.limit) });
390
+ return buildLoadDataResponse(recordsIn, dataUnit, request);
354
391
  }
355
392
  metadaLoader() {
356
393
  return Promise.resolve(this._metadata);
@@ -426,16 +463,25 @@ class DatasetStrategy {
426
463
  const serviceName = "DatasetSP.loadRecords";
427
464
  const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting, serverSideFilters);
428
465
  const params = loadingInfo.quiet ? { urlParams: { quietMode: "true" } } : undefined;
429
- const { result: responseRecords, pagerID: pagerId } = await DataFetcher.DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
466
+ const { result: responseRecords, pagerID: pagerId, askRowsLimit } = await DataFetcher.DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
430
467
  const records = this.processRecords(dataUnit, fields, responseRecords);
431
468
  const loadingInProgress = pagerId != undefined;
432
469
  const count = loadingInfo.count + records.length;
433
- const needReload = !loadingInProgress && localSorting.length > 0;
470
+ const isInsertingNewRecord = dataUnit.hasNewRecord();
471
+ const hasLocalSorting = localSorting.length > 0;
472
+ const needReload = !loadingInProgress && hasLocalSorting;
473
+ /**
474
+ * Caso precise recarregar dados, porém está no meio de uma inserção, os dados não devem recarregados instantaneamente,
475
+ * Mas sim, sinalizar que o dataUnit está aguardando para der recarregado.
476
+ */
477
+ if (needReload && isInsertingNewRecord) {
478
+ dataUnit.setWaitingToReload(true);
479
+ }
434
480
  return Promise.resolve({
435
481
  records,
436
482
  loadingInfo: Object.assign(Object.assign({}, loadingInfo), { pagerId,
437
- loadingInProgress, total: loadingInProgress ? undefined : count, count,
438
- needReload })
483
+ loadingInProgress, total: loadingInProgress ? undefined : count, count, needReload: needReload && !isInsertingNewRecord, askRowsLimit,
484
+ hasLocalSorting })
439
485
  });
440
486
  }
441
487
  catch (error) {
@@ -487,8 +533,7 @@ class DatasetStrategy {
487
533
  },
488
534
  }
489
535
  };
490
- const parsedRequestBody = JSON.stringify(requestBody);
491
- return parsedRequestBody;
536
+ return JSON.stringify(requestBody);
492
537
  }
493
538
  getFieldsList(dataUnit) {
494
539
  let fields = ["__record__id__", "__record__label__"];
@@ -615,7 +660,117 @@ class DatasetStrategy {
615
660
  }
616
661
  }
617
662
 
663
+ async function showAskCancelPaginationPopup() {
664
+ return new Promise((resolve) => {
665
+ const { checkboxContainer, checkbox } = buildCheckboxContainer();
666
+ const popup = builPopup(resolve, checkbox);
667
+ const contentContainer = buildContentContainer();
668
+ contentContainer.appendChild(buildMessage());
669
+ contentContainer.appendChild(checkboxContainer);
670
+ const actionsContainer = buildActionsContainer();
671
+ actionsContainer.appendChild(buildContinuePaginationBtn(popup, checkbox, resolve));
672
+ actionsContainer.appendChild(buildCancelPaginationBtn(popup, resolve));
673
+ contentContainer.appendChild(actionsContainer);
674
+ popup.appendChild(contentContainer);
675
+ document.body.appendChild(popup);
676
+ });
677
+ }
678
+ function buildCheckboxContainer() {
679
+ const checkboxContainer = document.createElement('div');
680
+ checkboxContainer.style.marginBottom = '14px';
681
+ checkboxContainer.style.display = 'flex';
682
+ checkboxContainer.style.alignItems = 'center';
683
+ const { checkbox, checkboxLabel } = buildCheckbox();
684
+ checkboxContainer.appendChild(checkbox);
685
+ checkboxContainer.appendChild(checkboxLabel);
686
+ return { checkboxContainer, checkbox };
687
+ }
688
+ function buildCheckbox() {
689
+ const checkbox = document.createElement('input');
690
+ checkbox.type = 'checkbox';
691
+ checkbox.id = 'loadAll';
692
+ const checkboxLabel = document.createElement('label');
693
+ checkboxLabel.htmlFor = 'loadAll';
694
+ checkboxLabel.textContent = 'Carregar tudo';
695
+ checkboxLabel.style.marginLeft = '5px';
696
+ return { checkbox, checkboxLabel };
697
+ }
698
+ function buildActionsContainer() {
699
+ const actionsContainer = document.createElement('div');
700
+ actionsContainer.style.display = 'flex';
701
+ actionsContainer.style.flexDirection = 'row';
702
+ actionsContainer.style.justifyContent = 'end';
703
+ actionsContainer.style.gap = '5px';
704
+ return actionsContainer;
705
+ }
706
+ function buildContentContainer() {
707
+ const contentContainer = document.createElement('div');
708
+ contentContainer.style.display = 'flex';
709
+ contentContainer.style.flexDirection = 'column';
710
+ contentContainer.style.fontFamily = 'var(--font-pattern, Roboto)';
711
+ contentContainer.style.fontSize = 'var(--text--medium)';
712
+ return contentContainer;
713
+ }
714
+ function buildMessage() {
715
+ const message = document.createElement('div');
716
+ const line1 = document.createElement('p');
717
+ const line2 = document.createElement('p');
718
+ const line3 = document.createElement('p');
719
+ line3.style.fontWeight = 'var(--text-weight--large, 600)';
720
+ line1.textContent = 'Uma quantidade de registros muito grande está sendo carregada.';
721
+ line2.textContent = 'Recomendamos que a paginação seja cancelada e que seja criado um filtro para os registros.';
722
+ line3.textContent = 'Deseja cancelar o carregamento?';
723
+ message.appendChild(line1);
724
+ message.appendChild(line2);
725
+ message.appendChild(line3);
726
+ return message;
727
+ }
728
+ function buildCancelPaginationBtn(popup, resolve) {
729
+ const cancelPaginationBtn = document.createElement('ez-button');
730
+ cancelPaginationBtn.label = 'Cancelar paginação';
731
+ cancelPaginationBtn.size = 'medium';
732
+ cancelPaginationBtn.classList.add('ez-button--primary');
733
+ cancelPaginationBtn.onclick = () => {
734
+ document.body.removeChild(popup);
735
+ resolve(CancelPaginationResponse.CANCEL);
736
+ };
737
+ return cancelPaginationBtn;
738
+ }
739
+ function buildContinuePaginationBtn(popup, checkBox, resolve) {
740
+ const continuePaginationBtn = document.createElement('ez-button');
741
+ continuePaginationBtn.label = 'Continuar';
742
+ continuePaginationBtn.size = 'medium';
743
+ continuePaginationBtn.onclick = () => {
744
+ document.body.removeChild(popup);
745
+ resolve(checkBox.checked ? CancelPaginationResponse.LOAD_ALL : CancelPaginationResponse.CONTINUE);
746
+ };
747
+ return continuePaginationBtn;
748
+ }
749
+ function builPopup(resolve, checkBox) {
750
+ const popup = document.createElement('ez-popup');
751
+ popup.opened = true;
752
+ popup.size = 'x-small';
753
+ popup.ezTitle = 'Aviso';
754
+ popup.heightMode = "auto";
755
+ popup.addEventListener('ezClosePopup', () => {
756
+ document.body.removeChild(popup);
757
+ resolve(checkBox.checked ? CancelPaginationResponse.LOAD_ALL : CancelPaginationResponse.CONTINUE);
758
+ }, { once: true });
759
+ popup.addEventListener('ezPopupAction', () => {
760
+ document.body.removeChild(popup);
761
+ resolve(CancelPaginationResponse.CANCEL);
762
+ }, { once: true });
763
+ return popup;
764
+ }
765
+ var CancelPaginationResponse;
766
+ (function (CancelPaginationResponse) {
767
+ CancelPaginationResponse["CANCEL"] = "CANCEL";
768
+ CancelPaginationResponse["CONTINUE"] = "CONTINUE";
769
+ CancelPaginationResponse["LOAD_ALL"] = "LOAD_ALL";
770
+ })(CancelPaginationResponse || (CancelPaginationResponse = {}));
771
+
618
772
  class DataUnitDataLoader {
773
+ constructor() { }
619
774
  static async debounce(dataUnit, callBack) {
620
775
  const duName = dataUnit.name;
621
776
  if (DataUnitDataLoader._debouncingTimeouts[duName]) {
@@ -661,25 +816,67 @@ class DataUnitDataLoader {
661
816
  }
662
817
  static async callLoader(dataUnit, request, requestLoadingInfo, dataLoader) {
663
818
  if (dataLoader == undefined) {
664
- //dataLoader = new DataUnitStrategy();
665
819
  dataLoader = new DatasetStrategy();
666
820
  }
667
821
  const result = await dataLoader.load(dataUnit, request, requestLoadingInfo);
668
- const { records, loadingInfo: responseLoadingInfo } = result;
669
- if (DataUnitDataLoader.isOldRequest(dataUnit, responseLoadingInfo)) {
822
+ const responseLoadingInfo = result.loadingInfo;
823
+ if (DataUnitDataLoader.isOldRequest(dataUnit, responseLoadingInfo))
670
824
  return Promise.resolve(undefined);
825
+ this.handleCache(dataLoader, responseLoadingInfo, dataUnit, result.records);
826
+ if (dataUnit.cancelPagination)
827
+ return this.handlePaginationCanceled(dataUnit, result);
828
+ //Não existem mais páginas a serem carregadas
829
+ if (this.canFinishPagination(dataUnit, responseLoadingInfo))
830
+ return Promise.resolve(result);
831
+ const newRequest = Object.assign(Object.assign({}, request), { offset: responseLoadingInfo.count });
832
+ let newLoadingInfo = this.buildNewLoadingInfo(responseLoadingInfo);
833
+ if (this.canProceedPagination(responseLoadingInfo))
834
+ return this.recallLoader(dataUnit, newRequest, newLoadingInfo, dataLoader, result);
835
+ const confirm = await showAskCancelPaginationPopup();
836
+ if (confirm === CancelPaginationResponse.CANCEL)
837
+ return this.handlePaginationCanceled(dataUnit, result);
838
+ if (confirm === CancelPaginationResponse.LOAD_ALL) {
839
+ newLoadingInfo = Object.assign(Object.assign({}, newLoadingInfo), { loadAllRecords: true });
671
840
  }
841
+ newLoadingInfo = Object.assign(Object.assign({}, newLoadingInfo), { lastRowLimitAsked: newLoadingInfo.count });
842
+ return this.recallLoader(dataUnit, newRequest, newLoadingInfo, dataLoader, result);
843
+ }
844
+ static buildNewLoadingInfo(responseLoadingInfo) {
845
+ let newLoadingInfo = Object.assign(Object.assign({}, responseLoadingInfo), { pageNumber: (responseLoadingInfo.pageNumber || 0) + 1, quiet: true });
846
+ return newLoadingInfo;
847
+ }
848
+ static handleCache(dataLoader, responseLoadingInfo, dataUnit, records) {
672
849
  const recreateCache = !dataLoader.canSlice() || responseLoadingInfo.count === 0;
673
850
  PreloadManager.cacheRecords(dataUnit, records, recreateCache, responseLoadingInfo.loadingInProgress);
674
- if (PreloadManager.isCacheEnabled(dataUnit) && responseLoadingInfo.loadingInProgress) {
675
- const newRequest = Object.assign(Object.assign({}, request), { offset: responseLoadingInfo.count });
676
- const newLoadingInfo = Object.assign(Object.assign({}, responseLoadingInfo), { pageNumber: (responseLoadingInfo.pageNumber || 0) + 1, quiet: true });
677
- this.callLoader(dataUnit, newRequest, newLoadingInfo, dataLoader)
678
- .then(result => DataUnitDataLoader.afterLoadingPage(dataUnit, result.loadingInfo))
679
- .catch(reason => console.error(reason));
680
- }
851
+ }
852
+ static recallLoader(dataUnit, newRequest, newLoadingInfo, dataLoader, result) {
853
+ this.callLoader(dataUnit, newRequest, newLoadingInfo, dataLoader)
854
+ .then(result => DataUnitDataLoader.afterLoadingPage(dataUnit, result.loadingInfo))
855
+ .catch(reason => console.error(reason));
681
856
  return Promise.resolve(result);
682
857
  }
858
+ static canFinishPagination(dataUnit, responseLoadingInfo) {
859
+ return !PreloadManager.isCacheEnabled(dataUnit) || !responseLoadingInfo.loadingInProgress;
860
+ }
861
+ static canProceedPagination(info) {
862
+ const { count, askRowsLimit, loadAllRecords, lastRowLimitAsked } = info;
863
+ if (loadAllRecords)
864
+ return true;
865
+ if (!count || !askRowsLimit)
866
+ return true;
867
+ const askRowLimitNumber = Number(askRowsLimit);
868
+ if (count < askRowLimitNumber)
869
+ return true;
870
+ const nextLimitToAsk = askRowLimitNumber + (lastRowLimitAsked ? lastRowLimitAsked : 0);
871
+ return count < nextLimitToAsk;
872
+ }
873
+ static handlePaginationCanceled(dataUnit, result) {
874
+ dataUnit.cancelPagination = false;
875
+ let loadingInfo = result.loadingInfo;
876
+ loadingInfo = Object.assign(Object.assign({}, loadingInfo), { total: loadingInfo.count, loadingInProgress: false, pagerId: undefined, needReload: loadingInfo.hasLocalSorting });
877
+ const loadDataResult = { records: result.records, loadingInfo };
878
+ return Promise.resolve(loadDataResult);
879
+ }
683
880
  static afterLoadingPage(dataUnit, loadingInfo) {
684
881
  PreloadManager.setLoadingStatus(dataUnit, loadingInfo.loadingInProgress);
685
882
  const dataUnitPagination = dataUnit.getPaginationInfo();
@@ -688,7 +885,7 @@ class DataUnitDataLoader {
688
885
  }
689
886
  const count = loadingInfo.count;
690
887
  if (loadingInfo.loadingInProgress) {
691
- dataUnit.updatePagination(Object.assign(Object.assign({}, dataUnitPagination), { count }));
888
+ dataUnit.updatePagination(Object.assign(Object.assign({}, dataUnitPagination), { count, loadingInProgress: true }));
692
889
  return;
693
890
  }
694
891
  if (loadingInfo.needReload) {
@@ -696,7 +893,7 @@ class DataUnitDataLoader {
696
893
  dataUnit.gotoPage(0);
697
894
  return;
698
895
  }
699
- dataUnit.updatePagination(Object.assign(Object.assign({}, dataUnitPagination), { total: count, count }));
896
+ dataUnit.updatePagination(Object.assign(Object.assign({}, dataUnitPagination), { total: count, count, loadingInProgress: false }));
700
897
  }
701
898
  static registryLoading(dataUnit, loadingInfo) {
702
899
  if (loadingInfo == undefined) {
@@ -719,7 +916,7 @@ class DataUnitDataLoader {
719
916
  // controle de paginação voltar pra primeira página.
720
917
  offset = 0;
721
918
  }
722
- const { total, count, loadingInProgress } = loadingInfo;
919
+ const { total, count, loadingInProgress, askRowsLimit } = loadingInfo;
723
920
  const firstRecord = (count === 0 || pageSize === 0) ? 0 : offset + 1;
724
921
  const lastRecord = offset + Math.min(pageSize, limit);
725
922
  return {
@@ -728,7 +925,8 @@ class DataUnitDataLoader {
728
925
  lastRecord,
729
926
  firstRecord,
730
927
  currentPage: offset / limit,
731
- hasMore: lastRecord < count || loadingInProgress
928
+ hasMore: lastRecord < count || loadingInProgress,
929
+ askRowsLimit
732
930
  };
733
931
  }
734
932
  }
@@ -1062,7 +1260,5 @@ exports.DataUnitFetcher = DataUnitFetcher;
1062
1260
  exports.DatasetStrategy = DatasetStrategy;
1063
1261
  exports.InMemoryLoader = InMemoryLoader;
1064
1262
  exports.PreloadManager = PreloadManager;
1065
- exports.applyFilter = applyFilter;
1066
- exports.applySorting = applySorting;
1067
- exports.buildPaginationInfo = buildPaginationInfo;
1263
+ exports.buildLoadDataResponse = buildLoadDataResponse;
1068
1264
  exports.getRecordValue = getRecordValue;
@@ -33,12 +33,16 @@ class TaskbarProcessor {
33
33
  });
34
34
  }
35
35
  getButtonsArray(taskbarId, taskbarManager, dataState) {
36
- const defaults = this._defaultButtons[taskbarId];
36
+ const defaults = this.getButtonsFromKey(taskbarId);
37
37
  if (taskbarManager) {
38
38
  return taskbarManager.getButtons(taskbarId, dataState, [...defaults]);
39
39
  }
40
40
  return defaults;
41
41
  }
42
+ getButtonsFromKey(taskbarId) {
43
+ const btnsValue = this._defaultButtons[taskbarId];
44
+ return typeof btnsValue === 'function' ? btnsValue() : btnsValue;
45
+ }
42
46
  isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabled) {
43
47
  const originalValue = disabled.includes(buttonName) ? false : true;
44
48
  if (taskbarManager && taskbarManager.isEnabled) {