@sankhyalabs/ezui 7.1.0-dev.1 → 7.1.0-dev.11

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 (275) hide show
  1. package/dist/cjs/ez-actions-button.cjs.entry.js +1 -1
  2. package/dist/cjs/ez-alert-list.cjs.entry.js +1 -1
  3. package/dist/cjs/ez-alert.cjs.entry.js +1 -1
  4. package/dist/cjs/ez-application.cjs.entry.js +1 -1
  5. package/dist/cjs/ez-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/ez-badge.cjs.entry.js +1 -1
  7. package/dist/cjs/ez-breadcrumb.cjs.entry.js +1 -1
  8. package/dist/cjs/ez-button.cjs.entry.js +1 -1
  9. package/dist/cjs/ez-calendar.cjs.entry.js +1 -1
  10. package/dist/cjs/ez-card-item.cjs.entry.js +1 -1
  11. package/dist/cjs/ez-chart.cjs.entry.js +1 -1
  12. package/dist/cjs/ez-check.cjs.entry.js +1 -1
  13. package/dist/cjs/ez-chip.cjs.entry.js +1 -1
  14. package/dist/cjs/ez-classic-combo-box.cjs.entry.js +1 -1
  15. package/dist/cjs/ez-classic-input.cjs.entry.js +1 -1
  16. package/dist/cjs/ez-classic-text-area.cjs.entry.js +1 -1
  17. package/dist/cjs/ez-collapsible-box.cjs.entry.js +1 -1
  18. package/dist/cjs/ez-combo-box-list_4.cjs.entry.js +3 -3
  19. package/dist/cjs/ez-combo-box.cjs.entry.js +1 -1
  20. package/dist/cjs/ez-date-input.cjs.entry.js +1 -1
  21. package/dist/cjs/ez-date-time-input.cjs.entry.js +1 -1
  22. package/dist/cjs/ez-dialog.cjs.entry.js +2 -2
  23. package/dist/cjs/ez-double-list.cjs.entry.js +1 -1
  24. package/dist/cjs/ez-dropdown.cjs.entry.js +1 -1
  25. package/dist/cjs/ez-empty-card.cjs.entry.js +1 -1
  26. package/dist/cjs/ez-file-item.cjs.entry.js +1 -1
  27. package/dist/cjs/ez-filter-input.cjs.entry.js +1 -1
  28. package/dist/cjs/ez-form-view.cjs.entry.js +1 -1
  29. package/dist/cjs/ez-form.cjs.entry.js +111 -39
  30. package/dist/cjs/ez-grid-view.cjs.entry.js +1 -1
  31. package/dist/cjs/ez-grid.cjs.entry.js +4 -4
  32. package/dist/cjs/ez-guide-navigator.cjs.entry.js +1 -1
  33. package/dist/cjs/ez-icon.cjs.entry.js +1 -1
  34. package/dist/cjs/ez-link-builder_6.cjs.entry.js +1 -1
  35. package/dist/cjs/ez-list-item.cjs.entry.js +1 -1
  36. package/dist/cjs/ez-list.cjs.entry.js +1 -1
  37. package/dist/cjs/ez-loading-bar.cjs.entry.js +1 -1
  38. package/dist/cjs/ez-modal-container.cjs.entry.js +16 -17
  39. package/dist/cjs/ez-modal.cjs.entry.js +1 -1
  40. package/dist/cjs/ez-multi-selection-list.cjs.entry.js +1 -1
  41. package/dist/cjs/ez-number-input.cjs.entry.js +1 -1
  42. package/dist/cjs/ez-pagination.cjs.entry.js +1 -1
  43. package/dist/cjs/ez-popover-core.cjs.entry.js +1 -1
  44. package/dist/cjs/ez-popover-plus_3.cjs.entry.js +1 -1
  45. package/dist/cjs/ez-popover.cjs.entry.js +1 -1
  46. package/dist/cjs/ez-popup.cjs.entry.js +10 -7
  47. package/dist/cjs/ez-progress-bar.cjs.entry.js +1 -1
  48. package/dist/cjs/ez-radio-button.cjs.entry.js +1 -1
  49. package/dist/cjs/ez-rich-toolbar-item.cjs.entry.js +1 -1
  50. package/dist/cjs/ez-scroller_2.cjs.entry.js +1 -1
  51. package/dist/cjs/ez-search-plus.cjs.entry.js +1 -1
  52. package/dist/cjs/ez-search-result-list.cjs.entry.js +1 -1
  53. package/dist/cjs/ez-search.cjs.entry.js +1 -1
  54. package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +1 -1
  55. package/dist/cjs/ez-skeleton.cjs.entry.js +1 -1
  56. package/dist/cjs/ez-sortable-list.cjs.entry.js +1 -1
  57. package/dist/cjs/ez-spinner.cjs.entry.js +1 -1
  58. package/dist/cjs/ez-split-button.cjs.entry.js +1 -1
  59. package/dist/cjs/ez-split-item.cjs.entry.js +1 -1
  60. package/dist/cjs/ez-split-panel.cjs.entry.js +1 -1
  61. package/dist/cjs/ez-tabselector.cjs.entry.js +1 -1
  62. package/dist/cjs/ez-tag-input.cjs.entry.js +1 -1
  63. package/dist/cjs/ez-tag.cjs.entry.js +1 -1
  64. package/dist/cjs/ez-text-area.cjs.entry.js +1 -1
  65. package/dist/cjs/ez-text-input.cjs.entry.js +1 -1
  66. package/dist/cjs/ez-tile-medium.cjs.entry.js +1 -1
  67. package/dist/cjs/ez-tile.cjs.entry.js +1 -1
  68. package/dist/cjs/ez-time-input.cjs.entry.js +1 -1
  69. package/dist/cjs/ez-toast.cjs.entry.js +1 -1
  70. package/dist/cjs/ez-tooltip.cjs.entry.js +1 -1
  71. package/dist/cjs/ez-tree.cjs.entry.js +155 -8
  72. package/dist/cjs/ez-underface.cjs.entry.js +1 -1
  73. package/dist/cjs/ez-upload.cjs.entry.js +1 -1
  74. package/dist/cjs/ez-view-stack.cjs.entry.js +1 -1
  75. package/dist/cjs/ezui.cjs.js +2 -2
  76. package/dist/cjs/filter-column.cjs.entry.js +1 -1
  77. package/dist/cjs/{index-a7b0c73d.js → index-9e5554cb.js} +3 -0
  78. package/dist/cjs/loader.cjs.js +2 -2
  79. package/dist/cjs/{purify-47a2f27b.js → purify-453a8028.js} +35 -12
  80. package/dist/cjs/{search-column-9aa090ec.js → search-column-540f3925.js} +2 -2
  81. package/dist/collection/components/ez-dialog/ez-dialog.css +6 -1
  82. package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +1 -1
  83. package/dist/collection/components/ez-modal-container/ez-modal-container.css +4 -9
  84. package/dist/collection/components/ez-modal-container/ez-modal-container.js +32 -15
  85. package/dist/collection/components/ez-popup/ez-popup.css +3 -2
  86. package/dist/collection/components/ez-popup/ez-popup.js +9 -6
  87. package/dist/collection/components/ez-tree/ez-tree.css +4 -0
  88. package/dist/collection/components/ez-tree/ez-tree.js +185 -6
  89. package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +4 -1
  90. package/dist/collection/components/ez-tree/types/Node.js +7 -0
  91. package/dist/collection/components/ez-tree/types/Tree.js +19 -0
  92. package/dist/collection/components/ez-tree/types/UpdateItemConfig.js +1 -0
  93. package/dist/collection/utils/form/DataBinder.js +1 -1
  94. package/dist/collection/utils/form/FormMetadata.js +109 -37
  95. package/dist/custom-elements/index.js +327 -83
  96. package/dist/esm/ez-actions-button.entry.js +1 -1
  97. package/dist/esm/ez-alert-list.entry.js +1 -1
  98. package/dist/esm/ez-alert.entry.js +1 -1
  99. package/dist/esm/ez-application.entry.js +1 -1
  100. package/dist/esm/ez-avatar.entry.js +1 -1
  101. package/dist/esm/ez-badge.entry.js +1 -1
  102. package/dist/esm/ez-breadcrumb.entry.js +1 -1
  103. package/dist/esm/ez-button.entry.js +1 -1
  104. package/dist/esm/ez-calendar.entry.js +1 -1
  105. package/dist/esm/ez-card-item.entry.js +1 -1
  106. package/dist/esm/ez-chart.entry.js +1 -1
  107. package/dist/esm/ez-check.entry.js +1 -1
  108. package/dist/esm/ez-chip.entry.js +1 -1
  109. package/dist/esm/ez-classic-combo-box.entry.js +1 -1
  110. package/dist/esm/ez-classic-input.entry.js +1 -1
  111. package/dist/esm/ez-classic-text-area.entry.js +1 -1
  112. package/dist/esm/ez-collapsible-box.entry.js +1 -1
  113. package/dist/esm/ez-combo-box-list_4.entry.js +3 -3
  114. package/dist/esm/ez-combo-box.entry.js +1 -1
  115. package/dist/esm/ez-date-input.entry.js +1 -1
  116. package/dist/esm/ez-date-time-input.entry.js +1 -1
  117. package/dist/esm/ez-dialog.entry.js +2 -2
  118. package/dist/esm/ez-double-list.entry.js +1 -1
  119. package/dist/esm/ez-dropdown.entry.js +1 -1
  120. package/dist/esm/ez-empty-card.entry.js +1 -1
  121. package/dist/esm/ez-file-item.entry.js +1 -1
  122. package/dist/esm/ez-filter-input.entry.js +1 -1
  123. package/dist/esm/ez-form-view.entry.js +1 -1
  124. package/dist/esm/ez-form.entry.js +111 -39
  125. package/dist/esm/ez-grid-view.entry.js +1 -1
  126. package/dist/esm/ez-grid.entry.js +4 -4
  127. package/dist/esm/ez-guide-navigator.entry.js +1 -1
  128. package/dist/esm/ez-icon.entry.js +1 -1
  129. package/dist/esm/ez-link-builder_6.entry.js +1 -1
  130. package/dist/esm/ez-list-item.entry.js +1 -1
  131. package/dist/esm/ez-list.entry.js +1 -1
  132. package/dist/esm/ez-loading-bar.entry.js +1 -1
  133. package/dist/esm/ez-modal-container.entry.js +16 -17
  134. package/dist/esm/ez-modal.entry.js +1 -1
  135. package/dist/esm/ez-multi-selection-list.entry.js +1 -1
  136. package/dist/esm/ez-number-input.entry.js +1 -1
  137. package/dist/esm/ez-pagination.entry.js +1 -1
  138. package/dist/esm/ez-popover-core.entry.js +1 -1
  139. package/dist/esm/ez-popover-plus_3.entry.js +1 -1
  140. package/dist/esm/ez-popover.entry.js +1 -1
  141. package/dist/esm/ez-popup.entry.js +10 -7
  142. package/dist/esm/ez-progress-bar.entry.js +1 -1
  143. package/dist/esm/ez-radio-button.entry.js +1 -1
  144. package/dist/esm/ez-rich-toolbar-item.entry.js +1 -1
  145. package/dist/esm/ez-scroller_2.entry.js +1 -1
  146. package/dist/esm/ez-search-plus.entry.js +1 -1
  147. package/dist/esm/ez-search-result-list.entry.js +1 -1
  148. package/dist/esm/ez-search.entry.js +1 -1
  149. package/dist/esm/ez-sidebar-navigator.entry.js +1 -1
  150. package/dist/esm/ez-skeleton.entry.js +1 -1
  151. package/dist/esm/ez-sortable-list.entry.js +1 -1
  152. package/dist/esm/ez-spinner.entry.js +1 -1
  153. package/dist/esm/ez-split-button.entry.js +1 -1
  154. package/dist/esm/ez-split-item.entry.js +1 -1
  155. package/dist/esm/ez-split-panel.entry.js +1 -1
  156. package/dist/esm/ez-tabselector.entry.js +1 -1
  157. package/dist/esm/ez-tag-input.entry.js +1 -1
  158. package/dist/esm/ez-tag.entry.js +1 -1
  159. package/dist/esm/ez-text-area.entry.js +1 -1
  160. package/dist/esm/ez-text-input.entry.js +1 -1
  161. package/dist/esm/ez-tile-medium.entry.js +1 -1
  162. package/dist/esm/ez-tile.entry.js +1 -1
  163. package/dist/esm/ez-time-input.entry.js +1 -1
  164. package/dist/esm/ez-toast.entry.js +1 -1
  165. package/dist/esm/ez-tooltip.entry.js +1 -1
  166. package/dist/esm/ez-tree.entry.js +155 -8
  167. package/dist/esm/ez-underface.entry.js +1 -1
  168. package/dist/esm/ez-upload.entry.js +1 -1
  169. package/dist/esm/ez-view-stack.entry.js +1 -1
  170. package/dist/esm/ezui.js +3 -3
  171. package/dist/esm/filter-column.entry.js +1 -1
  172. package/dist/esm/{index-baa5e267.js → index-5a720e56.js} +3 -1
  173. package/dist/esm/loader.js +3 -3
  174. package/dist/esm/{purify-dc6814bf.js → purify-003c47e2.js} +35 -12
  175. package/dist/esm/{search-column-83562552.js → search-column-4e827a95.js} +2 -2
  176. package/dist/ezui/ezui.esm.js +1 -1
  177. package/dist/ezui/{p-e75c7a23.entry.js → p-000159dc.entry.js} +1 -1
  178. package/dist/ezui/{p-7f8c1fce.entry.js → p-0391f255.entry.js} +1 -1
  179. package/dist/ezui/{p-93e1c917.entry.js → p-05e68ab3.entry.js} +1 -1
  180. package/dist/ezui/{p-1730ee24.entry.js → p-06ca9d9a.entry.js} +1 -1
  181. package/dist/ezui/{p-288631d1.entry.js → p-06f1b8e4.entry.js} +1 -1
  182. package/dist/ezui/{p-6d596a5a.entry.js → p-0b531233.entry.js} +1 -1
  183. package/dist/ezui/{p-5ab08b60.entry.js → p-129fea99.entry.js} +1 -1
  184. package/dist/ezui/{p-1bfef8e5.entry.js → p-13949839.entry.js} +1 -1
  185. package/dist/ezui/p-14d6aeb8.entry.js +1 -0
  186. package/dist/ezui/{p-2528e988.entry.js → p-169d460d.entry.js} +1 -1
  187. package/dist/ezui/{p-6f77a359.entry.js → p-1723f728.entry.js} +1 -1
  188. package/dist/ezui/{p-0c0eb410.entry.js → p-1d846a77.entry.js} +1 -1
  189. package/dist/ezui/{p-8bb3aeb0.entry.js → p-1d8ea7d2.entry.js} +1 -1
  190. package/dist/ezui/p-231cf227.entry.js +1 -0
  191. package/dist/ezui/{p-1266fe78.entry.js → p-26077a43.entry.js} +1 -1
  192. package/dist/ezui/{p-3fe05d6b.entry.js → p-2d803ee6.entry.js} +1 -1
  193. package/dist/ezui/{p-6f119d5f.entry.js → p-30513f10.entry.js} +1 -1
  194. package/dist/ezui/{p-2a70f094.entry.js → p-3136f418.entry.js} +1 -1
  195. package/dist/ezui/{p-ef8bd3e8.entry.js → p-35e3715c.entry.js} +1 -1
  196. package/dist/ezui/{p-1adf7139.entry.js → p-3b5bafe4.entry.js} +1 -1
  197. package/dist/ezui/p-3be7d8d8.entry.js +1 -0
  198. package/dist/ezui/p-4296e9f9.js +1 -0
  199. package/dist/ezui/{p-a7eab406.entry.js → p-43106b79.entry.js} +1 -1
  200. package/dist/ezui/{p-fa6732f2.entry.js → p-44b39e81.entry.js} +1 -1
  201. package/dist/ezui/{p-e46a4d06.entry.js → p-4815ddbf.entry.js} +1 -1
  202. package/dist/ezui/{p-d0e6911e.entry.js → p-4a530109.entry.js} +1 -1
  203. package/dist/ezui/{p-4d30b703.entry.js → p-4a876b8b.entry.js} +1 -1
  204. package/dist/ezui/{p-1cde96f9.entry.js → p-4cc79a52.entry.js} +1 -1
  205. package/dist/ezui/{p-e882635e.entry.js → p-4dc07e01.entry.js} +1 -1
  206. package/dist/ezui/{p-6369a0cd.entry.js → p-51e34317.entry.js} +1 -1
  207. package/dist/ezui/{p-eee3c7ff.entry.js → p-53412766.entry.js} +1 -1
  208. package/dist/ezui/{p-8dc267ff.entry.js → p-53e773a4.entry.js} +1 -1
  209. package/dist/ezui/{p-48effc69.entry.js → p-570cf58a.entry.js} +1 -1
  210. package/dist/ezui/p-580f5fb8.entry.js +1 -0
  211. package/dist/ezui/{p-0b333f09.entry.js → p-5d1adf13.entry.js} +1 -1
  212. package/dist/ezui/{p-dee18824.entry.js → p-5f4a66ec.entry.js} +1 -1
  213. package/dist/ezui/{p-1f50fa05.entry.js → p-6b51c9cc.entry.js} +1 -1
  214. package/dist/ezui/p-6ec40dec.entry.js +1 -0
  215. package/dist/ezui/{p-5ed81457.entry.js → p-6fc26622.entry.js} +1 -1
  216. package/dist/ezui/{p-e27d7dc2.entry.js → p-74f08ec9.entry.js} +1 -1
  217. package/dist/ezui/{p-d6f50207.entry.js → p-770cf2b8.entry.js} +1 -1
  218. package/dist/ezui/{p-124699e0.entry.js → p-77e738d5.entry.js} +1 -1
  219. package/dist/ezui/{p-91c9d50e.entry.js → p-78e975b4.entry.js} +1 -1
  220. package/dist/ezui/{p-59a98e31.entry.js → p-78f18973.entry.js} +1 -1
  221. package/dist/ezui/{p-957d08cd.entry.js → p-7fdf1f2b.entry.js} +1 -1
  222. package/dist/ezui/{p-1e7a8633.entry.js → p-81461d2f.entry.js} +1 -1
  223. package/dist/ezui/{p-8df1ca33.entry.js → p-82fa4b09.entry.js} +1 -1
  224. package/dist/ezui/{p-59092a66.entry.js → p-8aa7d60b.entry.js} +1 -1
  225. package/dist/ezui/{p-a3075f52.entry.js → p-9bcfa689.entry.js} +1 -1
  226. package/dist/ezui/{p-ba7e908a.entry.js → p-a48979a8.entry.js} +1 -1
  227. package/dist/ezui/{p-e8c6c973.entry.js → p-a859ea2e.entry.js} +1 -1
  228. package/dist/ezui/{p-d6742c1e.entry.js → p-a9432878.entry.js} +1 -1
  229. package/dist/ezui/{p-e8c57463.entry.js → p-b21efe83.entry.js} +1 -1
  230. package/dist/ezui/{p-6a9a20a0.entry.js → p-b3530711.entry.js} +1 -1
  231. package/dist/ezui/{p-4e1df756.entry.js → p-b5b33be8.entry.js} +1 -1
  232. package/dist/ezui/{p-2ba2d792.entry.js → p-b77a0ce4.entry.js} +1 -1
  233. package/dist/ezui/{p-7fe97ef5.entry.js → p-b7c6ce20.entry.js} +1 -1
  234. package/dist/ezui/p-b81d19c7.entry.js +1 -0
  235. package/dist/ezui/p-bb409cba.js +3 -0
  236. package/dist/ezui/p-bb7cf512.entry.js +1 -0
  237. package/dist/ezui/{p-a0bf1fc7.entry.js → p-bc693db6.entry.js} +1 -1
  238. package/dist/ezui/{p-9f5fa3f9.entry.js → p-c2b20f78.entry.js} +1 -1
  239. package/dist/ezui/{p-a401041c.entry.js → p-c73964f8.entry.js} +1 -1
  240. package/dist/ezui/{p-6020f3d5.entry.js → p-c754774e.entry.js} +1 -1
  241. package/dist/ezui/{p-d2645bdf.entry.js → p-c96e536d.entry.js} +1 -1
  242. package/dist/ezui/{p-d66bf34e.entry.js → p-cb4f1ee9.entry.js} +2 -2
  243. package/dist/ezui/{p-20c024f7.entry.js → p-cf33bc48.entry.js} +1 -1
  244. package/dist/ezui/{p-0e49c0ff.entry.js → p-cf4e2a35.entry.js} +1 -1
  245. package/dist/ezui/p-cff2434d.entry.js +1 -0
  246. package/dist/ezui/{p-9b2e6438.entry.js → p-d3779449.entry.js} +1 -1
  247. package/dist/ezui/{p-a80b1287.entry.js → p-dfca5946.entry.js} +1 -1
  248. package/dist/ezui/{p-7f792043.entry.js → p-e195eaad.entry.js} +1 -1
  249. package/dist/ezui/{p-79277e43.entry.js → p-e2eb894a.entry.js} +1 -1
  250. package/dist/ezui/{p-23a36bb6.js → p-e4c7eb39.js} +2 -2
  251. package/dist/ezui/{p-e7a7c594.entry.js → p-e9b409c1.entry.js} +1 -1
  252. package/dist/ezui/{p-e99cbb51.entry.js → p-f17e7182.entry.js} +1 -1
  253. package/dist/ezui/{p-a3ada561.entry.js → p-f26b97e9.entry.js} +1 -1
  254. package/dist/ezui/{p-411c0222.entry.js → p-f7ca8634.entry.js} +1 -1
  255. package/dist/types/components/ez-modal-container/ez-modal-container.d.ts +6 -2
  256. package/dist/types/components/ez-popup/ez-popup.d.ts +1 -0
  257. package/dist/types/components/ez-tree/ez-tree.d.ts +20 -1
  258. package/dist/types/components/ez-tree/types/Node.d.ts +1 -0
  259. package/dist/types/components/ez-tree/types/Tree.d.ts +1 -0
  260. package/dist/types/components/ez-tree/types/UpdateItemConfig.d.ts +4 -0
  261. package/dist/types/components.d.ts +26 -1
  262. package/dist/types/utils/form/FormMetadata.d.ts +2 -1
  263. package/dist/types/utils/form/interfaces/IFormSheetMetadata.d.ts +3 -0
  264. package/dist/types/utils/form/interfaces/ITabConfig.d.ts +3 -0
  265. package/package.json +1 -1
  266. package/dist/ezui/p-02f6e3b0.entry.js +0 -1
  267. package/dist/ezui/p-191cfbc8.entry.js +0 -1
  268. package/dist/ezui/p-228a4d2f.js +0 -3
  269. package/dist/ezui/p-2df50161.entry.js +0 -1
  270. package/dist/ezui/p-4c4f0850.entry.js +0 -1
  271. package/dist/ezui/p-623161e2.js +0 -1
  272. package/dist/ezui/p-bc2f844e.entry.js +0 -1
  273. package/dist/ezui/p-bd6146c5.entry.js +0 -1
  274. package/dist/ezui/p-c943f7c4.entry.js +0 -1
  275. package/dist/ezui/p-d8cc640d.entry.js +0 -1
