@sankhyalabs/sankhyablocks 10.1.0-dev.51 → 10.1.0-dev.53

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 (273) hide show
  1. package/dist/cjs/{ConfigStorage-a1fab5ca.js → ConfigStorage-4201dd3d.js} +2 -2
  2. package/dist/cjs/{DataFetcher-384d2ce8.js → DataFetcher-b3a8075d.js} +2830 -2
  3. package/dist/cjs/FormConfigHelper-c5f5473a.js +342 -0
  4. package/dist/cjs/{ISave-ecbe9336.js → ISave-4674c283.js} +1 -1
  5. package/dist/cjs/{PersonalizedFilterUtils-eccb267a.js → PersonalizedFilterUtils-263e4d24.js} +52 -5
  6. package/dist/cjs/{SnkFormConfigManager-44386305.js → SnkFormConfigManager-c3a49038.js} +2 -2
  7. package/dist/cjs/{SnkMultiSelectionListDataSource-293bc3d2.js → SnkMultiSelectionListDataSource-0bc94d36.js} +71 -24
  8. package/dist/cjs/{auth-fetcher-6b134ec4.js → auth-fetcher-0ecc53ff.js} +1 -1
  9. package/dist/cjs/{dataunit-fetcher-b9822794.js → dataunit-fetcher-bcbc38c0.js} +2 -3
  10. package/dist/cjs/{filter-type.enum-2bb46d2a.js → filter-type.enum-b3b388af.js} +7 -0
  11. package/dist/cjs/{form-config-fetcher-45d1964c.js → form-config-fetcher-f80dbc3b.js} +23 -5
  12. package/dist/cjs/index-1894343a.js +24 -36
  13. package/dist/cjs/loader.cjs.js +1 -1
  14. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +4 -5
  15. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  16. package/dist/cjs/snk-actions-button_9.cjs.entry.js +5 -6
  17. package/dist/cjs/snk-application.cjs.entry.js +7 -8
  18. package/dist/cjs/snk-attach_11.cjs.entry.js +2950 -0
  19. package/dist/cjs/snk-crud.cjs.entry.js +31 -229
  20. package/dist/cjs/snk-data-exporter.cjs.entry.js +5 -6
  21. package/dist/cjs/{snk-data-unit-4b6dc396.js → snk-data-unit-3b94547d.js} +11 -11
  22. package/dist/cjs/snk-data-unit.cjs.entry.js +3 -4
  23. package/dist/cjs/snk-detail-view.cjs.entry.js +16 -11
  24. package/dist/cjs/snk-dynaform-config-header_5.cjs.entry.js +739 -0
  25. package/dist/cjs/snk-dynaform-detail-view_2.cjs.entry.js +938 -0
  26. package/dist/cjs/snk-dynaform-field-config_2.cjs.entry.js +327 -0
  27. package/dist/cjs/snk-dynaform-guides-view-e98f7f3a.js +747 -0
  28. package/dist/cjs/snk-dynaform-guides-view.cjs.entry.js +23 -0
  29. package/dist/cjs/snk-dynaform.cjs.entry.js +675 -0
  30. package/dist/cjs/{snk-expression-group_2.cjs.entry.js → snk-expression-group_4.cjs.entry.js} +421 -18
  31. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +41 -44
  32. package/dist/cjs/snk-form_2.cjs.entry.js +4 -5
  33. package/dist/cjs/snk-grid.cjs.entry.js +7 -8
  34. package/dist/cjs/{snk-guides-viewer-b4ca3437.js → snk-guides-viewer-3054d541.js} +2 -2
  35. package/dist/cjs/snk-guides-viewer.cjs.entry.js +5 -6
  36. package/dist/cjs/snk-layout-form-config.cjs.entry.js +4 -5
  37. package/dist/cjs/snk-pesquisa.cjs.entry.js +4 -5
  38. package/dist/cjs/taskbarUtils-38748460.js +231 -0
  39. package/dist/collection/collection-manifest.json +17 -0
  40. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.css +4 -1
  41. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +6 -0
  42. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +1 -1
  43. package/dist/collection/components/snk-crud/utils/taskbarUtils.js +14 -0
  44. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +67 -20
  45. package/dist/collection/components/snk-dynaform/interfaces/PropsCustomEditor.js +1 -0
  46. package/dist/collection/components/snk-dynaform/interfaces/PropsCustomRender.js +1 -0
  47. package/dist/collection/components/snk-dynaform/snk-dynaform.css +64 -0
  48. package/dist/collection/components/snk-dynaform/snk-dynaform.js +1657 -0
  49. package/dist/collection/components/snk-dynaform/subcomponents/CardFormResizeObserver.js +26 -0
  50. package/dist/collection/components/snk-dynaform/subcomponents/GuideBuilder.js +51 -0
  51. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-detail-view/snk-dynaform-detail-view.css +112 -0
  52. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-detail-view/snk-dynaform-detail-view.js +992 -0
  53. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-form-view/snk-dynaform-form-view.css +64 -0
  54. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-form-view/snk-dynaform-form-view.js +588 -0
  55. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-guides-view/snk-dynaform-guides-view.css +98 -0
  56. package/dist/collection/components/snk-dynaform/subcomponents/snk-dynaform-guides-view/snk-dynaform-guides-view.js +1167 -0
  57. package/dist/collection/components/snk-dynaform-form-config/FormConfigHelper.js +325 -0
  58. package/dist/collection/components/snk-dynaform-form-config/SnkFormConfigManager.js +212 -0
  59. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-config-header.css +17 -0
  60. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-config-header.js +236 -0
  61. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-configs-button/snk-dynaform-configs-button.css +41 -0
  62. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-configs-button/snk-dynaform-configs-button.js +170 -0
  63. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-config/snk-dynaform-field-config.css +22 -0
  64. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-config/snk-dynaform-field-config.js +408 -0
  65. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-item.css +88 -0
  66. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-item.js +209 -0
  67. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-fields-layout/snk-dynaform-fields-layout.css +167 -0
  68. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-fields-layout/snk-dynaform-fields-layout.js +655 -0
  69. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-fields-selector/snk-dynaform-fields-selector.css +42 -0
  70. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-fields-selector/snk-dynaform-fields-selector.js +171 -0
  71. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-form-config.css +66 -0
  72. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-form-config.js +557 -0
  73. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-guides-configurator/snk-dynaform-guides-configurator.css +80 -0
  74. package/dist/collection/components/snk-dynaform-form-config/snk-dynaform-guides-configurator/snk-dynaform-guides-configurator.js +326 -0
  75. package/dist/collection/components/snk-grid/snk-grid.css +14 -7
  76. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +22 -4
  77. package/dist/components/ContinuousInsertUtils.js +67 -20
  78. package/dist/components/form-config-fetcher.js +22 -4
  79. package/dist/components/index.d.ts +12 -0
  80. package/dist/components/index.js +12 -0
  81. package/dist/components/snk-crud.js +1 -198
  82. package/dist/components/snk-detail-view2.js +8 -2
  83. package/dist/components/snk-dynaform-config-header.d.ts +11 -0
  84. package/dist/components/snk-dynaform-config-header.js +6 -0
  85. package/dist/components/snk-dynaform-config-header2.js +103 -0
  86. package/dist/components/snk-dynaform-configs-button.d.ts +11 -0
  87. package/dist/components/snk-dynaform-configs-button.js +6 -0
  88. package/dist/components/snk-dynaform-configs-button2.js +76 -0
  89. package/dist/components/snk-dynaform-detail-view.d.ts +11 -0
  90. package/dist/components/snk-dynaform-detail-view.js +6 -0
  91. package/dist/components/snk-dynaform-detail-view2.js +1835 -0
  92. package/dist/components/snk-dynaform-field-config.d.ts +11 -0
  93. package/dist/components/snk-dynaform-field-config.js +6 -0
  94. package/dist/components/snk-dynaform-field-config2.js +605 -0
  95. package/dist/components/snk-dynaform-field-item.d.ts +11 -0
  96. package/dist/components/snk-dynaform-field-item.js +6 -0
  97. package/dist/components/snk-dynaform-field-item2.js +96 -0
  98. package/dist/components/snk-dynaform-fields-layout.d.ts +11 -0
  99. package/dist/components/snk-dynaform-fields-layout.js +6 -0
  100. package/dist/components/snk-dynaform-fields-layout2.js +428 -0
  101. package/dist/components/snk-dynaform-fields-selector.d.ts +11 -0
  102. package/dist/components/snk-dynaform-fields-selector.js +6 -0
  103. package/dist/components/snk-dynaform-fields-selector2.js +104 -0
  104. package/dist/components/snk-dynaform-form-config.d.ts +11 -0
  105. package/dist/components/snk-dynaform-form-config.js +6 -0
  106. package/dist/components/snk-dynaform-form-config2.js +430 -0
  107. package/dist/components/snk-dynaform-form-view.d.ts +11 -0
  108. package/dist/components/snk-dynaform-form-view.js +6 -0
  109. package/dist/components/snk-dynaform-form-view2.js +270 -0
  110. package/dist/components/snk-dynaform-guides-configurator.d.ts +11 -0
  111. package/dist/components/snk-dynaform-guides-configurator.js +6 -0
  112. package/dist/components/snk-dynaform-guides-configurator2.js +173 -0
  113. package/dist/components/snk-dynaform-guides-view.d.ts +11 -0
  114. package/dist/components/snk-dynaform-guides-view.js +6 -0
  115. package/dist/components/snk-dynaform.d.ts +11 -0
  116. package/dist/components/snk-dynaform.js +1003 -0
  117. package/dist/components/snk-grid2.js +1 -1
  118. package/dist/components/taskbarUtils.js +224 -0
  119. package/dist/esm/{ConfigStorage-76872695.js → ConfigStorage-e834d1ea.js} +2 -2
  120. package/dist/esm/{DataFetcher-e60f8d53.js → DataFetcher-5ed0a377.js} +2830 -3
  121. package/dist/esm/FormConfigHelper-efc29480.js +328 -0
  122. package/dist/esm/{ISave-4929c071.js → ISave-5b46d691.js} +1 -1
  123. package/dist/esm/{PersonalizedFilterUtils-d2439a9a.js → PersonalizedFilterUtils-45b5803c.js} +49 -2
  124. package/dist/esm/{SnkFormConfigManager-83f6b22f.js → SnkFormConfigManager-bfd575c2.js} +2 -2
  125. package/dist/esm/{SnkMultiSelectionListDataSource-f6cabd15.js → SnkMultiSelectionListDataSource-9e9166ae.js} +71 -24
  126. package/dist/esm/{auth-fetcher-1a31c1e4.js → auth-fetcher-5283045d.js} +1 -1
  127. package/dist/esm/{dataunit-fetcher-c176e002.js → dataunit-fetcher-3b1ca96e.js} +1 -2
  128. package/dist/esm/{filter-type.enum-f6a8fe23.js → filter-type.enum-62b7fe88.js} +8 -1
  129. package/dist/esm/{form-config-fetcher-b44b2727.js → form-config-fetcher-db1bf140.js} +23 -5
  130. package/dist/esm/index-04f73a26.js +24 -36
  131. package/dist/esm/loader.js +1 -1
  132. package/dist/esm/pesquisa-grid_2.entry.js +4 -5
  133. package/dist/esm/sankhyablocks.js +1 -1
  134. package/dist/esm/snk-actions-button_9.entry.js +5 -6
  135. package/dist/esm/snk-application.entry.js +6 -7
  136. package/dist/esm/snk-attach_11.entry.js +2936 -0
  137. package/dist/esm/snk-crud.entry.js +6 -204
  138. package/dist/esm/snk-data-exporter.entry.js +5 -6
  139. package/dist/esm/{snk-data-unit-d8cfa950.js → snk-data-unit-dfde62cb.js} +2 -2
  140. package/dist/esm/snk-data-unit.entry.js +3 -4
  141. package/dist/esm/snk-detail-view.entry.js +14 -9
  142. package/dist/esm/snk-dynaform-config-header_5.entry.js +731 -0
  143. package/dist/esm/snk-dynaform-detail-view_2.entry.js +933 -0
  144. package/dist/esm/snk-dynaform-field-config_2.entry.js +322 -0
  145. package/dist/esm/snk-dynaform-guides-view-1f1455d6.js +744 -0
  146. package/dist/esm/snk-dynaform-guides-view.entry.js +15 -0
  147. package/dist/esm/snk-dynaform.entry.js +671 -0
  148. package/dist/esm/{snk-expression-group_2.entry.js → snk-expression-group_4.entry.js} +405 -4
  149. package/dist/esm/snk-filter-bar_4.entry.js +5 -8
  150. package/dist/esm/snk-form_2.entry.js +4 -5
  151. package/dist/esm/snk-grid.entry.js +7 -8
  152. package/dist/esm/{snk-guides-viewer-cc37535b.js → snk-guides-viewer-95fefcaa.js} +2 -2
  153. package/dist/esm/snk-guides-viewer.entry.js +5 -6
  154. package/dist/esm/snk-layout-form-config.entry.js +4 -5
  155. package/dist/esm/snk-pesquisa.entry.js +4 -5
  156. package/dist/esm/taskbarUtils-8501d09e.js +225 -0
  157. package/dist/sankhyablocks/p-0dbd53d9.js +1 -0
  158. package/dist/sankhyablocks/{p-f5ad0720.js → p-19d1ca14.js} +1 -1
  159. package/dist/sankhyablocks/{p-ab5e12fa.js → p-1cc4cf61.js} +1 -1
  160. package/dist/sankhyablocks/p-1edd6be6.entry.js +1 -0
  161. package/dist/sankhyablocks/p-22ddc1a5.entry.js +1 -0
  162. package/dist/sankhyablocks/p-24b059ee.entry.js +1 -0
  163. package/dist/sankhyablocks/p-2c00b93d.js +1 -0
  164. package/dist/sankhyablocks/p-3623fddf.entry.js +1 -0
  165. package/dist/sankhyablocks/p-43c94ba5.entry.js +1 -0
  166. package/dist/sankhyablocks/p-449dfe55.entry.js +1 -0
  167. package/dist/sankhyablocks/p-451b5bcc.entry.js +1 -0
  168. package/dist/sankhyablocks/p-46d7e2de.js +1 -0
  169. package/dist/sankhyablocks/{p-3c990841.js → p-51e853f2.js} +1 -1
  170. package/dist/sankhyablocks/p-58709cf9.js +1 -0
  171. package/dist/sankhyablocks/p-589016e2.entry.js +1 -0
  172. package/dist/sankhyablocks/p-5d02c032.js +1 -0
  173. package/dist/sankhyablocks/p-5d50f59a.entry.js +1 -0
  174. package/dist/sankhyablocks/p-61776b68.entry.js +1 -0
  175. package/dist/sankhyablocks/p-6b8a1ec3.js +1 -0
  176. package/dist/sankhyablocks/p-7038cf62.entry.js +1 -0
  177. package/dist/sankhyablocks/{p-771b137e.js → p-70c2ee5c.js} +1 -1
  178. package/dist/sankhyablocks/p-7628e04f.entry.js +1 -0
  179. package/dist/sankhyablocks/p-7798788b.entry.js +1 -0
  180. package/dist/sankhyablocks/p-77c26de0.js +1 -0
  181. package/dist/sankhyablocks/p-7c34a0f7.entry.js +1 -0
  182. package/dist/sankhyablocks/p-a4a0d9b7.entry.js +1 -0
  183. package/dist/sankhyablocks/{p-4f7adf97.js → p-b1bf9564.js} +1 -1
  184. package/dist/sankhyablocks/p-b4c2a99c.entry.js +1 -0
  185. package/dist/sankhyablocks/p-b75af274.entry.js +1 -0
  186. package/dist/sankhyablocks/p-c538bd6c.entry.js +1 -0
  187. package/dist/sankhyablocks/{p-3704bf1b.js → p-d5810110.js} +1 -1
  188. package/dist/sankhyablocks/p-d7fd447e.entry.js +1 -0
  189. package/dist/sankhyablocks/p-d88278f8.js +28 -0
  190. package/dist/sankhyablocks/p-f076d742.js +60 -0
  191. package/dist/sankhyablocks/{p-8fe740b7.entry.js → p-f1ef090f.entry.js} +2 -2
  192. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  193. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +1 -0
  194. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +8 -0
  195. package/dist/types/components/snk-dynaform/interfaces/PropsCustomEditor.d.ts +4 -0
  196. package/dist/types/components/snk-dynaform/interfaces/PropsCustomRender.d.ts +4 -0
  197. package/dist/types/components/snk-dynaform/subcomponents/CardFormResizeObserver.d.ts +1 -0
  198. package/dist/types/components/snk-dynaform/subcomponents/GuideBuilder.d.ts +14 -0
  199. package/dist/types/components/snk-dynaform/subcomponents/snk-dynaform-detail-view/snk-dynaform-detail-view.d.ts +158 -0
  200. package/dist/types/components/snk-dynaform/subcomponents/snk-dynaform-form-view/snk-dynaform-form-view.d.ts +107 -0
  201. package/dist/types/components/snk-dynaform-form-config/FormConfigHelper.d.ts +36 -0
  202. package/dist/types/components/snk-dynaform-form-config/SnkFormConfigManager.d.ts +35 -0
  203. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-config-header.d.ts +23 -0
  204. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-configs-button/snk-dynaform-configs-button.d.ts +19 -0
  205. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-config/snk-dynaform-field-config.d.ts +56 -0
  206. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-fields-layout/snk-dynaform-fields-layout.d.ts +74 -0
  207. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-fields-selector/snk-dynaform-fields-selector.d.ts +21 -0
  208. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-form-config.d.ts +95 -0
  209. package/dist/types/components/snk-dynaform-form-config/snk-dynaform-guides-configurator/snk-dynaform-guides-configurator.d.ts +35 -0
  210. package/dist/types/components.d.ts +2403 -1322
  211. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +1 -0
  212. package/package.json +1 -1
  213. package/react/components.d.ts +12 -0
  214. package/react/components.js +12 -0
  215. package/react/components.js.map +1 -1
  216. package/dist/cjs/SnkMessageBuilder-a9300ebe.js +0 -2833
  217. package/dist/cjs/default-filters-a09bf82b.js +0 -8
  218. package/dist/cjs/index-62760a9c.js +0 -49
  219. package/dist/cjs/index-8d94b7e0.js +0 -7
  220. package/dist/cjs/snk-attach.cjs.entry.js +0 -948
  221. package/dist/cjs/snk-default-filter.cjs.entry.js +0 -77
  222. package/dist/cjs/snk-filter-advanced-mode_3.cjs.entry.js +0 -99
  223. package/dist/cjs/snk-filter-detail.cjs.entry.js +0 -198
  224. package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +0 -408
  225. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +0 -109
  226. package/dist/cjs/snk-image-input.cjs.entry.js +0 -160
  227. package/dist/cjs/snk-personalized-filter.cjs.entry.js +0 -358
  228. package/dist/cjs/snk-simple-crud.cjs.entry.js +0 -865
  229. package/dist/esm/SnkMessageBuilder-1eb7a1af.js +0 -2831
  230. package/dist/esm/default-filters-50105e43.js +0 -8
  231. package/dist/esm/index-620ac460.js +0 -7
  232. package/dist/esm/index-8acbae97.js +0 -49
  233. package/dist/esm/snk-attach.entry.js +0 -944
  234. package/dist/esm/snk-default-filter.entry.js +0 -73
  235. package/dist/esm/snk-filter-advanced-mode_3.entry.js +0 -93
  236. package/dist/esm/snk-filter-detail.entry.js +0 -194
  237. package/dist/esm/snk-filter-field-search_2.entry.js +0 -403
  238. package/dist/esm/snk-filter-modal-item.entry.js +0 -105
  239. package/dist/esm/snk-image-input.entry.js +0 -156
  240. package/dist/esm/snk-personalized-filter.entry.js +0 -354
  241. package/dist/esm/snk-simple-crud.entry.js +0 -861
  242. package/dist/sankhyablocks/p-0afc64df.entry.js +0 -1
  243. package/dist/sankhyablocks/p-10f27dc6.entry.js +0 -1
  244. package/dist/sankhyablocks/p-134702f6.entry.js +0 -1
  245. package/dist/sankhyablocks/p-20f03230.entry.js +0 -1
  246. package/dist/sankhyablocks/p-2af8aca3.js +0 -1
  247. package/dist/sankhyablocks/p-33492640.entry.js +0 -1
  248. package/dist/sankhyablocks/p-3870748a.js +0 -28
  249. package/dist/sankhyablocks/p-438a225f.entry.js +0 -1
  250. package/dist/sankhyablocks/p-4d04bc75.entry.js +0 -1
  251. package/dist/sankhyablocks/p-554c0e54.js +0 -1
  252. package/dist/sankhyablocks/p-68c1a093.js +0 -1
  253. package/dist/sankhyablocks/p-6a4b21dd.js +0 -1
  254. package/dist/sankhyablocks/p-6ae7543b.entry.js +0 -1
  255. package/dist/sankhyablocks/p-6e278003.js +0 -60
  256. package/dist/sankhyablocks/p-82bcb4cf.entry.js +0 -1
  257. package/dist/sankhyablocks/p-84345e7a.js +0 -1
  258. package/dist/sankhyablocks/p-95af0bb1.entry.js +0 -1
  259. package/dist/sankhyablocks/p-95b36bd3.entry.js +0 -1
  260. package/dist/sankhyablocks/p-9e77e136.js +0 -1
  261. package/dist/sankhyablocks/p-a905712a.entry.js +0 -1
  262. package/dist/sankhyablocks/p-aff2d081.entry.js +0 -1
  263. package/dist/sankhyablocks/p-b0a357b4.entry.js +0 -1
  264. package/dist/sankhyablocks/p-b568c1d4.js +0 -1
  265. package/dist/sankhyablocks/p-bab4cde4.entry.js +0 -1
  266. package/dist/sankhyablocks/p-cc64239c.entry.js +0 -1
  267. package/dist/sankhyablocks/p-cd00a3d1.entry.js +0 -1
  268. package/dist/sankhyablocks/p-d9ec8c4b.entry.js +0 -1
  269. package/dist/sankhyablocks/p-e8df1dea.entry.js +0 -1
  270. package/dist/sankhyablocks/p-ef9343c3.entry.js +0 -1
  271. package/dist/sankhyablocks/p-f1bbf065.entry.js +0 -1
  272. package/dist/sankhyablocks/p-f4184ce7.js +0 -1
  273. package/dist/sankhyablocks/p-fec88660.entry.js +0 -1
