@sankhyalabs/sankhyablocks 1.4.0-beta.6 → 1.4.0-beta.8

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 (194) hide show
  1. package/dist/cjs/{SnkMessageBuilder-b54dfb89.js → SnkMessageBuilder-6c2f7bcd.js} +87 -11
  2. package/dist/cjs/_commonjsHelpers-537d719a.js +20 -0
  3. package/dist/cjs/configurableElementsStorage-93459c72.js +20 -0
  4. package/dist/cjs/constants-aebcc2f5.js +69 -0
  5. package/dist/cjs/draggable.bundle-82a25c06.js +6886 -0
  6. package/dist/cjs/form-config-fetcher-2de7c16a.js +6895 -0
  7. package/dist/cjs/{index-6fcf07f3.js → index-188190ee.js} +2 -0
  8. package/dist/cjs/loader.cjs.js +2 -2
  9. package/dist/cjs/sankhyablocks.cjs.js +2 -2
  10. package/dist/cjs/snk-application.cjs.entry.js +240 -6972
  11. package/dist/cjs/snk-config-modal.cjs.entry.js +62 -0
  12. package/dist/cjs/snk-config-options.cjs.entry.js +163 -0
  13. package/dist/cjs/{snk-filter-bar_5.cjs.entry.js → snk-configurator_6.cjs.entry.js} +193 -6
  14. package/dist/cjs/snk-crud.cjs.entry.js +13 -11
  15. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  16. package/dist/cjs/snk-field-config_2.cjs.entry.js +135 -0
  17. package/dist/cjs/snk-filter-binary-select.cjs.entry.js +1 -1
  18. package/dist/cjs/snk-filter-detail.cjs.entry.js +1 -1
  19. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +1 -1
  20. package/dist/cjs/snk-filter-number.cjs.entry.js +1 -1
  21. package/dist/cjs/snk-filter-period.cjs.entry.js +1 -1
  22. package/dist/cjs/snk-filter-personalized.cjs.entry.js +1 -1
  23. package/dist/cjs/snk-filter-search.cjs.entry.js +1 -1
  24. package/dist/cjs/snk-filter-text.cjs.entry.js +1 -1
  25. package/dist/cjs/snk-form-config.cjs.entry.js +957 -0
  26. package/dist/cjs/snk-form.cjs.entry.js +146 -0
  27. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  28. package/dist/cjs/snk-tab-config.cjs.entry.js +321 -0
  29. package/dist/cjs/{taskbar-elements-aedfeae6.js → taskbar-elements-4c2c6704.js} +10 -6
  30. package/dist/cjs/taskbar-processor-6bd0d35c.js +47 -0
  31. package/dist/cjs/teste-pesquisa.cjs.entry.js +1 -1
  32. package/dist/collection/collection-manifest.json +27 -1
  33. package/dist/collection/components/snk-application/errorhandler/snk-error-handler.js +1 -1
  34. package/dist/collection/components/snk-application/snk-application.js +144 -23
  35. package/dist/collection/components/snk-configurator/snk-configurator.js +261 -0
  36. package/dist/collection/components/snk-configurator/subcomponents/configModalProvider/configurableElementsStorage.js +16 -0
  37. package/dist/collection/components/snk-configurator/subcomponents/snk-config-modal/snk-config-modal.css +122 -0
  38. package/dist/collection/components/snk-configurator/subcomponents/snk-config-modal/snk-config-modal.js +137 -0
  39. package/dist/collection/components/snk-crud/snk-crud.js +15 -13
  40. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.js +33 -3
  41. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-search.js +3 -3
  42. package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -1
  43. package/dist/collection/components/snk-form/snk-form.css +4 -0
  44. package/dist/collection/components/snk-form/snk-form.js +108 -30
  45. package/dist/collection/components/snk-form/subcomponents/snk-config-options/snk-config-options.css +9 -0
  46. package/dist/collection/components/snk-form/subcomponents/snk-config-options/snk-config-options.js +248 -0
  47. package/dist/collection/components/snk-form/subcomponents/snk-field-config/snk-field-config.css +164 -0
  48. package/dist/collection/components/snk-form/subcomponents/snk-field-config/snk-field-config.js +140 -0
  49. package/dist/collection/components/snk-form/subcomponents/snk-form-config/snk-form-config.css +185 -0
  50. package/dist/collection/components/snk-form/subcomponents/snk-form-config/snk-form-config.js +1062 -0
  51. package/dist/collection/components/snk-form/subcomponents/snk-tab-config/snk-tab-config.css +272 -0
  52. package/dist/collection/components/snk-form/subcomponents/snk-tab-config/snk-tab-config.js +476 -0
  53. package/dist/collection/components/snk-grid/snk-grid.js +92 -22
  54. package/dist/collection/components/snk-taskbar/elements/taskbar-elements.js +9 -5
  55. package/dist/collection/components/snk-taskbar/snk-taskbar.js +35 -3
  56. package/dist/collection/lib/http/data-fetcher/fetchers/dataunit-fetcher.js +35 -0
  57. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +106 -3
  58. package/dist/collection/lib/http/data-fetcher/fetchers/resource-fetcher.js +9 -1
  59. package/dist/collection/lib/message/SnkMessageBuilder.js +8 -1
  60. package/dist/collection/lib/message/resources/snk-configurator.msg.js +11 -0
  61. package/dist/collection/lib/message/resources/snk-form.msg.js +59 -2
  62. package/dist/collection/lib/message/resources/snk-taskbar.msg.js +1 -1
  63. package/dist/collection/lib/utils/constants.js +58 -0
  64. package/dist/components/SnkMessageBuilder.js +87 -11
  65. package/dist/components/_commonjsHelpers.js +17 -0
  66. package/dist/components/constants.js +60 -0
  67. package/dist/components/form-config-fetcher.js +6889 -0
  68. package/dist/components/index.d.ts +6 -0
  69. package/dist/components/index.js +6 -0
  70. package/dist/components/snk-application2.js +225 -6954
  71. package/dist/components/snk-config-modal.d.ts +11 -0
  72. package/dist/components/snk-config-modal.js +6 -0
  73. package/dist/components/snk-config-modal2.js +91 -0
  74. package/dist/components/snk-config-options.d.ts +11 -0
  75. package/dist/components/snk-config-options.js +6 -0
  76. package/dist/components/snk-config-options2.js +178 -0
  77. package/dist/components/snk-configurator.d.ts +11 -0
  78. package/dist/components/snk-configurator.js +6 -0
  79. package/dist/components/snk-configurator2.js +212 -0
  80. package/dist/components/snk-crud.js +62 -25
  81. package/dist/components/snk-field-config.d.ts +11 -0
  82. package/dist/components/snk-field-config.js +6 -0
  83. package/dist/components/snk-field-config2.js +70 -0
  84. package/dist/components/snk-filter-bar2.js +1 -1
  85. package/dist/components/snk-filter-personalized.js +2 -0
  86. package/dist/components/snk-form-config.d.ts +11 -0
  87. package/dist/components/snk-form-config.js +6 -0
  88. package/dist/components/snk-form-config2.js +996 -0
  89. package/dist/components/snk-form2.js +79 -29
  90. package/dist/components/snk-grid2.js +43 -24
  91. package/dist/components/snk-tab-config.d.ts +11 -0
  92. package/dist/components/snk-tab-config.js +6 -0
  93. package/dist/components/snk-tab-config2.js +7220 -0
  94. package/dist/components/snk-taskbar2.js +27 -9
  95. package/dist/esm/{SnkMessageBuilder-d440381c.js → SnkMessageBuilder-5792c260.js} +87 -11
  96. package/dist/esm/_commonjsHelpers-9943807e.js +17 -0
  97. package/dist/esm/configurableElementsStorage-cdc144b5.js +18 -0
  98. package/dist/esm/constants-c4e3341e.js +60 -0
  99. package/dist/esm/draggable.bundle-41d56f06.js +6884 -0
  100. package/dist/esm/form-config-fetcher-96c6c2dc.js +6889 -0
  101. package/dist/esm/{index-81dda3cf.js → index-bafb2cef.js} +2 -1
  102. package/dist/esm/loader.js +2 -2
  103. package/dist/esm/sankhyablocks.js +2 -2
  104. package/dist/esm/snk-application.entry.js +224 -6956
  105. package/dist/esm/snk-config-modal.entry.js +58 -0
  106. package/dist/esm/snk-config-options.entry.js +159 -0
  107. package/dist/esm/{snk-filter-bar_5.entry.js → snk-configurator_6.entry.js} +194 -8
  108. package/dist/esm/snk-crud.entry.js +13 -11
  109. package/dist/esm/snk-data-unit.entry.js +2 -2
  110. package/dist/esm/snk-field-config_2.entry.js +130 -0
  111. package/dist/esm/snk-filter-binary-select.entry.js +1 -1
  112. package/dist/esm/snk-filter-detail.entry.js +1 -1
  113. package/dist/esm/snk-filter-multi-select.entry.js +1 -1
  114. package/dist/esm/snk-filter-number.entry.js +1 -1
  115. package/dist/esm/snk-filter-period.entry.js +1 -1
  116. package/dist/esm/snk-filter-personalized.entry.js +1 -1
  117. package/dist/esm/snk-filter-search.entry.js +1 -1
  118. package/dist/esm/snk-filter-text.entry.js +1 -1
  119. package/dist/esm/snk-form-config.entry.js +953 -0
  120. package/dist/esm/snk-form.entry.js +142 -0
  121. package/dist/esm/snk-pesquisa.entry.js +1 -1
  122. package/dist/esm/snk-tab-config.entry.js +317 -0
  123. package/dist/esm/{taskbar-elements-38eb5d51.js → taskbar-elements-2035b1c7.js} +10 -6
  124. package/dist/esm/taskbar-processor-aa6772c9.js +45 -0
  125. package/dist/esm/teste-pesquisa.entry.js +1 -1
  126. package/dist/sankhyablocks/p-03f9c407.js +1 -0
  127. package/dist/sankhyablocks/{p-ba426ea9.entry.js → p-04ad681a.entry.js} +1 -1
  128. package/dist/sankhyablocks/p-112455b1.js +1 -0
  129. package/dist/sankhyablocks/p-1963b46f.entry.js +1 -0
  130. package/dist/sankhyablocks/p-21c8929b.js +1 -0
  131. package/dist/sankhyablocks/p-26c503a6.entry.js +1 -0
  132. package/dist/sankhyablocks/{p-2e49afef.entry.js → p-31631fb6.entry.js} +1 -1
  133. package/dist/sankhyablocks/p-361299e8.js +26 -0
  134. package/dist/sankhyablocks/p-434e0dcf.entry.js +1 -0
  135. package/dist/sankhyablocks/{p-aecf3e0a.entry.js → p-6c61416a.entry.js} +1 -1
  136. package/dist/sankhyablocks/{p-49580cdd.entry.js → p-857c4735.entry.js} +1 -1
  137. package/dist/sankhyablocks/{p-4574a955.entry.js → p-8cd8977c.entry.js} +1 -1
  138. package/dist/sankhyablocks/{p-6386d720.entry.js → p-916068ff.entry.js} +1 -1
  139. package/dist/sankhyablocks/p-9f2c5fac.entry.js +1 -0
  140. package/dist/sankhyablocks/p-ad658f44.js +1 -0
  141. package/dist/sankhyablocks/p-ae302037.entry.js +75 -0
  142. package/dist/sankhyablocks/p-af11b0e7.js +1 -0
  143. package/dist/sankhyablocks/p-af306302.entry.js +1 -0
  144. package/dist/sankhyablocks/p-b6d6b172.js +1 -0
  145. package/dist/sankhyablocks/{p-40b27004.entry.js → p-cc85ba53.entry.js} +1 -1
  146. package/dist/sankhyablocks/{p-0352c0e2.entry.js → p-ccdf59eb.entry.js} +1 -1
  147. package/dist/sankhyablocks/p-ce789145.entry.js +1 -0
  148. package/dist/sankhyablocks/p-cf81e313.entry.js +1 -0
  149. package/dist/sankhyablocks/{p-0ea25487.entry.js → p-d1ae76ec.entry.js} +1 -1
  150. package/dist/sankhyablocks/p-d50651a3.js +1 -0
  151. package/dist/sankhyablocks/{p-fac2b6a9.js → p-ddb03141.js} +2 -2
  152. package/dist/sankhyablocks/p-ee906940.entry.js +1 -0
  153. package/dist/sankhyablocks/{p-5bdb8452.entry.js → p-f9084ecb.entry.js} +1 -1
  154. package/dist/sankhyablocks/p-fa75fba5.entry.js +1 -0
  155. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  156. package/dist/types/components/snk-application/snk-application.d.ts +29 -14
  157. package/dist/types/components/snk-configurator/snk-configurator.d.ts +46 -0
  158. package/dist/types/components/snk-configurator/subcomponents/configModalProvider/configurableElementsStorage.d.ts +8 -0
  159. package/dist/types/components/snk-configurator/subcomponents/snk-config-modal/snk-config-modal.d.ts +38 -0
  160. package/dist/types/components/snk-crud/snk-crud.d.ts +50 -0
  161. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +92 -0
  162. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-personalized.d.ts +8 -6
  163. package/dist/types/components/snk-filter-bar/filter-item/editors/snk-filter-search.d.ts +3 -3
  164. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +40 -0
  165. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +65 -0
  166. package/dist/types/components/snk-form/snk-form.d.ts +71 -0
  167. package/dist/types/components/snk-form/subcomponents/snk-config-options/snk-config-options.d.ts +41 -0
  168. package/dist/types/components/snk-form/subcomponents/snk-field-config/snk-field-config.d.ts +32 -0
  169. package/dist/types/components/snk-form/subcomponents/snk-form-config/snk-form-config.d.ts +139 -0
  170. package/dist/types/components/snk-form/subcomponents/snk-tab-config/snk-tab-config.d.ts +97 -0
  171. package/dist/types/components/snk-grid/snk-grid.d.ts +59 -0
  172. package/dist/types/components/snk-taskbar/elements/taskbar-elements.d.ts +6 -5
  173. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +11 -3
  174. package/dist/types/components.d.ts +358 -13
  175. package/dist/types/lib/http/data-fetcher/fetchers/dataunit-fetcher.d.ts +1 -0
  176. package/dist/types/lib/http/data-fetcher/fetchers/form-config-fetcher.d.ts +21 -3
  177. package/dist/types/lib/http/data-fetcher/fetchers/resource-fetcher.d.ts +1 -0
  178. package/dist/types/lib/message/resources/snk-configurator.msg.d.ts +2 -0
  179. package/dist/types/lib/message/resources/snk-form.msg.d.ts +5 -2
  180. package/dist/types/lib/utils/constants.d.ts +62 -0
  181. package/dist/types/lib/utils/pesquisa.d.ts +2 -1
  182. package/package.json +4 -3
  183. package/react/components.d.ts +6 -0
  184. package/react/components.js +6 -0
  185. package/react/components.js.map +1 -1
  186. package/dist/cjs/snk-form_2.cjs.entry.js +0 -247
  187. package/dist/esm/snk-form_2.entry.js +0 -242
  188. package/dist/sankhyablocks/p-1a58f45c.entry.js +0 -74
  189. package/dist/sankhyablocks/p-21e940aa.entry.js +0 -1
  190. package/dist/sankhyablocks/p-2eea7eea.js +0 -1
  191. package/dist/sankhyablocks/p-77216252.entry.js +0 -1
  192. package/dist/sankhyablocks/p-86f15ffe.js +0 -1
  193. package/dist/sankhyablocks/p-97009a2c.entry.js +0 -1
  194. package/dist/sankhyablocks/p-a14c49db.entry.js +0 -1
