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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/dist/cjs/{ConfigStorage-302bbbd4.js → ConfigStorage-942ce74b.js} +70 -7
  2. package/dist/cjs/{DataFetcher-ba94ed5b.js → DataFetcher-313debd8.js} +18 -8
  3. package/dist/cjs/IExporterProvider-0c814e9a.js +230 -0
  4. package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
  5. package/dist/cjs/RecordIDUtils-3735135c.js +43 -0
  6. package/dist/cjs/{SnkFormConfigManager-71c4768e.js → SnkFormConfigManager-52f99b4d.js} +23 -15
  7. package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-4a95fe86.js} +25 -13
  8. package/dist/cjs/{auth-fetcher-c8467c07.js → auth-fetcher-54f5ff9d.js} +1 -1
  9. package/dist/cjs/{dataunit-fetcher-14108bec.js → dataunit-fetcher-620b29a1.js} +409 -77
  10. package/dist/cjs/{form-config-fetcher-df043d3d.js → form-config-fetcher-2dd00e5b.js} +13 -1
  11. package/dist/cjs/index-f9e81701.js +2 -10
  12. package/dist/cjs/loader.cjs.js +1 -1
  13. package/dist/cjs/{pesquisa-fetcher-ef050a47.js → pesquisa-fetcher-680e198f.js} +12 -13
  14. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  15. package/dist/cjs/{snk-actions-button_2.cjs.entry.js → snk-actions-button_4.cjs.entry.js} +526 -8
  16. package/dist/cjs/snk-application.cjs.entry.js +88 -26
  17. package/dist/cjs/snk-attach.cjs.entry.js +441 -65
  18. package/dist/cjs/snk-configurator.cjs.entry.js +1 -1
  19. package/dist/cjs/snk-crud.cjs.entry.js +125 -28
  20. package/dist/cjs/snk-custom-slot-elements.cjs.entry.js +6 -2
  21. package/dist/cjs/snk-data-exporter.cjs.entry.js +207 -83
  22. package/dist/cjs/snk-data-unit-eca53cfc.js +671 -0
  23. package/dist/cjs/snk-data-unit.cjs.entry.js +11 -2
  24. package/dist/cjs/snk-detail-view.cjs.entry.js +52 -13
  25. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  26. package/dist/cjs/snk-filter-bar.cjs.entry.js +65 -8
  27. package/dist/cjs/snk-filter-detail.cjs.entry.js +4 -1
  28. package/dist/cjs/snk-filter-item.cjs.entry.js +13 -6
  29. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  30. package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -1
  31. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  32. package/dist/cjs/snk-form-config.cjs.entry.js +47 -27
  33. package/dist/cjs/snk-form-view.cjs.entry.js +67 -0
  34. package/dist/cjs/snk-form.cjs.entry.js +60 -8
  35. package/dist/cjs/snk-grid.cjs.entry.js +200 -122
  36. package/dist/cjs/{snk-guides-viewer-c8b9374f.js → snk-guides-viewer-5d5f0f25.js} +56 -20
  37. package/dist/cjs/snk-guides-viewer.cjs.entry.js +10 -10
  38. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +3 -1
  39. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  40. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  41. package/dist/cjs/snk-simple-crud.cjs.entry.js +512 -40
  42. package/dist/cjs/snk-taskbar.cjs.entry.js +143 -20
  43. package/dist/cjs/{taskbar-elements-01b85b99.js → taskbar-elements-d9392685.js} +11 -11
  44. package/dist/collection/collection-manifest.json +8 -8
  45. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  46. package/dist/collection/components/snk-application/snk-application.js +148 -24
  47. package/dist/collection/components/snk-attach/snk-attach.js +231 -44
  48. package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
  49. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
  50. package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
  51. package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
  52. package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
  53. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +118 -0
  54. package/dist/collection/components/snk-attach/structure/index.js +6 -3
  55. package/dist/collection/components/snk-configurator/snk-configurator.js +1 -1
  56. package/dist/collection/components/snk-crud/interfaces/PropsCustomEditor.js +1 -0
  57. package/dist/collection/components/snk-crud/interfaces/PropsCustomRender.js +1 -0
  58. package/dist/collection/components/snk-crud/snk-crud.js +359 -19
  59. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +137 -2
  60. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +161 -0
  61. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  62. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +163 -13
  63. package/dist/collection/components/snk-custom-slot-elements/snk-custom-slot-elements.css +1 -1
  64. package/dist/collection/components/snk-custom-slot-elements/snk-custom-slot-elements.js +22 -1
  65. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +90 -0
  66. package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +68 -0
  67. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +54 -1
  68. package/dist/collection/components/snk-data-exporter/interfaces/IExporterStrategy.js +1 -0
  69. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +58 -0
  70. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +55 -0
  71. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +44 -50
  72. package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +88 -0
  73. package/dist/collection/components/snk-data-exporter/utils/RecordIDUtils.js +38 -0
  74. package/dist/collection/components/snk-data-unit/snk-data-unit.js +501 -216
  75. package/dist/collection/components/snk-data-unit/test/resources/metadataMock.js +24 -0
  76. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  77. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  78. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-personalized-filter-editor/snk-personalized-filter-editor.js +3 -1
  79. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-detail.js +22 -1
  80. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +31 -6
  81. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +19 -1
  82. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +24 -1
  83. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +175 -3
  84. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +3 -1
  85. package/dist/collection/components/snk-form/snk-form.js +126 -5
  86. package/dist/collection/components/{snk-form → snk-form-config}/SnkFormConfigManager.js +22 -14
  87. package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.js +50 -30
  88. package/dist/collection/components/snk-grid/snk-grid.js +360 -115
  89. package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.js +130 -123
  90. package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.js +1 -1
  91. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
  92. package/dist/collection/components/snk-simple-crud/regular-buttons.js +3 -0
  93. package/dist/collection/components/snk-simple-crud/snk-simple-crud.css +10 -2
  94. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +847 -23
  95. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +4 -2
  96. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +11 -11
  97. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  98. package/dist/collection/components/snk-taskbar/snk-taskbar.js +195 -19
  99. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +35 -0
  100. package/dist/collection/lib/configs/ConfigStorage.js +63 -3
  101. package/dist/collection/lib/dataUnit/InMemoryLoader.js +15 -42
  102. package/dist/collection/lib/dataUnit/ValueFormatter.js +4 -0
  103. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +33 -0
  104. package/dist/collection/lib/dataUnit/interfaces/InMemoryLoaderConfig.js +1 -0
  105. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +18 -8
  106. package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
  107. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
  108. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
  109. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
  110. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
  111. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
  112. package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
  113. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +3 -0
  114. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +4 -0
  115. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +11 -13
  116. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +30 -2
  117. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.js +1 -0
  118. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.js +1 -0
  119. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +87 -24
  120. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.js +22 -0
  121. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +12 -0
  122. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  123. package/dist/collection/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.js +6 -3
  124. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +12 -13
  125. package/dist/collection/lib/index.js +1 -1
  126. package/dist/collection/lib/message/SnkMessageBuilder.js +25 -32
  127. package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
  128. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -1
  129. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +1 -0
  130. package/dist/collection/lib/message/resources/snk-simple-crud.msg.js +4 -0
  131. package/dist/collection/lib/utils/CrudUtils.js +13 -1
  132. package/dist/components/ConfigStorage.js +68 -5
  133. package/dist/components/DataFetcher.js +18 -8
  134. package/dist/components/IExporterProvider.js +298 -0
  135. package/dist/components/ISave.js +42 -0
  136. package/dist/components/SnkFormConfigManager.js +21 -13
  137. package/dist/components/SnkMessageBuilder.js +25 -13
  138. package/dist/components/dataunit-fetcher.js +185 -241
  139. package/dist/components/form-config-fetcher.js +12 -0
  140. package/dist/components/index.d.ts +6 -6
  141. package/dist/components/index2.js +198 -33
  142. package/dist/{esm/pesquisa-fetcher-dd3ca0a5.js → components/pesquisa-fetcher.js} +13 -14
  143. package/dist/components/snk-actions-button2.js +4 -10
  144. package/dist/components/snk-application2.js +86 -20
  145. package/dist/components/snk-attach2.js +496 -72
  146. package/dist/components/snk-configurator2.js +1 -1
  147. package/dist/components/snk-crud.js +133 -23
  148. package/dist/components/snk-custom-slot-elements.js +7 -3
  149. package/dist/components/snk-data-exporter2.js +202 -83
  150. package/dist/components/snk-data-unit2.js +464 -214
  151. package/dist/components/snk-detail-view2.js +137 -23
  152. package/dist/components/snk-entity-list.js +5 -3
  153. package/dist/components/snk-expression-item2.js +1 -1
  154. package/dist/components/snk-filter-bar2.js +69 -6
  155. package/dist/components/snk-filter-detail2.js +5 -1
  156. package/dist/components/snk-filter-item2.js +14 -6
  157. package/dist/components/snk-filter-modal.js +4 -2
  158. package/dist/components/snk-filter-multi-select.js +2 -1
  159. package/dist/components/snk-form-config2.js +46 -26
  160. package/dist/components/snk-form-view2.js +72 -1
  161. package/dist/components/snk-form.js +60 -5
  162. package/dist/components/snk-grid-config2.js +128 -102
  163. package/dist/components/snk-grid2.js +209 -119
  164. package/dist/components/snk-personalized-filter-editor.js +3 -1
  165. package/dist/components/snk-personalized-filter2.js +1 -1
  166. package/dist/components/snk-pesquisa2.js +1 -1
  167. package/dist/components/snk-simple-crud2.js +574 -36
  168. package/dist/components/snk-taskbar2.js +164 -35
  169. package/dist/components/taskbar-actions-button2.js +4 -2
  170. package/dist/esm/{ConfigStorage-4151acc8.js → ConfigStorage-86187da3.js} +70 -7
  171. package/dist/esm/{DataFetcher-aa159c5a.js → DataFetcher-c1baf61d.js} +18 -8
  172. package/dist/esm/IExporterProvider-c0194569.js +221 -0
  173. package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
  174. package/dist/esm/RecordIDUtils-87d02110.js +41 -0
  175. package/dist/esm/{SnkFormConfigManager-5c7d3771.js → SnkFormConfigManager-5b0d69cd.js} +23 -15
  176. package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-3a767111.js} +25 -13
  177. package/dist/esm/{auth-fetcher-c05dc474.js → auth-fetcher-039abba3.js} +1 -1
  178. package/dist/esm/{dataunit-fetcher-cbec1594.js → dataunit-fetcher-3fbf9d12.js} +392 -70
  179. package/dist/esm/{form-config-fetcher-36219cd3.js → form-config-fetcher-30fb808f.js} +13 -1
  180. package/dist/esm/index-a7d3d3f1.js +2 -10
  181. package/dist/esm/loader.js +1 -1
  182. package/dist/esm/pesquisa-fetcher-03c8f919.js +164 -0
  183. package/dist/esm/sankhyablocks.js +1 -1
  184. package/dist/esm/{snk-actions-button_2.entry.js → snk-actions-button_4.entry.js} +525 -9
  185. package/dist/esm/snk-application.entry.js +88 -26
  186. package/dist/esm/snk-attach.entry.js +441 -65
  187. package/dist/esm/snk-configurator.entry.js +1 -1
  188. package/dist/esm/snk-crud.entry.js +125 -28
  189. package/dist/esm/snk-custom-slot-elements.entry.js +7 -3
  190. package/dist/esm/snk-data-exporter.entry.js +208 -84
  191. package/dist/esm/snk-data-unit-49b898f7.js +669 -0
  192. package/dist/esm/snk-data-unit.entry.js +11 -2
  193. package/dist/esm/snk-detail-view.entry.js +52 -13
  194. package/dist/esm/snk-entity-list.entry.js +5 -3
  195. package/dist/esm/snk-filter-bar.entry.js +65 -8
  196. package/dist/esm/snk-filter-detail.entry.js +4 -1
  197. package/dist/esm/snk-filter-item.entry.js +13 -6
  198. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  199. package/dist/esm/snk-filter-modal.entry.js +2 -1
  200. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  201. package/dist/esm/snk-form-config.entry.js +48 -28
  202. package/dist/esm/snk-form-view.entry.js +67 -0
  203. package/dist/esm/snk-form.entry.js +60 -8
  204. package/dist/esm/snk-grid.entry.js +200 -122
  205. package/dist/esm/{snk-guides-viewer-8da24475.js → snk-guides-viewer-ef8c4eec.js} +56 -20
  206. package/dist/esm/snk-guides-viewer.entry.js +10 -10
  207. package/dist/esm/snk-personalized-filter-editor.entry.js +3 -1
  208. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  209. package/dist/esm/snk-pesquisa.entry.js +1 -1
  210. package/dist/esm/snk-simple-crud.entry.js +505 -33
  211. package/dist/esm/snk-taskbar.entry.js +144 -21
  212. package/dist/esm/{taskbar-elements-d4d0b424.js → taskbar-elements-ad766858.js} +11 -11
  213. package/dist/sankhyablocks/p-039c7148.entry.js +1 -0
  214. package/dist/sankhyablocks/p-04821c60.entry.js +1 -0
  215. package/dist/sankhyablocks/p-060fdb6c.js +1 -0
  216. package/dist/sankhyablocks/p-14a08904.entry.js +1 -0
  217. package/dist/sankhyablocks/p-1db45d26.entry.js +1 -0
  218. package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
  219. package/dist/sankhyablocks/p-21a81901.entry.js +1 -0
  220. package/dist/sankhyablocks/p-294df368.entry.js +1 -0
  221. package/dist/sankhyablocks/p-2ac8bd11.entry.js +1 -0
  222. package/dist/sankhyablocks/p-32062be4.entry.js +1 -0
  223. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  224. package/dist/sankhyablocks/p-3d0cc5c0.entry.js +1 -0
  225. package/dist/sankhyablocks/p-3f1efb97.entry.js +1 -0
  226. package/dist/sankhyablocks/p-47b60deb.entry.js +1 -0
  227. package/dist/sankhyablocks/p-4ce73e88.js +1 -0
  228. package/dist/sankhyablocks/p-54a5d52a.entry.js +1 -0
  229. package/dist/sankhyablocks/p-5fa1576b.entry.js +11 -0
  230. package/dist/sankhyablocks/p-61dd89eb.js +1 -0
  231. package/dist/sankhyablocks/p-672302c3.js +60 -0
  232. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  233. package/dist/sankhyablocks/p-7663f597.entry.js +1 -0
  234. package/dist/sankhyablocks/p-8322ccdb.entry.js +1 -0
  235. package/dist/sankhyablocks/p-913a9979.js +1 -0
  236. package/dist/sankhyablocks/p-9863d682.js +1 -0
  237. package/dist/sankhyablocks/{p-e0fd9555.entry.js → p-a1d72395.entry.js} +1 -1
  238. package/dist/sankhyablocks/p-a64baa0f.entry.js +1 -0
  239. package/dist/sankhyablocks/p-af8efd95.js +6 -0
  240. package/dist/sankhyablocks/p-aff76a53.js +56 -0
  241. package/dist/sankhyablocks/p-b11aa1e0.entry.js +1 -0
  242. package/dist/sankhyablocks/p-ba05fdb8.entry.js +1 -0
  243. package/dist/sankhyablocks/p-babe7665.js +1 -0
  244. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  245. package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
  246. package/dist/sankhyablocks/p-d26365ad.js +1 -0
  247. package/dist/sankhyablocks/{p-9695f78b.js → p-dc7c9047.js} +1 -1
  248. package/dist/sankhyablocks/p-df5451c7.js +26 -0
  249. package/dist/sankhyablocks/p-e5c25e0b.entry.js +1 -0
  250. package/dist/sankhyablocks/p-e8763234.entry.js +1 -0
  251. package/dist/sankhyablocks/{p-7f3c7b09.entry.js → p-eae7a817.entry.js} +1 -1
  252. package/dist/sankhyablocks/p-f88cfc3c.js +1 -0
  253. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  254. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  255. package/dist/types/components/snk-application/snk-application.d.ts +27 -5
  256. package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
  257. package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
  258. package/dist/types/components/snk-attach/snk-attach.d.ts +34 -10
  259. package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
  260. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +40 -0
  261. package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
  262. package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
  263. package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
  264. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +16 -0
  265. package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
  266. package/dist/types/components/snk-crud/interfaces/PropsCustomEditor.d.ts +4 -0
  267. package/dist/types/components/snk-crud/interfaces/PropsCustomRender.d.ts +4 -0
  268. package/dist/types/components/snk-crud/snk-crud.d.ts +57 -1
  269. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +24 -1
  270. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +28 -3
  271. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +30 -1
  272. package/dist/types/components/snk-custom-slot-elements/snk-custom-slot-elements.d.ts +6 -0
  273. package/dist/types/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.d.ts +13 -0
  274. package/dist/types/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.d.ts +11 -0
  275. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +24 -4
  276. package/dist/types/components/snk-data-exporter/interfaces/IExporterStrategy.d.ts +5 -0
  277. package/dist/types/components/snk-data-exporter/providers/ClientSideExporterProvider.d.ts +17 -0
  278. package/dist/types/components/snk-data-exporter/providers/ServerSideExporterProvider.d.ts +17 -0
  279. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +3 -1
  280. package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +77 -0
  281. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +3 -0
  282. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +61 -2
  283. package/dist/types/components/snk-data-unit/test/resources/metadataMock.d.ts +3 -0
  284. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-detail.d.ts +4 -0
  285. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +7 -3
  286. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +5 -0
  287. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +31 -1
  288. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +3 -1
  289. package/dist/types/components/snk-form/snk-form.d.ts +20 -1
  290. package/dist/types/components/{snk-form → snk-form-config}/SnkFormConfigManager.d.ts +2 -1
  291. package/dist/types/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.d.ts +5 -3
  292. package/dist/types/components/snk-grid/snk-grid.d.ts +69 -7
  293. package/dist/types/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.d.ts +11 -6
  294. package/dist/types/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.d.ts +1 -1
  295. package/dist/types/components/snk-simple-crud/regular-buttons.d.ts +3 -0
  296. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +142 -6
  297. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +1 -1
  298. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +36 -1
  299. package/dist/types/components.d.ts +536 -18
  300. package/dist/types/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.d.ts +11 -0
  301. package/dist/types/lib/configs/ConfigStorage.d.ts +21 -1
  302. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +2 -3
  303. package/dist/types/lib/dataUnit/ValueFormatter.d.ts +2 -0
  304. package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +4 -0
  305. package/dist/types/lib/dataUnit/interfaces/InMemoryLoaderConfig.d.ts +3 -0
  306. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  307. package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
  308. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
  309. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
  310. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
  311. package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
  312. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +2 -1
  313. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +1 -0
  314. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +1 -0
  315. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
  316. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.d.ts +10 -0
  317. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.d.ts +7 -0
  318. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +7 -0
  319. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.d.ts +20 -0
  320. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +3 -0
  321. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +2 -0
  322. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  323. package/dist/types/lib/http/data-fetcher/fetchers/personalized-filter-fetcher.d.ts +2 -1
  324. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +1 -0
  325. package/dist/types/lib/index.d.ts +1 -1
  326. package/dist/types/lib/utils/CrudUtils.d.ts +3 -0
  327. package/package.json +15 -6
  328. package/dist/cjs/PreloadManager-84466da6.js +0 -224
  329. package/dist/cjs/SnkMultiSelectionListDataSource-ba5838c2.js +0 -49
  330. package/dist/cjs/snk-data-unit-1bc69073.js +0 -462
  331. package/dist/cjs/snk-grid-config.cjs.entry.js +0 -483
  332. package/dist/cjs/snk-select-box.cjs.entry.js +0 -25
  333. package/dist/collection/lib/http/data-fetcher/fetchers/fetchDataExporter/index.js +0 -34
  334. package/dist/components/field-search.js +0 -121
  335. package/dist/components/index3.js +0 -199
  336. package/dist/esm/PreloadManager-c1c2f2b4.js +0 -222
  337. package/dist/esm/SnkMultiSelectionListDataSource-44494b0e.js +0 -43
  338. package/dist/esm/snk-data-unit-6208ebf0.js +0 -460
  339. package/dist/esm/snk-grid-config.entry.js +0 -479
  340. package/dist/esm/snk-select-box.entry.js +0 -21
  341. package/dist/sankhyablocks/p-03dcc5ff.entry.js +0 -1
  342. package/dist/sankhyablocks/p-0874adb5.entry.js +0 -1
  343. package/dist/sankhyablocks/p-094c30cb.js +0 -1
  344. package/dist/sankhyablocks/p-0d7863ed.js +0 -26
  345. package/dist/sankhyablocks/p-1d75d9f9.entry.js +0 -1
  346. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  347. package/dist/sankhyablocks/p-25927311.entry.js +0 -1
  348. package/dist/sankhyablocks/p-32f0935f.js +0 -1
  349. package/dist/sankhyablocks/p-374d03f6.js +0 -1
  350. package/dist/sankhyablocks/p-3891ae6f.js +0 -60
  351. package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
  352. package/dist/sankhyablocks/p-573a07c5.js +0 -1
  353. package/dist/sankhyablocks/p-5f74c859.entry.js +0 -1
  354. package/dist/sankhyablocks/p-69754d94.entry.js +0 -1
  355. package/dist/sankhyablocks/p-6977a26c.entry.js +0 -1
  356. package/dist/sankhyablocks/p-69efa80d.entry.js +0 -1
  357. package/dist/sankhyablocks/p-761ed32f.entry.js +0 -1
  358. package/dist/sankhyablocks/p-7d8d7fe9.entry.js +0 -1
  359. package/dist/sankhyablocks/p-8d70b5d5.entry.js +0 -1
  360. package/dist/sankhyablocks/p-98674137.entry.js +0 -1
  361. package/dist/sankhyablocks/p-a9e4bb55.entry.js +0 -1
  362. package/dist/sankhyablocks/p-a9e5b094.entry.js +0 -1
  363. package/dist/sankhyablocks/p-aa0ae6bc.entry.js +0 -1
  364. package/dist/sankhyablocks/p-aa95fb2c.js +0 -56
  365. package/dist/sankhyablocks/p-b05ab13d.entry.js +0 -1
  366. package/dist/sankhyablocks/p-ba3d3fa9.entry.js +0 -11
  367. package/dist/sankhyablocks/p-c22c1d8e.js +0 -1
  368. package/dist/sankhyablocks/p-c4d19840.entry.js +0 -1
  369. package/dist/sankhyablocks/p-c6e477ff.js +0 -1
  370. package/dist/sankhyablocks/p-c758265f.entry.js +0 -1
  371. package/dist/sankhyablocks/p-cb7419e0.entry.js +0 -1
  372. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  373. package/dist/sankhyablocks/p-d6317851.entry.js +0 -1
  374. package/dist/sankhyablocks/p-d81f20c4.entry.js +0 -1
  375. package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
  376. package/dist/sankhyablocks/p-e6380c60.js +0 -1
  377. package/dist/sankhyablocks/p-ff6064e7.js +0 -1
  378. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
  379. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/index.d.ts +0 -3
  380. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
  381. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
  382. /package/dist/collection/components/{snk-form/subcomponents/snk-form-config → snk-form-config}/snk-form-config.css +0 -0
  383. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.css +0 -0
  384. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.js +0 -0
  385. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.css +0 -0
  386. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.js +0 -0
  387. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.css +0 -0
  388. /package/dist/collection/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.js +0 -0
  389. /package/dist/collection/components/{snk-grid/subcomponents/snk-grid-config → snk-grid-config}/snk-grid-config.css +0 -0
  390. /package/dist/collection/components/{snk-grid/subcomponents → snk-grid-config}/snk-select-box/snk-select-box.css +0 -0
  391. /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
  392. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-config-options/snk-config-options.d.ts +0 -0
  393. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-field-config/snk-field-config.d.ts +0 -0
  394. /package/dist/types/components/{snk-form → snk-form-config}/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -0
  395. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
  396. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
  397. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.d.ts +0 -0
