@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-38445.1 → 0.0.0-bugfix-dev-kb-67792.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (248) hide show
  1. package/dist/cjs/{ConfigStorage-942ce74b.js → ConfigStorage-0a690675.js} +2 -2
  2. package/dist/cjs/{DataFetcher-313debd8.js → DataFetcher-77729a93.js} +7 -2
  3. package/dist/cjs/{SnkFormConfigManager-1b13bacd.js → SnkFormConfigManager-d6d5db6d.js} +5 -8
  4. package/dist/cjs/{SnkMessageBuilder-722b104e.js → SnkMessageBuilder-96b0f549.js} +13 -9
  5. package/dist/cjs/{IExporterProvider-597949f9.js → SnkMultiSelectionListDataSource-f79d220c.js} +6 -96
  6. package/dist/cjs/{auth-fetcher-54f5ff9d.js → auth-fetcher-29bb791c.js} +1 -1
  7. package/dist/cjs/{form-config-fetcher-2dd00e5b.js → form-config-fetcher-feb08214.js} +1 -1
  8. package/dist/cjs/{index-1dfc7a6e.js → index-0922807b.js} +0 -5
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/{dataunit-fetcher-688d3f05.js → pesquisa-fetcher-cba1b3d0.js} +181 -88
  11. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  12. package/dist/cjs/snk-actions-button_4.cjs.entry.js +5 -7
  13. package/dist/cjs/snk-application.cjs.entry.js +15 -38
  14. package/dist/cjs/snk-attach.cjs.entry.js +49 -74
  15. package/dist/cjs/snk-crud.cjs.entry.js +13 -99
  16. package/dist/cjs/snk-data-exporter.cjs.entry.js +88 -318
  17. package/dist/cjs/snk-data-unit-559ac55c.js +462 -0
  18. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -12
  19. package/dist/cjs/snk-detail-view.cjs.entry.js +10 -51
  20. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
  21. package/dist/cjs/snk-filter-bar.cjs.entry.js +14 -9
  22. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  23. package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
  24. package/dist/cjs/snk-form-view.cjs.entry.js +0 -67
  25. package/dist/cjs/snk-form.cjs.entry.js +9 -54
  26. package/dist/cjs/snk-grid.cjs.entry.js +112 -169
  27. package/dist/cjs/{snk-guides-viewer-67605336.js → snk-guides-viewer-bfcad2d6.js} +10 -38
  28. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -11
  29. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  30. package/dist/cjs/snk-simple-crud.cjs.entry.js +40 -267
  31. package/dist/cjs/snk-taskbar.cjs.entry.js +3 -4
  32. package/dist/cjs/{taskbar-elements-9ad1f9c0.js → taskbar-elements-3ecd1278.js} +3 -3
  33. package/dist/collection/collection-manifest.json +1 -1
  34. package/dist/collection/components/snk-application/snk-application.js +11 -35
  35. package/dist/collection/components/snk-attach/snk-attach.js +44 -67
  36. package/dist/collection/components/snk-crud/snk-crud.js +7 -249
  37. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +0 -135
  38. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +0 -161
  39. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +5 -112
  40. package/dist/collection/components/snk-data-exporter/exporter-email-sender/options-step.js +1 -1
  41. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +1 -54
  42. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +52 -59
  43. package/dist/collection/components/snk-data-exporter/structure/ItemBuilder.js +2 -64
  44. package/dist/collection/components/snk-data-unit/snk-data-unit.js +214 -507
  45. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +11 -23
  46. package/dist/collection/components/snk-form/snk-form.js +5 -102
  47. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +3 -6
  48. package/dist/collection/components/snk-grid/snk-grid.css +0 -2
  49. package/dist/collection/components/snk-grid/snk-grid.js +102 -241
  50. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +18 -386
  51. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +2 -2
  52. package/dist/collection/components/snk-taskbar/snk-taskbar.js +1 -2
  53. package/dist/collection/lib/@types/index.js +0 -5
  54. package/dist/collection/lib/dataUnit/InMemoryLoader.js +3 -7
  55. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +8 -3
  56. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +0 -3
  57. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +0 -4
  58. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +13 -11
  59. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +0 -1
  60. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +4 -53
  61. package/dist/collection/lib/http/data-fetcher/fetchers/fetchDataExporter/index.js +34 -0
  62. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +4 -4
  63. package/dist/collection/lib/message/SnkMessageBuilder.js +12 -5
  64. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +0 -2
  65. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +0 -1
  66. package/dist/collection/lib/message/resources/snk-exporter.msg.js +1 -1
  67. package/dist/components/DataFetcher.js +8 -3
  68. package/dist/components/SnkFormConfigManager.js +3 -6
  69. package/dist/components/SnkMessageBuilder.js +13 -9
  70. package/dist/components/dataunit-fetcher.js +182 -84
  71. package/dist/components/{IExporterProvider.js → field-search.js} +6 -93
  72. package/dist/components/index2.js +33 -198
  73. package/dist/components/index3.js +199 -0
  74. package/dist/components/snk-actions-button2.js +11 -4
  75. package/dist/components/snk-application2.js +9 -31
  76. package/dist/components/snk-attach2.js +41 -65
  77. package/dist/components/snk-crud.js +11 -103
  78. package/dist/components/snk-data-exporter2.js +87 -311
  79. package/dist/components/snk-data-unit2.js +212 -470
  80. package/dist/components/snk-detail-view2.js +10 -87
  81. package/dist/components/snk-exporter-email-sender2.js +1 -1
  82. package/dist/components/snk-expression-item2.js +1 -1
  83. package/dist/components/snk-filter-bar2.js +11 -7
  84. package/dist/components/snk-form-view2.js +1 -72
  85. package/dist/components/snk-form.js +6 -53
  86. package/dist/components/snk-grid2.js +108 -170
  87. package/dist/components/snk-personalized-filter2.js +1 -1
  88. package/dist/components/snk-simple-crud2.js +23 -259
  89. package/dist/components/snk-taskbar2.js +5 -6
  90. package/dist/esm/{ConfigStorage-86187da3.js → ConfigStorage-8c2ddac8.js} +2 -2
  91. package/dist/esm/{DataFetcher-c1baf61d.js → DataFetcher-773a3e4b.js} +8 -3
  92. package/dist/esm/{SnkFormConfigManager-d4554df9.js → SnkFormConfigManager-c01b9d9d.js} +5 -8
  93. package/dist/esm/{SnkMessageBuilder-89925609.js → SnkMessageBuilder-72423074.js} +13 -9
  94. package/dist/esm/{IExporterProvider-63a188b6.js → SnkMultiSelectionListDataSource-a4805051.js} +7 -95
  95. package/dist/esm/{auth-fetcher-039abba3.js → auth-fetcher-a411f73c.js} +1 -1
  96. package/dist/esm/{form-config-fetcher-30fb808f.js → form-config-fetcher-e0382e5a.js} +1 -1
  97. package/dist/esm/{index-3aa4977a.js → index-0ece87a6.js} +1 -6
  98. package/dist/esm/loader.js +1 -1
  99. package/dist/esm/{dataunit-fetcher-264191b2.js → pesquisa-fetcher-34a8b8be.js} +182 -84
  100. package/dist/esm/sankhyablocks.js +1 -1
  101. package/dist/esm/snk-actions-button_4.entry.js +5 -7
  102. package/dist/esm/snk-application.entry.js +14 -37
  103. package/dist/esm/snk-attach.entry.js +44 -69
  104. package/dist/esm/snk-crud.entry.js +13 -99
  105. package/dist/esm/snk-data-exporter.entry.js +89 -319
  106. package/dist/esm/snk-data-unit-44215df7.js +460 -0
  107. package/dist/esm/snk-data-unit.entry.js +2 -12
  108. package/dist/esm/snk-detail-view.entry.js +10 -51
  109. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  110. package/dist/esm/snk-filter-bar.entry.js +14 -9
  111. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  112. package/dist/esm/snk-form-config.entry.js +2 -2
  113. package/dist/esm/snk-form-view.entry.js +0 -67
  114. package/dist/esm/snk-form.entry.js +9 -54
  115. package/dist/esm/snk-grid.entry.js +110 -167
  116. package/dist/esm/{snk-guides-viewer-151f6091.js → snk-guides-viewer-edeac29f.js} +10 -38
  117. package/dist/esm/snk-guides-viewer.entry.js +9 -11
  118. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  119. package/dist/esm/snk-simple-crud.entry.js +28 -255
  120. package/dist/esm/snk-taskbar.entry.js +3 -4
  121. package/dist/esm/{taskbar-elements-d59867f1.js → taskbar-elements-2473c8ac.js} +3 -3
  122. package/dist/sankhyablocks/p-03dcc5ff.entry.js +1 -0
  123. package/dist/sankhyablocks/{p-913a9979.js → p-0cd3c0a9.js} +1 -1
  124. package/dist/sankhyablocks/p-16a1dd18.entry.js +1 -0
  125. package/dist/sankhyablocks/p-176c3491.entry.js +1 -0
  126. package/dist/sankhyablocks/{p-df5451c7.js → p-181975f1.js} +1 -1
  127. package/dist/sankhyablocks/p-37e5d563.js +65 -0
  128. package/dist/sankhyablocks/p-38289a55.js +1 -0
  129. package/dist/sankhyablocks/{p-a1d72395.entry.js → p-41c2c191.entry.js} +1 -1
  130. package/dist/sankhyablocks/p-46e55a95.entry.js +1 -0
  131. package/dist/sankhyablocks/p-4e728357.entry.js +1 -0
  132. package/dist/sankhyablocks/p-5571bdfe.js +1 -0
  133. package/dist/sankhyablocks/p-5630574e.js +1 -0
  134. package/dist/sankhyablocks/p-594bc21d.js +1 -0
  135. package/dist/sankhyablocks/p-5f8c0426.entry.js +1 -0
  136. package/dist/sankhyablocks/p-80c64add.entry.js +1 -0
  137. package/dist/sankhyablocks/p-86af4cc2.js +1 -0
  138. package/dist/sankhyablocks/p-8b690717.js +1 -0
  139. package/dist/sankhyablocks/{p-aff76a53.js → p-96621231.js} +1 -1
  140. package/dist/sankhyablocks/p-a1832166.entry.js +1 -0
  141. package/dist/sankhyablocks/p-a809d944.entry.js +1 -0
  142. package/dist/sankhyablocks/p-a97226f6.entry.js +1 -0
  143. package/dist/sankhyablocks/p-add17f6a.entry.js +1 -0
  144. package/dist/sankhyablocks/{p-7e7a7473.js → p-ae4fc9a9.js} +1 -1
  145. package/dist/sankhyablocks/{p-eae7a817.entry.js → p-c2ae0fab.entry.js} +1 -1
  146. package/dist/sankhyablocks/p-c5a9a5d9.entry.js +1 -0
  147. package/dist/sankhyablocks/p-c5aa7d70.entry.js +11 -0
  148. package/dist/sankhyablocks/p-cb0147ab.entry.js +1 -0
  149. package/dist/sankhyablocks/p-f0145e3b.js +1 -0
  150. package/dist/sankhyablocks/{p-14a08904.entry.js → p-f03e4199.entry.js} +1 -1
  151. package/dist/sankhyablocks/p-f607db63.entry.js +1 -0
  152. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  153. package/dist/types/components/snk-application/snk-application.d.ts +3 -7
  154. package/dist/types/components/snk-attach/snk-attach.d.ts +9 -11
  155. package/dist/types/components/snk-crud/snk-crud.d.ts +1 -36
  156. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +0 -23
  157. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +3 -28
  158. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +0 -19
  159. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +4 -24
  160. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +1 -4
  161. package/dist/types/components/snk-data-exporter/structure/ItemBuilder.d.ts +0 -21
  162. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +2 -61
  163. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +1 -4
  164. package/dist/types/components/snk-form/snk-form.d.ts +0 -14
  165. package/dist/types/components/snk-grid/snk-grid.d.ts +6 -46
  166. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +4 -58
  167. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +1 -1
  168. package/dist/types/components.d.ts +4 -220
  169. package/dist/types/lib/@types/index.d.ts +0 -5
  170. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +1 -2
  171. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +1 -2
  172. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +0 -1
  173. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +0 -1
  174. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +0 -6
  175. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/index.d.ts +3 -0
  176. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +0 -3
  177. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IFetchDataExporterParams.d.ts +1 -2
  178. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +0 -1
  179. package/package.json +1 -1
  180. package/dist/cjs/RecordIDUtils-3735135c.js +0 -43
  181. package/dist/cjs/pesquisa-fetcher-680e198f.js +0 -166
  182. package/dist/cjs/snk-data-unit-685272e7.js +0 -679
  183. package/dist/collection/components/snk-crud/interfaces/PropsCustomEditor.js +0 -1
  184. package/dist/collection/components/snk-crud/interfaces/PropsCustomRender.js +0 -1
  185. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +0 -97
  186. package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +0 -74
  187. package/dist/collection/components/snk-data-exporter/interfaces/IExporterStrategy.js +0 -1
  188. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +0 -58
  189. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +0 -55
  190. package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +0 -88
  191. package/dist/collection/components/snk-data-exporter/utils/ParserExport.js +0 -20
  192. package/dist/collection/components/snk-data-exporter/utils/RecordIDUtils.js +0 -38
  193. package/dist/collection/components/snk-data-unit/test/resources/metadataMock.js +0 -24
  194. package/dist/collection/components/snk-data-unit/test/resources/parentMetadataMock.js +0 -18
  195. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +0 -35
  196. package/dist/collection/lib/dataUnit/ValueFormatter.js +0 -4
  197. package/dist/collection/lib/dataUnit/interfaces/InMemoryLoaderConfig.js +0 -1
  198. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.js +0 -1
  199. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.js +0 -1
  200. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.js +0 -22
  201. package/dist/components/ISave.js +0 -47
  202. package/dist/components/pesquisa-fetcher.js +0 -164
  203. package/dist/esm/RecordIDUtils-87d02110.js +0 -41
  204. package/dist/esm/pesquisa-fetcher-03c8f919.js +0 -164
  205. package/dist/esm/snk-data-unit-63f83504.js +0 -677
  206. package/dist/sankhyablocks/p-14b9f964.entry.js +0 -1
  207. package/dist/sankhyablocks/p-19c18d06.entry.js +0 -1
  208. package/dist/sankhyablocks/p-1db45d26.entry.js +0 -1
  209. package/dist/sankhyablocks/p-219f888d.entry.js +0 -1
  210. package/dist/sankhyablocks/p-30cf616e.js +0 -1
  211. package/dist/sankhyablocks/p-3a212712.js +0 -1
  212. package/dist/sankhyablocks/p-47b60deb.entry.js +0 -1
  213. package/dist/sankhyablocks/p-7505da04.entry.js +0 -1
  214. package/dist/sankhyablocks/p-75f83d1d.entry.js +0 -1
  215. package/dist/sankhyablocks/p-7a337364.js +0 -1
  216. package/dist/sankhyablocks/p-829d4045.js +0 -1
  217. package/dist/sankhyablocks/p-82a0bfb0.entry.js +0 -11
  218. package/dist/sankhyablocks/p-8fc470e5.entry.js +0 -1
  219. package/dist/sankhyablocks/p-941bf3ef.entry.js +0 -1
  220. package/dist/sankhyablocks/p-9863d682.js +0 -1
  221. package/dist/sankhyablocks/p-af8efd95.js +0 -6
  222. package/dist/sankhyablocks/p-b4b21558.entry.js +0 -1
  223. package/dist/sankhyablocks/p-bad55caa.entry.js +0 -1
  224. package/dist/sankhyablocks/p-c053256c.entry.js +0 -1
  225. package/dist/sankhyablocks/p-c5268346.entry.js +0 -1
  226. package/dist/sankhyablocks/p-cefba299.js +0 -1
  227. package/dist/sankhyablocks/p-dc7c9047.js +0 -1
  228. package/dist/sankhyablocks/p-f2809746.entry.js +0 -1
  229. package/dist/sankhyablocks/p-fcac4dfc.js +0 -1
  230. package/dist/sankhyablocks/p-fe79f83a.js +0 -60
  231. package/dist/types/components/snk-crud/interfaces/PropsCustomEditor.d.ts +0 -4
  232. package/dist/types/components/snk-crud/interfaces/PropsCustomRender.d.ts +0 -4
  233. package/dist/types/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.d.ts +0 -14
  234. package/dist/types/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.d.ts +0 -12
  235. package/dist/types/components/snk-data-exporter/interfaces/IExporterStrategy.d.ts +0 -5
  236. package/dist/types/components/snk-data-exporter/providers/ClientSideExporterProvider.d.ts +0 -17
  237. package/dist/types/components/snk-data-exporter/providers/ServerSideExporterProvider.d.ts +0 -17
  238. package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +0 -77
  239. package/dist/types/components/snk-data-exporter/utils/ParserExport.d.ts +0 -4
  240. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +0 -3
  241. package/dist/types/components/snk-data-unit/test/resources/metadataMock.d.ts +0 -3
  242. package/dist/types/components/snk-data-unit/test/resources/parentMetadataMock.d.ts +0 -3
  243. package/dist/types/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.d.ts +0 -11
  244. package/dist/types/lib/dataUnit/ValueFormatter.d.ts +0 -2
  245. package/dist/types/lib/dataUnit/interfaces/InMemoryLoaderConfig.d.ts +0 -3
  246. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.d.ts +0 -10
  247. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.d.ts +0 -7
  248. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.d.ts +0 -20
