@sankhyalabs/ezui 2.11.0 → 2.12.0

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 (222) hide show
  1. package/dist/cjs/ez-actions-button.cjs.entry.js +1 -1
  2. package/dist/cjs/ez-alert.cjs.entry.js +1 -1
  3. package/dist/cjs/ez-application.cjs.entry.js +1 -1
  4. package/dist/cjs/ez-breadcrumb.cjs.entry.js +1 -1
  5. package/dist/cjs/ez-button.cjs.entry.js +1 -1
  6. package/dist/cjs/ez-calendar.cjs.entry.js +1 -1
  7. package/dist/cjs/ez-card-item.cjs.entry.js +1 -1
  8. package/dist/cjs/ez-check.cjs.entry.js +1 -1
  9. package/dist/cjs/ez-chip.cjs.entry.js +1 -1
  10. package/dist/cjs/ez-collapsible-box.cjs.entry.js +1 -1
  11. package/dist/cjs/ez-combo-box.cjs.entry.js +1 -1
  12. package/dist/cjs/ez-date-input.cjs.entry.js +1 -1
  13. package/dist/cjs/ez-date-time-input.cjs.entry.js +1 -1
  14. package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
  15. package/dist/cjs/ez-dropdown.cjs.entry.js +1 -1
  16. package/dist/cjs/ez-file-item.cjs.entry.js +1 -1
  17. package/dist/cjs/ez-filter-input.cjs.entry.js +1 -1
  18. package/dist/cjs/ez-form-view.cjs.entry.js +140 -0
  19. package/dist/cjs/ez-form.cjs.entry.js +228 -330
  20. package/dist/cjs/ez-grid.cjs.entry.js +1 -1
  21. package/dist/cjs/ez-icon.cjs.entry.js +1 -1
  22. package/dist/cjs/ez-list.cjs.entry.js +1 -1
  23. package/dist/cjs/ez-loading-bar.cjs.entry.js +1 -1
  24. package/dist/cjs/ez-modal-container.cjs.entry.js +1 -1
  25. package/dist/cjs/ez-modal.cjs.entry.js +1 -1
  26. package/dist/cjs/ez-number-input.cjs.entry.js +1 -1
  27. package/dist/cjs/ez-popover.cjs.entry.js +1 -1
  28. package/dist/cjs/ez-popup.cjs.entry.js +1 -1
  29. package/dist/cjs/ez-radio-button.cjs.entry.js +1 -1
  30. package/dist/cjs/ez-scroller.cjs.entry.js +1 -1
  31. package/dist/cjs/ez-search.cjs.entry.js +1 -1
  32. package/dist/cjs/ez-sidebar-button.cjs.entry.js +1 -1
  33. package/dist/cjs/ez-tabselector.cjs.entry.js +6 -3
  34. package/dist/cjs/ez-text-area.cjs.entry.js +1 -1
  35. package/dist/cjs/ez-text-edit.cjs.entry.js +1 -1
  36. package/dist/cjs/ez-text-input.cjs.entry.js +1 -1
  37. package/dist/cjs/ez-time-input.cjs.entry.js +1 -1
  38. package/dist/cjs/ez-toast.cjs.entry.js +1 -1
  39. package/dist/cjs/ez-tree.cjs.entry.js +109 -22
  40. package/dist/cjs/ez-upload.cjs.entry.js +1 -1
  41. package/dist/cjs/ez-view-stack.cjs.entry.js +1 -1
  42. package/dist/cjs/ezui.cjs.js +2 -2
  43. package/dist/cjs/{index-fb179d74.js → index-5e208fa5.js} +8 -0
  44. package/dist/cjs/loader.cjs.js +2 -2
  45. package/dist/collection/collection-manifest.json +1 -0
  46. package/dist/collection/components/ez-form/{structure/FormSheetMetadata.js → FormMetadata.js} +39 -54
  47. package/dist/collection/components/ez-form/ez-form.css +7 -1
  48. package/dist/collection/components/ez-form/ez-form.js +128 -19
  49. package/dist/collection/components/ez-form/interfaces/IDefaultConfig.js +1 -0
  50. package/dist/collection/components/ez-form/interfaces/IFieldConfig.js +1 -0
  51. package/dist/collection/components/ez-form/interfaces/IFormConfig.js +1 -0
  52. package/dist/collection/components/ez-form/interfaces/IFormSheetMetadata.js +1 -0
  53. package/dist/collection/components/ez-form/interfaces/IInvalidField.js +1 -0
  54. package/dist/collection/components/ez-form/interfaces/IRecordValidator.js +1 -0
  55. package/dist/collection/components/ez-form/interfaces/ITabConfig.js +1 -0
  56. package/dist/collection/components/ez-form/interfaces/IValidationResult.js +1 -0
  57. package/dist/collection/components/ez-form/interfaces/index.js +1 -0
  58. package/dist/collection/components/ez-form/store/form.slice.js +6 -2
  59. package/dist/collection/components/ez-form-view/ez-form-view.css +6 -0
  60. package/dist/collection/components/ez-form-view/ez-form-view.js +71 -0
  61. package/dist/collection/components/ez-form-view/fieldbuilder/FieldBuilder.js +26 -0
  62. package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/CheckBox.tpl.js +4 -4
  63. package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/ComboBox.tpl.js +2 -2
  64. package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/DateInput.tpl.js +1 -1
  65. package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/NumberInput.tpl.js +3 -3
  66. package/dist/collection/components/ez-form-view/interfaces/IFormViewField.js +1 -0
  67. package/dist/collection/components/ez-form-view/interfaces/index.js +1 -0
  68. package/dist/collection/components/ez-tabselector/ez-tabselector.js +5 -2
  69. package/dist/collection/components/ez-tree/ez-tree.css +8 -6
  70. package/dist/collection/components/ez-tree/ez-tree.js +89 -11
  71. package/dist/collection/components/ez-tree/subcomponents/DefaultTooltipResolver.js +3 -0
  72. package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +4 -4
  73. package/dist/collection/components/ez-tree/subcomponents/index.js +1 -0
  74. package/dist/collection/components/ez-tree/types/Node.js +26 -4
  75. package/dist/collection/components/ez-tree/types/Tree.js +23 -2
  76. package/dist/custom-elements/index.d.ts +6 -0
  77. package/dist/custom-elements/index.js +478 -355
  78. package/dist/esm/ez-actions-button.entry.js +1 -1
  79. package/dist/esm/ez-alert.entry.js +1 -1
  80. package/dist/esm/ez-application.entry.js +1 -1
  81. package/dist/esm/ez-breadcrumb.entry.js +1 -1
  82. package/dist/esm/ez-button.entry.js +1 -1
  83. package/dist/esm/ez-calendar.entry.js +1 -1
  84. package/dist/esm/ez-card-item.entry.js +1 -1
  85. package/dist/esm/ez-check.entry.js +1 -1
  86. package/dist/esm/ez-chip.entry.js +1 -1
  87. package/dist/esm/ez-collapsible-box.entry.js +1 -1
  88. package/dist/esm/ez-combo-box.entry.js +1 -1
  89. package/dist/esm/ez-date-input.entry.js +1 -1
  90. package/dist/esm/ez-date-time-input.entry.js +1 -1
  91. package/dist/esm/ez-dialog.entry.js +1 -1
  92. package/dist/esm/ez-dropdown.entry.js +1 -1
  93. package/dist/esm/ez-file-item.entry.js +1 -1
  94. package/dist/esm/ez-filter-input.entry.js +1 -1
  95. package/dist/esm/ez-form-view.entry.js +136 -0
  96. package/dist/esm/ez-form.entry.js +229 -331
  97. package/dist/esm/ez-grid.entry.js +1 -1
  98. package/dist/esm/ez-icon.entry.js +1 -1
  99. package/dist/esm/ez-list.entry.js +1 -1
  100. package/dist/esm/ez-loading-bar.entry.js +1 -1
  101. package/dist/esm/ez-modal-container.entry.js +1 -1
  102. package/dist/esm/ez-modal.entry.js +1 -1
  103. package/dist/esm/ez-number-input.entry.js +1 -1
  104. package/dist/esm/ez-popover.entry.js +1 -1
  105. package/dist/esm/ez-popup.entry.js +1 -1
  106. package/dist/esm/ez-radio-button.entry.js +1 -1
  107. package/dist/esm/ez-scroller.entry.js +1 -1
  108. package/dist/esm/ez-search.entry.js +1 -1
  109. package/dist/esm/ez-sidebar-button.entry.js +1 -1
  110. package/dist/esm/ez-tabselector.entry.js +6 -3
  111. package/dist/esm/ez-text-area.entry.js +1 -1
  112. package/dist/esm/ez-text-edit.entry.js +1 -1
  113. package/dist/esm/ez-text-input.entry.js +1 -1
  114. package/dist/esm/ez-time-input.entry.js +1 -1
  115. package/dist/esm/ez-toast.entry.js +1 -1
  116. package/dist/esm/ez-tree.entry.js +109 -22
  117. package/dist/esm/ez-upload.entry.js +1 -1
  118. package/dist/esm/ez-view-stack.entry.js +1 -1
  119. package/dist/esm/ezui.js +2 -2
  120. package/dist/esm/{index-b77dcd0d.js → index-c5203f95.js} +8 -0
  121. package/dist/esm/loader.js +2 -2
  122. package/dist/ezui/ezui.esm.js +1 -1
  123. package/dist/ezui/{p-22f06920.entry.js → p-0c3f7bf2.entry.js} +1 -1
  124. package/dist/ezui/{p-46c3cd8e.entry.js → p-0cd0545d.entry.js} +1 -1
  125. package/dist/ezui/{p-e881ec6d.entry.js → p-1a27bb9f.entry.js} +1 -1
  126. package/dist/ezui/{p-e9b4b3bd.entry.js → p-1b94b9dc.entry.js} +1 -1
  127. package/dist/ezui/{p-42f85e36.entry.js → p-20c01161.entry.js} +1 -1
  128. package/dist/ezui/{p-6c43b275.entry.js → p-24717f87.entry.js} +1 -1
  129. package/dist/ezui/{p-52a18a6c.entry.js → p-3320768e.entry.js} +1 -1
  130. package/dist/ezui/{p-6cdfe0db.entry.js → p-36ed5c45.entry.js} +1 -1
  131. package/dist/ezui/{p-b5efd273.entry.js → p-3b2091dd.entry.js} +1 -1
  132. package/dist/ezui/{p-42376b77.entry.js → p-47bcc678.entry.js} +1 -1
  133. package/dist/ezui/{p-5e3079cb.entry.js → p-47ca5e09.entry.js} +1 -1
  134. package/dist/ezui/{p-6a53943d.entry.js → p-4c444816.entry.js} +1 -1
  135. package/dist/ezui/{p-fe1f0c92.entry.js → p-608d13e8.entry.js} +1 -1
  136. package/dist/ezui/{p-d04f3bb1.entry.js → p-626b8940.entry.js} +1 -1
  137. package/dist/ezui/{p-bdb5e325.entry.js → p-6630eca2.entry.js} +1 -1
  138. package/dist/ezui/{p-b7a8708e.entry.js → p-67b9a2cb.entry.js} +1 -1
  139. package/dist/ezui/{p-7e9ab877.entry.js → p-6dec5cfa.entry.js} +1 -1
  140. package/dist/ezui/{p-5d19cd0d.entry.js → p-6f9aba86.entry.js} +1 -1
  141. package/dist/ezui/p-7799666d.entry.js +1 -0
  142. package/dist/ezui/{p-6ccf5720.js → p-7b80df03.js} +1 -1
  143. package/dist/ezui/{p-87dd65ba.entry.js → p-7d42065a.entry.js} +1 -1
  144. package/dist/ezui/{p-f58201e8.entry.js → p-81897c04.entry.js} +1 -1
  145. package/dist/ezui/{p-74a3f9d8.entry.js → p-91f8c816.entry.js} +1 -1
  146. package/dist/ezui/p-97d2d2f6.entry.js +1 -0
  147. package/dist/ezui/{p-4b93860c.entry.js → p-98c448c9.entry.js} +1 -1
  148. package/dist/ezui/{p-f8f87959.entry.js → p-99aea44b.entry.js} +1 -1
  149. package/dist/ezui/p-a4b4645d.entry.js +1 -0
  150. package/dist/ezui/{p-e3743d12.entry.js → p-ab5eee38.entry.js} +1 -1
  151. package/dist/ezui/{p-7d8e693d.entry.js → p-ad7151e0.entry.js} +1 -1
  152. package/dist/ezui/{p-2686fa5b.entry.js → p-ad8b7412.entry.js} +1 -1
  153. package/dist/ezui/{p-ba7b2b8f.entry.js → p-b2e861cb.entry.js} +1 -1
  154. package/dist/ezui/{p-8c273b22.entry.js → p-b2efb22c.entry.js} +1 -1
  155. package/dist/ezui/{p-9171043f.entry.js → p-b5557d33.entry.js} +1 -1
  156. package/dist/ezui/p-ba03ac61.entry.js +1 -0
  157. package/dist/ezui/{p-a4405e80.entry.js → p-bc324ee8.entry.js} +1 -1
  158. package/dist/ezui/{p-07d07b75.entry.js → p-bd9792e2.entry.js} +1 -1
  159. package/dist/ezui/{p-21782390.entry.js → p-bf8a633d.entry.js} +1 -1
  160. package/dist/ezui/{p-620e71e2.entry.js → p-c071db26.entry.js} +1 -1
  161. package/dist/ezui/{p-b9d91679.entry.js → p-c3529df3.entry.js} +1 -1
  162. package/dist/ezui/{p-297d4378.entry.js → p-ca7435a6.entry.js} +1 -1
  163. package/dist/ezui/{p-e628c8bd.entry.js → p-e203c89f.entry.js} +1 -1
  164. package/dist/ezui/{p-a7380524.entry.js → p-fc97f773.entry.js} +1 -1
  165. package/dist/types/components/ez-form/DataBinder.d.ts +1 -1
  166. package/dist/types/components/ez-form/FormMetadata.d.ts +16 -0
  167. package/dist/types/components/ez-form/ez-form.d.ts +21 -43
  168. package/dist/types/components/ez-form/interfaces/IDefaultConfig.d.ts +5 -0
  169. package/dist/types/components/ez-form/interfaces/IFieldConfig.d.ts +13 -0
  170. package/dist/types/components/ez-form/interfaces/IFormConfig.d.ts +7 -0
  171. package/dist/types/components/ez-form/interfaces/IFormSheetMetadata.d.ts +9 -0
  172. package/dist/types/components/ez-form/interfaces/IInvalidField.d.ts +4 -0
  173. package/dist/types/components/ez-form/interfaces/IRecordValidator.d.ts +6 -0
  174. package/dist/types/components/ez-form/interfaces/ITabConfig.d.ts +5 -0
  175. package/dist/types/components/ez-form/interfaces/IValidationResult.d.ts +8 -0
  176. package/dist/types/components/ez-form/interfaces/index.d.ts +8 -0
  177. package/dist/types/components/ez-form/store/form.slice.d.ts +5 -3
  178. package/dist/types/components/ez-form-view/fieldbuilder/FieldBuilder.d.ts +2 -0
  179. package/dist/types/components/ez-form-view/fieldbuilder/templates/CheckBox.tpl.d.ts +3 -0
  180. package/dist/types/components/ez-form-view/fieldbuilder/templates/ComboBox.tpl.d.ts +2 -0
  181. package/dist/types/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.d.ts +4 -0
  182. package/dist/types/components/ez-form-view/fieldbuilder/templates/FileInput.tpl.d.ts +2 -0
  183. package/dist/types/components/ez-form-view/fieldbuilder/templates/NumberInput.tpl.d.ts +3 -0
  184. package/dist/types/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.d.ts +2 -0
  185. package/dist/types/components/ez-form-view/fieldbuilder/templates/TextArea.tpl.d.ts +2 -0
  186. package/dist/types/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.d.ts +2 -0
  187. package/dist/types/components/ez-form-view/interfaces/IFormViewField.d.ts +10 -0
  188. package/dist/types/components/ez-form-view/interfaces/index.d.ts +1 -0
  189. package/dist/types/components/ez-tree/ez-tree.d.ts +13 -0
  190. package/dist/types/components/ez-tree/interfaces/ITreeItem.d.ts +1 -0
  191. package/dist/types/components/ez-tree/subcomponents/DefaultTooltipResolver.d.ts +2 -0
  192. package/dist/types/components/ez-tree/subcomponents/TreeItem.d.ts +2 -0
  193. package/dist/types/components/ez-tree/subcomponents/index.d.ts +1 -0
  194. package/dist/types/components/ez-tree/types/Node.d.ts +1 -0
  195. package/dist/types/components/ez-tree/types/Tree.d.ts +1 -0
  196. package/dist/types/components.d.ts +65 -2
  197. package/package.json +1 -1
  198. package/react/components.d.ts +1 -0
  199. package/react/components.js +1 -0
  200. package/react/components.js.map +1 -1
  201. package/dist/collection/components/ez-form/fieldbuilder/FieldBuilder.js +0 -48
  202. package/dist/collection/components/ez-form/structure/FormItem.js +0 -11
  203. package/dist/collection/components/ez-form/structure/FormSheet.js +0 -6
  204. package/dist/ezui/p-98c78c29.entry.js +0 -1
  205. package/dist/ezui/p-99e07a6b.entry.js +0 -1
  206. package/dist/ezui/p-a928ea8d.entry.js +0 -1
  207. package/dist/types/components/ez-form/fieldbuilder/FieldBuilder.d.ts +0 -2
  208. package/dist/types/components/ez-form/fieldbuilder/tpl/CheckBox.tpl.d.ts +0 -3
  209. package/dist/types/components/ez-form/fieldbuilder/tpl/ComboBox.tpl.d.ts +0 -6
  210. package/dist/types/components/ez-form/fieldbuilder/tpl/DateInput.tpl.d.ts +0 -15
  211. package/dist/types/components/ez-form/fieldbuilder/tpl/FileInput.tpl.d.ts +0 -5
  212. package/dist/types/components/ez-form/fieldbuilder/tpl/NumberInput.tpl.d.ts +0 -7
  213. package/dist/types/components/ez-form/fieldbuilder/tpl/SearchInput.tpl.d.ts +0 -6
  214. package/dist/types/components/ez-form/fieldbuilder/tpl/TextArea.tpl.d.ts +0 -5
  215. package/dist/types/components/ez-form/fieldbuilder/tpl/TextInput.tpl.d.ts +0 -5
  216. package/dist/types/components/ez-form/structure/FormItem.d.ts +0 -9
  217. package/dist/types/components/ez-form/structure/FormSheet.d.ts +0 -10
  218. package/dist/types/components/ez-form/structure/FormSheetMetadata.d.ts +0 -35
  219. /package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/FileInput.tpl.js +0 -0
  220. /package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/SearchInput.tpl.js +0 -0
  221. /package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/TextArea.tpl.js +0 -0
  222. /package/dist/collection/components/{ez-form/fieldbuilder/tpl → ez-form-view/fieldbuilder/templates}/TextInput.tpl.js +0 -0
