@sankhyalabs/sankhyablocks 8.15.1 → 8.16.0-dev.1

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-c78cb1b8.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-620b29a1.js} +87 -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-82dea87e.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-05a1ba27.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 +7 -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 +84 -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-343272b3.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-3fbf9d12.js} +83 -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-8f98b45f.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-aee2cafe.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-0d91b10f.entry.js +1 -0
  123. package/dist/sankhyablocks/p-1db45d26.entry.js +1 -0
  124. package/dist/sankhyablocks/p-26394a01.entry.js +1 -0
  125. package/dist/sankhyablocks/p-2d649237.entry.js +1 -0
  126. package/dist/sankhyablocks/p-30cf616e.js +1 -0
  127. package/dist/sankhyablocks/p-44767378.entry.js +1 -0
  128. package/dist/sankhyablocks/p-47b60deb.entry.js +1 -0
  129. package/dist/sankhyablocks/p-4f72727a.entry.js +1 -0
  130. package/dist/sankhyablocks/p-550fee49.entry.js +1 -0
  131. package/dist/sankhyablocks/p-5539ecb4.entry.js +1 -0
  132. package/dist/sankhyablocks/p-672302c3.js +60 -0
  133. package/dist/sankhyablocks/p-7a337364.js +1 -0
  134. package/dist/sankhyablocks/{p-ae4fc9a9.js → p-7e7a7473.js} +1 -1
  135. package/dist/sankhyablocks/p-829d4045.js +1 -0
  136. package/dist/sankhyablocks/p-8a5910a7.entry.js +1 -0
  137. package/dist/sankhyablocks/p-8cc64963.entry.js +1 -0
  138. package/dist/sankhyablocks/p-8fc470e5.entry.js +1 -0
  139. package/dist/sankhyablocks/p-9863d682.js +1 -0
  140. package/dist/sankhyablocks/p-9e99a92a.js +1 -0
  141. package/dist/sankhyablocks/p-af8efd95.js +6 -0
  142. package/dist/sankhyablocks/p-be603a24.js +1 -0
  143. package/dist/sankhyablocks/p-d09feef1.js +1 -0
  144. package/dist/sankhyablocks/p-e95b3b93.entry.js +11 -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
@@ -4,23 +4,25 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const SnkFormConfigManager = require('./SnkFormConfigManager-f9dc0d28.js');
7
+ const SnkFormConfigManager = require('./SnkFormConfigManager-1b13bacd.js');
8
8
  const form = require('@sankhyalabs/ezui/dist/collection/utils/form');
9
9
  require('./DataFetcher-313debd8.js');
10
- require('./pesquisa-fetcher-213797ec.js');
11
- const index$1 = require('./index-0922807b.js');
10
+ require('./pesquisa-fetcher-680e198f.js');
11
+ const index$1 = require('./index-1dfc7a6e.js');
12
12
  require('./ISave-e91b70a7.js');
13
13
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
14
14
  require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
15
+ require('./dataunit-fetcher-620b29a1.js');
15
16
  require('./filter-item-type.enum-a7ffdaa6.js');
16
17
  require('./form-config-fetcher-2dd00e5b.js');
17
- const taskbarElements = require('./taskbar-elements-3ecd1278.js');
18
+ const taskbarElements = require('./taskbar-elements-9ad1f9c0.js');
18
19
  const constants = require('./constants-35ddd366.js');
19
- const snkGuidesViewer = require('./snk-guides-viewer-4b6ecda8.js');
20
- const SnkMessageBuilder = require('./SnkMessageBuilder-66aa2557.js');
20
+ const snkGuidesViewer = require('./snk-guides-viewer-05a1ba27.js');
21
+ const SnkMessageBuilder = require('./SnkMessageBuilder-722b104e.js');
21
22
  require('./ConfigStorage-942ce74b.js');
22
23
  require('./PrintUtils-bcaeb82f.js');
23
24
  require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
25
+ require('@sankhyalabs/core/dist/utils/SortingUtils');
24
26
  require('./ResourceIDUtils-5ff86aa7.js');
25
27
  require('./index-102ba62d.js');
26
28
  require('./field-search-f56aa7d6.js');