@@ -7,11 +7,18 @@ import initI18n from '../../utils/i18n';
7
7
  export class EzTree {
8
8
  constructor() {
9
9
  this._onItemClick = (item) => {
10
- this._onIconClick(item);
10
+ if (!this.selectable) {
11
+ this.openClose(item);
12
+ return;
13
+ }
14
+ if (this.value && this.value.id === item.id) {
15
+ this.value = undefined;
16
+ return;
17
+ }
18
+ this.value = item;
11
19
  };
12
20
  this._onIconClick = (item) => {
13
21
  this.openClose(item);
14
- this.value = item;
15
22
  };
16
23
  this._tree = new Tree(() => forceUpdate(this));
17
24
  this._waintingForLoad = undefined;
@@ -21,6 +28,7 @@ export class EzTree {
21
28
  this.iconResolver = defaultIconResolver;
22
29
  this.tooltipResolver = undefined;
23
30
  this.enableHierarchicalFilter = true;
31
+ this.selectable = true;
24
32
  }
25
33
  /**
26
34
  * Efetua a seleção de um item.
@@ -71,10 +79,14 @@ export class EzTree {
71
79
  parentId = (_a = this.value) === null || _a === void 0 ? void 0 : _a.id;
72
80
  }
73
81
  this._tree.addChildAt(parentId, item);
82
+ this.addItemInIndexedList(parentId, item);
74
83
  const node = this._tree.getNode(parentId);
75
84
  if (node) {
76
85
  node.item.expanded = true;
77
86
  }
87
+ else {
88
+ this.collapseAll();
89
+ }
78
90
  }
79
91
  /**
80
92
  * Efetua a seleção de um item.
@@ -97,12 +109,48 @@ export class EzTree {
97
109
  /**
98
110
  * Atualiza um item
99
111
  */
100
- async updateItem(item) {
101
- var _a;
102
- this._tree.updateItem(item);
112
+ async updateItem(item, config) {
113
+ var _a, _b, _c;
114
+ if (Array.isArray(item)) {
115
+ item.forEach(i => this.updateItem(i, config));
116
+ return;
117
+ }
118
+ if (config === null || config === void 0 ? void 0 : config.updatedBySelectedId) {
119
+ Object.assign(item, { id: this.selectedId });
120
+ }
121
+ this._tree.updateItem((config === null || config === void 0 ? void 0 : config.forceDefaultValues) ? this.applyDefaultValues(item) : item);
122
+ this.updateItemInIndexedList(item, config === null || config === void 0 ? void 0 : config.forceDefaultValues);
103
123
  const node = (_a = this._tree) === null || _a === void 0 ? void 0 : _a.getNode(this.selectedId);
104
124
  if (node == undefined) {
105
125
  this.value = this._visibleItems ? this._visibleItems[0] : undefined;
126
+ this._tree.collapseAll();
127
+ }
128
+ if (((_b = this.value) === null || _b === void 0 ? void 0 : _b.id) === item.id) {
129
+ this.value = item;
130
+ this.ezChange.emit(this.value);
131
+ return;
132
+ }
133
+ const childSelected = this.getItemById((_c = this.value) === null || _c === void 0 ? void 0 : _c.id, [item]);
134
+ if (childSelected) {
135
+ this.value = childSelected;
136
+ this.ezChange.emit(this.value);
137
+ }
138
+ }
139
+ /**
140
+ * Remove um item da árvore pelo seu ID.
141
+ * Se o item removido estiver selecionado, a seleção será limpa.
142
+ */
143
+ async removeItem(id) {
144
+ var _a;
145
+ id = id !== null && id !== void 0 ? id : this.selectedId;
146
+ if (!id) {
147
+ return;
148
+ }
149
+ this._tree.removeItem(id);
150
+ this.removeItemFromIndexedList(id);
151
+ this.ezRemoveItem.emit(id);
152
+ if (((_a = this.value) === null || _a === void 0 ? void 0 : _a.id) === id) {
153
+ this.value = undefined;
106
154
  }
107
155
  }
108
156
  /**
@@ -190,6 +238,75 @@ export class EzTree {
190
238
  event.preventDefault();
191
239
  }
192
240
  }
241
+ getItemById(id, items) {
242
+ for (const treeItem of items) {
243
+ if (treeItem.id === id) {
244
+ return treeItem;
245
+ }
246
+ else if (treeItem.children && Array.isArray(treeItem.children)) {
247
+ const itemFound = this.getItemById(id, treeItem.children);
248
+ if (itemFound) {
249
+ return itemFound;
250
+ }
251
+ }
252
+ }
253
+ return undefined;
254
+ }
255
+ addItemInIndexedList(parentId, item, items) {
256
+ var _a, _b;
257
+ items = (_a = items !== null && items !== void 0 ? items : this.items) !== null && _a !== void 0 ? _a : [];
258
+ if (!parentId) {
259
+ items.push(item);
260
+ }
261
+ const itemFound = this.getItemById(parentId, items);
262
+ itemFound.children = ((_b = itemFound.children) !== null && _b !== void 0 ? _b : []);
263
+ itemFound.children.push(item);
264
+ itemFound.childrenCount = itemFound.children.length;
265
+ }
266
+ applyDefaultValues(item) {
267
+ if (item.disabled === undefined) {
268
+ item.disabled = false;
269
+ }
270
+ if (item.expanded === undefined) {
271
+ item.expanded = false;
272
+ }
273
+ return item;
274
+ }
275
+ updateItemInIndexedList(item, forceDefaultValues = false) {
276
+ if (!item || !this.items) {
277
+ return;
278
+ }
279
+ const itemFound = this.getItemById(item.id, this.items);
280
+ if (itemFound) {
281
+ Object.assign(itemFound, forceDefaultValues ? this.applyDefaultValues(item) : item);
282
+ }
283
+ }
284
+ removeItemFromIndexedList(id, items) {
285
+ var _a;
286
+ items = (_a = items !== null && items !== void 0 ? items : this.items) !== null && _a !== void 0 ? _a : [];
287
+ if (!id) {
288
+ return false;
289
+ }
290
+ const rootIndex = items.findIndex(item => item.id === id);
291
+ if (rootIndex !== -1) {
292
+ items.splice(rootIndex, 1);
293
+ return true;
294
+ }
295
+ for (const treeItem of items) {
296
+ if (treeItem.children && Array.isArray(treeItem.children)) {
297
+ const childIndex = treeItem.children.findIndex(child => child.id === id);
298
+ if (childIndex !== -1) {
299
+ treeItem.children.splice(childIndex, 1);
300
+ treeItem.childrenCount = treeItem.children.length;
301
+ return true;
302
+ }
303
+ if (this.removeItemFromIndexedList(id, treeItem.children)) {
304
+ return true;
305
+ }
306
+ }
307
+ }
308
+ return false;
309
+ }
193
310
  getItemPathAttrs({ id, label }) {
194
311
  return { id, label };
195
312
  }
@@ -427,6 +544,24 @@ export class EzTree {
427
544
  "attribute": "enable-hierarchical-filter",
428
545
  "reflect": false,
429
546
  "defaultValue": "true"
547
+ },
548
+ "selectable": {
549
+ "type": "boolean",
550
+ "mutable": false,
551
+ "complexType": {
552
+ "original": "boolean",
553
+ "resolved": "boolean",
554
+ "references": {}
555
+ },
556
+ "required": false,
557
+ "optional": false,
558
+ "docs": {
559
+ "tags": [],
560
+ "text": "Define se os itens da \u00E1rvore s\u00E3o selecion\u00E1veis."
561
+ },
562
+ "attribute": "selectable",
563
+ "reflect": false,
564
+ "defaultValue": "true"
430
565
  }
431
566
  };
432
567
  }
@@ -497,6 +632,21 @@ export class EzTree {
497
632
  }
498
633
  }
499
634
  }
635
+ }, {
636
+ "method": "ezRemoveItem",
637
+ "name": "ezRemoveItem",
638
+ "bubbles": true,
639
+ "cancelable": true,
640
+ "composed": true,
641
+ "docs": {
642
+ "tags": [],
643
+ "text": "Emitido ao remover um item da \u00E1rvore."
644
+ },
645
+ "complexType": {
646
+ "original": "string",
647
+ "resolved": "string",
648
+ "references": {}
649
+ }
500
650
  }];
501
651
  }
502
652
  static get methods() {
@@ -662,10 +812,13 @@ export class EzTree {
662
812
  },
663
813
  "updateItem": {
664
814
  "complexType": {
665
- "signature": "(item: ITreeItem) => Promise<void>",
815
+ "signature": "(item: ITreeItem | ITreeItem[], config?: Partial<UpdateItemConfig>) => Promise<void>",
666
816
  "parameters": [{
667
817
  "tags": [],
668
818
  "text": ""
819
+ }, {
820
+ "tags": [],
821
+ "text": ""
669
822
  }],
670
823
  "references": {
671
824
  "Promise": {
@@ -674,6 +827,13 @@ export class EzTree {
674
827
  "ITreeItem": {
675
828
  "location": "import",
676
829
  "path": "./interfaces/ITreeItem"
830
+ },
831
+ "Partial": {
832
+ "location": "global"
833
+ },
834
+ "UpdateItemConfig": {
835
+ "location": "import",
836
+ "path": "./types/UpdateItemConfig"
677
837
  }
678
838
  },
679
839
  "return": "Promise<void>"
@@ -683,6 +843,25 @@ export class EzTree {
683
843
  "tags": []
684
844
  }
685
845
  },
846
+ "removeItem": {
847
+ "complexType": {
848
+ "signature": "(id?: string) => Promise<void>",
849
+ "parameters": [{
850
+ "tags": [],
851
+ "text": ""
852
+ }],
853
+ "references": {
854
+ "Promise": {
855
+ "location": "global"
856
+ }
857
+ },
858
+ "return": "Promise<void>"
859
+ },
860
+ "docs": {
861
+ "text": "Remove um item da \u00E1rvore pelo seu ID.\nSe o item removido estiver selecionado, a sele\u00E7\u00E3o ser\u00E1 limpa.",
862
+ "tags": []
863
+ }
864
+ },
686
865
  "getItem": {
687
866
  "complexType": {
688
867
  "signature": "(id: string) => Promise<ITreeItem>",
@@ -20,12 +20,15 @@ export const TreeItem = (props) => {
20
20
  iconClick(treeItem);
21
21
  }
22
22
  }
23
+ function handleIconDoubleClick(event) {
24
+ event.stopPropagation();
25
+ }
23
26
  return (h("ul", { class: level === 1 ? "first-level" : undefined }, h("li", Object.assign({ title: tooltipResolver(treeItem, !disabled, level), class: `tree-item ${treeItem.id !== selectedId ? "tree-item-error" : ""}`, onClick: () => available && itemClick(treeItem), onDblClick: () => available && itemDoubleClick(treeItem) }, {
24
27
  disabled,
25
28
  selected: treeItem.id === selectedId,
26
29
  [ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(`ezTreeItem_${treeItem.id}`)
27
30
  }), h("div", { class: "item-label-container" }, h("div", { class: "item-icon-box" }, expandable &&
28
- h("ez-icon", { id: treeItem.id, class: "item-icon", size: "small", iconName: iconResolver(treeItem, expanded, level), onClick: (event) => handleIconClick(event) })), h("label", { class: `item-label ${treeItem.bold ? "item-label--bold" : ""}` }, treeItem.label)), getBadgeElement(treeItem.id, treeItem.badge, treeItem.id === selectedId)), expanded
31
+ h("ez-icon", { id: treeItem.id, class: "item-icon", size: "small", iconName: iconResolver(treeItem, expanded, level), onClick: (event) => handleIconClick(event), onDblClick: (event) => handleIconDoubleClick(event) })), h("label", { class: `item-label ${treeItem.bold ? "item-label--bold" : ""}` }, treeItem.label)), getBadgeElement(treeItem.id, treeItem.badge, treeItem.id === selectedId)), expanded
29
32
  && node.getChildren().map(child => h(TreeItem, { selectedId: selectedId, node: child, itemClick: itemClick, iconClick: iconClick, level: level + 1, iconResolver: iconResolver, tooltipResolver: tooltipResolver, itemsList: itemsList, itemDoubleClick: itemDoubleClick }))));
30
33
  };
31
34
  function getBadgeElement(itemId, badge, isSelectedItem) {
@@ -69,6 +69,13 @@ export class Node {
69
69
  this.children.set(item.id, new Node(tree, item, this));
70
70
  }
71
71
  }
72
+ removeChild(id) {
73
+ if (this.children.has(id)) {
74
+ this.children.delete(id);
75
+ return true;
76
+ }
77
+ return false;
78
+ }
72
79
  addPlaceHolder() {
73
80
  this.children.clear();
74
81
  const id = this.item.id;
@@ -9,6 +9,8 @@ export class Tree extends Node {
9
9
  async addChildAt(parentId, item) {
10
10
  const parent = this.getNode(parentId);
11
11
  if (parent == undefined) {
12
+ this.addChild(this, item);
13
+ this._changeCallback();
12
14
  return;
13
15
  }
14
16
  parent.addChild(this, item);
@@ -72,6 +74,23 @@ export class Tree extends Node {
72
74
  }
73
75
  this._changeCallback();
74
76
  }
77
+ removeItem(id) {
78
+ if (!id) {
79
+ return;
80
+ }
81
+ const node = this.getNode(id);
82
+ if (!node) {
83
+ return;
84
+ }
85
+ if (node.parent) {
86
+ node.parent.removeChild(id);
87
+ }
88
+ else {
89
+ this.children.delete(id);
90
+ }
91
+ this._disabledValues.delete(id);
92
+ this._changeCallback();
93
+ }
75
94
  async open(path) {
76
95
  return new Promise(async (resolve) => {
77
96
  await this.walkPath(this, path, node => node.item.expanded = true);
@@ -120,7 +120,7 @@ export default class DataBinder {
120
120
  clearFieldError(fieldName) {
121
121
  var _a;
122
122
  const field = (_a = this._fields.get(fieldName)) === null || _a === void 0 ? void 0 : _a.field;
123
- if (field["errorMessage"]) {
123
+ if (field && field["errorMessage"]) {
124
124
  field["errorMessage"] = "";
125
125
  this._dataUnit.clearInvalid(this.getCurrentRecordId(), fieldName);
126
126
  }
@@ -72,28 +72,59 @@ export const buildFormConfigFromDataUnit = (dataUnit) => {
72
72
  .filter(descriptor => descriptor.visible !== false)
73
73
  .map(descriptor => { return { name: descriptor.name, defaultValue: descriptor.defaultValue }; });
74
74
  }
75
- const config = { emptyConfig: false, fields };
76
- return config;
75
+ return { emptyConfig: false, fields };
77
76
  };
78
- export const buildFormMetadata = (config, dataUnit, includeDetails = false) => {
79
- var _a, _b;
80
- if (config == undefined || (config === null || config === void 0 ? void 0 : config.emptyConfig) === true) {
81
- config = buildFormConfigFromDataUnit(dataUnit);
82
- }
83
- const sheets = new Map();
84
- const hiddenTabs = new Map();
85
- const requiredFields = [];
86
- const cleanOnCopyFields = [];
87
- const defaultValues = {};
88
- (_a = config === null || config === void 0 ? void 0 : config.tabs) === null || _a === void 0 ? void 0 : _a.forEach((tab) => {
89
- if (!hiddenTabs.has(tab.label) && tab.visible === false) {
90
- hiddenTabs.set(tab.label, tab);
77
+ function handleDetailTabs(dataUnit, config, sheets) {
78
+ const unitMD = dataUnit.metadata;
79
+ if (unitMD === undefined || unitMD.children === undefined)
80
+ return;
81
+ unitMD.children.forEach((child) => {
82
+ const tabConfig = getTabFromConfig(child.label, config);
83
+ if (tabConfig) {
84
+ sheets.set(Object.assign(tabConfig, { name: buildChildName(child), isDetail: true }), []);
85
+ return;
91
86
  }
87
+ const { label, name, fields } = buildDetailSheet(child);
88
+ sheets.set({ name, label, isDetail: true }, fields);
92
89
  });
93
- (_b = config === null || config === void 0 ? void 0 : config.fields) === null || _b === void 0 ? void 0 : _b.forEach((field) => {
90
+ }
91
+ function handleCustomTabs(customGuides, config, sheets) {
92
+ customGuides.forEach((guide) => {
93
+ const tabConfig = getTabFromConfig(guide.label, config);
94
+ const ctxProps = {};
95
+ Object.entries(guide).forEach(([key, value]) => {
96
+ if (!isReservedKey(key)) {
97
+ ctxProps[key] = value;
98
+ }
99
+ });
100
+ if (tabConfig) {
101
+ sheets.set(Object.assign(tabConfig, { name: guide.id, isCustom: true, ctxProps }), []);
102
+ return;
103
+ }
104
+ const sheet = { label: guide.label, name: guide.id, isCustom: true, visible: true, ctxProps };
105
+ sheets.set(sheet, []);
106
+ });
107
+ }
108
+ function isReservedKey(key) {
109
+ return ['id', 'label'].includes(key);
110
+ }
111
+ function parseTabToFormSheet(key, fields) {
112
+ const i18n = getI18n();
113
+ return {
114
+ label: (key.label === "__main") ? i18n("ez-form.mainTab") : key.label,
115
+ name: key.name || key.label,
116
+ isCustom: key.isCustom,
117
+ isDetail: key.isDetail,
118
+ ctxProps: key.ctxProps,
119
+ fields
120
+ };
121
+ }
122
+ function handleFields(config, sheets, hiddenTabs, dataUnit, requiredFields, cleanOnCopyFields, defaultValues) {
123
+ var _a;
124
+ (_a = config === null || config === void 0 ? void 0 : config.fields) === null || _a === void 0 ? void 0 : _a.forEach((field) => {
94
125
  var _a, _b, _c;
95
126
  if (field.visible !== false) {
96
- const tabConfig = getTabConfig(field.tab || "__main", sheets);
127
+ const tabConfig = getTabConfig(field.tab || "__main", sheets, config);
97
128
  if (hiddenTabs.has(tabConfig.label)) {
98
129
  return;
99
130
  }
@@ -129,7 +160,8 @@ export const buildFormMetadata = (config, dataUnit, includeDetails = false) => {
129
160
  defaultValue = value;
130
161
  }
131
162
  }
132
- catch (_d) { }
163
+ catch (_d) {
164
+ }
133
165
  }
134
166
  }
135
167
  defaultValues[field.name] = defaultValue;
@@ -137,42 +169,82 @@ export const buildFormMetadata = (config, dataUnit, includeDetails = false) => {
137
169
  }
138
170
  }
139
171
  });
172
+ }
173
+ export const buildFormMetadata = (config, dataUnit, includeDetails = false, customGuides) => {
174
+ var _a;
175
+ if (config == undefined || (config === null || config === void 0 ? void 0 : config.emptyConfig) === true) {
176
+ config = buildFormConfigFromDataUnit(dataUnit);
177
+ }
178
+ const sheets = new Map();
179
+ const hiddenTabs = new Map();
180
+ const requiredFields = [];
181
+ const cleanOnCopyFields = [];
182
+ const defaultValues = {};
183
+ const tabs = (_a = config === null || config === void 0 ? void 0 : config.tabs) !== null && _a !== void 0 ? _a : [];
184
+ tabs.forEach((tab) => {
185
+ if (!hiddenTabs.has(tab.label) && tab.visible === false) {
186
+ hiddenTabs.set(tab.label, tab);
187
+ }
188
+ });
189
+ handleFields(config, sheets, hiddenTabs, dataUnit, requiredFields, cleanOnCopyFields, defaultValues);
140
190
  const metadata = new FormMetadata();
141
191
  metadata.setDefaultVars(config.defaultVars);
142
192
  if (includeDetails) {
143
- const unitMD = dataUnit.metadata;
144
- if (unitMD != undefined && unitMD.children != undefined) {
145
- unitMD.children.forEach(child => {
146
- const { label, name, fields } = buildDetailSheet(child);
147
- sheets.set({ name, label }, fields);
148
- });
149
- }
193
+ handleDetailTabs(dataUnit, config, sheets);
194
+ }
195
+ if (customGuides) {
196
+ handleCustomTabs(customGuides, config, sheets);
150
197
  }
151
- const i18n = getI18n();
152
198
  Array.from(sheets.entries())
153
199
  .sort(sortTabs)
154
- .forEach(([key, fields]) => {
155
- metadata.addSheet({
156
- label: (key.label === "__main") ? i18n("ez-form.mainTab") : key.label,
157
- name: key.name || key.label,
158
- fields
159
- });
200
+ .forEach(([tab, fields]) => {
201
+ if (!hiddenTabs.has(tab.label)) {
202
+ metadata.addSheet(parseTabToFormSheet(tab, fields));
203
+ }
160
204
  });
161
205
  metadata.addRequiredFields(requiredFields);
162
206
  metadata.addCleanOnCopyFields(cleanOnCopyFields);
163
207
  metadata.addDefaultValues(defaultValues);
164
208
  return metadata;
165
209
  };
166
- const getTabConfig = (tab, sheets) => {
167
- const tabConfig = (typeof tab === "string" ? Array.from(sheets.keys()).find(t => t.label === tab) : tab);
210
+ const getTabFromConfig = (tab, config) => {
211
+ var _a;
212
+ if (!config) {
213
+ return;
214
+ }
215
+ return (_a = config.tabs) === null || _a === void 0 ? void 0 : _a.find(t => t.label === tab);
216
+ };
217
+ const getTabConfig = (tab, sheets, config) => {
218
+ if (typeof tab !== "string") {
219
+ return tab;
220
+ }
221
+ if (config) {
222
+ const tabConfig = getTabFromConfig(tab, config);
223
+ if (tabConfig) {
224
+ return tabConfig;
225
+ }
226
+ }
227
+ const tabConfig = Array.from(sheets.keys()).find(t => t.label === tab);
168
228
  return tabConfig || { label: tab, visible: true };
169
229
  };
170
- const sortTabs = (a, b) => {
171
- return a[0].label == '__main' ? -1 : (a[0].order || 10000) - (b[0].order || 10000);
230
+ function sortTabs(a, b) {
231
+ var _a, _b;
232
+ if (a[0].label === '__main' && b[0].label !== '__main') {
233
+ return -1;
234
+ }
235
+ if (a[0].label !== '__main' && b[0].label === '__main') {
236
+ return 1;
237
+ }
238
+ const aOrder = (_a = a[0].order) !== null && _a !== void 0 ? _a : Number.MAX_VALUE;
239
+ const bOrder = (_b = b[0].order) !== null && _b !== void 0 ? _b : Number.MAX_VALUE;
240
+ return aOrder - bOrder;
241
+ }
242
+ const buildChildName = (child) => {
243
+ return `child[${child.name}]`;
172
244
  };
173
245
  const buildDetailSheet = (child) => {
174
246
  return {
175
- name: `child[${child.name}]`,
247
+ name: buildChildName(child),
176
248
  label: child.label,
177
249
  fields: []
178
250
  };