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

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