@@ -93,6 +95,8 @@ const SnkDetailView = class {
93
95
  this.branchGuide = undefined;
94
96
  this.canEdit = true;
95
97
  this.taskbarCustomContainerId = undefined;
98
+ this.customEditors = undefined;
99
+ this.customRenders = undefined;
96
100
  }
97
101
  observeDataUnit(newDataUnit, oldDataUnit) {
98
102
  newDataUnit === null || newDataUnit === void 0 ? void 0 : newDataUnit.subscribe(this.dataUnitActionHandler.bind(this));
@@ -160,10 +164,38 @@ const SnkDetailView = class {
160
164
  this._snkGrid.scrollIntoView({ behavior: "smooth", block: "start" });
161
165
  }
162
166
  }
167
+ /**
168
+ * Registra um editor customizado para campos da grade e formulário.
169
+ */
170
+ async addCustomEditor(fieldName, customEditor) {
171
+ var _a;
172
+ const detailContext = this.normalizeBranchGuideId((_a = this.branchGuide) === null || _a === void 0 ? void 0 : _a.id);
173
+ this._snkGrid.addCustomEditor(fieldName, customEditor, detailContext);
174
+ this._snkFormView.addCustomEditor(fieldName, customEditor, detailContext);
175
+ }
176
+ async observerPropsCustomEditor(newValue) {
177
+ for (const fieldName in newValue) {
178
+ await this.addCustomEditor(fieldName, newValue[fieldName]);
179
+ }
180
+ }
181
+ /**
182
+ * Registra um render customizado para colunas da grid.
183
+ */
184
+ async addGridCustomRender(fieldName, customRender) {
185
+ var _a;
186
+ const detailContext = this.normalizeBranchGuideId((_a = this.branchGuide) === null || _a === void 0 ? void 0 : _a.id);
187
+ await this._snkGrid.addGridCustomRender(fieldName, customRender, detailContext);
188
+ }
163
189
  onContentCardChanged(evt) {
164
190
  snkGuidesViewer.SnkGuidesViewer.updateContentCard(evt.detail.formName, evt.detail.cardConfig, evt.detail.propertyChanged, this.formConfigManager).then(() => index.forceUpdate(this));
165
191
  evt.stopPropagation();
166
192
  }