@@ -0,0 +1,326 @@
1
+ import { ObjectUtils } from '@sankhyalabs/core';
2
+ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
3
+ import { h } from '@stencil/core';
4
+ export class SnkDynaformGuidesConfigurator {
5
+ constructor() {
6
+ this.sortLogic = (a, b) => {
7
+ var _a, _b;
8
+ const orderA = (_a = a.order) !== null && _a !== void 0 ? _a : Number.MAX_VALUE;
9
+ const orderB = (_b = b.order) !== null && _b !== void 0 ? _b : Number.MAX_VALUE;
10
+ return orderA - orderB;
11
+ };
12
+ this.handleAddGuide = () => {
13
+ this.createNewGuide.emit();
14
+ };
15
+ this.mainGuide = undefined;
16
+ this.visibleGuides = [];
17
+ this.hiddenGuides = [];
18
+ this.guidesList = [];
19
+ this.selectedGuide = undefined;
20
+ this.mainGuideName = undefined;
21
+ this.messagesBuilder = undefined;
22
+ }
23
+ observeGuidesList(newGuides) {
24
+ this.initGuidesConfig(newGuides);
25
+ }
26
+ observeMainGuideName() {
27
+ this.initGuidesConfig(this.guidesList);
28
+ }
29
+ observeSelectedGuide(newGuide) {
30
+ this.guideSelected.emit(newGuide);
31
+ }
32
+ componentWillLoad() {
33
+ this.initGuidesConfig(this.guidesList);
34
+ }
35
+ getMessage(key, params) {
36
+ return this.messagesBuilder.getMessage(key, params);
37
+ }
38
+ initGuidesConfig(newGuides) {
39
+ const mainName = this.mainGuideName;
40
+ const isMain = (guide) => !!mainName && guide.name === mainName;
41
+ const visibleAux = newGuides.filter(guide => guide.visible && !isMain(guide));
42
+ const hiddenAux = newGuides.filter(guide => !guide.visible && !isMain(guide));
43
+ this.visibleGuides = [...visibleAux].sort(this.sortLogic);
44
+ this.hiddenGuides = [...hiddenAux].sort(this.sortLogic);
45
+ this.mainGuide = newGuides.find(g => isMain(g));
46
+ }
47
+ handleSelectGuide(guide, evt) {
48
+ evt.stopPropagation();
49
+ this.selectedGuide = guide;
50
+ }
51
+ toggleGuideVisibility(guide, evt) {
52
+ evt.stopPropagation();
53
+ const updatedGuide = Object.assign(Object.assign({}, guide), { visible: !guide.visible });
54
+ let visibleAux;
55
+ let hiddenAux;
56
+ if (guide.visible) {
57
+ visibleAux = this.visibleGuides.filter(g => g.name !== guide.name);
58
+ hiddenAux = [...this.hiddenGuides, updatedGuide];
59
+ }
60
+ else {
61
+ visibleAux = [...this.visibleGuides, updatedGuide];
62
+ hiddenAux = this.hiddenGuides.filter(g => g.name !== guide.name);
63
+ }
64
+ this.applyGuidesUpdate([...visibleAux, ...hiddenAux]);
65
+ }
66
+ adjustListOrder(guideList) {
67
+ return guideList.map((g, index) => (Object.assign(Object.assign({}, g), { order: index })));
68
+ }
69
+ applyGuidesUpdate(updatedGuideList) {
70
+ let newGuidesList = this.adjustListOrder(updatedGuideList);
71
+ if (this.mainGuide) {
72
+ newGuidesList = [this.mainGuide, ...newGuidesList];
73
+ }
74
+ if (!ObjectUtils.equals(newGuidesList, this.guidesList)) {
75
+ this.guideListChanged.emit(newGuidesList);
76
+ }
77
+ }
78
+ async handleDeleteGuide(guide, e) {
79
+ e.stopPropagation();
80
+ const title = this.getMessage('snkFormConfig.confirm.title');
81
+ const message = this.getMessage('snkFormConfig.confirm.deleteGuide').replace('{0}', guide.label);
82
+ const canRemove = await ApplicationUtils.confirm(title, message);
83
+ if (!canRemove)
84
+ return;
85
+ this.guideDeleted.emit(guide);
86
+ const deletedMessage = this.getMessage('snkFormConfig.info.successfullyGuideDeleted').replace('{0}', guide.label);
87
+ ApplicationUtils.info(deletedMessage);
88
+ }
89
+ buildTabs() {
90
+ return this.visibleGuides.map((guide, i) => ({
91
+ tabKey: guide.name,
92
+ label: guide.label,
93
+ index: i,
94
+ }));
95
+ }
96
+ handleTabChange(tab) {
97
+ var _a;
98
+ if (!tab)
99
+ return;
100
+ const guide = this.guidesList.find(g => g.name === tab.tabKey);
101
+ if (guide && guide.name !== ((_a = this.selectedGuide) === null || _a === void 0 ? void 0 : _a.name)) {
102
+ this.selectedGuide = guide;
103
+ }
104
+ }
105
+ handleReorder(reorderedTabs) {
106
+ const visibleReordered = reorderedTabs
107
+ .map(t => this.visibleGuides.find(g => g.name === t.tabKey))
108
+ .filter(Boolean);
109
+ this.applyGuidesUpdate([...visibleReordered, ...this.hiddenGuides]);
110
+ }
111
+ renderTabActions() {
112
+ return this.visibleGuides.map((guide, i) => {
113
+ const slotIndex = i;
114
+ const isProtected = guide.isCustom || guide.isDetail;
115
+ return (h("div", { key: guide.name, slot: `tab${slotIndex}`, class: "tab-actions", onClick: (e) => e.stopPropagation() }, h("ez-button", { mode: "icon", class: "ez-button--tertiary tab-action-btn", size: "small", iconName: "eye-off", title: this.getMessage('snkFormConfig.guidesConfigurator.actions.hide'), onClick: (e) => this.toggleGuideVisibility(guide, e) }), h("ez-button", { mode: "icon", class: "ez-button--tertiary tab-action-btn", size: "small", iconName: "delete", isDisabled: isProtected, title: isProtected
116
+ ? this.getMessage('snkFormConfig.guidesConfigurator.canNotDeleteCustomGuide')
117
+ : this.getMessage('snkFormConfig.guidesConfigurator.actions.delete'), onClick: (e) => this.handleDeleteGuide(guide, e) })));
118
+ });
119
+ }
120
+ renderHiddenGuidesBar() {
121
+ if (this.hiddenGuides.length === 0)
122
+ return null;
123
+ return (h("div", { class: "hidden-guides-bar" }, h("span", { class: "hidden-guides-label" }, this.getMessage('snkFormConfig.guidesConfigurator.hiddenGuides'), ":"), this.hiddenGuides.map(guide => {
124
+ const isProtected = guide.isCustom || guide.isDetail;
125
+ return (h("div", { key: guide.name, class: "hidden-guide-chip", title: guide.label }, h("span", { class: "chip-label", onClick: (e) => this.handleSelectGuide(guide, e) }, guide.label), h("ez-button", { mode: "icon", class: "ez-button--tertiary", size: "small", iconName: "eye", title: this.getMessage('snkFormConfig.guidesConfigurator.actions.show'), onClick: (e) => this.toggleGuideVisibility(guide, e) }), h("ez-button", { mode: "icon", class: "ez-button--tertiary", size: "small", iconName: "delete", isDisabled: isProtected, title: isProtected
126
+ ? this.getMessage('snkFormConfig.guidesConfigurator.canNotDeleteCustomGuide')
127
+ : this.getMessage('snkFormConfig.guidesConfigurator.actions.delete'), onClick: (e) => this.handleDeleteGuide(guide, e) })));
128
+ })));
129
+ }
130
+ render() {
131
+ var _a;
132
+ const tabs = this.buildTabs();
133
+ return (h("div", { class: "guides-tab-configurator" }, h("div", { class: "tab-bar-row" }, h("ez-tabselector", { class: "guides-tabselector", tabs: tabs, selectedTab: (_a = this.selectedGuide) === null || _a === void 0 ? void 0 : _a.name, reorderable: true, onEzChange: (evt) => this.handleTabChange(evt.detail), onEzReorder: (evt) => this.handleReorder(evt.detail) }, this.renderTabActions()), h("ez-button", { label: this.getMessage('snkFormConfig.guidesConfigurator.createNewGuide'), variant: "secondary", size: "medium", leftIconName: "plus", onClick: this.handleAddGuide })), this.renderHiddenGuidesBar()));
134
+ }
135
+ static get is() { return "snk-dynaform-guides-configurator"; }
136
+ static get encapsulation() { return "scoped"; }
137
+ static get originalStyleUrls() {
138
+ return {
139
+ "$": ["snk-dynaform-guides-configurator.css"]
140
+ };
141
+ }
142
+ static get styleUrls() {
143
+ return {
144
+ "$": ["snk-dynaform-guides-configurator.css"]
145
+ };
146
+ }
147
+ static get properties() {
148
+ return {
149
+ "guidesList": {
150
+ "type": "unknown",
151
+ "mutable": false,
152
+ "complexType": {
153
+ "original": "IGuideConfig[]",
154
+ "resolved": "IGuideConfig[]",
155
+ "references": {
156
+ "IGuideConfig": {
157
+ "location": "import",
158
+ "path": "../FormConfigHelper"
159
+ }
160
+ }
161
+ },
162
+ "required": false,
163
+ "optional": false,
164
+ "docs": {
165
+ "tags": [],
166
+ "text": ""
167
+ },
168
+ "defaultValue": "[]"
169
+ },
170
+ "selectedGuide": {
171
+ "type": "unknown",
172
+ "mutable": false,
173
+ "complexType": {
174
+ "original": "IGuideConfig",
175
+ "resolved": "IGuideConfig",
176
+ "references": {
177
+ "IGuideConfig": {
178
+ "location": "import",
179
+ "path": "../FormConfigHelper"
180
+ }
181
+ }
182
+ },
183
+ "required": false,
184
+ "optional": false,
185
+ "docs": {
186
+ "tags": [],
187
+ "text": ""
188
+ }
189
+ },
190
+ "mainGuideName": {
191
+ "type": "string",
192
+ "mutable": false,
193
+ "complexType": {
194
+ "original": "string",
195
+ "resolved": "string",
196
+ "references": {}
197
+ },
198
+ "required": false,
199
+ "optional": true,
200
+ "docs": {
201
+ "tags": [],
202
+ "text": ""
203
+ },
204
+ "attribute": "main-guide-name",
205
+ "reflect": false
206
+ },
207
+ "messagesBuilder": {
208
+ "type": "unknown",
209
+ "mutable": true,
210
+ "complexType": {
211
+ "original": "SnkMessageBuilder",
212
+ "resolved": "SnkMessageBuilder",
213
+ "references": {
214
+ "SnkMessageBuilder": {
215
+ "location": "import",
216
+ "path": "../../../lib/message/SnkMessageBuilder"
217
+ }
218
+ }
219
+ },
220
+ "required": false,
221
+ "optional": false,
222
+ "docs": {
223
+ "tags": [],
224
+ "text": ""
225
+ }
226
+ }
227
+ };
228
+ }
229
+ static get states() {
230
+ return {
231
+ "mainGuide": {},
232
+ "visibleGuides": {},
233
+ "hiddenGuides": {}
234
+ };
235
+ }
236
+ static get events() {
237
+ return [{
238
+ "method": "guideSelected",
239
+ "name": "guideSelected",
240
+ "bubbles": true,
241
+ "cancelable": true,
242
+ "composed": true,
243
+ "docs": {
244
+ "tags": [],
245
+ "text": ""
246
+ },
247
+ "complexType": {
248
+ "original": "IGuideConfig",
249
+ "resolved": "IGuideConfig",
250
+ "references": {
251
+ "IGuideConfig": {
252
+ "location": "import",
253
+ "path": "../FormConfigHelper"
254
+ }
255
+ }
256
+ }
257
+ }, {
258
+ "method": "guideListChanged",
259
+ "name": "guideListChanged",
260
+ "bubbles": true,
261
+ "cancelable": true,
262
+ "composed": true,
263
+ "docs": {
264
+ "tags": [],
265
+ "text": ""
266
+ },
267
+ "complexType": {
268
+ "original": "IGuideConfig[]",
269
+ "resolved": "IGuideConfig[]",
270
+ "references": {
271
+ "IGuideConfig": {
272
+ "location": "import",
273
+ "path": "../FormConfigHelper"
274
+ }
275
+ }
276
+ }
277
+ }, {
278
+ "method": "guideDeleted",
279
+ "name": "guideDeleted",
280
+ "bubbles": true,
281
+ "cancelable": true,
282
+ "composed": true,
283
+ "docs": {
284
+ "tags": [],
285
+ "text": ""
286
+ },
287
+ "complexType": {
288
+ "original": "IGuideConfig",
289
+ "resolved": "IGuideConfig",
290
+ "references": {
291
+ "IGuideConfig": {
292
+ "location": "import",
293
+ "path": "../FormConfigHelper"
294
+ }
295
+ }
296
+ }
297
+ }, {
298
+ "method": "createNewGuide",
299
+ "name": "createNewGuide",
300
+ "bubbles": true,
301
+ "cancelable": true,
302
+ "composed": true,
303
+ "docs": {
304
+ "tags": [],
305
+ "text": ""
306
+ },
307
+ "complexType": {
308
+ "original": "void",
309
+ "resolved": "void",
310
+ "references": {}
311
+ }
312
+ }];
313
+ }
314
+ static get watchers() {
315
+ return [{
316
+ "propName": "guidesList",
317
+ "methodName": "observeGuidesList"
318
+ }, {
319
+ "propName": "mainGuideName",
320
+ "methodName": "observeMainGuideName"
321
+ }, {
322
+ "propName": "selectedGuide",
323
+ "methodName": "observeSelectedGuide"
324
+ }];
325
+ }
326
+ }
@@ -1,18 +1,20 @@
1
1
  :host {
2
2
  --snk-grid-min-height: 300px;
3
- --snk-grid-padding: var(--space--small);
3
+ --snk-grid-padding: unset;
4
+ --snk-grid-margin: var(--space--small);
5
+ --snk-grid-box-shadow: var(--shadow--small);
6
+ --snk-grid__header-padding: unset;
4
7
  }
