@sankhyalabs/sankhyablocks 8.15.1 → 8.16.0-dev.2

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 (216) hide show
  1. package/dist/cjs/{SnkMultiSelectionListDataSource-303e85d1.js → IExporterProvider-9479f618.js} +94 -4
  2. package/dist/cjs/RecordIDUtils-3735135c.js +43 -0
  3. package/dist/cjs/{SnkFormConfigManager-f9dc0d28.js → SnkFormConfigManager-1b13bacd.js} +6 -3
  4. package/dist/cjs/{SnkMessageBuilder-66aa2557.js → SnkMessageBuilder-722b104e.js} +8 -12
  5. package/dist/cjs/{pesquisa-fetcher-213797ec.js → dataunit-fetcher-0c7106a0.js} +88 -180
  6. package/dist/cjs/{index-0922807b.js → index-1dfc7a6e.js} +5 -0
  7. package/dist/cjs/loader.cjs.js +1 -1
  8. package/dist/cjs/pesquisa-fetcher-680e198f.js +166 -0
  9. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  10. package/dist/cjs/snk-actions-button_4.cjs.entry.js +4 -2
  11. package/dist/cjs/snk-application.cjs.entry.js +34 -11
  12. package/dist/cjs/snk-attach.cjs.entry.js +71 -46
  13. package/dist/cjs/snk-crud.cjs.entry.js +96 -10
  14. package/dist/cjs/snk-data-exporter.cjs.entry.js +315 -85
  15. package/dist/cjs/snk-data-unit-16791a2f.js +679 -0
  16. package/dist/cjs/snk-data-unit.cjs.entry.js +12 -2
  17. package/dist/cjs/snk-detail-view.cjs.entry.js +48 -7
  18. package/dist/cjs/snk-filter-bar.cjs.entry.js +5 -1
  19. package/dist/cjs/snk-form-view.cjs.entry.js +67 -0
  20. package/dist/cjs/snk-form.cjs.entry.js +51 -6
  21. package/dist/cjs/snk-grid.cjs.entry.js +164 -107
  22. package/dist/cjs/{snk-guides-viewer-4b6ecda8.js → snk-guides-viewer-d82746e8.js} +36 -8
  23. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -6
  24. package/dist/cjs/snk-simple-crud.cjs.entry.js +264 -37
  25. package/dist/cjs/snk-taskbar.cjs.entry.js +4 -3
  26. package/dist/cjs/{taskbar-elements-3ecd1278.js → taskbar-elements-9ad1f9c0.js} +3 -3
  27. package/dist/collection/collection-manifest.json +1 -1
  28. package/dist/collection/components/snk-application/snk-application.js +35 -11
  29. package/dist/collection/components/snk-attach/snk-attach.js +67 -44
  30. package/dist/collection/components/snk-crud/interfaces/PropsCustomEditor.js +1 -0
  31. package/dist/collection/components/snk-crud/interfaces/PropsCustomRender.js +1 -0
  32. package/dist/collection/components/snk-crud/snk-crud.js +249 -7
  33. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +135 -0
  34. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +161 -0
  35. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +112 -5
  36. package/dist/collection/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.js +97 -0
  37. package/dist/collection/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.js +74 -0
  38. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +54 -1
  39. package/dist/collection/components/snk-data-exporter/interfaces/IExporterStrategy.js +1 -0
  40. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +58 -0
  41. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +55 -0
  42. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +59 -52
  43. package/dist/collection/components/snk-data-exporter/structure/ItemBuilder.js +62 -0
  44. package/dist/collection/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.js +88 -0
  45. package/dist/collection/components/snk-data-exporter/utils/ParserExport.js +20 -0
  46. package/dist/collection/components/snk-data-exporter/utils/RecordIDUtils.js +38 -0
  47. package/dist/collection/components/snk-data-unit/snk-data-unit.js +507 -214
  48. package/dist/collection/components/snk-data-unit/test/resources/metadataMock.js +24 -0
  49. package/dist/collection/components/snk-data-unit/test/resources/parentMetadataMock.js +18 -0
  50. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +22 -1
  51. package/dist/collection/components/snk-form/snk-form.js +102 -5
  52. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +6 -3
  53. package/dist/collection/components/snk-grid/snk-grid.js +240 -101
  54. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +386 -18
  55. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +2 -2
  56. package/dist/collection/components/snk-taskbar/snk-taskbar.js +2 -1
  57. package/dist/collection/lib/@types/index.js +5 -0
  58. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +35 -0
  59. package/dist/collection/lib/dataUnit/InMemoryLoader.js +8 -3
  60. package/dist/collection/lib/dataUnit/ValueFormatter.js +4 -0
  61. package/dist/collection/lib/dataUnit/interfaces/InMemoryLoaderConfig.js +1 -0
  62. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +3 -0
  63. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +4 -0
  64. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +11 -13
  65. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +1 -0
  66. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.js +1 -0
  67. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.js +1 -0
  68. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +53 -4
  69. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.js +22 -0
  70. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +4 -4
  71. package/dist/collection/lib/message/SnkMessageBuilder.js +5 -12
  72. package/dist/collection/lib/message/resources/snk-data-exporter.msg.js +2 -0
  73. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +1 -0
  74. package/dist/components/{field-search.js → IExporterProvider.js} +93 -6
  75. package/dist/components/ISave.js +47 -0
  76. package/dist/components/SnkFormConfigManager.js +6 -3
  77. package/dist/components/SnkMessageBuilder.js +8 -12
  78. package/dist/components/dataunit-fetcher.js +85 -182
  79. package/dist/components/index2.js +198 -33
  80. package/dist/components/pesquisa-fetcher.js +164 -0
  81. package/dist/components/snk-actions-button2.js +4 -11
  82. package/dist/components/snk-application2.js +31 -9
  83. package/dist/components/snk-attach2.js +65 -41
  84. package/dist/components/snk-crud.js +103 -11
  85. package/dist/components/snk-data-exporter2.js +309 -85
  86. package/dist/components/snk-data-unit2.js +470 -212
  87. package/dist/components/snk-detail-view2.js +87 -10
  88. package/dist/components/snk-expression-item2.js +1 -1
  89. package/dist/components/snk-filter-bar2.js +6 -1
  90. package/dist/components/snk-form-view2.js +72 -1
  91. package/dist/components/snk-form.js +53 -6
  92. package/dist/components/snk-grid2.js +168 -106
  93. package/dist/components/snk-personalized-filter2.js +1 -1
  94. package/dist/components/snk-simple-crud2.js +259 -23
  95. package/dist/components/snk-taskbar2.js +6 -5
  96. package/dist/esm/{SnkMultiSelectionListDataSource-36918dbf.js → IExporterProvider-5a858363.js} +93 -5
  97. package/dist/esm/RecordIDUtils-87d02110.js +41 -0
  98. package/dist/esm/{SnkFormConfigManager-f53f9f87.js → SnkFormConfigManager-d4554df9.js} +6 -3
  99. package/dist/esm/{SnkMessageBuilder-0a4becdd.js → SnkMessageBuilder-89925609.js} +8 -12
  100. package/dist/esm/{pesquisa-fetcher-fe6f3826.js → dataunit-fetcher-f7e0ffc0.js} +84 -181
  101. package/dist/esm/{index-0ece87a6.js → index-3aa4977a.js} +6 -1
  102. package/dist/esm/loader.js +1 -1
  103. package/dist/esm/pesquisa-fetcher-03c8f919.js +164 -0
  104. package/dist/esm/sankhyablocks.js +1 -1
  105. package/dist/esm/snk-actions-button_4.entry.js +4 -2
  106. package/dist/esm/snk-application.entry.js +33 -10
  107. package/dist/esm/snk-attach.entry.js +66 -41
  108. package/dist/esm/snk-crud.entry.js +96 -10
  109. package/dist/esm/snk-data-exporter.entry.js +316 -86
  110. package/dist/esm/snk-data-unit-a327d22c.js +677 -0
  111. package/dist/esm/snk-data-unit.entry.js +12 -2
  112. package/dist/esm/snk-detail-view.entry.js +48 -7
  113. package/dist/esm/snk-filter-bar.entry.js +5 -1
  114. package/dist/esm/snk-form-view.entry.js +67 -0
  115. package/dist/esm/snk-form.entry.js +51 -6
  116. package/dist/esm/snk-grid.entry.js +162 -105
  117. package/dist/esm/{snk-guides-viewer-113be3fd.js → snk-guides-viewer-874da66f.js} +36 -8
  118. package/dist/esm/snk-guides-viewer.entry.js +8 -6
  119. package/dist/esm/snk-simple-crud.entry.js +252 -25
  120. package/dist/esm/snk-taskbar.entry.js +4 -3
  121. package/dist/esm/{taskbar-elements-2473c8ac.js → taskbar-elements-d59867f1.js} +3 -3
  122. package/dist/sankhyablocks/p-0046959e.entry.js +1 -0
  123. package/dist/sankhyablocks/p-0e11ee18.entry.js +1 -0
  124. package/dist/sankhyablocks/p-1db45d26.entry.js +1 -0
  125. package/dist/sankhyablocks/p-30cf616e.js +1 -0
  126. package/dist/sankhyablocks/p-47b60deb.entry.js +1 -0
  127. package/dist/sankhyablocks/p-60e46675.entry.js +11 -0
  128. package/dist/sankhyablocks/p-6d4f4614.js +60 -0
  129. package/dist/sankhyablocks/p-6ded2076.entry.js +1 -0
  130. package/dist/sankhyablocks/p-7a337364.js +1 -0
  131. package/dist/sankhyablocks/p-7d9baaf4.entry.js +1 -0
  132. package/dist/sankhyablocks/{p-ae4fc9a9.js → p-7e7a7473.js} +1 -1
  133. package/dist/sankhyablocks/p-829d4045.js +1 -0
  134. package/dist/sankhyablocks/p-8c6b44ea.entry.js +1 -0
  135. package/dist/sankhyablocks/p-8fc470e5.entry.js +1 -0
  136. package/dist/sankhyablocks/p-9863d682.js +1 -0
  137. package/dist/sankhyablocks/p-a4b1f1eb.js +1 -0
  138. package/dist/sankhyablocks/p-af8efd95.js +6 -0
  139. package/dist/sankhyablocks/p-b7c4feeb.entry.js +1 -0
  140. package/dist/sankhyablocks/p-b8cde0d8.entry.js +1 -0
  141. package/dist/sankhyablocks/p-c7cbad38.js +1 -0
  142. package/dist/sankhyablocks/p-e0b9f59a.entry.js +1 -0
  143. package/dist/sankhyablocks/p-e6210aec.js +1 -0
  144. package/dist/sankhyablocks/p-e9bbc3d5.entry.js +1 -0
  145. package/dist/sankhyablocks/p-f2809746.entry.js +1 -0
  146. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  147. package/dist/types/components/snk-application/snk-application.d.ts +7 -3
  148. package/dist/types/components/snk-attach/snk-attach.d.ts +11 -9
  149. package/dist/types/components/snk-crud/interfaces/PropsCustomEditor.d.ts +4 -0
  150. package/dist/types/components/snk-crud/interfaces/PropsCustomRender.d.ts +4 -0
  151. package/dist/types/components/snk-crud/snk-crud.d.ts +36 -1
  152. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +23 -0
  153. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +28 -3
  154. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +19 -0
  155. package/dist/types/components/snk-data-exporter/exporter-strategy/ClientSideExporterStrategy.d.ts +14 -0
  156. package/dist/types/components/snk-data-exporter/exporter-strategy/ServerSideExporterStrategy.d.ts +12 -0
  157. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +24 -4
  158. package/dist/types/components/snk-data-exporter/interfaces/IExporterStrategy.d.ts +5 -0
  159. package/dist/types/components/snk-data-exporter/providers/ClientSideExporterProvider.d.ts +17 -0
  160. package/dist/types/components/snk-data-exporter/providers/ServerSideExporterProvider.d.ts +17 -0
  161. package/dist/types/components/snk-data-exporter/snk-data-exporter.d.ts +4 -1
  162. package/dist/types/components/snk-data-exporter/structure/ItemBuilder.d.ts +21 -0
  163. package/dist/types/components/snk-data-exporter/test/resources/ClientSideExporterStrategyResources.d.ts +77 -0
  164. package/dist/types/components/snk-data-exporter/utils/ParserExport.d.ts +4 -0
  165. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +3 -0
  166. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +61 -2
  167. package/dist/types/components/snk-data-unit/test/resources/metadataMock.d.ts +3 -0
  168. package/dist/types/components/snk-data-unit/test/resources/parentMetadataMock.d.ts +3 -0
  169. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +4 -0
  170. package/dist/types/components/snk-form/snk-form.d.ts +14 -0
  171. package/dist/types/components/snk-grid/snk-grid.d.ts +46 -6
  172. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +58 -4
  173. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +1 -1
  174. package/dist/types/components.d.ts +220 -4
  175. package/dist/types/lib/@types/index.d.ts +5 -0
  176. package/dist/types/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.d.ts +11 -0
  177. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +2 -1
  178. package/dist/types/lib/dataUnit/ValueFormatter.d.ts +2 -0
  179. package/dist/types/lib/dataUnit/interfaces/InMemoryLoaderConfig.d.ts +3 -0
  180. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.d.ts +2 -1
  181. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.d.ts +1 -0
  182. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.d.ts +1 -0
  183. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.d.ts +10 -0
  184. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.d.ts +7 -0
  185. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +6 -0
  186. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.d.ts +20 -0
  187. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +3 -0
  188. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IFetchDataExporterParams.d.ts +2 -1
  189. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +1 -0
  190. package/package.json +1 -1
  191. package/dist/cjs/snk-data-unit-41c29713.js +0 -462
  192. package/dist/collection/lib/http/data-fetcher/fetchers/fetchDataExporter/index.js +0 -34
  193. package/dist/components/index3.js +0 -199
  194. package/dist/esm/snk-data-unit-de1d140d.js +0 -460
  195. package/dist/sankhyablocks/p-032fe52e.js +0 -1
  196. package/dist/sankhyablocks/p-03dcc5ff.entry.js +0 -1
  197. package/dist/sankhyablocks/p-07a61550.entry.js +0 -1
  198. package/dist/sankhyablocks/p-0899e0b5.entry.js +0 -1
  199. package/dist/sankhyablocks/p-154a7f33.entry.js +0 -1
  200. package/dist/sankhyablocks/p-15802c59.entry.js +0 -1
  201. package/dist/sankhyablocks/p-164666b1.js +0 -65
  202. package/dist/sankhyablocks/p-32556aa6.js +0 -1
  203. package/dist/sankhyablocks/p-328585d0.entry.js +0 -1
  204. package/dist/sankhyablocks/p-38289a55.js +0 -1
  205. package/dist/sankhyablocks/p-52c8e589.js +0 -1
  206. package/dist/sankhyablocks/p-5cb07080.js +0 -1
  207. package/dist/sankhyablocks/p-74d349c3.entry.js +0 -1
  208. package/dist/sankhyablocks/p-7fe120b8.entry.js +0 -11
  209. package/dist/sankhyablocks/p-add17f6a.entry.js +0 -1
  210. package/dist/sankhyablocks/p-af1ac81f.entry.js +0 -1
  211. package/dist/sankhyablocks/p-b4525fc0.entry.js +0 -1
  212. package/dist/sankhyablocks/p-cce0865d.js +0 -1
  213. package/dist/sankhyablocks/p-dec65f6c.entry.js +0 -1
  214. package/dist/sankhyablocks/p-ee9536bc.entry.js +0 -1
  215. package/dist/sankhyablocks/p-f13f7616.entry.js +0 -1
  216. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/index.d.ts +0 -3