@@ -1,6 +1,6 @@
1
1
  import { HTMLElement as HTMLElement$1, createEvent, h, Host, forceUpdate, proxyCustomElement } from '@stencil/core/internal/client';
2
2
  export { setAssetPath, setPlatformOptions } from '@stencil/core/internal/client';
3
- import { FloatingManager, ElementIDUtils, StringUtils as StringUtils$1, DateUtils as DateUtils$1, TimeFormatter, ObjectUtils as ObjectUtils$1, UserInterface, Action, WaitingChangeException, ApplicationContext, DataUnitAction, DataUnit, NumberUtils as NumberUtils$1, DataType, SortMode, JSUtils, MaskFormatter } from '@sankhyalabs/core';
3
+ import { FloatingManager, ElementIDUtils, StringUtils as StringUtils$1, DateUtils as DateUtils$1, TimeFormatter, ObjectUtils as ObjectUtils$1, Action, WaitingChangeException, ApplicationContext, UserInterface, DataUnitAction, DataUnit, NumberUtils as NumberUtils$1, DataType, SortMode, JSUtils, MaskFormatter } from '@sankhyalabs/core';
4
4
 
5
5
  var DialogType;
6
6
  (function (DialogType) {
@@ -2714,284 +2714,6 @@ let EzFilterInput$1 = class extends HTMLElement$1 {
2714
2714
  static get style() { return ezFilterInputCss; }
2715
2715
  };
2716
2716
 
2717
- class FormMetadata {
2718
- constructor() {
2719
- this._sheets = new Map();
2720
- this._requiredFields = [];
2721
- this._cleanOnCopyFields = [];
2722
- this._defaultValues = {};
2723
- }
2724
- getSheet(name) {
2725
- return this._sheets.get(name);
2726
- }
2727
- getAllSheets() {
2728
- return this._sheets;
2729
- }
2730
- addSheet(sheet) {
2731
- this._sheets.set(sheet.name, sheet);
2732
- this._requiredFields = this._requiredFields.concat(sheet.requiredFields);
2733
- this._cleanOnCopyFields = this._cleanOnCopyFields.concat(sheet.cleanOnCopyFields);
2734
- this._defaultValues = sheet.defaultValues;
2735
- }
2736
- getRequiredFields() {
2737
- return this._requiredFields;
2738
- }
2739
- getCleanOnCopyFields() {
2740
- return this._cleanOnCopyFields;
2741
- }
2742
- getDefaultValues() {
2743
- return this._defaultValues;
2744
- }
2745
- }
2746
- const isRequiredField = (descriptor, config) => {
2747
- if (descriptor.required) {
2748
- //Se for required pelo descritor não olha pra configuração.
2749
- return true;
2750
- }
2751
- return config === null || config === void 0 ? void 0 : config.required;
2752
- };
2753
- const isReadOnlyField = (descriptor, config) => {
2754
- if (descriptor.readOnly) {
2755
- //Se for readOnly pelo descritor não olha pra configuração.
2756
- return true;
2757
- }
2758
- return config === null || config === void 0 ? void 0 : config.readOnly;
2759
- };
2760
- const buildFromDataUnit = (dataUnit) => {
2761
- var _a, _b;
2762
- const unitMD = dataUnit.metadata;
2763
- const metadata = new FormMetadata();
2764
- if (unitMD) {
2765
- const visibleFields = (_a = unitMD.fields) === null || _a === void 0 ? void 0 : _a.filter(descriptor => descriptor.visible !== false);
2766
- const items = new Map();
2767
- (_b = unitMD === null || unitMD === void 0 ? void 0 : unitMD.fields) === null || _b === void 0 ? void 0 : _b.forEach((descriptor) => {
2768
- if (descriptor.visible !== false) {
2769
- resolveFieldGroup(items, null, descriptor);
2770
- }
2771
- });
2772
- let defaultValues = {};
2773
- visibleFields
2774
- .filter(descriptor => descriptor.defaultValue)
2775
- .map((descriptor) => defaultValues[descriptor.name] = descriptor.defaultValue);
2776
- metadata.addSheet({
2777
- label: unitMD.label,
2778
- name: unitMD.name,
2779
- items: Array.from(items.values()),
2780
- requiredFields: visibleFields
2781
- .filter(descriptor => descriptor.required)
2782
- .map(descriptor => descriptor.name),
2783
- cleanOnCopyFields: visibleFields
2784
- .filter(descriptor => { var _a, _b; return ((_a = descriptor.properties) === null || _a === void 0 ? void 0 : _a.cleanOnCopy) || ((_b = descriptor.properties) === null || _b === void 0 ? void 0 : _b.autoNum); })
2785
- .map(descriptor => descriptor.name),
2786
- defaultValues
2787
- });
2788
- }
2789
- return metadata;
2790
- };
2791
- function getTabConfig(tab, sheets) {
2792
- const tabConfig = (typeof tab === "string" ? Array.from(sheets.keys()).find(t => t.label === tab) : tab);
2793
- return tabConfig || { label: tab, visible: true };
2794
- }
2795
- function sortTabs(a, b) {
2796
- return a[0].label == '__main' ? -1 : (a[0].order || 10000) - (b[0].order || 10000);
2797
- }
2798
- function resolveFieldGroup(items, field, descriptor) {
2799
- const fieldMD = { config: field, descriptor: descriptor };
2800
- let group = (field === null || field === void 0 ? void 0 : field.group) || descriptor.group;
2801
- if (group) {
2802
- const key = `group::${group}`;
2803
- if (!items.has(key)) {
2804
- items.set(key, { label: group, items: [fieldMD] });
2805
- }
2806
- else {
2807
- items.get(key).items.push(fieldMD);
2808
- }
2809
- }
2810
- else {
2811
- items.set((field === null || field === void 0 ? void 0 : field.name) || descriptor.name, fieldMD);
2812
- }
2813
- }
2814
- const buildFromConfig = (config, dataUnit) => {
2815
- var _a, _b;
2816
- const sheets = new Map();
2817
- const hiddenTabs = new Map();
2818
- const requiredFields = [];
2819
- const cleanOnCopyFields = [];
2820
- const defaultValues = {};
2821
- (_a = config === null || config === void 0 ? void 0 : config.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => {
2822
- if (!hiddenTabs.has(tab.label) && tab.visible === false) {
2823
- hiddenTabs.set(tab.label, tab);
2824
- }
2825
- });
2826
- (_b = config === null || config === void 0 ? void 0 : config.fields) === null || _b === void 0 ? void 0 : _b.forEach((field) => {
2827
- var _a, _b, _c, _d;
2828
- if (field.visible !== false) {
2829
- const tabConfig = getTabConfig(field.tab || "__main", sheets);
2830
- if (hiddenTabs.has(tabConfig.label)) {
2831
- return;
2832
- }
2833
- const descriptor = dataUnit.getField(field.name);
2834
- if (descriptor && tabConfig.visible) {
2835
- if (!sheets.has(tabConfig)) {
2836
- sheets.set(tabConfig, new Map());
2837
- }
2838
- const tabItens = sheets.get(tabConfig);
2839
- if (isRequiredField(descriptor, field)) {
2840
- requiredFields.push(field.name);
2841
- }
2842
- const cleanOnCopy = field.cleanOnCopy == undefined ? (_a = descriptor.properties) === null || _a === void 0 ? void 0 : _a.cleanOnCopy : field.cleanOnCopy;
2843
- if (cleanOnCopy || ((_b = descriptor.properties) === null || _b === void 0 ? void 0 : _b.autoNum) || ((_c = descriptor.properties) === null || _c === void 0 ? void 0 : _c.cleanOnCopy)) {
2844
- cleanOnCopyFields.push(field.name);
2845
- }
2846
- const defaultValue = field.defaultValue == undefined ? (_d = descriptor.properties) === null || _d === void 0 ? void 0 : _d.defaultValue : field.defaultValue;
2847
- if (defaultValue) {
2848
- defaultValues[field.name] = field.defaultValue;
2849
- }
2850
- resolveFieldGroup(tabItens, field, descriptor);
2851
- }
2852
- }
2853
- });
2854
- const metadata = new FormMetadata();
2855
- Array.from(sheets.entries())
2856
- .sort(sortTabs)
2857
- .forEach(([key, value]) => {
2858
- metadata.addSheet({
2859
- label: (key.label === "__main") ? "Principal" : key.label,
2860
- name: key.label,
2861
- items: Array.from(value.values()),
2862
- requiredFields,
2863
- cleanOnCopyFields,
2864
- defaultValues
2865
- });
2866
- });
2867
- return metadata;
2868
- };
2869
-
2870
- const buildTextArea = ({ name, label, readOnly }) => {
2871
- return (h("div", { class: "ez-col ez-col--sd-12 ez-padding-horizontal--small", key: name },
2872
- h("ez-text-area", { enabled: !readOnly, label: label, "data-field-name": name })));
2873
- };
2874
-
2875
- const buildTextInput = ({ name, label, readOnly }) => {
2876
- return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
2877
- h("ez-text-input", { label: label, "data-field-name": name, key: name, enabled: !readOnly })));
2878
- };
2879
-
2880
- const buildSwitch = (fieldConfig) => {
2881
- return buildField$1(fieldConfig.name, fieldConfig.label, fieldConfig.readOnly, true);
2882
- };
2883
- const buildCheckBox = (fieldConfig) => {
2884
- return buildField$1(fieldConfig.name, fieldConfig.label, fieldConfig.readOnly, false);
2885
- };
2886
- function buildField$1(fieldName, fieldLabel, readOnly, switchMode = false) {
2887
- return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-align--middle ez-padding-horizontal--small ez-padding-bottom--large" },
2888
- h("ez-check", { enabled: !readOnly, label: fieldLabel, mode: switchMode ? CheckMode.SWITCH : CheckMode.REGULAR, "data-field-name": fieldName, key: fieldName })));
2889
- }
2890
-
2891
- const buildComboBox = ({ name, label, readOnly, required }, properties) => {
2892
- const prop = properties === null || properties === void 0 ? void 0 : properties.options;
2893
- let options;
2894
- if (typeof prop === "string") {
2895
- const parsed = JSON.parse(prop);
2896
- options = Object.keys(parsed).map(key => { return { value: key, label: parsed[key] }; });
2897
- }
2898
- else {
2899
- options = prop;
2900
- }
2901
- return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
2902
- h("ez-combo-box", { enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, key: name, options: options })));
2903
- };
2904
-
2905
- const buildSearch = ({ name, label, readOnly, required }) => {
2906
- return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
2907
- h("ez-search", { enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, key: name })));
2908
- };
2909
-
2910
- const buildFile = ({ name, label, readOnly }) => {
2911
- return (h("div", { class: "ez-col ez-col--sd-12 ez-padding-horizontal--small" },
2912
- h("ez-upload", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
2913
- };
2914
-
2915
- const buildDate = ({ name, label, readOnly }) => {
2916
- return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
2917
- h("ez-date-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
2918
- };
2919
- const buildTime = ({ name, label, readOnly }) => {
2920
- return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
2921
- h("ez-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
2922
- };
2923
- const buildTimeDate = ({ name, label, readOnly }) => {
2924
- return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
2925
- h("ez-date-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
2926
- };
2927
-
2928
- const buildDecimal = ({ name, label, readOnly }, properties) => {
2929
- const precision = Number((properties === null || properties === void 0 ? void 0 : properties.precision) || 2);
2930
- const prettyPrecision = Number((properties === null || properties === void 0 ? void 0 : properties.prettyPrecision) || precision);
2931
- return buildNumeric(name, label, readOnly, precision, prettyPrecision);
2932
- };
2933
- const buildInteger = ({ name, label, readOnly }) => {
2934
- return buildNumeric(name, label, readOnly, 0, 0);
2935
- };
2936
- function buildNumeric(fieldName, fieldLabel, readOnly, precision, prettyPrecision) {
2937
- return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
2938
- h("ez-number-input", { enabled: !readOnly, label: fieldLabel, precision: precision, prettyPrecision: prettyPrecision, "data-field-name": fieldName, key: fieldName })));
2939
- }
2940
-
2941
- const uiBuilders = new Map();
2942
- uiBuilders.set(UserInterface.LONGTEXT, buildTextArea);
2943
- uiBuilders.set(UserInterface.CHECKBOX, buildCheckBox);
2944
- uiBuilders.set(UserInterface.SWITCH, buildSwitch);
2945
- uiBuilders.set(UserInterface.OPTIONSELECTOR, buildComboBox);
2946
- uiBuilders.set(UserInterface.SEARCH, buildSearch);
2947
- uiBuilders.set(UserInterface.FILE, buildFile);
2948
- uiBuilders.set(UserInterface.DATE, buildDate);
2949
- uiBuilders.set(UserInterface.TIME, buildTime);
2950
- uiBuilders.set(UserInterface.DATETIME, buildTimeDate);
2951
- uiBuilders.set(UserInterface.DECIMALNUMBER, buildDecimal);
2952
- uiBuilders.set(UserInterface.INTEGERNUMBER, buildInteger);
2953
- const buildField = (field) => {
2954
- const descriptor = field.descriptor;
2955
- const config = Object.assign({}, field.config);
2956
- let builder;
2957
- let props;
2958
- if (descriptor) {
2959
- if (!config.label) {
2960
- config.label = descriptor.label;
2961
- }
2962
- if (!config.name) {
2963
- config.name = descriptor.name;
2964
- }
2965
- // Forçamos uma avaliação priorizando o descriptor.
2966
- config.required = isRequiredField(descriptor, config);
2967
- config.readOnly = isReadOnlyField(descriptor, config);
2968
- props = descriptor.properties;
2969
- builder = uiBuilders.get(descriptor.userInterface);
2970
- }
2971
- if (config.required) {
2972
- config.label = `${config.label} (obrigatório) *`;
2973
- }
2974
- if (!builder) {
2975
- builder = buildTextInput;
2976
- }
2977
- return builder(config, props);
2978
- };
2979
-
2980
- const FormItem = ({ source }) => {
2981
- if ("items" in source) {
2982
- const fieldSet = source;
2983
- return h("ez-collapsible-box", { label: source.label, "header-size": "large", key: source.label }, fieldSet.items.map(fi => buildField(fi)));
2984
- }
2985
- else {
2986
- return buildField(source);
2987
- }
2988
- };
2989
-
2990
- const FormSheet = ({ store, source, dataElementId }) => {
2991
- return (h("div", { class: "dynamic-content ez-box__container", "data-element-id": dataElementId },
2992
- h("div", { class: "ez-row ez-padding-vertical--small" }, source.items.map(item => h(FormItem, { store: store, source: item })))));
2993
- };
2994
-
2995
2717
  /**
2996
2718
  * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js
2997
2719
  *
@@ -3315,45 +3037,6 @@ function createStore(reducer, preloadedState, enhancer) {
3315
3037
  }, _ref2[$$observable] = observable, _ref2;
3316
3038
  }
3317
3039
 
3318
- const inicialState = {};
3319
- /////////////////////////////// REDUCERS ///////////////////////////////
3320
- function formReducer(state = inicialState, action) {
3321
- switch (action.type) {
3322
- case FormActions.METADATA_LOADED:
3323
- return Object.assign(Object.assign({}, state), { formMetadata: action.payload, currentSheet: undefined });
3324
- case FormActions.CHANGE_TAB:
3325
- return Object.assign(Object.assign({}, state), { currentSheet: action.payload });
3326
- default:
3327
- return state;
3328
- }
3329
- }
3330
- /////////////////////////////// ACTION CREATORS ///////////////////////////////
3331
- function loadMetadata(formMetadata) {
3332
- return {
3333
- type: FormActions.METADATA_LOADED,
3334
- payload: formMetadata
3335
- };
3336
- }
3337
- function changeTab(currentSheet) {
3338
- return {
3339
- type: FormActions.CHANGE_TAB,
3340
- payload: currentSheet.tabKey
3341
- };
3342
- }
3343
- /////////////////////////////// SELECTORS ///////////////////////////////
3344
- function selectFormMetadata(state) {
3345
- return state.formMetadata;
3346
- }
3347
- function selectCurrentSheet(state) {
3348
- return state.currentSheet ? state.formMetadata.getSheet(state.currentSheet) : Array.from(state.formMetadata.getAllSheets().values())[0];
3349
- }
3350
- /////////////////////////////// TYPES ///////////////////////////////
3351
- var FormActions;
3352
- (function (FormActions) {
3353
- FormActions["METADATA_LOADED"] = "FORM/METADATA_LOADED";
3354
- FormActions["CHANGE_TAB"] = "FORM/CHANGE_TAB";
3355
- })(FormActions || (FormActions = {}));
3356
-
3357
3040
  class DataBinder {
3358
3041
  constructor(dataUnit) {
3359
3042
  this._invalidFields = new Map();
@@ -3560,7 +3243,187 @@ class Bind {
3560
3243
  }
3561
3244
  }
3562
3245
 
3563
- const ezFormCss = "ez-form{display:flex;flex-direction:column;width:100%}.dynamic-content ez-collapsible-box{--ez-collapsible-box__header--padding-right:var(--space-small, 6px);--ez-collapsible-box__header--padding-left:var(--space-small, 6px)}";
3246
+ const inicialState = {};
3247
+ /////////////////////////////// REDUCERS ///////////////////////////////
3248
+ function formReducer(state = inicialState, action) {
3249
+ switch (action.type) {
3250
+ case FormActions.METADATA_LOADED:
3251
+ return Object.assign(Object.assign({}, state), { formMetadata: action.payload, currentSheet: undefined });
3252
+ case FormActions.CHANGE_TAB:
3253
+ return Object.assign(Object.assign({}, state), { currentSheet: action.payload });
3254
+ default:
3255
+ return state;
3256
+ }
3257
+ }
3258
+ /////////////////////////////// ACTION CREATORS ///////////////////////////////
3259
+ function loadMetadata(formMetadata) {
3260
+ return {
3261
+ type: FormActions.METADATA_LOADED,
3262
+ payload: formMetadata
3263
+ };
3264
+ }
3265
+ function changeTab(currentSheet) {
3266
+ return {
3267
+ type: FormActions.CHANGE_TAB,
3268
+ payload: typeof currentSheet === "string" ? currentSheet : currentSheet.tabKey
3269
+ };
3270
+ }
3271
+ /////////////////////////////// SELECTORS ///////////////////////////////
3272
+ function selectFormMetadata(state) {
3273
+ return state.formMetadata;
3274
+ }
3275
+ function selectCurrentSheetId(state) {
3276
+ return state.currentSheet;
3277
+ }
3278
+ function selectCurrentSheet(state) {
3279
+ const currentSheetId = selectCurrentSheetId(state);
3280
+ return currentSheetId ? state.formMetadata.getSheet(currentSheetId) : Array.from(state.formMetadata.getAllSheets().values())[0];
3281
+ }
3282
+ /////////////////////////////// TYPES ///////////////////////////////
3283
+ var FormActions;
3284
+ (function (FormActions) {
3285
+ FormActions["METADATA_LOADED"] = "FORM/METADATA_LOADED";
3286
+ FormActions["CHANGE_TAB"] = "FORM/CHANGE_TAB";
3287
+ })(FormActions || (FormActions = {}));
3288
+
3289
+ class FormMetadata {
3290
+ constructor() {
3291
+ this._sheets = new Map();
3292
+ this._requiredFields = [];
3293
+ this._cleanOnCopyFields = [];
3294
+ this._defaultValues = {};
3295
+ }
3296
+ getSheet(name) {
3297
+ return this._sheets.get(name);
3298
+ }
3299
+ getAllSheets() {
3300
+ return this._sheets;
3301
+ }
3302
+ addSheet(sheet) {
3303
+ this._sheets.set(sheet.name, sheet);
3304
+ this._requiredFields = this._requiredFields.concat(sheet.requiredFields);
3305
+ this._cleanOnCopyFields = this._cleanOnCopyFields.concat(sheet.cleanOnCopyFields);
3306
+ this._defaultValues = sheet.defaultValues;
3307
+ }
3308
+ getRequiredFields() {
3309
+ return this._requiredFields;
3310
+ }
3311
+ getCleanOnCopyFields() {
3312
+ return this._cleanOnCopyFields;
3313
+ }
3314
+ getDefaultValues() {
3315
+ return this._defaultValues;
3316
+ }
3317
+ }
3318
+ const buildFromDataUnit = (dataUnit) => {
3319
+ const unitMD = dataUnit.metadata;
3320
+ const metadata = new FormMetadata();
3321
+ if (unitMD) {
3322
+ const visibleFields = (unitMD.fields || []).filter(descriptor => descriptor.visible !== false);
3323
+ const fields = visibleFields.map(descriptor => buildFormField(descriptor));
3324
+ let defaultValues = {};
3325
+ visibleFields
3326
+ .filter(descriptor => descriptor.defaultValue)
3327
+ .forEach((descriptor) => defaultValues[descriptor.name] = descriptor.defaultValue);
3328
+ metadata.addSheet({
3329
+ name: unitMD.name,
3330
+ label: unitMD.label,
3331
+ fields,
3332
+ requiredFields: visibleFields
3333
+ .filter(descriptor => descriptor.required)
3334
+ .map(descriptor => descriptor.name),
3335
+ cleanOnCopyFields: visibleFields
3336
+ .filter(descriptor => { var _a, _b; return ((_a = descriptor.properties) === null || _a === void 0 ? void 0 : _a.cleanOnCopy) || ((_b = descriptor.properties) === null || _b === void 0 ? void 0 : _b.autoNum); })
3337
+ .map(descriptor => descriptor.name),
3338
+ defaultValues
3339
+ });
3340
+ }
3341
+ return metadata;
3342
+ };
3343
+ const buildFromConfig = (config, dataUnit) => {
3344
+ var _a, _b;
3345
+ const sheets = new Map();
3346
+ const hiddenTabs = new Map();
3347
+ const requiredFields = [];
3348
+ const cleanOnCopyFields = [];
3349
+ const defaultValues = {};
3350
+ (_a = config === null || config === void 0 ? void 0 : config.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => {
3351
+ if (!hiddenTabs.has(tab.label) && tab.visible === false) {
3352
+ hiddenTabs.set(tab.label, tab);
3353
+ }
3354
+ });
3355
+ (_b = config === null || config === void 0 ? void 0 : config.fields) === null || _b === void 0 ? void 0 : _b.forEach((field) => {
3356
+ var _a, _b, _c, _d;
3357
+ if (field.visible !== false) {
3358
+ const tabConfig = getTabConfig(field.tab || "__main", sheets);
3359
+ if (hiddenTabs.has(tabConfig.label)) {
3360
+ return;
3361
+ }
3362
+ const descriptor = dataUnit.getField(field.name);
3363
+ if (descriptor && tabConfig.visible) {
3364
+ if (!sheets.has(tabConfig)) {
3365
+ sheets.set(tabConfig, []);
3366
+ }
3367
+ const formField = buildFormField(descriptor, field);
3368
+ sheets.get(tabConfig).push(formField);
3369
+ if (formField.required) {
3370
+ requiredFields.push(field.name);
3371
+ }
3372
+ const cleanOnCopy = field.cleanOnCopy == undefined ? (_a = descriptor.properties) === null || _a === void 0 ? void 0 : _a.cleanOnCopy : field.cleanOnCopy;
3373
+ if (cleanOnCopy || ((_b = descriptor.properties) === null || _b === void 0 ? void 0 : _b.autoNum) || ((_c = descriptor.properties) === null || _c === void 0 ? void 0 : _c.cleanOnCopy)) {
3374
+ cleanOnCopyFields.push(field.name);
3375
+ }
3376
+ const defaultValue = field.defaultValue == undefined ? (_d = descriptor.properties) === null || _d === void 0 ? void 0 : _d.defaultValue : field.defaultValue;
3377
+ if (defaultValue) {
3378
+ defaultValues[field.name] = field.defaultValue;
3379
+ }
3380
+ }
3381
+ }
3382
+ });
3383
+ const metadata = new FormMetadata();
3384
+ Array.from(sheets.entries())
3385
+ .sort(sortTabs)
3386
+ .forEach(([key, fields]) => {
3387
+ metadata.addSheet({
3388
+ label: (key.label === "__main") ? "Principal" : key.label,
3389
+ name: key.label,
3390
+ fields,
3391
+ requiredFields,
3392
+ cleanOnCopyFields,
3393
+ defaultValues
3394
+ });
3395
+ });
3396
+ return metadata;
3397
+ };
3398
+ const buildFormField = (descriptor, config) => {
3399
+ let { name, label, group } = Object.assign({}, config);
3400
+ let { readOnly, required } = Object.assign({}, config);
3401
+ let props;
3402
+ let userInterface;
3403
+ if (descriptor) {
3404
+ label = label || descriptor.label;
3405
+ name = name || descriptor.name;
3406
+ required = descriptor.required || (config === null || config === void 0 ? void 0 : config.required);
3407
+ readOnly = descriptor.readOnly || (config === null || config === void 0 ? void 0 : config.readOnly);
3408
+ props = descriptor.properties;
3409
+ userInterface = descriptor.userInterface;
3410
+ }
3411
+ return {
3412
+ name, label, group,
3413
+ readOnly, required,
3414
+ props,
3415
+ userInterface: userInterface || UserInterface.SHORTTEXT
3416
+ };
3417
+ };
3418
+ const getTabConfig = (tab, sheets) => {
3419
+ const tabConfig = (typeof tab === "string" ? Array.from(sheets.keys()).find(t => t.label === tab) : tab);
3420
+ return tabConfig || { label: tab, visible: true };
3421
+ };
3422
+ const sortTabs = (a, b) => {
3423
+ return a[0].label == '__main' ? -1 : (a[0].order || 10000) - (b[0].order || 10000);
3424
+ };
3425
+
3426
+ const ezFormCss = ".sc-ez-form-h{display:flex;flex-direction:column;width:100%}.dynamic-content.sc-ez-form ez-collapsible-box.sc-ez-form{--ez-collapsible-box__header--padding-right:var(--space-small, 6px);--ez-collapsible-box__header--padding-left:var(--space-small, 6px)}.multi-level__container.sc-ez-form{display:grid;grid-template-columns:minmax(20%, 300px) auto;width:100%}";
3564
3427
 
3565
3428
  let EzForm$1 = class extends HTMLElement$1 {
3566
3429
  constructor() {
@@ -3644,17 +3507,40 @@ let EzForm$1 = class extends HTMLElement$1 {
3644
3507
  }
3645
3508
  });
3646
3509
  }
3510
+ resolveLevel(items) {
3511
+ if (!this.levelResolver) {
3512
+ return items;
3513
+ }
3514
+ return this.levelResolver(items);
3515
+ }
3516
+ getMultiLevelContent(sheets, currentSheet, currentSheetId) {
3517
+ const treeItems = this.resolveLevel(sheets.map(sheet => {
3518
+ const item = {
3519
+ id: sheet.name,
3520
+ label: sheet.label
3521
+ };
3522
+ return item;
3523
+ }));
3524
+ return (h("div", { class: "multi-level__container" }, h("div", null, h("ez-tree", { selectedId: currentSheet === null || currentSheet === void 0 ? void 0 : currentSheet.name, items: treeItems, onEzChange: (evt) => {
3525
+ var _a;
3526
+ const selectedItem = (_a = evt.detail) === null || _a === void 0 ? void 0 : _a.id;
3527
+ if (selectedItem && selectedItem !== (currentSheet === null || currentSheet === void 0 ? void 0 : currentSheet.name)) {
3528
+ this._store.dispatch(changeTab(selectedItem));
3529
+ }
3530
+ } })), h("div", null, this.buildFormContent(currentSheetId, currentSheet))));
3531
+ }
3647
3532
  getDynamicContent() {
3648
- var _a;
3533
+ var _a, _b;
3649
3534
  const formMD = selectFormMetadata(this._store.getState());
3650
3535
  if (!formMD)
3651
3536
  return null;
3652
- const currentSheet = selectCurrentSheet((_a = this._store) === null || _a === void 0 ? void 0 : _a.getState());
3653
- if (!currentSheet) {
3654
- return null;
3655
- }
3656
3537
  const allSheets = Array.from(formMD.getAllSheets().values());
3657
- const result = [];
3538
+ const currentSheetId = selectCurrentSheetId((_a = this._store) === null || _a === void 0 ? void 0 : _a.getState());
3539
+ const currentSheet = selectCurrentSheet((_b = this._store) === null || _b === void 0 ? void 0 : _b.getState());
3540
+ if (this.multiLevel) {
3541
+ return this.getMultiLevelContent(allSheets, currentSheet, currentSheetId);
3542
+ }
3543
+ let result = [];
3658
3544
  if (allSheets.length > 1) {
3659
3545
  const tabs = allSheets.map((sheet, index) => {
3660
3546
  return { tabKey: sheet.name, label: sheet.label, index };
@@ -3662,12 +3548,25 @@ let EzForm$1 = class extends HTMLElement$1 {
3662
3548
  const idTabSelector = `selector`;
3663
3549
  result.push(h("ez-tabselector", { tabs: this.buildIdTabSelector(tabs), onEzChange: (evt) => this._store.dispatch(changeTab(evt.detail)), selectedTab: currentSheet.name, "data-element-id": idTabSelector }));
3664
3550
  }
3665
- const idFormSheet = `${StringUtils$1.replaceAccentuatedChars(StringUtils$1.toCamelCase(currentSheet.label), false)}_selectorContainer`;
3666
- result.push(h(FormSheet, { store: this._store, source: currentSheet, dataElementId: idFormSheet }));
3551
+ result = result.concat(this.buildFormContent(currentSheetId, currentSheet));
3667
3552
  return result;
3668
3553
  }
3554
+ buildFormContent(sheetId, currentSheet) {
3555
+ const fields = currentSheet === null || currentSheet === void 0 ? void 0 : currentSheet.fields;
3556
+ if (this.contentBuilder != undefined) {
3557
+ const customContent = this.contentBuilder(sheetId, fields);
3558
+ if (customContent != undefined) {
3559
+ return h("div", { "innerHTML": customContent });
3560
+ }
3561
+ }
3562
+ if (currentSheet == undefined) {
3563
+ return;
3564
+ }
3565
+ const idFormSheet = `${StringUtils$1.replaceAccentuatedChars(StringUtils$1.toCamelCase(currentSheet === null || currentSheet === void 0 ? void 0 : currentSheet.label), false)}_selectorContainer`;
3566
+ return (h("div", { class: "dynamic-content ez-box__container", "data-element-id": idFormSheet }, h("ez-form-view", { class: "ez-row ez-padding-vertical--small", fields: fields })));
3567
+ }
3669
3568
  processMetadata() {
3670
- if (!this.isStatic() && this.dataUnit) {
3569
+ if (!this.isStatic() && this.dataUnit && this._store) {
3671
3570
  const metadata = this.config != undefined && Object.values(this.config).length > 0 ? buildFromConfig(this.config, this.dataUnit) : buildFromDataUnit(this.dataUnit);
3672
3571
  this._store.dispatch(loadMetadata(metadata));
3673
3572
  }
@@ -3707,7 +3606,7 @@ let EzForm$1 = class extends HTMLElement$1 {
3707
3606
  }
3708
3607
  if (action.type === Action.RECORDS_ADDED) {
3709
3608
  const metadata = selectFormMetadata(this._store.getState());
3710
- const defaultValues = metadata.getDefaultValues();
3609
+ const defaultValues = metadata === null || metadata === void 0 ? void 0 : metadata.getDefaultValues();
3711
3610
  if (defaultValues) {
3712
3611
  const records = action.payload;
3713
3612
  return new DataUnitAction(Action.RECORDS_ADDED, records.map(record => {
@@ -3762,6 +3661,138 @@ let EzForm$1 = class extends HTMLElement$1 {
3762
3661
  static get style() { return ezFormCss; }
3763
3662
  };
3764
3663
 
3664
+ const buildSwitch = (field) => {
3665
+ return buildField(field.name, field.label, field.readOnly, true);
3666
+ };
3667
+ const buildCheckBox = (field) => {
3668
+ return buildField(field.name, field.label, field.readOnly, false);
3669
+ };
3670
+ function buildField(fieldName, fieldLabel, readOnly, switchMode = false) {
3671
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-align--middle ez-padding-horizontal--small ez-padding-bottom--large" },
3672
+ h("ez-check", { enabled: !readOnly, label: fieldLabel, mode: switchMode ? CheckMode.SWITCH : CheckMode.REGULAR, "data-field-name": fieldName, key: fieldName })));
3673
+ }
3674
+
3675
+ const buildComboBox = ({ name, label, readOnly, required, props }) => {
3676
+ const prop = props === null || props === void 0 ? void 0 : props.options;
3677
+ let options;
3678
+ if (typeof prop === "string") {
3679
+ const parsed = JSON.parse(prop);
3680
+ options = Object.keys(parsed).map(key => { return { value: key, label: parsed[key] }; });
3681
+ }
3682
+ else {
3683
+ options = prop;
3684
+ }
3685
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
3686
+ h("ez-combo-box", { enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, key: name, options: options })));
3687
+ };
3688
+
3689
+ const buildDate = ({ name, label, readOnly }) => {
3690
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
3691
+ h("ez-date-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
3692
+ };
3693
+ const buildTime = ({ name, label, readOnly }) => {
3694
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
3695
+ h("ez-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
3696
+ };
3697
+ const buildDateTime = ({ name, label, readOnly }) => {
3698
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
3699
+ h("ez-date-time-input", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
3700
+ };
3701
+
3702
+ const buildFile = ({ name, label, readOnly }) => {
3703
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-padding-horizontal--small" },
3704
+ h("ez-upload", { enabled: !readOnly, label: label, "data-field-name": name, key: name })));
3705
+ };
3706
+
3707
+ const buildDecimal = ({ name, label, readOnly, props }) => {
3708
+ const precision = Number((props === null || props === void 0 ? void 0 : props.precision) || 2);
3709
+ const prettyPrecision = Number((props === null || props === void 0 ? void 0 : props.prettyPrecision) || precision);
3710
+ return buildNumeric(name, label, readOnly, precision, prettyPrecision);
3711
+ };
3712
+ const buildInteger = ({ name, label, readOnly }) => {
3713
+ return buildNumeric(name, label, readOnly, 0, 0);
3714
+ };
3715
+ function buildNumeric(fieldName, fieldLabel, readOnly, precision, prettyPrecision) {
3716
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
3717
+ h("ez-number-input", { enabled: !readOnly, label: fieldLabel, precision: precision, prettyPrecision: prettyPrecision, "data-field-name": fieldName, key: fieldName })));
3718
+ }
3719
+
3720
+ const buildSearch = ({ name, label, readOnly, required }) => {
3721
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
3722
+ h("ez-search", { enabled: !readOnly, suppressEmptyOption: required, label: label, "data-field-name": name, key: name })));
3723
+ };
3724
+
3725
+ const buildTextArea = ({ name, label, readOnly }) => {
3726
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-padding-horizontal--small", key: name },
3727
+ h("ez-text-area", { enabled: !readOnly, label: label, "data-field-name": name })));
3728
+ };
3729
+
3730
+ const buildTextInput = ({ name, label, readOnly }) => {
3731
+ return (h("div", { class: "ez-col ez-col--sd-12 ez-col--tb-3 ez-padding-horizontal--small" },
3732
+ h("ez-text-input", { label: label, "data-field-name": name, key: name, enabled: !readOnly })));
3733
+ };
3734
+
3735
+ const uiBuilders = new Map();
3736
+ uiBuilders.set(UserInterface.CHECKBOX, buildCheckBox);
3737
+ uiBuilders.set(UserInterface.SWITCH, buildSwitch);
3738
+ uiBuilders.set(UserInterface.OPTIONSELECTOR, buildComboBox);
3739
+ uiBuilders.set(UserInterface.DATE, buildDate);
3740
+ uiBuilders.set(UserInterface.TIME, buildTime);
3741
+ uiBuilders.set(UserInterface.DATETIME, buildDateTime);
3742
+ uiBuilders.set(UserInterface.FILE, buildFile);
3743
+ uiBuilders.set(UserInterface.DECIMALNUMBER, buildDecimal);
3744
+ uiBuilders.set(UserInterface.INTEGERNUMBER, buildInteger);
3745
+ uiBuilders.set(UserInterface.SEARCH, buildSearch);
3746
+ uiBuilders.set(UserInterface.LONGTEXT, buildTextArea);
3747
+ const fieldBuilder = (field) => {
3748
+ const builder = uiBuilders.get(field.userInterface) || buildTextInput;
3749
+ const label = field.required ? `${field.label} (obrigatório) *` : field.label;
3750
+ return builder(Object.assign(Object.assign({}, field), { label }));
3751
+ };
3752
+
3753
+ const ezFormViewCss = ".sc-ez-form-view-h{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}";
3754
+
3755
+ let EzFormView$1 = class extends HTMLElement$1 {
3756
+ constructor() {
3757
+ super();
3758
+ this.__registerHost();
3759
+ }
3760
+ groupFields(fields) {
3761
+ const result = new Map();
3762
+ fields.forEach(item => {
3763
+ const groupLabel = item.group;
3764
+ if (groupLabel) {
3765
+ let groupFields = result.get(groupLabel);
3766
+ if (groupFields == undefined) {
3767
+ groupFields = [];
3768
+ result.set(groupLabel, groupFields);
3769
+ }
3770
+ groupFields.push(item);
3771
+ }
3772
+ else {
3773
+ result.set(item.name, item);
3774
+ }
3775
+ });
3776
+ return result;
3777
+ }
3778
+ render() {
3779
+ ElementIDUtils.addIDInfoIfNotExists(this._element, 'ezFormView');
3780
+ if (this.fields == undefined) {
3781
+ return;
3782
+ }
3783
+ return (h(Host, null, Array.from(this.groupFields(this.fields).entries()).map(([label, value]) => {
3784
+ if (Array.isArray(value)) {
3785
+ return (h("ez-collapsible-box", { id: `group-${label}`, label: label, "header-size": "large", key: label }, value.map(fi => fieldBuilder(fi))));
3786
+ }
3787
+ else {
3788
+ return fieldBuilder(value);
3789
+ }
3790
+ })));
3791
+ }
3792
+ get _element() { return this; }
3793
+ static get style() { return ezFormViewCss; }
3794
+ };
3795
+
3765
3796
  /**
3766
3797
  * @ag-grid-community/all-modules - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue * @version v28.1.1
3767
3798
  * @link https://www.ag-grid.com/
@@ -120713,9 +120744,12 @@ let EzTabselector$1 = class extends HTMLElement$1 {
120713
120744
  }
120714
120745
  componentWillRender() {
120715
120746
  if (!this._processedTabs) {
120716
- this._processedTabs = [];
120717
120747
  if (this.tabs) {
120718
- if (typeof this.tabs === "string") {
120748
+ if (Array.isArray(this.tabs)) {
120749
+ this._processedTabs = [...this.tabs];
120750
+ }
120751
+ else {
120752
+ this._processedTabs = [];
120719
120753
  this.tabs.split(",").forEach((label) => {
120720
120754
  label = label.trim();
120721
120755
  this._processedTabs.push({ label, tabKey: label, index: this._processedTabs.length });
@@ -121628,8 +121662,12 @@ const defaultIconResolver = (item, expanded, _level) => {
121628
121662
  return item.iconContracted || ICON_COLAPSED;
121629
121663
  };
121630
121664
 
121665
+ const defaultTooltipResolver = (item, _enabled, _level) => {
121666
+ return item.tooltip || item.label;
121667
+ };
121668
+
121631
121669
  const TreeItem = (props) => {
121632
- const { node, selectedId, itemClick, iconResolver, itemsList } = props;
121670
+ const { node, selectedId, itemClick, iconClick, iconResolver, tooltipResolver, itemsList } = props;
121633
121671
  const treeItem = node.item;
121634
121672
  const level = props.level || 1;
121635
121673
  const disabled = node.isDisabled();
@@ -121639,17 +121677,17 @@ const TreeItem = (props) => {
121639
121677
  if (available) {
121640
121678
  itemsList.push(treeItem);
121641
121679
  }
121642
- return (h("ul", { title: treeItem.label, class: level === 1 ? "first-level" : undefined },
121680
+ return (h("ul", { title: tooltipResolver(treeItem, !disabled, level), class: level === 1 ? "first-level" : undefined },
121643
121681
  h("li", Object.assign({ class: "tree-item", onClick: () => available && itemClick(treeItem) }, {
121644
121682
  disabled,
121645
121683
  selected: treeItem.id === selectedId,
121646
121684
  [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(`ezTreeItem_${treeItem.id}`)
121647
121685
  }),
121648
121686
  h("div", { class: "item-icon-box" }, expandable &&
121649
- h("ez-icon", { id: treeItem.id, class: "item-icon", size: "small", iconName: iconResolver(treeItem, expanded, level) })),
121687
+ h("ez-icon", { id: treeItem.id, class: "item-icon", size: "small", iconName: iconResolver(treeItem, expanded, level), onClick: () => available && iconClick(treeItem) })),
121650
121688
  h("label", { class: "item-label" }, treeItem.label)),
121651
121689
  expanded
121652
- && node.getChildren().map(child => h(TreeItem, { selectedId: selectedId, node: child, itemClick: itemClick, level: level + 1, iconResolver: iconResolver, itemsList: itemsList }))));
121690
+ && node.getChildren().map(child => h(TreeItem, { selectedId: selectedId, node: child, itemClick: itemClick, iconClick: iconClick, level: level + 1, iconResolver: iconResolver, tooltipResolver: tooltipResolver, itemsList: itemsList }))));
121653
121691
  };
121654
121692
 
121655
121693
  class Node$1 {
@@ -121671,6 +121709,31 @@ class Node$1 {
121671
121709
  this._childrenLoaded = true;
121672
121710
  }
121673
121711
  }
121712
+ refresh(newItem) {
121713
+ if (this.isPlaceHolder) {
121714
+ return;
121715
+ }
121716
+ this.item = Object.assign(Object.assign({}, newItem), { expanded: this.item.expanded });
121717
+ this._isLazyLoad = typeof this.item.children === "function" || this.item.childrenCount > 0;
121718
+ const oldChildren = this.children;
121719
+ this.children = new Map();
121720
+ if (Array.isArray(this.item.children)) {
121721
+ Array.from(this.item.children).forEach(item => {
121722
+ const node = oldChildren.get(item.id);
121723
+ if (node) {
121724
+ node.refresh(item);
121725
+ this.children.set(item.id, node);
121726
+ }
121727
+ else {
121728
+ this.addChild(this._tree, Object.assign({}, item));
121729
+ }
121730
+ });
121731
+ this._childrenLoaded = true;
121732
+ }
121733
+ else {
121734
+ this._childrenLoaded = false;
121735
+ }
121736
+ }
121674
121737
  isDisabled() {
121675
121738
  if (this.isPlaceHolder) {
121676
121739
  return false;
@@ -121681,10 +121744,7 @@ class Node$1 {
121681
121744
  if (this.isPlaceHolder) {
121682
121745
  return;
121683
121746
  }
121684
- this.item.children = children;
121685
- this._childrenLoaded = true;
121686
- this.children.clear();
121687
- children.forEach(item => this.addChild(this._tree, Object.assign({}, item)));
121747
+ this.refresh(Object.assign(Object.assign({}, this.item), { children }));
121688
121748
  }
121689
121749
  addChild(tree, item) {
121690
121750
  if (!this.children.has(item.id)) {
@@ -121750,8 +121810,29 @@ class Tree extends Node$1 {
121750
121810
  return this._disabledValues.get(id);
121751
121811
  }
121752
121812
  load(items) {
121753
- this.children.clear();
121754
- items.forEach(item => this.addChild(this, Object.assign({}, item)));
121813
+ const oldChildren = this.children;
121814
+ this.children = new Map();
121815
+ items.forEach(item => {
121816
+ const node = oldChildren.get(item.id);
121817
+ if (node) {
121818
+ node.refresh(item);
121819
+ this.children.set(item.id, node);
121820
+ }
121821
+ else {
121822
+ this.addChild(this, Object.assign({}, item));
121823
+ }
121824
+ });
121825
+ }
121826
+ updateItem(item) {
121827
+ if (item == undefined) {
121828
+ return;
121829
+ }
121830
+ const node = this.getNode(item.id);
121831
+ if (node == undefined) {
121832
+ return;
121833
+ }
121834
+ Object.keys(item).forEach(attrib => node.item[attrib] = item[attrib]);
121835
+ this._changeCallback();
121755
121836
  }
121756
121837
  async open(path) {
121757
121838
  return new Promise(async (resolve) => {
@@ -121795,7 +121876,7 @@ class Tree extends Node$1 {
121795
121876
  }
121796
121877
  }
121797
121878
 
121798
- const ezTreeCss = ":host{--ez-tree--border-radius:var(--border--radius-small, 8px);--ez-tree--padding-inline-start:20px;--ez-tree--margin:var(--space--extra-small, 3px);--ez-tree--font-family:var(--font-pattern, Arial);--ez-tree--font-size:var(--text--medium, 14px);--ez-tree--selected--font-weight:var(--text-weight--large, 600);--ez-tree--font-weight:var(--text-weight--small, 400);--ez-tree--color:var(--title--primary, #2B3A54);--ez-tree--selected--color:var(--color--primary, #008561);--ez-tree--disabled--color:var(--text--disable, #AFB6C0);--ez-tree__tree-item--height:var(--size-medium, 18px);--ez-tree__tree-item--padding:var(--space--small, 6px);--ez-tree__tree-item--background-color:var(--background--xlight, #FFFFFF);--ez-tree__tree-item--selected--background-color:var(--color--primary-300, #E2F4EF);--ez-tree__tree-item--hover--background-color:var(--background--medium, #F0F3F7);--ez-tree__tree-item--disabled--background-color:var(--ez-tree__tree-Item--background-color);--ez-tree__item-icon-box--height:var(--ez-tree__tree-item--height);--ez-tree__item-icon-box--width:var(--size-medium, 18px);--ez-tree__item-icon-box--padding:var(--ez-tree__tree-item--padding);display:flex;flex-direction:column;margin:0 var(--ez-tree--margin) var(--ez-tree--margin) var(--ez-tree--margin);outline:none}ul{list-style-type:none;margin:0;padding-inline-start:var(--ez-tree--padding-inline-start)}ul.first-level{padding-inline-start:0}.tree-item{display:flex;align-items:center;margin-top:var(--ez-tree--margin);border-radius:var(--ez-tree--border-radius);height:var(--ez-tree__tree-item--height);padding:var(--ez-tree__tree-item--padding)}.tree-item[selected]{background-color:var(--ez-tree__tree-item--selected--background-color)}.tree-item:hover{cursor:pointer;background-color:var(--ez-tree__tree-item--hover--background-color)}.tree-item[disabled],.tree-item[disabled]:hover{cursor:unset;background-color:var(--ez-tree__tree-item--disabled--background-color)}.item-icon-box{display:flex;align-items:center;justify-content:center;width:var(--ez-tree__item-icon-box--width);height:var(--ez-tree__item-icon-box--height);padding:var(--ez-tree__item-icon-box--padding) var(--ez-tree__item-icon-box--padding) var(--ez-tree__item-icon-box--padding) 0}.item-icon{--ez-icon--color:var(--ez-tree--color)}.tree-item[selected] .item-icon{--ez-icon--color:var(--ez-tree--selected--color)}.tree-item[disabled] .item-icon{--ez-icon--color:var(--ez-tree--disabled--color)}.item-label{cursor:inherit;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-family:var(--ez-tree--font-family);font-size:var(--ez-tree--font-size);font-weight:var(--ez-tree--font-weight);color:var(--ez-tree--color)}.tree-item[selected] .item-label{color:var(--ez-tree--selected--color);font-weight:var(--ez-tree--selected--font-weight)}.tree-item[disabled] .item-label{color:var(--ez-tree--disabled--color)}";
121879
+ const ezTreeCss = ":host{--ez-tree--border-radius:var(--border--radius-small, 8px);--ez-tree--padding-inline-start:20px;--ez-tree--margin:var(--space--extra-small, 3px);--ez-tree--font-family:var(--font-pattern, Arial);--ez-tree--font-size:var(--text--medium, 14px);--ez-tree--selected--font-weight:var(--text-weight--large, 600);--ez-tree--font-weight:var(--text-weight--small, 400);--ez-tree--color:var(--title--primary, #2B3A54);--ez-tree--selected--color:var(--color--primary, #008561);--ez-tree--disabled--color:var(--text--disable, #AFB6C0);--ez-tree__tree-item--height:var(--size-medium, 18px);--ez-tree__tree-item--padding:var(--space--small, 6px);--ez-tree__tree-item--background-color:var(--background--xlight, #FFFFFF);--ez-tree__tree-item--selected--background-color:var(--color--primary-300, #E2F4EF);--ez-tree__tree-item--hover--background-color:var(--background--medium, #F0F3F7);--ez-tree__tree-item--disabled--background-color:var(--ez-tree__tree-Item--background-color);--ez-tree__item-icon-box--height:var(--ez-tree__tree-item--height);--ez-tree__item-icon-box--width:var(--size-medium, 18px);--ez-tree__item-icon-box--padding:var(--ez-tree__tree-item--padding);display:flex;flex-direction:column;margin:0 var(--ez-tree--margin) var(--ez-tree--margin) var(--ez-tree--margin);outline:none}ul{list-style-type:none;margin:0;padding-inline-start:var(--ez-tree--padding-inline-start)}ul.first-level{padding-inline-start:0}.tree-item{display:flex;align-items:center;margin-top:var(--ez-tree--margin);border-radius:var(--ez-tree--border-radius);height:var(--ez-tree__tree-item--height);padding:var(--ez-tree__tree-item--padding)}.tree-item[selected]{background-color:var(--ez-tree__tree-item--selected--background-color)}.tree-item:hover{background-color:var(--ez-tree__tree-item--hover--background-color)}.tree-item[disabled],.tree-item[disabled]:hover{background-color:var(--ez-tree__tree-item--disabled--background-color)}.item-icon-box{display:flex;align-items:center;justify-content:center;width:var(--ez-tree__item-icon-box--width);height:var(--ez-tree__item-icon-box--height);padding:var(--ez-tree__item-icon-box--padding) var(--ez-tree__item-icon-box--padding) var(--ez-tree__item-icon-box--padding) 0}.item-icon{--ez-icon--color:var(--ez-tree--color)}.item-icon:hover{cursor:pointer}.tree-item[selected] .item-icon{--ez-icon--color:var(--ez-tree--selected--color)}.tree-item[disabled] .item-icon{cursor:unset;--ez-icon--color:var(--ez-tree--disabled--color)}.item-label{cursor:inherit;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-family:var(--ez-tree--font-family);font-size:var(--ez-tree--font-size);font-weight:var(--ez-tree--font-weight);color:var(--ez-tree--color)}.tree-item[selected] .item-label{color:var(--ez-tree--selected--color);font-weight:var(--ez-tree--selected--font-weight)}.tree-item[disabled] .item-label{color:var(--ez-tree--disabled--color)}";
121799
121880
 
121800
121881
  let EzTree$1 = class extends HTMLElement$1 {
121801
121882
  constructor() {
@@ -121806,6 +121887,9 @@ let EzTree$1 = class extends HTMLElement$1 {
121806
121887
  this.ezOpenItem = createEvent(this, "ezOpenItem", 7);
121807
121888
  this._tree = new Tree(() => forceUpdate(this));
121808
121889
  this._onItemClick = (item) => {
121890
+ this.value = item;
121891
+ };
121892
+ this._onIconClick = (item) => {
121809
121893
  this.openClose(item);
121810
121894
  this.value = item;
121811
121895
  };
@@ -121817,6 +121901,10 @@ let EzTree$1 = class extends HTMLElement$1 {
121817
121901
  * Define uma função que vai resolver o ícone daquele item. Retorna o nome do ícone da lib de icones do DS.
121818
121902
  */
121819
121903
  this.iconResolver = defaultIconResolver;
121904
+ /**
121905
+ * Define uma função que vai resolver o `tooltip` ou `title` daquele item.
121906
+ */
121907
+ this.tooltipResolver = defaultTooltipResolver;
121820
121908
  }
121821
121909
  /**
121822
121910
  * Efetua a seleção de um item.
@@ -121876,7 +121964,9 @@ let EzTree$1 = class extends HTMLElement$1 {
121876
121964
  this._tree.load(this.items);
121877
121965
  }
121878
121966
  observeValue() {
121967
+ var _a;
121879
121968
  this.ezChange.emit(this.value);
121969
+ this.selectedId = (_a = this.value) === null || _a === void 0 ? void 0 : _a.id;
121880
121970
  }
121881
121971
  onKeyDownListener(event) {
121882
121972
  if (!this.value) {
@@ -121919,7 +122009,7 @@ let EzTree$1 = class extends HTMLElement$1 {
121919
122009
  if (expanded) {
121920
122010
  this.ezOpenItem.emit(item);
121921
122011
  }
121922
- forceUpdate(this);
122012
+ this._tree.updateItem(item);
121923
122013
  }
121924
122014
  previousLevel() {
121925
122015
  var _a;
@@ -121928,7 +122018,7 @@ let EzTree$1 = class extends HTMLElement$1 {
121928
122018
  }
121929
122019
  if (this.value.expanded) {
121930
122020
  this.value.expanded = false;
121931
- forceUpdate(this);
122021
+ this._tree.updateItem(this.value);
121932
122022
  }
121933
122023
  else {
121934
122024
  const node = this._tree.getNode(this.value.id);
@@ -121951,19 +122041,50 @@ let EzTree$1 = class extends HTMLElement$1 {
121951
122041
  }
121952
122042
  else {
121953
122043
  this.value.expanded = true;
121954
- forceUpdate(this);
122044
+ this._tree.updateItem(this.value);
121955
122045
  }
121956
122046
  }
121957
- nextItem() {
121958
- const nextIndex = this._visibleItems.indexOf(this.value) + 1;
121959
- if (nextIndex < this._visibleItems.length) {
122047
+ indexOf(id) {
122048
+ if (id == undefined) {
122049
+ return -1;
122050
+ }
122051
+ for (let i = 0; i < this._visibleItems.length; i++) {
122052
+ const item = this._visibleItems[i];
122053
+ if (item.id === id) {
122054
+ return i;
122055
+ }
122056
+ }
122057
+ return -1;
122058
+ }
122059
+ selectNextItem(indexIncrement) {
122060
+ var _a;
122061
+ const nextIndex = this.indexOf((_a = this.value) === null || _a === void 0 ? void 0 : _a.id) + indexIncrement;
122062
+ if (nextIndex > -1 && nextIndex < this._visibleItems.length) {
121960
122063
  this.value = this._visibleItems[nextIndex];
121961
122064
  }
121962
122065
  }
122066
+ nextItem() {
122067
+ this.selectNextItem(1);
122068
+ }
121963
122069
  previousItem() {
121964
- const nextIndex = this._visibleItems.indexOf(this.value) - 1;
121965
- if (nextIndex > -1) {
121966
- this.value = this._visibleItems[nextIndex];
122070
+ this.selectNextItem(-1);
122071
+ }
122072
+ connectedCallback() {
122073
+ if (this.items) {
122074
+ this._tree.load(this.items);
122075
+ }
122076
+ }
122077
+ componentWillRender() {
122078
+ var _a;
122079
+ if (!this.selectedId || ((_a = this.value) === null || _a === void 0 ? void 0 : _a.id) === this.selectedId) {
122080
+ return;
122081
+ }
122082
+ const node = this._tree.getNode(this.selectedId);
122083
+ if (node) {
122084
+ this.value = node.item;
122085
+ }
122086
+ else {
122087
+ this.selectedId = undefined;
121967
122088
  }
121968
122089
  }
121969
122090
  render() {
@@ -121977,7 +122098,7 @@ let EzTree$1 = class extends HTMLElement$1 {
121977
122098
  :
121978
122099
  this._tree.getChildren().map(node => {
121979
122100
  var _a;
121980
- return h(TreeItem, { selectedId: (_a = this.value) === null || _a === void 0 ? void 0 : _a.id, node: node, itemClick: this._onItemClick, iconResolver: this.iconResolver, itemsList: this._visibleItems });
122101
+ return h(TreeItem, { selectedId: (_a = this.value) === null || _a === void 0 ? void 0 : _a.id, node: node, itemClick: this._onItemClick, iconClick: this._onIconClick, iconResolver: this.iconResolver, tooltipResolver: this.tooltipResolver, itemsList: this._visibleItems });
121981
122102
  })));
121982
122103
  }
121983
122104
  get _element() { return this; }
@@ -122462,7 +122583,8 @@ const EzDialog = /*@__PURE__*/proxyCustomElement(EzDialog$1, [1,"ez-dialog",{"co
122462
122583
  const EzDropdown = /*@__PURE__*/proxyCustomElement(EzDropdown$1, [1,"ez-dropdown",{"items":[1040],"value":[1040],"itemBuilder":[16]}]);
122463
122584
  const EzFileItem = /*@__PURE__*/proxyCustomElement(EzFileItem$1, [1,"ez-file-item",{"canRemove":[4,"can-remove"],"fileName":[1,"file-name"],"iconName":[1,"icon-name"],"fileSize":[2,"file-size"],"progress":[2]}]);
122464
122585
  const EzFilterInput = /*@__PURE__*/proxyCustomElement(EzFilterInput$1, [1,"ez-filter-input",{"label":[1],"value":[1537],"enabled":[4],"errorMessage":[1537,"error-message"],"restrict":[1],"mode":[513]}]);
122465
- const EzForm = /*@__PURE__*/proxyCustomElement(EzForm$1, [0,"ez-form",{"dataUnit":[1040],"config":[16],"recordsValidator":[16]}]);
122586
+ const EzForm = /*@__PURE__*/proxyCustomElement(EzForm$1, [2,"ez-form",{"dataUnit":[1040],"config":[16],"recordsValidator":[16],"multiLevel":[4,"multi-level"],"levelResolver":[16],"contentBuilder":[16]}]);
122587
+ const EzFormView = /*@__PURE__*/proxyCustomElement(EzFormView$1, [2,"ez-form-view",{"fields":[16]}]);
122466
122588
  const EzGrid = /*@__PURE__*/proxyCustomElement(EzGrid$1, [6,"ez-grid",{"multipleSelection":[4,"multiple-selection"],"config":[1040],"serverUrl":[1,"server-url"],"dataUnit":[16],"statusResolver":[16],"_paginationInfo":[32],"_paginationChangedByKeyboard":[32]},[[0,"ezSelectionChange","onSelectionChange"]]]);
122467
122589
  const EzIcon = /*@__PURE__*/proxyCustomElement(EzIcon$1, [1,"ez-icon",{"size":[513],"href":[513],"iconName":[513,"icon-name"]}]);
122468
122590
  const EzList = /*@__PURE__*/proxyCustomElement(EzList$1, [1,"ez-list",{"dataSource":[1040],"useGroups":[1540,"use-groups"],"ezDraggable":[1028,"ez-draggable"],"ezSelectable":[1028,"ez-selectable"],"itemSlotBuilder":[1040],"_listItems":[32],"_listGroupItems":[32]}]);
@@ -122482,7 +122604,7 @@ const EzTextEdit = /*@__PURE__*/proxyCustomElement(EzTextEdit$1, [1,"ez-text-edi
122482
122604
  const EzTextInput = /*@__PURE__*/proxyCustomElement(EzTextInput$1, [1,"ez-text-input",{"label":[513],"value":[1537],"enabled":[516],"errorMessage":[1537,"error-message"],"mask":[1],"canShowError":[516,"can-show-error"],"restrict":[1],"mode":[513],"noBorder":[516,"no-border"]}]);
122483
122605
  const EzTimeInput = /*@__PURE__*/proxyCustomElement(EzTimeInput$1, [1,"ez-time-input",{"label":[513],"value":[1026],"enabled":[516],"errorMessage":[1537,"error-message"],"showSeconds":[516,"show-seconds"],"mode":[513]}]);
122484
122606
  const EzToast = /*@__PURE__*/proxyCustomElement(EzToast$1, [1,"ez-toast",{"message":[1025],"fadeTime":[1026,"fade-time"],"useIcon":[1028,"use-icon"],"canClose":[1028,"can-close"]}]);
122485
- const EzTree = /*@__PURE__*/proxyCustomElement(EzTree$1, [1,"ez-tree",{"items":[16],"value":[1040],"iconResolver":[16],"_waintingForLoad":[32]},[[2,"keydown","onKeyDownListener"]]]);
122607
+ const EzTree = /*@__PURE__*/proxyCustomElement(EzTree$1, [1,"ez-tree",{"items":[16],"value":[1040],"selectedId":[1537,"selected-id"],"iconResolver":[16],"tooltipResolver":[16],"_waintingForLoad":[32]},[[2,"keydown","onKeyDownListener"]]]);
122486
122608
  const EzUpload = /*@__PURE__*/proxyCustomElement(EzUpload$1, [1,"ez-upload",{"label":[1],"enabled":[4],"maxFileSize":[2,"max-file-size"],"maxFiles":[2,"max-files"],"requestHeaders":[8,"request-headers"],"urlUpload":[1,"url-upload"],"urlDelete":[1,"url-delete"],"value":[1040]}]);
122487
122609
  const EzViewStack = /*@__PURE__*/proxyCustomElement(EzViewStack$1, [0,"ez-view-stack"]);
122488
122610
  const defineCustomElements = (opts) => {
@@ -122506,6 +122628,7 @@ const defineCustomElements = (opts) => {
122506
122628
  EzFileItem,
122507
122629
  EzFilterInput,
122508
122630
  EzForm,
122631
+ EzFormView,
122509
122632
  EzGrid,
122510
122633
  EzIcon,
122511
122634
  EzList,
@@ -122536,4 +122659,4 @@ const defineCustomElements = (opts) => {
122536
122659
  }
122537
122660
  };
122538
122661
 
122539
- export { EzActionsButton, EzAlert, EzApplication, EzBreadcrumb, EzButton, EzCalendar, EzCardItem, EzCheck, EzChip, EzCollapsibleBox, EzComboBox, EzDateInput, EzDateTimeInput, EzDialog, EzDropdown, EzFileItem, EzFilterInput, EzForm, EzGrid, EzIcon, EzList, EzLoadingBar, EzModal, EzModalContainer, EzNumberInput, EzPopover, EzPopup, EzRadioButton, EzScroller, EzSearch, EzSidebarButton, EzTabselector, EzTextArea, EzTextEdit, EzTextInput, EzTimeInput, EzToast, EzTree, EzUpload, EzViewStack, defineCustomElements };
122662
+ export { EzActionsButton, EzAlert, EzApplication, EzBreadcrumb, EzButton, EzCalendar, EzCardItem, EzCheck, EzChip, EzCollapsibleBox, EzComboBox, EzDateInput, EzDateTimeInput, EzDialog, EzDropdown, EzFileItem, EzFilterInput, EzForm, EzFormView, EzGrid, EzIcon, EzList, EzLoadingBar, EzModal, EzModalContainer, EzNumberInput, EzPopover, EzPopup, EzRadioButton, EzScroller, EzSearch, EzSidebarButton, EzTabselector, EzTextArea, EzTextEdit, EzTextInput, EzTimeInput, EzToast, EzTree, EzUpload, EzViewStack, defineCustomElements };