@@ -1,47 +1,55 @@
1
1
  import { Host, h } from '@stencil/core';
2
- import { Action, ApplicationContext, DataUnitAction, ObjectUtils, StringUtils } from '@sankhyalabs/core';
2
+ import { Action, ApplicationContext, DataUnitAction, ObjectUtils, DataType, JSUtils } from '@sankhyalabs/core';
3
3
  import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
4
4
  import { OperationMap, SnkMessageBuilder } from '../../lib/message/SnkMessageBuilder';
5
- import { DatasetStrategy } from '../../lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy';
6
- import { getRecordValue } from '../../lib/dataUnit/ValueFormatter';
7
- import { getSelectedIDs } from '../snk-data-exporter/utils/RecordIDUtils';
8
- import { convertType } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
9
5
  export class SnkDataUnit {
10
6
  constructor() {
11
7
  this._onDataUnitResolve = [];
12
8
  this._openedAlert = false;
13
- this._fieldsWithRmp = [];
14
- this._fieldsWithRmPrecision = [];
15
- this._metadataByRow = new Map();
16
- this._rowMetadataCache = new Map();
17
- this.REGEX_DATAUNIT_NAME = /dd:\/\/(.+?)\//;
18
- this._dataUnitObserver = async (action) => {
19
- const duState = this.buildDataState(action.type);
9
+ this._dataUnitObserver = (action) => {
10
+ var _a, _b;
11
+ const duState = this.buildDataState();
20
12
  this.dataState = duState;
21
- this.messagesBuilder.currentOperation = this.getMessageOperation();
22
- switch (action.type) {
23
- case Action.DATA_SAVED:
24
- await this.handleDataSaved(action);
25
- break;
26
- case Action.RECORDS_ADDED:
27
- case Action.RECORDS_COPIED:
28
- this.insertionMode.emit();
29
- break;
30
- case Action.EDITION_CANCELED:
31
- this.cancelEdition.emit();
32
- break;
33
- case Action.RECORDS_REMOVED:
34
- this.handleRecordsRemoved(action);
35
- break;
36
- case Action.METADATA_LOADED:
37
- this.fillFieldsWithRmp(this.dataUnit.metadata);
38
- this.fillFieldsWithRmPrecision(this.dataUnit.metadata);
39
- break;
40
- default:
41
- break;
13
+ if (action.type === Action.DATA_SAVED) {
14
+ if (this.ignoreSaveMessage) {
15
+ return;
16
+ }
17
+ const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0]);
18
+ if (msg != undefined) {
19
+ this.showSuccessMessage(msg);
20
+ }
42
21
  }
22
+ if (action.type === Action.RECORDS_ADDED || action.type === Action.RECORDS_COPIED) {
23
+ this.insertionMode.emit();
24
+ }
25
+ if (action.type === Action.EDITION_CANCELED) {
26
+ this.cancelEdition.emit();
27
+ }
28
+ if (action.type === Action.RECORDS_REMOVED) {
29
+ const cachedRecords = action.payload.cachedRecords;
30
+ let removeFinishMsg;
31
+ if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
32
+ removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
33
+ }
34
+ else {
35
+ removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
36
+ }
37
+ if (removeFinishMsg != undefined) {
38
+ this.showSuccessMessage(removeFinishMsg);
39
+ }
40
+ const recordsCount = (_b = (_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
41
+ const paginationInfo = this.dataUnit.getPaginationInfo();
42
+ if (paginationInfo) {
43
+ if (recordsCount > 0 || paginationInfo.hasMore) {
44
+ this.dataUnit.gotoPage(paginationInfo.currentPage);
45
+ }
46
+ else {
47
+ this.dataUnit.gotoPage(0);
48
+ }
49
+ }
50
+ }
51
+ this.messagesBuilder.currentOperation = this.getMessageOperation();
43
52
  };
44
- this.fieldsToLink = [];
45
53
  this.dataState = undefined;
46
54
  this.messagesBuilder = undefined;
47
55
  this.dataUnitName = undefined;
@@ -109,320 +117,169 @@ export class SnkDataUnit {
109
117
  * @returns Retorna a lista de IDs dos registros selecionados.
110
118
  */
111
119
  async getSelectedRecordsIDsInfo() {
112
- return Promise.resolve(getSelectedIDs(this.dataUnit));
113
- }
114
- /**
115
- * Retorna os campos que possuem a propriedade "rmp" (Row Metadata Provider).
116
- */
117
- async getFieldsWithRmp() {
118
- return this._fieldsWithRmp;
119
- }
120
- /**
121
- * Retorna os campos que possuem a propriedade "rm_precision" (Row Metadata Precision).
122
- */
123
- async getFieldsWithRmPrecision() {
124
- return this._fieldsWithRmPrecision;
125
- }
126
- /**
127
- * Busca os metadados da linha selecionada.
128
- */
129
- async getRowMetadata(record) {
130
- return this.doGetRowMetadata(record);
131
- }
132
- doGetRowMetadata(record) {
133
- const selectedRecord = this.dataUnit.getSelectedRecord();
134
- if (!record && !selectedRecord) {
135
- return;
136
- }
137
- const currentRecord = record || selectedRecord;
138
- const recordId = typeof currentRecord === 'string' ? currentRecord : currentRecord.__record__id__;
139
- const rowMetadata = this._metadataByRow.get(recordId);
140
- if (!rowMetadata) {
141
- return;
142
- }
143
- rowMetadata.getProp = this.buildGetPropRowMetadata(rowMetadata);
144
- return Object.assign({}, rowMetadata);
145
- }
146
- buildGetPropRowMetadata(rowMetadata) {
147
- return (propPath, fieldName) => {
148
- if (propPath === "rm_precision") {
149
- propPath = this.resolvePrecisionFromMetadata(fieldName);
150
- }
151
- return ObjectUtils.getProp(rowMetadata, propPath);
152
- };
153
- }
154
- resolvePrecisionFromMetadata(fieldName) {
155
- var _a, _b;
156
- if (!fieldName) {
157
- ApplicationUtils.error(this.getMessage("snkDataUnit.fieldNameRequired"));
158
- return;
159
- }
160
- 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;
161
- if (!rmPrecision) {
162
- return '';
120
+ var _a;
121
+ const selectionInfo = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSelectionInfo();
122
+ if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
123
+ return [];
124
+ }
125
+ const selectedRecordsIDsInfo = [];
126
+ const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.records;
127
+ if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
128
+ selectedRecords.forEach(({ __record__id__ }) => {
129
+ if (!this.dataUnit.isNewRecord(__record__id__)) {
130
+ /*
131
+ Esse if foi necessário para tratar corretamente o ID
132
+ do record quando está sendo utilizado no modo standAlone
133
+ isso não faz a exportação da grid funcionar no modo standAlone
134
+ mas deixa de causar erro nas oprações de CRUD.
135
+ */
136
+ if (!JSUtils.isBase64(__record__id__)) {
137
+ selectedRecordsIDsInfo.push({
138
+ name: "__record__id__",
139
+ type: DataType.TEXT,
140
+ value: __record__id__
141
+ });
142
+ return;
143
+ }
144
+ const revertBase64ToObject = JSON.parse(window.atob(__record__id__));
145
+ Object.entries(revertBase64ToObject).forEach(([name, value]) => {
146
+ var _a;
147
+ const metadataField = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(name);
148
+ if (metadataField == undefined) {
149
+ return;
150
+ }
151
+ selectedRecordsIDsInfo.push(Object.assign({ name, type: metadataField.dataType }, value));
152
+ });
153
+ }
154
+ });
163
155
  }
164
- let rmPrecisionPath = rmPrecision.split('.').filter((_, index) => index !== 1).join('.');
165
- return rmPrecisionPath;
156
+ return selectedRecordsIDsInfo;
166
157
  }
167
158
  getCleanOnCopyFields() {
168
159
  var _a;
169
160
  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);
170
161
  }
171
- fillFieldsWithRmp(payload) {
172
- payload.fields.forEach((field) => {
173
- var _a;
174
- if (((_a = field.properties) === null || _a === void 0 ? void 0 : _a.rmp) && !this._fieldsWithRmp.includes(field.name)) {
175
- this._fieldsWithRmp.push(field.name);
176
- }
177
- });
178
- }
179
- fillFieldsWithRmPrecision(payload) {
180
- payload.fields.forEach((field) => {
181
- var _a;
182
- if (((_a = field.properties) === null || _a === void 0 ? void 0 : _a.rm_precision) && !this._fieldsWithRmPrecision.includes(field.name)) {
183
- this._fieldsWithRmPrecision.push(field.name);
184
- }
185
- });
186
- }
187
- getCacheName(fieldName, metadataName, fieldValue) {
188
- const cacheName = [fieldName, metadataName, fieldValue].join("_");
189
- return cacheName;
190
- }
191
- updateDataStateRmp(newValue) {
192
- const newRowMetadata = Object.assign({}, newValue);
193
- this.dataState.rowMetadata = newRowMetadata;
194
- }
195
- saveCacheRmd(record) {
196
- const rmd = record.__record__metadata__;
197
- const keysRmd = Object.keys(rmd);
198
- keysRmd.shift();
199
- keysRmd.forEach((fieldName) => {
200
- const fieldValue = getRecordValue(record, fieldName);
201
- const cacheName = this.getCacheName(fieldName, rmd.provider, fieldValue);
202
- this._rowMetadataCache.set(cacheName, Object.assign({}, rmd));
203
- });
204
- }
205
- getMetadataByRow(payload) {
206
- var _a;
207
- if (!((_a = payload.records) === null || _a === void 0 ? void 0 : _a.length)) {
208
- return payload;
209
- }
210
- if (!this._fieldsWithRmp.length) {
211
- const records = payload.records.map((record) => {
212
- delete record.__record__metadata__;
213
- return record;
214
- });
215
- return Object.assign(Object.assign({}, payload), { records });
216
- }
217
- const records = payload.records.map((record) => {
218
- if (!record.__record__metadata__) {
219
- return record;
220
- }
221
- this.saveCacheRmd(record);
222
- const rowMetadata = Object.assign({}, record.__record__metadata__);
223
- rowMetadata.getProp = this.buildGetPropRowMetadata(rowMetadata);
224
- this._metadataByRow.set(record.__record__id__, rowMetadata);
225
- delete record.__record__metadata__;
226
- return record;
227
- });
228
- return Object.assign(Object.assign({}, payload), { records });
229
- }
230
- interceptRecordsAdded(action) {
231
- if (!this.isAllowed("INSERT")) {
232
- ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenInsert"));
233
- return;
234
- }
235
- return new DataUnitAction(Action.RECORDS_ADDED, this.handleLinksWithParent(action.payload));
236
- }
237
- interceptRecordsCopied(action) {
238
- if (!this.isAllowed("CLONE")) {
239
- ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenClone"));
240
- return;
241
- }
242
- return new DataUnitAction(Action.RECORDS_COPIED, this.handleRecordsCopied(action.payload));
243
- }
244
- async interceptDataChange(action) {
245
- if (this.isAllowed("UPDATE")) {
246
- return action;
247
- }
248
- if (this._openedAlert) {
249
- await this.dataUnit.cancelEdition();
250
- return;
251
- }
252
- this._openedAlert = true;
253
- await this.dataUnit.cancelEdition();
254
- await ApplicationUtils.alert(this.getMessage("snkDataUnit.forbidden"), this.getMessage("snkDataUnit.forbiddenUpdate"));
255
- this._openedAlert = false;
256
- }
257
- async interceptSavingData(action) {
258
- if (!this.beforeSave) {
259
- return action;
260
- }
261
- const continueAction = this.beforeSave(this.dataUnit);
262
- if (continueAction instanceof Promise) {
263
- const result = await continueAction;
264
- return result ? action : undefined;
265
- }
266
- return continueAction ? action : undefined;
267
- }
268
- interceptDataSaved(action) {
269
- if (this.afterSave) {
270
- this.afterSave(this.dataUnit);
271
- return;
272
- }
273
- return action;
274
- }
275
- async interceptEditionCanceled(action) {
276
- var _a, _b;
277
- 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)) {
278
- return action;
279
- }
280
- const cancelConfirmation = this.getMessage("snkDataUnit.cancelConfirmation");
281
- if (cancelConfirmation == undefined) {
282
- this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
283
- return action;
284
- }
285
- const cancelConfirmationTitle = this.getMessage("snkDataUnit.cancelConfirmationTitle");
286
- const confirm = await ApplicationUtils.confirm(cancelConfirmationTitle, cancelConfirmation);
287
- confirm && this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
288
- return confirm ? action : undefined;
289
- }
290
- async interceptRemovingRecords(action) {
291
- var _a, _b, _c;
292
- if (!this.isAllowed("REMOVE")) {
293
- ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenRemove"));
294
- return;
295
- }
296
- let multipleSelection = false;
297
- let removeConfirmation = !((_a = action.payload) === null || _a === void 0 ? void 0 : _a.silent) && this.getMessage("snkDataUnit.removeConfirmation");
298
- const selection = (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getSelectionInfo();
299
- if (!((_c = action.payload) === null || _c === void 0 ? void 0 : _c.silent) && (selection === null || selection === void 0 ? void 0 : selection.length) > 1) {
300
- removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size: selection.length });
301
- multipleSelection = true;
302
- }
303
- if (!removeConfirmation) {
304
- return action;
305
- }
306
- const options = {
307
- canClose: false,
308
- labelCancel: this.getMessage(`snkDataUnit.confirm.${multipleSelection ? "no" : "cancel"}`),
309
- labelConfirm: this.getMessage(`snkDataUnit.confirm.${multipleSelection ? "yes" : "delete"}`),
310
- btnConfirmDanger: false
311
- };
312
- const removeConfirmationTitle = this.getMessage("snkDataUnit.removeConfirmationTitle");
313
- const confirm = await ApplicationUtils.confirm(removeConfirmationTitle, removeConfirmation, null, DialogType.WARN, options);
314
- return confirm ? action : undefined;
315
- }
316
- interceptDataLoaded(action) {
317
- const newPayload = this.getMetadataByRow(action.payload);
318
- action = new DataUnitAction(Action.DATA_LOADED, newPayload);
319
- return action;
320
- }
321
- interceptMetadataLoaded(action) {
322
- this.fillFieldsWithRmp(action.payload);
323
- this.fillFieldsWithRmPrecision(action.payload);
324
- return new DataUnitAction(Action.METADATA_LOADED, this.handleDULinksOnMetadataLoaded(action.payload));
325
- }
326
162
  async interceptAction(action) {
327
- switch (action.type) {
328
- case Action.RECORDS_ADDED:
329
- return this.interceptRecordsAdded(action);
330
- case Action.RECORDS_COPIED:
331
- return this.interceptRecordsCopied(action);
332
- case Action.DATA_CHANGED:
333
- await this.handleLoadRowMetadata(action);
334
- return await this.interceptDataChange(action);
335
- case Action.CHANGING_DATA:
336
- return await this.interceptDataChange(action);
337
- case Action.SAVING_DATA:
338
- return await this.interceptSavingData(action);
339
- case Action.DATA_SAVED:
340
- return this.interceptDataSaved(action);
341
- case Action.EDITION_CANCELED:
342
- return await this.interceptEditionCanceled(action);
343
- case Action.REMOVING_RECORDS:
344
- return await this.interceptRemovingRecords(action);
345
- case Action.DATA_LOADED:
346
- return this.interceptDataLoaded(action);
347
- case Action.METADATA_LOADED:
348
- return this.interceptMetadataLoaded(action);
349
- default:
350
- return action;
351
- }
352
- }
353
- async handleLoadRowMetadata(action) {
354
- const record = action.type === Action.DATA_CHANGED ? action.payload : action.payload.changes[0].record;
355
- const keysPayload = Object.keys(record);
356
- const rmpField = keysPayload.find((field) => this._fieldsWithRmp.includes(field));
357
- if (rmpField) {
358
- const metadataName = this.dataUnit.getField(rmpField).properties.rmp;
359
- const fieldValue = getRecordValue(record, rmpField);
360
- return await this.updateRowMetadata({
361
- fieldName: rmpField,
362
- fieldValue,
363
- metadataName,
364
- updatedFields: record,
365
- });
366
- }
367
- }
368
- async updateRowMetadata({ fieldName, fieldValue, metadataName, updatedFields }) {
369
- const cacheName = this.getCacheName(fieldName, metadataName, fieldValue);
370
- const cacheValue = this._rowMetadataCache.get(cacheName);
371
- if (cacheValue) {
372
- this.updateDataStateRmp(cacheValue);
373
- return cacheValue;
374
- }
375
- else {
376
- const datasetStrategy = new DatasetStrategy();
377
- const response = await datasetStrategy.loadRowMetadata(this, fieldName, metadataName, updatedFields);
378
- this.updateDataStateRmp(response._rmd);
379
- this._rowMetadataCache.set(cacheName, Object.assign({}, response._rmd));
380
- return Object.assign({}, response._rmd);
381
- }
382
- }
383
- handleDULinksOnMetadataLoaded(payload) {
384
- const metadata = Object.assign({}, payload);
385
- this.processLinks(metadata);
386
- return metadata;
387
- }
388
- handleRecordsCopied(initialRecords) {
389
- let records = [...initialRecords];
390
- records = this.handleCleanOnCopy(records);
391
- return this.handleLinksWithParent(records);
392
- }
393
- handleLinksWithParent(records) {
394
- var _a, _b;
395
- const parentDataUnit = (_a = this._parentDataUnit) !== null && _a !== void 0 ? _a : (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getParentDataUnit();
396
- if (!parentDataUnit)
397
- return records;
398
- const parentSelectedRecord = parentDataUnit.getSelectedRecord();
399
- const selfInfo = parentDataUnit === null || parentDataUnit === void 0 ? void 0 : parentDataUnit.getChildInfo(this.getCleanDataUnitName());
400
- const { links } = selfInfo;
401
- if (!links || links.length === 0)
402
- return records;
403
- return records.map(record => {
404
- return this.buildRecordWithLinkedFields(record, links, parentSelectedRecord);
405
- });
406
- }
407
- buildRecordWithLinkedFields(record, links, parentSelectedRecord) {
408
- const newRecord = Object.assign({}, record);
409
- links.forEach(link => {
410
- const convertedParentSelectedRecord = convertType(this.dataUnit.getField(link.target).dataType, parentSelectedRecord[link.source]);
411
- newRecord[link.target] = convertedParentSelectedRecord;
163
+ return new Promise(resolve => {
164
+ var _a, _b, _c, _d, _e;
165
+ switch (action.type) {
166
+ case Action.RECORDS_ADDED:
167
+ if (this.isAllowed("INSERT")) {
168
+ resolve(action);
169
+ }
170
+ else {
171
+ ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenInsert"));
172
+ }
173
+ break;
174
+ case Action.RECORDS_COPIED:
175
+ if (this.isAllowed("CLONE")) {
176
+ const cleanFields = this.getCleanOnCopyFields();
177
+ if (cleanFields.length > 0) {
178
+ const records = action.payload;
179
+ action = new DataUnitAction(Action.RECORDS_COPIED, records.map(record => {
180
+ const newRecord = Object.assign({}, record);
181
+ cleanFields.forEach(fieldName => delete newRecord[fieldName]);
182
+ return newRecord;
183
+ }));
184
+ }
185
+ resolve(action);
186
+ }
187
+ else {
188
+ ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenClone"));
189
+ }
190
+ break;
191
+ case Action.DATA_CHANGED:
192
+ case Action.CHANGING_DATA:
193
+ if (this.isAllowed("UPDATE"))
194
+ return resolve(action);
195
+ if (this._openedAlert)
196
+ return this.dataUnit.cancelEdition();
197
+ this._openedAlert = true;
198
+ this.dataUnit.cancelEdition();
199
+ ApplicationUtils.alert(this.getMessage("snkDataUnit.forbidden"), this.getMessage("snkDataUnit.forbiddenUpdate")).then(() => {
200
+ this._openedAlert = false;
201
+ });
202
+ break;
203
+ case Action.SAVING_DATA:
204
+ if (this.beforeSave) {
205
+ const continueAction = this.beforeSave(this.dataUnit);
206
+ if (continueAction instanceof Promise) {
207
+ continueAction.then(result => resolve(result ? action : undefined));
208
+ }
209
+ else {
210
+ resolve(continueAction ? action : undefined);
211
+ }
212
+ }
213
+ else {
214
+ resolve(action);
215
+ }
216
+ break;
217
+ case Action.DATA_SAVED:
218
+ if (this.afterSave) {
219
+ this.afterSave(this.dataUnit);
220
+ }
221
+ else {
222
+ resolve(action);
223
+ }
224
+ break;
225
+ case Action.EDITION_CANCELED:
226
+ if (!this.useCancelConfirm)
227
+ return resolve(action);
228
+ if (this.dataState.hasDirtyRecords) {
229
+ const cancelConfirmation = this.getMessage("snkDataUnit.cancelConfirmation");
230
+ if (((_a = action.payload) === null || _a === void 0 ? void 0 : _a.fromParent) || ((_b = action.payload) === null || _b === void 0 ? void 0 : _b.silent)) {
231
+ resolve(action);
232
+ return;
233
+ }
234
+ if (cancelConfirmation == undefined) {
235
+ this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
236
+ resolve(action);
237
+ }
238
+ else {
239
+ const cancelConfirmationTitle = this.getMessage("snkDataUnit.cancelConfirmationTitle");
240
+ ApplicationUtils.confirm(cancelConfirmationTitle, cancelConfirmation)
241
+ .then((result) => {
242
+ result && this.showSuccessMessage(this.getMessage("snkDataUnit.cancelInfo"));
243
+ resolve(result ? action : undefined);
244
+ });
245
+ }
246
+ }
247
+ else {
248
+ resolve(action);
249
+ }
250
+ break;
251
+ case Action.REMOVING_RECORDS:
252
+ if (this.isAllowed("REMOVE")) {
253
+ let multipleSelection = false;
254
+ let removeConfirmation = !((_c = action.payload) === null || _c === void 0 ? void 0 : _c.silent) && this.getMessage("snkDataUnit.removeConfirmation");
255
+ const selection = (_d = this.dataUnit) === null || _d === void 0 ? void 0 : _d.getSelectionInfo();
256
+ if (!((_e = action.payload) === null || _e === void 0 ? void 0 : _e.silent) && (selection === null || selection === void 0 ? void 0 : selection.length) > 1) {
257
+ removeConfirmation = this.getMessage("snkDataUnit.removeAllConfirmation", { size: selection.length });
258
+ multipleSelection = true;
259
+ }
260
+ if (!removeConfirmation) {
261
+ resolve(action);
262
+ }
263
+ else {
264
+ const options = {
265
+ canClose: false,
266
+ labelCancel: this.getMessage(`snkDataUnit.confirm.${multipleSelection ? "no" : "cancel"}`),
267
+ labelConfirm: this.getMessage(`snkDataUnit.confirm.${multipleSelection ? "yes" : "delete"}`),
268
+ btnConfirmDanger: false
269
+ };
270
+ const removeConfirmationTitle = this.getMessage("snkDataUnit.removeConfirmationTitle");
271
+ ApplicationUtils.confirm(removeConfirmationTitle, removeConfirmation, null, DialogType.WARN, options)
272
+ .then((result) => resolve(result ? action : undefined));
273
+ }
274
+ }
275
+ else {
276
+ ApplicationUtils.info(this.getMessage("snkDataUnit.forbiddenRemove"));
277
+ }
278
+ break;
279
+ default:
280
+ resolve(action);
281
+ }
412
282
  });
413
- return newRecord;
414
- }
415
- handleCleanOnCopy(records) {
416
- const cleanFields = this.getCleanOnCopyFields();
417
- if (cleanFields.length > 0) {
418
- records = records.map(record => this.buildCopyWithCleanedFields(record, cleanFields));
419
- }
420
- return records;
421
- }
422
- buildCopyWithCleanedFields(record, cleanFields) {
423
- const newRecord = Object.assign({}, record);
424
- cleanFields.forEach(fieldName => delete newRecord[fieldName]);
425
- return newRecord;
426
283
  }
427
284
  showSuccessMessage(message) {
428
285
  ApplicationUtils.info(message, { iconName: "check" });
@@ -430,19 +287,9 @@ export class SnkDataUnit {
430
287
  isAllowed(flag) {
431
288
  return this._permissions ? this._permissions.isSup || this._permissions[flag] : false;
432
289
  }
433
- buildDataState(actionType) {
434
- var _a;
290
+ buildDataState() {
435
291
  const selectionInfo = this.dataUnit.getSelectionInfo();
436
292
  const isStartingInsertionMode = (this.dataUnit.hasDirtyRecords() || this.dataUnit.hasWaitingChanges()) && (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isEmpty());
437
- const selectedRecord = this.dataUnit.getSelectedRecord();
438
- let rowMetadata = (_a = this.dataState) === null || _a === void 0 ? void 0 : _a.rowMetadata;
439
- const allowedOverwrite = [Action.SELECTION_CHANGED, Action.EDITION_CANCELED, Action.NEXT_SELECTED, Action.PREVIOUS_SELECTED];
440
- if (selectedRecord && (!rowMetadata || allowedOverwrite.includes(actionType))) {
441
- rowMetadata = this.doGetRowMetadata(selectedRecord);
442
- }
443
- else if (rowMetadata) {
444
- rowMetadata.getProp = this.buildGetPropRowMetadata(rowMetadata);
445
- }
446
293
  return new DataStateImpl({
447
294
  insertionMode: this.dataUnit.hasNewRecord(),
448
295
  isStartingInsertionMode,
@@ -453,48 +300,10 @@ export class SnkDataUnit {
453
300
  hasDirtyRecords: this.dataUnit.hasDirtyRecords(),
454
301
  selectedRecords: undefined,
455
302
  selectionInfo,
456
- selectedRecord,
457
- recordsIsEmpty: this.dataUnit.records.length === 0,
458
- metadataByRow: this._metadataByRow,
459
- rowMetadata
303
+ selectedRecord: this.dataUnit.getSelectedRecord(),
304
+ recordsIsEmpty: this.dataUnit.records.length === 0
460
305
  });
461
306
  }
462
- async handleDataSaved(action) {
463
- const newRowMetadata = await this.handleLoadRowMetadata(action);
464
- if (newRowMetadata) {
465
- newRowMetadata.getProp = this.buildGetPropRowMetadata(newRowMetadata);
466
- }
467
- const recordId = action.payload.records[0].__record__id__;
468
- this._metadataByRow.set(recordId, newRowMetadata);
469
- this.dataState = this.buildDataState();
470
- if (this.ignoreSaveMessage) {
471
- return;
472
- }
473
- const msg = this.getMessage("snkDataUnit.saveInfo", action.payload.records[0]);
474
- if (msg != undefined) {
475
- this.showSuccessMessage(msg);
476
- }
477
- }
478
- handleRecordsRemoved(action) {
479
- var _a, _b;
480
- const cachedRecords = action.payload.cachedRecords;
481
- let removeFinishMsg;
482
- if ((cachedRecords === null || cachedRecords === void 0 ? void 0 : cachedRecords.length) > 1) {
483
- removeFinishMsg = this.getMessage("snkDataUnit.removeAllInfo", { size: cachedRecords.length });
484
- }
485
- else {
486
- removeFinishMsg = this.getMessage("snkDataUnit.removeInfo", action.payload.cachedRecords[0]);
487
- }
488
- if (removeFinishMsg != undefined) {
489
- this.showSuccessMessage(removeFinishMsg);
490
- }
491
- const recordsCount = (_b = (_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
492
- const paginationInfo = this.dataUnit.getPaginationInfo();
493
- if (paginationInfo) {
494
- const page = recordsCount > 0 || paginationInfo.hasMore ? paginationInfo.currentPage : 0;
495
- this.dataUnit.gotoPage(page);
496
- }
497
- }
498
307
  /**
499
308
  * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
500
309
  * através de um pequeno modulo na estrutura da aplicação:
@@ -536,7 +345,6 @@ export class SnkDataUnit {
536
345
  }
537
346
  }
538
347
  async loadDataUnit() {
539
- var _a;
540
348
  if (this.dataUnit == null && this._application && this.entityName) {
541
349
  this.dataUnit = await this.getDataUnitParentOrChild();
542
350
  }
@@ -545,10 +353,6 @@ export class SnkDataUnit {
545
353
  this.dataUnit.unsubscribe(this._dataUnitObserver);
546
354
  this.dataUnit.addInterceptor(this);
547
355
  this.dataUnit.subscribe(this._dataUnitObserver);
548
- await this.dataUnit.loadMetadata();
549
- if ((_a = this.dataUnit.records) === null || _a === void 0 ? void 0 : _a.length) {
550
- this.getMetadataByRow(this.dataUnit);
551
- }
552
356
  this.dataState = this.buildDataState();
553
357
  let resolver;
554
358
  while (resolver = this._onDataUnitResolve.pop()) {
@@ -567,40 +371,20 @@ export class SnkDataUnit {
567
371
  return;
568
372
  }
569
373
  handlerLinkFields() {
570
- var _a, _b, _c, _d;
571
- const parentDU = (_a = this._parentDataUnit) !== null && _a !== void 0 ? _a : (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.getParentDataUnit();
572
- if (!parentDU)
374
+ var _a, _b;
375
+ const metadata = Object.assign({}, this.dataUnit.metadata);
376
+ if (!this._parentDataUnit)
573
377
  return;
574
- const childName = (_c = this.entityName) !== null && _c !== void 0 ? _c : this.getCleanDataUnitName();
575
- const child = parentDU.getChildInfo(childName);
378
+ const child = this._parentDataUnit.getChildInfo(this.entityName);
576
379
  if (!child)
577
380
  return;
578
- const links = (_d = child === null || child === void 0 ? void 0 : child.links) === null || _d === void 0 ? void 0 : _d.map(link => link.target);
579
- this.handleDUWithLinks(links);
580
- }
581
- handleDUWithLinks(fieldsToLink) {
582
- this.fieldsToLink = fieldsToLink;
583
- const metadata = Object.assign({}, this.dataUnit.metadata);
584
- this.processLinks(metadata);
585
- this.dataUnit.metadata = metadata;
586
- this.dataUnitFieldsHidded.emit();
587
- }
588
- processLinks(metadata) {
589
- var _a;
590
- (_a = metadata === null || metadata === void 0 ? void 0 : metadata.fields) === null || _a === void 0 ? void 0 : _a.forEach(field => {
591
- var _a;
592
- if ((_a = this.fieldsToLink) === null || _a === void 0 ? void 0 : _a.includes(field.name)) {
381
+ const fieldsLink = (_a = child === null || child === void 0 ? void 0 : child.links) === null || _a === void 0 ? void 0 : _a.map(link => link.target);
382
+ (_b = metadata === null || metadata === void 0 ? void 0 : metadata.fields) === null || _b === void 0 ? void 0 : _b.forEach(field => {
383
+ if (fieldsLink === null || fieldsLink === void 0 ? void 0 : fieldsLink.includes(field.name)) {
593
384
  field.visible = false;
594
385
  }
595
386
  });
596
- }
597
- getCleanDataUnitName() {
598
- var _a;
599
- const uri = this.dataUnit.name;
600
- if (StringUtils.isEmpty(uri))
601
- return uri;
602
- const matcher = this.REGEX_DATAUNIT_NAME.exec(uri);
603
- return (_a = matcher === null || matcher === void 0 ? void 0 : matcher[1]) !== null && _a !== void 0 ? _a : uri;
387
+ this.dataUnit.metadata = metadata;
604
388
  }
605
389
  static getNearestInstance(element) {
606
390
  let parent = element.parentElement;
@@ -627,9 +411,8 @@ export class SnkDataUnit {
627
411
  this.dataUnit.releaseCallbacks();
628
412
  }
629
413
  }
630
- async componentDidLoad() {
631
- await this.loadDataUnit();
632
- this.handlerLinkFields();
414
+ componentDidLoad() {
415
+ this.loadDataUnit();
633
416
  }
634
417
  render() {
635
418
  return (h(Host, null));
@@ -863,11 +646,6 @@ export class SnkDataUnit {
863
646
  }
864
647
  };
865
648
  }
866
- static get states() {
867
- return {
868
- "fieldsToLink": {}
869
- };
870
- }
871
649
  static get events() {
872
650
  return [{
873
651
  "method": "dataStateChange",
@@ -928,21 +706,6 @@ export class SnkDataUnit {
928
706
  }
929
707
  }
930
708
  }
931
- }, {
932
- "method": "dataUnitFieldsHidded",
933
- "name": "dataUnitFieldsHidded",
934
- "bubbles": true,
935
- "cancelable": true,
936
- "composed": true,
937
- "docs": {
938
- "tags": [],
939
- "text": "Emitido quando h\u00E1 campos no DataUnit que devem ser ocultados."
940
- },
941
- "complexType": {
942
- "original": "void",
943
- "resolved": "void",
944
- "references": {}
945
- }
946
709
  }, {
947
710
  "method": "insertionMode",
948
711
  "name": "insertionMode",
@@ -1011,6 +774,10 @@ export class SnkDataUnit {
1011
774
  },
1012
775
  "Array": {
1013
776
  "location": "global"
777
+ },
778
+ "Record": {
779
+ "location": "import",
780
+ "path": "@sankhyalabs/core"
1014
781
  }
1015
782
  },
1016
783
  "return": "Promise<IRecordID[]>"
@@ -1022,64 +789,6 @@ export class SnkDataUnit {
1022
789
  "text": "Retorna a lista de IDs dos registros selecionados."
1023
790
  }]
1024
791
  }
1025
- },
1026
- "getFieldsWithRmp": {
1027
- "complexType": {
1028
- "signature": "() => Promise<string[]>",
1029
- "parameters": [],
1030
- "references": {
1031
- "Promise": {
1032
- "location": "global"
1033
- }
1034
- },
1035
- "return": "Promise<string[]>"
1036
- },
1037
- "docs": {
1038
- "text": "Retorna os campos que possuem a propriedade \"rmp\" (Row Metadata Provider).",
1039
- "tags": []
1040
- }
1041
- },
1042
- "getFieldsWithRmPrecision": {
1043
- "complexType": {
1044
- "signature": "() => Promise<string[]>",
1045
- "parameters": [],
1046
- "references": {
1047
- "Promise": {
1048
- "location": "global"
1049
- }
1050
- },
1051
- "return": "Promise<string[]>"
1052
- },
1053
- "docs": {
1054
- "text": "Retorna os campos que possuem a propriedade \"rm_precision\" (Row Metadata Precision).",
1055
- "tags": []
1056
- }
1057
- },
1058
- "getRowMetadata": {
1059
- "complexType": {
1060
- "signature": "(record?: Record | string) => Promise<RowMetadata>",
1061
- "parameters": [{
1062
- "tags": [],
1063
- "text": ""
1064
- }],
1065
- "references": {
1066
- "Promise": {
1067
- "location": "global"
1068
- },
1069
- "RowMetadata": {
1070
- "location": "local"
1071
- },
1072
- "Record": {
1073
- "location": "import",
1074
- "path": "@sankhyalabs/core"
1075
- }
1076
- },
1077
- "return": "Promise<RowMetadata>"
1078
- },
1079
- "docs": {
1080
- "text": "Busca os metadados da linha selecionada.",
1081
- "tags": []
1082
- }
1083
792
  }
1084
793
  };
1085
794
  }
@@ -1118,8 +827,6 @@ class DataStateImpl {
1118
827
  this.selectionInfo = datastate.selectionInfo;
1119
828
  this.selectedRecord = datastate.selectedRecord;
1120
829
  this.recordsIsEmpty = datastate.recordsIsEmpty;
1121
- this.metadataByRow = datastate.metadataByRow;
1122
- this.rowMetadata = datastate.rowMetadata;
1123
830
  }
1124
831
  get selectedRecords() {
1125
832
  var _a;