@@ -0,0 +1,957 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-188190ee.js');
6
+ const draggable_bundle = require('./draggable.bundle-82a25c06.js');
7
+ const core = require('@sankhyalabs/core');
8
+ const utils = require('@sankhyalabs/ezui/dist/collection/utils');
9
+ const constants = require('./constants-aebcc2f5.js');
10
+ const formConfigFetcher = require('./form-config-fetcher-2de7c16a.js');
11
+ require('./_commonjsHelpers-537d719a.js');
12
+
13
+ const snkFormConfigCss = ".sc-snk-form-config-h{--snk-form-config__title--font-pattern:var(--font-pattern, \"'Sora', 'Algerian'\");--snk-form-config__title--weight--large:var(--text-weight--large, 600);display:flex;flex-direction:column;position:absolute;top:0;left:0;width:100%;height:100%;z-index:var(--more-visible, 2);background-color:var(--background--xlight)}.form-config__title.sc-snk-form-config{display:flex;margin:0;line-height:1.3;font-family:var(--snk-form-config__title--font-pattern);font-weight:var(--snk-form-config__title--weight--large)}.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(--text--disable)}.ez-box__label-counter.sc-snk-form-config{font-weight:var(--text-weight--extra-small);margin-top:-7px}.form-config__btn-options.sc-snk-form-config{--ez-button--min-width:300px;--ez-button--background-color:#FFFFFF}[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(--more-visible, 2)}.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:250px}.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(--border--radius-medium, 12px);background-color:var(--background--medium, #d2dce9);padding:var(--space--small, 6px)}.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:2px dashed var(--color-strokes, #DCE0E8);border-radius:var(--border--radius-small, 6px)}.form-config__add-group-label.sc-snk-form-config{display:flex;justify-content:center;box-sizing:border-box;padding:var(--space--large, 24px)}.form-config__btn-add-group.sc-snk-form-config{position:relative;padding:var(--space--large, 24px) var(--space--medium, 12px) 0}.form-config__btn-add-group-container.sc-snk-form-config{padding:var(--space--medium, 12px);border-radius:var(--border--radius-medium, 12px);border:2px solid var(--color-strokes, #DCE0E8);background-color:var(--background--body, #fafcff)}.form-config__left-icon--eye-off.sc-snk-form-config{padding-top:var(--space--medium, 8px)}ez-collapsible-box.draggable-mirror.sc-snk-form-config{display:table;background-color:#FFFFFF}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{transform:translate(calc(100% / 3 * -1))}.form-config__field-config--selected.sc-snk-form-config:nth-child(3n+3) .ez-flex.form-config__config-options.sc-snk-form-config{transform:translate(calc(100% / 3 * -2))}}";
14
+
15
+ const CONTAINER_ID = {
16
+ collapsibleBox: "EZ-COLLAPSIBLE-BOX",
17
+ withoutGroup: "fieldsWithoutGroupContainer",
18
+ fieldsAvailable: "fieldsAvailableContainer",
19
+ addNewGroup: "addNewGroupContainer"
20
+ };
21
+ const SnkFormConfig = class {
22
+ constructor(hostRef) {
23
+ index.registerInstance(this, hostRef);
24
+ this.configChange = index.createEvent(this, "configChange", 7);
25
+ this._listEnabledFields = [];
26
+ this._renderTimer = 500;
27
+ this._sortableTimer = 100;
28
+ this._tabSelected = 1;
29
+ this._labelNewGroup = "Novo grupo";
30
+ this._mouseOnFieldConfig = false;
31
+ this._mouseOnConfigOptions = false;
32
+ this._editingTitleGroup = false;
33
+ this._newGroupBoxes = [];
34
+ this._currentGroupBoxes = [];
35
+ this._formFieldsStyle = "ez-col ez-col--sd-12 ez-col--tb-4 ez-padding-right--small ez-padding-bottom--medium sc-snk-form-config";
36
+ this._fieldsAvailableStyle = "ez-col ez-col--sd-12 ez-col--tb-12 ez-margin-bottom--medium ez-margin-right--medium sc-snk-form-config";
37
+ this._fieldFloatingStyle = "form-config__field-config--dragged";
38
+ this._formConfigOptions = [];
39
+ this._formConfig = {};
40
+ this._formConfigChanged = false;
41
+ this._optionFormConfigChanged = false;
42
+ this._tempGroups = [];
43
+ /**
44
+ * Campos de configuração de formulário.
45
+ */
46
+ this.formConfig = {};
47
+ }
48
+ observeFormConfig() {
49
+ this.loadConfig(this._sortableTimer);
50
+ }
51
+ loadFields(updateTimer = 0) {
52
+ this._layoutFormConfig = [];
53
+ // this._layoutFormConfig ? this._layoutFormConfig.length = 0 : this._layoutFormConfig = [];
54
+ /*
55
+ TODO: Validar a possibilidade de fazer diretamente this._layoutFormConfig.length = 0
56
+ sem a necessidade do ternario abaixo, para isso definir um default para o this._layoutFormConfig
57
+ na declaração da variavel
58
+ - Impactou:
59
+ - Inserir um field, alterar a tab de lugar e inserir um novo campo
60
+ - Ocultar/Deletar sequencialmente mais de uma aba
61
+ */
62
+ if (updateTimer > 0) {
63
+ setTimeout(() => {
64
+ this.buildFields();
65
+ }, updateTimer);
66
+ }
67
+ else {
68
+ this.buildFields();
69
+ }
70
+ }
71
+ buildFields() {
72
+ this.buildFormConfig();
73
+ this.buildAvailableFields();
74
+ }
75
+ loadFormConfig(updateTimer) {
76
+ var _a;
77
+ this._formConfig = core.ObjectUtils.copy(this.formConfig);
78
+ this.loadFields(updateTimer);
79
+ this.controlFieldConfig();
80
+ if (((_a = this._filterFieldsAvailable) === null || _a === void 0 ? void 0 : _a.value) != undefined) {
81
+ this._filterFieldsAvailable.value = "";
82
+ }
83
+ }
84
+ cancelChangeConfig() {
85
+ if (this._formConfigChanged === true) {
86
+ this.openConfirmDialog(this.getMessage("snkFormConfig.confirm.cancel")).then((canCancel) => {
87
+ if (canCancel) {
88
+ this._formConfigChanged = false;
89
+ this.resetChangeConfig();
90
+ }
91
+ });
92
+ }
93
+ else {
94
+ this.resetChangeConfig();
95
+ }
96
+ }
97
+ cancelChangeOptionConfig() {
98
+ if (this._optionFormConfigChanged === true) {
99
+ this.openConfirmDialog(this.getMessage("snkFormConfig.confirm.cancel")).then((canCancel) => {
100
+ if (canCancel) {
101
+ this._optionFormConfigChanged = false;
102
+ this.resetChangeOptionConfig();
103
+ }
104
+ });
105
+ }
106
+ else {
107
+ this.resetChangeOptionConfig();
108
+ }
109
+ }
110
+ resetChangeConfig() {
111
+ this.loadFormConfig(this._sortableTimer);
112
+ this.clearTempGroups();
113
+ }
114
+ resetChangeOptionConfig() {
115
+ this._formConfigChanged = false;
116
+ this.loadConfig(this._sortableTimer);
117
+ this.clearTempGroups();
118
+ }
119
+ getTabsToSave() {
120
+ return this._layoutFormConfig
121
+ .map((layoutConfig, index) => {
122
+ return {
123
+ label: layoutConfig.tab,
124
+ order: index,
125
+ visible: layoutConfig.visible
126
+ };
127
+ });
128
+ }
129
+ getFieldsToSave() {
130
+ const fields = [];
131
+ const snkFieldConfigs = this._formContainer.querySelectorAll('snk-field-config');
132
+ snkFieldConfigs.forEach((snkField) => {
133
+ const fieldConfig = snkField.fieldConfig;
134
+ if (fieldConfig) {
135
+ const fieldToSave = {
136
+ cleanOnCopy: fieldConfig.cleanOnCopy || false,
137
+ group: fieldConfig.group,
138
+ label: fieldConfig.label,
139
+ name: fieldConfig.name,
140
+ required: fieldConfig.required,
141
+ readOnly: fieldConfig.readOnly,
142
+ tab: fieldConfig.tab,
143
+ defaultValue: fieldConfig.defaultValue
144
+ };
145
+ fields.push(fieldToSave);
146
+ }
147
+ });
148
+ return fields;
149
+ }
150
+ isDefaultConfiguration() {
151
+ var _a;
152
+ const optionSelected = (_a = this._optionFormConfigSelected) === null || _a === void 0 ? void 0 : _a.origin;
153
+ return optionSelected === formConfigFetcher.UserConfigType.DEFAULT
154
+ && this._optionFormConfigChanged === true
155
+ && this._formConfigChanged === false;
156
+ }
157
+ saveConfig() {
158
+ var _a;
159
+ if (((_a = this._tempGroups) === null || _a === void 0 ? void 0 : _a.length) > 0) {
160
+ utils.ApplicationUtils.alert(this.getMessage("snkFormConfig.confirm.title"), this.getMessage("snkFormConfig.confirm.group"));
161
+ return;
162
+ }
163
+ const isDefault = this.isDefaultConfiguration();
164
+ let formConfig = {};
165
+ if (isDefault) {
166
+ formConfig = core.ObjectUtils.copy(this.formConfig);
167
+ }
168
+ else {
169
+ formConfig = core.ObjectUtils.copy(this._formConfig);
170
+ }
171
+ if (isDefault === false) {
172
+ const tabs = this.getTabsToSave();
173
+ if ((tabs === null || tabs === void 0 ? void 0 : tabs.length) > 0) {
174
+ formConfig.tabs = tabs;
175
+ }
176
+ const fields = this.getFieldsToSave();
177
+ if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
178
+ formConfig.fields = fields;
179
+ }
180
+ }
181
+ formConfig.defaultConfiguration = isDefault;
182
+ this.configChange.emit(formConfig);
183
+ this._formConfigChanged = false;
184
+ this._optionFormConfigChanged = false;
185
+ }
186
+ applyOptionConfig() {
187
+ if (this._optionFormConfigChanged === true && this._optionFormConfigSelected != undefined) {
188
+ const name = this._optionFormConfigSelected.name || "configuração selecionada";
189
+ const origin = this._optionFormConfigSelected.origin === formConfigFetcher.UserConfigType.DEFAULT ? "pessoal" : "padrão";
190
+ const msg = this.getMessage("snkFormConfig.confirm.apply").replace('{0}', name).replace('{1}', origin);
191
+ this.openConfirmDialog(msg).then((canCancel) => {
192
+ if (canCancel) {
193
+ this.saveConfig();
194
+ }
195
+ });
196
+ }
197
+ else {
198
+ this.saveConfig();
199
+ }
200
+ }
201
+ controlFieldConfig(fieldConfig = undefined) {
202
+ var _a;
203
+ if (fieldConfig == undefined) {
204
+ this._fieldConfigSelected = undefined;
205
+ return;
206
+ }
207
+ if (((_a = this._fieldConfigSelected) === null || _a === void 0 ? void 0 : _a.name) === (fieldConfig === null || fieldConfig === void 0 ? void 0 : fieldConfig.name)) {
208
+ this._fieldConfigSelected = undefined;
209
+ }
210
+ else {
211
+ this._fieldConfigSelected = fieldConfig;
212
+ }
213
+ }
214
+ getFieldConfigStyle(fieldConfig) {
215
+ var _a;
216
+ return this._formFieldsStyle +
217
+ (((_a = this._fieldConfigSelected) === null || _a === void 0 ? void 0 : _a.name) === fieldConfig.name ? " form-config__field-config--selected" : "");
218
+ }
219
+ getFieldsByGroup(group) {
220
+ var _a;
221
+ return ((_a = group.fields) === null || _a === void 0 ? void 0 : _a.length) ? group.fields.map((field) => {
222
+ var _a, _b;
223
+ return index.h("div", { key: field.name, class: this.getFieldConfigStyle(field), "data-draggable-element": "field", onMouseDown: (evt) => this.controlMoveField(evt) }, index.h("snk-field-config", { onEzClickIcon: (evt) => { this.handleFieldConfigChange(evt); }, modeInsertion: false, fieldConfig: field, isConfigActive: ((_a = this._fieldConfigSelected) === null || _a === void 0 ? void 0 : _a.name) === field.name }), ((_b = this._fieldConfigSelected) === null || _b === void 0 ? void 0 : _b.name) === field.name &&
224
+ index.h("div", { class: "ez-flex form-config__config-options" }, index.h("snk-config-options", { idConfig: field.name, dataUnit: this.dataUnit, fieldConfig: this._fieldConfigSelected, onConfigOptionsChanged: (ev) => this.handleconfigOptionsChanged(ev.detail) })));
225
+ }) : index.h("div", { class: "form-config__add-group-container" }, index.h("div", { class: "form-config__add-group-content" }, index.h("div", { class: "form-config__add-group-label" }, index.h("label", { class: "ez-text ez-text--center ez-text--medium ez-text--primary ez-text--bold" }, this.getMessage("snkFormConfig.form.labelDropField")))));
226
+ }
227
+ handleconfigOptionsChanged(fieldEdited) {
228
+ var _a;
229
+ (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.forEach(field => {
230
+ });
231
+ this._formConfigChanged = true;
232
+ }
233
+ closeFormConfig() {
234
+ if (this._formConfigChanged === true || this._optionFormConfigChanged === true) {
235
+ this.openConfirmDialog(this.getMessage("snkFormConfig.confirm.exit")).then((canClose) => {
236
+ if (canClose) {
237
+ this._formConfigChanged = false;
238
+ this.setShowFormConfig(false);
239
+ }
240
+ });
241
+ }
242
+ else {
243
+ this.setShowFormConfig(false);
244
+ }
245
+ }
246
+ openConfirmDialog(msg = "", title = this.getMessage("snkFormConfig.confirm.title")) {
247
+ return utils.ApplicationUtils.confirm(title, msg);
248
+ }
249
+ controlMoveField(evt) {
250
+ const element = evt === null || evt === void 0 ? void 0 : evt.target;
251
+ if ((element === null || element === void 0 ? void 0 : element.closest('[data-draggable-element="field"]')) != undefined) {
252
+ this._mouseOnFieldConfig = true;
253
+ 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) {
254
+ this._mouseOnConfigOptions = true;
255
+ }
256
+ else {
257
+ const iconList = ['minus', 'settings-inverted', 'chevron-up'];
258
+ const iconName = element === null || element === void 0 ? void 0 : element.iconName;
259
+ if (iconList.includes(iconName) === false) {
260
+ this.controlFieldConfig();
261
+ }
262
+ }
263
+ }
264
+ }
265
+ controlStartDraggingField(evt) {
266
+ var _a, _b, _c;
267
+ if (this._mouseOnConfigOptions) {
268
+ evt === null || evt === void 0 ? void 0 : evt.cancel();
269
+ this._mouseOnConfigOptions = false;
270
+ }
271
+ else {
272
+ 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;
273
+ if (sourceContainer != undefined) {
274
+ sourceContainer.classList.add(this._fieldFloatingStyle);
275
+ }
276
+ }
277
+ }
278
+ controlSortedDraggingField(evt) {
279
+ var _a, _b, _c, _d, _e, _f, _g, _h;
280
+ const oldContainer = (_a = evt === null || evt === void 0 ? void 0 : evt.data) === null || _a === void 0 ? void 0 : _a.oldContainer;
281
+ const newContainer = (_b = evt === null || evt === void 0 ? void 0 : evt.data) === null || _b === void 0 ? void 0 : _b.newContainer;
282
+ 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;
283
+ 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;
284
+ if (oldContainer != undefined && newContainer != undefined && draggingElement != undefined && originalElement != undefined) {
285
+ if ((newContainer.tagName === CONTAINER_ID.collapsibleBox
286
+ || newContainer.id === CONTAINER_ID.withoutGroup)
287
+ && oldContainer.id === CONTAINER_ID.fieldsAvailable) {
288
+ draggingElement.className = this._formFieldsStyle;
289
+ draggingElement.querySelector('snk-field-config').modeInsertion = false;
290
+ originalElement.className = this._formFieldsStyle;
291
+ originalElement.querySelector('snk-field-config').modeInsertion = false;
292
+ }
293
+ else if ((oldContainer.tagName === CONTAINER_ID.collapsibleBox
294
+ || oldContainer.id === CONTAINER_ID.withoutGroup)
295
+ && newContainer.id === CONTAINER_ID.fieldsAvailable) {
296
+ draggingElement.className = this._fieldsAvailableStyle;
297
+ draggingElement.querySelector('snk-field-config').modeInsertion = true;
298
+ originalElement.className = this._fieldsAvailableStyle;
299
+ originalElement.querySelector('snk-field-config').modeInsertion = true;
300
+ }
301
+ }
302
+ }
303
+ isCancelDragAvailableField(newContainer, oldContainer, evt) {
304
+ var _a, _b;
305
+ if (newContainer == undefined || oldContainer == undefined || evt == undefined) {
306
+ return false;
307
+ }
308
+ if (((_a = evt.data) === null || _a === void 0 ? void 0 : _a.newIndex) !== ((_b = evt.data) === null || _b === void 0 ? void 0 : _b.oldIndex)
309
+ && newContainer.id === CONTAINER_ID.fieldsAvailable
310
+ && oldContainer.id === newContainer.id) {
311
+ evt.cancel();
312
+ this._fieldsAvailable = [];
313
+ setTimeout(() => {
314
+ this.buildAvailableFields();
315
+ }, this._sortableTimer);
316
+ return true;
317
+ }
318
+ return false;
319
+ }
320
+ isRemoveField(newContainer, oldContainer, fieldConfig) {
321
+ if (newContainer == undefined || oldContainer == undefined || fieldConfig == undefined) {
322
+ return false;
323
+ }
324
+ if ((oldContainer.tagName === CONTAINER_ID.collapsibleBox
325
+ || oldContainer.id === CONTAINER_ID.withoutGroup)
326
+ && newContainer.id === CONTAINER_ID.fieldsAvailable) {
327
+ const eventDetail = {
328
+ detail: {
329
+ field: fieldConfig,
330
+ type: constants.ACTION_CONFIG.remove
331
+ }
332
+ };
333
+ setTimeout(() => {
334
+ this.handleFieldConfigChange(eventDetail, this._sortableTimer);
335
+ }, this._renderTimer);
336
+ return true;
337
+ }
338
+ return false;
339
+ }
340
+ isAddOrMoveField(newContainer, oldContainer, fieldConfig, data) {
341
+ var _a;
342
+ if (newContainer == undefined || oldContainer == undefined || fieldConfig == undefined || data == undefined) {
343
+ return false;
344
+ }
345
+ if (data.newIndex !== data.oldIndex
346
+ || oldContainer.dataset.groupName !== newContainer.dataset.groupName
347
+ || (newContainer.id === CONTAINER_ID.withoutGroup
348
+ && oldContainer.id === CONTAINER_ID.fieldsAvailable)) {
349
+ if (this.isFieldAvailable(newContainer, oldContainer)) {
350
+ fieldConfig.tab = (_a = this._tabConfig) === null || _a === void 0 ? void 0 : _a.selectedTab;
351
+ }
352
+ fieldConfig.group = newContainer.dataset.groupName;
353
+ setTimeout(() => {
354
+ const isNewGroup = newContainer.id.includes(CONTAINER_ID.addNewGroup);
355
+ if (isNewGroup) {
356
+ this.clearTempGroups(true);
357
+ }
358
+ const sortableTimer = oldContainer.dataset.groupName !== newContainer.dataset.groupName
359
+ || (newContainer.id === CONTAINER_ID.withoutGroup && oldContainer.id === CONTAINER_ID.fieldsAvailable)
360
+ ? this._sortableTimer
361
+ : 0;
362
+ this.updateFieldsToSave(sortableTimer);
363
+ }, this._renderTimer);
364
+ return true;
365
+ }
366
+ return false;
367
+ }
368
+ isFieldAvailable(newContainer, oldContainer) {
369
+ if (newContainer == undefined || oldContainer == undefined) {
370
+ return false;
371
+ }
372
+ return (newContainer.tagName === CONTAINER_ID.collapsibleBox
373
+ || newContainer.id === CONTAINER_ID.withoutGroup)
374
+ && oldContainer.id === CONTAINER_ID.fieldsAvailable;
375
+ }
376
+ controlStopDraggingField(evt) {
377
+ var _a, _b, _c, _d, _e, _f;
378
+ const oldContainer = (_a = evt === null || evt === void 0 ? void 0 : evt.data) === null || _a === void 0 ? void 0 : _a.oldContainer;
379
+ const newContainer = (_b = evt === null || evt === void 0 ? void 0 : evt.data) === null || _b === void 0 ? void 0 : _b.newContainer;
380
+ if (this.isCancelDragAvailableField(newContainer, oldContainer, evt)) {
381
+ return;
382
+ }
383
+ 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;
384
+ const fieldConfig = (_f = originalElement === null || originalElement === void 0 ? void 0 : originalElement.querySelector('snk-field-config')) === null || _f === void 0 ? void 0 : _f.fieldConfig;
385
+ if (this.isRemoveField(newContainer, oldContainer, fieldConfig)) {
386
+ return;
387
+ }
388
+ if (this.isAddOrMoveField(newContainer, oldContainer, fieldConfig, evt === null || evt === void 0 ? void 0 : evt.data)) {
389
+ return;
390
+ }
391
+ }
392
+ updateFieldsToSave(updateTimer = 0) {
393
+ const fields = this.getFieldsToSave();
394
+ if ((fields === null || fields === void 0 ? void 0 : fields.length) > 0) {
395
+ this._formConfig.fields = fields;
396
+ }
397
+ this.loadFields(updateTimer);
398
+ this._formConfigChanged = true;
399
+ }
400
+ controlSortableField() {
401
+ if (this._sortableContainer == undefined) {
402
+ return;
403
+ }
404
+ if (this._sortableField) {
405
+ this._sortableField.destroy();
406
+ }
407
+ this._sortableField = new draggable_bundle.draggable_bundle.Sortable(this._sortableContainer.querySelectorAll('[data-draggable-parent="field"]'), {
408
+ draggable: '[data-draggable-element="field"]',
409
+ mirror: {
410
+ constrainDimensions: true
411
+ }
412
+ });
413
+ this._sortableField.on(constants.CONFIG_EVENTS.dragStart, (evt) => this.controlStartDraggingField(evt));
414
+ this._sortableField.on(constants.CONFIG_EVENTS.dragSorted, (evt) => this.controlSortedDraggingField(evt));
415
+ this._sortableField.on(constants.CONFIG_EVENTS.dragStop, (evt) => this.controlStopDraggingField(evt));
416
+ }
417
+ controlStartDraggingGroup(evt) {
418
+ if (this._mouseOnFieldConfig || this._editingTitleGroup) {
419
+ evt === null || evt === void 0 ? void 0 : evt.cancel();
420
+ this._mouseOnFieldConfig = false;
421
+ }
422
+ }
423
+ controlStopDraggingGroup(evt) {
424
+ if (evt.data.newIndex !== evt.data.oldIndex) {
425
+ setTimeout(() => {
426
+ this.updateFieldsToSave(this._sortableTimer);
427
+ }, this._renderTimer);
428
+ }
429
+ }
430
+ controlSortableGroup() {
431
+ if (this._sortableContainer == undefined) {
432
+ return;
433
+ }
434
+ if (this._sortableGroup) {
435
+ this._sortableGroup.destroy();
436
+ }
437
+ this._sortableGroup = new draggable_bundle.draggable_bundle.Sortable(this._sortableContainer.querySelectorAll('[data-draggable-parent="group"]'), {
438
+ draggable: '[data-draggable-element="group"]',
439
+ mirror: {
440
+ constrainDimensions: true
441
+ }
442
+ });
443
+ this._sortableGroup.on(constants.CONFIG_EVENTS.dragStart, (evt) => this.controlStartDraggingGroup(evt));
444
+ this._sortableGroup.on(constants.CONFIG_EVENTS.dragStop, (evt) => this.controlStopDraggingGroup(evt));
445
+ }
446
+ loadUserConfig() {
447
+ var _a;
448
+ if (this._application != undefined) {
449
+ this._application.fetchUserAvailableConfigs((_a = this.parentForm) === null || _a === void 0 ? void 0 : _a.configName)
450
+ .then((userConfig) => {
451
+ this._formConfigOptions = userConfig;
452
+ let isDefault = this._formConfig != undefined ? this._formConfig.defaultConfiguration : true;
453
+ const selectedOption = userConfig
454
+ .find((config) => {
455
+ return config.origin === (isDefault ? formConfigFetcher.UserConfigType.DEFAULT : formConfigFetcher.UserConfigType.USER);
456
+ });
457
+ this.setFormConfig(selectedOption);
458
+ });
459
+ }
460
+ }
461
+ setFormConfig(config) {
462
+ this._optionFormConfigSelected = config;
463
+ }
464
+ controlSelectFormConfig(evt) {
465
+ const action = evt === null || evt === void 0 ? void 0 : evt.detail;
466
+ const selectedOption = this._formConfigOptions
467
+ .find((config) => {
468
+ return config.origin === (action === null || action === void 0 ? void 0 : action.value);
469
+ });
470
+ this.setFormConfig(selectedOption);
471
+ this._optionFormConfigChanged = true;
472
+ this.loadConfigByUser();
473
+ }
474
+ changeTabOrder(newIndex) {
475
+ const tabs = [];
476
+ const tabConfigs = this._tabConfig.querySelectorAll('.tab-config__tab');
477
+ this._tabSelected = newIndex;
478
+ tabConfigs.forEach((tabConfig, index) => {
479
+ var _a;
480
+ if (index) {
481
+ const label = (_a = tabConfig.querySelector('.tab-config__tab-label')) === null || _a === void 0 ? void 0 : _a.getAttribute('title');
482
+ tabs.push({
483
+ label,
484
+ order: (index - 1)
485
+ });
486
+ }
487
+ });
488
+ this._layoutFormConfig.map((tabLayout) => {
489
+ tabs.forEach((tab) => {
490
+ tab.label === tabLayout.tab && (tab.visible = tabLayout.visible);
491
+ });
492
+ });
493
+ if (tabs.length > 0) {
494
+ this._formConfig.tabs = tabs;
495
+ this.loadFields(this._sortableTimer);
496
+ this.controlFieldConfig();
497
+ this._formConfigChanged = true;
498
+ }
499
+ }
500
+ loadConfigByUser() {
501
+ var _a;
502
+ if (this._application != undefined) {
503
+ const option = this._optionFormConfigSelected;
504
+ const fetchActionName = (option === null || option === void 0 ? void 0 : option.origin) === formConfigFetcher.UserConfigType.DEFAULT ? "fetchDefaultConfig" :
505
+ (option === null || option === void 0 ? void 0 : option.origin) === formConfigFetcher.UserConfigType.USER ? "fetchLegacyConfig" :
506
+ undefined;
507
+ if (fetchActionName != undefined) {
508
+ this._application[fetchActionName]((_a = this.parentForm) === null || _a === void 0 ? void 0 : _a.configName)
509
+ .then((formConfig) => {
510
+ if (formConfig != undefined) {
511
+ this._formConfig = formConfig;
512
+ this._tabSelected = 1;
513
+ this.loadFields(this._sortableTimer);
514
+ this.controlFieldConfig();
515
+ this.clearTempGroups();
516
+ }
517
+ });
518
+ }
519
+ }
520
+ }
521
+ loadConfig(updateTimer = 0) {
522
+ this.loadFormConfig(updateTimer);
523
+ this.loadUserConfig();
524
+ }
525
+ addNewGroup() {
526
+ var _a, _b;
527
+ const tab = (_a = this._tabConfig) === null || _a === void 0 ? void 0 : _a.selectedTab;
528
+ const hasGroup = (_b = this._tempGroups) === null || _b === void 0 ? void 0 : _b.find((tempGroup) => {
529
+ return tempGroup.tab === tab && tempGroup.group.includes(this._labelNewGroup);
530
+ });
531
+ if (hasGroup == undefined) {
532
+ this._tempGroups.push({
533
+ tab,
534
+ group: this.handleDuplicateGroups(this._labelNewGroup, this._tabConfig.selectedTab)
535
+ });
536
+ this.loadFields();
537
+ this.controlFieldConfig();
538
+ this._formConfigChanged = true;
539
+ }
540
+ }
541
+ clearTempGroups(clearInTab = false) {
542
+ var _a;
543
+ if (((_a = this._tempGroups) === null || _a === void 0 ? void 0 : _a.length) > 0) {
544
+ if (clearInTab) {
545
+ this._tempGroups = this._tempGroups.filter((tempGroup) => {
546
+ return tempGroup.tab !== this._tabConfig.selectedTab;
547
+ });
548
+ }
549
+ else {
550
+ this._tempGroups = [];
551
+ }
552
+ }
553
+ }
554
+ removeGroup(indexTempGroup = undefined) {
555
+ if (indexTempGroup != undefined) {
556
+ this._tempGroups = this._tempGroups.filter((tempGroup, index) => {
557
+ return (index !== indexTempGroup
558
+ && tempGroup.tab === this._tabConfig.selectedTab)
559
+ || tempGroup.tab !== this._tabConfig.selectedTab;
560
+ });
561
+ }
562
+ else {
563
+ this.updateFieldsToSave(this._sortableTimer);
564
+ }
565
+ }
566
+ checkGroupExists(newLabel, indexGroup, isTempGroup = false) {
567
+ var _a, _b, _c;
568
+ const tabName = (_a = this._tabConfig) === null || _a === void 0 ? void 0 : _a.selectedTab;
569
+ const currentTab = (_b = this._layoutFormConfig) === null || _b === void 0 ? void 0 : _b.find(tab => tab.tab === tabName);
570
+ 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(); });
571
+ if (tabGroupsNames === null || tabGroupsNames === void 0 ? void 0 : tabGroupsNames.includes(newLabel === null || newLabel === void 0 ? void 0 : newLabel.toLowerCase())) {
572
+ const title = this.getMessage("snkFormConfig.confirm.title");
573
+ const message = `
574
+ ${this.getMessage("snkFormConfig.alert.titleGroupExists")}
575
+ <b>${newLabel}</b>
576
+ ${this.getMessage("snkFormConfig.alert.inTab")}
577
+ <b>${tabName === constants.TAB_NAMES.main ? this.getMessage("snkFormConfig.form.mainArea") : tabName}</b>.
578
+ <br/><br/>
579
+ ${this.getMessage("snkFormConfig.alert.infoValidTitle")}
580
+ `;
581
+ utils.ApplicationUtils.alert(title, message)
582
+ .then(() => {
583
+ var _a, _b;
584
+ if (isTempGroup) {
585
+ (_a = this._newGroupBoxes[indexGroup]) === null || _a === void 0 ? void 0 : _a.applyFocusTextEdit();
586
+ }
587
+ else {
588
+ (_b = this._currentGroupBoxes[tabName][indexGroup]) === null || _b === void 0 ? void 0 : _b.applyFocusTextEdit();
589
+ }
590
+ });
591
+ return false;
592
+ }
593
+ return true;
594
+ }
595
+ saveEditLabelTempGroup(editDetails, index) {
596
+ const { newValue: newLabel } = editDetails.detail;
597
+ if (this._newGroupBoxes != undefined && this._newGroupBoxes[index] != undefined) {
598
+ this._newGroupBoxes[index].dataset.groupName = newLabel;
599
+ }
600
+ }
601
+ saveEditLabelGroup(editDetails) {
602
+ var _a;
603
+ const { value: oldLabel, newValue: newLabel } = editDetails.detail;
604
+ (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.forEach((field) => {
605
+ if (field.group === oldLabel) {
606
+ field.group = newLabel;
607
+ }
608
+ });
609
+ this.loadFields(this._sortableTimer);
610
+ this.controlFieldConfig();
611
+ this._formConfigChanged = true;
612
+ }
613
+ renderTempGroupByTab(tabName) {
614
+ return this._tempGroups.map((tempGroup, indexGroup) => {
615
+ if (tempGroup.tab === tabName) {
616
+ return index.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));
617
+ }
618
+ });
619
+ }
620
+ handleDuplicateGroups(titleNewGroup, currentTab) {
621
+ var _a;
622
+ const selectedTabGroups = this._layoutFormConfig[this._tabConfig.selectedIndex].groups.map(tab => tab.group);
623
+ if (selectedTabGroups != undefined) {
624
+ (_a = this._layoutFormConfig) === null || _a === void 0 ? void 0 : _a.map(tab => {
625
+ if (tab.tab === currentTab) {
626
+ if (tab.groups.some(groups => groups.group === titleNewGroup)) {
627
+ titleNewGroup += `${this.captureHighestValueTitle(selectedTabGroups)}`;
628
+ }
629
+ }
630
+ });
631
+ }
632
+ return titleNewGroup;
633
+ }
634
+ captureHighestValueTitle(groupsTemp) {
635
+ let valuesNumericTitle = [];
636
+ groupsTemp === null || groupsTemp === void 0 ? void 0 : groupsTemp.map(group => {
637
+ if (group != undefined) {
638
+ valuesNumericTitle.push(group.replace(/[^0-9]/g, ''));
639
+ }
640
+ });
641
+ if (Math.max.apply(null, valuesNumericTitle) > 0) {
642
+ return ` (${Math.max.apply(null, valuesNumericTitle) + 1})`;
643
+ }
644
+ else {
645
+ return ' (1)';
646
+ }
647
+ }
648
+ getLayoutFormConfig() {
649
+ var _a, _b;
650
+ if (((_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.fields) == undefined) {
651
+ return;
652
+ }
653
+ let layoutFormConfig = [];
654
+ let fields = [];
655
+ for (const field of this._formConfig.fields) {
656
+ const hasField = fields.find((fieldTemp) => {
657
+ return field.name === fieldTemp.name && field.tab === fieldTemp.tab;
658
+ });
659
+ if (hasField == undefined) {
660
+ fields.push(field);
661
+ const fieldMD = this.dataUnit.getField(field.name);
662
+ if (fieldMD === null || fieldMD === void 0 ? void 0 : fieldMD.visible) {
663
+ if (field.label == undefined || field.label === "") {
664
+ field.label = fieldMD.label;
665
+ }
666
+ let tab = layoutFormConfig.find(value => value.tab === field.tab);
667
+ if (tab == undefined) {
668
+ let visible = null;
669
+ if (this._formConfig.tabs != undefined) {
670
+ const configTabs = this._formConfig.tabs.filter(configTab => configTab.label === field.tab);
671
+ if (configTabs.length > 0) {
672
+ visible = configTabs[0].visible;
673
+ }
674
+ }
675
+ const tabLabel = ((_b = field.tab) === null || _b === void 0 ? void 0 : _b.label) || field.tab;
676
+ if (visible !== null) {
677
+ tab = { tab: tabLabel, groups: [], visible };
678
+ }
679
+ else {
680
+ tab = { tab: tabLabel, groups: [], visible: true };
681
+ }
682
+ layoutFormConfig.push(tab);
683
+ }
684
+ const group = tab.groups.find(value => value.group === field.group);
685
+ if (group) {
686
+ group.fields.push(field);
687
+ }
688
+ else {
689
+ const newGroup = { group: field.group, fields: [field] };
690
+ if (field.group === undefined) {
691
+ tab.groups.unshift(newGroup);
692
+ }
693
+ else {
694
+ tab.groups.push(newGroup);
695
+ }
696
+ }
697
+ }
698
+ }
699
+ }
700
+ return layoutFormConfig;
701
+ }
702
+ configureTabs(layoutFormConfig) {
703
+ var _a;
704
+ if (((_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.tabs) == undefined) {
705
+ return layoutFormConfig;
706
+ }
707
+ if (layoutFormConfig == undefined) {
708
+ layoutFormConfig = [];
709
+ }
710
+ return this._formConfig.tabs.map((tab) => {
711
+ 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()); })
712
+ || { tab: tab.label, groups: [], visible: tab.visible };
713
+ }).filter((layoutConfig) => {
714
+ return (layoutConfig === null || layoutConfig === void 0 ? void 0 : layoutConfig.tab) != undefined;
715
+ });
716
+ }
717
+ configureTabMain(layoutFormConfig) {
718
+ if (layoutFormConfig == undefined) {
719
+ layoutFormConfig = [];
720
+ }
721
+ const hasTabMain = layoutFormConfig.find((layoutTab) => {
722
+ return layoutTab.tab === constants.TAB_NAMES.main;
723
+ });
724
+ if (hasTabMain == undefined) {
725
+ layoutFormConfig.unshift({ tab: constants.TAB_NAMES.main, groups: [], visible: true });
726
+ }
727
+ return layoutFormConfig;
728
+ }
729
+ updateTabs() {
730
+ const tabs = this.getTabsToSave();
731
+ if ((tabs === null || tabs === void 0 ? void 0 : tabs.length) > 0) {
732
+ this._formConfig.tabs = tabs;
733
+ }
734
+ }
735
+ buildFormConfig() {
736
+ var _a;
737
+ if (((_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.fields) == undefined) {
738
+ return;
739
+ }
740
+ let layoutFormConfig = this.getLayoutFormConfig();
741
+ layoutFormConfig = this.configureTabs(layoutFormConfig);
742
+ layoutFormConfig = this.configureTabMain(layoutFormConfig);
743
+ this._layoutFormConfig = layoutFormConfig;
744
+ this.updateTabs();
745
+ }
746
+ buildAvailableFields() {
747
+ var _a, _b;
748
+ if (((_a = this._formConfig) === null || _a === void 0 ? void 0 : _a.fields) == undefined) {
749
+ return;
750
+ }
751
+ let fieldsFormConfig = [];
752
+ let fieldsMetadata = this.dataUnit.metadata.fields;
753
+ for (const field of this._formConfig.fields) {
754
+ fieldsFormConfig.push(field);
755
+ }
756
+ const listFieldsAvailable = fieldsMetadata.filter(({ name: _nameFieldMetadado, visible: _visibleMetadado }) => _visibleMetadado === true
757
+ && fieldsFormConfig.some(({ name: _nameFieldForm }) => _nameFieldForm === _nameFieldMetadado) === false);
758
+ this._fieldsAvailable = listFieldsAvailable;
759
+ this._listEnabledFields = listFieldsAvailable;
760
+ if (((_b = this._filterFieldsAvailable) === null || _b === void 0 ? void 0 : _b.value) != undefined) {
761
+ const filterValue = this._filterFieldsAvailable.value;
762
+ this.onFilterChange(filterValue);
763
+ }
764
+ }
765
+ setShowFormConfig(value) {
766
+ this.parentForm.setShowFormConfig(value);
767
+ }
768
+ changeTabSelected(tabSelected) {
769
+ this._tabSelected = tabSelected.index;
770
+ const selectorTab = this._formContainer.querySelector("div#tab" + tabSelected.index);
771
+ this._formContainer.querySelectorAll(".form-config__tab-content").forEach(container => container.className = "form-config__hide-content sc-snk-form-config");
772
+ if (selectorTab) {
773
+ selectorTab.className = "form-config__tab-content ez-flex ez-flex--column ez-size-width--full ez-padding--medium sc-snk-form-config";
774
+ }
775
+ }
776
+ onFilterChange(value) {
777
+ this._fieldsAvailable = core.ArrayUtils.applyStringFilter(value, this._listEnabledFields, true, "label");
778
+ }
779
+ orderFieldsAvailable(fields) {
780
+ return core.ArrayUtils.sortAlphabetically(fields);
781
+ }
782
+ handleLabelCounter(sizeList) {
783
+ const labels = [this.getMessage("snkFormConfig.availableFields.labelNoFields"), this.getMessage("snkFormConfig.availableFields.labelOneField")];
784
+ return sizeList > 1 ? `${sizeList} ${this.getMessage("snkFormConfig.availableFields.labelAvailableFields")}` : labels[sizeList];
785
+ }
786
+ controlAddFieldConfig(fieldConfig) {
787
+ var _a;
788
+ this._formConfigChanged = false;
789
+ if (fieldConfig == undefined) {
790
+ return;
791
+ }
792
+ if (this._formConfig.fields == undefined) {
793
+ this._formConfig.fields = [];
794
+ }
795
+ const fieldFinded = this._formConfig.fields.filter((field) => {
796
+ return field.name === fieldConfig.name && field.tab && fieldConfig.tab;
797
+ });
798
+ if (fieldFinded.length > 0) {
799
+ fieldFinded.forEach((field) => {
800
+ field.name = fieldConfig.name;
801
+ field.label = fieldConfig.label;
802
+ field.required = fieldConfig.required;
803
+ field.readOnly = fieldConfig.readOnly;
804
+ field.group = fieldConfig.group;
805
+ });
806
+ }
807
+ else {
808
+ this._formConfig.fields.push({
809
+ name: fieldConfig.name,
810
+ label: fieldConfig.label,
811
+ required: fieldConfig.required,
812
+ readOnly: fieldConfig.readOnly,
813
+ group: fieldConfig.group,
814
+ tab: (_a = this._tabConfig) === null || _a === void 0 ? void 0 : _a.selectedTab
815
+ });
816
+ }
817
+ this.loadFields();
818
+ this.controlFieldConfig();
819
+ this._formConfigChanged = true;
820
+ this.resetSortables();
821
+ }
822
+ controlRemoveFieldConfig(fieldConfig, updateTimer) {
823
+ var _a;
824
+ this._formConfigChanged = false;
825
+ if (fieldConfig == undefined) {
826
+ return;
827
+ }
828
+ this._formConfig.fields = (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.filter((field) => field.name !== fieldConfig.name);
829
+ this.loadFields(updateTimer);
830
+ this.controlFieldConfig();
831
+ this._formConfigChanged = true;
832
+ this.resetSortables();
833
+ }
834
+ resetSortables() {
835
+ this.controlSortableField();
836
+ this.controlSortableGroup();
837
+ }
838
+ handleFieldConfigChange(evt, updateTimer = 0) {
839
+ const { field: fieldConfig, type: actionType } = evt.detail;
840
+ if (actionType === constants.ACTION_CONFIG.configuration) {
841
+ this.controlFieldConfig(fieldConfig);
842
+ return;
843
+ }
844
+ if (actionType === constants.ACTION_CONFIG.remove) {
845
+ this.controlRemoveFieldConfig(fieldConfig, updateTimer);
846
+ return;
847
+ }
848
+ if (actionType === constants.ACTION_CONFIG.add) {
849
+ this.controlAddFieldConfig(fieldConfig);
850
+ return;
851
+ }
852
+ }
853
+ changeTabLabel(editDetails) {
854
+ var _a, _b;
855
+ const { value: oldLabel, newValue: newLabel } = editDetails.detail.detail;
856
+ (_a = this._formConfig.fields) === null || _a === void 0 ? void 0 : _a.forEach((field) => {
857
+ if (field.tab === oldLabel) {
858
+ field.tab = newLabel;
859
+ }
860
+ });
861
+ (_b = this._formConfig.tabs) === null || _b === void 0 ? void 0 : _b.forEach((tab) => {
862
+ if (tab.label === oldLabel) {
863
+ tab.label = newLabel;
864
+ }
865
+ });
866
+ this.loadFields(this._sortableTimer);
867
+ this.controlFieldConfig();
868
+ this._formConfigChanged = true;
869
+ }
870
+ handleDeleteTab(tabSelected) {
871
+ let options = {
872
+ canClose: false,
873
+ labelCancel: this.getMessage("snkFormConfig.confirm.labelNo"),
874
+ labelConfirm: this.getMessage("snkFormConfig.confirm.labelYes"),
875
+ btnConfirmDanger: false
876
+ };
877
+ const title = this.getMessage("snkFormConfig.confirm.title");
878
+ const deleteTab = this.getMessage("snkFormConfig.confirm.deleteTab");
879
+ utils.ApplicationUtils.confirm(title, `${deleteTab} <b>${tabSelected.detail.label}</b>?`, "delete", utils.DialogType.WARN, options)
880
+ .then(response => {
881
+ var _a;
882
+ if (response) {
883
+ this._formConfig.tabs = (_a = this._formConfig.tabs) === null || _a === void 0 ? void 0 : _a.filter((tab) => {
884
+ return tab.label !== tabSelected.detail.label;
885
+ });
886
+ this.loadFields(this._sortableTimer);
887
+ this.controlFieldConfig();
888
+ this._formConfigChanged = true;
889
+ }
890
+ });
891
+ }
892
+ changeHideTab(tabSelected) {
893
+ var _a;
894
+ (_a = this._formConfig.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => {
895
+ if (tab.label === tabSelected.detail.label) {
896
+ tab.visible = !tab.visible;
897
+ }
898
+ });
899
+ this.loadFields(this._sortableTimer);
900
+ this.controlFieldConfig();
901
+ this._formConfigChanged = true;
902
+ }
903
+ handleCanStartDragTab() {
904
+ var _a, _b;
905
+ const tabs = this._layoutFormConfig.map(tab => tab.tab);
906
+ for (const tab of tabs) {
907
+ (_a = this._currentGroupBoxes[tab]) === null || _a === void 0 ? void 0 : _a.map(collapsibleBox => collapsibleBox === null || collapsibleBox === void 0 ? void 0 : collapsibleBox.cancelEdition());
908
+ }
909
+ (_b = this._newGroupBoxes) === null || _b === void 0 ? void 0 : _b.map(collapsibleBox => collapsibleBox === null || collapsibleBox === void 0 ? void 0 : collapsibleBox.cancelEdition());
910
+ }
911
+ /**
912
+ * Conforme mecanismo de mensagens, é possível customizar as mensagens dos blocos de construção
913
+ * através de um pequeno modulo na estrutura da aplicação:
914
+ * - Criar um arquivo no seguinte caminho: /messages/appmessages.msg.js.
915
+ * Para conhecer os detalhes do módulo, vide o arquivo neste projeto "/src/lib/message/resources/snk-form.msg.ts"
916
+ */
917
+ getMessage(key, params) {
918
+ return this._application.messagesBuilder.getMessage(key, params);
919
+ }
920
+ componentDidRender() {
921
+ this.controlSortableField();
922
+ this.controlSortableGroup();
923
+ }
924
+ componentWillLoad() {
925
+ this._application = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
926
+ this.loadConfig();
927
+ }
928
+ render() {
929
+ var _a, _b, _c, _d;
930
+ const configOptions = this._formConfigOptions.map((option) => {
931
+ return { value: option.origin, label: option.name };
932
+ });
933
+ return (index.h(index.Host, null, index.h("div", { class: "ez-row ez-padding--medium" }, index.h("div", { class: "ez-col ez-col--sd-7 ez-col--tb-9 ez-align--middle" }, index.h("ez-button", { mode: "icon", iconName: "arrow_back", class: "ez-padding--small", size: "small", onClick: () => this.closeFormConfig() }), index.h("h1", { class: "ez-title ez-title--extra-large ez-padding--small" }, this.getMessage("snkFormConfig.title")), index.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, iconName: "chevron-down", checkOption: true, size: "small", actions: configOptions, onEzAction: (evt) => this.controlSelectFormConfig(evt) })), index.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 &&
934
+ index.h("div", { class: "ez-row ez-align--middle ez-align--right" }, index.h("ez-button", { label: "Cancelar", class: "ez-padding-left--medium", size: "small", onClick: () => this.cancelChangeConfig() }), index.h("ez-button", { label: "Salvar", class: "ez-button--primary ez-padding-left--medium", size: "small", onClick: () => this.saveConfig() }, index.h("ez-icon", { class: "ez-margin-right--small", slot: "leftIcon", iconName: "save" }))), this._optionFormConfigChanged === true &&
935
+ index.h("div", { class: "ez-row ez-align--middle ez-align--right" }, index.h("ez-button", { label: "Cancelar", class: "ez-padding-left--medium", size: "small", onClick: () => this.cancelChangeOptionConfig() }), index.h("ez-button", { label: this.getMessage("snkFormConfig.applyConfig"), class: "ez-button--primary ez-padding-left--medium", size: "small", onClick: () => this.applyOptionConfig() })))), index.h("div", { class: "ez-row ez-padding--medium", ref: ref => this._sortableContainer = ref }, index.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 &&
936
+ index.h("section", { class: "ez-box__container", ref: ref => this._formContainer = ref }, index.h("snk-tab-config", { ref: ref => this._tabConfig = ref, selectedIndex: this._tabSelected, 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() }, this._layoutFormConfig.map((tab) => index.h("snk-tab", { tabKey: tab.tab || "Geral", label: tab.tab || this.getMessage("snkFormConfig.form.tabGeneral"), visible: tab.visible }))), this._layoutFormConfig.map((tab, indexTab) => index.h("div", { id: "tab" + indexTab, "data-draggable-parent": "group", class: this._tabSelected === indexTab
937
+ ? "form-config__tab-content ez-flex ez-flex--column ez-size-width--full ez-padding--medium"
938
+ : "form-config__hide-content" }, tab.groups.map((group, indexGroup) => {
939
+ if (group.group) {
940
+ if (this._currentGroupBoxes[tab.tab] == undefined) {
941
+ this._currentGroupBoxes[tab.tab] = [];
942
+ }
943
+ return index.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));
944
+ }
945
+ else {
946
+ return index.h("div", { class: "ez-flex ez-flex--column ez-size-width--full" }, index.h("label", { class: "ez-text ez-text--secondary ez-margin-vertical--small" }, this.getMessage("snkFormConfig.form.subTitleInfo")), index.h("div", { id: CONTAINER_ID.withoutGroup, class: "ez-row", "data-draggable-parent": "field" }, this.getFieldsByGroup(group)), index.h("hr", { class: "ez-divider-horizontal ez-margin-vertical--medium" }));
947
+ }
948
+ }), this.renderTempGroupByTab(tab.tab))), index.h("div", { class: "form-config__btn-add-group ez-row" }, index.h("div", { class: "form-config__btn-add-group-container ez-col ez-col--sd-12 ez-col--tb-12 ez-align--center" }, index.h("ez-button", { label: this.getMessage("snkFormConfig.form.labelNewGroup"), class: "ez-padding-horizontal--small ez-button--primary", size: "small", onClick: () => this.addNewGroup() }, index.h("ez-icon", { class: "ez-margin-right--small", slot: "leftIcon", iconName: "plus" })))))), index.h("div", { class: "form-config__fields-available ez-col ez-col--sd-3 ez-col--tb-3" }, index.h("section", { class: "ez-box__container ez-col ez-col--pn-12" }, index.h("h1", { class: "ez-title ez-title--large ez-title--primary ez-padding-bottom--medium" }, this.getMessage("snkFormConfig.availableFields.title")), index.h("ez-filter-input", { ref: ref => this._filterFieldsAvailable = ref, label: this.getMessage("snkFormConfig.availableFields.labelSearchField"), onEzChange: evt => this.onFilterChange(evt.detail) }), index.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 &&
949
+ index.h("div", { id: CONTAINER_ID.fieldsAvailable, class: "ez-row", "data-draggable-parent": "field" }, this.orderFieldsAvailable(this._fieldsAvailable).map((field) => index.h("div", { key: field.name, class: this._fieldsAvailableStyle, "data-draggable-element": "field", onMouseDown: (evt) => this.controlMoveField(evt) }, index.h("snk-field-config", { onEzClickIcon: (evt) => { this.handleFieldConfigChange(evt); }, fieldConfig: field })))))))));
950
+ }
951
+ static get watchers() { return {
952
+ "formConfig": ["observeFormConfig"]
953
+ }; }
954
+ };
955
+ SnkFormConfig.style = snkFormConfigCss;
956
+
957
+ exports.snk_form_config = SnkFormConfig;