@@ -5,13 +5,24 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index$1 = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/utils');
8
- const index = require('./index-0922807b.js');
8
+ const index = require('./index-1dfc7a6e.js');
9
9
  const constants = require('./constants-35ddd366.js');
10
10
  const DataFetcher = require('./DataFetcher-313debd8.js');
11
- const snkDataUnit = require('./snk-data-unit-41c29713.js');
12
- require('./PrintUtils-bcaeb82f.js');
11
+ const snkDataUnit = require('./snk-data-unit-16791a2f.js');
12
+ require('./pesquisa-fetcher-680e198f.js');
13
+ require('./ISave-e91b70a7.js');
14
+ require('@sankhyalabs/ezui/dist/collection/utils/constants');
13
15
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
14
- require('./SnkMessageBuilder-66aa2557.js');
16
+ require('./dataunit-fetcher-0c7106a0.js');
17
+ require('./filter-item-type.enum-a7ffdaa6.js');
18
+ require('./form-config-fetcher-2dd00e5b.js');
19
+ require('./PrintUtils-bcaeb82f.js');
20
+ require('./SnkMessageBuilder-722b104e.js');
21
+ require('./RecordIDUtils-3735135c.js');
22
+ require('@sankhyalabs/core/dist/dataunit/metadata/DataType');
23
+ require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
24
+ require('@sankhyalabs/core/dist/utils/SortingUtils');
25
+ require('./ResourceIDUtils-5ff86aa7.js');
15
26
 
