@sankhyalabs/sankhyablocks 8.16.0-dev.114 → 8.16.0-dev.116

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 (282) hide show
  1. package/dist/cjs/{ClientSideExporterProvider-a2753c93.js → ClientSideExporterProvider-0ce2bcd9.js} +2 -2
  2. package/dist/cjs/FormConfigHelper-c664dbae.js +260 -0
  3. package/dist/cjs/{SnkFormConfigManager-ce7b0951.js → SnkFormConfigManager-aa4631bd.js} +2 -3
  4. package/dist/cjs/{SnkMessageBuilder-21cc7f09.js → SnkMessageBuilder-e3b7850b.js} +16 -2
  5. package/dist/cjs/config-header.cjs.entry.js +79 -0
  6. package/dist/cjs/configs-button.cjs.entry.js +61 -0
  7. package/dist/cjs/{constants-77c1b8bd.js → constants-6d82e405.js} +8 -38
  8. package/dist/cjs/field-config_2.cjs.entry.js +324 -0
  9. package/dist/cjs/fields-layout.cjs.entry.js +341 -0
  10. package/dist/cjs/fields-selector.cjs.entry.js +74 -0
  11. package/dist/cjs/guides-configurator.cjs.entry.js +164 -0
  12. package/dist/cjs/{index-102ba62d.js → index-0ad2baeb.js} +4 -5
  13. package/dist/cjs/{index-f9e81701.js → index-1cf293c1.js} +28 -10
  14. package/dist/cjs/loader.cjs.js +2 -2
  15. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +2 -2
  16. package/dist/cjs/sankhyablocks.cjs.js +2 -2
  17. package/dist/cjs/snk-actions-button_8.cjs.entry.js +2 -2
  18. package/dist/cjs/snk-actions-form.cjs.entry.js +1 -1
  19. package/dist/cjs/snk-application.cjs.entry.js +3 -3
  20. package/dist/cjs/snk-attach.cjs.entry.js +4 -4
  21. package/dist/cjs/snk-client-confirm.cjs.entry.js +1 -1
  22. package/dist/cjs/snk-configurator.cjs.entry.js +2 -2
  23. package/dist/cjs/snk-crud.cjs.entry.js +4 -4
  24. package/dist/cjs/snk-custom-slot-elements.cjs.entry.js +1 -1
  25. package/dist/cjs/snk-data-exporter.cjs.entry.js +4 -4
  26. package/dist/cjs/{snk-data-unit-7913a033.js → snk-data-unit-3684c96e.js} +2 -2
  27. package/dist/cjs/snk-data-unit.cjs.entry.js +3 -3
  28. package/dist/cjs/snk-default-filter.cjs.entry.js +1 -1
  29. package/dist/cjs/snk-detail-view.cjs.entry.js +7 -7
  30. package/dist/cjs/snk-entity-list.cjs.entry.js +1 -1
  31. package/dist/cjs/snk-exporter-email-sender.cjs.entry.js +1 -1
  32. package/dist/cjs/snk-expression-group_2.cjs.entry.js +2 -2
  33. package/dist/cjs/snk-filter-advanced-mode_2.cjs.entry.js +1 -1
  34. package/dist/cjs/snk-filter-bar_4.cjs.entry.js +2 -2
  35. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  36. package/dist/cjs/snk-filter-checkbox-list.cjs.entry.js +1 -1
  37. package/dist/cjs/snk-filter-detail.cjs.entry.js +1 -1
  38. package/dist/cjs/snk-filter-field-search_2.cjs.entry.js +1 -1
  39. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +1 -1
  40. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
  41. package/dist/cjs/snk-filter-number.cjs.entry.js +1 -1
  42. package/dist/cjs/snk-filter-period.cjs.entry.js +1 -1
  43. package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
  44. package/dist/cjs/snk-filter-text.cjs.entry.js +1 -1
  45. package/dist/cjs/snk-form-summary.cjs.entry.js +1 -1
  46. package/dist/cjs/snk-form-view.cjs.entry.js +1 -1
  47. package/dist/cjs/snk-form_2.cjs.entry.js +433 -0
  48. package/dist/cjs/snk-grid.cjs.entry.js +5 -5
  49. package/dist/cjs/{snk-guides-viewer-450baf6a.js → snk-guides-viewer-edc0a00a.js} +5 -5
  50. package/dist/cjs/snk-guides-viewer.cjs.entry.js +6 -6
  51. package/dist/cjs/snk-personalized-filter-editor.cjs.entry.js +1 -1
  52. package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -2
  53. package/dist/cjs/snk-pesquisa.cjs.entry.js +2 -2
  54. package/dist/cjs/snk-print-selector.cjs.entry.js +1 -1
  55. package/dist/cjs/snk-simple-bar.cjs.entry.js +1 -1
  56. package/dist/cjs/snk-simple-crud.cjs.entry.js +6 -6
  57. package/dist/cjs/snk-taskbar.cjs.entry.js +3 -3
  58. package/dist/cjs/sortable.esm-9a110bb7.js +2668 -0
  59. package/dist/cjs/{taskbar-elements-6f4e06af.js → taskbar-elements-3b74cd21.js} +2 -2
  60. package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
  61. package/dist/collection/collection-manifest.json +7 -14
  62. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +1 -1
  63. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -0
  64. package/dist/collection/components/snk-form-config/FormConfigHelper.js +245 -0
  65. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +4 -5
  66. package/dist/collection/components/snk-form-config/config-header/config-header.css +18 -0
  67. package/dist/collection/components/snk-form-config/config-header/config-header.js +236 -0
  68. package/dist/collection/components/snk-form-config/config-header/configs-button/configs-button.css +41 -0
  69. package/dist/collection/components/snk-form-config/config-header/configs-button/configs-button.js +170 -0
  70. package/dist/collection/components/snk-form-config/field-item/field-config/field-config.css +21 -0
  71. package/dist/collection/components/snk-form-config/field-item/field-config/field-config.js +408 -0
  72. package/dist/collection/components/snk-form-config/field-item/field-item.css +108 -0
  73. package/dist/collection/components/snk-form-config/field-item/field-item.js +206 -0
  74. package/dist/collection/components/snk-form-config/fields-layout/fields-layout.css +133 -0
  75. package/dist/collection/components/snk-form-config/fields-layout/fields-layout.js +578 -0
  76. package/dist/collection/components/snk-form-config/fields-selector/fields-selector.css +38 -0
  77. package/dist/collection/components/snk-form-config/fields-selector/fields-selector.js +146 -0
  78. package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.css +132 -0
  79. package/dist/collection/components/snk-form-config/guides-configurator/guides-configurator.js +317 -0
  80. package/dist/collection/components/snk-form-config/snk-form-config.css +16 -229
  81. package/dist/collection/components/snk-form-config/snk-form-config.js +288 -980
  82. package/dist/collection/lib/message/resources/snk-form.msg.js +16 -2
  83. package/dist/collection/lib/utils/constants.js +7 -1
  84. package/dist/components/SnkFormConfigManager.js +2 -3
  85. package/dist/components/SnkMessageBuilder.js +16 -2
  86. package/dist/components/{snk-tab-config.d.ts → config-header.d.ts} +4 -4
  87. package/dist/components/config-header.js +6 -0
  88. package/dist/components/config-header2.js +103 -0
  89. package/dist/components/{snk-config-options.d.ts → configs-button.d.ts} +4 -4
  90. package/dist/components/configs-button.js +6 -0
  91. package/dist/components/configs-button2.js +76 -0
  92. package/dist/components/constants.js +8 -34
  93. package/dist/components/field-config.d.ts +11 -0
  94. package/dist/components/field-config.js +6 -0
  95. package/dist/components/field-config2.js +525 -0
  96. package/dist/components/field-item.d.ts +11 -0
  97. package/dist/components/field-item.js +6 -0
  98. package/dist/components/field-item2.js +93 -0
  99. package/dist/components/fields-layout.d.ts +11 -0
  100. package/dist/components/fields-layout.js +6 -0
  101. package/dist/components/fields-layout2.js +370 -0
  102. package/dist/components/{snk-field-config.d.ts → fields-selector.d.ts} +4 -4
  103. package/dist/components/fields-selector.js +6 -0
  104. package/dist/components/fields-selector2.js +98 -0
  105. package/dist/components/guides-configurator.d.ts +11 -0
  106. package/dist/components/guides-configurator.js +6 -0
  107. package/dist/components/guides-configurator2.js +182 -0
  108. package/dist/components/index.d.ts +7 -3
  109. package/dist/components/index.js +7 -3
  110. package/dist/components/index2.js +3 -4
  111. package/dist/components/snk-application2.js +1 -1
  112. package/dist/components/snk-crud.js +86 -62
  113. package/dist/components/snk-detail-view2.js +113 -89
  114. package/dist/components/snk-filter-bar2.js +1 -1
  115. package/dist/components/snk-form-config2.js +253 -953
  116. package/dist/components/snk-form.js +33 -9
  117. package/dist/components/sortable.esm.js +2666 -0
  118. package/dist/esm/{ClientSideExporterProvider-b3871edb.js → ClientSideExporterProvider-3ed744fd.js} +2 -2
  119. package/dist/esm/FormConfigHelper-49fe72ca.js +248 -0
  120. package/dist/esm/{SnkFormConfigManager-327dfdd4.js → SnkFormConfigManager-b4b93298.js} +2 -3
  121. package/dist/esm/{SnkMessageBuilder-0f112c19.js → SnkMessageBuilder-9c269caf.js} +16 -2
  122. package/dist/esm/config-header.entry.js +75 -0
  123. package/dist/esm/configs-button.entry.js +57 -0
  124. package/dist/esm/{constants-7db1128a.js → constants-7b422de0.js} +8 -34
  125. package/dist/esm/field-config_2.entry.js +319 -0
  126. package/dist/esm/fields-layout.entry.js +337 -0
  127. package/dist/esm/fields-selector.entry.js +70 -0
  128. package/dist/esm/guides-configurator.entry.js +160 -0
  129. package/dist/esm/{index-a7d3d3f1.js → index-479e1293.js} +28 -10
  130. package/dist/esm/{index-bdf75557.js → index-b72af127.js} +4 -5
  131. package/dist/esm/loader.js +3 -3
  132. package/dist/esm/pesquisa-grid_2.entry.js +2 -2
  133. package/dist/esm/sankhyablocks.js +3 -3
  134. package/dist/esm/snk-actions-button_8.entry.js +2 -2
  135. package/dist/esm/snk-actions-form.entry.js +1 -1
  136. package/dist/esm/snk-application.entry.js +3 -3
  137. package/dist/esm/snk-attach.entry.js +4 -4
  138. package/dist/esm/snk-client-confirm.entry.js +1 -1
  139. package/dist/esm/snk-configurator.entry.js +2 -2
  140. package/dist/esm/snk-crud.entry.js +4 -4
  141. package/dist/esm/snk-custom-slot-elements.entry.js +1 -1
  142. package/dist/esm/snk-data-exporter.entry.js +4 -4
  143. package/dist/esm/{snk-data-unit-a95dc9fe.js → snk-data-unit-027bca56.js} +2 -2
  144. package/dist/esm/snk-data-unit.entry.js +3 -3
  145. package/dist/esm/snk-default-filter.entry.js +1 -1
  146. package/dist/esm/snk-detail-view.entry.js +7 -7
  147. package/dist/esm/snk-entity-list.entry.js +1 -1
  148. package/dist/esm/snk-exporter-email-sender.entry.js +1 -1
  149. package/dist/esm/snk-expression-group_2.entry.js +2 -2
  150. package/dist/esm/snk-filter-advanced-mode_2.entry.js +1 -1
  151. package/dist/esm/snk-filter-bar_4.entry.js +2 -2
  152. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  153. package/dist/esm/snk-filter-checkbox-list.entry.js +1 -1
  154. package/dist/esm/snk-filter-detail.entry.js +1 -1
  155. package/dist/esm/snk-filter-field-search_2.entry.js +1 -1
  156. package/dist/esm/snk-filter-modal-item.entry.js +1 -1
  157. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  158. package/dist/esm/snk-filter-number.entry.js +1 -1
  159. package/dist/esm/snk-filter-period.entry.js +1 -1
  160. package/dist/esm/snk-filter-search.entry.js +1 -1
  161. package/dist/esm/snk-filter-text.entry.js +1 -1
  162. package/dist/esm/snk-form-summary.entry.js +1 -1
  163. package/dist/esm/snk-form-view.entry.js +1 -1
  164. package/dist/esm/snk-form_2.entry.js +428 -0
  165. package/dist/esm/snk-grid.entry.js +5 -5
  166. package/dist/esm/{snk-guides-viewer-ebb40908.js → snk-guides-viewer-32f3d3ab.js} +5 -5
  167. package/dist/esm/snk-guides-viewer.entry.js +6 -6
  168. package/dist/esm/snk-personalized-filter-editor.entry.js +1 -1
  169. package/dist/esm/snk-personalized-filter.entry.js +2 -2
  170. package/dist/esm/snk-pesquisa.entry.js +2 -2
  171. package/dist/esm/snk-print-selector.entry.js +1 -1
  172. package/dist/esm/snk-simple-bar.entry.js +1 -1
  173. package/dist/esm/snk-simple-crud.entry.js +6 -6
  174. package/dist/esm/snk-taskbar.entry.js +3 -3
  175. package/dist/esm/sortable.esm-842f85a3.js +2666 -0
  176. package/dist/esm/{taskbar-elements-f2cb4922.js → taskbar-elements-171476d4.js} +2 -2
  177. package/dist/esm/teste-pesquisa.entry.js +1 -1
  178. package/dist/sankhyablocks/{p-24a0dbd2.entry.js → p-0024d3fd.entry.js} +1 -1
  179. package/dist/sankhyablocks/{p-e6d90f89.entry.js → p-09e60995.entry.js} +1 -1
  180. package/dist/sankhyablocks/{p-7effe55f.entry.js → p-0cb295c1.entry.js} +1 -1
  181. package/dist/sankhyablocks/p-11f099ea.entry.js +1 -0
  182. package/dist/sankhyablocks/{p-b0ab5066.entry.js → p-1456d7cb.entry.js} +1 -1
  183. package/dist/sankhyablocks/{p-9531fd46.entry.js → p-180716b2.entry.js} +1 -1
  184. package/dist/sankhyablocks/{p-6a03b190.entry.js → p-1ea34488.entry.js} +1 -1
  185. package/dist/sankhyablocks/{p-5182513e.entry.js → p-21107f0d.entry.js} +1 -1
  186. package/dist/sankhyablocks/{p-118e769b.entry.js → p-27482793.entry.js} +1 -1
  187. package/dist/sankhyablocks/{p-794840bd.entry.js → p-295aa209.entry.js} +1 -1
  188. package/dist/sankhyablocks/{p-bd6a6203.js → p-2bde486e.js} +1 -1
  189. package/dist/sankhyablocks/{p-26b0ce3e.entry.js → p-2fdac5e6.entry.js} +1 -1
  190. package/dist/sankhyablocks/p-349d1968.entry.js +1 -0
  191. package/dist/sankhyablocks/p-35e73c5d.js +1 -0
  192. package/dist/sankhyablocks/{p-89c92727.entry.js → p-398cdd67.entry.js} +1 -1
  193. package/dist/sankhyablocks/{p-39f3b02d.entry.js → p-3a48bff3.entry.js} +1 -1
  194. package/dist/sankhyablocks/{p-434817f0.entry.js → p-3d41f5a8.entry.js} +1 -1
  195. package/dist/sankhyablocks/p-3f24c9b2.js +1 -0
  196. package/dist/sankhyablocks/{p-def1fe2d.entry.js → p-471b34f4.entry.js} +1 -1
  197. package/dist/sankhyablocks/{p-7e2ded86.entry.js → p-49d968e2.entry.js} +1 -1
  198. package/dist/sankhyablocks/p-4d2ff2fb.entry.js +1 -0
  199. package/dist/sankhyablocks/p-51833248.js +7 -0
  200. package/dist/sankhyablocks/{p-814d99ec.entry.js → p-60dd1d27.entry.js} +1 -1
  201. package/dist/sankhyablocks/{p-bd7ccf60.entry.js → p-65c5d430.entry.js} +1 -1
  202. package/dist/sankhyablocks/{p-21a81901.entry.js → p-667cab42.entry.js} +1 -1
  203. package/dist/sankhyablocks/{p-a9813a81.entry.js → p-71a05822.entry.js} +1 -1
  204. package/dist/sankhyablocks/{p-ac8d1cd6.entry.js → p-7345782c.entry.js} +1 -1
  205. package/dist/sankhyablocks/{p-885802c3.js → p-763b04fa.js} +1 -1
  206. package/dist/sankhyablocks/{p-d07b18a4.js → p-7de79adf.js} +1 -1
  207. package/dist/sankhyablocks/p-7e250432.entry.js +1 -0
  208. package/dist/sankhyablocks/{p-47178038.entry.js → p-83c100f2.entry.js} +1 -1
  209. package/dist/sankhyablocks/p-86bd4478.entry.js +1 -0
  210. package/dist/sankhyablocks/p-9019a32f.js +1 -0
  211. package/dist/sankhyablocks/{p-70da6817.entry.js → p-90805683.entry.js} +1 -1
  212. package/dist/sankhyablocks/{p-c2e468c9.entry.js → p-91a9abb6.entry.js} +1 -1
  213. package/dist/sankhyablocks/p-9751c42f.entry.js +1 -0
  214. package/dist/sankhyablocks/{p-16a1dd18.entry.js → p-9a63f3f7.entry.js} +1 -1
  215. package/dist/sankhyablocks/{p-90684a75.entry.js → p-9ad3557c.entry.js} +1 -1
  216. package/dist/sankhyablocks/{p-b6200d32.entry.js → p-9fd87bfd.entry.js} +1 -1
  217. package/dist/sankhyablocks/p-a06bf7b9.entry.js +1 -0
  218. package/dist/sankhyablocks/{p-33718dfc.entry.js → p-a227b650.entry.js} +1 -1
  219. package/dist/sankhyablocks/p-a349689a.js +1 -0
  220. package/dist/sankhyablocks/{p-13a0ead0.entry.js → p-a5bb2f93.entry.js} +1 -1
  221. package/dist/sankhyablocks/{p-088d7e7b.js → p-a6513fcb.js} +1 -1
  222. package/dist/sankhyablocks/{p-8c235d4c.entry.js → p-a76e6d51.entry.js} +1 -1
  223. package/dist/sankhyablocks/{p-ce94e6c4.entry.js → p-bd665460.entry.js} +1 -1
  224. package/dist/sankhyablocks/p-c3324d79.entry.js +1 -0
  225. package/dist/sankhyablocks/{p-bf2acf72.entry.js → p-c6a8a8bc.entry.js} +1 -1
  226. package/dist/sankhyablocks/{p-043bef5f.entry.js → p-c926cf6b.entry.js} +1 -1
  227. package/dist/sankhyablocks/{p-79f823f3.entry.js → p-d67526b6.entry.js} +1 -1
  228. package/dist/sankhyablocks/{p-d2d301a6.js → p-d8d8169b.js} +1 -1
  229. package/dist/sankhyablocks/{p-5f157b09.entry.js → p-dff65083.entry.js} +1 -1
  230. package/dist/sankhyablocks/{p-ab12216c.entry.js → p-e2988bb1.entry.js} +1 -1
  231. package/dist/sankhyablocks/{p-6a5f061b.entry.js → p-e3521eae.entry.js} +1 -1
  232. package/dist/sankhyablocks/{p-34f7a3ab.entry.js → p-e7cccc45.entry.js} +1 -1
  233. package/dist/sankhyablocks/{p-1f80174b.entry.js → p-f4e31122.entry.js} +1 -1
  234. package/dist/sankhyablocks/{p-c7492861.js → p-fc0b609e.js} +1 -1
  235. package/dist/sankhyablocks/{p-a14a09c3.entry.js → p-ff7060bc.entry.js} +1 -1
  236. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  237. package/dist/types/components/snk-form-config/FormConfigHelper.d.ts +31 -0
  238. package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +3 -3
  239. package/dist/types/components/snk-form-config/config-header/config-header.d.ts +23 -0
  240. package/dist/types/components/snk-form-config/config-header/configs-button/configs-button.d.ts +19 -0
  241. package/dist/types/components/snk-form-config/field-item/field-config/field-config.d.ts +56 -0
  242. package/dist/types/components/snk-form-config/fields-layout/fields-layout.d.ts +63 -0
  243. package/dist/types/components/snk-form-config/fields-selector/fields-selector.d.ts +18 -0
  244. package/dist/types/components/snk-form-config/guides-configurator/guides-configurator.d.ts +42 -0
  245. package/dist/types/components/snk-form-config/snk-form-config.d.ts +51 -120
  246. package/dist/types/components.d.ts +197 -199
  247. package/dist/types/lib/utils/constants.d.ts +6 -0
  248. package/package.json +4 -2
  249. package/react/components.d.ts +7 -3
  250. package/react/components.js +7 -3
  251. package/react/components.js.map +1 -1
  252. package/dist/cjs/Sortable-fb1c4cbb.js +0 -2853
  253. package/dist/cjs/snk-config-options_3.cjs.entry.js +0 -1390
  254. package/dist/cjs/snk-field-config.cjs.entry.js +0 -60
  255. package/dist/cjs/snk-tab-config.cjs.entry.js +0 -332
  256. package/dist/collection/components/snk-form-config/subcomponents/snk-config-options/snk-config-options.css +0 -16
  257. package/dist/collection/components/snk-form-config/subcomponents/snk-config-options/snk-config-options.js +0 -346
  258. package/dist/collection/components/snk-form-config/subcomponents/snk-field-config/snk-field-config.css +0 -219
  259. package/dist/collection/components/snk-form-config/subcomponents/snk-field-config/snk-field-config.js +0 -184
  260. package/dist/collection/components/snk-form-config/subcomponents/snk-tab-config/snk-tab-config.css +0 -323
  261. package/dist/collection/components/snk-form-config/subcomponents/snk-tab-config/snk-tab-config.js +0 -527
  262. package/dist/components/snk-config-options.js +0 -6
  263. package/dist/components/snk-config-options2.js +0 -257
  264. package/dist/components/snk-field-config.js +0 -6
  265. package/dist/components/snk-field-config2.js +0 -76
  266. package/dist/components/snk-tab-config.js +0 -6
  267. package/dist/components/snk-tab-config2.js +0 -3202
  268. package/dist/esm/Sortable-83960219.js +0 -2851
  269. package/dist/esm/snk-config-options_3.entry.js +0 -1384
  270. package/dist/esm/snk-field-config.entry.js +0 -56
  271. package/dist/esm/snk-tab-config.entry.js +0 -328
  272. package/dist/sankhyablocks/p-3749dffb.entry.js +0 -1
  273. package/dist/sankhyablocks/p-6dc031de.js +0 -1
  274. package/dist/sankhyablocks/p-79b3cccc.js +0 -1
  275. package/dist/sankhyablocks/p-9261d8a0.js +0 -1
  276. package/dist/sankhyablocks/p-c0eb761b.entry.js +0 -1
  277. package/dist/sankhyablocks/p-d257ff20.entry.js +0 -1
  278. package/dist/sankhyablocks/p-e3c71e43.entry.js +0 -1
  279. package/dist/sankhyablocks/p-fa816fb2.js +0 -1
  280. package/dist/types/components/snk-form-config/subcomponents/snk-config-options/snk-config-options.d.ts +0 -57
  281. package/dist/types/components/snk-form-config/subcomponents/snk-field-config/snk-field-config.d.ts +0 -43
  282. package/dist/types/components/snk-form-config/subcomponents/snk-tab-config/snk-tab-config.d.ts +0 -105