5
8
 
6
9
  .snk-grid__container {
7
10
  display: flex;
8
11
  height: 100%;
9
- width: calc(100% - var(--space--12, 12px));
10
- /* padding: var(--snk-grid-padding); */
11
- margin: var(--snk-grid-padding);
12
+ margin: var(--snk-grid-margin);
12
13
  outline: none;
13
14
  border: 1px solid var(--color--strokes, #E1E2E5);
14
15
  border-radius: var(--border--radius-12, 12px);
15
- box-shadow: var(--shadow--small);
16
+ box-shadow: var(--snk-grid-box-shadow);
17
+ padding: var(--snk-grid-padding);
16
18
 
17
19
  --snk-grid-header--min-height: var(--space--52);
18
20
  }
@@ -24,6 +26,8 @@
24
26
  justify-content: flex-end;
25
27
  align-items: flex-start;
26
28
  min-height: var(--snk-grid-header--min-height);
29
+ padding-top: var(--snk-grid__header-padding);
30
+ padding-right: var(--snk-grid__header-padding);
27
31
  }
28
32
 
29
33
  .snk-grid__filter-bar {
@@ -58,6 +62,9 @@
58
62
 
59
63
  .snk-grid-container__footer {
60
64
  background-color: var(--background--xlight, #FFF);
61
- border-top: 1px solid var(--color--strokes, #E1E2E5);
62
65
  border-radius: 0 0 var(--border--radius-medium) var(--border--radius-medium);
63
- }
66
+ }
67
+
68
+ .snk-grid-container__footer:has(*) {
69
+ border-top: 1px solid var(--color--strokes, #E1E2E5);
70
+ }
@@ -29,6 +29,22 @@ export class FormConfigFetcher extends ResourceFetcher {
29
29
  }
30
30
  }`);
31
31
  }
32
+ getDistinctTabs(config) {
33
+ const fieldTabs = config.fields.map((field, index) => ({
34
+ label: field.tab,
35
+ name: field.tab,
36
+ order: index,
37
+ visible: true,
38
+ isDetail: false,
39
+ isCustom: false,
40
+ }));
41
+ return fieldTabs.reduce((total, item) => {
42
+ if (!total.some((tab) => tab.name === item.name)) {
43
+ return [...total, item];
44
+ }
45
+ return total;
46
+ }, []);
47
+ }
32
48
  loadFormConfig(formName, resourceID) {
33
49
  return new Promise((accept, reject) => {
34
50
  Promise.all([
@@ -38,14 +54,16 @@ export class FormConfigFetcher extends ResourceFetcher {
38
54
  this.loadResource(this.getPath(resourceID, formName, "defaultValues"))
39
55
  ])
40
56
  .then(([configAsString, formCardState, summary, defaultValues]) => {
57
+ var _a;
41
58
  let config;
42
59
  if (configAsString != undefined) {
43
60
  config = Object.assign(Object.assign({}, JSON.parse(configAsString)), { emptyConfig: false });
44
- const { tabs, fields } = config;
45
- if (tabs) {
46
- const allTabs = new Map(tabs.map(t => [t.label, t]));
47
- fields === null || fields === void 0 ? void 0 : fields.forEach(f => { var _a; return f.tab = ((_a = allTabs.get(this.getTabName(f.tab))) === null || _a === void 0 ? void 0 : _a.label) || allTabs.get(this.getTabName(f.tab)); });
61
+ if (!config.tabs) {
62
+ config.tabs = (_a = this.getDistinctTabs(config)) !== null && _a !== void 0 ? _a : [];
48
63
  }
64
+ const { tabs, fields } = config;
65
+ const allTabs = new Map(tabs.map(t => [t.label, t]));
66
+ fields === null || fields === void 0 ? void 0 : fields.forEach(f => { var _a; return f.tab = ((_a = allTabs.get(this.getTabName(f.tab))) === null || _a === void 0 ? void 0 : _a.label) || allTabs.get(this.getTabName(f.tab)); });
49
67
  config.fields = fields === null || fields === void 0 ? void 0 : fields.map((field) => {
50
68
  if ("readonly" in field) {
51
69
  const readOnly = field['readonly'] === true;
@@ -250,41 +250,35 @@ class CommonsExporter {
250
250
  return this.columnsState;
251
251
  }
252
252
  async buildColumnsMetadata(gridColumns) {
253
- var _a, _b, _c;
253
+ var _a;
254
254
  const columnsMetadata = [];
255
+ const searchPlusDescriptionIds = this.collectSearchPlusDescriptionIds(gridColumns);
255
256
  for (const column of gridColumns) {
257
+ if (this.isHiddenColumn(column)) {
258
+ continue;
259
+ }
256
260
  /**
257
- * TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
261
+ * A grid adiciona uma coluna auxiliar para a descrição de campos SEARCHPLUS
262
+ * (ex.: "ENTITYNAME.DESCRIPTIONFIELD"). A descrição já é emitida ao processar
263
+ * o próprio SEARCHPLUS, então pulamos a auxiliar para evitar duplicar a coluna.
258
264
  */
259
- if (column.hidden && column.name !== "RECDESP") {
265
+ if (searchPlusDescriptionIds.has(column.name)) {
260
266
  continue;
261
267
  }
262
268
  const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
263
269
  const customFormatter = await this.grid.getCustomValueFormatter(column.name);
264
- const isUserInterfaceSEARCH = (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface$1.SEARCH;
265
- const widthColumnDefault = 60;
266
- const labelColumn = isUserInterfaceSEARCH ? "Cód. " : column.label;
267
- let descriptionColumn = undefined;
270
+ const isSearchField = this.isSearchUserInterface(fieldData);
271
+ const labelColumn = isSearchField ? "Cód. " : column.label;
268
272
  let columnData = {
269
273
  id: column.name,
270
274
  label: labelColumn,
271
- width: isUserInterfaceSEARCH ? (labelColumn.length * this.DEFAULT_FONT_SIZE) : column.width,
275
+ width: isSearchField ? (labelColumn.length * this.DEFAULT_FONT_SIZE) : column.width,
272
276
  type: fieldData === null || fieldData === void 0 ? void 0 : fieldData.dataType,
273
277
  userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface,
274
278
  customFormatter
275
279
  };
276
- if (isUserInterfaceSEARCH && ((_b = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _b === void 0 ? void 0 : _b.DESCRIPTIONFIELD) != undefined) {
277
- const labelDescription = (_c = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _c === void 0 ? void 0 : _c.DESCRIPTIONENTITY;
278
- const mergedFrom = fieldData.properties.mergedFrom;
279
- const descriptionField = `${fieldData.properties.ENTITYNAME}.${fieldData.properties.DESCRIPTIONFIELD}`;
280
- descriptionColumn = {
281
- id: `${mergedFrom ? (mergedFrom + ".") : ""}${descriptionField}`,
282
- label: labelDescription,
283
- width: isUserInterfaceSEARCH && labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
284
- type: DataType.TEXT,
285
- userInterface: UserInterface$1.LONGTEXT,
286
- descriptionFrom: fieldData.name
287
- };
280
+ let descriptionColumn = isSearchField ? this.buildDescriptionColumn(fieldData, column) : undefined;
281
+ if (descriptionColumn) {
288
282
  const newWidth = this.getWidthByMetaData(column === null || column === void 0 ? void 0 : column.width, columnData === null || columnData === void 0 ? void 0 : columnData.width, descriptionColumn === null || descriptionColumn === void 0 ? void 0 : descriptionColumn.width);
289
283
  columnData = Object.assign(Object.assign({}, columnData), { width: newWidth === null || newWidth === void 0 ? void 0 : newWidth.codWidth });
290
284
  descriptionColumn = Object.assign(Object.assign({}, descriptionColumn), { width: newWidth === null || newWidth === void 0 ? void 0 : newWidth.descWidth, label: (descriptionColumn === null || descriptionColumn === void 0 ? void 0 : descriptionColumn.label) || (column === null || column === void 0 ? void 0 : column.label) });
@@ -295,6 +289,59 @@ class CommonsExporter {
295
289
  }
296
290
  return columnsMetadata || [];
297
291
  }
292
+ collectSearchPlusDescriptionIds(gridColumns) {
293
+ var _a;
294
+ const descriptionIds = new Set();
295
+ for (const column of gridColumns) {
296
+ if (this.isHiddenColumn(column)) {
297
+ continue;
298
+ }
299
+ const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
300
+ if (!this.isSearchUserInterface(fieldData)) {
301
+ continue;
302
+ }
303
+ const descriptionId = this.buildDescriptionColumnId(fieldData);
304
+ if (descriptionId) {
305
+ descriptionIds.add(descriptionId);
306
+ }
307
+ }
308
+ return descriptionIds;
309
+ }
310
+ /**
311
+ * TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
312
+ */
313
+ isHiddenColumn(column) {
314
+ return column.hidden && column.name !== "RECDESP";
315
+ }
316
+ isSearchUserInterface(fieldData) {
317
+ return (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface$1.SEARCH
318
+ || (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface$1.SEARCHPLUS;
319
+ }
320
+ buildDescriptionColumnId(fieldData) {
321
+ const properties = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties;
322
+ if ((properties === null || properties === void 0 ? void 0 : properties.DESCRIPTIONFIELD) == undefined) {
323
+ return undefined;
324
+ }
325
+ const descriptionField = `${properties.ENTITYNAME}.${properties.DESCRIPTIONFIELD}`;
326
+ return properties.mergedFrom ? `${properties.mergedFrom}.${descriptionField}` : descriptionField;
327
+ }
328
+ buildDescriptionColumn(fieldData, column) {
329
+ var _a;
330
+ const id = this.buildDescriptionColumnId(fieldData);
331
+ if (!id) {
332
+ return undefined;
333
+ }
334
+ const labelDescription = (_a = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _a === void 0 ? void 0 : _a.DESCRIPTIONENTITY;
335
+ const widthColumnDefault = 60;
336
+ return {
337
+ id,
338
+ label: labelDescription,
339
+ width: labelDescription ? (labelDescription.length * this.DEFAULT_FONT_SIZE - widthColumnDefault) : column.width,
340
+ type: DataType.TEXT,
341
+ userInterface: UserInterface$1.LONGTEXT,
342
+ descriptionFrom: fieldData.name
343
+ };
344
+ }
298
345
  getWidthByMetaData(maxWidth, widthCod, widthDescription) {
299
346
  const totalCurrentWidth = widthCod + widthDescription;
300
347
  const codPercentage = widthCod / totalCurrentWidth;
@@ -109,6 +109,22 @@ class FormConfigFetcher extends ResourceFetcher {
109
109
  }
110
110
  }`);
111
111
  }
