@sankhyalabs/sankhyablocks 8.15.3 → 8.16.0-dev.10

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 (234) hide show
  1. package/dist/cjs/{ConfigStorage-942ce74b.js → ConfigStorage-a343e418.js} +1 -0
  2. package/dist/cjs/{SnkMultiSelectionListDataSource-3c08d25c.js → IExporterProvider-597949f9.js} +94 -4
  3. package/dist/cjs/RecordIDUtils-3735135c.js +43 -0
  4. package/dist/cjs/{SnkFormConfigManager-f9dc0d28.js → SnkFormConfigManager-166cbd1f.js} +8 -7
  5. package/dist/cjs/{SnkMessageBuilder-66aa2557.js → SnkMessageBuilder-897ffd08.js} +9 -13
  6. package/dist/cjs/{pesquisa-fetcher-562d281f.js → dataunit-fetcher-688d3f05.js} +87 -180
  7. package/dist/cjs/{index-0922807b.js → index-1dfc7a6e.js} +5 -0
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/pesquisa-fetcher-680e198f.js +166 -0
  10. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  11. package/dist/cjs/snk-actions-button_4.cjs.entry.js +5 -3
  12. package/dist/cjs/snk-application.cjs.entry.js +35 -12
  13. package/dist/cjs/snk-attach.cjs.entry.js +71 -46
  14. package/dist/cjs/snk-crud.cjs.entry.js +101 -10
  15. package/dist/cjs/snk-data-exporter.cjs.entry.js +315 -85
  16. package/dist/cjs/snk-data-unit-8fa7917a.js +689 -0
  17. package/dist/cjs/snk-data-unit.cjs.entry.js +12 -2
  18. package/dist/cjs/snk-detail-view.cjs.entry.js +50 -10
  19. package/dist/cjs/snk-filter-bar.cjs.entry.js +6 -2
  20. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +1 -1
  21. package/dist/cjs/snk-form-config.cjs.entry.js +1 -1
  22. package/dist/cjs/snk-form-view.cjs.entry.js +67 -0
  23. package/dist/cjs/snk-form.cjs.entry.js +52 -7
  24. package/dist/cjs/snk-grid.cjs.entry.js +165 -108
  25. package/dist/cjs/{snk-guides-viewer-bb6087cd.js → snk-guides-viewer-9c682034.js} +43 -10
  26. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -7
  27. package/dist/cjs/snk-personalized-filter.cjs.entry.js +1 -1
  28. package/dist/cjs/snk-simple-crud.cjs.entry.js +268 -40
  29. package/dist/cjs/snk-taskbar.cjs.entry.js +4 -3
  30. package/dist/cjs/{taskbar-elements-3ecd1278.js → taskbar-elements-9ad1f9c0.js} +3 -3
  31. package/dist/collection/collection-manifest.json +1 -1
  32. package/dist/collection/components/snk-application/snk-application.js +35 -11
  33. package/dist/collection/components/snk-attach/snk-attach.js +67 -44
  34. package/dist/collection/components/snk-crud/interfaces/PropsCustomEditor.js +1 -0
  35. package/dist/collection/components/snk-crud/interfaces/PropsCustomRender.js +1 -0
  36. package/dist/collection/components/snk-crud/snk-crud.js +305 -7
  37. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +136 -2
  38. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +161 -0
  39. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +134 -7
  40. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +97 -0
  41. package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +74 -0
  42. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +54 -1
  43. package/dist/collection/components/snk-data-exporter/interfaces/IExporterStrategy.js +1 -0
  44. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +58 -0
  45. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +55 -0
  46. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +59 -52
  47. package/dist/collection/components/snk-data-exporter/structure/ItemBuilder.js +62 -0
  48. package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +88 -0
  49. package/dist/collection/components/snk-data-exporter/utils/ParserExport.js +20 -0
  50. package/dist/collection/components/snk-data-exporter/utils/RecordIDUtils.js +38 -0
  51. package/dist/collection/components/snk-data-unit/snk-data-unit.js +538 -218
  52. package/dist/collection/components/snk-data-unit/test/resources/metadataMock.js +24 -0
  53. package/dist/collection/components/snk-data-unit/test/resources/parentMetadataMock.js +18 -0
  54. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +22 -1
  55. package/dist/collection/components/snk-form/snk-form.js +102 -5
  56. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +7 -6
  57. package/dist/collection/components/snk-form-config/snk-form-config.js +1 -1
  58. package/dist/collection/components/snk-grid/snk-grid.js +240 -101
  59. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +406 -20
  60. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +2 -2
  61. package/dist/collection/components/snk-taskbar/snk-taskbar.js +2 -1
  62. package/dist/collection/lib/@types/index.js +5 -0
  63. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +35 -0
  64. package/dist/collection/lib/configs/ConfigStorage.js +1 -0
  65. package/dist/collection/lib/dataUnit/InMemoryLoader.js +7 -3
  66. package/dist/collection/lib/dataUnit/ValueFormatter.js +4 -0
  67. package/dist/collection/lib/dataUnit/interfaces/InMemoryLoaderConfig.js +1 -0
  68. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +3 -0
  69. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +4 -0
  70. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +11 -13
  71. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +1 -0
  72. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.js +1 -0
  73. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.js +1 -0
  74. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +53 -4
  75. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.js +22 -0
  76. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +4 -4
  77. package/dist/collection/lib/message/SnkMessageBuilder.js +5 -12
  78. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -0
  79. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +2 -1
  80. package/dist/components/ConfigStorage.js +1 -0
  81. package/dist/components/{field-search.js → IExporterProvider.js} +93 -6
  82. package/dist/components/ISave.js +47 -0
  83. package/dist/components/SnkFormConfigManager.js +7 -6
  84. package/dist/components/SnkMessageBuilder.js +9 -13
  85. package/dist/components/dataunit-fetcher.js +84 -182
  86. package/dist/components/index2.js +198 -33
  87. package/dist/components/pesquisa-fetcher.js +164 -0
  88. package/dist/components/snk-actions-button2.js +4 -11
  89. package/dist/components/snk-application2.js +31 -9
  90. package/dist/components/snk-attach2.js +65 -41
  91. package/dist/components/snk-crud.js +110 -11
  92. package/dist/components/snk-data-exporter2.js +309 -85
  93. package/dist/components/snk-data-unit2.js +485 -216
  94. package/dist/components/snk-detail-view2.js +96 -14
  95. package/dist/components/snk-expression-item2.js +1 -1
  96. package/dist/components/snk-filter-bar2.js +6 -1
  97. package/dist/components/snk-form-config2.js +1 -1
  98. package/dist/components/snk-form-view2.js +72 -1
  99. package/dist/components/snk-form.js +53 -6
  100. package/dist/components/snk-grid2.js +168 -106
  101. package/dist/components/snk-personalized-filter2.js +1 -1
  102. package/dist/components/snk-simple-crud2.js +263 -25
  103. package/dist/components/snk-taskbar2.js +6 -5
  104. package/dist/esm/{ConfigStorage-86187da3.js → ConfigStorage-3806514e.js} +1 -0
  105. package/dist/esm/{SnkMultiSelectionListDataSource-6a879955.js → IExporterProvider-63a188b6.js} +93 -5
  106. package/dist/esm/RecordIDUtils-87d02110.js +41 -0
  107. package/dist/esm/{SnkFormConfigManager-f53f9f87.js → SnkFormConfigManager-31b24066.js} +8 -7
  108. package/dist/esm/{SnkMessageBuilder-0a4becdd.js → SnkMessageBuilder-571462fb.js} +9 -13
  109. package/dist/esm/{pesquisa-fetcher-c7ce8ee7.js → dataunit-fetcher-264191b2.js} +83 -181
  110. package/dist/esm/{index-0ece87a6.js → index-3aa4977a.js} +6 -1
  111. package/dist/esm/loader.js +1 -1
  112. package/dist/esm/pesquisa-fetcher-03c8f919.js +164 -0
  113. package/dist/esm/sankhyablocks.js +1 -1
  114. package/dist/esm/snk-actions-button_4.entry.js +5 -3
  115. package/dist/esm/snk-application.entry.js +34 -11
  116. package/dist/esm/snk-attach.entry.js +66 -41
  117. package/dist/esm/snk-crud.entry.js +101 -10
  118. package/dist/esm/snk-data-exporter.entry.js +316 -86
  119. package/dist/esm/snk-data-unit-f5cbe64b.js +687 -0
  120. package/dist/esm/snk-data-unit.entry.js +12 -2
  121. package/dist/esm/snk-detail-view.entry.js +50 -10
  122. package/dist/esm/snk-filter-bar.entry.js +6 -2
  123. package/dist/esm/snk-filter-modal-item.entry.js +1 -1
  124. package/dist/esm/snk-form-config.entry.js +1 -1
  125. package/dist/esm/snk-form-view.entry.js +67 -0
  126. package/dist/esm/snk-form.entry.js +52 -7
  127. package/dist/esm/snk-grid.entry.js +163 -106
  128. package/dist/esm/{snk-guides-viewer-1d95ebf2.js → snk-guides-viewer-8f6960a2.js} +43 -10
  129. package/dist/esm/snk-guides-viewer.entry.js +9 -7
  130. package/dist/esm/snk-personalized-filter.entry.js +1 -1
  131. package/dist/esm/snk-simple-crud.entry.js +256 -28
  132. package/dist/esm/snk-taskbar.entry.js +4 -3
  133. package/dist/esm/{taskbar-elements-2473c8ac.js → taskbar-elements-d59867f1.js} +3 -3
  134. package/dist/sankhyablocks/p-17def7cd.js +1 -0
  135. package/dist/sankhyablocks/p-1db45d26.entry.js +1 -0
  136. package/dist/sankhyablocks/p-28ee0972.js +1 -0
  137. package/dist/sankhyablocks/p-2a408684.js +1 -0
  138. package/dist/sankhyablocks/{p-eae7a817.entry.js → p-2c68b3ae.entry.js} +1 -1
  139. package/dist/sankhyablocks/p-30cf616e.js +1 -0
  140. package/dist/sankhyablocks/p-3a212712.js +1 -0
  141. package/dist/sankhyablocks/p-450c60e4.entry.js +1 -0
  142. package/dist/sankhyablocks/{p-a1d72395.entry.js → p-47db7e88.entry.js} +1 -1
  143. package/dist/sankhyablocks/p-4e5e1313.entry.js +1 -0
  144. package/dist/sankhyablocks/{p-aff76a53.js → p-52920496.js} +1 -1
  145. package/dist/sankhyablocks/p-62ba211a.entry.js +1 -0
  146. package/dist/sankhyablocks/p-6bb2f3e9.entry.js +1 -0
  147. package/dist/sankhyablocks/p-7505da04.entry.js +1 -0
  148. package/dist/sankhyablocks/p-7619bdb1.entry.js +11 -0
  149. package/dist/sankhyablocks/p-7a85fd49.entry.js +1 -0
  150. package/dist/sankhyablocks/{p-ae4fc9a9.js → p-7e7a7473.js} +1 -1
  151. package/dist/sankhyablocks/p-7ef9c55c.js +1 -0
  152. package/dist/sankhyablocks/p-80042dc6.entry.js +1 -0
  153. package/dist/sankhyablocks/p-8c59edd7.entry.js +1 -0
  154. package/dist/sankhyablocks/p-9606509c.entry.js +1 -0
  155. package/dist/sankhyablocks/p-9863d682.js +1 -0
  156. package/dist/sankhyablocks/p-ae93d46a.entry.js +1 -0
  157. package/dist/sankhyablocks/p-af8efd95.js +6 -0
  158. package/dist/sankhyablocks/p-d6e26ea8.entry.js +1 -0
  159. package/dist/sankhyablocks/p-f2809746.entry.js +1 -0
  160. package/dist/sankhyablocks/p-f4450320.entry.js +1 -0
  161. package/dist/sankhyablocks/p-fe79f83a.js +60 -0
  162. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  163. package/dist/types/components/snk-application/snk-application.d.ts +7 -3
  164. package/dist/types/components/snk-attach/snk-attach.d.ts +11 -9
  165. package/dist/types/components/snk-crud/interfaces/PropsCustomEditor.d.ts +4 -0
  166. package/dist/types/components/snk-crud/interfaces/PropsCustomRender.d.ts +4 -0
  167. package/dist/types/components/snk-crud/snk-crud.d.ts +45 -1
  168. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +23 -0
  169. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +28 -3
  170. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +24 -0
  171. package/dist/types/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.d.ts +14 -0
  172. package/dist/types/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.d.ts +12 -0
  173. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +24 -4
  174. package/dist/types/components/snk-data-exporter/interfaces/IExporterStrategy.d.ts +5 -0
  175. package/dist/types/components/snk-data-exporter/providers/ClientSideExporterProvider.d.ts +17 -0
  176. package/dist/types/components/snk-data-exporter/providers/ServerSideExporterProvider.d.ts +17 -0
  177. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +4 -1
  178. package/dist/types/components/snk-data-exporter/structure/ItemBuilder.d.ts +21 -0
  179. package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +77 -0
  180. package/dist/types/components/snk-data-exporter/utils/ParserExport.d.ts +4 -0
  181. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +3 -0
  182. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +66 -2
  183. package/dist/types/components/snk-data-unit/test/resources/metadataMock.d.ts +3 -0
  184. package/dist/types/components/snk-data-unit/test/resources/parentMetadataMock.d.ts +3 -0
  185. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +4 -0
  186. package/dist/types/components/snk-form/snk-form.d.ts +14 -0
  187. package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +2 -2
  188. package/dist/types/components/snk-grid/snk-grid.d.ts +46 -6
  189. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +62 -4
  190. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +1 -1
  191. package/dist/types/components.d.ts +261 -4
  192. package/dist/types/lib/@types/index.d.ts +5 -0
  193. package/dist/types/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.d.ts +11 -0
  194. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +2 -1
  195. package/dist/types/lib/dataUnit/ValueFormatter.d.ts +2 -0
  196. package/dist/types/lib/dataUnit/interfaces/InMemoryLoaderConfig.d.ts +3 -0
  197. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +2 -1
  198. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +1 -0
  199. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +1 -0
  200. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.d.ts +10 -0
  201. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.d.ts +7 -0
  202. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +6 -0
  203. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.d.ts +20 -0
  204. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +3 -0
  205. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IFetchDataExporterParams.d.ts +2 -1
  206. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +1 -0
  207. package/package.json +1 -1
  208. package/dist/cjs/snk-data-unit-41c29713.js +0 -462
  209. package/dist/collection/lib/http/data-fetcher/fetchers/fetchDataExporter/index.js +0 -34
  210. package/dist/components/index3.js +0 -199
  211. package/dist/esm/snk-data-unit-de1d140d.js +0 -460
  212. package/dist/sankhyablocks/p-032fe52e.js +0 -1
  213. package/dist/sankhyablocks/p-03dcc5ff.entry.js +0 -1
  214. package/dist/sankhyablocks/p-0594db5a.entry.js +0 -1
  215. package/dist/sankhyablocks/p-06e13db2.js +0 -1
  216. package/dist/sankhyablocks/p-07a61550.entry.js +0 -1
  217. package/dist/sankhyablocks/p-1403a4b6.entry.js +0 -1
  218. package/dist/sankhyablocks/p-14a08904.entry.js +0 -1
  219. package/dist/sankhyablocks/p-15802c59.entry.js +0 -1
  220. package/dist/sankhyablocks/p-235dc7b1.js +0 -65
  221. package/dist/sankhyablocks/p-32556aa6.js +0 -1
  222. package/dist/sankhyablocks/p-38289a55.js +0 -1
  223. package/dist/sankhyablocks/p-3c632d48.js +0 -1
  224. package/dist/sankhyablocks/p-3f833983.entry.js +0 -1
  225. package/dist/sankhyablocks/p-52c8e589.js +0 -1
  226. package/dist/sankhyablocks/p-5e1502b6.entry.js +0 -11
  227. package/dist/sankhyablocks/p-74d349c3.entry.js +0 -1
  228. package/dist/sankhyablocks/p-93167e28.entry.js +0 -1
  229. package/dist/sankhyablocks/p-add17f6a.entry.js +0 -1
  230. package/dist/sankhyablocks/p-bd47dd16.entry.js +0 -1
  231. package/dist/sankhyablocks/p-c1f88236.entry.js +0 -1
  232. package/dist/sankhyablocks/p-ccdd5332.entry.js +0 -1
  233. package/dist/sankhyablocks/p-ee9536bc.entry.js +0 -1
  234. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/index.d.ts +0 -3