193
+ async observeCustomRenders(newValue) {
194
+ for (const field in newValue) {
195
+ const customRender = newValue[field];
196
+ await this.addGridCustomRender(field, customRender);
197
+ }
198
+ }
167
199
  updateLabel() {
168
200
  const guideItemPathSize = this.guideItemPath ? this.guideItemPath.length : 0;
169
201
  if (guideItemPathSize > 0) {
@@ -266,6 +298,10 @@ const SnkDetailView = class {
266
298
  this.messagesBuilder = new SnkMessageBuilder.SnkMessageBuilder(this.entityName);
267
299
  }
268
300
  }
301
+ async componentDidLoad() {
302
+ await this.observerPropsCustomEditor(this.customEditors);
303
+ await this.observeCustomRenders(this.customRenders);
304
+ }
269
305
  async dataUnitActionHandler(action) {
270
306
  if (action.type === core.Action.FIELD_INVALIDATED) {
271
307
  this.addErrorBadgeToBranchGuide();
@@ -275,6 +311,9 @@ const SnkDetailView = class {
275
311
  this.branchGuide = Object.assign(Object.assign({}, this.branchGuide), { badge: 'error' });
276
312
  this.snkDetailGuidesChange.emit(new GuideBuilder(this.branchGuide, this._formMetadata, this.dataUnit));
277
313
  }
314
+ normalizeBranchGuideId(id) {
315
+ return id === null || id === void 0 ? void 0 : id.replace(/child\[(.*?)\]/g, '$1').replace(/::/g, '>');
316
+ }
278
317
  render() {
279
318
  this.updateLabel();
280
319
  //const cardConfig: IFormCardConfig = this._cardsState?.get(this.selectedForm);
@@ -282,7 +321,9 @@ const SnkDetailView = class {
282
321
  }
283
322
  static get watchers() { return {
284
323
  "dataUnit": ["observeDataUnit"],
285
- "dataState": ["observerDataState"]
324
+ "dataState": ["observerDataState"],
325
+ "customEditors": ["observerPropsCustomEditor"],
326
+ "customRenders": ["observeCustomRenders"]
286
327
  }; }
287
328
  };
288
329
  SnkDetailView.REGEX_FORM_ID = /__FORM:[^:]+/g;
@@ -286,6 +286,7 @@ const SnkFilterBar = class {
286
286
  this.messagesBuilder = undefined;
287
287
  this.disablePersonalizedFilter = undefined;
288
288
  this.filterBarLegacyConfigName = undefined;
289
+ this.autoLoad = undefined;
289
290
  this.allowDefault = undefined;
290
291
  this.scrollerLocked = false;
291
292
  this.showPersonalizedFilter = false;
@@ -432,7 +433,10 @@ const SnkFilterBar = class {
432
433
  }
433
434
  async doLoadData(forceReload = false) {
434
435
  try {
435
- if (this._firstLoad && !forceReload) {
436
+ if (this._firstLoad && this.autoLoad === false) {
437
+ return;
438
+ }
439
+ if (this._firstLoad && !forceReload && this.autoLoad === undefined) {
436
440
  let autoLoad = await this._application.getBooleanParam("global.carregar.registros.iniciar.tela");
437
441
  if (!autoLoad) {
438
442
  return;
@@ -14,6 +14,8 @@ const SnkFormView = class {
14
14
  this.snkContentCardChanged = index.createEvent(this, "snkContentCardChanged", 7);
15
15
  this.snkRequestClearFieldToFocus = index.createEvent(this, "snkRequestClearFieldToFocus", 7);
16
16
  this.formItemsReady = index.createEvent(this, "formItemsReady", 7);
17
+ this._customEditors = new Map();
18
+ this._fieldProps = new Map();
17
19
  this.levelPath = undefined;
18
20
  this.label = undefined;
19
21
  this.name = undefined;
@@ -27,12 +29,47 @@ const SnkFormView = class {
27
29
  this.canFix = true;
28
30
  this.recordsValidator = undefined;
29
31
  this.fieldToFocus = undefined;
32
+ this.customEditors = undefined;
33
+ this.fieldsProps = undefined;
30
34
  }
31
35
  async showUp() {
32
36
  if (this._formView) {
33
37
  this._formView.showUp();
34
38
  }
35
39
  }
40
+ /**
41
+ * Registra um editor customizado para campos da grade e formulário
42
+ */
43
+ async addCustomEditor(fieldName, customEditor, detailContext) {
44
+ if (this._formView) {
45
+ this._formView.addCustomEditor(fieldName, customEditor, detailContext);
46
+ return;
47
+ }
48
+ const newCustomEditors = new Map(this._customEditors);
49
+ newCustomEditors.set(fieldName, { customEditor, detailContext });
50
+ this._customEditors = newCustomEditors;
51
+ }
52
+ observePropsCustomEditor(newValue) {
53
+ for (const fieldName in newValue) {
54
+ this.addCustomEditor(fieldName, newValue[fieldName]);
55
+ }
56
+ }
57
+ /**
58
+ * Altera/adiciona uma propriedade nos metadados do campo.
59
+ */
60
+ async setFieldProp(fieldName, propName, value) {
61
+ const props = this._fieldProps.get(fieldName) || [];
62
+ this._fieldProps.set(fieldName, [...props, { propName, value }]);
63
+ }
64
+ async observeFieldsProps(newValue) {
65
+ for (const field in newValue) {
66
+ const fieldProps = newValue[field];
67
+ const propNames = Object.keys(fieldProps);
68
+ for (const propName of propNames) {
69
+ await this.setFieldProp(field, propName, fieldProps[propName]);
70
+ }
71
+ }
72
+ }
36
73
  changeFix() {
37
74
  this.fixed = !this.fixed;
38
75
  this.emitEvent("fixed");
@@ -91,7 +128,13 @@ const SnkFormView = class {
91
128
  this._dataBinder.onDisconnectedCallback();
92
129
  }
93
130
  }
131
+ componentDidLoad() {
132
+ this.observePropsCustomEditor(this.customEditors);
133
+ this.observeFieldsProps(this.fieldsProps);
134
+ }
94
135
  componentDidRender() {
136
+ this.setCustomEditors();
137
+ this.setFieldProps();
95
138
  if (this.fieldToFocus == undefined) {
96
139
  return;
97
140
  }
@@ -103,6 +146,26 @@ const SnkFormView = class {
103
146
  this.snkRequestClearFieldToFocus.emit();
104
147
  });
105
148
  }
149
+ setCustomEditors() {
150
+ if (!this._formView) {
151
+ return;
152
+ }
153
+ for (const [fieldName, customEditorProps] of this._customEditors) {
154
+ this._formView.addCustomEditor(fieldName, customEditorProps.customEditor, customEditorProps.detailContext);
155
+ this._customEditors.delete(fieldName);
156
+ }
157
+ }
158
+ setFieldProps() {
159
+ if (!this._formView) {
160
+ return;
161
+ }
162
+ for (const [fieldName, propsToChange] of this._fieldProps) {
163
+ propsToChange.forEach(prop => {
164
+ this._formView.setFieldProp(fieldName, prop.propName, prop.value);
165
+ this._fieldProps.delete(fieldName);
166
+ });
167
+ }
168
+ }
106
169
  render() {
107
170
  return (index.h(index.Host, { class: "ez-box__container" }, index.h("div", { class: "summary-header ez-flex ez-size-width--full" }, index.h("div", { class: "ez-flex ez-text ez-title--primary ez-text--bold ez-flex--justify-start ez-flex--align-items-center ez-col--sd-9" }, this.levelPath ? index.h("span", { class: "level-path" }, this.levelPath + " /") : undefined, this.label), index.h("div", { class: "ez-flex ez-flex--justify-end ez-col--sd-3" }, this.canFix &&
108
171
  index.h("ez-button", { class: "ez-padding-left--medium", mode: "icon", size: "small", iconName: this.fixed ? "un-pin" : "push-pin", "data-element-id": core.ElementIDUtils.getInternalIDInfo("toggleFixed_ezFormCard"), onClick: () => this.changeFix(), title: this.fixed ? "Desafixar" : "Fixar" }), this.canExpand &&
@@ -112,6 +175,10 @@ const SnkFormView = class {
112
175
  :
113
176
  index.h("ez-form-view", { ref: ref => this._formView = ref, fields: this.fields, onEzContentReady: evt => this.bindFields(evt.detail), onFormItemsReady: (event) => this.handleFormItemsReady(event) })));
114
177
  }
178
+ static get watchers() { return {
179
+ "customEditors": ["observePropsCustomEditor"],
180
+ "fieldsProps": ["observeFieldsProps"]
181
+ }; }
115
182
  };
116
183
  SnkFormView.style = snkFormViewCss;
117
184
 
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-f9e81701.js');
6
6
  const core = require('@sankhyalabs/core');
7
- const SnkFormConfigManager = require('./SnkFormConfigManager-f9dc0d28.js');
7
+ const SnkFormConfigManager = require('./SnkFormConfigManager-1b13bacd.js');
8
8
  const ResourceIDUtils = require('./ResourceIDUtils-5ff86aa7.js');
9
9
  require('./ConfigStorage-942ce74b.js');
10
10
  require('./form-config-fetcher-2dd00e5b.js');
@@ -21,6 +21,7 @@ const SnkForm = class {
21
21
  this.exit = index.createEvent(this, "exit", 7);
22
22
  this.actionClick = index.createEvent(this, "actionClick", 7);
23
23
  this.formItemsReady = index.createEvent(this, "formItemsReady", 7);
24
+ this._customEditors = new Map();
24
25
  this._dataUnit = undefined;
25
26
  this._dataState = undefined;
26
27
  this._showFormConfig = false;
@@ -43,6 +44,24 @@ const SnkForm = class {
43
44
  async hideConfig() {
44
45
  this._showFormConfig = false;
45
46
  }
47
+ /**
48
+ * Registra um editor customizado para campos da grade e formulário.
49
+ */
50
+ async addCustomEditor(fieldName, customEditor) {
51
+ if (this._form) {
52
+ this._form.addCustomEditor(fieldName, customEditor);
53
+ return;
54
+ }
55
+ const newCustomEditors = new Map(this._customEditors);
56
+ newCustomEditors.set(fieldName, customEditor);
57
+ this._customEditors = newCustomEditors;
58
+ }
59
+ /**
60
+ * Altera/adiciona uma propriedade nos metadados do campo.
61
+ */
62
+ async setFieldProp(fieldName, propName, value) {
63
+ await this._form.setFieldProp(fieldName, propName, value);
64
+ }
46
65
  closeConfig() {
47
66
  this.hideConfig();
48
67
  }
@@ -50,6 +69,18 @@ const SnkForm = class {
50
69
  const dataInfo = { dataUnit: this._dataUnit };
51
70
  core.ElementIDUtils.addIDInfo(this._element, null, dataInfo);
52
71
  }
72
+ setCustomEditors() {
73
+ if (!this._form) {
74
+ return;
75
+ }
76
+ for (const [fieldName, customEditor] of this._customEditors) {
77
+ this._form.addCustomEditor(fieldName, customEditor);
78
+ this._customEditors.delete(fieldName);
79
+ }
80
+ }
81
+ async componentDidRender() {
82
+ this.setCustomEditors();
83
+ }
53
84
  async componentWillLoad() {
54
85
  let parent = this._element.parentElement;
55
86
  while (parent) {
@@ -65,9 +96,7 @@ const SnkForm = class {
65
96
  this._dataUnit = evt.detail;
66
97
  });
67
98
  }
68
- this._snkDataUnit.addEventListener("dataStateChange", (evt) => {
69
- this._dataState = evt.detail;
70
- });
99
+ this._snkDataUnit.addEventListener("dataStateChange", this.handleDataStateChange.bind(this));
71
100
  break;
72
101
  }
73
102
  parent = parent.parentElement;
@@ -77,7 +106,23 @@ const SnkForm = class {
77
106
  }
78
107
  this._configManager = new SnkFormConfigManager.SnkFormConfigManager(this.configName, this.resourceID);
79
108
  this.addFormLegacyConfig();
80
- this._configManager.loadConfig();
109
+ await this._configManager.loadConfig();
110
+ }
111
+ async handleDataStateChange(evt) {
112
+ var _a;
113
+ this._dataState = evt.detail;
114
+ const fieldsWithRmPrecision = await this._snkDataUnit.getFieldsWithRmPrecision();
115
+ for (const field of fieldsWithRmPrecision || []) {
116
+ if (!field) {
117
+ continue;
118
+ }
119
+ const rmPrecision = (_a = this._dataState.rowMetadata) === null || _a === void 0 ? void 0 : _a.getProp('rm_precision', field);
120
+ if (!rmPrecision && rmPrecision !== 0) {
121
+ continue;
122
+ }
123
+ await this.setFieldProp(field, 'precision', rmPrecision);
124
+ await this.setFieldProp(field, 'prettyPrecision', rmPrecision);
125
+ }
81
126
  }
82
127
  addFormLegacyConfig() {
83
128
  if (this.formLegacyConfigName) {
@@ -88,7 +133,7 @@ const SnkForm = class {
88
133
  if (!this._dataUnit || !this._dataState) {
89
134
  return undefined;
90
135
  }
91
- return (index.h("section", null, index.h("div", { class: "ez-row" }, index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("ez-form", { key: "ezForm" + this._snkDataUnit.entityName, "data-element-id": "embedded", dataUnit: this._dataUnit, config: this._configManager.getConfig(this._dataState.insertionMode, this._dataUnit), recordsValidator: this.recordsValidator, class: this._showFormConfig ? 'snk-form__form--hidden' : '' }), this._showFormConfig &&
136
+ return (index.h("section", null, index.h("div", { class: "ez-row" }, index.h("div", { class: "ez-col ez-col--sd-12" }, index.h("ez-form", { ref: (ref) => this._form = ref, key: "ezForm" + this._snkDataUnit.entityName, "data-element-id": "embedded", dataUnit: this._dataUnit, config: this._configManager.getConfig(this._dataState.insertionMode, this._dataUnit), recordsValidator: this.recordsValidator, class: this._showFormConfig ? 'snk-form__form--hidden' : '' }), this._showFormConfig &&
92
137
  index.h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this._dataUnit, configManager: this._configManager, onConfigClose: () => this.closeConfig() })))));
93
138
  }
94
139
  get _element() { return index.getElement(this); }