@@ -1,1384 +0,0 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a7d3d3f1.js';
2
- import { UserInterface, ObjectUtils, StringUtils, ApplicationContext, ElementIDUtils, ArrayUtils } from '@sankhyalabs/core';
3
- import { DataType, getConvertedValue } from '@sankhyalabs/core/dist/dataunit/metadata/DataType';
4
- import { CheckMode, ApplicationUtils, DialogType } from '@sankhyalabs/ezui/dist/collection/utils';
5
- import { d as VARS_BY_TYPE, D as DEFAULT_TYPE, e as TAGS_BY_TYPE, C as CONFIG_EVENTS, a as CONFIG_SORTABLE_EVENTS, c as TAB_NAMES, A as ACTION_CONFIG } from './constants-7db1128a.js';
6
- import { S as SnkFormConfigManager } from './SnkFormConfigManager-327dfdd4.js';
7
- import { R as ResourceIDUtils } from './ResourceIDUtils-a114189a.js';
8
- import { S as Sortable } from './Sortable-83960219.js';
9
- import { U as UserConfigType } from './form-config-fetcher-fa208a6c.js';
10
- import { buildFormConfigFromDataUnit } from '@sankhyalabs/ezui/dist/collection/utils/form';
11
- import './ConfigStorage-79b9e180.js';
12
- import './filter-item-type.enum-d45e026f.js';
13
- import './DataFetcher-88e56266.js';
14
- import './PrintUtils-3e4ff0f5.js';
15
- import '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
16
-
17
- const snkConfigOptionsCss = ".sc-snk-config-options-h{--snk-config-options--border:2px solid var(--color--secondary-200, #D2D3DA);width:100%;border-radius:15px;border:var(--snk-config-options--border)}.config-options__switch-row.sc-snk-config-options{margin-top:-30px}";
18
-
19
- const SnkConfigOptions = class {
20
- constructor(hostRef) {
21
- registerInstance(this, hostRef);
22
- this.configOptionsChanged = createEvent(this, "configOptionsChanged", 7);
23
- this._defaultType = undefined;
24
- this.fieldConfig = {};
25
- this.idConfig = undefined;
26
- this.dataUnit = undefined;
27
- this.messagesBuilder = undefined;
28
- }
29
- onConfigDefault(optionSelected) {
30
- if (optionSelected != undefined) {
31
- this._defaultType = optionSelected;
32
- this.fieldConfig.defaultValue = {
33
- type: this._defaultType
34
- };
35
- this.configOptionsChanged.emit(this.fieldConfig);
36
- }
37
- }
38
- buildOptions() {
39
- var _a, _b, _c;
40
- let interfaceField = (_c = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField((_b = this.fieldConfig) === null || _b === void 0 ? void 0 : _b.name)) === null || _c === void 0 ? void 0 : _c.userInterface;
41
- if (interfaceField === UserInterface.SEARCH) {
42
- interfaceField = UserInterface.INTEGERNUMBER;
43
- }
44
- return VARS_BY_TYPE.UserInterface[interfaceField];
45
- }
46
- enabledValueDefault() {
47
- var _a, _b, _c;
48
- const field = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField((_b = this.fieldConfig) === null || _b === void 0 ? void 0 : _b.name);
49
- const allowDefault = (_c = field === null || field === void 0 ? void 0 : field.properties) === null || _c === void 0 ? void 0 : _c.allowDefault;
50
- const hasVariableVar = VARS_BY_TYPE.UserInterface.hasOwnProperty(field === null || field === void 0 ? void 0 : field.userInterface)
51
- || (field === null || field === void 0 ? void 0 : field.userInterface) === UserInterface.SEARCH;
52
- if ((allowDefault == undefined || allowDefault === "true") && hasVariableVar) {
53
- return true;
54
- }
55
- return false;
56
- }
57
- isAllowDefault() {
58
- var _a, _b;
59
- const allowDefault = (_b = (_a = this._fieldProperties) === null || _a === void 0 ? void 0 : _a.properties) === null || _b === void 0 ? void 0 : _b.allowDefault;
60
- if (allowDefault == undefined) {
61
- return true;
62
- }
63
- return allowDefault === "true";
64
- }
65
- loadDefaultValue() {
66
- var _a;
67
- if (this.fieldConfig == undefined) {
68
- this._defaultType = DEFAULT_TYPE.fixed;
69
- this.fieldConfig = {
70
- defaultValue: {
71
- type: this._defaultType
72
- }
73
- };
74
- }
75
- else if (((_a = this.fieldConfig.defaultValue) === null || _a === void 0 ? void 0 : _a.type) == undefined) {
76
- this._defaultType = DEFAULT_TYPE.fixed;
77
- this.fieldConfig.defaultValue = {
78
- type: this._defaultType
79
- };
80
- }
81
- else {
82
- this._defaultType = this.fieldConfig.defaultValue.type;
83
- }
84
- }
85
- getFieldProperties(field) {
86
- var _a;
87
- if (field != undefined) {
88
- return (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(field);
89
- }
90
- }
91
- getMessage(key, params) {
92
- return this.messagesBuilder.getMessage(key, params);
93
- }
94
- getDefaultType() {
95
- var _a;
96
- return (_a = this.fieldConfig.defaultValue.type) !== null && _a !== void 0 ? _a : DEFAULT_TYPE.fixed;
97
- }
98
- getEnabledByProperty(attribName, propertyName) {
99
- const fieldDescriptor = this._fieldProperties;
100
- if (fieldDescriptor == undefined) {
101
- return true;
102
- }
103
- const fieldProperties = fieldDescriptor.properties || {};
104
- return fieldProperties.hasOwnProperty(propertyName) ? fieldProperties[propertyName] !== "S" : fieldDescriptor[attribName] !== true;
105
- }
106
- getValueByProperty(property) {
107
- const properties = this._fieldProperties;
108
- if (properties != undefined && properties[property] === true) {
109
- return true;
110
- }
111
- return this.fieldConfig[property];
112
- }
113
- getValidatedValue(fieldValue) {
114
- var _a, _b;
115
- if (fieldValue == undefined) {
116
- return;
117
- }
118
- const field = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField((_b = this.fieldConfig) === null || _b === void 0 ? void 0 : _b.name);
119
- const dataType = field === null || field === void 0 ? void 0 : field.dataType;
120
- if (dataType == undefined) {
121
- return;
122
- }
123
- const value = (fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.waitmessage) != undefined ? undefined :
124
- dataType !== DataType.OBJECT && dataType !== DataType.DATE
125
- && typeof fieldValue === "object"
126
- ? fieldValue.value
127
- : fieldValue;
128
- return dataType === DataType.OBJECT ? JSON.stringify(value) : value;
129
- }
130
- buildInputDefault({ value, enabled, label, name, required, userInterface }, properties = undefined, mode = undefined) {
131
- let options;
132
- let precision = 0;
133
- let prettyPrecision = 0;
134
- const TagName = userInterface == undefined || TAGS_BY_TYPE[userInterface] == undefined
135
- ? TAGS_BY_TYPE.DEFAULT
136
- : TAGS_BY_TYPE[userInterface];
137
- if (userInterface === UserInterface.OPTIONSELECTOR) {
138
- const prop = properties === null || properties === void 0 ? void 0 : properties.options;
139
- if (typeof prop === "string") {
140
- const parsed = ObjectUtils.stringToObject(prop);
141
- options = Object.keys(parsed).map(key => { return { value: key, label: parsed[key] }; });
142
- }
143
- else {
144
- options = prop;
145
- }
146
- }
147
- else if (userInterface === UserInterface.DECIMALNUMBER) {
148
- precision = Number((properties === null || properties === void 0 ? void 0 : properties.precision) || 2);
149
- prettyPrecision = Number((properties === null || properties === void 0 ? void 0 : properties.prettyPrecision) || precision);
150
- }
151
- return h(TagName, Object.assign({ value: value, enabled: enabled, label: label, "data-field-name": name, key: name, onEzChange: (evt) => this.onChange(evt === null || evt === void 0 ? void 0 : evt.detail) }, (this.getConditionalAttributes(userInterface, required, options, precision, prettyPrecision, mode))));
152
- }
153
- getConditionalAttributes(userInterface, required, options, precision, prettyPrecision, mode) {
154
- const useSearchPlus = userInterface == UserInterface.SEARCHPLUS;
155
- switch (userInterface) {
156
- case UserInterface.SEARCH:
157
- case UserInterface.SEARCHPLUS:
158
- return {
159
- suppressEmptyOption: required,
160
- optionLoader: (searchArgument) => this.onSearch(searchArgument, { useSearchPlus })
161
- };
162
- case UserInterface.OPTIONSELECTOR:
163
- return {
164
- suppressEmptyOption: required,
165
- options
166
- };
167
- case UserInterface.CHECKBOX:
168
- case UserInterface.SWITCH:
169
- return {
170
- mode
171
- };
172
- case UserInterface.INTEGERNUMBER:
173
- case UserInterface.DECIMALNUMBER:
174
- return {
175
- precision,
176
- prettyPrecision,
177
- onEzStartChange: (evt) => this.onChange(evt === null || evt === void 0 ? void 0 : evt.detail)
178
- };
179
- case UserInterface.DATE:
180
- case UserInterface.DATETIME:
181
- case UserInterface.TIME:
182
- return {
183
- onEzStartChange: (evt) => this.onChange(evt === null || evt === void 0 ? void 0 : evt.detail)
184
- };
185
- default:
186
- return {};
187
- }
188
- }
189
- onChange(fieldValue) {
190
- this.fieldConfig.defaultValue.value = this.getValidatedValue(fieldValue);
191
- this.configOptionsChanged.emit(this.fieldConfig);
192
- }
193
- onSearch(searchArgument, ctxOptions) {
194
- if (this._application != undefined && this.fieldConfig != undefined) {
195
- return this._application.executeSearch(searchArgument, this.fieldConfig.name, this.dataUnit, ctxOptions);
196
- }
197
- }
198
- buildField(descriptor, config) {
199
- const { name, label, readOnly, required, defaultValue } = config;
200
- const { userInterface, properties } = descriptor;
201
- const allowDefault = properties === null || properties === void 0 ? void 0 : properties.allowDefault;
202
- let value;
203
- let enabled = StringUtils.getBooleanValue(allowDefault, !readOnly);
204
- if (userInterface === UserInterface.FILE) {
205
- enabled = false;
206
- }
207
- if (enabled) {
208
- value = defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.value;
209
- if (value != undefined) {
210
- value = getConvertedValue(descriptor === null || descriptor === void 0 ? void 0 : descriptor.dataType, value);
211
- }
212
- }
213
- const configField = { value, enabled, label, name, required, userInterface };
214
- switch (userInterface) {
215
- case UserInterface.SWITCH:
216
- return this.buildInputDefault(configField, undefined, CheckMode.SWITCH);
217
- case UserInterface.CHECKBOX:
218
- return this.buildInputDefault(configField, undefined, CheckMode.REGULAR);
219
- case UserInterface.OPTIONSELECTOR:
220
- case UserInterface.DECIMALNUMBER:
221
- return this.buildInputDefault(configField, properties);
222
- default:
223
- return this.buildInputDefault(configField);
224
- }
225
- }
226
- componentWillLoad() {
227
- var _a;
228
- this.loadDefaultValue();
229
- this._application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
230
- this._fieldProperties = this.getFieldProperties((_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.name);
231
- }
232
- componentDidLoad() {
233
- ElementIDUtils.addIDInfo(this._element, this.fieldConfig.name);
234
- }
235
- render() {
236
- var _a, _b;
237
- return (h(Host, null, h("div", { id: this.idConfig }, h("div", { class: "ez-row ez-padding--medium" }, h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-text-input", { label: this.getMessage("snkConfigOptions.label.nameField"), value: (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.label, onEzChange: (evt) => { this.fieldConfig.label = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-combo-box", { label: this.getMessage("snkConfigOptions.label.typeValueDefault"), suppressEmptyOption: true, enabled: this.enabledValueDefault(), onEzChange: (evt) => { var _a; return this.onConfigDefault((_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value); }, value: this.getDefaultType() }, h("option", { value: DEFAULT_TYPE.fixed }, this.getMessage("snkConfigOptions.options.valueFixed")), h("option", { value: DEFAULT_TYPE.variable }, this.getMessage("snkConfigOptions.options.variable")))), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, this._defaultType === DEFAULT_TYPE.variable ?
238
- h("ez-combo-box", { label: this.getMessage("snkConfigOptions.label.valueDefault"), enabled: this.isAllowDefault(), onEzChange: (evt) => { var _a; this.fieldConfig.defaultValue.value = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.value; this.configOptionsChanged.emit(this.fieldConfig); }, value: this.fieldConfig.defaultValue.value, options: this.buildOptions() })
239
- :
240
- ((_b = this._fieldProperties) === null || _b === void 0 ? void 0 : _b.userInterface) &&
241
- this.buildField(this._fieldProperties, this.fieldConfig))), h("div", { class: "ez-row ez-padding--medium config-options__switch-row" }, h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.clearDuplicate"), value: this.fieldConfig.cleanOnCopy, onEzChange: (evt) => { this.fieldConfig.cleanOnCopy = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.requiredField"), enabled: this.getEnabledByProperty("required", "systemRequired"), value: this.getValueByProperty("required"), onEzChange: (evt) => { this.fieldConfig.required = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } })), h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding--small" }, h("ez-check", { mode: CheckMode.SWITCH, label: this.getMessage("snkConfigOptions.label.protectedField"), enabled: this.getEnabledByProperty("readOnly", "systemReadOnly"), value: this.getValueByProperty("readOnly"), onEzChange: (evt) => { this.fieldConfig.readOnly = evt.detail; this.configOptionsChanged.emit(this.fieldConfig); } }))))));
242
- }
243
- get _element() { return getElement(this); }
244
- };
245
- SnkConfigOptions.style = snkConfigOptionsCss;
246
-
247
- const snkFormCss = ".sc-snk-form-h{--snk-form__header--min-height:94px;display:block}.snk-form__form--hidden.sc-snk-form{display:none}";
248
-
249
- const SnkForm = class {
250
- constructor(hostRef) {
251
- registerInstance(this, hostRef);
252
- this.exit = createEvent(this, "exit", 7);
253
- this.actionClick = createEvent(this, "actionClick", 7);
254
- this.formItemsReady = createEvent(this, "formItemsReady", 7);
255
- this._customEditors = new Map();
256
- this._dataUnit = undefined;
257
- this._dataState = undefined;
258
- this._showFormConfig = false;
259
- this._configManager = undefined;
260
- this.configName = undefined;
261
- this.recordsValidator = undefined;
262
- this.messagesBuilder = undefined;
263
- this.formLegacyConfigName = undefined;
264
- this.resourceID = undefined;
265
- }
266
- /**
267
- * Exibe a janela de configurações do formulário.
268
- */
269
- async showConfig() {
270
- this._showFormConfig = true;
271
- }
272
- /**
273
- * Fecha a janela de configurações do formulário.
274
- */
275
- async hideConfig() {
276
- this._showFormConfig = false;
277
- }
278
- /**
279
- * Registra um editor customizado para campos da grade e formulário.
280
- */
281
- async addCustomEditor(fieldName, customEditor) {
282
- if (this._form) {
283
- this._form.addCustomEditor(fieldName, customEditor);
284
- return;
285
- }
286
- const newCustomEditors = new Map(this._customEditors);
287
- newCustomEditors.set(fieldName, customEditor);
288
- this._customEditors = newCustomEditors;
289
- }
290
- /**
291
- * Altera/adiciona uma propriedade nos metadados do campo.
292
- */
293
- async setFieldProp(fieldName, propName, value) {
294
- await this._form.setFieldProp(fieldName, propName, value);
295
- }
296
- closeConfig() {
297
- this.hideConfig();
298
- }
299
- dataunitReady() {
300
- const dataInfo = { dataUnit: this._dataUnit };
301
- ElementIDUtils.addIDInfo(this._element, null, dataInfo);
302
- }
303
- setCustomEditors() {
304
- if (!this._form) {
305
- return;
306
- }
307
- for (const [fieldName, customEditor] of this._customEditors) {
308
- this._form.addCustomEditor(fieldName, customEditor);
309
- this._customEditors.delete(fieldName);
310
- }
311
- }
312
- async componentDidRender() {
313
- this.setCustomEditors();
314
- }
315
- async componentWillLoad() {
316
- let parent = this._element.parentElement;
317
- while (parent) {
318
- if (parent.tagName.toUpperCase() === "SNK-DATA-UNIT") {
319
- this._snkDataUnit = parent;
320
- this._dataUnit = this._snkDataUnit.dataUnit;
321
- this._dataState = this._snkDataUnit.dataState;
322
- if (this._dataUnit) {
323
- this.dataunitReady();
324
- }
325
- else {
326
- this._snkDataUnit.addEventListener("dataUnitReady", (evt) => {
327
- this._dataUnit = evt.detail;
328
- });
329
- }
330
- this._snkDataUnit.addEventListener("dataStateChange", this.handleDataStateChange.bind(this));
331
- break;
332
- }
333
- parent = parent.parentElement;
334
- }
335
- if (this.resourceID == undefined) {
336
- this.resourceID = await ResourceIDUtils.getResourceID();
337
- }
338
- this._configManager = new SnkFormConfigManager(this.configName, this.resourceID, undefined, this._dataUnit);
339
- this.addFormLegacyConfig();
340
- await this._configManager.loadConfig();
341
- }
342
- async handleDataStateChange(evt) {
343
- var _a;
344
- this._dataState = evt.detail;
345
- const fieldsWithRmPrecision = await this._snkDataUnit.getFieldsWithRmPrecision();
346
- for (const field of fieldsWithRmPrecision || []) {
347
- if (!field) {
348
- continue;
349
- }
350
- const rmPrecision = (_a = this._dataState.rowMetadata) === null || _a === void 0 ? void 0 : _a.getProp('rm_precision', field);
351
- if (!rmPrecision && rmPrecision !== 0) {
352
- continue;
353
- }
354
- await this.setFieldProp(field, 'precision', rmPrecision);
355
- await this.setFieldProp(field, 'prettyPrecision', rmPrecision);
356
- }
357
- }
358
- addFormLegacyConfig() {
359
- if (this.formLegacyConfigName) {
360
- this._configManager.addFormLegacyConfig(this.formLegacyConfigName);
361
- }
362
- }
363
- render() {
364
- if (!this._dataUnit || !this._dataState) {
365
- return undefined;
366
- }
367
- return (h("section", null, h("div", { class: "ez-row" }, h("div", { class: "ez-col ez-col--sd-12" }, 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._dataUnit), recordsValidator: this.recordsValidator, class: this._showFormConfig ? 'snk-form__form--hidden' : '' }), this._showFormConfig &&
368
- h("snk-form-config", { messagesBuilder: this.messagesBuilder, dataUnit: this._dataUnit, configManager: this._configManager, onConfigClose: () => this.closeConfig() })))));
369
- }
370
- get _element() { return getElement(this); }
371
- };
372
- SnkForm.style = snkFormCss;
373
-
374
- const snkFormConfigCss = ".sc-snk-form-config-h{--snk-form-config--z-index:var(--more-visible, 2);--snk-form-config--background-color:var(--background--xlight, #fff);--snk-form-config__icon--color:var(--text--disable, #AFB6C0);--snk-form-config__label-counter--font-weight:var(--text-weight--extra-small, 200);--snk-form-config__add-group-container--border-radius:var(--border--radius-medium, 12px);--snk-form-config__add-group-container--background-color:var(--background--medium, #d2dce9);--snk-form-config__add-group-container--padding:var(--space--small, 6px);--snk-form-config__add-group-content--border:2px dashed var(--color-strokes, #DCE0E8);--snk-form-config__add-group-content--border-radius:var(--border--radius-small, 6px);--snk-form-config__add-group-label--padding:var(--space--large, 24px);--snk-form-config__btn-add-group--padding:var(--space--large, 24px) var(--space--medium, 12px) 0;--snk-form-config__btn-add-group-container--padding:var(--space--medium, 12px);--snk-form-config__btn-add-group-container--border-radius:var(--border--radius-medium, 12px);--snk-form-config__btn-add-group-container--border:2px solid var(--color-strokes, #DCE0E8);--snk-form-config__btn-add-group-container--background-color:var(--background--body, #fafcff);display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--snk-form-config--z-index);background-color:var(--snk-form-config--background-color)}div.sc-snk-form-config:focus-visible,div.sc-snk-form-config:focus{outline:none}.form-config__header-container.sc-snk-form-config{display:flex}.form-config__field-container.sc-snk-form-config{width:32%;padding:6px}.form-config__hide-content.sc-snk-form-config{display:none}ez-icon.sc-snk-form-config .left-icon.sc-snk-form-config{--ez-icon--color:var(--snk-form-config__icon--color)}.ez-box__label-counter.sc-snk-form-config{margin-top:-7px;font-weight:var(--snk-form-config__label-counter--font-weight)}.form-config__btn-options.sc-snk-form-config{--ez-button--min-width:300px;--ez-button--background-color:var(--snk-form-config--background-color)}[data-draggable-parent].sc-snk-form-config{position:relative}.form-config__field-config--selected.sc-snk-form-config{position:static}.form-config__field-config--dragged.sc-snk-form-config .draggable-mirror.sc-snk-form-config{z-index:var(--snk-form-config--z-index)}.form-config__config-options.sc-snk-form-config{position:relative;margin-top:-3px;min-width:100%;z-index:1}.form-config__tab-container.sc-snk-form-config,.form-config__fields-available.sc-snk-form-config{position:relative;height:100%;max-height:calc(100vh - 92px)}.form-config__tab-container.sc-snk-form-config .ez-box__container.sc-snk-form-config,.form-config__fields-available.sc-snk-form-config .ez-box__container.sc-snk-form-config{align-content:flex-start;height:100%}.form-config__fields-available.sc-snk-form-config [data-draggable-parent].sc-snk-form-config{align-content:flex-start;overflow-y:auto;height:100%;max-height:calc(100% - 122px)}.form-config__tab-content.sc-snk-form-config{align-content:flex-start;overflow-y:auto;height:auto;max-height:calc(100% - 128px)}[data-draggable-element].sc-snk-form-config{cursor:grab}.form-config__actions-button.sc-snk-form-config{--ez-actions-button__btn-action--min-width:235px}.form-config__add-group.sc-snk-form-config{position:relative;min-height:120px;margin-bottom:10px}.form-config__add-group-container.sc-snk-form-config{position:absolute;display:flex;flex-wrap:wrap;width:100%;box-sizing:border-box;border-radius:var(--snk-form-config__add-group-container--border-radius);background-color:var(--snk-form-config__add-group-container--background-color);padding:var(--snk-form-config__add-group-container--padding)}.form-config__add-group-content.sc-snk-form-config{width:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;box-sizing:border-box;border:var(--snk-form-config__add-group-content--border);border-radius:var(--snk-form-config__add-group-content--border-radius)}.form-config__add-group-label.sc-snk-form-config{display:flex;justify-content:center;box-sizing:border-box;padding:var(--snk-form-config__add-group-label--padding)}.form-config__btn-add-group.sc-snk-form-config{position:relative;padding:var(--snk-form-config__btn-add-group--padding)}.form-config__btn-add-group-container.sc-snk-form-config{padding:var(--snk-form-config__btn-add-group-container--padding);border-radius:var(--snk-form-config__btn-add-group-container--border-radius);border:var(--snk-form-config__btn-add-group-container--border);background-color:var(--snk-form-config__btn-add-group-container--background-color)}ez-collapsible-box.draggable-mirror.sc-snk-form-config{display:table;background-color:var(--snk-form-config--background-color)}ez-collapsible-box.sc-snk-form-config{margin-bottom:10px}@media screen and (min-width: 480px){.form-config__field-config--selected.sc-snk-form-config .ez-flex.form-config__config-options.sc-snk-form-config{min-width:calc(300% + 12px)}.form-config__field-config--selected.sc-snk-form-config:nth-child(3n+2) .ez-flex.form-config__config-options.sc-snk-form-config{left:calc(100% / 1 * -1)}.form-config__field-config--selected.sc-snk-form-config:nth-child(3n+3) .ez-flex.form-config__config-options.sc-snk-form-config{left:calc(100% / 1 * -2)}}";
375
-
376
- const CONTAINER_ID = {
377
- collapsibleBox: "EZ-COLLAPSIBLE-BOX",
378
- withoutGroup: "fieldsWithoutGroupContainer",
379
- fieldsAvailable: "fieldsAvailableContainer",
380
- addNewGroup: "addNewGroupContainer"
381
- };
382
- const SnkFormConfig = class {
383
- constructor(hostRef) {
384
- registerInstance(this, hostRef);
385
- this.configChange = createEvent(this, "configChange", 7);
386
- this.configClose = createEvent(this, "configClose", 7);
387
- this._listEnabledFields = [];
388
- this._renderTimer = 500;
389
- this._tabSelected = 1;
390
- this._labelNewGroup = "Novo grupo";
391
- this._mouseOnFieldConfig = false;
392
- this._mouseOnConfigOptions = false;
393
- this._editingTitleGroup = false;
394
- this._newGroupBoxes = [];
395
- this._currentGroupBoxes = [];
396
- this._formFieldsStyle = "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding-right--small ez-padding-bottom--medium sc-snk-form-config";
397
- this._fieldsAvailableStyle = "ez-col ez-col--sd-12 ez-col--tb-12 ez-margin-bottom--medium ez-margin-right--medium sc-snk-form-config";
398
- this._fieldFloatingStyle = "form-config__field-config--dragged";
399
- this._sortableTimer = 100;
400
- this._formConfigOptions = [];
401
- this._fieldConfigSelected = undefined;
402
- this._layoutFormConfig = undefined;
403
- this._fieldsAvailable = undefined;
404
- this._formConfig = {};
405
- this._formConfigChanged = false;
406
- this._optionFormConfigSelected = undefined;
407
- this._optionFormConfigChanged = false;
408
- this._tempGroups = [];
409
- this.dataUnit = undefined;
410
- this.configManager = undefined;
411
- this.messagesBuilder = undefined;
412
- this.ignoreReadOnlyFormFields = undefined;
413
- }
414
- observeConfigManager() {
415
- this.loadConfig(this._sortableTimer);
416
- }
417
- loadFields(updateTimer = 0) {
418
- this._layoutFormConfig = [];
419
- if (updateTimer > 0) {
420
- setTimeout(() => {
421
- this.buildFields();
422
- }, updateTimer);
423
- }
424
- else {
425
- this.buildFields();
426
- }
427
- }
428
- buildFields() {
429
- this.buildFormConfig();
430
- this.buildAvailableFields();
431
- }
432
- loadFormConfig(updateTimer) {
433
- var _a;
434
- this._formConfig = this.getConfig();
435
- this.loadFields(updateTimer);
436
- this.controlFieldConfig();
437
- if (((_a = this._filterFieldsAvailable) === null || _a === void 0 ? void 0 : _a.value) != undefined) {
438
- this._filterFieldsAvailable.value = "";
439
- }
440
- }
441
- getConfig() {
442
- let config = this.configManager.getConfig(this.dataUnit, this.ignoreReadOnlyFormFields);
443
- if (config.fields && config.fields.length === 0) {
444
- config = undefined;
445
- }
446
- if (config == undefined) {
447
- config = buildFormConfigFromDataUnit(this.dataUnit);
448
- }
449
- return ObjectUtils.copy(config);
450
- }
451
- cancelChangeConfig() {
452
- if (this._formConfigChanged === true) {
453
- this.openConfirmDialog(this.getMessage("snkFormConfig.confirm.cancel")).then((canCancel) => {
454
- if (canCancel) {
455
- this._formConfigChanged = false;
456
- this.resetChangeConfig();
457
- }
458
- });
459
- }
460
- else {
461
- this.resetChangeConfig();
462
- }
463
- }
464
- cancelChangeOptionConfig() {
465
- if (this._optionFormConfigChanged === true) {
466
- this.openConfirmDialog(this.getMessage("snkFormConfig.confirm.cancel")).then((canCancel) => {
467
- if (canCancel) {
468
- this._optionFormConfigChanged = false;
469
- this.resetChangeOptionConfig();
470
- }
471
- });
472
- }
473
- else {
474
- this.resetChangeOptionConfig();
475
- }
476
- }
477
- resetChangeConfig() {
478
- this.loadFormConfig(this._sortableTimer);
479
- this.clearTempGroups();
480
- }
481
- resetChangeOptionConfig() {
482
- this._formConfigChanged = false;
483
- this.loadConfig(this._sortableTimer);
484
- this.clearTempGroups();
485
- }
486
- getTabsToSave() {
487
- return this._layoutFormConfig
488
- .map((layoutConfig, index) => {
489
- return {
490
- label: layoutConfig.tab,
491
- order: index,
492
- visible: layoutConfig.visible
493
- };
494
- });
495
- }
496
- getFieldsToSave() {
497
- const fields = [];
498
- const snkFieldConfigs = this._formContainer.querySelectorAll('snk-field-config');
499
- snkFieldConfigs.forEach((snkField) => {
500
- const fieldConfig = snkField.fieldConfig;
501
- if (fieldConfig == undefined) {
502
- return;
503
- }
504
- const fieldToSave = {
505
- cleanOnCopy: fieldConfig.cleanOnCopy || false,
506
- group: fieldConfig.group,
507
- label: fieldConfig.label,
508
- name: fieldConfig.name,
509
- required: fieldConfig.required,
510
- readOnly: fieldConfig.readOnly,
511
- tab: fieldConfig.tab
512
- };
513
- if (fieldConfig.defaultValue != undefined) {
514
- if (fieldConfig.defaultValue.type == undefined) {
515
- fieldToSave.defaultValue = {
516
- type: DEFAULT_TYPE.fixed,
517
- value: fieldConfig.defaultValue
518
- };
519
- }
520
- else {
521
- fieldToSave.defaultValue = fieldConfig.defaultValue;
522
- }
523
- }
524
- fields.push(fieldToSave);
525
- });
526
- return fields;
527
- }
528
- isDefaultConfiguration() {
529
- var _a;
530
- const optionSelected = (_a = this._optionFormConfigSelected) === null || _a === void 0 ? void 0 : _a.origin;
531
- return optionSelected === UserConfigType.DEFAULT
532
- && this._optionFormConfigChanged === true
533
- && this._formConfigChanged === false;
534
- }
535
- buildConfigToSave() {
536
- let formConfig = {};
537
- const isDefault = this.isDefaultConfiguration();
538
- if (isDefault) {
539
- formConfig = this.getConfig();
540
- }
541
- else {
542
- formConfig = ObjectUtils.copy(this._formConfig);
543
- }
544
- if (isDefault === false) {
545
- const tabs = this.getTabsToSave();
546
- if ((tabs === null || tabs === void 0 ? void 0 : tabs.length) > 0) {
547
- formConfig.tabs = tabs;
548
- }
549
- const fields = this.getFieldsToSave();
550
- if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
551
- formConfig.fields = fields;
552
- }
553
- }
554
- formConfig.defaultConfiguration = isDefault;
555
- return formConfig;
556
- }
557
- saveConfig() {
558
- var _a;
559
- if (((_a = this._tempGroups) === null || _a === void 0 ? void 0 : _a.length) > 0) {
560
- ApplicationUtils.alert(this.getMessage("snkFormConfig.confirm.title"), this.getMessage("snkFormConfig.confirm.group"));
561
- return;
562
- }
563
- this._formConfigChanged = false;
564
- this._optionFormConfigChanged = false;
565
- this.configManager.saveConfig(this.buildConfigToSave())
566
- .then(savedConfig => {
567
- var _a;
568
- ApplicationUtils.info(this.getMessage("snkFormConfig.info.successfullyConfigSaved"), { iconName: "check" });
569
- const userOption = (_a = this._formConfigOptions) === null || _a === void 0 ? void 0 : _a.find((config) => {
570
- return config.origin === UserConfigType.USER;
571
- });
572
- this.setFormConfig(userOption);
573
- this.configChange.emit(savedConfig);
574
- });
575
- }
576
- applyOptionConfig() {
577
- if (this._optionFormConfigChanged === true && this._optionFormConfigSelected != undefined) {
578
- const name = this._optionFormConfigSelected.name || "configuração selecionada";
579
- const origin = this._optionFormConfigSelected.origin === UserConfigType.DEFAULT ? "pessoal" : "padrão";
580
- const msg = this.getMessage("snkFormConfig.confirm.apply").replace('{0}', name).replace('{1}', origin);
581
- this.openConfirmDialog(msg).then((canCancel) => {
582
- if (canCancel) {
583
- this.saveConfig();
584
- }
585
- });
586
- }
587
- else {
588
- this.saveConfig();
589
- }
590
- }
591
- controlFieldConfig(fieldConfig = undefined) {
592
- var _a;
593
- if (fieldConfig == undefined) {
594
- this._fieldConfigSelected = undefined;
595
- return;
596
- }
597
- if (((_a = this._fieldConfigSelected) === null || _a === void 0 ? void 0 : _a.name) === (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.name)) {
598
- this._fieldConfigSelected = undefined;
599
- }
600
- else {
601
- this._fieldConfigSelected = fieldConfig;
602
- }
603
- }
604
- getFieldConfigStyle(fieldConfig) {
605
- var _a;
606
- return this._formFieldsStyle +
607
- (((_a = this._fieldConfigSelected) === null || _a === void 0 ? void 0 : _a.name) === fieldConfig.name ? " form-config__field-config--selected" : "");
608
- }
609
- getFieldsByGroup(group) {
610
- var _a;
611
- return ((_a = group.fields) === null || _a === void 0 ? void 0 : _a.length) ? group.fields.map((field) => {
612
- var _a, _b;
613
- return h("div", { key: field.name, class: this.getFieldConfigStyle(field), "data-draggable-element": "field", onMouseDown: (evt) => this.controlMoveField(evt) }, h("snk-field-config", { messagesBuilder: this.messagesBuilder, onEzClickIcon: (evt) => { this.handleFieldConfigChange(evt); }, modeInsertion: false, fieldConfig: field, dataUnit: this.dataUnit, isConfigActive: ((_a = this._fieldConfigSelected) === null || _a === void 0 ? void 0 : _a.name) === field.name, id: field.name, key: field.name }), ((_b = this._fieldConfigSelected) === null || _b === void 0 ? void 0 : _b.name) === field.name &&
614
- h("div", { class: "ez-flex form-config__config-options" }, h("snk-config-options", { idConfig: field.name, messagesBuilder: this.messagesBuilder, dataUnit: this.dataUnit, fieldConfig: this._fieldConfigSelected, "data-element-id": this._element.getAttribute(ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME), onConfigOptionsChanged: (evt) => this.handleconfigOptionsChanged(evt.detail) })));
615
- }) : h("div", { class: "form-config__add-group-container" }, h("div", { class: "form-config__add-group-content" }, h("div", { class: "form-config__add-group-label" }, h("label", { class: "ez-text ez-text--center ez-text--medium ez-text--primary ez-text--bold" }, this.getMessage("snkFormConfig.form.labelDropField")))));
616
- }
617
- handleconfigOptionsChanged(fieldEdited) {
618
- var _a;
619
- (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.forEach(field => {
620
- });
621
- this._formConfigChanged = true;
622
- }
623
- closeFormConfig() {
624
- if (this._formConfigChanged === true || this._optionFormConfigChanged === true) {
625
- this.openConfirmDialog(this.getMessage("snkFormConfig.confirm.exit")).then((canClose) => {
626
- if (canClose) {
627
- this._formConfigChanged = false;
628
- this.configClose.emit();
629
- }
630
- });
631
- }
632
- else {
633
- this.configClose.emit();
634
- }
635
- }
636
- openConfirmDialog(msg = "", title = this.getMessage("snkFormConfig.confirm.title")) {
637
- return ApplicationUtils.confirm(title, msg);
638
- }
639
- controlMoveField(evt) {
640
- const element = evt === null || evt === void 0 ? void 0 : evt.target;
641
- if ((element === null || element === void 0 ? void 0 : element.closest('[data-draggable-element="field"]')) != undefined) {
642
- this._mouseOnFieldConfig = true;
643
- if ((element === null || element === void 0 ? void 0 : element.closest(".form-config__config-options")) != undefined || (element === null || element === void 0 ? void 0 : element.closest('.field-config__options')) != undefined) {
644
- this._mouseOnConfigOptions = true;
645
- }
646
- else {
647
- const iconList = ['minus', 'settings-inverted', 'chevron-up'];
648
- const iconName = element === null || element === void 0 ? void 0 : element.iconName;
649
- if (iconList.includes(iconName) === false) {
650
- this.controlFieldConfig();
651
- }
652
- }
653
- }
654
- }
655
- controlStartDraggingField(evt) {
656
- var _a, _b, _c;
657
- if (this._mouseOnConfigOptions) {
658
- evt === null || evt === void 0 ? void 0 : evt.cancel();
659
- this._mouseOnConfigOptions = false;
660
- }
661
- else {
662
- const sourceContainer = (_c = (_b = (_a = evt === null || evt === void 0 ? void 0 : evt.data) === null || _a === void 0 ? void 0 : _a.dragEvent) === null || _b === void 0 ? void 0 : _b.data) === null || _c === void 0 ? void 0 : _c.sourceContainer;
663
- if (sourceContainer != undefined) {
664
- sourceContainer.classList.add(this._fieldFloatingStyle);
665
- }
666
- }
667
- }
668
- controlSortedDraggingField(evt) {
669
- var _a, _b, _c, _d, _e, _f, _g, _h;
670
- const oldContainer = (_a = evt === null || evt === void 0 ? void 0 : evt.data) === null || _a === void 0 ? void 0 : _a.oldContainer;
671
- const newContainer = (_b = evt === null || evt === void 0 ? void 0 : evt.data) === null || _b === void 0 ? void 0 : _b.newContainer;
672
- const draggingElement = (_e = (_d = (_c = evt === null || evt === void 0 ? void 0 : evt.data) === null || _c === void 0 ? void 0 : _c.dragEvent) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.source;
673
- const originalElement = (_h = (_g = (_f = evt === null || evt === void 0 ? void 0 : evt.data) === null || _f === void 0 ? void 0 : _f.dragEvent) === null || _g === void 0 ? void 0 : _g.data) === null || _h === void 0 ? void 0 : _h.originalSource;
674
- if (oldContainer != undefined && newContainer != undefined && draggingElement != undefined && originalElement != undefined) {
675
- if ((newContainer.tagName === CONTAINER_ID.collapsibleBox
676
- || newContainer.id === CONTAINER_ID.withoutGroup)
677
- && oldContainer.id === CONTAINER_ID.fieldsAvailable) {
678
- draggingElement.className = this._formFieldsStyle;
679
- draggingElement.querySelector('snk-field-config').modeInsertion = false;
680
- originalElement.className = this._formFieldsStyle;
681
- originalElement.querySelector('snk-field-config').modeInsertion = false;
682
- }
683
- else if ((oldContainer.tagName === CONTAINER_ID.collapsibleBox
684
- || oldContainer.id === CONTAINER_ID.withoutGroup)
685
- && newContainer.id === CONTAINER_ID.fieldsAvailable) {
686
- draggingElement.className = this._fieldsAvailableStyle;
687
- draggingElement.querySelector('snk-field-config').modeInsertion = true;
688
- originalElement.className = this._fieldsAvailableStyle;
689
- originalElement.querySelector('snk-field-config').modeInsertion = true;
690
- }
691
- }
692
- }
693
- isCancelDragAvailableField(newContainer, oldContainer, evt) {
694
- var _a, _b;
695
- if (newContainer == undefined || oldContainer == undefined || evt == undefined) {
696
- return false;
697
- }
698
- if (((_a = evt.data) === null || _a === void 0 ? void 0 : _a.newIndex) !== ((_b = evt.data) === null || _b === void 0 ? void 0 : _b.oldIndex)
699
- && newContainer.id === CONTAINER_ID.fieldsAvailable
700
- && oldContainer.id === newContainer.id) {
701
- evt.cancel();
702
- this._fieldsAvailable = [];
703
- setTimeout(() => {
704
- this.buildAvailableFields();
705
- }, this._sortableTimer);
706
- return true;
707
- }
708
- return false;
709
- }
710
- isRemoveField(newContainer, oldContainer, fieldConfig) {
711
- if (newContainer == undefined || oldContainer == undefined || fieldConfig == undefined) {
712
- return false;
713
- }
714
- if ((oldContainer.tagName === CONTAINER_ID.collapsibleBox
715
- || oldContainer.id === CONTAINER_ID.withoutGroup)
716
- && newContainer.id === CONTAINER_ID.fieldsAvailable) {
717
- const eventDetail = {
718
- detail: {
719
- field: fieldConfig,
720
- type: ACTION_CONFIG.remove
721
- }
722
- };
723
- setTimeout(() => {
724
- this.handleFieldConfigChange(eventDetail);
725
- }, this._renderTimer);
726
- return true;
727
- }
728
- return false;
729
- }
730
- isAddOrMoveField(newContainer, oldContainer, fieldConfig, data) {
731
- var _a;
732
- if (newContainer == undefined || oldContainer == undefined || fieldConfig == undefined || data == undefined) {
733
- return false;
734
- }
735
- if (data.newIndex !== data.oldIndex
736
- || oldContainer.dataset.groupName !== newContainer.dataset.groupName
737
- || (newContainer.id === CONTAINER_ID.withoutGroup
738
- && oldContainer.id === CONTAINER_ID.fieldsAvailable)) {
739
- if (this.isFieldAvailable(newContainer, oldContainer)) {
740
- fieldConfig.tab = (_a = this._tabConfig) === null || _a === void 0 ? void 0 : _a.selectedTab;
741
- }
742
- fieldConfig.group = newContainer.dataset.groupName;
743
- setTimeout(() => {
744
- const isNewGroup = newContainer.id.includes(CONTAINER_ID.addNewGroup);
745
- if (isNewGroup) {
746
- this.clearTempGroups(true);
747
- }
748
- const sortableTimer = oldContainer.dataset.groupName !== newContainer.dataset.groupName
749
- || (newContainer.id === CONTAINER_ID.withoutGroup && oldContainer.id === CONTAINER_ID.fieldsAvailable)
750
- ? this._sortableTimer
751
- : 0;
752
- this.updateFieldsToSave(sortableTimer);
753
- }, this._renderTimer);
754
- return true;
755
- }
756
- return false;
757
- }
758
- isFieldAvailable(newContainer, oldContainer) {
759
- if (newContainer == undefined || oldContainer == undefined) {
760
- return false;
761
- }
762
- return (newContainer.tagName === CONTAINER_ID.collapsibleBox
763
- || newContainer.id === CONTAINER_ID.withoutGroup)
764
- && oldContainer.id === CONTAINER_ID.fieldsAvailable;
765
- }
766
- controlStopDraggingField(evt) {
767
- var _a, _b, _c, _d, _e, _f;
768
- const oldContainer = (_a = evt === null || evt === void 0 ? void 0 : evt.data) === null || _a === void 0 ? void 0 : _a.oldContainer;
769
- const newContainer = (_b = evt === null || evt === void 0 ? void 0 : evt.data) === null || _b === void 0 ? void 0 : _b.newContainer;
770
- if (this.isCancelDragAvailableField(newContainer, oldContainer, evt)) {
771
- return;
772
- }
773
- const originalElement = (_e = (_d = (_c = evt === null || evt === void 0 ? void 0 : evt.data) === null || _c === void 0 ? void 0 : _c.dragEvent) === null || _d === void 0 ? void 0 : _d.data) === null || _e === void 0 ? void 0 : _e.originalSource;
774
- const fieldConfig = (_f = originalElement === null || originalElement === void 0 ? void 0 : originalElement.querySelector('snk-field-config')) === null || _f === void 0 ? void 0 : _f.fieldConfig;
775
- if (this.isRemoveField(newContainer, oldContainer, fieldConfig)) {
776
- return;
777
- }
778
- if (this.isAddOrMoveField(newContainer, oldContainer, fieldConfig, evt === null || evt === void 0 ? void 0 : evt.data)) {
779
- return;
780
- }
781
- }
782
- updateFieldsToSave(updateTimer = 0) {
783
- const fields = this.getFieldsToSave();
784
- if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
785
- this._formConfig.fields = fields;
786
- }
787
- this.loadFields(updateTimer);
788
- this._formConfigChanged = true;
789
- }
790
- controlSortableField() {
791
- if (this._sortableContainer == undefined) {
792
- return;
793
- }
794
- if (this._sortableField) {
795
- this._sortableField.destroy();
796
- }
797
- this._sortableField = new Sortable(this._sortableContainer.querySelectorAll('[data-draggable-parent="field"]'), {
798
- draggable: '[data-draggable-element="field"]',
799
- mirror: {
800
- constrainDimensions: true
801
- },
802
- distance: CONFIG_EVENTS.dragStartDistance
803
- });
804
- this._sortableField.on(CONFIG_SORTABLE_EVENTS.dragStart, (evt) => this.controlStartDraggingField(evt));
805
- this._sortableField.on(CONFIG_SORTABLE_EVENTS.dragSorted, (evt) => this.controlSortedDraggingField(evt));
806
- this._sortableField.on(CONFIG_SORTABLE_EVENTS.dragStop, (evt) => this.controlStopDraggingField(evt));
807
- }
808
- controlStartDraggingGroup(evt) {
809
- if (this._mouseOnFieldConfig || this._editingTitleGroup) {
810
- evt === null || evt === void 0 ? void 0 : evt.cancel();
811
- this._mouseOnFieldConfig = false;
812
- }
813
- }
814
- controlStopDraggingGroup(evt) {
815
- if (evt.data.newIndex !== evt.data.oldIndex) {
816
- setTimeout(() => {
817
- this.updateFieldsToSave(this._sortableTimer);
818
- }, this._renderTimer);
819
- }
820
- }
821
- controlSortableGroup() {
822
- if (this._sortableContainer == undefined) {
823
- return;
824
- }
825
- if (this._sortableGroup) {
826
- this._sortableGroup.destroy();
827
- }
828
- this._sortableGroup = new Sortable(this._sortableContainer.querySelectorAll('[data-draggable-parent="group"]'), {
829
- draggable: '[data-draggable-element="group"]',
830
- mirror: {
831
- constrainDimensions: true
832
- },
833
- distance: CONFIG_EVENTS.dragStartDistance
834
- });
835
- this._sortableGroup.on(CONFIG_SORTABLE_EVENTS.dragStart, (evt) => this.controlStartDraggingGroup(evt));
836
- this._sortableGroup.on(CONFIG_SORTABLE_EVENTS.dragStop, (evt) => this.controlStopDraggingGroup(evt));
837
- }
838
- loadUserConfig() {
839
- if (this.configManager == undefined) {
840
- return;
841
- }
842
- this.configManager.fetchUserAvailableConfigs()
843
- .then((userConfig) => {
844
- this._formConfigOptions = userConfig;
845
- if (this._formConfigOptions == undefined) {
846
- return;
847
- }
848
- let isDefault = this._formConfig != undefined ? this._formConfig.defaultConfiguration : true;
849
- const selectedOption = userConfig
850
- .find((config) => {
851
- return config.origin === (isDefault ? UserConfigType.DEFAULT : UserConfigType.USER);
852
- });
853
- this.setFormConfig(selectedOption);
854
- });
855
- }
856
- setFormConfig(config) {
857
- this._optionFormConfigSelected = config;
858
- }
859
- controlSelectFormConfig(evt) {
860
- const action = evt === null || evt === void 0 ? void 0 : evt.detail;
861
- const selectedOption = this._formConfigOptions
862
- .find((config) => {
863
- return config.origin === (action === null || action === void 0 ? void 0 : action.value);
864
- });
865
- this.setFormConfig(selectedOption);
866
- this._optionFormConfigChanged = true;
867
- this.loadConfigByUser();
868
- }
869
- changeTabOrder(newIndex) {
870
- const tabs = [];
871
- const tabConfigs = this._tabConfig.querySelectorAll('.tab-config__tab');
872
- this._tabSelected = newIndex;
873
- tabConfigs.forEach((tabConfig, index) => {
874
- var _a;
875
- if (index) {
876
- const label = (_a = tabConfig.querySelector('.tab-config__tab-label')) === null || _a === void 0 ? void 0 : _a.getAttribute('title');
877
- tabs.push({
878
- label,
879
- order: (index - 1)
880
- });
881
- }
882
- });
883
- this._layoutFormConfig.map((tabLayout) => {
884
- tabs.forEach((tab) => {
885
- tab.label === tabLayout.tab && (tab.visible = tabLayout.visible);
886
- });
887
- });
888
- if (tabs.length > 0) {
889
- this._formConfig.tabs = tabs;
890
- this.loadFields(this._sortableTimer);
891
- this.controlFieldConfig();
892
- this._formConfigChanged = true;
893
- }
894
- }
895
- async loadConfigByUser() {
896
- if (this.configManager == undefined) {
897
- return;
898
- }
899
- if (this._optionFormConfigSelected == undefined) {
900
- return;
901
- }
902
- let config;
903
- switch (this._optionFormConfigSelected.origin) {
904
- case UserConfigType.DEFAULT:
905
- config = await this.configManager.fetchDefaultConfig();
906
- if (!config) {
907
- config = this.configManager.getEmptyConfig();
908
- }
909
- break;
910
- default:
911
- config = this.getConfig();
912
- break;
913
- }
914
- if (config != undefined) {
915
- this._formConfig = config;
916
- this._tabSelected = 1;
917
- this.loadFields(this._sortableTimer);
918
- this.controlFieldConfig();
919
- this.clearTempGroups();
920
- }
921
- }
922
- loadConfig(updateTimer = 0) {
923
- this.loadFormConfig(updateTimer);
924
- this.loadUserConfig();
925
- }
926
- addNewGroup() {
927
- var _a, _b;
928
- const tab = (_a = this._tabConfig) === null || _a === void 0 ? void 0 : _a.selectedTab;
929
- const hasGroup = (_b = this._tempGroups) === null || _b === void 0 ? void 0 : _b.find((tempGroup) => {
930
- return tempGroup.tab === tab && tempGroup.group.includes(this._labelNewGroup);
931
- });
932
- if (hasGroup == undefined) {
933
- this._tempGroups.push({
934
- tab,
935
- group: this.handleDuplicateGroups(this._labelNewGroup, this._tabConfig.selectedTab)
936
- });
937
- this.loadFields();
938
- this.controlFieldConfig();
939
- this._formConfigChanged = true;
940
- }
941
- }
942
- clearTempGroups(clearInTab = false) {
943
- var _a;
944
- if (((_a = this._tempGroups) === null || _a === void 0 ? void 0 : _a.length) > 0) {
945
- if (clearInTab) {
946
- this._tempGroups = this._tempGroups.filter((tempGroup) => {
947
- return tempGroup.tab !== this._tabConfig.selectedTab;
948
- });
949
- }
950
- else {
951
- this._tempGroups = [];
952
- }
953
- }
954
- }
955
- removeGroup(indexTempGroup = undefined) {
956
- if (indexTempGroup != undefined) {
957
- this._tempGroups = this._tempGroups.filter((tempGroup, index) => {
958
- return (index !== indexTempGroup
959
- && tempGroup.tab === this._tabConfig.selectedTab)
960
- || tempGroup.tab !== this._tabConfig.selectedTab;
961
- });
962
- }
963
- else {
964
- this.updateFieldsToSave(this._sortableTimer);
965
- }
966
- }
967
- checkGroupExists(newLabel, indexGroup, isTempGroup = false) {
968
- var _a, _b, _c;
969
- const tabName = (_a = this._tabConfig) === null || _a === void 0 ? void 0 : _a.selectedTab;
970
- const currentTab = (_b = this._layoutFormConfig) === null || _b === void 0 ? void 0 : _b.find(tab => tab.tab === tabName);
971
- const tabGroupsNames = (_c = currentTab === null || currentTab === void 0 ? void 0 : currentTab.groups) === null || _c === void 0 ? void 0 : _c.map(tab => { var _a; return (_a = tab.group) === null || _a === void 0 ? void 0 : _a.toLowerCase(); });
972
- if (tabGroupsNames === null || tabGroupsNames === void 0 ? void 0 : tabGroupsNames.includes(newLabel === null || newLabel === void 0 ? void 0 : newLabel.toLowerCase())) {
973
- const title = this.getMessage("snkFormConfig.confirm.title");
974
- const message = `
975
- ${this.getMessage("snkFormConfig.alert.titleGroupExists")}
976
- <b>${newLabel}</b>
977
- ${this.getMessage("snkFormConfig.alert.inTab")}
978
- <b>${tabName === TAB_NAMES.main ? this.getMessage("snkFormConfig.form.mainArea") : tabName}</b>.
979
- <br/><br/>
980
- ${this.getMessage("snkFormConfig.alert.infoValidTitle")}
981
- `;
982
- ApplicationUtils.alert(title, message)
983
- .then(() => {
984
- var _a, _b;
985
- if (isTempGroup) {
986
- (_a = this._newGroupBoxes[indexGroup]) === null || _a === void 0 ? void 0 : _a.applyFocusTextEdit();
987
- }
988
- else {
989
- (_b = this._currentGroupBoxes[tabName][indexGroup]) === null || _b === void 0 ? void 0 : _b.applyFocusTextEdit();
990
- }
991
- });
992
- return false;
993
- }
994
- return true;
995
- }
996
- saveEditLabelTempGroup(editDetails, index) {
997
- const { newValue: newLabel } = editDetails.detail;
998
- if (this._newGroupBoxes != undefined && this._newGroupBoxes[index] != undefined) {
999
- this._newGroupBoxes[index].dataset.groupName = newLabel;
1000
- }
1001
- }
1002
- saveEditLabelGroup(editDetails) {
1003
- var _a;
1004
- const { value: oldLabel, newValue: newLabel } = editDetails.detail;
1005
- (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.forEach((field) => {
1006
- if (field.group === oldLabel) {
1007
- field.group = newLabel;
1008
- }
1009
- });
1010
- this.loadFields(this._sortableTimer);
1011
- this.controlFieldConfig();
1012
- this._formConfigChanged = true;
1013
- }
1014
- renderTempGroupByTab(tabName) {
1015
- return this._tempGroups.map((tempGroup, indexGroup) => {
1016
- if (tempGroup.tab === tabName) {
1017
- return h("ez-collapsible-box", { ref: ref => this._newGroupBoxes[indexGroup] = ref, id: `${CONTAINER_ID.addNewGroup}-${indexGroup}`, editable: true, removable: true, "header-size": "large", label: tempGroup.group, "icon-placement": "left", "data-group-name": tempGroup.group, "data-draggable-parent": "field", class: "form-config__add-group", onEzRemove: () => this.removeGroup(indexGroup), onEzSaveEditLabel: (evt) => this.saveEditLabelTempGroup(evt, indexGroup), onEzEditLabelMode: (evt) => this._editingTitleGroup = evt.detail, conditionalSave: (newLabel) => this.checkGroupExists(newLabel, indexGroup, true) }, this.getFieldsByGroup(tempGroup));
1018
- }
1019
- });
1020
- }
1021
- handleDuplicateGroups(titleNewGroup, currentTab) {
1022
- var _a;
1023
- const selectedTabGroups = this._layoutFormConfig[this._tabConfig.selectedIndex].groups.map(tab => tab.group);
1024
- if (selectedTabGroups != undefined) {
1025
- (_a = this._layoutFormConfig) === null || _a === void 0 ? void 0 : _a.map(tab => {
1026
- if (tab.tab === currentTab) {
1027
- if (tab.groups.some(groups => groups.group === titleNewGroup)) {
1028
- titleNewGroup += `${this.captureHighestValueTitle(selectedTabGroups)}`;
1029
- }
1030
- }
1031
- });
1032
- }
1033
- return titleNewGroup;
1034
- }
1035
- captureHighestValueTitle(groupsTemp) {
1036
- let valuesNumericTitle = [];
1037
- groupsTemp === null || groupsTemp === void 0 ? void 0 : groupsTemp.map(group => {
1038
- if (group != undefined) {
1039
- valuesNumericTitle.push(group.replace(/[^0-9]/g, ''));
1040
- }
1041
- });
1042
- if (Math.max.apply(null, valuesNumericTitle) > 0) {
1043
- return ` (${Math.max.apply(null, valuesNumericTitle) + 1})`;
1044
- }
1045
- else {
1046
- return ' (1)';
1047
- }
1048
- }
1049
- getLayoutFormConfig() {
1050
- var _a, _b, _c;
1051
- if (((_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.fields) == undefined) {
1052
- return;
1053
- }
1054
- let layoutFormConfig = [];
1055
- let fields = [];
1056
- for (const field of this._formConfig.fields) {
1057
- const hasField = fields.find((fieldTemp) => {
1058
- return field.name === fieldTemp.name && field.tab === fieldTemp.tab;
1059
- });
1060
- if (hasField == undefined) {
1061
- fields.push(field);
1062
- const fieldMD = this.dataUnit.getField(field.name);
1063
- /**
1064
- * Quando um campo é ocultado pelo dev, mas queremos manter ele na config precisamos fazer essa tratativa.
1065
- */
1066
- const visibleOnConfig = ((_b = fieldMD === null || fieldMD === void 0 ? void 0 : fieldMD.properties) === null || _b === void 0 ? void 0 : _b.visibleOnConfig) === true && (fieldMD === null || fieldMD === void 0 ? void 0 : fieldMD.visible) === false;
1067
- if ((fieldMD === null || fieldMD === void 0 ? void 0 : fieldMD.visible) || visibleOnConfig) {
1068
- if (field.label == undefined || field.label === "") {
1069
- field.label = fieldMD.label;
1070
- }
1071
- if (field.tab == undefined || field.tab === "") {
1072
- field.tab = this.getMessage("snkFormConfig.form.tabGeneral");
1073
- }
1074
- let tab = layoutFormConfig.find(value => value.tab === field.tab);
1075
- if (tab == undefined) {
1076
- let visible = null;
1077
- if (this._formConfig.tabs != undefined) {
1078
- const configTabs = this._formConfig.tabs.filter(configTab => configTab.label === field.tab);
1079
- if (configTabs.length > 0) {
1080
- visible = configTabs[0].visible;
1081
- }
1082
- }
1083
- const tabLabel = ((_c = field.tab) === null || _c === void 0 ? void 0 : _c.label) || field.tab;
1084
- if (visible !== null) {
1085
- tab = { tab: tabLabel, groups: [], visible };
1086
- }
1087
- else {
1088
- tab = { tab: tabLabel, groups: [], visible: true };
1089
- }
1090
- layoutFormConfig.push(tab);
1091
- }
1092
- const group = tab.groups.find(value => value.group === field.group);
1093
- if (group) {
1094
- group.fields.push(field);
1095
- }
1096
- else {
1097
- const newGroup = { group: field.group, fields: [field] };
1098
- if (field.group === undefined) {
1099
- tab.groups.unshift(newGroup);
1100
- }
1101
- else {
1102
- tab.groups.push(newGroup);
1103
- }
1104
- }
1105
- }
1106
- }
1107
- }
1108
- return layoutFormConfig;
1109
- }
1110
- configureTabs(layoutFormConfig) {
1111
- var _a;
1112
- if (((_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.tabs) == undefined) {
1113
- return layoutFormConfig;
1114
- }
1115
- if (layoutFormConfig == undefined) {
1116
- layoutFormConfig = [];
1117
- }
1118
- if (this._formConfig.defaultConfiguration) {
1119
- return layoutFormConfig;
1120
- }
1121
- return this._formConfig.tabs.map((tab) => {
1122
- return layoutFormConfig.find(config => { var _a, _b; return ((_a = tab.label) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === ((_b = config.tab) === null || _b === void 0 ? void 0 : _b.toLowerCase()); })
1123
- || { tab: tab.label, groups: [], visible: tab.visible };
1124
- });
1125
- }
1126
- configureTabMain(layoutFormConfig) {
1127
- if (layoutFormConfig == undefined) {
1128
- layoutFormConfig = [];
1129
- }
1130
- const hasTabMain = layoutFormConfig.find((layoutTab) => {
1131
- return layoutTab.tab === TAB_NAMES.main;
1132
- });
1133
- if (hasTabMain == undefined) {
1134
- layoutFormConfig.unshift({ tab: TAB_NAMES.main, groups: [], visible: true });
1135
- }
1136
- return layoutFormConfig;
1137
- }
1138
- updateTabs() {
1139
- const tabs = this.getTabsToSave();
1140
- if ((tabs === null || tabs === void 0 ? void 0 : tabs.length) > 0) {
1141
- this._formConfig.tabs = tabs;
1142
- if (tabs.length === 1) {
1143
- this._tabSelected = 0;
1144
- }
1145
- }
1146
- }
1147
- buildFormConfig() {
1148
- var _a;
1149
- if (((_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.fields) == undefined) {
1150
- return;
1151
- }
1152
- let layoutFormConfig = this.getLayoutFormConfig();
1153
- layoutFormConfig = this.configureTabs(layoutFormConfig);
1154
- layoutFormConfig = this.configureTabMain(layoutFormConfig);
1155
- this._layoutFormConfig = layoutFormConfig;
1156
- this.updateTabs();
1157
- }
1158
- buildAvailableFields() {
1159
- var _a, _b;
1160
- if (((_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.fields) == undefined) {
1161
- return;
1162
- }
1163
- let fieldsFormConfig = [];
1164
- let fieldsMetadata = this.dataUnit.metadata.fields;
1165
- for (const field of this._formConfig.fields) {
1166
- fieldsFormConfig.push(field);
1167
- }
1168
- const listFieldsAvailable = fieldsMetadata.filter(({ name: _nameFieldMetadado, visible: _visibleMetadado, properties }) => {
1169
- const hasCfg = fieldsFormConfig.some(({ name: _nameFieldForm }) => _nameFieldForm === _nameFieldMetadado);
1170
- /**
1171
- * Quando a visibilidade de um campo é alterada pelo dataunit, mas o desenvolvedor deseja que o mesmo continue
1172
- * sendo apresentado no configurador, precisamos fazer essa tratativa, verificando se o campo não tem configuração
1173
- */
1174
- if (!hasCfg && properties.visibleOnConfig === true && !_visibleMetadado)
1175
- return properties.visibleOnConfig;
1176
- return _visibleMetadado === true && hasCfg === false;
1177
- });
1178
- this._fieldsAvailable = listFieldsAvailable;
1179
- this._listEnabledFields = listFieldsAvailable;
1180
- if (((_b = this._filterFieldsAvailable) === null || _b === void 0 ? void 0 : _b.value) != undefined) {
1181
- const filterValue = this._filterFieldsAvailable.value;
1182
- this.onFilterChange(filterValue);
1183
- }
1184
- }
1185
- changeTabSelected(tabSelected) {
1186
- this._tabSelected = tabSelected.index;
1187
- const selectorTab = this._formContainer.querySelector("div#tab" + tabSelected.index);
1188
- this._formContainer.querySelectorAll(".form-config__tab-content").forEach(container => container.className = "form-config__hide-content sc-snk-form-config");
1189
- if (selectorTab) {
1190
- selectorTab.className = "form-config__tab-content ez-flex ez-flex--column ez-size-width--full ez-padding--medium sc-snk-form-config";
1191
- }
1192
- }
1193
- onFilterChange(value) {
1194
- this._fieldsAvailable = ArrayUtils.applyStringFilter(value, this._listEnabledFields, true, "label");
1195
- }
1196
- orderFieldsAvailable(fields) {
1197
- return ArrayUtils.sortAlphabetically(fields);
1198
- }
1199
- handleLabelCounter(sizeList) {
1200
- const labels = [this.getMessage("snkFormConfig.availableFields.labelNoFields"), this.getMessage("snkFormConfig.availableFields.labelOneField")];
1201
- return sizeList > 1 ? `${sizeList} ${this.getMessage("snkFormConfig.availableFields.labelAvailableFields")}` : labels[sizeList];
1202
- }
1203
- controlAddFieldConfig(fieldConfig) {
1204
- var _a;
1205
- this._formConfigChanged = false;
1206
- if (fieldConfig == undefined) {
1207
- return;
1208
- }
1209
- if (this._formConfig.fields == undefined) {
1210
- this._formConfig.fields = [];
1211
- }
1212
- const fieldFinded = this._formConfig.fields.filter((field) => {
1213
- return field.name === fieldConfig.name && field.tab && fieldConfig.tab;
1214
- });
1215
- if (fieldFinded.length > 0) {
1216
- fieldFinded.forEach((field) => {
1217
- field.name = fieldConfig.name;
1218
- field.label = fieldConfig.label;
1219
- field.required = fieldConfig.required;
1220
- field.readOnly = fieldConfig.readOnly;
1221
- field.group = fieldConfig.group;
1222
- });
1223
- }
1224
- else {
1225
- this._formConfig.fields.push({
1226
- name: fieldConfig.name,
1227
- label: fieldConfig.label,
1228
- required: fieldConfig.required,
1229
- readOnly: fieldConfig.readOnly,
1230
- group: fieldConfig.group,
1231
- tab: (_a = this._tabConfig) === null || _a === void 0 ? void 0 : _a.selectedTab
1232
- });
1233
- }
1234
- this.loadFields();
1235
- this.controlFieldConfig();
1236
- this._formConfigChanged = true;
1237
- this.resetSortables();
1238
- }
1239
- controlRemoveFieldConfig(fieldConfig, updateTimer) {
1240
- var _a;
1241
- this._formConfigChanged = false;
1242
- if (fieldConfig == undefined) {
1243
- return;
1244
- }
1245
- this._formConfig.fields = (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.filter((field) => field.name !== fieldConfig.name);
1246
- this.loadFields(updateTimer);
1247
- this.controlFieldConfig();
1248
- this._formConfigChanged = true;
1249
- this.resetSortables();
1250
- }
1251
- resetSortables() {
1252
- this.controlSortableField();
1253
- this.controlSortableGroup();
1254
- }
1255
- handleFieldConfigChange(evt, updateTimer = 0) {
1256
- const { field: fieldConfig, type: actionType } = evt.detail;
1257
- if (actionType === ACTION_CONFIG.configuration) {
1258
- this.controlFieldConfig(fieldConfig);
1259
- return;
1260
- }
1261
- if (actionType === ACTION_CONFIG.remove) {
1262
- this.controlRemoveFieldConfig(fieldConfig, updateTimer);
1263
- return;
1264
- }
1265
- if (actionType === ACTION_CONFIG.add) {
1266
- this.controlAddFieldConfig(fieldConfig);
1267
- return;
1268
- }
1269
- }
1270
- changeTabLabel(editDetails) {
1271
- var _a, _b;
1272
- const { value: oldLabel, newValue: newLabel } = editDetails.detail.detail;
1273
- (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.forEach((field) => {
1274
- if (field.tab === oldLabel) {
1275
- field.tab = newLabel;
1276
- }
1277
- });
1278
- (_b = this._formConfig.tabs) === null || _b === void 0 ? void 0 : _b.forEach((tab) => {
1279
- if (tab.label === oldLabel) {
1280
- tab.label = newLabel;
1281
- }
1282
- });
1283
- this.loadFields(this._sortableTimer);
1284
- this.controlFieldConfig();
1285
- this._formConfigChanged = true;
1286
- }
1287
- handleDeleteTab(tabSelected) {
1288
- let options = {
1289
- canClose: false,
1290
- labelCancel: this.getMessage("snkFormConfig.confirm.labelCancel"),
1291
- labelConfirm: this.getMessage("snkFormConfig.confirm.labelDelete"),
1292
- btnConfirmDanger: false
1293
- };
1294
- const title = this.getMessage("snkFormConfig.confirm.title");
1295
- const deleteTab = this.getMessage("snkFormConfig.confirm.deleteTab") + ` <b>${tabSelected.detail.label}</b>?`;
1296
- ApplicationUtils.confirm(title, deleteTab, null, DialogType.WARN, options)
1297
- .then(response => {
1298
- var _a;
1299
- if (response) {
1300
- this._formConfig.tabs = (_a = this._formConfig.tabs) === null || _a === void 0 ? void 0 : _a.filter((tab) => {
1301
- return tab.label !== tabSelected.detail.label;
1302
- });
1303
- this.loadFields(this._sortableTimer);
1304
- this.controlFieldConfig();
1305
- this._formConfigChanged = true;
1306
- }
1307
- });
1308
- }
1309
- changeHideTab(tabSelected) {
1310
- var _a;
1311
- (_a = this._formConfig.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => {
1312
- if (tab.label === tabSelected.detail.label) {
1313
- tab.visible = !tab.visible;
1314
- }
1315
- });
1316
- this.loadFields(this._sortableTimer);
1317
- this.controlFieldConfig();
1318
- this._formConfigChanged = true;
1319
- }
1320
- handleCanStartDragTab() {
1321
- var _a, _b;
1322
- const tabs = this._layoutFormConfig.map(tab => tab.tab);
1323
- for (const tab of tabs) {
1324
- (_a = this._currentGroupBoxes[tab]) === null || _a === void 0 ? void 0 : _a.map(collapsibleBox => collapsibleBox === null || collapsibleBox === void 0 ? void 0 : collapsibleBox.cancelEdition());
1325
- }
1326
- (_b = this._newGroupBoxes) === null || _b === void 0 ? void 0 : _b.map(collapsibleBox => collapsibleBox === null || collapsibleBox === void 0 ? void 0 : collapsibleBox.cancelEdition());
1327
- }
1328
- /**
1329
- * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
1330
- * através de um pequeno modulo na estrutura da aplicação:
1331
- * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
1332
- * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-form.msg.ts"
1333
- */
1334
- getMessage(key, params) {
1335
- return this.messagesBuilder.getMessage(key, params);
1336
- }
1337
- componentDidRender() {
1338
- this.controlSortableField();
1339
- this.controlSortableGroup();
1340
- }
1341
- async componentWillRender() {
1342
- if (this.messagesBuilder == undefined) {
1343
- const application = ApplicationContext.getContextValue("__SNK__APPLICATION__");
1344
- this.messagesBuilder = application.messagesBuilder;
1345
- }
1346
- }
1347
- componentWillLoad() {
1348
- this.loadConfig();
1349
- }
1350
- componentDidLoad() {
1351
- const dataInfo = { dataUnit: this.dataUnit };
1352
- ElementIDUtils.addIDInfo(this._element, null, dataInfo);
1353
- }
1354
- render() {
1355
- var _a, _b, _c, _d;
1356
- return (h(Host, null, h("div", { class: "ez-row ez-padding--medium" }, h("div", { class: "ez-col ez-col--sd-7 ez-col--tb-9 ez-align--middle" }, h("ez-button", { mode: "icon", title: this.getMessage("snkFormConfig.goBackTitle"), iconName: "arrow_back", class: "ez-padding--small", size: "small", onClick: () => this.closeFormConfig(), id: "formConfigToBack" }), h("h1", { class: "ez-title ez-title--primary ez-title--extra-large ez-padding--small" }, this.getMessage("snkFormConfig.title")), this._formConfigOptions &&
1357
- h("ez-actions-button", { class: "form-config__actions-button ez-margin-left--medium", value: (_a = this._optionFormConfigSelected) === null || _a === void 0 ? void 0 : _a.origin, showLabel: true, displayIcon: "chevron-down", checkOption: true, size: "small", actions: this._formConfigOptions.map((option) => {
1358
- return { value: option.origin, label: option.name };
1359
- }), onEzAction: (evt) => this.controlSelectFormConfig(evt), id: "selectConfig" })), h("div", { class: "ez-col ez-col--sd-5 ez-col--tb-3 ez-align--middle ez-align--right" }, this._formConfigChanged === true && this._optionFormConfigChanged === false &&
1360
- h("div", { class: "ez-row ez-align--middle ez-align--right" }, h("ez-button", { label: "Cancelar", class: "ez-padding-left--medium", size: "small", onClick: () => this.cancelChangeConfig() }), h("ez-button", { label: "Salvar", class: "ez-button--primary ez-padding-left--medium", size: "small", onClick: () => this.saveConfig() }, h("ez-icon", { class: "ez-margin-right--small", slot: "leftIcon", iconName: "save" }))), this._optionFormConfigChanged === true &&
1361
- h("div", { class: "ez-row ez-align--middle ez-align--right" }, h("ez-button", { label: "Cancelar", class: "ez-padding-left--medium", size: "small", onClick: () => this.cancelChangeOptionConfig() }), h("ez-button", { label: this.getMessage("snkFormConfig.applyConfig"), class: "ez-button--primary ez-padding-left--medium", size: "small", onClick: () => this.applyOptionConfig() })))), h("div", { class: "ez-row ez-padding--medium", ref: ref => this._sortableContainer = ref }, h("div", { class: "form-config__tab-container ez-col ez-col--sd-9 ez-col--tb-9 ez-padding-right--medium" }, ((_b = this._layoutFormConfig) === null || _b === void 0 ? void 0 : _b.length) > 0 &&
1362
- h("section", { class: "ez-box__container", ref: ref => this._formContainer = ref }, h("snk-tab-config", { ref: ref => this._tabConfig = ref, selectedIndex: this._tabSelected, messagesBuilder: this.messagesBuilder, onEzTabChange: (ev) => this.changeTabSelected(ev.detail), onEzOrderChange: (ev) => this.changeTabOrder(ev.detail), onEditionTitleTab: (ev) => this.changeTabLabel(ev), onDeleteTab: (ev) => this.handleDeleteTab(ev), onHideTab: (ev) => this.changeHideTab(ev), onCanStartDrag: () => this.handleCanStartDragTab(), tabItems: this._layoutFormConfig.map((tab) => { return { tabKey: tab.tab, label: tab.tab, visible: tab.visible }; }) }), this._layoutFormConfig.map((tab, indexTab) => h("div", { id: "tab" + indexTab, "data-draggable-parent": "group", class: this._tabSelected === indexTab
1363
- ? "form-config__tab-content ez-flex ez-flex--column ez-size-width--full ez-padding--medium"
1364
- : "form-config__hide-content" }, tab.groups.map((group, indexGroup) => {
1365
- if (group.group) {
1366
- if (this._currentGroupBoxes[tab.tab] == undefined) {
1367
- this._currentGroupBoxes[tab.tab] = [];
1368
- }
1369
- return h("ez-collapsible-box", { ref: ref => this._currentGroupBoxes[tab.tab][indexGroup] = ref, editable: true, removable: true, "header-size": "large", label: group.group, "icon-placement": "left", "data-group-name": group.group, "data-draggable-parent": "field", "data-draggable-element": "group", onEzRemove: () => this.removeGroup(), onEzSaveEditLabel: (evt) => this.saveEditLabelGroup(evt), onEzEditLabelMode: (evt) => this._editingTitleGroup = evt.detail, conditionalSave: (newLabel) => this.checkGroupExists(newLabel, indexGroup) }, this.getFieldsByGroup(group));
1370
- }
1371
- else {
1372
- return h("div", { class: "ez-flex ez-flex--column ez-size-width--full" }, h("label", { class: "ez-text ez-text--secondary ez-margin-vertical--small" }, this.getMessage("snkFormConfig.form.subTitleInfo")), h("div", { id: CONTAINER_ID.withoutGroup, class: "ez-row", "data-draggable-parent": "field" }, this.getFieldsByGroup(group)), h("hr", { class: "ez-divider-horizontal ez-margin-vertical--medium" }));
1373
- }
1374
- }), this.renderTempGroupByTab(tab.tab))), h("div", { class: "form-config__btn-add-group ez-row" }, h("div", { class: "form-config__btn-add-group-container ez-col ez-col--sd-12 ez-col--tb-12 ez-align--center" }, h("ez-button", { label: this.getMessage("snkFormConfig.form.labelNewGroup"), class: "ez-padding-horizontal--small ez-button--primary", size: "small", onClick: () => this.addNewGroup() }, h("ez-icon", { class: "ez-margin-right--small", slot: "leftIcon", iconName: "plus" })))))), h("div", { class: "form-config__fields-available ez-col ez-col--sd-3 ez-col--tb-3" }, h("section", { class: "ez-box__container ez-col ez-col--pn-12" }, h("h1", { class: "ez-title ez-title--large ez-title--primary ez-padding-bottom--medium" }, this.getMessage("snkFormConfig.availableFields.title")), h("ez-filter-input", { id: "searchFields", ref: ref => this._filterFieldsAvailable = ref, label: this.getMessage("snkFormConfig.availableFields.labelSearchField"), onEzChange: evt => this.onFilterChange(evt.detail) }), h("span", { class: "ez-box__label-counter ez-text ez-text--medium ez-text--primary ez-margin-bottom--medium" }, this.handleLabelCounter((_c = this._fieldsAvailable) === null || _c === void 0 ? void 0 : _c.length)), ((_d = this._layoutFormConfig) === null || _d === void 0 ? void 0 : _d.length) > 0 &&
1375
- h("div", { id: CONTAINER_ID.fieldsAvailable, class: "ez-row", "data-draggable-parent": "field" }, this.orderFieldsAvailable(this._fieldsAvailable).map((field) => h("div", { key: field.name, class: this._fieldsAvailableStyle, "data-draggable-element": "field", onMouseDown: (evt) => this.controlMoveField(evt) }, h("snk-field-config", { messagesBuilder: this.messagesBuilder, onEzClickIcon: (evt) => { this.handleFieldConfigChange(evt); }, dataUnit: this.dataUnit, fieldConfig: field, id: field.name })))))))));
1376
- }
1377
- get _element() { return getElement(this); }
1378
- static get watchers() { return {
1379
- "configManager": ["observeConfigManager"]
1380
- }; }
1381
- };
1382
- SnkFormConfig.style = snkFormConfigCss;
1383
-
1384
- export { SnkConfigOptions as snk_config_options, SnkForm as snk_form, SnkFormConfig as snk_form_config };