@@ -0,0 +1,97 @@
1
+ import { UserInterface } from "@sankhyalabs/core";
2
+ import { DataFetcher } from "../../../lib";
3
+ import { getOptionKey, getVisibleColumns } from "../utils/ParserExport";
4
+ import { DataExporterType } from "../../../lib/@types";
5
+ export default class ClientSideExporterStrategy {
6
+ constructor(provider) {
7
+ this._provider = provider;
8
+ }
9
+ async getParsedColumns() {
10
+ const columns = await this._provider.getColumnsMetadata();
11
+ const visibleColumns = getVisibleColumns(columns);
12
+ return visibleColumns;
13
+ }
14
+ async executeExport(resolveProps) {
15
+ const { methodName, titleGrid } = resolveProps;
16
+ const records = await this._provider.getRecords();
17
+ const columns = [DataExporterType.EXPORT_TO_PDF, DataExporterType.EXPORT_PAGE_TO_PDF, DataExporterType.EXPORT_PDF_TO_EMAIL, DataExporterType.EXPORT_ALL_RECORDS_TO_PDF].includes(getOptionKey(resolveProps === null || resolveProps === void 0 ? void 0 : resolveProps.exportOption)) ? await this.getParsedColumns() : await this._provider.getColumnsMetadata();
18
+ const [serviceName, processor] = this.getExecutor(methodName);
19
+ const payload = {
20
+ serviceName,
21
+ requestBody: {
22
+ grid: {
23
+ titleGrid,
24
+ columns: this.buildColumnsObject(columns),
25
+ rows: this.buildRowsObject(columns, records),
26
+ customOptions: { xlsxExtension: false }
27
+ }
28
+ }
29
+ };
30
+ return new Promise((resolve, reject) => {
31
+ DataFetcher.get()
32
+ .callServiceBroker(serviceName, payload)
33
+ .then(result => resolve(processor(result)))
34
+ .catch(error => reject(error));
35
+ });
36
+ }
37
+ getExecutor(methodName) {
38
+ if (methodName === "exportToPDF") {
39
+ return [
40
+ "GridPDFBuilderSP.buildPDFFromJson",
41
+ responseBody => ({
42
+ fileSessionKey: responseBody.chavePDF.valor,
43
+ canPrint: responseBody.permiteImprimir.valor === "S",
44
+ canExport: responseBody.permiteExportar.valor === "S",
45
+ canSendEmail: responseBody.canSendEmail.valor === "S",
46
+ useAppPrint: true
47
+ })
48
+ ];
49
+ }
50
+ return [
51
+ "GridXLSBuilderSP.buildXLSFromJson",
52
+ responseBody => ({
53
+ fileSessionKey: responseBody.chaveXLS.valor,
54
+ canPrint: false,
55
+ canExport: false,
56
+ useAppPrint: false,
57
+ canSendEmail: false
58
+ })
59
+ ];
60
+ }
61
+ buildColumnsObject(columns) {
62
+ return {
63
+ column: columns.map((column, index) => {
64
+ const { label, id, width, userInterface } = column;
65
+ return Object.assign({ index: index + 1, id,
66
+ label,
67
+ width, presentationType: "P" }, (TYPE_MAP[userInterface] || { type: "S", align: "left" }));
68
+ })
69
+ };
70
+ }
71
+ buildRowsObject(columns, records) {
72
+ return {
73
+ row: records.map(rawRecord => {
74
+ const record = {};
75
+ columns.forEach((column, index) => record["c" + (index + 1)] = { $: this.formatValue(rawRecord, column) });
76
+ return record;
77
+ })
78
+ };
79
+ }
80
+ formatValue(record, column) {
81
+ if (this._provider.formatValue != undefined) {
82
+ return this._provider.formatValue(record, column);
83
+ }
84
+ return record[column.id] || "";
85
+ }
86
+ }
87
+ class FormatedRecord {
88
+ }
89
+ const TYPE_MAP = {
90
+ [UserInterface.DATE]: { type: "D", align: "center" },
91
+ [UserInterface.DATETIME]: { type: "H", align: "center" },
92
+ [UserInterface.TIME]: { type: "I", align: "right" },
93
+ [UserInterface.ELAPSEDTIME]: { type: "I", align: "right" },
94
+ [UserInterface.DECIMALNUMBER]: { type: "F", align: "right" },
95
+ [UserInterface.INTEGERNUMBER]: { type: "I", align: "right" },
96
+ [UserInterface.SEARCH]: { type: "S", align: "right" }
97
+ };
@@ -0,0 +1,74 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s)
4
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { ApplicationContext, ObjectUtils } from "@sankhyalabs/core";
14
+ import { DataFetcher } from '../../../lib/http/data-fetcher/DataFetcher';
15
+ import { DataExporterOption, DataExporterType } from "../../../lib/@types";
16
+ import { getOptionKey, getVisibleColumns } from "../utils/ParserExport";
17
+ export default class ServerSideExporterStrategy {
18
+ constructor(provider) {
19
+ this._provider = provider;
20
+ }
21
+ async getParsedColumns() {
22
+ const columns = await this._provider.getColumnsMetadata();
23
+ const visibleColumns = getVisibleColumns(columns);
24
+ return visibleColumns;
25
+ }
26
+ async getParams(resolveProps) {
27
+ var _a, _b, _c, _d, _e, _f;
28
+ const filters = (_b = (_a = this._provider).getFilters) === null || _b === void 0 ? void 0 : _b.call(_a);
29
+ const columns = [DataExporterType.EXPORT_TO_PDF, DataExporterType.EXPORT_PAGE_TO_PDF, DataExporterType.EXPORT_PDF_TO_EMAIL, DataExporterType.EXPORT_ALL_RECORDS_TO_PDF].includes(getOptionKey(resolveProps === null || resolveProps === void 0 ? void 0 : resolveProps.exportOption)) ? await this.getParsedColumns() : await this._provider.getColumnsMetadata();
30
+ const sort = (_d = (_c = this._provider).getOrders) === null || _d === void 0 ? void 0 : _d.call(_c);
31
+ const resourceURI = (_f = (_e = this._provider).getResourceURI) === null || _f === void 0 ? void 0 : _f.call(_e);
32
+ const selectedIDs = this._provider.getSelectedIDs();
33
+ const option = resolveProps.exportOption;
34
+ const currentPageOptions = [
35
+ DataExporterOption.EXPORT_PAGE_TO_PDF,
36
+ DataExporterOption.EXPORT_PAGE_TO_XLS
37
+ ];
38
+ delete resolveProps.exportOption;
39
+ let params = Object.assign({ filters,
40
+ columns,
41
+ sort,
42
+ resourceURI, selectedIDs: selectedIDs.slice(0, this._provider.getExportLimit()) }, resolveProps);
43
+ if (currentPageOptions.includes(option) || resolveProps.type == "page") {
44
+ const offset = this._provider.getOffset();
45
+ const limit = this._provider.getPageSize();
46
+ params = Object.assign(Object.assign({}, params), { offset,
47
+ limit, selectedIDs: [] });
48
+ }
49
+ else if (resolveProps.type == "all") {
50
+ params = Object.assign(Object.assign({}, params), { offset: 0, limit: this._provider.getExportLimit(), selectedIDs: [] });
51
+ }
52
+ return Promise.resolve(params);
53
+ }
54
+ async executeExport(resolveProps) {
55
+ const _a = await this.getParams(resolveProps), { methodName } = _a, requestBody = __rest(_a, ["methodName"]);
56
+ const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
57
+ const serviceName = `${application.getModuleName()}@DataExporterSPBean.${methodName}`;
58
+ const payload = { serviceName, requestBody };
59
+ return new Promise((resolve, reject) => {
60
+ DataFetcher.get()
61
+ .callServiceBroker(serviceName, ObjectUtils.objectToString(payload))
62
+ .then(result => resolve(this.getFormatResponse(result)))
63
+ .catch(error => reject(error));
64
+ });
65
+ }
66
+ getFormatResponse(result) {
67
+ var _a;
68
+ const response = (_a = result === null || result === void 0 ? void 0 : result.json) === null || _a === void 0 ? void 0 : _a.$;
69
+ if (response == undefined) {
70
+ return;
71
+ }
72
+ return ObjectUtils.stringToObject(response);
73
+ }
74
+ }
@@ -1 +1,54 @@
1
- export {};
1
+ import { UserInterface } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
2
+ import { DataType } from '@sankhyalabs/core';
3
+ export class CommonsExporter {
4
+ constructor(dataUnit, grid) {
5
+ this.dataUnit = dataUnit;
6
+ this.grid = grid;
7
+ }
8
+ async getColumnsMetadata() {
9
+ var _a;
10
+ this.columnsState = await ((_a = this.grid) === null || _a === void 0 ? void 0 : _a.getColumnsState()) || [];
11
+ return await this.buildColumnsMetadata(this.columnsState);
12
+ }
13
+ getColumnsState() {
14
+ return this.columnsState;
15
+ }
16
+ async buildColumnsMetadata(gridColumns) {
17
+ var _a, _b;
18
+ const columnsMetadata = [];
19
+ for (const column of gridColumns) {
20
+ /**
21
+ * TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
22
+ */
23
+ if (column.hidden && column.name !== "RECDESP") {
24
+ continue;
25
+ }
26
+ const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
27
+ const customFormatter = await this.grid.getCustomValueFormatter(column.name);
28
+ const columnData = {
29
+ label: column.label,
30
+ id: column.name,
31
+ width: column.width,
32
+ type: fieldData === null || fieldData === void 0 ? void 0 : fieldData.dataType,
33
+ userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface,
34
+ customFormatter
35
+ };
36
+ columnsMetadata.push(columnData);
37
+ if (((_b = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _b === void 0 ? void 0 : _b.DESCRIPTIONFIELD) != undefined) {
38
+ const mergedFrom = fieldData.properties.mergedFrom;
39
+ const descriptionField = `${fieldData.properties.ENTITYNAME}.${fieldData.properties.DESCRIPTIONFIELD}`;
40
+ const descriptionColumn = {
41
+ label: fieldData.properties.DESCRIPTIONENTITY,
42
+ id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
43
+ width: column.width,
44
+ type: DataType.TEXT,
45
+ userInterface: UserInterface.LONGTEXT,
46
+ descriptionFrom: fieldData.name
47
+ };
48
+ columnsMetadata.push(descriptionColumn);
49
+ }
50
+ }
51
+ ;
52
+ return columnsMetadata || [];
53
+ }
54
+ }
@@ -0,0 +1,58 @@
1
+ import { CommonsExporter } from "../interfaces/IExporterProvider";
2
+ import { UserInterface } from "@sankhyalabs/core";
3
+ import { getSelectedIDs } from "../utils/RecordIDUtils";
4
+ import { DataExporterOption } from "../../../lib/@types";
5
+ export default class ClientSideExporterProvider extends CommonsExporter {
6
+ getSelectedNumber() {
7
+ return this.dataUnit.getSelectionInfo().length;
8
+ }
9
+ getTotalRecords() {
10
+ var _a, _b, _c;
11
+ const { total } = ((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getPaginationInfo()) || {};
12
+ return total !== null && total !== void 0 ? total : (_c = (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length;
13
+ }
14
+ getSelectedIDs() {
15
+ return getSelectedIDs(this.dataUnit);
16
+ }
17
+ getRecordID() {
18
+ var _a, _b, _c;
19
+ return (_c = (_b = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.records) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.__record__id__;
20
+ }
21
+ async getRecords() {
22
+ if (this.dataUnit.records.length === 0) {
23
+ return Promise.resolve([]);
24
+ }
25
+ const selectionInfo = this.dataUnit.getSelectionInfo();
26
+ const records = selectionInfo.isEmpty() || selectionInfo.isAllRecords() ? await selectionInfo.getAllRecords() : selectionInfo.records;
27
+ return Promise.resolve(records == undefined ? [] : records);
28
+ }
29
+ getHiddenOptions() {
30
+ return [
31
+ DataExporterOption.EXPORT_BY_EMAIL,
32
+ DataExporterOption.EXPORT_PDF_TO_EMAIL,
33
+ DataExporterOption.EXPORT_XLS_TO_EMAIL,
34
+ DataExporterOption.EXPORT_PAGE_TO_PDF,
35
+ DataExporterOption.EXPORT_PAGE_TO_XLS
36
+ ];
37
+ }
38
+ formatValue(record, column) {
39
+ const { id, descriptionFrom } = column;
40
+ const value = record[descriptionFrom || id];
41
+ if (value == undefined) {
42
+ return "";
43
+ }
44
+ if (descriptionFrom != undefined) {
45
+ return value.label;
46
+ }
47
+ const fieldDescriptor = this.dataUnit.getField(id);
48
+ if (fieldDescriptor.userInterface === UserInterface.SEARCH) {
49
+ return value.value;
50
+ }
51
+ if (column.customFormatter) {
52
+ const ezGridColumn = this.getColumnsState().find(columnState => column.id === columnState.name);
53
+ const formattedValue = column.customFormatter.format(value, ezGridColumn, record.__record__id__);
54
+ return formattedValue;
55
+ }
56
+ return this.dataUnit.getFormattedValue(id, value);
57
+ }
58
+ }
@@ -0,0 +1,55 @@
1
+ import { CommonsExporter } from "../interfaces/IExporterProvider";
2
+ import { getSelectedIDs } from "../utils/RecordIDUtils";
3
+ export default class ServerSideExporterProvider extends CommonsExporter {
4
+ getFilters() {
5
+ var _a;
6
+ return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getAppliedFilters();
7
+ }
8
+ getOrders() {
9
+ var _a;
10
+ return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getSort();
11
+ }
12
+ getResourceURI() {
13
+ var _a;
14
+ return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.name;
15
+ }
16
+ getSelectedNumber() {
17
+ return this.dataUnit.getSelectionInfo().length;
18
+ }
19
+ getTotalRecords() {
20
+ var _a, _b, _c;
21
+ const { total } = ((_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getPaginationInfo()) || {};
22
+ return total !== null && total !== void 0 ? total : (_c = (_b = this.dataUnit) === null || _b === void 0 ? void 0 : _b.records) === null || _c === void 0 ? void 0 : _c.length;
23
+ }
24
+ getSelectedIDs() {
25
+ return getSelectedIDs(this.dataUnit);
26
+ }
27
+ getOffset() {
28
+ return this.getExporterOffset(this.getPaginationInfo());
29
+ }
30
+ getPageSize() {
31
+ var _a;
32
+ return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.pageSize;
33
+ }
34
+ getExportLimit() {
35
+ return 5000;
36
+ }
37
+ getRecordID() {
38
+ var _a, _b, _c;
39
+ return (_c = (_b = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.records) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.__record__id__;
40
+ }
41
+ getPaginationInfo() {
42
+ var _a;
43
+ return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getPaginationInfo();
44
+ }
45
+ getExporterOffset(paginationInfo) {
46
+ if (paginationInfo == undefined) {
47
+ return;
48
+ }
49
+ const offset = paginationInfo.firstRecord;
50
+ if (offset > 0) {
51
+ return (offset - 1);
52
+ }
53
+ return offset;
54
+ }
55
+ }
@@ -4,17 +4,15 @@ import { ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/
4
4
  import { ItemBuilder } from './structure/ItemBuilder';
5
5
  import { DataExporterFormat, DataExporterOption, DataExporterType } from '../../lib/@types';
6
6
  import { REPORT_LAUNCHER_RESOURCE_ID } from '../../lib/utils/constants';
7
- import fetchDataExporter from '../../lib/http/data-fetcher/fetchers/fetchDataExporter';
8
7
  import fileViewer from '../../lib/utils/fileViewer';
9
8
  import getPersonalizedReports from '../../lib/http/data-fetcher/fetchers/fetchDataExporter/personalized-reports-fetcher';
10
9
  import { SnkDataUnit } from '../snk-data-unit/snk-data-unit';
11
- const LIMIT_PER_EXPORT = 5000;
10
+ import ServerSideExporterStrategy from './exporter-strategy/ServerSideExporterStrategy';
11
+ import ClientSideExporterStrategy from './exporter-strategy/ClientSideExporterStrategy';
12
12
  export class SnkDataExporter {
13
13
  constructor() {
14
14
  this._selectedNumber = 0;
15
15
  this._customPrefix = "$custom$";
16
- this._items = [];
17
- this._showDropdown = false;
18
16
  this._releasedToExport = [
19
17
  DataExporterOption.EXPORT_TO_PDF,
20
18
  DataExporterOption.EXPORT_TO_XLS,
@@ -22,8 +20,12 @@ export class SnkDataExporter {
22
20
  DataExporterOption.EXPORT_PDF_TO_EMAIL,
23
21
  DataExporterOption.EXPORT_XLS_TO_EMAIL,
24
22
  DataExporterOption.EXPORT_PAGE_TO_PDF,
25
- DataExporterOption.EXPORT_PAGE_TO_XLS
23
+ DataExporterOption.EXPORT_PAGE_TO_XLS,
24
+ DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF,
25
+ DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS,
26
26
  ];
27
+ this._items = [];
28
+ this._showDropdown = false;
27
29
  this.provider = null;
28
30
  this.messagesBuilder = undefined;
29
31
  }
@@ -94,31 +96,7 @@ export class SnkDataExporter {
94
96
  if (this.provider == undefined || resolveProps == undefined || callbackResolver == undefined) {
95
97
  return;
96
98
  }
97
- const filters = this.provider.getFilters();
98
- const columns = await this.provider.getColumnsMetadata();
99
- const sort = this.provider.getOrders();
100
- const resourceURI = this.provider.getResourceURI();
101
- const selectedIDs = this.provider.getSelectedIDs();
102
- const option = resolveProps.exportOption;
103
- const currentPageOptions = [
104
- DataExporterOption.EXPORT_PAGE_TO_PDF,
105
- DataExporterOption.EXPORT_PAGE_TO_XLS
106
- ];
107
- delete resolveProps.exportOption;
108
- let params = Object.assign({ filters,
109
- columns,
110
- sort,
111
- resourceURI, selectedIDs: selectedIDs.slice(0, LIMIT_PER_EXPORT) }, resolveProps);
112
- if (currentPageOptions.includes(option) || resolveProps.type == "page") {
113
- const offset = this.provider.getOffset();
114
- const limit = this.provider.getLimit();
115
- params = Object.assign(Object.assign({}, params), { offset,
116
- limit, selectedIDs: [] });
117
- }
118
- else if (resolveProps.type == "all") {
119
- params = Object.assign(Object.assign({}, params), { offset: 0, limit: LIMIT_PER_EXPORT, selectedIDs: [] });
120
- }
121
- fetchDataExporter(params)
99
+ this.getExporterStrategy().executeExport(resolveProps)
122
100
  .then((result) => callbackResolver(result))
123
101
  .catch((exception) => {
124
102
  console.error(exception);
@@ -126,14 +104,26 @@ export class SnkDataExporter {
126
104
  ApplicationUtils.error(title || this.getMessage("snkDataExporter.message.exportError"), statusMessage || message || this.getMessage("snkDataExporter.message.unknownFailure"));
127
105
  });
128
106
  }
107
+ getExporterStrategy() {
108
+ return this.provider.getRecords == undefined ? new ServerSideExporterStrategy(this.provider) : new ClientSideExporterStrategy(this.provider);
109
+ }
129
110
  getOptionKey(option) {
130
111
  return Object.keys(DataExporterOption)
131
112
  .find((key) => {
132
113
  return DataExporterOption[key] === option;
133
114
  });
134
115
  }
135
- dispatchExporter(option) {
136
- var _a;
116
+ getExportType(option) {
117
+ if (option === DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF || option === DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS) {
118
+ return 'all';
119
+ }
120
+ if (option === DataExporterOption.EXPORT_PAGE_TO_PDF || option === DataExporterOption.EXPORT_PAGE_TO_XLS) {
121
+ return 'page';
122
+ }
123
+ return 'selection';
124
+ }
125
+ async dispatchExporter(option) {
126
+ var _a, _b, _c;
137
127
  const optionKey = this.getOptionKey(option);
138
128
  const fileType = (_a = DataExporterType[optionKey]) !== null && _a !== void 0 ? _a : DataExporterType.EXPORT_TO_PDF;
139
129
  const isDownload = DataExporterType[optionKey] === DataExporterType.EXPORT_TO_XLS;
@@ -142,15 +132,21 @@ export class SnkDataExporter {
142
132
  fileName: this._appLabel,
143
133
  titleGrid: this._appLabel,
144
134
  exportOption: option,
145
- limit: LIMIT_PER_EXPORT
135
+ limit: (_c = (_b = this.provider) === null || _b === void 0 ? void 0 : _b.getExportLimit) === null || _c === void 0 ? void 0 : _c.call(_b),
136
+ type: this.getExportType(option),
146
137
  };
147
- this.resolveExporter(params, (response) => {
148
- fileViewer(Object.assign(Object.assign({}, response), { fileType,
149
- isDownload }));
138
+ await this.resolveExporter(params, (response) => {
139
+ if (response.canExport || fileType === DataExporterType.EXPORT_TO_PDF) {
140
+ fileViewer(Object.assign(Object.assign({}, response), { fileType,
141
+ isDownload }));
142
+ }
143
+ else {
144
+ ApplicationUtils.error(this.getMessage("snkDataExporter.title.permission"), this.getMessage("snkDataExporter.message.exportPermission"));
145
+ }
150
146
  });
151
147
  }
152
148
  async processExporter(evt) {
153
- var _a, _b, _c, _d;
149
+ var _a, _b, _c, _d, _e, _f, _g;
154
150
  const item = evt === null || evt === void 0 ? void 0 : evt.detail;
155
151
  const exportCurrentPageOptions = [DataExporterOption.EXPORT_PAGE_TO_PDF, DataExporterOption.EXPORT_PAGE_TO_XLS];
156
152
  const isCustomReport = (_a = item === null || item === void 0 ? void 0 : item.id) === null || _a === void 0 ? void 0 : _a.includes(this._customPrefix);
@@ -158,18 +154,19 @@ export class SnkDataExporter {
158
154
  return;
159
155
  const selectedRecords = (_b = this.provider) === null || _b === void 0 ? void 0 : _b.getSelectedIDs();
160
156
  const totalRecords = (_c = this.provider) === null || _c === void 0 ? void 0 : _c.getTotalRecords();
161
- const totalPerPage = (_d = this.provider) === null || _d === void 0 ? void 0 : _d.getLimit();
157
+ const totalPerPage = (_e = (_d = this.provider) === null || _d === void 0 ? void 0 : _d.getPageSize) === null || _e === void 0 ? void 0 : _e.call(_d);
158
+ const exportLimit = (_g = (_f = this.provider) === null || _f === void 0 ? void 0 : _f.getExportLimit) === null || _g === void 0 ? void 0 : _g.call(_f);
162
159
  let limitExceeded = false;
163
- if ((exportCurrentPageOptions.includes(item === null || item === void 0 ? void 0 : item.id) && totalPerPage <= LIMIT_PER_EXPORT) || isCustomReport) {
160
+ if ((exportCurrentPageOptions.includes(item === null || item === void 0 ? void 0 : item.id) && totalPerPage <= exportLimit) || isCustomReport) {
164
161
  limitExceeded = false;
165
162
  }
166
163
  else if (selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) {
167
- limitExceeded = selectedRecords.length > LIMIT_PER_EXPORT;
164
+ limitExceeded = selectedRecords.length > exportLimit;
168
165
  }
169
- else if (totalRecords > LIMIT_PER_EXPORT)
166
+ else if (totalRecords > exportLimit)
170
167
  limitExceeded = true;
171
168
  if (limitExceeded) {
172
- const formattedLimit = LIMIT_PER_EXPORT.toLocaleString('pt-BR', { minimumFractionDigits: 0 });
169
+ const formattedLimit = exportLimit.toLocaleString('pt-BR', { minimumFractionDigits: 0 });
173
170
  const limitModalMessages = {
174
171
  title: this.getMessage("snkDataExporter.limitExceeded.title"),
175
172
  description: `
@@ -194,7 +191,7 @@ export class SnkDataExporter {
194
191
  this._showDropdown = false;
195
192
  return;
196
193
  }
197
- if (!this._releasedToExport.includes(item === null || item === void 0 ? void 0 : item.id)) {
194
+ if (!this.getFilteredReleasedToExport().includes(item === null || item === void 0 ? void 0 : item.id)) {
198
195
  return;
199
196
  }
200
197
  if (item.id === DataExporterOption.EXPORT_BY_EMAIL) {
@@ -205,9 +202,20 @@ export class SnkDataExporter {
205
202
  }
206
203
  this._showDropdown = false;
207
204
  }
205
+ getFilteredReleasedToExport() {
206
+ var _a, _b;
207
+ if (this.provider == undefined) {
208
+ return this._releasedToExport;
209
+ }
210
+ const hiddenOptions = (_b = (_a = this.provider).getHiddenOptions) === null || _b === void 0 ? void 0 : _b.call(_a);
211
+ if (hiddenOptions == undefined) {
212
+ return this._releasedToExport;
213
+ }
214
+ return this._releasedToExport.filter(option => !hiddenOptions.includes(option));
215
+ }
208
216
  loadItems() {
209
217
  const items = [];
210
- this._releasedToExport
218
+ this.getFilteredReleasedToExport()
211
219
  .forEach((option) => {
212
220
  var _a;
213
221
  (_a = this._itemBuilder) === null || _a === void 0 ? void 0 : _a.setExportOption(option, items);
@@ -215,8 +223,8 @@ export class SnkDataExporter {
215
223
  this.loadPersonalizedItems(items);
216
224
  }
217
225
  async loadPersonalizedItems(items) {
218
- var _a;
219
- const recordID = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getRecordID();
226
+ var _a, _b;
227
+ const recordID = (_b = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getRecordID) === null || _b === void 0 ? void 0 : _b.call(_a);
220
228
  if (recordID == undefined) {
221
229
  this._items = items;
222
230
  return;
@@ -232,10 +240,10 @@ export class SnkDataExporter {
232
240
  this._items = items;
233
241
  }
234
242
  openPersonalizedReports(option) {
235
- var _a;
243
+ var _a, _b;
236
244
  const pkObject = [];
237
245
  const appId = (option === null || option === void 0 ? void 0 : option.replace(this._customPrefix, "")) || "";
238
- (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getSelectedIDs().forEach(({ name, type, value }, index) => {
246
+ (_b = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getSelectedIDs) === null || _b === void 0 ? void 0 : _b.call(_a).forEach(({ name, type, value }, index) => {
239
247
  const fields = {};
240
248
  fields['fields'] = [];
241
249
  // Se for o primeiro elemento, adiciona essa primeira PK
@@ -260,8 +268,8 @@ export class SnkDataExporter {
260
268
  }
261
269
  }
262
270
  loadDropdown() {
263
- var _a, _b;
264
- this._selectedNumber = ((_b = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getSelectedIDs()) === null || _b === void 0 ? void 0 : _b.length) || 0;
271
+ var _a;
272
+ this._selectedNumber = ((_a = this.provider) === null || _a === void 0 ? void 0 : _a.getSelectedNumber()) || 0;
265
273
  this._itemBuilder = new ItemBuilder(this.getMessage.bind(this), this._selectedNumber);
266
274
  this.loadItems();
267
275
  }
@@ -371,8 +379,7 @@ export class SnkDataExporter {
371
379
  static get states() {
372
380
  return {
373
381
  "_items": {},
374
- "_showDropdown": {},
375
- "_releasedToExport": {}
382
+ "_showDropdown": {}
376
383
  };
377
384
  }
378
385
  static get elementRef() { return "_element"; }
@@ -19,6 +19,9 @@ export class ItemBuilder {
19
19
  items.push(this.getExportToXLS(groupName));
20
20
  }
21
21
  this.setExportCurrentPage(option, items);
22
+ if (this._selectedNumber > 0) {
23
+ this.setExportAllRecords(option, items);
24
+ }
22
25
  this.setExportByEmail(option, items);
23
26
  }
24
27
  /**
@@ -49,6 +52,34 @@ export class ItemBuilder {
49
52
  }
50
53
  }
51
54
  }
55
+ /**
56
+ * Método responsável por inserir os itens de exportação para todos os registros.
57
+ * @param option - Nome da opção que será inserida no array.
58
+ * @param items - Array que será alimentado com as opções permitidas.
59
+ */
60
+ setExportAllRecords(option, items) {
61
+ var _a;
62
+ const pageOptions = [DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF, DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS];
63
+ if (option === DataExporterOption.EXPORT_ALL_RECORDS) {
64
+ items.push(this.getAllRecords());
65
+ }
66
+ if (pageOptions.includes(option)) {
67
+ let item = items.find((item) => item.id === DataExporterOption.EXPORT_ALL_RECORDS);
68
+ if (item == undefined) {
69
+ items.push(this.getAllRecords());
70
+ item = items.find((item) => item.id === DataExporterOption.EXPORT_ALL_RECORDS);
71
+ }
72
+ if (!((_a = item.children) === null || _a === void 0 ? void 0 : _a.length)) {
73
+ item.children = [];
74
+ }
75
+ if (option === DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF) {
76
+ item.children.push(this.getExportAllRecordsToPDF());
77
+ }
78
+ if (option === DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS) {
79
+ item.children.push(this.getExportAllRecordsToXLS());
80
+ }
81
+ }
82
+ }
52
83
  /**
53
84
  * Método responsável por inserir os itens de exportação por e-mail.
54
85
  * @param option - Nome da opção que será inserida no array.
@@ -94,6 +125,17 @@ export class ItemBuilder {
94
125
  group: this._getMessage("snkDataExporter.group.custom")
95
126
  };
96
127
  }
128
+ /**
129
+ * Método responsável por capturar o objeto com todos os dados de exportação.
130
+ * @returns Retorna o objeto com todos os dados de exportação.
131
+ */
132
+ getAllRecords() {
133
+ return {
134
+ id: DataExporterOption.EXPORT_ALL_RECORDS,
135
+ label: this._getMessage("snkDataExporter.label.allRecords"),
136
+ group: this._getMessage("snkDataExporter.group.custom")
137
+ };
138
+ }
97
139
  /**
98
140
  * Método responsável por capturar o objeto com os dados de exportação personalizada em PDF.
99
141
  * @returns Retorna o objeto com os dados de exportação personalizada em PDF.
@@ -114,6 +156,26 @@ export class ItemBuilder {
114
156
  label: `${this._getMessage("snkDataExporter.label.spreadsheet")} (.xlsx)`
115
157
  };
116
158
  }
159
+ /**
160
+ * Método responsável por capturar o objeto com todos os dados de exportação em PDF.
161
+ * @returns Retorna o objeto com todos os dados de exportação em PDF.
162
+ */
163
+ getExportAllRecordsToPDF() {
164
+ return {
165
+ id: DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF,
166
+ label: "PDF (.pdf)"
167
+ };
168
+ }
169
+ /**
170
+ * Método responsável por capturar o objeto com todos os dados de exportação em XLS.
171
+ * @returns Retorna o objeto com todos os dados de exportação em XLS.
172
+ */
173
+ getExportAllRecordsToXLS() {
174
+ return {
175
+ id: DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS,
176
+ label: `${this._getMessage("snkDataExporter.label.spreadsheet")} (.xlsx)`
177
+ };
178
+ }
117
179
  /**
118
180
  * Método responsável por capturar o objeto com os dados de exportação por e-mail.
119
181
  * @returns Retorna o objeto com os dados de exportação por e-mail.