16
27
  class ItemBuilder {
17
28
  constructor(getMessage, selectedNumber) {
@@ -33,6 +44,9 @@ class ItemBuilder {
33
44
  items.push(this.getExportToXLS(groupName));
34
45
  }
35
46
  this.setExportCurrentPage(option, items);
47
+ if (this._selectedNumber > 0) {
48
+ this.setExportAllRecords(option, items);
49
+ }
36
50
  this.setExportByEmail(option, items);
37
51
  }
38
52
  /**
@@ -63,6 +77,34 @@ class ItemBuilder {
63
77
  }
64
78
  }
65
79
  }
80
+ /**
81
+ * Método responsável por inserir os itens de exportação para todos os registros.
82
+ * @param option - Nome da opção que será inserida no array.
83
+ * @param items - Array que será alimentado com as opções permitidas.
84
+ */
85
+ setExportAllRecords(option, items) {
86
+ var _a;
87
+ const pageOptions = [index.DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF, index.DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS];
88
+ if (option === index.DataExporterOption.EXPORT_ALL_RECORDS) {
89
+ items.push(this.getAllRecords());
90
+ }
91
+ if (pageOptions.includes(option)) {
92
+ let item = items.find((item) => item.id === index.DataExporterOption.EXPORT_ALL_RECORDS);
93
+ if (item == undefined) {
94
+ items.push(this.getAllRecords());
95
+ item = items.find((item) => item.id === index.DataExporterOption.EXPORT_ALL_RECORDS);
96
+ }
97
+ if (!((_a = item.children) === null || _a === void 0 ? void 0 : _a.length)) {
98
+ item.children = [];
99
+ }
100
+ if (option === index.DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF) {
101
+ item.children.push(this.getExportAllRecordsToPDF());
102
+ }
103
+ if (option === index.DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS) {
104
+ item.children.push(this.getExportAllRecordsToXLS());
105
+ }
106
+ }
107
+ }
66
108
  /**
67
109
  * Método responsável por inserir os itens de exportação por e-mail.
68
110
  * @param option - Nome da opção que será inserida no array.
@@ -108,6 +150,17 @@ class ItemBuilder {
108
150
  group: this._getMessage("snkDataExporter.group.custom")
109
151
  };
110
152
  }
153
+ /**
154
+ * Método responsável por capturar o objeto com todos os dados de exportação.
155
+ * @returns Retorna o objeto com todos os dados de exportação.
156
+ */
157
+ getAllRecords() {
158
+ return {
159
+ id: index.DataExporterOption.EXPORT_ALL_RECORDS,
160
+ label: this._getMessage("snkDataExporter.label.allRecords"),
161
+ group: this._getMessage("snkDataExporter.group.custom")
162
+ };
163
+ }
111
164
  /**
112
165
  * Método responsável por capturar o objeto com os dados de exportação personalizada em PDF.
113
166
  * @returns Retorna o objeto com os dados de exportação personalizada em PDF.
@@ -128,6 +181,26 @@ class ItemBuilder {
128
181
  label: `${this._getMessage("snkDataExporter.label.spreadsheet")} (.xlsx)`
129
182
  };
130
183
  }
184
+ /**
185
+ * Método responsável por capturar o objeto com todos os dados de exportação em PDF.
186
+ * @returns Retorna o objeto com todos os dados de exportação em PDF.
187
+ */
188
+ getExportAllRecordsToPDF() {
189
+ return {
190
+ id: index.DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF,
191
+ label: "PDF (.pdf)"
192
+ };
193
+ }
194
+ /**
195
+ * Método responsável por capturar o objeto com todos os dados de exportação em XLS.
196
+ * @returns Retorna o objeto com todos os dados de exportação em XLS.
197
+ */
198
+ getExportAllRecordsToXLS() {
199
+ return {
200
+ id: index.DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS,
201
+ label: `${this._getMessage("snkDataExporter.label.spreadsheet")} (.xlsx)`
202
+ };
203
+ }
131
204
  /**
132
205
  * Método responsável por capturar o objeto com os dados de exportação por e-mail.
133
206
  * @returns Retorna o objeto com os dados de exportação por e-mail.
@@ -153,38 +226,6 @@ class ItemBuilder {
153
226
  }
154
227
  }
155
228
 
156
- var __rest = (undefined && undefined.__rest) || function (s, e) {
157
- var t = {};
158
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
159
- t[p] = s[p];
160
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
161
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
162
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
163
- t[p[i]] = s[p[i]];
164
- }
165
- return t;
166
- };
167
- function fetchDataExporter(_a) {
168
- var { methodName } = _a, requestBody = __rest(_a, ["methodName"]);
169
- const application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
170
- const serviceName = `${application.getModuleName()}@DataExporterSPBean.${methodName}`;
171
- const payload = { serviceName, requestBody };
172
- return new Promise((resolve, reject) => {
173
- DataFetcher.DataFetcher.get()
174
- .callServiceBroker(serviceName, core.ObjectUtils.objectToString(payload))
175
- .then(result => resolve(getFormatResponse$1(result)))
176
- .catch(error => reject(error));
177
- });
178
- }
179
- function getFormatResponse$1(result) {
180
- var _a;
181
- const response = (_a = result === null || result === void 0 ? void 0 : result.json) === null || _a === void 0 ? void 0 : _a.$;
182
- if (response == undefined) {
183
- return;
184
- }
185
- return core.ObjectUtils.stringToObject(response);
186
- }
187
-
188
229
  function getMessage(application, key, params) {
189
230
  var _a;
190
231
  return (_a = application === null || application === void 0 ? void 0 : application.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params);
@@ -213,16 +254,195 @@ function getFormatResponse(result) {
213
254
  return core.ObjectUtils.stringToObject(response);
214
255
  }
215
256
 
257
+ const DOC_MAX_WIDTH = 800;
258
+ function getVisibleColumns(columns) {
259
+ const visibleColumns = [];
260
+ let totalWidth = 0;
261
+ for (const column of columns) {
262
+ totalWidth += column.width;
263
+ if (totalWidth >= DOC_MAX_WIDTH) {
264
+ break;
265
+ }
266
+ visibleColumns.push(column);
267
+ }
268
+ return visibleColumns;
269
+ }
270
+ function getOptionKey(option) {
271
+ return Object.keys(index.DataExporterOption)
272
+ .find((key) => {
273
+ return index.DataExporterOption[key] === option;
274
+ });
275
+ }
276
+
277
+ var __rest = (undefined && undefined.__rest) || function (s, e) {
278
+ var t = {};
279
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
280
+ t[p] = s[p];
281
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
282
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
283
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
284
+ t[p[i]] = s[p[i]];
285
+ }
286
+ return t;
287
+ };
288
+ class ServerSideExporterStrategy {
289
+ constructor(provider) {
290
+ this._provider = provider;
291
+ }
292
+ async getParsedColumns() {
293
+ const columns = await this._provider.getColumnsMetadata();
294
+ const visibleColumns = getVisibleColumns(columns);
295
+ return visibleColumns;
296
+ }
297
+ async getParams(resolveProps) {
298
+ var _a, _b, _c, _d, _e, _f;
299
+ const filters = (_b = (_a = this._provider).getFilters) === null || _b === void 0 ? void 0 : _b.call(_a);
300
+ const columns = [index.DataExporterType.EXPORT_TO_PDF, index.DataExporterType.EXPORT_PAGE_TO_PDF, index.DataExporterType.EXPORT_PDF_TO_EMAIL, index.DataExporterType.EXPORT_ALL_RECORDS_TO_PDF].includes(getOptionKey(resolveProps === null || resolveProps === void 0 ? void 0 : resolveProps.exportOption)) ? await this.getParsedColumns() : await this._provider.getColumnsMetadata();
301
+ const sort = (_d = (_c = this._provider).getOrders) === null || _d === void 0 ? void 0 : _d.call(_c);
302
+ const resourceURI = (_f = (_e = this._provider).getResourceURI) === null || _f === void 0 ? void 0 : _f.call(_e);
303
+ const selectedIDs = this._provider.getSelectedIDs();
304
+ const option = resolveProps.exportOption;
305
+ const currentPageOptions = [
306
+ index.DataExporterOption.EXPORT_PAGE_TO_PDF,
307
+ index.DataExporterOption.EXPORT_PAGE_TO_XLS
308
+ ];
309
+ delete resolveProps.exportOption;
310
+ let params = Object.assign({ filters,
311
+ columns,
312
+ sort,
313
+ resourceURI, selectedIDs: selectedIDs.slice(0, this._provider.getExportLimit()) }, resolveProps);
314
+ if (currentPageOptions.includes(option) || resolveProps.type == "page") {
315
+ const offset = this._provider.getOffset();
316
+ const limit = this._provider.getPageSize();
317
+ params = Object.assign(Object.assign({}, params), { offset,
318
+ limit, selectedIDs: [] });
319
+ }
320
+ else if (resolveProps.type == "all") {
321
+ params = Object.assign(Object.assign({}, params), { offset: 0, limit: this._provider.getExportLimit(), selectedIDs: [] });
322
+ }
323
+ return Promise.resolve(params);
324
+ }
325
+ async executeExport(resolveProps) {
326
+ const _a = await this.getParams(resolveProps), { methodName } = _a, requestBody = __rest(_a, ["methodName"]);
327
+ const application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
328
+ const serviceName = `${application.getModuleName()}@DataExporterSPBean.${methodName}`;
329
+ const payload = { serviceName, requestBody };
330
+ return new Promise((resolve, reject) => {
331
+ DataFetcher.DataFetcher.get()
332
+ .callServiceBroker(serviceName, core.ObjectUtils.objectToString(payload))
333
+ .then(result => resolve(this.getFormatResponse(result)))
334
+ .catch(error => reject(error));
335
+ });
336
+ }
337
+ getFormatResponse(result) {
338
+ var _a;
339
+ const response = (_a = result === null || result === void 0 ? void 0 : result.json) === null || _a === void 0 ? void 0 : _a.$;
340
+ if (response == undefined) {
341
+ return;
342
+ }
343
+ return core.ObjectUtils.stringToObject(response);
344
+ }
345
+ }
346
+
347
+ class ClientSideExporterStrategy {
348
+ constructor(provider) {
349
+ this._provider = provider;
350
+ }
351
+ async getParsedColumns() {
352
+ const columns = await this._provider.getColumnsMetadata();
353
+ const visibleColumns = getVisibleColumns(columns);
354
+ return visibleColumns;
355
+ }
356
+ async executeExport(resolveProps) {
357
+ const { methodName, titleGrid } = resolveProps;
358
+ const records = await this._provider.getRecords();
359
+ const columns = [index.DataExporterType.EXPORT_TO_PDF, index.DataExporterType.EXPORT_PAGE_TO_PDF, index.DataExporterType.EXPORT_PDF_TO_EMAIL, index.DataExporterType.EXPORT_ALL_RECORDS_TO_PDF].includes(getOptionKey(resolveProps === null || resolveProps === void 0 ? void 0 : resolveProps.exportOption)) ? await this.getParsedColumns() : await this._provider.getColumnsMetadata();
360
+ const [serviceName, processor] = this.getExecutor(methodName);
361
+ const payload = {
362
+ serviceName,
363
+ requestBody: {
364
+ grid: {
365
+ titleGrid,
366
+ columns: this.buildColumnsObject(columns),
367
+ rows: this.buildRowsObject(columns, records),
368
+ customOptions: { xlsxExtension: false }
369
+ }
370
+ }
371
+ };
372
+ return new Promise((resolve, reject) => {
373
+ DataFetcher.DataFetcher.get()
374
+ .callServiceBroker(serviceName, payload)
375
+ .then(result => resolve(processor(result)))
376
+ .catch(error => reject(error));
377
+ });
378
+ }
379
+ getExecutor(methodName) {
380
+ if (methodName === "exportToPDF") {
381
+ return [
382
+ "GridPDFBuilderSP.buildPDFFromJson",
383
+ responseBody => ({
384
+ fileSessionKey: responseBody.chavePDF.valor,
385
+ canPrint: responseBody.permiteImprimir.valor === "S",
386
+ canExport: responseBody.permiteExportar.valor === "S",
387
+ canSendEmail: responseBody.canSendEmail.valor === "S",
388
+ useAppPrint: true
389
+ })
390
+ ];
391
+ }
392
+ return [
393
+ "GridXLSBuilderSP.buildXLSFromJson",
394
+ responseBody => ({
395
+ fileSessionKey: responseBody.chaveXLS.valor,
396
+ canPrint: false,
397
+ canExport: false,
398
+ useAppPrint: false,
399
+ canSendEmail: false
400
+ })
401
+ ];
402
+ }
403
+ buildColumnsObject(columns) {
404
+ return {
405
+ column: columns.map((column, index) => {
406
+ const { label, id, width, userInterface } = column;
407
+ return Object.assign({ index: index + 1, id,
408
+ label,
409
+ width, presentationType: "P" }, (TYPE_MAP[userInterface] || { type: "S", align: "left" }));
410
+ })
411
+ };
412
+ }
413
+ buildRowsObject(columns, records) {
414
+ return {
415
+ row: records.map(rawRecord => {
416
+ const record = {};
417
+ columns.forEach((column, index) => record["c" + (index + 1)] = { $: this.formatValue(rawRecord, column) });
418
+ return record;
419
+ })
420
+ };
421
+ }
422
+ formatValue(record, column) {
423
+ if (this._provider.formatValue != undefined) {
424
+ return this._provider.formatValue(record, column);
425
+ }
426
+ return record[column.id] || "";
427
+ }
428
+ }
429
+ const TYPE_MAP = {
430
+ [core.UserInterface.DATE]: { type: "D", align: "center" },
431
+ [core.UserInterface.DATETIME]: { type: "H", align: "center" },
432
+ [core.UserInterface.TIME]: { type: "I", align: "right" },
433
+ [core.UserInterface.ELAPSEDTIME]: { type: "I", align: "right" },
434
+ [core.UserInterface.DECIMALNUMBER]: { type: "F", align: "right" },
435
+ [core.UserInterface.INTEGERNUMBER]: { type: "I", align: "right" },
436
+ [core.UserInterface.SEARCH]: { type: "S", align: "right" }
437
+ };
438
+
216
439
  const snkDataExporterCss = ".sc-snk-data-exporter-h{display:flex;width:fit-content;height:fit-content}.snk-data-exporter.sc-snk-data-exporter{display:flex;width:fit-content;height:fit-content}.snk-data-exporter__dropdown.sc-snk-data-exporter{display:none}.snk-data-exporter__dropdown--show.sc-snk-data-exporter{display:flex;flex-direction:column;position:fixed}.snk-data-exporter__dropdown.sc-snk-data-exporter>ez-dropdown.sc-snk-data-exporter{position:relative}";
217
440
 
218
- const LIMIT_PER_EXPORT = 5000;
219
441
  const SnkDataExporter = class {
220
442
  constructor(hostRef) {
221
443
  index$1.registerInstance(this, hostRef);
222
444
  this._selectedNumber = 0;
223
445
  this._customPrefix = "$custom$";
224
- this._items = [];
225
- this._showDropdown = false;
226
446
  this._releasedToExport = [
227
447
  index.DataExporterOption.EXPORT_TO_PDF,
228
448
  index.DataExporterOption.EXPORT_TO_XLS,
@@ -230,8 +450,12 @@ const SnkDataExporter = class {
230
450
  index.DataExporterOption.EXPORT_PDF_TO_EMAIL,
231
451
  index.DataExporterOption.EXPORT_XLS_TO_EMAIL,
232
452
  index.DataExporterOption.EXPORT_PAGE_TO_PDF,
233
- index.DataExporterOption.EXPORT_PAGE_TO_XLS
453
+ index.DataExporterOption.EXPORT_PAGE_TO_XLS,
454
+ index.DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF,
455
+ index.DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS,
234
456
  ];
457
+ this._items = [];
458
+ this._showDropdown = false;
235
459
  this.provider = null;
236
460
  this.messagesBuilder = undefined;
237
461
  }
@@ -302,31 +526,7 @@ const SnkDataExporter = class {
302
526
  if (this.provider == undefined || resolveProps == undefined || callbackResolver == undefined) {
303
527
  return;
304
528
  }
305
- const filters = this.provider.getFilters();
306
- const columns = await this.provider.getColumnsMetadata();
307
- const sort = this.provider.getOrders();
308
- const resourceURI = this.provider.getResourceURI();
309
- const selectedIDs = this.provider.getSelectedIDs();
310
- const option = resolveProps.exportOption;
311
- const currentPageOptions = [
312
- index.DataExporterOption.EXPORT_PAGE_TO_PDF,
313
- index.DataExporterOption.EXPORT_PAGE_TO_XLS
314
- ];
315
- delete resolveProps.exportOption;
316
- let params = Object.assign({ filters,
317
- columns,
318
- sort,
319
- resourceURI, selectedIDs: selectedIDs.slice(0, LIMIT_PER_EXPORT) }, resolveProps);
320
- if (currentPageOptions.includes(option) || resolveProps.type == "page") {
321
- const offset = this.provider.getOffset();
322
- const limit = this.provider.getLimit();
323
- params = Object.assign(Object.assign({}, params), { offset,
324
- limit, selectedIDs: [] });
325
- }
326
- else if (resolveProps.type == "all") {
327
- params = Object.assign(Object.assign({}, params), { offset: 0, limit: LIMIT_PER_EXPORT, selectedIDs: [] });
328
- }
329
- fetchDataExporter(params)
529
+ this.getExporterStrategy().executeExport(resolveProps)
330
530
  .then((result) => callbackResolver(result))
331
531
  .catch((exception) => {
332
532
  console.error(exception);
@@ -334,14 +534,26 @@ const SnkDataExporter = class {
334
534
  utils.ApplicationUtils.error(title || this.getMessage("snkDataExporter.message.exportError"), statusMessage || message || this.getMessage("snkDataExporter.message.unknownFailure"));
335
535
  });
336
536
  }
537
+ getExporterStrategy() {
538
+ return this.provider.getRecords == undefined ? new ServerSideExporterStrategy(this.provider) : new ClientSideExporterStrategy(this.provider);
539
+ }
337
540
  getOptionKey(option) {
338
541
  return Object.keys(index.DataExporterOption)
339
542
  .find((key) => {
340
543
  return index.DataExporterOption[key] === option;
341
544
  });
342
545
  }
343
- dispatchExporter(option) {
344
- var _a;
546
+ getExportType(option) {
547
+ if (option === index.DataExporterOption.EXPORT_ALL_RECORDS_TO_PDF || option === index.DataExporterOption.EXPORT_ALL_RECORDS_TO_XLS) {
548
+ return 'all';
549
+ }
550
+ if (option === index.DataExporterOption.EXPORT_PAGE_TO_PDF || option === index.DataExporterOption.EXPORT_PAGE_TO_XLS) {
551
+ return 'page';
552
+ }
553
+ return 'selection';
554
+ }
555
+ async dispatchExporter(option) {
556
+ var _a, _b, _c;
345
557
  const optionKey = this.getOptionKey(option);
346
558
  const fileType = (_a = index.DataExporterType[optionKey]) !== null && _a !== void 0 ? _a : index.DataExporterType.EXPORT_TO_PDF;
347
559
  const isDownload = index.DataExporterType[optionKey] === index.DataExporterType.EXPORT_TO_XLS;
@@ -350,15 +562,21 @@ const SnkDataExporter = class {
350
562
  fileName: this._appLabel,
351
563
  titleGrid: this._appLabel,
352
564
  exportOption: option,
353
- limit: LIMIT_PER_EXPORT
565
+ limit: (_c = (_b = this.provider) === null || _b === void 0 ? void 0 : _b.getExportLimit) === null || _c === void 0 ? void 0 : _c.call(_b),
566
+ type: this.getExportType(option),
354
567
  };
355
- this.resolveExporter(params, (response) => {
356
- fileViewer(Object.assign(Object.assign({}, response), { fileType,
357
- isDownload }));
568
+ await this.resolveExporter(params, (response) => {
569
+ if (response.canExport || fileType === index.DataExporterType.EXPORT_TO_PDF) {
570
+ fileViewer(Object.assign(Object.assign({}, response), { fileType,
571
+ isDownload }));
572
+ }
573
+ else {
574
+ utils.ApplicationUtils.error(this.getMessage("snkDataExporter.title.permission"), this.getMessage("snkDataExporter.message.exportPermission"));
575
+ }
358
576
  });
359
577
  }
360
578
  async processExporter(evt) {
361
- var _a, _b, _c, _d;
579
+ var _a, _b, _c, _d, _e, _f, _g;
362
580
  const item = evt === null || evt === void 0 ? void 0 : evt.detail;
363
581
  const exportCurrentPageOptions = [index.DataExporterOption.EXPORT_PAGE_TO_PDF, index.DataExporterOption.EXPORT_PAGE_TO_XLS];
364
582
  const isCustomReport = (_a = item === null || item === void 0 ? void 0 : item.id) === null || _a === void 0 ? void 0 : _a.includes(this._customPrefix);
@@ -366,18 +584,19 @@ const SnkDataExporter = class {
366
584
  return;
367
585
  const selectedRecords = (_b = this.provider) === null || _b === void 0 ? void 0 : _b.getSelectedIDs();
368
586
  const totalRecords = (_c = this.provider) === null || _c === void 0 ? void 0 : _c.getTotalRecords();
369
- const totalPerPage = (_d = this.provider) === null || _d === void 0 ? void 0 : _d.getLimit();
587
+ const totalPerPage = (_e = (_d = this.provider) === null || _d === void 0 ? void 0 : _d.getPageSize) === null || _e === void 0 ? void 0 : _e.call(_d);
588
+ const exportLimit = (_g = (_f = this.provider) === null || _f === void 0 ? void 0 : _f.getExportLimit) === null || _g === void 0 ? void 0 : _g.call(_f);
370
589
  let limitExceeded = false;
371
- if ((exportCurrentPageOptions.includes(item === null || item === void 0 ? void 0 : item.id) && totalPerPage <= LIMIT_PER_EXPORT) || isCustomReport) {
590
+ if ((exportCurrentPageOptions.includes(item === null || item === void 0 ? void 0 : item.id) && totalPerPage <= exportLimit) || isCustomReport) {
372
591
  limitExceeded = false;
373
592
  }
374
593
  else if (selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) {
375
- limitExceeded = selectedRecords.length > LIMIT_PER_EXPORT;
594
+ limitExceeded = selectedRecords.length > exportLimit;
376
595
  }
377
- else if (totalRecords > LIMIT_PER_EXPORT)
596
+ else if (totalRecords > exportLimit)
378
597
  limitExceeded = true;
379
598
  if (limitExceeded) {
380
- const formattedLimit = LIMIT_PER_EXPORT.toLocaleString('pt-BR', { minimumFractionDigits: 0 });
599
+ const formattedLimit = exportLimit.toLocaleString('pt-BR', { minimumFractionDigits: 0 });
381
600
  const limitModalMessages = {
382
601
  title: this.getMessage("snkDataExporter.limitExceeded.title"),
383
602
  description: `
@@ -402,7 +621,7 @@ const SnkDataExporter = class {
402
621
  this._showDropdown = false;
403
622
  return;
404
623
  }
405
- if (!this._releasedToExport.includes(item === null || item === void 0 ? void 0 : item.id)) {
624
+ if (!this.getFilteredReleasedToExport().includes(item === null || item === void 0 ? void 0 : item.id)) {
406
625
  return;
407
626
  }
408
627
  if (item.id === index.DataExporterOption.EXPORT_BY_EMAIL) {
@@ -413,9 +632,20 @@ const SnkDataExporter = class {
413
632
  }
414
633
  this._showDropdown = false;
415
634
  }
635
+ getFilteredReleasedToExport() {
636
+ var _a, _b;
637
+ if (this.provider == undefined) {
638
+ return this._releasedToExport;
639
+ }
640
+ const hiddenOptions = (_b = (_a = this.provider).getHiddenOptions) === null || _b === void 0 ? void 0 : _b.call(_a);
641
+ if (hiddenOptions == undefined) {
642
+ return this._releasedToExport;
643
+ }
644
+ return this._releasedToExport.filter(option => !hiddenOptions.includes(option));
645
+ }
416
646
  loadItems() {
417
647
  const items = [];
418
- this._releasedToExport
648
+ this.getFilteredReleasedToExport()
419
649
  .forEach((option) => {
420
650
  var _a;
421
651
  (_a = this._itemBuilder) === null || _a === void 0 ? void 0 : _a.setExportOption(option, items);
@@ -423,8 +653,8 @@ const SnkDataExporter = class {
423
653
  this.loadPersonalizedItems(items);
424
654
  }
425
655
  async loadPersonalizedItems(items) {
426
- var _a;
427
- const recordID = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getRecordID();
656
+ var _a, _b;
657
+ const recordID = (_b = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getRecordID) === null || _b === void 0 ? void 0 : _b.call(_a);
428
658
  if (recordID == undefined) {
429
659
  this._items = items;
430
660
  return;
@@ -440,10 +670,10 @@ const SnkDataExporter = class {
440
670
  this._items = items;
441
671
  }
442
672
  openPersonalizedReports(option) {
443
- var _a;
673
+ var _a, _b;
444
674
  const pkObject = [];
445
675
  const appId = (option === null || option === void 0 ? void 0 : option.replace(this._customPrefix, "")) || "";
446
- (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getSelectedIDs().forEach(({ name, type, value }, index) => {
676
+ (_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) => {
447
677
  const fields = {};
448
678
  fields['fields'] = [];
449
679
  // Se for o primeiro elemento, adiciona essa primeira PK
@@ -468,8 +698,8 @@ const SnkDataExporter = class {
468
698
  }
469
699
  }
470
700
  loadDropdown() {
471
- var _a, _b;
472
- this._selectedNumber = ((_b = (_a = this.provider) === null || _a === void 0 ? void 0 : _a.getSelectedIDs()) === null || _b === void 0 ? void 0 : _b.length) || 0;
701
+ var _a;
702
+ this._selectedNumber = ((_a = this.provider) === null || _a === void 0 ? void 0 : _a.getSelectedNumber()) || 0;
473
703
  this._itemBuilder = new ItemBuilder(this.getMessage.bind(this), this._selectedNumber);
474
704
  this.loadItems();
475
705
  }