112
+ getDistinctTabs(config) {
113
+ const fieldTabs = config.fields.map((field, index) => ({
114
+ label: field.tab,
115
+ name: field.tab,
116
+ order: index,
117
+ visible: true,
118
+ isDetail: false,
119
+ isCustom: false,
120
+ }));
121
+ return fieldTabs.reduce((total, item) => {
122
+ if (!total.some((tab) => tab.name === item.name)) {
123
+ return [...total, item];
124
+ }
125
+ return total;
126
+ }, []);
127
+ }
112
128
  loadFormConfig(formName, resourceID) {
113
129
  return new Promise((accept, reject) => {
114
130
  Promise.all([
@@ -118,14 +134,16 @@ class FormConfigFetcher extends ResourceFetcher {
118
134
  this.loadResource(this.getPath(resourceID, formName, "defaultValues"))
119
135
  ])
120
136
  .then(([configAsString, formCardState, summary, defaultValues]) => {
137
+ var _a;
121
138
  let config;
122
139
  if (configAsString != undefined) {
123
140
  config = Object.assign(Object.assign({}, JSON.parse(configAsString)), { emptyConfig: false });
124
- const { tabs, fields } = config;
125
- if (tabs) {
126
- const allTabs = new Map(tabs.map(t => [t.label, t]));
127
- fields === null || fields === void 0 ? void 0 : fields.forEach(f => { var _a; return f.tab = ((_a = allTabs.get(this.getTabName(f.tab))) === null || _a === void 0 ? void 0 : _a.label) || allTabs.get(this.getTabName(f.tab)); });
141
+ if (!config.tabs) {
142
+ config.tabs = (_a = this.getDistinctTabs(config)) !== null && _a !== void 0 ? _a : [];
128
143
  }
144
+ const { tabs, fields } = config;
145
+ const allTabs = new Map(tabs.map(t => [t.label, t]));
146
+ fields === null || fields === void 0 ? void 0 : fields.forEach(f => { var _a; return f.tab = ((_a = allTabs.get(this.getTabName(f.tab))) === null || _a === void 0 ? void 0 : _a.label) || allTabs.get(this.getTabName(f.tab)); });
129
147
  config.fields = fields === null || fields === void 0 ? void 0 : fields.map((field) => {
130
148
  if ("readonly" in field) {
131
149
  const readOnly = field['readonly'] === true;
@@ -21,6 +21,18 @@ export { SnkDataExporter as SnkDataExporter } from '../types/components/snk-data
21
21
  export { SnkDataUnit as SnkDataUnit } from '../types/components/snk-data-unit/snk-data-unit';
22
22
  export { SnkDefaultFilter as SnkDefaultFilter } from '../types/components/snk-filter-bar/filter-modal/subcomponents/snk-default-filter/snk-default-filter';
23
23
  export { SnkDetailView as SnkDetailView } from '../types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view';
24
+ export { SnkDynaform as SnkDynaform } from '../types/components/snk-dynaform/snk-dynaform';
25
+ export { SnkDynaformConfigHeader as SnkDynaformConfigHeader } from '../types/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-config-header';
26
+ export { SnkDynaformConfigsButton as SnkDynaformConfigsButton } from '../types/components/snk-dynaform-form-config/snk-dynaform-config-header/snk-dynaform-configs-button/snk-dynaform-configs-button';
27
+ export { SnkDynaformDetailView as SnkDynaformDetailView } from '../types/components/snk-dynaform/subcomponents/snk-dynaform-detail-view/snk-dynaform-detail-view';
28
+ export { SnkDynaformFieldConfig as SnkDynaformFieldConfig } from '../types/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-config/snk-dynaform-field-config';
29
+ export { SnkDynaformFieldItem as SnkDynaformFieldItem } from '../types/components/snk-dynaform-form-config/snk-dynaform-field-item/snk-dynaform-field-item';
30
+ export { SnkDynaformFieldsLayout as SnkDynaformFieldsLayout } from '../types/components/snk-dynaform-form-config/snk-dynaform-fields-layout/snk-dynaform-fields-layout';
31
+ export { SnkDynaformFieldsSelector as SnkDynaformFieldsSelector } from '../types/components/snk-dynaform-form-config/snk-dynaform-fields-selector/snk-dynaform-fields-selector';
32
+ export { SnkDynaformFormConfig as SnkDynaformFormConfig } from '../types/components/snk-dynaform-form-config/snk-dynaform-form-config';
33
+ export { SnkDynaformFormView as SnkDynaformFormView } from '../types/components/snk-dynaform/subcomponents/snk-dynaform-form-view/snk-dynaform-form-view';
34
+ export { SnkDynaformGuidesConfigurator as SnkDynaformGuidesConfigurator } from '../types/components/snk-dynaform-form-config/snk-dynaform-guides-configurator/snk-dynaform-guides-configurator';
35
+ export { SnkDynaformGuidesViewer as SnkDynaformGuidesView } from '../types/components/snk-dynaform/subcomponents/snk-dynaform-guides-view/snk-dynaform-guides-view';
24
36
  export { SnkEntityList as SnkEntityList } from '../types/components/snk-entity-list/snk-entity-list';
25
37
  export { SnkEntitySearch as SnkEntitySearch } from '../types/components/snk-crud/subcomponents/snk-entity-search';
26
38
  export { SnkExporterEmailSender as SnkExporterEmailSender } from '../types/components/snk-data-exporter/exporter-email-sender/snk-exporter-email-sender';
@@ -21,6 +21,18 @@ export { SnkDataExporter, defineCustomElement as defineCustomElementSnkDataExpor
21
21
  export { SnkDataUnit, defineCustomElement as defineCustomElementSnkDataUnit } from './snk-data-unit.js';
22
22
  export { SnkDefaultFilter, defineCustomElement as defineCustomElementSnkDefaultFilter } from './snk-default-filter.js';
23
23
  export { SnkDetailView, defineCustomElement as defineCustomElementSnkDetailView } from './snk-detail-view.js';
24
+ export { SnkDynaform, defineCustomElement as defineCustomElementSnkDynaform } from './snk-dynaform.js';
25
+ export { SnkDynaformConfigHeader, defineCustomElement as defineCustomElementSnkDynaformConfigHeader } from './snk-dynaform-config-header.js';
26
+ export { SnkDynaformConfigsButton, defineCustomElement as defineCustomElementSnkDynaformConfigsButton } from './snk-dynaform-configs-button.js';
27
+ export { SnkDynaformDetailView, defineCustomElement as defineCustomElementSnkDynaformDetailView } from './snk-dynaform-detail-view.js';
28
+ export { SnkDynaformFieldConfig, defineCustomElement as defineCustomElementSnkDynaformFieldConfig } from './snk-dynaform-field-config.js';
29
+ export { SnkDynaformFieldItem, defineCustomElement as defineCustomElementSnkDynaformFieldItem } from './snk-dynaform-field-item.js';
30
+ export { SnkDynaformFieldsLayout, defineCustomElement as defineCustomElementSnkDynaformFieldsLayout } from './snk-dynaform-fields-layout.js';
31
+ export { SnkDynaformFieldsSelector, defineCustomElement as defineCustomElementSnkDynaformFieldsSelector } from './snk-dynaform-fields-selector.js';
32
+ export { SnkDynaformFormConfig, defineCustomElement as defineCustomElementSnkDynaformFormConfig } from './snk-dynaform-form-config.js';
33
+ export { SnkDynaformFormView, defineCustomElement as defineCustomElementSnkDynaformFormView } from './snk-dynaform-form-view.js';
34
+ export { SnkDynaformGuidesConfigurator, defineCustomElement as defineCustomElementSnkDynaformGuidesConfigurator } from './snk-dynaform-guides-configurator.js';
35
+ export { SnkDynaformGuidesView, defineCustomElement as defineCustomElementSnkDynaformGuidesView } from './snk-dynaform-guides-view.js';
24
36
  export { SnkEntityList, defineCustomElement as defineCustomElementSnkEntityList } from './snk-entity-list.js';
25
37
  export { SnkEntitySearch, defineCustomElement as defineCustomElementSnkEntitySearch } from './snk-entity-search.js';
26
38
  export { SnkExporterEmailSender, defineCustomElement as defineCustomElementSnkExporterEmailSender } from './snk-exporter-email-sender.js';