@@ -1,7 +1,46 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
- import { Action, ObjectUtils, JSUtils, DataUnitAction, ApplicationContext, DataType } from '@sankhyalabs/core';
2
+ import { JSUtils, DataType, Action, ObjectUtils, DataUnitAction, StringUtils, ApplicationContext } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { O as OperationMap, S as SnkMessageBuilder } from './SnkMessageBuilder.js';
5
+ import { g as getRecordValue, d as DatasetStrategy } from './dataunit-fetcher.js';
6
+
7
+ const getSelectedIDs = (dataUnit) => {
8
+ const selectionInfo = dataUnit.getSelectionInfo();
9
+ if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
10
+ return [];
11
+ }
12
+ const selectedRecordsIDsInfo = [];
13
+ const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.recordIds;
14
+ if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
15
+ selectedRecords.forEach(recordId => {
16
+ if (!dataUnit.isNewRecord(recordId)) {
17
+ /*
18
+ Esse if foi necessário para tratar corretamente o ID
19
+ do record quando está sendo utilizado no modo standAlone
20
+ isso não faz a exportação da grid funcionar no modo standAlone
21
+ mas deixa de causar erro nas oprações de CRUD.
22
+ */
23
+ if (!JSUtils.isBase64(recordId)) {
24
+ selectedRecordsIDsInfo.push({
25
+ name: "__record__id__",
26
+ type: DataType.TEXT,
27
+ value: recordId
28
+ });
29
+ return;
30
+ }
31
+ const revertBase64ToObject = JSON.parse(window.atob(recordId));
32
+ Object.entries(revertBase64ToObject).forEach(([name, value]) => {
33
+ const metadataField = dataUnit === null || dataUnit === void 0 ? void 0 : dataUnit.getField(name);
34
+ if (metadataField == undefined) {
35
+ return;
36
+ }
37
+ selectedRecordsIDsInfo.push(Object.assign({ name, type: metadataField.dataType }, value));
38
+ });
39
+ }
40
+ });
41
+ }
42
+ return selectedRecordsIDsInfo;
43
+ };
5
44
 
6
45
  const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
46
  constructor() {
@@ -10,54 +49,37 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
10
49
  this.dataStateChange = createEvent(this, "dataStateChange", 3);
11
50
  this.dataUnitReady = createEvent(this, "dataUnitReady", 3);
12
51
  this.messagesBuilderUpdated = createEvent(this, "messagesBuilderUpdated", 3);
52
+ this.dataUnitFieldsHidded = createEvent(this, "dataUnitFieldsHidded", 7);
13
53
  this.insertionMode = createEvent(this, "insertionMode", 3);
14
54
  this.cancelEdition = createEvent(this, "cancelEdition", 3);
15
55
  this._onDataUnitResolve = [];
16
56
  this._openedAlert = false;
17
- this._dataUnitObserver = (action) => {
18
- var _a, _b;
19
- const duState = this.buildDataState();
57
+ this._fieldsWithRmp = [];
58
+ this._fieldsWithRmPrecision = [];
59
+ this._metadataByRow = new Map();
60
+ this._rowMetadataCache = new Map();
61
+ this.REGEX_DATAUNIT_NAME = /dd:\/\/(.+?)\//;
62
+ this._dataUnitObserver = async (action) => {
63
+ const duState = this.buildDataState(action.type);
20
64
  this.dataState = duState;
21
- if (action.type === Action.DATA_SAVED) {
22
- if (this.ignoreSaveMessage) {
23
- return;
24
- }
25
- const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0]);
26
- if (msg != undefined) {
27
- this.showSuccessMessage(msg);
28
- }
29
- }
30
- if (action.type === Action.RECORDS_ADDED || action.type === Action.RECORDS_COPIED) {
31
- this.insertionMode.emit();
32
- }
33
- if (action.type === Action.EDITION_CANCELED) {
34
- this.cancelEdition.emit();
35
- }
36
- if (action.type === Action.RECORDS_REMOVED) {
37
- const cachedRecords = action.payload.cachedRecords;
38
- let removeFinishMsg;
39
- if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
40
- removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
41
- }
42
- else {
43
- removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
44
- }
45
- if (removeFinishMsg != undefined) {
46
- this.showSuccessMessage(removeFinishMsg);
47
- }
48
- const recordsCount = (_b = (_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
49
- const paginationInfo = this.dataUnit.getPaginationInfo();
50
- if (paginationInfo) {
51
- if (recordsCount > 0 || paginationInfo.hasMore) {
52
- this.dataUnit.gotoPage(paginationInfo.currentPage);
53
- }
54
- else {
55
- this.dataUnit.gotoPage(0);
56
- }
57
- }
58
- }
59
65
  this.messagesBuilder.currentOperation = this.getMessageOperation();
66
+ switch (action.type) {
67
+ case Action.DATA_SAVED:
68
+ await this.handleDataSaved(action);
69
+ break;
70
+ case Action.RECORDS_ADDED:
71
+ case Action.RECORDS_COPIED:
72
+ this.insertionMode.emit();
73
+ break;
74
+ case Action.EDITION_CANCELED:
75
+ this.cancelEdition.emit();
76
+ break;
77
+ case Action.RECORDS_REMOVED:
78
+ this.handleRecordsRemoved(action);
79
+ break;
80
+ }
60
81
  };
82
+ this.fieldsToLink = [];
61
83
  this.dataState = undefined;
62
84
  this.messagesBuilder = undefined;
63
85
  this.dataUnitName = undefined;
@@ -125,179 +147,337 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
125
147
  * @returns Retorna a lista de IDs dos registros selecionados.
126
148
  */
127
149
  async getSelectedRecordsIDsInfo() {
128
- var _a;
129
- const selectionInfo = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectionInfo();
130
- if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
131
- return [];
132
- }
133
- const selectedRecordsIDsInfo = [];
134
- const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.records;
135
- if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
136
- selectedRecords.forEach(({ __record__id__ }) => {
137
- if (!this.dataUnit.isNewRecord(__record__id__)) {
138
- /*
139
- Esse if foi necessário para tratar corretamente o ID
140
- do record quando está sendo utilizado no modo standAlone
141
- isso não faz a exportação da grid funcionar no modo standAlone
142
- mas deixa de causar erro nas oprações de CRUD.
143
- */
144
- if (!JSUtils.isBase64(__record__id__)) {
145
- selectedRecordsIDsInfo.push({
146
- name: "__record__id__",
147
- type: DataType.TEXT,
148
- value: __record__id__
149
- });
150
- return;
151
- }
152
- const revertBase64ToObject = JSON.parse(window.atob(__record__id__));
153
- Object.entries(revertBase64ToObject).forEach(([name, value]) => {
154
- var _a;
155
- const metadataField = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(name);
156
- if (metadataField == undefined) {
157
- return;
158
- }
159
- selectedRecordsIDsInfo.push(Object.assign({ name, type: metadataField.dataType }, value));
160
- });
161
- }
162
- });
150
+ return Promise.resolve(getSelectedIDs(this.dataUnit));
151
+ }
152
+ /**
153
+ * Retorna os campos que possuem a propriedade "rmp" (Row Metadata Provider).
154
+ */
155
+ async getFieldsWithRmp() {
156
+ return this._fieldsWithRmp;
157
+ }
158
+ /**
159
+ * Retorna os campos que possuem a propriedade "rm_precision" (Row Metadata Precision).
160
+ */
161
+ async getFieldsWithRmPrecision() {
162
+ return this._fieldsWithRmPrecision;
163
+ }
164
+ /**
165
+ * Busca os metadados da linha selecionada.
166
+ */
167
+ async getRowMetadata(record) {
168
+ return this.doGetRowMetadata(record);
169
+ }
170
+ doGetRowMetadata(record) {
171
+ const selectedRecord = this.dataUnit.getSelectedRecord();
172
+ if (!record && !selectedRecord) {
173
+ return;
174
+ }
175
+ const currentRecord = record || selectedRecord;
176
+ const recordId = typeof currentRecord === 'string' ? currentRecord : currentRecord.__record__id__;
177
+ const rowMetadata = this._metadataByRow.get(recordId);
178
+ if (!rowMetadata) {
179
+ return;
180
+ }
181
+ rowMetadata.getProp = this.buildGetPropRowMetadata(rowMetadata);
182
+ return Object.assign({}, rowMetadata);
183
+ }
184
+ buildGetPropRowMetadata(rowMetadata) {
185
+ return (propPath, fieldName) => {
186
+ if (propPath === "rm_precision") {
187
+ propPath = this.resolvePrecisionFromMetadata(fieldName);
188
+ }
189
+ return ObjectUtils.getProp(rowMetadata, propPath);
190
+ };
191
+ }
192
+ resolvePrecisionFromMetadata(fieldName) {
193
+ var _a, _b;
194
+ if (!fieldName) {
195
+ ApplicationUtils.error(this.getMessage("snkDataUnit.fieldNameRequired"));
196
+ return;
197
+ }
198
+ const rmPrecision = (_b = (_a = this.dataUnit.getField(fieldName)) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.rm_precision;
199
+ if (!rmPrecision) {
200
+ return '';
163
201
  }
164
- return selectedRecordsIDsInfo;
202
+ let rmPrecisionPath = rmPrecision.split('.').filter((_, index) => index !== 1).join('.');
203
+ return rmPrecisionPath;
165
204
  }
166
205
  getCleanOnCopyFields() {
167
206
  var _a;
168
207
  return (_a = this.dataUnit.metadata) === null || _a === void 0 ? void 0 : _a.fields.filter(field => { var _a; return (_a = field.properties) === null || _a === void 0 ? void 0 : _a.cleanOnCopy; }).map(field => field.name);
169
208
  }
170
- async interceptAction(action) {
171
- return new Promise(resolve => {
172
- var _a, _b, _c, _d, _e;
173
- switch (action.type) {
174
- case Action.RECORDS_ADDED:
175
- if (this.isAllowed("INSERT")) {
176
- resolve(action);
177
- }
178
- else {
179
- ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenInsert"));
180
- }
181
- break;
182
- case Action.RECORDS_COPIED:
183
- if (this.isAllowed("CLONE")) {
184
- const cleanFields = this.getCleanOnCopyFields();
185
- if (cleanFields.length > 0) {
186
- const records = action.payload;
187
- action = new DataUnitAction(Action.RECORDS_COPIED, records.map(record => {
188
- const newRecord = Object.assign({}, record);
189
- cleanFields.forEach(fieldName => delete newRecord[fieldName]);
190
- return newRecord;
191
- }));
192
- }
193
- resolve(action);
194
- }
195
- else {
196
- ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenClone"));
197
- }
198
- break;
199
- case Action.DATA_CHANGED:
200
- case Action.CHANGING_DATA:
201
- if (this.isAllowed("UPDATE"))
202
- return resolve(action);
203
- if (this._openedAlert)
204
- return this.dataUnit.cancelEdition();
205
- this._openedAlert = true;
206
- this.dataUnit.cancelEdition();
207
- ApplicationUtils.alert(this.getMessage("snkDataUnit.forbidden"), this.getMessage("snkDataUnit.forbiddenUpdate")).then(() => {
208
- this._openedAlert = false;
209
- });
210
- break;
211
- case Action.SAVING_DATA:
212
- if (this.beforeSave) {
213
- const continueAction = this.beforeSave(this.dataUnit);
214
- if (continueAction instanceof Promise) {
215
- continueAction.then(result => resolve(result ? action : undefined));
216
- }
217
- else {
218
- resolve(continueAction ? action : undefined);
219
- }
220
- }
221
- else {
222
- resolve(action);
223
- }
224
- break;
225
- case Action.DATA_SAVED:
226
- if (this.afterSave) {
227
- this.afterSave(this.dataUnit);
228
- }
229
- else {
230
- resolve(action);
231
- }
232
- break;
233
- case Action.EDITION_CANCELED:
234
- if (!this.useCancelConfirm)
235
- return resolve(action);
236
- if (this.dataState.hasDirtyRecords) {
237
- const cancelConfirmation = this.getMessage("snkDataUnit.cancelConfirmation");
238
- if (((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fromParent) || ((_b = action.payload) === null || _b === void 0 ? void 0 : _b.silent)) {
239
- resolve(action);
240
- return;
241
- }
242
- if (cancelConfirmation == undefined) {
243
- this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
244
- resolve(action);
245
- }
246
- else {
247
- const cancelConfirmationTitle = this.getMessage("snkDataUnit.cancelConfirmationTitle");
248
- ApplicationUtils.confirm(cancelConfirmationTitle, cancelConfirmation)
249
- .then((result) => {
250
- result && this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
251
- resolve(result ? action : undefined);
252
- });
253
- }
254
- }
255
- else {
256
- resolve(action);
257
- }
258
- break;
259
- case Action.REMOVING_RECORDS:
260
- if (this.isAllowed("REMOVE")) {
261
- let multipleSelection = false;
262
- let removeConfirmation = !((_c = action.payload) === null || _c === void 0 ? void 0 : _c.silent) && this.getMessage("snkDataUnit.removeConfirmation");
263
- const selection = (_d = this.dataUnit) === null || _d === void 0 ? void 0 : _d.getSelectionInfo();
264
- if (!((_e = action.payload) === null || _e === void 0 ? void 0 : _e.silent) && (selection === null || selection === void 0 ? void 0 : selection.length) > 1) {
265
- removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size: selection.length });
266
- multipleSelection = true;
267
- }
268
- if (!removeConfirmation) {
269
- resolve(action);
270
- }
271
- else {
272
- const options = {
273
- canClose: false,
274
- labelCancel: this.getMessage(`snkDataUnit.confirm.${multipleSelection ? "no" : "cancel"}`),
275
- labelConfirm: this.getMessage(`snkDataUnit.confirm.${multipleSelection ? "yes" : "delete"}`),
276
- btnConfirmDanger: false
277
- };
278
- const removeConfirmationTitle = this.getMessage("snkDataUnit.removeConfirmationTitle");
279
- ApplicationUtils.confirm(removeConfirmationTitle, removeConfirmation, null, DialogType.WARN, options)
280
- .then((result) => resolve(result ? action : undefined));
281
- }
282
- }
283
- else {
284
- ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenRemove"));
285
- }
286
- break;
287
- default:
288
- resolve(action);
209
+ fillFieldsWithRmp(payload) {
210
+ payload.fields.forEach((field) => {
211
+ var _a;
212
+ if (((_a = field.properties) === null || _a === void 0 ? void 0 : _a.rmp) && !this._fieldsWithRmp.includes(field.name)) {
213
+ this._fieldsWithRmp.push(field.name);
214
+ }
215
+ });
216
+ }
217
+ fillFieldsWithRmPrecision(payload) {
218
+ payload.fields.forEach((field) => {
219
+ var _a;
220
+ if (((_a = field.properties) === null || _a === void 0 ? void 0 : _a.rm_precision) && !this._fieldsWithRmPrecision.includes(field.name)) {
221
+ this._fieldsWithRmPrecision.push(field.name);
222
+ }
223
+ });
224
+ }
225
+ getCacheName(fieldName, metadataName, fieldValue) {
226
+ const cacheName = [fieldName, metadataName, fieldValue].join("_");
227
+ return cacheName;
228
+ }
229
+ updateDataStateRmp(newValue) {
230
+ const newRowMetadata = Object.assign({}, newValue);
231
+ this.dataState.rowMetadata = newRowMetadata;
232
+ }
233
+ saveCacheRmd(record) {
234
+ const rmd = record.__record__metadata__;
235
+ const keysRmd = Object.keys(rmd);
236
+ keysRmd.shift();
237
+ keysRmd.forEach((fieldName) => {
238
+ const fieldValue = getRecordValue(record, fieldName);
239
+ const cacheName = this.getCacheName(fieldName, rmd.provider, fieldValue);
240
+ this._rowMetadataCache.set(cacheName, Object.assign({}, rmd));
241
+ });
242
+ }
243
+ getMetadataByRow(payload) {
244
+ var _a;
245
+ if (!((_a = payload.records) === null || _a === void 0 ? void 0 : _a.length)) {
246
+ return payload;
247
+ }
248
+ if (!this._fieldsWithRmp.length) {
249
+ const records = payload.records.map((record) => {
250
+ delete record.__record__metadata__;
251
+ return record;
252
+ });
253
+ return Object.assign(Object.assign({}, payload), { records });
254
+ }
255
+ const records = payload.records.map((record) => {
256
+ if (!record.__record__metadata__) {
257
+ return record;
289
258
  }
259
+ this.saveCacheRmd(record);
260
+ const rowMetadata = Object.assign({}, record.__record__metadata__);
261
+ rowMetadata.getProp = this.buildGetPropRowMetadata(rowMetadata);
262
+ this._metadataByRow.set(record.__record__id__, rowMetadata);
263
+ delete record.__record__metadata__;
264
+ return record;
265
+ });
266
+ return Object.assign(Object.assign({}, payload), { records });
267
+ }
268
+ interceptRecordsAdded(action) {
269
+ if (!this.isAllowed("INSERT")) {
270
+ ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenInsert"));
271
+ return;
272
+ }
273
+ return new DataUnitAction(Action.RECORDS_ADDED, this.handleLinksWithParent(action.payload));
274
+ }
275
+ interceptRecordsCopied(action) {
276
+ if (!this.isAllowed("CLONE")) {
277
+ ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenClone"));
278
+ return;
279
+ }
280
+ return new DataUnitAction(Action.RECORDS_COPIED, this.handleRecordsCopied(action.payload));
281
+ }
282
+ async interceptDataChange(action) {
283
+ if (this.isAllowed("UPDATE")) {
284
+ return action;
285
+ }
286
+ if (this._openedAlert) {
287
+ await this.dataUnit.cancelEdition();
288
+ return;
289
+ }
290
+ this._openedAlert = true;
291
+ await this.dataUnit.cancelEdition();
292
+ await ApplicationUtils.alert(this.getMessage("snkDataUnit.forbidden"), this.getMessage("snkDataUnit.forbiddenUpdate"));
293
+ this._openedAlert = false;
294
+ }
295
+ async interceptSavingData(action) {
296
+ if (!this.beforeSave) {
297
+ return action;
298
+ }
299
+ const continueAction = this.beforeSave(this.dataUnit);
300
+ if (continueAction instanceof Promise) {
301
+ const result = await continueAction;
302
+ return result ? action : undefined;
303
+ }
304
+ return continueAction ? action : undefined;
305
+ }
306
+ interceptDataSaved(action) {
307
+ if (this.afterSave) {
308
+ this.afterSave(this.dataUnit);
309
+ return;
310
+ }
311
+ return action;
312
+ }
313
+ async interceptEditionCanceled(action) {
314
+ var _a, _b;
315
+ if (!this.useCancelConfirm || !this.dataState.hasDirtyRecords || ((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fromParent) || ((_b = action.payload) === null || _b === void 0 ? void 0 : _b.silent)) {
316
+ return action;
317
+ }
318
+ const cancelConfirmation = this.getMessage("snkDataUnit.cancelConfirmation");
319
+ if (cancelConfirmation == undefined) {
320
+ this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
321
+ return action;
322
+ }
323
+ const cancelConfirmationTitle = this.getMessage("snkDataUnit.cancelConfirmationTitle");
324
+ const confirm = await ApplicationUtils.confirm(cancelConfirmationTitle, cancelConfirmation);
325
+ confirm && this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
326
+ return confirm ? action : undefined;
327
+ }
328
+ async interceptRemovingRecords(action) {
329
+ var _a, _b, _c;
330
+ if (!this.isAllowed("REMOVE")) {
331
+ ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenRemove"));
332
+ return;
333
+ }
334
+ let multipleSelection = false;
335
+ let removeConfirmation = !((_a = action.payload) === null || _a === void 0 ? void 0 : _a.silent) && this.getMessage("snkDataUnit.removeConfirmation");
336
+ const selection = (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getSelectionInfo();
337
+ if (!((_c = action.payload) === null || _c === void 0 ? void 0 : _c.silent) && (selection === null || selection === void 0 ? void 0 : selection.length) > 1) {
338
+ removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size: selection.length });
339
+ multipleSelection = true;
340
+ }
341
+ if (!removeConfirmation) {
342
+ return action;
343
+ }
344
+ const options = {
345
+ canClose: false,
346
+ labelCancel: this.getMessage(`snkDataUnit.confirm.${multipleSelection ? "no" : "cancel"}`),
347
+ labelConfirm: this.getMessage(`snkDataUnit.confirm.${multipleSelection ? "yes" : "delete"}`),
348
+ btnConfirmDanger: false
349
+ };
350
+ const removeConfirmationTitle = this.getMessage("snkDataUnit.removeConfirmationTitle");
351
+ const confirm = await ApplicationUtils.confirm(removeConfirmationTitle, removeConfirmation, null, DialogType.WARN, options);
352
+ return confirm ? action : undefined;
353
+ }
354
+ interceptDataLoaded(action) {
355
+ const newPayload = this.getMetadataByRow(action.payload);
356
+ action = new DataUnitAction(Action.DATA_LOADED, newPayload);
357
+ return action;
358
+ }
359
+ interceptMetadataLoaded(action) {
360
+ this.fillFieldsWithRmp(action.payload);
361
+ this.fillFieldsWithRmPrecision(action.payload);
362
+ return new DataUnitAction(Action.METADATA_LOADED, this.handleDULinksOnMetadataLoaded(action.payload));
363
+ }
364
+ async interceptAction(action) {
365
+ switch (action.type) {
366
+ case Action.RECORDS_ADDED:
367
+ return this.interceptRecordsAdded(action);
368
+ case Action.RECORDS_COPIED:
369
+ return this.interceptRecordsCopied(action);
370
+ case Action.DATA_CHANGED:
371
+ await this.handleLoadRowMetadata(action);
372
+ return await this.interceptDataChange(action);
373
+ case Action.CHANGING_DATA:
374
+ return await this.interceptDataChange(action);
375
+ case Action.SAVING_DATA:
376
+ return await this.interceptSavingData(action);
377
+ case Action.DATA_SAVED:
378
+ return this.interceptDataSaved(action);
379
+ case Action.EDITION_CANCELED:
380
+ return await this.interceptEditionCanceled(action);
381
+ case Action.REMOVING_RECORDS:
382
+ return await this.interceptRemovingRecords(action);
383
+ case Action.DATA_LOADED:
384
+ return this.interceptDataLoaded(action);
385
+ case Action.METADATA_LOADED:
386
+ return this.interceptMetadataLoaded(action);
387
+ default:
388
+ return action;
389
+ }
390
+ }
391
+ async handleLoadRowMetadata(action) {
392
+ const record = action.type === Action.DATA_CHANGED ? action.payload : action.payload.changes[0].record;
393
+ const keysPayload = Object.keys(record);
394
+ const rmpField = keysPayload.find((field) => this._fieldsWithRmp.includes(field));
395
+ if (rmpField) {
396
+ const metadataName = this.dataUnit.getField(rmpField).properties.rmp;
397
+ const fieldValue = getRecordValue(record, rmpField);
398
+ return await this.updateRowMetadata({
399
+ fieldName: rmpField,
400
+ fieldValue,
401
+ metadataName,
402
+ updatedFields: record,
403
+ });
404
+ }
405
+ }
406
+ async updateRowMetadata({ fieldName, fieldValue, metadataName, updatedFields }) {
407
+ const cacheName = this.getCacheName(fieldName, metadataName, fieldValue);
408
+ const cacheValue = this._rowMetadataCache.get(cacheName);
409
+ if (cacheValue) {
410
+ this.updateDataStateRmp(cacheValue);
411
+ return cacheValue;
412
+ }
413
+ else {
414
+ const datasetStrategy = new DatasetStrategy();
415
+ const response = await datasetStrategy.loadRowMetadata(this, fieldName, metadataName, updatedFields);
416
+ this.updateDataStateRmp(response._rmd);
417
+ this._rowMetadataCache.set(cacheName, Object.assign({}, response._rmd));
418
+ return Object.assign({}, response._rmd);
419
+ }
420
+ }
421
+ handleDULinksOnMetadataLoaded(payload) {
422
+ const metadata = Object.assign({}, payload);
423
+ this.processLinks(metadata);
424
+ return metadata;
425
+ }
426
+ handleRecordsCopied(initialRecords) {
427
+ let records = [...initialRecords];
428
+ records = this.handleCleanOnCopy(records);
429
+ return this.handleLinksWithParent(records);
430
+ }
431
+ handleLinksWithParent(records) {
432
+ var _a, _b;
433
+ const parentDataUnit = (_a = this._parentDataUnit) !== null && _a !== void 0 ? _a : (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getParentDataUnit();
434
+ if (!parentDataUnit)
435
+ return records;
436
+ const parentSelectedRecord = parentDataUnit.getSelectedRecord();
437
+ const selfInfo = parentDataUnit === null || parentDataUnit === void 0 ? void 0 : parentDataUnit.getChildInfo(this.getCleanDataUnitName());
438
+ const { links } = selfInfo;
439
+ if (!links || links.length === 0)
440
+ return records;
441
+ return records.map(record => {
442
+ return this.buildRecordWithLinkedFields(record, links, parentSelectedRecord);
290
443
  });
291
444
  }
445
+ buildRecordWithLinkedFields(record, links, parentSelectedRecord) {
446
+ const newRecord = Object.assign({}, record);
447
+ links.forEach(link => newRecord[link.target] = parentSelectedRecord[link.source]);
448
+ return newRecord;
449
+ }
450
+ handleCleanOnCopy(records) {
451
+ const cleanFields = this.getCleanOnCopyFields();
452
+ if (cleanFields.length > 0) {
453
+ records = records.map(record => this.buildCopyWithCleanedFields(record, cleanFields));
454
+ }
455
+ return records;
456
+ }
457
+ buildCopyWithCleanedFields(record, cleanFields) {
458
+ const newRecord = Object.assign({}, record);
459
+ cleanFields.forEach(fieldName => delete newRecord[fieldName]);
460
+ return newRecord;
461
+ }
292
462
  showSuccessMessage(message) {
293
463
  ApplicationUtils.info(message, { iconName: "check" });
294
464
  }
295
465
  isAllowed(flag) {
296
466
  return this._permissions ? this._permissions.isSup || this._permissions[flag] : false;
297
467
  }
298
- buildDataState() {
468
+ buildDataState(actionType) {
469
+ var _a;
299
470
  const selectionInfo = this.dataUnit.getSelectionInfo();
300
471
  const isStartingInsertionMode = (this.dataUnit.hasDirtyRecords() || this.dataUnit.hasWaitingChanges()) && (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isEmpty());
472
+ const selectedRecord = this.dataUnit.getSelectedRecord();
473
+ let rowMetadata = (_a = this.dataState) === null || _a === void 0 ? void 0 : _a.rowMetadata;
474
+ const allowedOverwrite = [Action.SELECTION_CHANGED, Action.EDITION_CANCELED, Action.NEXT_SELECTED, Action.PREVIOUS_SELECTED];
475
+ if (selectedRecord && (!rowMetadata || allowedOverwrite.includes(actionType))) {
476
+ rowMetadata = this.doGetRowMetadata(selectedRecord);
477
+ }
478
+ else if (rowMetadata) {
479
+ rowMetadata.getProp = this.buildGetPropRowMetadata(rowMetadata);
480
+ }
301
481
  return new DataStateImpl({
302
482
  insertionMode: this.dataUnit.hasNewRecord(),
303
483
  isStartingInsertionMode,
@@ -308,10 +488,48 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
308
488
  hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
309
489
  selectedRecords: undefined,
310
490
  selectionInfo,
311
- selectedRecord: this.dataUnit.getSelectedRecord(),
312
- recordsIsEmpty: this.dataUnit.records.length === 0
491
+ selectedRecord,
492
+ recordsIsEmpty: this.dataUnit.records.length === 0,
493
+ metadataByRow: this._metadataByRow,
494
+ rowMetadata
313
495
  });
314
496
  }
497
+ async handleDataSaved(action) {
498
+ const newRowMetadata = await this.handleLoadRowMetadata(action);
499
+ if (newRowMetadata) {
500
+ newRowMetadata.getProp = this.buildGetPropRowMetadata(newRowMetadata);
501
+ }
502
+ const recordId = action.payload.records[0].__record__id__;
503
+ this._metadataByRow.set(recordId, newRowMetadata);
504
+ this.dataState = this.buildDataState();
505
+ if (this.ignoreSaveMessage) {
506
+ return;
507
+ }
508
+ const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0]);
509
+ if (msg != undefined) {
510
+ this.showSuccessMessage(msg);
511
+ }
512
+ }
513
+ handleRecordsRemoved(action) {
514
+ var _a, _b;
515
+ const cachedRecords = action.payload.cachedRecords;
516
+ let removeFinishMsg;
517
+ if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
518
+ removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
519
+ }
520
+ else {
521
+ removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
522
+ }
523
+ if (removeFinishMsg != undefined) {
524
+ this.showSuccessMessage(removeFinishMsg);
525
+ }
526
+ const recordsCount = (_b = (_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
527
+ const paginationInfo = this.dataUnit.getPaginationInfo();
528
+ if (paginationInfo) {
529
+ const page = recordsCount > 0 || paginationInfo.hasMore ? paginationInfo.currentPage : 0;
530
+ this.dataUnit.gotoPage(page);
531
+ }
532
+ }
315
533
  /**
316
534
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
317
535
  * através de um pequeno modulo na estrutura da aplicação:
@@ -346,13 +564,14 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
346
564
  const cacheName = this.dataUnitName ? this.dataUnitName : this.entityName;
347
565
  if (this._parentSnkDataUnit) {
348
566
  this._parentDataUnit = await ((_a = this._parentSnkDataUnit) === null || _a === void 0 ? void 0 : _a.getDataUnit());
349
- return await this._application.getDataUnit(this.entityName, cacheName, this._parentDataUnit, this.configName, this.resourceID);
567
+ return await this._application.getDataUnit(this.entityName, cacheName, this._parentDataUnit, this.configName, this.resourceID, { skipLoadMetadata: true });
350
568
  }
351
569
  else {
352
- return await this._application.getDataUnit(this.entityName, cacheName, null, this.configName, this.resourceID);
570
+ return await this._application.getDataUnit(this.entityName, cacheName, null, this.configName, this.resourceID, { skipLoadMetadata: true });
353
571
  }
354
572
  }
355
573
  async loadDataUnit() {
574
+ var _a;
356
575
  if (this.dataUnit == null && this._application && this.entityName) {
357
576
  this.dataUnit = await this.getDataUnitParentOrChild();
358
577
  }
@@ -361,6 +580,10 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
361
580
  this.dataUnit.unsubscribe(this._dataUnitObserver);
362
581
  this.dataUnit.addInterceptor(this);
363
582
  this.dataUnit.subscribe(this._dataUnitObserver);
583
+ await this.dataUnit.loadMetadata();
584
+ if ((_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) {
585
+ this.getMetadataByRow(this.dataUnit);
586
+ }
364
587
  this.dataState = this.buildDataState();
365
588
  let resolver;
366
589
  while (resolver = this._onDataUnitResolve.pop()) {
@@ -379,20 +602,40 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
379
602
  return;
380
603
  }
381
604
  handlerLinkFields() {
382
- var _a, _b;
383
- const metadata = Object.assign({}, this.dataUnit.metadata);
384
- if (!this._parentDataUnit)
605
+ var _a, _b, _c, _d;
606
+ const parentDU = (_a = this._parentDataUnit) !== null && _a !== void 0 ? _a : (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getParentDataUnit();
607
+ if (!parentDU)
385
608
  return;
386
- const child = this._parentDataUnit.getChildInfo(this.entityName);
609
+ const childName = (_c = this.entityName) !== null && _c !== void 0 ? _c : this.getCleanDataUnitName();
610
+ const child = parentDU.getChildInfo(childName);
387
611
  if (!child)
388
612
  return;
389
- const fieldsLink = (_a = child === null || child === void 0 ? void 0 : child.links) === null || _a === void 0 ? void 0 : _a.map(link => link.target);
390
- (_b = metadata === null || metadata === void 0 ? void 0 : metadata.fields) === null || _b === void 0 ? void 0 : _b.forEach(field => {
391
- if (fieldsLink === null || fieldsLink === void 0 ? void 0 : fieldsLink.includes(field.name)) {
613
+ const links = (_d = child === null || child === void 0 ? void 0 : child.links) === null || _d === void 0 ? void 0 : _d.map(link => link.target);
614
+ this.handleDUWithLinks(links);
615
+ }
616
+ handleDUWithLinks(fieldsToLink) {
617
+ this.fieldsToLink = fieldsToLink;
618
+ const metadata = Object.assign({}, this.dataUnit.metadata);
619
+ this.processLinks(metadata);
620
+ this.dataUnit.metadata = metadata;
621
+ this.dataUnitFieldsHidded.emit();
622
+ }
623
+ processLinks(metadata) {
624
+ var _a;
625
+ (_a = metadata === null || metadata === void 0 ? void 0 : metadata.fields) === null || _a === void 0 ? void 0 : _a.forEach(field => {
626
+ var _a;
627
+ if ((_a = this.fieldsToLink) === null || _a === void 0 ? void 0 : _a.includes(field.name)) {
392
628
  field.visible = false;
393
629
  }
394
630
  });
395
- this.dataUnit.metadata = metadata;
631
+ }
632
+ getCleanDataUnitName() {
633
+ var _a;
634
+ const uri = this.dataUnit.name;
635
+ if (StringUtils.isEmpty(uri))
636
+ return uri;
637
+ const matcher = this.REGEX_DATAUNIT_NAME.exec(uri);
638
+ return (_a = matcher === null || matcher === void 0 ? void 0 : matcher[1]) !== null && _a !== void 0 ? _a : uri;
396
639
  }
397
640
  static getNearestInstance(element) {
398
641
  let parent = element.parentElement;
@@ -419,8 +662,9 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
419
662
  this.dataUnit.releaseCallbacks();
420
663
  }
421
664
  }
422
- componentDidLoad() {
423
- this.loadDataUnit();
665
+ async componentDidLoad() {
666
+ await this.loadDataUnit();
667
+ this.handlerLinkFields();
424
668
  }
425
669
  render() {
426
670
  return (h(Host, null));
@@ -447,8 +691,12 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
447
691
  "ignoreSaveMessage": [4, "ignore-save-message"],
448
692
  "configName": [1, "config-name"],
449
693
  "resourceID": [1, "resource-i-d"],
694
+ "fieldsToLink": [32],
450
695
  "getDataUnit": [64],
451
- "getSelectedRecordsIDsInfo": [64]
696
+ "getSelectedRecordsIDsInfo": [64],
697
+ "getFieldsWithRmp": [64],
698
+ "getFieldsWithRmPrecision": [64],
699
+ "getRowMetadata": [64]
452
700
  }]);
453
701
  class DataStateImpl {
454
702
  constructor(datastate) {
@@ -462,6 +710,8 @@ class DataStateImpl {
462
710
  this.selectionInfo = datastate.selectionInfo;
463
711
  this.selectedRecord = datastate.selectedRecord;
464
712
  this.recordsIsEmpty = datastate.recordsIsEmpty;
713
+ this.metadataByRow = datastate.metadataByRow;
714
+ this.rowMetadata = datastate.rowMetadata;
465
715
  }
466
716
  get selectedRecords() {
467
717
  var _a;
@@ -486,4 +736,4 @@ function defineCustomElement() {
486
736
  } });
487
737
  }
488
738
 
489
- export { SnkDataUnit as S, defineCustomElement as d };
739
+ export { SnkDataUnit as S, defineCustomElement as d, getSelectedIDs as g };