@genexus/genexus-ide-ui 0.0.112 → 0.0.113

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 (306) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +1 -1
  3. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +3 -2
  15. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +17 -28
  17. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-import-from-design.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  23. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +2 -2
  25. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +6 -4
  27. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  29. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  31. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  33. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  35. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gx-ide-recent-news.cjs.entry.js +1 -1
  37. package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  39. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  41. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  42. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  43. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  44. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
  45. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js.map +1 -1
  46. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  47. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  48. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
  49. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
  50. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  51. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  52. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  53. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js.map +1 -1
  54. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  55. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  56. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  57. package/dist/cjs/gx-ide-template.cjs.entry.js.map +1 -1
  58. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
  59. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  60. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js +11 -20
  61. package/dist/cjs/gxg-buttons-container_2.cjs.entry.js.map +1 -1
  62. package/dist/cjs/gxg-ide-loader.cjs.entry.js +1 -1
  63. package/dist/cjs/gxg-ide-loader.cjs.entry.js.map +1 -1
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/collection/components/_helpers/card/card.css +4 -0
  66. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
  67. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js.map +1 -1
  68. package/dist/collection/components/_helpers/list-selector/list-selector.css +4 -0
  69. package/dist/collection/components/_helpers/status-buttons/gx-ide-status-buttons.css +0 -1
  70. package/dist/collection/components/_starting-template/template.css +4 -0
  71. package/dist/collection/components/ai-assistant/ai-assistant.css +4 -0
  72. package/dist/collection/components/bpm-application-declaration/bpm-app-declaration.css +4 -0
  73. package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +4 -0
  74. package/dist/collection/components/dashboard-home/dashboard-home.css +4 -0
  75. package/dist/collection/components/data-selector/data-selector.css +4 -0
  76. package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +36 -3
  77. package/dist/collection/components/gam-installation-settings/gam-installation-settings.js +16 -27
  78. package/dist/collection/components/gam-installation-settings/gam-installation-settings.js.map +1 -1
  79. package/dist/collection/components/gam-installation-settings/gx-ide-assets/gam-installation-settings/langs/gam-installation-settings.lang.en.json +7 -1
  80. package/dist/collection/components/import-from-design/import-from-design.css +4 -0
  81. package/dist/collection/components/kb-manager-export/kb-manager-export.css +4 -0
  82. package/dist/collection/components/kb-manager-import/kb-manager-import.css +4 -0
  83. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +4 -0
  84. package/dist/collection/components/modules/edit-module-server/edit-module-server.js +19 -1
  85. package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
  86. package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +1 -1
  87. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +8 -0
  88. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +5 -3
  89. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  90. package/dist/collection/components/new-environment/new-environment.css +4 -0
  91. package/dist/collection/components/new-kb/new-kb.css +4 -0
  92. package/dist/collection/components/new-object/new-object.css +4 -0
  93. package/dist/collection/components/object-selector/object-selector.css +4 -0
  94. package/dist/collection/components/references/references.css +4 -0
  95. package/dist/collection/components/share-kb/share-kb.css +4 -0
  96. package/dist/collection/components/start-page/recent-news.css +4 -0
  97. package/dist/collection/components/start-page/start-page.css +4 -0
  98. package/dist/collection/components/team-dev/commit/commit.css +4 -0
  99. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +4 -0
  100. package/dist/collection/components/team-dev/update/update.css +4 -0
  101. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +4 -0
  102. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +4 -0
  103. package/dist/collection/components/ww-images/ww-images.css +4 -0
  104. package/dist/components/gx-ide-ai-assistant.js +1 -1
  105. package/dist/components/gx-ide-ai-assistant.js.map +1 -1
  106. package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
  107. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  108. package/dist/components/gx-ide-card.js +1 -1
  109. package/dist/components/gx-ide-card.js.map +1 -1
  110. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  111. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  112. package/dist/components/gx-ide-dashboard-home.js +1 -1
  113. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  114. package/dist/components/gx-ide-data-selector.js +1 -1
  115. package/dist/components/gx-ide-data-selector.js.map +1 -1
  116. package/dist/components/gx-ide-edit-module-server.js +4 -2
  117. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  118. package/dist/components/gx-ide-gam-installation-settings.js +17 -28
  119. package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
  120. package/dist/components/gx-ide-import-from-design.js +1 -1
  121. package/dist/components/gx-ide-import-from-design.js.map +1 -1
  122. package/dist/components/gx-ide-kb-manager-export.js +1 -1
  123. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  124. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  125. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  126. package/dist/components/gx-ide-manage-module-references.js +6 -4
  127. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  128. package/dist/components/gx-ide-new-environment.js +1 -1
  129. package/dist/components/gx-ide-new-environment.js.map +1 -1
  130. package/dist/components/gx-ide-new-kb.js +1 -1
  131. package/dist/components/gx-ide-new-kb.js.map +1 -1
  132. package/dist/components/gx-ide-new-object.js +1 -1
  133. package/dist/components/gx-ide-new-object.js.map +1 -1
  134. package/dist/components/gx-ide-object-selector.js +1 -1
  135. package/dist/components/gx-ide-object-selector.js.map +1 -1
  136. package/dist/components/gx-ide-references.js +1 -1
  137. package/dist/components/gx-ide-references.js.map +1 -1
  138. package/dist/components/gx-ide-share-kb.js +1 -1
  139. package/dist/components/gx-ide-share-kb.js.map +1 -1
  140. package/dist/components/gx-ide-start-page.js +1 -1
  141. package/dist/components/gx-ide-start-page.js.map +1 -1
  142. package/dist/components/gx-ide-status-buttons2.js +1 -1
  143. package/dist/components/gx-ide-status-buttons2.js.map +1 -1
  144. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  145. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  146. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  147. package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
  148. package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
  149. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  150. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  151. package/dist/components/gx-ide-team-dev-update-to-revision.js.map +1 -1
  152. package/dist/components/gx-ide-team-dev-update.js +1 -1
  153. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  154. package/dist/components/gx-ide-template.js +1 -1
  155. package/dist/components/gx-ide-template.js.map +1 -1
  156. package/dist/components/gx-ide-ww-images.js +1 -1
  157. package/dist/components/gx-ide-ww-images.js.map +1 -1
  158. package/dist/components/gxg-top-state-bar2.js +12 -23
  159. package/dist/components/gxg-top-state-bar2.js.map +1 -1
  160. package/dist/components/ide-loader.js +1 -1
  161. package/dist/components/ide-loader.js.map +1 -1
  162. package/dist/components/list-selector-item.js +1 -1
  163. package/dist/components/list-selector-item.js.map +1 -1
  164. package/dist/components/list-selector.js +1 -1
  165. package/dist/components/list-selector.js.map +1 -1
  166. package/dist/components/recent-news.js +1 -1
  167. package/dist/components/recent-news.js.map +1 -1
  168. package/dist/esm/genexus-ide-ui.js +1 -1
  169. package/dist/esm/gx-ide-ai-assistant.entry.js +1 -1
  170. package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
  171. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  172. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  173. package/dist/esm/gx-ide-card.entry.js +1 -1
  174. package/dist/esm/gx-ide-card.entry.js.map +1 -1
  175. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  176. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  177. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  178. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  179. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  180. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  181. package/dist/esm/gx-ide-edit-module-server.entry.js +3 -2
  182. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  183. package/dist/esm/gx-ide-gam-installation-settings.entry.js +17 -28
  184. package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
  185. package/dist/esm/gx-ide-import-from-design.entry.js +1 -1
  186. package/dist/esm/gx-ide-import-from-design.entry.js.map +1 -1
  187. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  188. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  189. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  190. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  191. package/dist/esm/gx-ide-list-selector_2.entry.js +2 -2
  192. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  193. package/dist/esm/gx-ide-manage-module-references.entry.js +6 -4
  194. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  195. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  196. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  197. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  198. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  199. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  200. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  201. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  202. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  203. package/dist/esm/gx-ide-recent-news.entry.js +1 -1
  204. package/dist/esm/gx-ide-recent-news.entry.js.map +1 -1
  205. package/dist/esm/gx-ide-references.entry.js +1 -1
  206. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  207. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  208. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  209. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  210. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  211. package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
  212. package/dist/esm/gx-ide-status-buttons.entry.js.map +1 -1
  213. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  214. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  215. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
  216. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
  217. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  218. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  219. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  220. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js.map +1 -1
  221. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  222. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  223. package/dist/esm/gx-ide-template.entry.js +1 -1
  224. package/dist/esm/gx-ide-template.entry.js.map +1 -1
  225. package/dist/esm/gx-ide-ww-images.entry.js +1 -1
  226. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  227. package/dist/esm/gxg-buttons-container_2.entry.js +11 -20
  228. package/dist/esm/gxg-buttons-container_2.entry.js.map +1 -1
  229. package/dist/esm/gxg-ide-loader.entry.js +1 -1
  230. package/dist/esm/gxg-ide-loader.entry.js.map +1 -1
  231. package/dist/esm/loader.js +1 -1
  232. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  233. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  234. package/dist/genexus-ide-ui/gx-ide-assets/gam-installation-settings/langs/gam-installation-settings.lang.en.json +7 -1
  235. package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +1 -1
  236. package/dist/genexus-ide-ui/{p-a3dea97e.entry.js → p-096cf817.entry.js} +2 -2
  237. package/dist/genexus-ide-ui/{p-f91c432e.entry.js → p-0d1cf3ee.entry.js} +7 -4
  238. package/dist/genexus-ide-ui/p-0d1cf3ee.entry.js.map +1 -0
  239. package/dist/genexus-ide-ui/{p-033b498a.entry.js → p-0fd26289.entry.js} +2 -2
  240. package/dist/genexus-ide-ui/{p-6fdb5c12.entry.js → p-11d2e597.entry.js} +2 -2
  241. package/dist/genexus-ide-ui/{p-51e86542.entry.js → p-259c12b9.entry.js} +2 -2
  242. package/dist/genexus-ide-ui/{p-c9cceb40.entry.js → p-2e571548.entry.js} +2 -2
  243. package/dist/genexus-ide-ui/{p-decf86d4.entry.js → p-3111e5e9.entry.js} +2 -2
  244. package/dist/genexus-ide-ui/p-3111e5e9.entry.js.map +1 -0
  245. package/dist/genexus-ide-ui/{p-bc04fcaa.entry.js → p-3ae0ce60.entry.js} +2 -2
  246. package/dist/genexus-ide-ui/p-3ae0ce60.entry.js.map +1 -0
  247. package/dist/genexus-ide-ui/{p-85d71611.entry.js → p-5dd1b9ab.entry.js} +2 -2
  248. package/dist/genexus-ide-ui/{p-b2099890.entry.js → p-6719090c.entry.js} +2 -2
  249. package/dist/genexus-ide-ui/{p-bfa24a92.entry.js → p-6cb14be6.entry.js} +11 -11
  250. package/dist/genexus-ide-ui/{p-e3e704fb.entry.js → p-7ed89885.entry.js} +2 -2
  251. package/dist/genexus-ide-ui/{p-d26c67f3.entry.js → p-824b50eb.entry.js} +2 -2
  252. package/dist/genexus-ide-ui/{p-3d7a2553.entry.js → p-84c20e24.entry.js} +2 -2
  253. package/dist/genexus-ide-ui/{p-713ad05d.entry.js → p-8902fcf3.entry.js} +7 -5
  254. package/dist/genexus-ide-ui/p-8902fcf3.entry.js.map +1 -0
  255. package/dist/genexus-ide-ui/{p-40c6edbf.entry.js → p-8a27e8df.entry.js} +8 -8
  256. package/dist/genexus-ide-ui/{p-b4e526d6.entry.js → p-8eb7131d.entry.js} +2 -2
  257. package/dist/genexus-ide-ui/{p-84934392.entry.js → p-8fb3e5b3.entry.js} +54 -48
  258. package/dist/genexus-ide-ui/p-8fb3e5b3.entry.js.map +1 -0
  259. package/dist/genexus-ide-ui/{p-5fe20f47.entry.js → p-9cc3600f.entry.js} +17 -28
  260. package/dist/genexus-ide-ui/p-9cc3600f.entry.js.map +1 -0
  261. package/dist/genexus-ide-ui/{p-d3cc2f33.entry.js → p-a7e13b00.entry.js} +2 -2
  262. package/dist/genexus-ide-ui/{p-0df39b62.entry.js → p-a80f163a.entry.js} +2 -2
  263. package/dist/genexus-ide-ui/{p-292fb84f.entry.js → p-b13cafbf.entry.js} +2 -2
  264. package/dist/genexus-ide-ui/{p-87db4bb0.entry.js → p-b4294776.entry.js} +2 -2
  265. package/dist/genexus-ide-ui/{p-26527723.entry.js → p-b7ad27fe.entry.js} +2 -2
  266. package/dist/genexus-ide-ui/{p-27d0fcde.entry.js → p-bd9cbfaf.entry.js} +3 -3
  267. package/dist/genexus-ide-ui/{p-27d0fcde.entry.js.map → p-bd9cbfaf.entry.js.map} +1 -1
  268. package/dist/genexus-ide-ui/{p-a14ff83c.entry.js → p-ca3f470e.entry.js} +2 -2
  269. package/dist/genexus-ide-ui/{p-d5903356.entry.js → p-d3610b68.entry.js} +2 -2
  270. package/dist/genexus-ide-ui/{p-a7f6d8d4.entry.js → p-da209fe0.entry.js} +2 -2
  271. package/dist/genexus-ide-ui/{p-aa1e320b.entry.js → p-f067657f.entry.js} +2 -2
  272. package/dist/genexus-ide-ui/{p-df72101e.entry.js → p-f08a5cbf.entry.js} +2 -2
  273. package/dist/genexus-ide-ui/{p-c47ea5ff.entry.js → p-f35bc31e.entry.js} +2 -2
  274. package/dist/types/components/modules/edit-module-server/edit-module-server.d.ts +4 -0
  275. package/dist/types/components.d.ts +8 -0
  276. package/package.json +3 -3
  277. package/dist/genexus-ide-ui/p-5fe20f47.entry.js.map +0 -1
  278. package/dist/genexus-ide-ui/p-713ad05d.entry.js.map +0 -1
  279. package/dist/genexus-ide-ui/p-84934392.entry.js.map +0 -1
  280. package/dist/genexus-ide-ui/p-bc04fcaa.entry.js.map +0 -1
  281. package/dist/genexus-ide-ui/p-decf86d4.entry.js.map +0 -1
  282. package/dist/genexus-ide-ui/p-f91c432e.entry.js.map +0 -1
  283. /package/dist/genexus-ide-ui/{p-a3dea97e.entry.js.map → p-096cf817.entry.js.map} +0 -0
  284. /package/dist/genexus-ide-ui/{p-033b498a.entry.js.map → p-0fd26289.entry.js.map} +0 -0
  285. /package/dist/genexus-ide-ui/{p-6fdb5c12.entry.js.map → p-11d2e597.entry.js.map} +0 -0
  286. /package/dist/genexus-ide-ui/{p-51e86542.entry.js.map → p-259c12b9.entry.js.map} +0 -0
  287. /package/dist/genexus-ide-ui/{p-c9cceb40.entry.js.map → p-2e571548.entry.js.map} +0 -0
  288. /package/dist/genexus-ide-ui/{p-85d71611.entry.js.map → p-5dd1b9ab.entry.js.map} +0 -0
  289. /package/dist/genexus-ide-ui/{p-b2099890.entry.js.map → p-6719090c.entry.js.map} +0 -0
  290. /package/dist/genexus-ide-ui/{p-bfa24a92.entry.js.map → p-6cb14be6.entry.js.map} +0 -0
  291. /package/dist/genexus-ide-ui/{p-e3e704fb.entry.js.map → p-7ed89885.entry.js.map} +0 -0
  292. /package/dist/genexus-ide-ui/{p-d26c67f3.entry.js.map → p-824b50eb.entry.js.map} +0 -0
  293. /package/dist/genexus-ide-ui/{p-3d7a2553.entry.js.map → p-84c20e24.entry.js.map} +0 -0
  294. /package/dist/genexus-ide-ui/{p-40c6edbf.entry.js.map → p-8a27e8df.entry.js.map} +0 -0
  295. /package/dist/genexus-ide-ui/{p-b4e526d6.entry.js.map → p-8eb7131d.entry.js.map} +0 -0
  296. /package/dist/genexus-ide-ui/{p-d3cc2f33.entry.js.map → p-a7e13b00.entry.js.map} +0 -0
  297. /package/dist/genexus-ide-ui/{p-0df39b62.entry.js.map → p-a80f163a.entry.js.map} +0 -0
  298. /package/dist/genexus-ide-ui/{p-292fb84f.entry.js.map → p-b13cafbf.entry.js.map} +0 -0
  299. /package/dist/genexus-ide-ui/{p-87db4bb0.entry.js.map → p-b4294776.entry.js.map} +0 -0
  300. /package/dist/genexus-ide-ui/{p-26527723.entry.js.map → p-b7ad27fe.entry.js.map} +0 -0
  301. /package/dist/genexus-ide-ui/{p-a14ff83c.entry.js.map → p-ca3f470e.entry.js.map} +0 -0
  302. /package/dist/genexus-ide-ui/{p-d5903356.entry.js.map → p-d3610b68.entry.js.map} +0 -0
  303. /package/dist/genexus-ide-ui/{p-a7f6d8d4.entry.js.map → p-da209fe0.entry.js.map} +0 -0
  304. /package/dist/genexus-ide-ui/{p-aa1e320b.entry.js.map → p-f067657f.entry.js.map} +0 -0
  305. /package/dist/genexus-ide-ui/{p-df72101e.entry.js.map → p-f08a5cbf.entry.js.map} +0 -0
  306. /package/dist/genexus-ide-ui/{p-c47ea5ff.entry.js.map → p-f35bc31e.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"gx-ide-import-from-design.entry.cjs.js","mappings":"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","names":["h","renderFormItems","config","Locale","Host"],"sources":["src/components/import-from-design/import-from-design.scss?tag=gx-ide-import-from-design&encapsulation=shadow","src/components/import-from-design/import-from-design.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n@import \"~@genexus/gemini/dist/collection/globals/mixins.scss\";\n\n:host {\n}\n\n/*--- Options ---*/\n.options {\n padding: var(--gx-ide-container__padding);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n grid-template-columns: auto 1fr;\n grid-template-areas:\n \"path-url-label path-url-wrapper\"\n \"access-token-label access-token\"\n \"style-label style\"\n \"module-label module\"\n \"checkboxes-options checkboxes-options\";\n\n .path-url-label {\n grid-area: path-url-label;\n }\n .path-url-wrapper {\n grid-area: path-url-wrapper;\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-row-gap);\n\n &__buttons-container {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-container-elements-spacing);\n }\n }\n .access-token-label {\n grid-area: access-token-label;\n }\n .access-token {\n grid-area: access-token;\n }\n .style-label {\n grid-area: style-label;\n }\n .style {\n grid-area: style;\n }\n .module-label {\n grid-area: module-label;\n }\n .module {\n grid-area: module;\n }\n .checkboxes-options {\n grid-area: checkboxes-options;\n }\n\n &--hide-access-token {\n grid-template-areas:\n \"path-url-label path-url-wrapper\"\n \"style-label style\"\n \"module-label module\"\n \"checkboxes-options checkboxes-options\";\n }\n\n .checkboxes-options {\n display: flex;\n justify-content: space-between;\n gap: var(--gx-ide-grid-row-gap);\n\n &__col-right {\n display: flex;\n opacity: 1;\n transition: opacity 200ms;\n gap: var(--gx-ide-grid-row-gap);\n &--hidden {\n opacity: 0;\n }\n }\n }\n}\n\n/*--- Messages Grid ---*/\n.messages-container {\n padding: var(--gx-ide-container__padding);\n height: 100%;\n overflow-y: auto;\n @include gxg-scrollbar;\n}\n\n/*--- Main ---*/\n.main {\n display: flex;\n height: 100%;\n justify-content: center;\n overflow: auto;\n .design-tree,\n .design-tabs {\n transition: flex 200ms;\n }\n .tree-container {\n flex: 1;\n }\n .design-tabs {\n flex: 2;\n\n &--fit-images {\n img {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n }\n img {\n display: block;\n }\n }\n &--shrunken-tree {\n .tree-container {\n flex: 0.5;\n }\n .design-tabs {\n flex: 2.5;\n }\n }\n}\n.panel-tab {\n height: 100%;\n display: grid;\n grid-template-columns: 1fr 1fr;\n\n .panel-item {\n width: 100%;\n height: 100%;\n overflow: auto;\n @include gxg-scrollbar;\n font-size: var(--mer-font__size--xxs);\n line-height: normal;\n }\n}\n\n/*--- Tabs ---*/\n.tab--hidden {\n display: none;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderFormItems } from \"../../common/common\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { CheckboxInfo } from \"@genexus/gemini\";\n\nconst DESIGN_DATA_TYPE_PANELS = \"panels\";\nconst DESIGN_DATA_TYPE_STENCILS = \"stencils\";\nconst DESIGN_DATA_TYPE_IMAGES = \"images\";\nconst DESIGN_DATA_TYPE_DESIGN_SYSTEM = \"design_system\";\nconst DESIGN_DATA_TYPE_FONTS = \"fonts\";\n\n@Component({\n tag: \"gx-ide-import-from-design\",\n styleUrl: \"import-from-design.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/import-from-design\"]\n})\nexport class GxIdeImportFromDesign {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /**\n * An array that keeps track of the tree items id's (design system data type + item id) along with the content, that will be used to save and retrieve items information, in order to avoid using a callback to get items information that was already get. loadedItemsArray will be reset every time a new design is loaded.\n */\n private loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeImportFromDesignElement;\n\n /* References needed to collect data */\n private optionPathEl!: HTMLGxgFormTextElement;\n private accessTokenEl!: HTMLGxgFormTextElement;\n private optionStyleEl!: HTMLGxgComboBoxElement;\n private optionImportAsEl!: HTMLGxgFormCheckboxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private messagesList: HTMLElement;\n private panelsSelected: string[] = [];\n private stencilsSelected: string[] = [];\n // private imagesSelected: string[] = [];\n // private designSystemSelected: string[] = [];\n private fontsSelected: string[] = [];\n private codeFactoryRenderEl!: HTMLElement;\n private tokensFactoryRenderEl!: HTMLElement;\n private stylesFactoryRenderEl!: HTMLElement;\n private treeDataEl!: HTMLGxgTreeViewElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n watchDesignDataHandler(newDesignData: DesignData) {\n if (newDesignData) {\n this.designDataTreeDataModel = [\n {\n id: `parent@${DESIGN_DATA_TYPE_PANELS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.panels,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.panels.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_PANELS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.stencils,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.images,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.images.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.designSystem,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.designSystem.map(item => ({\n class: \"object tree-view-item\",\n leaf: true,\n id: `${item.id}@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_FONTS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.fonts,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_FONTS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n }\n ];\n }\n }\n\n /**\n * The model data loaded into the detail tree\n */\n @State() detailTreeModel: TreeViewItemModel[] = [];\n\n /**\n * If the design data is loading or not, for disabled actions\n */\n @State() isLoading = false;\n\n /**\n * The messages receive when the file is loading\n */\n @State() messages: MessageData[] = [];\n\n /**\n * The path/URL for load the design data\n */\n @State() path = \"\";\n\n /**\n * The file selected for load the design data\n */\n @State() selectedFile: File;\n\n /**\n * The type of the design data selected for show it visual tabs\n */\n @State() selectedDesignType: DesignType;\n\n /**\n * The item of the design data selected for show its contents on visual tabs\n */\n @State() selectedDesignItem: any;\n\n /**\n * When show or not the acces token input field\n */\n @State() showAccessToken: any;\n\n /**\n * the design data tree view data model\n */\n @State() designDataTreeDataModel: TreeViewItemModel[] = [];\n\n /**\n * Used to trigger a re-render after an item has been selected on renderDesignTree, in order to set the first tab as the active tab (setFirstActiveTab()), since calling this method inside objectsTreeSelectedItemsChangedHandler does not always work without a setTimeOut.\n */\n @State() updateTabsActiveTab: boolean = false;\n\n /**\n * If true, images will be fitted in the container\n */\n @State() fitImages = false;\n\n /**\n * If true, the left tree will be shrink and expanded to allow more space for the content\n */\n @State() shrinkTree = false;\n @Watch(\"shrinkTree\")\n watchShrinkTreeHandler(shrink: boolean) {\n if (shrink) {\n this.attachTreeMouseListeners();\n } else {\n this.removeTreeMouseListeners();\n }\n }\n\n /**\n * If true the left tree will be shrunken\n */\n @State() shrunkenTree = false;\n\n @State() treeSh = false;\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer that cancel the load operation.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * This is a function provided by the developer that init the process of import a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that return the list of types of data loaded from file or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Design System type of data.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly loadDesignSystemCallback!: LoadDesignSystemCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that return the information of an Image System type of data.\n */\n @Prop() readonly loadImageCallback!: LoadImageCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determinate if accessing to a design requires an authentication token\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n\n /**\n * This is a function provided by the developer for create an instance of a text editor.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly textEditorFactoryCallback!: TextEditorFactoryCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n disconnectedCallback() {\n this.removeTreeMouseListeners();\n }\n\n // 7.LISTENERS //\n\n @Watch(\"messages\")\n watchMessagesHandler(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n if (this.messagesList) {\n this.messagesList.scrollTop = this.messagesList.scrollHeight;\n }\n }\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private attachTreeMouseListeners = () => {\n this.treeDataEl.addEventListener(\"mouseenter\", this.treeMouseEnter);\n this.treeDataEl.addEventListener(\"mouseleave\", this.treeMouseLeave);\n };\n private removeTreeMouseListeners = () => {\n this.treeDataEl.removeEventListener(\"mouseenter\", this.treeMouseEnter);\n this.treeDataEl.removeEventListener(\"mouseleave\", this.treeMouseLeave);\n };\n private treeMouseEnter = () => {\n this.shrunkenTree = false;\n };\n private treeMouseLeave = () => {\n this.shrunkenTree = true;\n };\n\n private messageType = (message: MessageData): TextType => {\n if (message.type === \"error\") {\n return \"text-alert-error\";\n } else if (message.type === \"warning\") {\n return \"text-alert-warning\";\n } else {\n return \"text-gray\";\n }\n };\n\n private loadTreeItemCompositionModel(\n controls: DesignPanelControlData[]\n ): TreeViewItemModel[] {\n const modelList: TreeViewItemModel[] = [];\n for (const control of controls) {\n let model: TreeViewItemModel = {\n id: control.name,\n caption: control.name,\n startImgSrc: control.type,\n checkbox: false,\n expanded: true,\n leaf: control.leaf\n };\n if (control.controls) {\n model = {\n ...model,\n items: this.loadTreeItemCompositionModel(control.controls)\n };\n }\n modelList.push(model);\n }\n return modelList;\n }\n\n private objectsTreeSelectedItemsChangedHandler = async (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (event.detail.length) {\n const item = event.detail[0]?.item;\n const itemComposedId = item.id;\n const idList = itemComposedId.split(\"@\");\n const itemId = idList[0];\n const itemDesignType: DesignType = idList[1] as DesignType;\n if (itemId && itemId !== \"parent\") {\n this.selectedDesignType = itemDesignType;\n const loadedItem = this.getLoadedItem(itemComposedId);\n if (!loadedItem) {\n const designDataDetail: DesignItemDataDetail =\n await this.getDesignDataDetail(itemId, this.selectedDesignType);\n this.loadedItems.set(itemComposedId, {\n designType: this.selectedDesignType,\n designDataDetail: designDataDetail\n });\n } else {\n /* Item has been queried already. The item content exists already. */\n this.selectedDesignType = loadedItem.designType;\n this.selectedDesignItem = loadedItem.designDataDetail;\n this.getCodeFactory(loadedItem.designType);\n this.renderDetailDataTree(loadedItem.designType);\n }\n }\n }\n };\n\n private getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.loadedItems?.get(id);\n };\n\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const items = Array.from(event.detail.values());\n let currentParentId = null;\n const result: { [key: string]: string[] } = {};\n\n for (const item of items) {\n if (item.item.id.startsWith(\"parent@\")) {\n currentParentId = item.item.id.split(\"@\")[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(\"@\")[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(\"@\")[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils } = result;\n\n // this.designSystemSelected = designSystem;\n this.fontsSelected = fonts;\n // this.imagesSelected = images;\n this.panelsSelected = panels;\n this.stencilsSelected = stencils;\n };\n\n private selectFile = (): void => {\n this.optionPathEl.openFile();\n };\n\n private pathOnInputHandler = (e: any) => {\n this.path = e.detail;\n };\n\n private pathOnFileSelected = (e: any) => {\n this.selectedFile = e.detail[0];\n const fileName = e.detail[0].name;\n this.path = fileName;\n\n this.evaluateAccessToken();\n };\n\n private evaluateAccessToken = async () => {\n this.showAccessToken = await this.requiresAccessTokenCallback(\n this.optionPathEl.value\n );\n };\n\n private loadData = async (): Promise<void> => {\n this.isLoading = true;\n const source = this.selectedFile ? this.selectedFile : this.path;\n const token = this.accessTokenEl ? this.accessTokenEl.value : undefined;\n this.designData = null;\n await this.loadCallback(source, token, this.messageCallback).then(\n (designData: DesignData) => {\n // this.isLoading = false;\n this.messages = [];\n this.designData = designData;\n if (this.designData) {\n this.panelsSelected = [\n ...this.designData.panels.map(item => item.id)\n ];\n this.stencilsSelected = [\n ...this.designData.stencils.map(item => item.id)\n ];\n // this.imagesSelected = [\n // ...this.designData.images.map(item => item.id)\n // ];\n // this.designSystemSelected = [\n // ...this.designData.designSystem.map(item => item.id)\n // ];\n this.fontsSelected = [...this.designData.fonts.map(item => item.id)];\n } else {\n // There was probably an error\n this.panelsSelected = [];\n this.stencilsSelected = [];\n // this.imagesSelected = [];\n // this.designSystemSelected = [];\n this.fontsSelected = [];\n }\n }\n );\n this.isLoading = false;\n };\n\n private messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n private getDesignDataDetail = async (\n id: string,\n designType: DesignType\n ): Promise<DesignItemDataDetail> => {\n let loadFn:\n | LoadPanelDataCallback\n | LoadImageCallback\n | LoadFontCallback\n | LoadDesignSystemCallback;\n\n switch (designType) {\n case DESIGN_DATA_TYPE_IMAGES:\n loadFn = this.loadImageCallback;\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n loadFn = this.loadDesignSystemCallback;\n break;\n case DESIGN_DATA_TYPE_FONTS:\n loadFn = this.loadFontCallback;\n break;\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n loadFn = this.loadPanelDataCallback;\n break;\n }\n\n let returnedData: DesignItemDataDetail;\n await loadFn(id).then((data: DesignItemDataDetail) => {\n this.selectedDesignType = designType;\n this.selectedDesignItem = data;\n this.getCodeFactory(designType);\n this.renderDetailDataTree(designType);\n returnedData = data;\n });\n\n return returnedData;\n };\n\n private getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"html\",\n this.codeFactoryRenderEl,\n this.selectedDesignItem.code\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n this.tokensFactoryRenderEl,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n this.stylesFactoryRenderEl,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n private confirm = (): void => {\n this.confirmCallback({\n panels: this.panelsSelected,\n stencils: this.stencilsSelected,\n fonts: this.fontsSelected,\n /* images: this.imagesSelected, */\n moduleId: this.filterModuleEl?.value?.id,\n styleName: this.optionStyleEl.value,\n importAsWebPanels: this.optionImportAsEl.checked\n });\n };\n\n private cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n private fitImagesHandler = (e: CustomEvent<CheckboxInfo>) => {\n this.fitImages = e.detail.value;\n };\n\n private shrinkTreeHandler = (e: CustomEvent<CheckboxInfo>) => {\n const checked = e.detail.value;\n this.shrinkTree = checked;\n if (checked) {\n this.shrunkenTree = true;\n } else {\n this.shrunkenTree = false;\n }\n };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n private renderOptions = (): Element => {\n return (\n <div\n class={{\n \"options grid\": true,\n \"options--hide-access-token\": !this.showAccessToken\n }}\n >\n {/* #path/url label*/}\n <gxg-label class=\"path-url-label\">\n {this._componentLocale.options.path}\n </gxg-label>\n\n <div class=\"path-url-wrapper\">\n {/* #path/url input*/}\n <gxg-form-text\n value={this.path}\n onInput={this.pathOnInputHandler}\n onFileSelected={this.pathOnFileSelected}\n onBlur={this.evaluateAccessToken}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.optionPathEl = el as HTMLGxgFormTextElement)\n }\n part=\"option-path\"\n disabled={this.isLoading}\n type=\"file\"\n acceptFile={this.extensions}\n class=\"path-url\"\n placeholder={this._componentLocale.options.pathPlaceholder}\n ></gxg-form-text>\n\n <div class=\"path-url-wrapper__buttons-container\">\n {/* #select file button*/}\n <gxg-button\n id=\"button-select-file\"\n type=\"primary-text-only\"\n onClick={this.selectFile}\n part=\"gxg-button gxg-button--select-file\"\n disabled={this.isLoading}\n class=\"select-file\"\n >\n ...\n </gxg-button>\n\n {/* #load file button*/}\n <gxg-button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={this.loadData}\n part=\"gxg-button gxg-button--load\"\n disabled={this.path.length === 0 || this.isLoading}\n class=\"load-file\"\n >\n {this._componentLocale.options.btnLoad}\n </gxg-button>\n </div>\n </div>\n\n {/* #access token*/}\n {this.showAccessToken\n ? [\n <gxg-label class={{ \"access-token-label\": true }}>\n {this._componentLocale.options.accessToken}\n </gxg-label>,\n <gxg-form-text\n class={{ \"access-token\": true }}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.accessTokenEl = el as HTMLGxgFormTextElement)\n }\n part=\"access-token\"\n disabled={this.isLoading}\n ></gxg-form-text>\n ]\n : null}\n\n {/* #style label*/}\n <gxg-label class=\"style-label\">\n {this._componentLocale.options.style}\n </gxg-label>\n\n {/* #style*/}\n <gxg-combo-box\n disabled={!this.styles || this.isLoading}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.optionStyleEl = el as HTMLGxgComboBoxElement)\n }\n part=\"option-style\"\n class=\"style\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.styles ?? [])}\n </gxg-combo-box>\n\n {/* #module label*/}\n <gxg-label class=\"module-label\">\n {this._componentLocale.options.module}\n </gxg-label>\n\n {/* #module*/}\n <gx-ide-entity-selector\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module\"\n ></gx-ide-entity-selector>\n <div class=\"checkboxes-options\">\n {/* # import as web panels*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.importAs}\n class=\"import-as-web-panels\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.optionImportAsEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n ></gxg-form-checkbox>\n\n <div\n class={{\n \"checkboxes-options__col-right\": true,\n \"checkboxes-options__col-right--hidden\":\n !this.designDataTreeDataModel.length\n }}\n >\n {/* # fit images*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.fitImages}\n part=\"fit-images-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onChange={this.fitImagesHandler}\n ></gxg-form-checkbox>\n\n {/* # shrink tree*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.toggleTree}\n part=\"shrink-tree-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onChange={this.shrinkTreeHandler}\n ></gxg-form-checkbox>\n </div>\n </div>\n </div>\n );\n };\n\n private renderMessages = (): Element => {\n return this.messages.length > 0 ? (\n <div\n class=\"messages-container\"\n ref={(el: HTMLElement) => (this.messagesList = el as HTMLElement)}\n >\n {this.messages.map(message => (\n <gxg-text type={this.messageType(message)}>\n {message.type}: {message.text}\n </gxg-text>\n ))}\n </div>\n ) : null;\n };\n\n private renderDetailDataTree(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.detailTreeModel = this.loadTreeItemCompositionModel(\n this.selectedDesignItem.composition.controls\n );\n break;\n }\n }\n\n private renderMain = () => {\n if (this.designData) {\n return (\n /* #main*/\n <main\n class={{ \"main\": true, \"main--shrunken-tree\": this.shrunkenTree }}\n >\n {[this.renderDesignTree(), this.renderDesignTabs()]}\n </main>\n );\n } else if (!this.isLoading) {\n return <main class=\"main\">{this.renderNoDesignData()}</main>;\n } else {\n return this.renderMessages();\n }\n };\n\n private renderNoDesignData = () => {\n if (!this.isLoading) {\n return (\n <gxg-text\n textAlign={config.gxgMessage.common.textAlign as TextAlign}\n padding={config.gxgMessage.common.textAlign as TextPadding}\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"no-design-selected\"\n >\n {this._componentLocale.messages.noDesignSelected} <br />\n <gxg-text\n type=\"text-link-no-line\"\n onClick={this.selectFile}\n part=\"begin-by-loading-one\"\n >\n {this._componentLocale.messages.selectDesign}\n </gxg-text>\n </gxg-text>\n );\n }\n };\n\n private renderDesignTree = (): HTMLGxgTreeViewElement => {\n return (\n <div class=\"tree-container\">\n <gxg-tree-view\n part=\"data-tree\"\n class=\"design-tree\"\n id=\"data-tree\"\n treeModel={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.objectsTreeSelectedItemsChangedHandler}\n ref={el => (this.treeDataEl = el as HTMLGxgTreeViewElement)}\n ></gxg-tree-view>\n </div>\n );\n };\n\n private renderFooter = () => {\n return [\n <gxg-button\n id=\"button-ok\"\n type=\"primary-text-only\"\n onClick={this.confirm}\n part=\"gxg-button gxg-button--ok\"\n disabled={this.isLoading}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnOk}\n </gxg-button>,\n <gxg-button\n id=\"button-cancel\"\n type=\"outlined\"\n onClick={this.cancel}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n ];\n };\n\n private renderPanelTab = (): Element => {\n const renderControlsTree =\n (this.selectedDesignType === DESIGN_DATA_TYPE_PANELS ||\n this.selectedDesignType === DESIGN_DATA_TYPE_STENCILS) &&\n this.detailTreeModel.length > 0;\n\n return (\n <div\n class={{\n \"panel-tab\": true,\n \"panel-tab--controls-tree\": renderControlsTree\n }}\n part=\"data-panel-composition-container\"\n >\n {this.selectedDesignItem &&\n this.selectedDesignItem.composition &&\n this.selectedDesignItem.composition.preview ? (\n <div part=\"data-panel-composition-preview\" class=\"panel-item\">\n <img\n src={\n this.selectedDesignItem && this.selectedDesignItem.composition\n ? this.selectedDesignItem.composition.preview\n : undefined\n }\n alt=\"Preview\"\n />\n </div>\n ) : null}\n\n {renderControlsTree ? (\n <gxg-tree-view\n part=\"data-panel-composition-tree\"\n class=\"panel-item\"\n id=\"gxg-tree-panel-data\"\n treeModel={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></gxg-tree-view>\n ) : null}\n </div>\n );\n };\n\n private renderImageTab = () => {\n return (\n <div part=\"data-panel-composition-preview\" class=\"data-preview\">\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n />\n </div>\n );\n };\n\n private renderDesignTabs = (): Element => {\n return (\n <gxg-tabs\n class={{\n \"design-tabs\": true,\n \"design-tabs--fit-images\": this.fitImages\n }}\n part=\"data-tabs\"\n no-border\n noPadding\n buttonsBorderAbove\n >\n <gxg-tab-bar slot=\"tab-bar-container\">\n {/* tokens*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.tokens}\n tab=\"tokens\"\n key=\"tokens\"\n is-selected\n ></gxg-tab-button>\n {/* styles*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.styles}\n tab=\"styles\"\n key=\"styles\"\n ></gxg-tab-button>\n {/* composition*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType === DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.composition}\n tab=\"composition\"\n key=\"composition\"\n is-selected\n ></gxg-tab-button>\n {/* code*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n (this.selectedDesignType !== DESIGN_DATA_TYPE_PANELS &&\n this.selectedDesignType !== DESIGN_DATA_TYPE_STENCILS)\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.code}\n tab=\"code\"\n key=\"code\"\n ></gxg-tab-button>\n </gxg-tab-bar>\n {/* tokens */}\n <gxg-tab tab=\"tokens\" key=\"tokens\">\n <div\n ref={(el: HTMLElement) =>\n (this.tokensFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n {/* styles */}\n <gxg-tab tab=\"styles\" key=\"styles\">\n <div\n ref={(el: HTMLElement) =>\n (this.stylesFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n {/* composition */}\n <gxg-tab tab=\"composition\" key=\"composition\">\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.renderImageTab()\n : this.renderPanelTab()}\n </gxg-tab>\n {/* code */}\n <gxg-tab tab=\"code\" key=\"code\">\n <div\n ref={(el: HTMLElement) =>\n (this.codeFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n </gxg-tabs>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noContentGap\n displayBorderBottom\n part=\"options-container\"\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {this.renderOptions()}\n {this.renderMain()}\n {this.renderFooter()}\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n token: string | undefined,\n onMessage: LoadMessageCallback\n) => Promise<DesignData | undefined>;\nexport type LoadPanelDataCallback = (id: string) => Promise<DesignPanelData>;\nexport type LoadImageCallback = (id: string) => Promise<string>;\nexport type LoadFontCallback = (id: string) => Promise<string>;\nexport type LoadDesignSystemCallback = (\n id: string\n) => Promise<DesignSystemData>;\nexport type TextEditorFactoryCallback = (\n type: TextEditorType,\n parent: HTMLElement,\n text: string\n) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type RequiresAccessTokenCallback = (source: string) => Promise<boolean>;\nexport type ConfirmCallback = (data: DesignImportData) => Promise<boolean>;\nexport type CancelCallback = () => Promise<void>;\n\nexport interface MessageData {\n type: \"error\" | \"warning\" | \"info\";\n text: string;\n}\n\nexport interface DesignData {\n panels: DesignItemData[];\n stencils: DesignItemData[];\n images: DesignItemData[];\n designSystem: DesignItemData[];\n fonts: DesignItemData[];\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n}\n\nexport interface DesignPanelCompositionData {\n preview?: string;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignPanelControlData {\n name: string;\n type: string;\n leaf?: boolean;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignSystemData {\n tokens: string;\n styles: string;\n}\n\ntype DesignItemDataDetail = DesignPanelData | DesignSystemData | string;\n\nexport interface DesignImportData {\n panels: string[];\n stencils: string[];\n fonts: string[];\n moduleId: string;\n /* images: string[]; */\n styleName: string;\n importAsWebPanels: boolean;\n}\n\nexport type DesignType =\n | typeof DESIGN_DATA_TYPE_PANELS\n | typeof DESIGN_DATA_TYPE_STENCILS\n | typeof DESIGN_DATA_TYPE_IMAGES\n | typeof DESIGN_DATA_TYPE_DESIGN_SYSTEM\n | typeof DESIGN_DATA_TYPE_FONTS;\n\nexport type ItemLoadedInfo = {\n designType: DesignType;\n designDataDetail: DesignItemDataDetail;\n};\n\ntype TextEditorType = \"html\" | \"styles\" | \"tokens\";\n"],"version":3}
1
+ {"file":"gx-ide-import-from-design.entry.cjs.js","mappings":";;;;;;;;;AAAA,MAAM,mBAAmB,GAAG,w+rBAAw+rB;;AC4BpgsB,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AACzC,MAAM,yBAAyB,GAAG,UAAU,CAAC;AAC7C,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AACzC,MAAM,8BAA8B,GAAG,eAAe,CAAC;AACvD,MAAM,sBAAsB,GAAG,OAAO,CAAC;MAQ1B,qBAAqB;;;;QAqBxB,sBAAiB,GAAG,KAAK,CAAC;;;;QAI1B,gBAAW,GAAgC,IAAI,GAAG,EAAE,CAAC;QAarD,mBAAc,GAAa,EAAE,CAAC;QAC9B,qBAAgB,GAAa,EAAE,CAAC;;;QAGhC,kBAAa,GAAa,EAAE,CAAC;;QA+T7B,6BAAwB,GAAG;YACjC,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACpE,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACrE,CAAC;QACM,6BAAwB,GAAG;YACjC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACvE,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACxE,CAAC;QACM,mBAAc,GAAG;YACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,CAAC;QACM,mBAAc,GAAG;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;SAC1B,CAAC;QAEM,gBAAW,GAAG,CAAC,OAAoB;YACzC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE;gBAC5B,OAAO,kBAAkB,CAAC;aAC3B;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;gBACrC,OAAO,oBAAoB,CAAC;aAC7B;iBAAM;gBACL,OAAO,WAAW,CAAC;aACpB;SACF,CAAC;QA0BM,2CAAsC,GAAG,OAC/C,KAA+C;;YAE/C,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;gBACvB,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC;gBACnC,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACzB,MAAM,cAAc,GAAe,MAAM,CAAC,CAAC,CAAe,CAAC;gBAC3D,IAAI,MAAM,IAAI,MAAM,KAAK,QAAQ,EAAE;oBACjC,IAAI,CAAC,kBAAkB,GAAG,cAAc,CAAC;oBACzC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBACtD,IAAI,CAAC,UAAU,EAAE;wBACf,MAAM,gBAAgB,GACpB,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;wBAClE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE;4BACnC,UAAU,EAAE,IAAI,CAAC,kBAAkB;4BACnC,gBAAgB,EAAE,gBAAgB;yBACnC,CAAC,CAAC;qBACJ;yBAAM;;wBAEL,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC;wBAChD,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC,gBAAgB,CAAC;wBACtD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;wBAC3C,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;qBAClD;iBACF;aACF;SACF,CAAC;QAEM,kBAAa,GAAG,CAAC,EAAU;;YACjC,OAAO,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAC,EAAE,CAAC,CAAC;SAClC,CAAC;QAEM,0CAAqC,GAAG,CAC9C,KAA0D;YAE1D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAChD,IAAI,eAAe,GAAG,IAAI,CAAC;YAC3B,MAAM,MAAM,GAAgC,EAAE,CAAC;YAE/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;oBACtC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC7C,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;iBAC9B;qBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,eAAe,EAAE;oBAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5C,IAAI,QAAQ,KAAK,eAAe,EAAE;wBAChC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACtC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;qBAClC;iBACF;aACF;;YAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;;YAG3C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;YAE3B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;YAC7B,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;SAClC,CAAC;QAEM,eAAU,GAAG;YACnB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAC;QAEM,uBAAkB,GAAG,CAAC,CAAM;YAClC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;SACtB,CAAC;QAEM,uBAAkB,GAAG,CAAC,CAAM;YAClC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;YAErB,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC5B,CAAC;QAEM,wBAAmB,GAAG;YAC5B,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAC3D,IAAI,CAAC,YAAY,CAAC,KAAK,CACxB,CAAC;SACH,CAAC;QAEM,aAAQ,GAAG;YACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;YACjE,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;YACxE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAC/D,CAAC,UAAsB;;gBAErB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,IAAI,CAAC,cAAc,GAAG;wBACpB,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;qBAC/C,CAAC;oBACF,IAAI,CAAC,gBAAgB,GAAG;wBACtB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;qBACjD,CAAC;;;;;;;oBAOF,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;iBACtE;qBAAM;;oBAEL,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;oBACzB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;;;oBAG3B,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;iBACzB;aACF,CACF,CAAC;YACF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,CAAC;QAEM,oBAAe,GAAwB,OAAO;YACpD,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SAC7C,CAAC;QAEM,wBAAmB,GAAG,OAC5B,EAAU,EACV,UAAsB;YAEtB,IAAI,MAIwB,CAAC;YAE7B,QAAQ,UAAU;gBAChB,KAAK,uBAAuB;oBAC1B,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC;oBAChC,MAAM;gBACR,KAAK,8BAA8B;oBACjC,MAAM,GAAG,IAAI,CAAC,wBAAwB,CAAC;oBACvC,MAAM;gBACR,KAAK,sBAAsB;oBACzB,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC;oBAC/B,MAAM;gBACR,KAAK,uBAAuB,CAAC;gBAC7B,KAAK,yBAAyB;oBAC5B,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC;oBACpC,MAAM;aACT;YAED,IAAI,YAAkC,CAAC;YACvC,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAA0B;gBAC/C,IAAI,CAAC,kBAAkB,GAAG,UAAU,CAAC;gBACrC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;gBAChC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBACtC,YAAY,GAAG,IAAI,CAAC;aACrB,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC;SACrB,CAAC;QA2BM,YAAO,GAAG;;YAChB,IAAI,CAAC,eAAe,CAAC;gBACnB,MAAM,EAAE,IAAI,CAAC,cAAc;gBAC3B,QAAQ,EAAE,IAAI,CAAC,gBAAgB;gBAC/B,KAAK,EAAE,IAAI,CAAC,aAAa;;gBAEzB,QAAQ,EAAE,MAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,0CAAE,EAAE;gBACxC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;gBACnC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO;aACjD,CAAC,CAAC;SACJ,CAAC;QAEM,WAAM,GAAG;YACf,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,CAAC;QAEM,qBAAgB,GAAG,CAAC,CAA4B;YACtD,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SACjC,CAAC;QAEM,sBAAiB,GAAG,CAAC,CAA4B;YACvD,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAC1B,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;aAC1B;iBAAM;gBACL,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC3B;SACF,CAAC;;QAIM,kBAAa,GAAG;;YACtB,QACEA,iBACE,KAAK,EAAE;oBACL,cAAc,EAAE,IAAI;oBACpB,4BAA4B,EAAE,CAAC,IAAI,CAAC,eAAe;iBACpD,IAGDA,uBAAW,KAAK,EAAC,gBAAgB,IAC9B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CACzB,EAEZA,iBAAK,KAAK,EAAC,kBAAkB,IAE3BA,2BACE,KAAK,EAAE,IAAI,CAAC,IAAI,EAChB,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAChC,cAAc,EAAE,IAAI,CAAC,kBAAkB,EACvC,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAChC,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,YAAY,GAAG,EAA4B,CAAC,EAEpD,IAAI,EAAC,aAAa,EAClB,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,IAAI,EAAC,MAAM,EACX,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,KAAK,EAAC,UAAU,EAChB,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,GAC3C,EAEjBA,iBAAK,KAAK,EAAC,qCAAqC,IAE9CA,wBACE,EAAE,EAAC,oBAAoB,EACvB,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,IAAI,CAAC,UAAU,EACxB,IAAI,EAAC,oCAAoC,EACzC,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,KAAK,EAAC,aAAa,UAGR,EAGbA,wBACE,EAAE,EAAC,aAAa,EAChB,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,IAAI,EAAC,6BAA6B,EAClC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,EAClD,KAAK,EAAC,WAAW,IAEhB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAC3B,CACT,CACF,EAGL,IAAI,CAAC,eAAe;kBACjB;oBACEA,uBAAW,KAAK,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAC7C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAChC;oBACZA,2BACE,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAC/B,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,aAAa,GAAG,EAA4B,CAAC,EAErD,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAE,IAAI,CAAC,SAAS,GACT;iBAClB;kBACD,IAAI,EAGRA,uBAAW,KAAK,EAAC,aAAa,IAC3B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAC1B,EAGZA,2BACE,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,yEAGxC,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,aAAa,GAAG,EAA4B,CAAC,EAErD,IAAI,EAAC,cAAc,EACnB,KAAK,EAAC,OAAO,IAEZC,sBAAe,CAAC,oBAAoB,EAAE,MAAA,IAAI,CAAC,MAAM,mCAAI,EAAE,CAAC,CAC3C,EAGhBD,uBAAW,KAAK,EAAC,cAAc,IAC5B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAC3B,EAGZA,oCACE,KAAK,EAAE,IAAI,CAAC,aAAa,EACzB,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAC/C,GAAG,EAAE,CAAC,EAAkC,MACrC,IAAI,CAAC,cAAc,GAAG,EAAoC,CAAC,EAE9D,KAAK,EAAC,QAAQ,GACU,EAC1BA,iBAAK,KAAK,EAAC,oBAAoB,IAE7BA,+BACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAC7C,KAAK,EAAC,sBAAsB,EAC5B,GAAG,EAAE,CAAC,EAA8B,MACjC,IAAI,CAAC,gBAAgB,GAAG,EAAgC,CAAC,EAE5D,IAAI,EAAC,6BAA6B,EAClC,QAAQ,EAAE,IAAI,CAAC,SAAS,GACL,EAErBA,iBACE,KAAK,EAAE;oBACL,+BAA+B,EAAE,IAAI;oBACrC,uCAAuC,EACrC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM;iBACvC,IAGDA,+BACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAC9C,IAAI,EAAC,qBAAqB,EAC1B,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAChE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,GACZ,EAGrBA,+BACE,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAC/C,IAAI,EAAC,sBAAsB,EAC3B,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAChE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,GACb,CACjB,CACF,CACF,EACN;SACH,CAAC;QAEM,mBAAc,GAAG;YACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAC7BA,iBACE,KAAK,EAAC,oBAAoB,EAC1B,GAAG,EAAE,CAAC,EAAe,MAAM,IAAI,CAAC,YAAY,GAAG,EAAiB,CAAC,IAEhE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,KACxBA,sBAAU,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IACtC,OAAO,CAAC,IAAI,QAAI,OAAO,CAAC,IAAI,CACpB,CACZ,CAAC,CACE,IACJ,IAAI,CAAC;SACV,CAAC;QAaM,eAAU,GAAG;YACnB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB;;gBAEEA,kBACE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,CAAC,YAAY,EAAE,IAEhE,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAC9C,EACP;aACH;iBAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC1B,OAAOA,kBAAM,KAAK,EAAC,MAAM,IAAE,IAAI,CAAC,kBAAkB,EAAE,CAAQ,CAAC;aAC9D;iBAAM;gBACL,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;aAC9B;SACF,CAAC;QAEM,uBAAkB,GAAG;YAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;gBACnB,QACEA,sBACE,SAAS,EAAEE,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAsB,EAC1D,OAAO,EAAEA,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAwB,EAC1D,IAAI,EAAEA,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAgB,EAC/C,QAAQ,EAAEA,aAAM,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAC3C,IAAI,EAAC,oBAAoB,IAExB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,OAAEF,mBAAM,EACxDA,sBACE,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,IAAI,CAAC,UAAU,EACxB,IAAI,EAAC,sBAAsB,IAE1B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CACnC,CACF,EACX;aACH;SACF,CAAC;QAEM,qBAAgB,GAAG;YACzB,QACEA,iBAAK,KAAK,EAAC,gBAAgB,IACzBA,2BACE,IAAI,EAAC,WAAW,EAChB,KAAK,EAAC,aAAa,EACnB,EAAE,EAAC,WAAW,EACd,SAAS,EAAE,IAAI,CAAC,uBAAuB,EACvC,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,EAClB,gBAAgB,EAAE,IAAI,EACtB,QAAQ,EAAE,IAAI,EACd,OAAO,EAAE,IAAI,EACb,oBAAoB,EAAE,IAAI,CAAC,qCAAqC,EAChE,qBAAqB,EAAE,IAAI,CAAC,sCAAsC,EAClE,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,UAAU,GAAG,EAA4B,CAAC,GAC5C,CACb,EACN;SACH,CAAC;QAEM,iBAAY,GAAG;YACrB,OAAO;gBACLA,wBACE,EAAE,EAAC,WAAW,EACd,IAAI,EAAC,mBAAmB,EACxB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,IAAI,EAAC,2BAA2B,EAChC,QAAQ,EAAE,IAAI,CAAC,SAAS,EACxB,IAAI,EAAC,YAAY,IAEhB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CACxB;gBACbA,wBACE,EAAE,EAAC,eAAe,EAClB,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,IAAI,CAAC,MAAM,EACpB,IAAI,EAAC,+BAA+B,EACpC,IAAI,EAAC,YAAY,IAEhB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAC5B;aACd,CAAC;SACH,CAAC;QAEM,mBAAc,GAAG;YACvB,MAAM,kBAAkB,GACtB,CAAC,IAAI,CAAC,kBAAkB,KAAK,uBAAuB;gBAClD,IAAI,CAAC,kBAAkB,KAAK,yBAAyB;gBACvD,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;YAElC,QACEA,iBACE,KAAK,EAAE;oBACL,WAAW,EAAE,IAAI;oBACjB,0BAA0B,EAAE,kBAAkB;iBAC/C,EACD,IAAI,EAAC,kCAAkC,IAEtC,IAAI,CAAC,kBAAkB;gBACxB,IAAI,CAAC,kBAAkB,CAAC,WAAW;gBACnC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,IACzCA,iBAAK,IAAI,EAAC,gCAAgC,EAAC,KAAK,EAAC,YAAY,IAC3DA,iBACE,GAAG,EACD,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW;sBAC1D,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO;sBAC3C,SAAS,EAEf,GAAG,EAAC,SAAS,GACb,CACE,IACJ,IAAI,EAEP,kBAAkB,IACjBA,2BACE,IAAI,EAAC,6BAA6B,EAClC,KAAK,EAAC,YAAY,EAClB,EAAE,EAAC,qBAAqB,EACxB,SAAS,EAAE,IAAI,CAAC,eAAe,EAC/B,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,GACH,IACf,IAAI,CACJ,EACN;SACH,CAAC;QAEM,mBAAc,GAAG;YACvB,QACEA,iBAAK,IAAI,EAAC,gCAAgC,EAAC,KAAK,EAAC,cAAc,IAC7DA,iBACE,GAAG,EAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,GAAG,SAAS,EAClE,GAAG,EAAC,SAAS,GACb,CACE,EACN;SACH,CAAC;QAEM,qBAAgB,GAAG;YACzB,QACEA,sBACE,KAAK,EAAE;oBACL,aAAa,EAAE,IAAI;oBACnB,yBAAyB,EAAE,IAAI,CAAC,SAAS;iBAC1C,EACD,IAAI,EAAC,WAAW,qBAEhB,SAAS,QACT,kBAAkB,UAElBA,yBAAa,IAAI,EAAC,mBAAmB,IAEnCA,4BACE,MAAM,EACJ,CAAC,IAAI,CAAC,kBAAkB;oBACxB,IAAI,CAAC,kBAAkB,KAAK,8BAA8B,EAE5D,IAAI,EAAC,SAAS,eACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAC5C,GAAG,EAAC,QAAQ,EACZ,GAAG,EAAC,QAAQ,wBAEI,EAElBA,4BACE,MAAM,EACJ,CAAC,IAAI,CAAC,kBAAkB;oBACxB,IAAI,CAAC,kBAAkB,KAAK,8BAA8B,EAE5D,IAAI,EAAC,SAAS,eACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAC5C,GAAG,EAAC,QAAQ,EACZ,GAAG,EAAC,QAAQ,GACI,EAElBA,4BACE,MAAM,EACJ,CAAC,IAAI,CAAC,kBAAkB;oBACxB,IAAI,CAAC,kBAAkB,KAAK,8BAA8B,EAE5D,IAAI,EAAC,SAAS,eACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,EACjD,GAAG,EAAC,aAAa,EACjB,GAAG,EAAC,aAAa,wBAED,EAElBA,4BACE,MAAM,EACJ,CAAC,IAAI,CAAC,kBAAkB;qBACvB,IAAI,CAAC,kBAAkB,KAAK,uBAAuB;wBAClD,IAAI,CAAC,kBAAkB,KAAK,yBAAyB,CAAC,EAE1D,IAAI,EAAC,SAAS,eACH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAC1C,GAAG,EAAC,MAAM,EACV,GAAG,EAAC,MAAM,GACM,CACN,EAEdA,qBAAS,GAAG,EAAC,QAAQ,EAAC,GAAG,EAAC,QAAQ,IAChCA,iBACE,GAAG,EAAE,CAAC,EAAe,MAClB,IAAI,CAAC,qBAAqB,GAAG,EAAiB,CAAC,GAE7C,CACC,EAEVA,qBAAS,GAAG,EAAC,QAAQ,EAAC,GAAG,EAAC,QAAQ,IAChCA,iBACE,GAAG,EAAE,CAAC,EAAe,MAClB,IAAI,CAAC,qBAAqB,GAAG,EAAiB,CAAC,GAE7C,CACC,EAEVA,qBAAS,GAAG,EAAC,aAAa,EAAC,GAAG,EAAC,aAAa,IACzC,IAAI,CAAC,kBAAkB,KAAK,uBAAuB;gBACpD,IAAI,CAAC,kBAAkB,KAAK,sBAAsB;kBAC9C,IAAI,CAAC,cAAc,EAAE;kBACrB,IAAI,CAAC,cAAc,EAAE,CACjB,EAEVA,qBAAS,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM,IAC5BA,iBACE,GAAG,EAAE,CAAC,EAAe,MAClB,IAAI,CAAC,mBAAmB,GAAG,EAAiB,CAAC,GAE3C,CACC,CACD,EACX;SACH,CAAC;0BA39BgC,IAAI;+BA2GU,EAAE;yBAK7B,KAAK;wBAKS,EAAE;oBAKrB,EAAE;;;;;uCAyBsC,EAAE;mCAKlB,KAAK;yBAKxB,KAAK;0BAKJ,KAAK;4BAaH,KAAK;sBAEX,KAAK;4BAOS,KAAK;;;;;;;;;;;;sBA6DX,KAAK;;;;IAnP/B,sBAAsB,CAAC,aAAyB;QAC9C,IAAI,aAAa,EAAE;YACjB,IAAI,CAAC,uBAAuB,GAAG;gBAC7B;oBACE,EAAE,EAAE,UAAU,uBAAuB,EAAE;oBACvC,KAAK,EAAE,yBAAyB;oBAChC,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM;oBAC1C,WAAW,EAAE,wBAAwB;oBACrC,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK;wBACzC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,uBAAuB,EAAE;wBAC3C,KAAK,EAAE,uBAAuB;wBAC9B,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,IAAI,CAAC,IAAI;wBAClB,WAAW,EAAE,mBAAmB;wBAChC,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;iBACJ;gBACD;oBACE,EAAE,EAAE,UAAU,yBAAyB,EAAE;oBACzC,KAAK,EAAE,yBAAyB;oBAChC,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ;oBAC5C,WAAW,EAAE,wBAAwB;oBACrC,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK;wBAC3C,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,yBAAyB,EAAE;wBAC7C,KAAK,EAAE,uBAAuB;wBAC9B,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,IAAI,CAAC,IAAI;wBAClB,WAAW,EAAE,mBAAmB;wBAChC,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;iBACJ;gBACD;oBACE,EAAE,EAAE,UAAU,uBAAuB,EAAE;oBACvC,KAAK,EAAE,yBAAyB;oBAChC,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM;oBAC1C,WAAW,EAAE,wBAAwB;oBACrC,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK;wBACzC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,uBAAuB,EAAE;wBAC3C,KAAK,EAAE,uBAAuB;wBAC9B,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,IAAI,CAAC,IAAI;wBAClB,WAAW,EAAE,mBAAmB;wBAChC,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;iBACJ;gBACD;oBACE,EAAE,EAAE,UAAU,8BAA8B,EAAE;oBAC9C,KAAK,EAAE,yBAAyB;oBAChC,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY;oBAChD,WAAW,EAAE,wBAAwB;oBACrC,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,KAAK;wBAC/C,KAAK,EAAE,uBAAuB;wBAC9B,IAAI,EAAE,IAAI;wBACV,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,8BAA8B,EAAE;wBAClD,OAAO,EAAE,IAAI,CAAC,IAAI;wBAClB,WAAW,EAAE,mBAAmB;wBAChC,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;iBACJ;gBACD;oBACE,EAAE,EAAE,UAAU,sBAAsB,EAAE;oBACtC,KAAK,EAAE,yBAAyB;oBAChC,IAAI,EAAE,KAAK;oBACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK;oBACzC,WAAW,EAAE,wBAAwB;oBACrC,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK;wBACxC,EAAE,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,sBAAsB,EAAE;wBAC1C,KAAK,EAAE,uBAAuB;wBAC9B,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,IAAI,CAAC,IAAI;wBAClB,WAAW,EAAE,mBAAmB;wBAChC,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,IAAI;qBACd,CAAC,CAAC;iBACJ;aACF,CAAC;SACH;KACF;IA8DD,sBAAsB,CAAC,MAAe;QACpC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;aAAM;YACL,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;KACF;;IAiGD,MAAM,iBAAiB;QACrB,IAAI,CAAC,gBAAgB,GAAG,MAAMG,aAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACnE;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;YAC3B,IAAI,CAAC,2BAA2B,CAAC,IAAI,CACnC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CACpC,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;SAC/B;KACF;IAED,oBAAoB;QAClB,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;;IAKD,oBAAoB,CAAC,QAAiB,EAAE,QAAiB;QACvD,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;aAC9D;SACF;KACF;;;;;IAQD,MAAM,QAAQ;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC;QACrB,OAAO,OAAO,CAAC;KAChB;IA6BO,4BAA4B,CAClC,QAAkC;QAElC,MAAM,SAAS,GAAwB,EAAE,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,IAAI,KAAK,GAAsB;gBAC7B,EAAE,EAAE,OAAO,CAAC,IAAI;gBAChB,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,WAAW,EAAE,OAAO,CAAC,IAAI;gBACzB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC;YACF,IAAI,OAAO,CAAC,QAAQ,EAAE;gBACpB,KAAK,mCACA,KAAK,KACR,KAAK,EAAE,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,QAAQ,CAAC,GAC3D,CAAC;aACH;YACD,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvB;QACD,OAAO,SAAS,CAAC;KAClB;IAsKO,cAAc,CAAC,UAAkB;QACvC,QAAQ,UAAU;YAChB,KAAK,uBAAuB,CAAC;YAC7B,KAAK,yBAAyB;gBAC5B,IAAI,CAAC,yBAAyB,CAC5B,MAAM,EACN,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAC7B,CAAC;gBACF,MAAM;YACR,KAAK,8BAA8B;gBACjC,IAAI,CAAC,yBAAyB,CAC5B,QAAQ,EACR,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAC/B,CAAC;gBACF,IAAI,CAAC,yBAAyB,CAC5B,QAAQ,EACR,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAC/B,CAAC;gBACF,MAAM;SACT;KACF;IAuMO,oBAAoB,CAAC,UAAkB;QAC7C,QAAQ,UAAU;YAChB,KAAK,uBAAuB,CAAC;YAC7B,KAAK,yBAAyB;gBAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,4BAA4B,CACtD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAC7C,CAAC;gBACF,MAAM;SACT;KACF;;IA+OD,MAAM;QACJ,QACEH,QAACI,UAAI,IAAC,KAAK,EAAC,kBAAkB,IAC5BJ,iBAAK,KAAK,EAAC,qBAAqB,IAC9BA,8BACE,gBAAgB,QAChB,YAAY,QACZ,mBAAmB,QACnB,IAAI,EAAC,mBAAmB,EACxB,aAAa,EAAEE,aAAM,CAAC,cAAc,CAAC,aAAa,EAClD,cAAc,EACZ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,IAG/D,IAAI,CAAC,aAAa,EAAE,EACpB,IAAI,CAAC,UAAU,EAAE,EACjB,IAAI,CAAC,YAAY,EAAE,CACH,CACf,CACD,EACP;KACH;;;;;;;;;;;;;","names":["h","renderFormItems","config","Locale","Host"],"sources":["src/components/import-from-design/import-from-design.scss?tag=gx-ide-import-from-design&encapsulation=shadow","src/components/import-from-design/import-from-design.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n@import \"~@genexus/gemini/dist/collection/globals/mixins.scss\";\n\n:host {\n}\n\n/*--- Options ---*/\n.options {\n padding: var(--gx-ide-container__padding);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n grid-template-columns: auto 1fr;\n grid-template-areas:\n \"path-url-label path-url-wrapper\"\n \"access-token-label access-token\"\n \"style-label style\"\n \"module-label module\"\n \"checkboxes-options checkboxes-options\";\n\n .path-url-label {\n grid-area: path-url-label;\n }\n .path-url-wrapper {\n grid-area: path-url-wrapper;\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-row-gap);\n\n &__buttons-container {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-container-elements-spacing);\n }\n }\n .access-token-label {\n grid-area: access-token-label;\n }\n .access-token {\n grid-area: access-token;\n }\n .style-label {\n grid-area: style-label;\n }\n .style {\n grid-area: style;\n }\n .module-label {\n grid-area: module-label;\n }\n .module {\n grid-area: module;\n }\n .checkboxes-options {\n grid-area: checkboxes-options;\n }\n\n &--hide-access-token {\n grid-template-areas:\n \"path-url-label path-url-wrapper\"\n \"style-label style\"\n \"module-label module\"\n \"checkboxes-options checkboxes-options\";\n }\n\n .checkboxes-options {\n display: flex;\n justify-content: space-between;\n gap: var(--gx-ide-grid-row-gap);\n\n &__col-right {\n display: flex;\n opacity: 1;\n transition: opacity 200ms;\n gap: var(--gx-ide-grid-row-gap);\n &--hidden {\n opacity: 0;\n }\n }\n }\n}\n\n/*--- Messages Grid ---*/\n.messages-container {\n padding: var(--gx-ide-container__padding);\n height: 100%;\n overflow-y: auto;\n @include gxg-scrollbar;\n}\n\n/*--- Main ---*/\n.main {\n display: flex;\n height: 100%;\n justify-content: center;\n overflow: auto;\n .design-tree,\n .design-tabs {\n transition: flex 200ms;\n }\n .tree-container {\n flex: 1;\n }\n .design-tabs {\n flex: 2;\n\n &--fit-images {\n img {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n }\n img {\n display: block;\n }\n }\n &--shrunken-tree {\n .tree-container {\n flex: 0.5;\n }\n .design-tabs {\n flex: 2.5;\n }\n }\n}\n.panel-tab {\n height: 100%;\n display: grid;\n grid-template-columns: 1fr 1fr;\n\n .panel-item {\n width: 100%;\n height: 100%;\n overflow: auto;\n @include gxg-scrollbar;\n font-size: var(--mer-font__size--xxs);\n line-height: normal;\n }\n}\n\n/*--- Tabs ---*/\n.tab--hidden {\n display: none;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderFormItems } from \"../../common/common\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { CheckboxInfo } from \"@genexus/gemini\";\n\nconst DESIGN_DATA_TYPE_PANELS = \"panels\";\nconst DESIGN_DATA_TYPE_STENCILS = \"stencils\";\nconst DESIGN_DATA_TYPE_IMAGES = \"images\";\nconst DESIGN_DATA_TYPE_DESIGN_SYSTEM = \"design_system\";\nconst DESIGN_DATA_TYPE_FONTS = \"fonts\";\n\n@Component({\n tag: \"gx-ide-import-from-design\",\n styleUrl: \"import-from-design.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/import-from-design\"]\n})\nexport class GxIdeImportFromDesign {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /**\n * An array that keeps track of the tree items id's (design system data type + item id) along with the content, that will be used to save and retrieve items information, in order to avoid using a callback to get items information that was already get. loadedItemsArray will be reset every time a new design is loaded.\n */\n private loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeImportFromDesignElement;\n\n /* References needed to collect data */\n private optionPathEl!: HTMLGxgFormTextElement;\n private accessTokenEl!: HTMLGxgFormTextElement;\n private optionStyleEl!: HTMLGxgComboBoxElement;\n private optionImportAsEl!: HTMLGxgFormCheckboxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private messagesList: HTMLElement;\n private panelsSelected: string[] = [];\n private stencilsSelected: string[] = [];\n // private imagesSelected: string[] = [];\n // private designSystemSelected: string[] = [];\n private fontsSelected: string[] = [];\n private codeFactoryRenderEl!: HTMLElement;\n private tokensFactoryRenderEl!: HTMLElement;\n private stylesFactoryRenderEl!: HTMLElement;\n private treeDataEl!: HTMLGxgTreeViewElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n watchDesignDataHandler(newDesignData: DesignData) {\n if (newDesignData) {\n this.designDataTreeDataModel = [\n {\n id: `parent@${DESIGN_DATA_TYPE_PANELS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.panels,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.panels.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_PANELS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.stencils,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.images,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.images.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.designSystem,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.designSystem.map(item => ({\n class: \"object tree-view-item\",\n leaf: true,\n id: `${item.id}@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_FONTS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.fonts,\n startImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_FONTS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n startImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n }\n ];\n }\n }\n\n /**\n * The model data loaded into the detail tree\n */\n @State() detailTreeModel: TreeViewItemModel[] = [];\n\n /**\n * If the design data is loading or not, for disabled actions\n */\n @State() isLoading = false;\n\n /**\n * The messages receive when the file is loading\n */\n @State() messages: MessageData[] = [];\n\n /**\n * The path/URL for load the design data\n */\n @State() path = \"\";\n\n /**\n * The file selected for load the design data\n */\n @State() selectedFile: File;\n\n /**\n * The type of the design data selected for show it visual tabs\n */\n @State() selectedDesignType: DesignType;\n\n /**\n * The item of the design data selected for show its contents on visual tabs\n */\n @State() selectedDesignItem: any;\n\n /**\n * When show or not the acces token input field\n */\n @State() showAccessToken: any;\n\n /**\n * the design data tree view data model\n */\n @State() designDataTreeDataModel: TreeViewItemModel[] = [];\n\n /**\n * Used to trigger a re-render after an item has been selected on renderDesignTree, in order to set the first tab as the active tab (setFirstActiveTab()), since calling this method inside objectsTreeSelectedItemsChangedHandler does not always work without a setTimeOut.\n */\n @State() updateTabsActiveTab: boolean = false;\n\n /**\n * If true, images will be fitted in the container\n */\n @State() fitImages = false;\n\n /**\n * If true, the left tree will be shrink and expanded to allow more space for the content\n */\n @State() shrinkTree = false;\n @Watch(\"shrinkTree\")\n watchShrinkTreeHandler(shrink: boolean) {\n if (shrink) {\n this.attachTreeMouseListeners();\n } else {\n this.removeTreeMouseListeners();\n }\n }\n\n /**\n * If true the left tree will be shrunken\n */\n @State() shrunkenTree = false;\n\n @State() treeSh = false;\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer that cancel the load operation.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * This is a function provided by the developer that init the process of import a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that return the list of types of data loaded from file or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Design System type of data.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly loadDesignSystemCallback!: LoadDesignSystemCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that return the information of an Image System type of data.\n */\n @Prop() readonly loadImageCallback!: LoadImageCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determinate if accessing to a design requires an authentication token\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n\n /**\n * This is a function provided by the developer for create an instance of a text editor.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly textEditorFactoryCallback!: TextEditorFactoryCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n disconnectedCallback() {\n this.removeTreeMouseListeners();\n }\n\n // 7.LISTENERS //\n\n @Watch(\"messages\")\n watchMessagesHandler(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n if (this.messagesList) {\n this.messagesList.scrollTop = this.messagesList.scrollHeight;\n }\n }\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private attachTreeMouseListeners = () => {\n this.treeDataEl.addEventListener(\"mouseenter\", this.treeMouseEnter);\n this.treeDataEl.addEventListener(\"mouseleave\", this.treeMouseLeave);\n };\n private removeTreeMouseListeners = () => {\n this.treeDataEl.removeEventListener(\"mouseenter\", this.treeMouseEnter);\n this.treeDataEl.removeEventListener(\"mouseleave\", this.treeMouseLeave);\n };\n private treeMouseEnter = () => {\n this.shrunkenTree = false;\n };\n private treeMouseLeave = () => {\n this.shrunkenTree = true;\n };\n\n private messageType = (message: MessageData): TextType => {\n if (message.type === \"error\") {\n return \"text-alert-error\";\n } else if (message.type === \"warning\") {\n return \"text-alert-warning\";\n } else {\n return \"text-gray\";\n }\n };\n\n private loadTreeItemCompositionModel(\n controls: DesignPanelControlData[]\n ): TreeViewItemModel[] {\n const modelList: TreeViewItemModel[] = [];\n for (const control of controls) {\n let model: TreeViewItemModel = {\n id: control.name,\n caption: control.name,\n startImgSrc: control.type,\n checkbox: false,\n expanded: true,\n leaf: control.leaf\n };\n if (control.controls) {\n model = {\n ...model,\n items: this.loadTreeItemCompositionModel(control.controls)\n };\n }\n modelList.push(model);\n }\n return modelList;\n }\n\n private objectsTreeSelectedItemsChangedHandler = async (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (event.detail.length) {\n const item = event.detail[0]?.item;\n const itemComposedId = item.id;\n const idList = itemComposedId.split(\"@\");\n const itemId = idList[0];\n const itemDesignType: DesignType = idList[1] as DesignType;\n if (itemId && itemId !== \"parent\") {\n this.selectedDesignType = itemDesignType;\n const loadedItem = this.getLoadedItem(itemComposedId);\n if (!loadedItem) {\n const designDataDetail: DesignItemDataDetail =\n await this.getDesignDataDetail(itemId, this.selectedDesignType);\n this.loadedItems.set(itemComposedId, {\n designType: this.selectedDesignType,\n designDataDetail: designDataDetail\n });\n } else {\n /* Item has been queried already. The item content exists already. */\n this.selectedDesignType = loadedItem.designType;\n this.selectedDesignItem = loadedItem.designDataDetail;\n this.getCodeFactory(loadedItem.designType);\n this.renderDetailDataTree(loadedItem.designType);\n }\n }\n }\n };\n\n private getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.loadedItems?.get(id);\n };\n\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const items = Array.from(event.detail.values());\n let currentParentId = null;\n const result: { [key: string]: string[] } = {};\n\n for (const item of items) {\n if (item.item.id.startsWith(\"parent@\")) {\n currentParentId = item.item.id.split(\"@\")[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(\"@\")[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(\"@\")[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils } = result;\n\n // this.designSystemSelected = designSystem;\n this.fontsSelected = fonts;\n // this.imagesSelected = images;\n this.panelsSelected = panels;\n this.stencilsSelected = stencils;\n };\n\n private selectFile = (): void => {\n this.optionPathEl.openFile();\n };\n\n private pathOnInputHandler = (e: any) => {\n this.path = e.detail;\n };\n\n private pathOnFileSelected = (e: any) => {\n this.selectedFile = e.detail[0];\n const fileName = e.detail[0].name;\n this.path = fileName;\n\n this.evaluateAccessToken();\n };\n\n private evaluateAccessToken = async () => {\n this.showAccessToken = await this.requiresAccessTokenCallback(\n this.optionPathEl.value\n );\n };\n\n private loadData = async (): Promise<void> => {\n this.isLoading = true;\n const source = this.selectedFile ? this.selectedFile : this.path;\n const token = this.accessTokenEl ? this.accessTokenEl.value : undefined;\n this.designData = null;\n await this.loadCallback(source, token, this.messageCallback).then(\n (designData: DesignData) => {\n // this.isLoading = false;\n this.messages = [];\n this.designData = designData;\n if (this.designData) {\n this.panelsSelected = [\n ...this.designData.panels.map(item => item.id)\n ];\n this.stencilsSelected = [\n ...this.designData.stencils.map(item => item.id)\n ];\n // this.imagesSelected = [\n // ...this.designData.images.map(item => item.id)\n // ];\n // this.designSystemSelected = [\n // ...this.designData.designSystem.map(item => item.id)\n // ];\n this.fontsSelected = [...this.designData.fonts.map(item => item.id)];\n } else {\n // There was probably an error\n this.panelsSelected = [];\n this.stencilsSelected = [];\n // this.imagesSelected = [];\n // this.designSystemSelected = [];\n this.fontsSelected = [];\n }\n }\n );\n this.isLoading = false;\n };\n\n private messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n private getDesignDataDetail = async (\n id: string,\n designType: DesignType\n ): Promise<DesignItemDataDetail> => {\n let loadFn:\n | LoadPanelDataCallback\n | LoadImageCallback\n | LoadFontCallback\n | LoadDesignSystemCallback;\n\n switch (designType) {\n case DESIGN_DATA_TYPE_IMAGES:\n loadFn = this.loadImageCallback;\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n loadFn = this.loadDesignSystemCallback;\n break;\n case DESIGN_DATA_TYPE_FONTS:\n loadFn = this.loadFontCallback;\n break;\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n loadFn = this.loadPanelDataCallback;\n break;\n }\n\n let returnedData: DesignItemDataDetail;\n await loadFn(id).then((data: DesignItemDataDetail) => {\n this.selectedDesignType = designType;\n this.selectedDesignItem = data;\n this.getCodeFactory(designType);\n this.renderDetailDataTree(designType);\n returnedData = data;\n });\n\n return returnedData;\n };\n\n private getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"html\",\n this.codeFactoryRenderEl,\n this.selectedDesignItem.code\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n this.tokensFactoryRenderEl,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n this.stylesFactoryRenderEl,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n private confirm = (): void => {\n this.confirmCallback({\n panels: this.panelsSelected,\n stencils: this.stencilsSelected,\n fonts: this.fontsSelected,\n /* images: this.imagesSelected, */\n moduleId: this.filterModuleEl?.value?.id,\n styleName: this.optionStyleEl.value,\n importAsWebPanels: this.optionImportAsEl.checked\n });\n };\n\n private cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n private fitImagesHandler = (e: CustomEvent<CheckboxInfo>) => {\n this.fitImages = e.detail.value;\n };\n\n private shrinkTreeHandler = (e: CustomEvent<CheckboxInfo>) => {\n const checked = e.detail.value;\n this.shrinkTree = checked;\n if (checked) {\n this.shrunkenTree = true;\n } else {\n this.shrunkenTree = false;\n }\n };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n private renderOptions = (): Element => {\n return (\n <div\n class={{\n \"options grid\": true,\n \"options--hide-access-token\": !this.showAccessToken\n }}\n >\n {/* #path/url label*/}\n <gxg-label class=\"path-url-label\">\n {this._componentLocale.options.path}\n </gxg-label>\n\n <div class=\"path-url-wrapper\">\n {/* #path/url input*/}\n <gxg-form-text\n value={this.path}\n onInput={this.pathOnInputHandler}\n onFileSelected={this.pathOnFileSelected}\n onBlur={this.evaluateAccessToken}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.optionPathEl = el as HTMLGxgFormTextElement)\n }\n part=\"option-path\"\n disabled={this.isLoading}\n type=\"file\"\n acceptFile={this.extensions}\n class=\"path-url\"\n placeholder={this._componentLocale.options.pathPlaceholder}\n ></gxg-form-text>\n\n <div class=\"path-url-wrapper__buttons-container\">\n {/* #select file button*/}\n <gxg-button\n id=\"button-select-file\"\n type=\"primary-text-only\"\n onClick={this.selectFile}\n part=\"gxg-button gxg-button--select-file\"\n disabled={this.isLoading}\n class=\"select-file\"\n >\n ...\n </gxg-button>\n\n {/* #load file button*/}\n <gxg-button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={this.loadData}\n part=\"gxg-button gxg-button--load\"\n disabled={this.path.length === 0 || this.isLoading}\n class=\"load-file\"\n >\n {this._componentLocale.options.btnLoad}\n </gxg-button>\n </div>\n </div>\n\n {/* #access token*/}\n {this.showAccessToken\n ? [\n <gxg-label class={{ \"access-token-label\": true }}>\n {this._componentLocale.options.accessToken}\n </gxg-label>,\n <gxg-form-text\n class={{ \"access-token\": true }}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.accessTokenEl = el as HTMLGxgFormTextElement)\n }\n part=\"access-token\"\n disabled={this.isLoading}\n ></gxg-form-text>\n ]\n : null}\n\n {/* #style label*/}\n <gxg-label class=\"style-label\">\n {this._componentLocale.options.style}\n </gxg-label>\n\n {/* #style*/}\n <gxg-combo-box\n disabled={!this.styles || this.isLoading}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.optionStyleEl = el as HTMLGxgComboBoxElement)\n }\n part=\"option-style\"\n class=\"style\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.styles ?? [])}\n </gxg-combo-box>\n\n {/* #module label*/}\n <gxg-label class=\"module-label\">\n {this._componentLocale.options.module}\n </gxg-label>\n\n {/* #module*/}\n <gx-ide-entity-selector\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module\"\n ></gx-ide-entity-selector>\n <div class=\"checkboxes-options\">\n {/* # import as web panels*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.importAs}\n class=\"import-as-web-panels\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.optionImportAsEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n ></gxg-form-checkbox>\n\n <div\n class={{\n \"checkboxes-options__col-right\": true,\n \"checkboxes-options__col-right--hidden\":\n !this.designDataTreeDataModel.length\n }}\n >\n {/* # fit images*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.fitImages}\n part=\"fit-images-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onChange={this.fitImagesHandler}\n ></gxg-form-checkbox>\n\n {/* # shrink tree*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.toggleTree}\n part=\"shrink-tree-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onChange={this.shrinkTreeHandler}\n ></gxg-form-checkbox>\n </div>\n </div>\n </div>\n );\n };\n\n private renderMessages = (): Element => {\n return this.messages.length > 0 ? (\n <div\n class=\"messages-container\"\n ref={(el: HTMLElement) => (this.messagesList = el as HTMLElement)}\n >\n {this.messages.map(message => (\n <gxg-text type={this.messageType(message)}>\n {message.type}: {message.text}\n </gxg-text>\n ))}\n </div>\n ) : null;\n };\n\n private renderDetailDataTree(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.detailTreeModel = this.loadTreeItemCompositionModel(\n this.selectedDesignItem.composition.controls\n );\n break;\n }\n }\n\n private renderMain = () => {\n if (this.designData) {\n return (\n /* #main*/\n <main\n class={{ \"main\": true, \"main--shrunken-tree\": this.shrunkenTree }}\n >\n {[this.renderDesignTree(), this.renderDesignTabs()]}\n </main>\n );\n } else if (!this.isLoading) {\n return <main class=\"main\">{this.renderNoDesignData()}</main>;\n } else {\n return this.renderMessages();\n }\n };\n\n private renderNoDesignData = () => {\n if (!this.isLoading) {\n return (\n <gxg-text\n textAlign={config.gxgMessage.common.textAlign as TextAlign}\n padding={config.gxgMessage.common.textAlign as TextPadding}\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"no-design-selected\"\n >\n {this._componentLocale.messages.noDesignSelected} <br />\n <gxg-text\n type=\"text-link-no-line\"\n onClick={this.selectFile}\n part=\"begin-by-loading-one\"\n >\n {this._componentLocale.messages.selectDesign}\n </gxg-text>\n </gxg-text>\n );\n }\n };\n\n private renderDesignTree = (): HTMLGxgTreeViewElement => {\n return (\n <div class=\"tree-container\">\n <gxg-tree-view\n part=\"data-tree\"\n class=\"design-tree\"\n id=\"data-tree\"\n treeModel={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.objectsTreeSelectedItemsChangedHandler}\n ref={el => (this.treeDataEl = el as HTMLGxgTreeViewElement)}\n ></gxg-tree-view>\n </div>\n );\n };\n\n private renderFooter = () => {\n return [\n <gxg-button\n id=\"button-ok\"\n type=\"primary-text-only\"\n onClick={this.confirm}\n part=\"gxg-button gxg-button--ok\"\n disabled={this.isLoading}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnOk}\n </gxg-button>,\n <gxg-button\n id=\"button-cancel\"\n type=\"outlined\"\n onClick={this.cancel}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n ];\n };\n\n private renderPanelTab = (): Element => {\n const renderControlsTree =\n (this.selectedDesignType === DESIGN_DATA_TYPE_PANELS ||\n this.selectedDesignType === DESIGN_DATA_TYPE_STENCILS) &&\n this.detailTreeModel.length > 0;\n\n return (\n <div\n class={{\n \"panel-tab\": true,\n \"panel-tab--controls-tree\": renderControlsTree\n }}\n part=\"data-panel-composition-container\"\n >\n {this.selectedDesignItem &&\n this.selectedDesignItem.composition &&\n this.selectedDesignItem.composition.preview ? (\n <div part=\"data-panel-composition-preview\" class=\"panel-item\">\n <img\n src={\n this.selectedDesignItem && this.selectedDesignItem.composition\n ? this.selectedDesignItem.composition.preview\n : undefined\n }\n alt=\"Preview\"\n />\n </div>\n ) : null}\n\n {renderControlsTree ? (\n <gxg-tree-view\n part=\"data-panel-composition-tree\"\n class=\"panel-item\"\n id=\"gxg-tree-panel-data\"\n treeModel={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></gxg-tree-view>\n ) : null}\n </div>\n );\n };\n\n private renderImageTab = () => {\n return (\n <div part=\"data-panel-composition-preview\" class=\"data-preview\">\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n />\n </div>\n );\n };\n\n private renderDesignTabs = (): Element => {\n return (\n <gxg-tabs\n class={{\n \"design-tabs\": true,\n \"design-tabs--fit-images\": this.fitImages\n }}\n part=\"data-tabs\"\n no-border\n noPadding\n buttonsBorderAbove\n >\n <gxg-tab-bar slot=\"tab-bar-container\">\n {/* tokens*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.tokens}\n tab=\"tokens\"\n key=\"tokens\"\n is-selected\n ></gxg-tab-button>\n {/* styles*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.styles}\n tab=\"styles\"\n key=\"styles\"\n ></gxg-tab-button>\n {/* composition*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType === DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.composition}\n tab=\"composition\"\n key=\"composition\"\n is-selected\n ></gxg-tab-button>\n {/* code*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n (this.selectedDesignType !== DESIGN_DATA_TYPE_PANELS &&\n this.selectedDesignType !== DESIGN_DATA_TYPE_STENCILS)\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.code}\n tab=\"code\"\n key=\"code\"\n ></gxg-tab-button>\n </gxg-tab-bar>\n {/* tokens */}\n <gxg-tab tab=\"tokens\" key=\"tokens\">\n <div\n ref={(el: HTMLElement) =>\n (this.tokensFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n {/* styles */}\n <gxg-tab tab=\"styles\" key=\"styles\">\n <div\n ref={(el: HTMLElement) =>\n (this.stylesFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n {/* composition */}\n <gxg-tab tab=\"composition\" key=\"composition\">\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.renderImageTab()\n : this.renderPanelTab()}\n </gxg-tab>\n {/* code */}\n <gxg-tab tab=\"code\" key=\"code\">\n <div\n ref={(el: HTMLElement) =>\n (this.codeFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n </gxg-tabs>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noContentGap\n displayBorderBottom\n part=\"options-container\"\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {this.renderOptions()}\n {this.renderMain()}\n {this.renderFooter()}\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n token: string | undefined,\n onMessage: LoadMessageCallback\n) => Promise<DesignData | undefined>;\nexport type LoadPanelDataCallback = (id: string) => Promise<DesignPanelData>;\nexport type LoadImageCallback = (id: string) => Promise<string>;\nexport type LoadFontCallback = (id: string) => Promise<string>;\nexport type LoadDesignSystemCallback = (\n id: string\n) => Promise<DesignSystemData>;\nexport type TextEditorFactoryCallback = (\n type: TextEditorType,\n parent: HTMLElement,\n text: string\n) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type RequiresAccessTokenCallback = (source: string) => Promise<boolean>;\nexport type ConfirmCallback = (data: DesignImportData) => Promise<boolean>;\nexport type CancelCallback = () => Promise<void>;\n\nexport interface MessageData {\n type: \"error\" | \"warning\" | \"info\";\n text: string;\n}\n\nexport interface DesignData {\n panels: DesignItemData[];\n stencils: DesignItemData[];\n images: DesignItemData[];\n designSystem: DesignItemData[];\n fonts: DesignItemData[];\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n}\n\nexport interface DesignPanelCompositionData {\n preview?: string;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignPanelControlData {\n name: string;\n type: string;\n leaf?: boolean;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignSystemData {\n tokens: string;\n styles: string;\n}\n\ntype DesignItemDataDetail = DesignPanelData | DesignSystemData | string;\n\nexport interface DesignImportData {\n panels: string[];\n stencils: string[];\n fonts: string[];\n moduleId: string;\n /* images: string[]; */\n styleName: string;\n importAsWebPanels: boolean;\n}\n\nexport type DesignType =\n | typeof DESIGN_DATA_TYPE_PANELS\n | typeof DESIGN_DATA_TYPE_STENCILS\n | typeof DESIGN_DATA_TYPE_IMAGES\n | typeof DESIGN_DATA_TYPE_DESIGN_SYSTEM\n | typeof DESIGN_DATA_TYPE_FONTS;\n\nexport type ItemLoadedInfo = {\n designType: DesignType;\n designDataDetail: DesignItemDataDetail;\n};\n\ntype TextEditorType = \"html\" | \"styles\" | \"tokens\";\n"],"version":3}
@@ -157,7 +157,7 @@ const clearKbPropertiesFromTree = (actualTreeState) => {
157
157
  return updatedTreeData;
158
158
  };
159
159
 
160
- const kbManagerExportCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}.tree-view-container{display:flex}.header__top{border-top:1px solid var(--gx-ide-container-border-color);display:grid;padding:var(--gx-ide-container__padding) var(--gx-ide-container__padding) 0 var(--gx-ide-container__padding);gap:var(--gx-ide-grid-column-gap);grid-template-columns:1fr auto;grid-template-areas:\"select-directory export-cancel-buttons-group options-btn\"}.header__top .select-directory{grid-area:select-directory}.header__top .export-cancel-buttons-group{grid-area:export-cancel-buttons-group}.header__top .options-btn{grid-area:options-btn}.header__bottom .checkboxes-wrapper{padding:var(--gx-ide-grid-column-gap);display:flex;flex-wrap:wrap;gap:var(--gx-ide-grid-column-gap)}.header__bottom .checkboxes-wrapper .add-checkbox{display:flex}.tree-container--empty{align-items:center;justify-content:center}.tree-container .gx-ide-message{padding:100px 0}";
160
+ const kbManagerExportCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}p{margin:0}.tree-view-container{display:flex}.header__top{border-top:1px solid var(--gx-ide-container-border-color);display:grid;padding:var(--gx-ide-container__padding) var(--gx-ide-container__padding) 0 var(--gx-ide-container__padding);gap:var(--gx-ide-grid-column-gap);grid-template-columns:1fr auto;grid-template-areas:\"select-directory export-cancel-buttons-group options-btn\"}.header__top .select-directory{grid-area:select-directory}.header__top .export-cancel-buttons-group{grid-area:export-cancel-buttons-group}.header__top .options-btn{grid-area:options-btn}.header__bottom .checkboxes-wrapper{padding:var(--gx-ide-grid-column-gap);display:flex;flex-wrap:wrap;gap:var(--gx-ide-grid-column-gap)}.header__bottom .checkboxes-wrapper .add-checkbox{display:flex}.tree-container--empty{align-items:center;justify-content:center}.tree-container .gx-ide-message{padding:100px 0}";
161
161
 
162
162
  const GxIdeKbManagerExport = class {
163
163
  constructor(hostRef) {
@@ -1 +1 @@
1
- {"file":"gx-ide-kb-manager-export.entry.cjs.js","mappings":"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","names":["h","config","Locale","Host"],"sources":["src/components/kb-manager-export/helpers.ts","src/components/kb-manager-export/kb-manager-export.scss?tag=gx-ide-kb-manager-export&encapsulation=shadow","src/components/kb-manager-export/kb-manager-export.tsx"],"sourcesContent":["// /* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport {\n ObjectData,\n ObjectType,\n KBPropertyData,\n KBPropertyType\n} from \"./kb-manager-export\";\nexport const KB_PROPERTY = \"property\";\nexport const KB_OBJECT = \"object\";\n\n/*\nINDEX:\n1. getObjectIcon\n2. convertObjectTypeToTreeItem\n3. convertObjectToTreeItem\n4. getObjectType\n5. findObjectInTree\n6. findPropertyInTree\n7. convertPropertyToTreeItem\n8. updateTreeModelWithObjects\n9. convertKbPropertiesDataToTreeItemData\n10. clearKbPropertiesFromTree\n*/\n\n/* 1.2 getIcon (for properties)*/\nconst getPropertyIcon = (\n typeId: string,\n kbPropertiesTypes: KBPropertyType[]\n): string => {\n // The object icon has to be retrieved from the ObjetTypes array, by matching the ObjectData typeId with the ObjectType id.\n const propertyType = kbPropertiesTypes.find(\n propertyType => propertyType.id === typeId\n );\n if (propertyType) {\n return propertyType.icon;\n } else {\n return undefined;\n }\n};\n\n/* 2. convertObjectTypeToTreeItem*/\nconst convertObjectTypeToTreeItem = (\n objectType: ObjectType\n): TreeViewItemModel => ({\n caption: objectType.name,\n id: objectType.id,\n startImgSrc: objectType.icon,\n leaf: false,\n class: \"object-type tree-view-item\",\n expanded: true,\n items: []\n});\n\n/* 3. convertObjectToTreeItem*/\nconst convertObjectToTreeItem = (\n object: ObjectData,\n objectTypes: Map<string, ObjectType>\n): TreeViewItemModel => ({\n caption: object.name,\n id: object.id,\n startImgSrc: objectTypes.get(object.typeId).icon,\n class: \"object tree-view-item\",\n metadata: KB_OBJECT,\n leaf: true\n});\n\n/* 5. findObjectInTree*/\nconst findObjectInTree = (\n object: ObjectData,\n actualTreeState: TreeViewItemModel[]\n): ObjectTreeInfo => {\n const objectTreeItemInfo = {\n objectExists: false,\n objectTypeIndex: -1\n };\n if (actualTreeState) {\n const objectTypeTreeItemIndex = actualTreeState.findIndex(\n objectTypeTreeItem => {\n return objectTypeTreeItem.id === object.typeId;\n }\n );\n if (objectTypeTreeItemIndex !== -1) {\n objectTreeItemInfo.objectTypeIndex = objectTypeTreeItemIndex;\n // objectType exists as a node in the actual tree.\n // Now try to find the object\n const objectFound = actualTreeState[objectTypeTreeItemIndex].items?.find(\n objectTreeItem => {\n return objectTreeItem.id === object.id;\n }\n );\n if (objectFound) {\n objectTreeItemInfo.objectExists = true;\n }\n }\n }\n return objectTreeItemInfo;\n};\n\n/* 6. findPropertyInTree */\nconst findPropertyInTree = (\n property: KBPropertyData,\n updatedTreeData: TreeViewItemModel[]\n): boolean => {\n const found = updatedTreeData.find(node => {\n return node.id === property.id;\n });\n if (found) {\n return true;\n }\n return false;\n};\n\n/* 7. convertPropertyToTreeItem */\nconst convertPropertyToTreeItem = (\n property: KBPropertyData,\n kbPropertiesTypes: KBPropertyType[]\n): TreeViewItemModel => ({\n caption: property.name,\n id: property.id,\n startImgSrc: getPropertyIcon(property.typeId, kbPropertiesTypes),\n class: \"property tree-view-item\",\n metadata: KB_PROPERTY,\n leaf: true\n});\n\n/* 8. updateTreeModelWithObjects*/\nexport const updateTreeModelWithObjects = (\n objects: ObjectData[] | undefined,\n objectTypes: Map<string, ObjectType>,\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const updatedTreeData: TreeViewItemModel[] = [...actualTreeState];\n if (!objects) {\n // nothing to do\n return updatedTreeData;\n }\n objects.forEach(object => {\n // objects that already exists in the actual actualTreeState should not be added.\n // We can find the object in the actual actualTreeState.\n const objectTreeItemInfo: ObjectTreeInfo = findObjectInTree(\n object,\n updatedTreeData\n );\n if (!objectTreeItemInfo.objectExists) {\n // object does not exists in actualTreeState\n // if the objectType tree node exists, insert inside.\n // if the objectType tree node does not exists, create object type node first.\n if (objectTreeItemInfo.objectTypeIndex === -1) {\n const objectType: ObjectType = objectTypes.get(object.typeId);\n if (objectType !== undefined) {\n const objectTypeTreeItem = convertObjectTypeToTreeItem(objectType);\n objectTreeItemInfo.objectTypeIndex =\n updatedTreeData.push(objectTypeTreeItem) - 1;\n }\n }\n const objectAsTreeItem: TreeViewItemModel = convertObjectToTreeItem(\n object,\n objectTypes\n );\n // insert object in tree (under the object type tree node)\n updatedTreeData[objectTreeItemInfo.objectTypeIndex].items.push(\n objectAsTreeItem\n );\n }\n });\n return updatedTreeData;\n};\n\n/* 9. convertKbPropertiesDataToTreeItemData*/\nexport const convertKbPropertiesDataToTreeItemData = (\n properties: KBPropertyData[],\n kbPropertiesTypes: KBPropertyType[],\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const updatedTreeData: TreeViewItemModel[] = [...actualTreeState];\n if (!properties) {\n // nothing to do\n return updatedTreeData;\n }\n properties.forEach(property => {\n // properties have no parent node, and they should be added at the beginning of the tree\n const propertyAlreadyExists = findPropertyInTree(property, updatedTreeData);\n if (!propertyAlreadyExists) {\n const propertyTreeItem = convertPropertyToTreeItem(\n property,\n kbPropertiesTypes\n );\n updatedTreeData.unshift(propertyTreeItem);\n }\n });\n return updatedTreeData;\n};\n\ntype ObjectTreeInfo = {\n objectExists: boolean;\n objectTypeIndex: number;\n};\n\n/* 10. clearKbPropertiesFromTree*/\nexport const clearKbPropertiesFromTree = (\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n if (!(actualTreeState.length > 0)) {\n // nothing to do.\n return [];\n }\n const updatedTreeData: TreeViewItemModel[] = [...actualTreeState];\n for (let i = updatedTreeData.length - 1; i >= 0; i--) {\n if (updatedTreeData[i].class === \"property\") {\n updatedTreeData.splice(i, 1);\n }\n }\n return updatedTreeData;\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n/*general*/\n.tree-view-container {\n display: flex;\n}\n\n/*Header*/\n.header {\n &__top {\n border-top: 1px solid var(--gx-ide-container-border-color);\n //border-bottom: 1px solid var(--gx-ide-container-border-color);\n display: grid;\n padding: var(--gx-ide-container__padding) var(--gx-ide-container__padding) 0\n var(--gx-ide-container__padding);\n gap: var(--gx-ide-grid-column-gap);\n grid-template-columns: 1fr auto;\n grid-template-areas: \"select-directory export-cancel-buttons-group options-btn\";\n\n .select-directory {\n grid-area: select-directory;\n }\n .export-cancel-buttons-group {\n grid-area: export-cancel-buttons-group;\n }\n .options-btn {\n grid-area: options-btn;\n }\n }\n &__bottom {\n .checkboxes-wrapper {\n padding: var(--gx-ide-grid-column-gap);\n display: flex;\n flex-wrap: wrap;\n gap: var(--gx-ide-grid-column-gap);\n\n .add-checkbox {\n display: flex;\n }\n }\n }\n}\n\n/*Main*/\n.tree-container {\n &--empty {\n align-items: center;\n justify-content: center;\n }\n @include gx-ide-message(\"tall\");\n}\n\n// @keyframes toggleTreeObjectsVisibility {\n// 0% {\n// opacity: 1;\n// }\n// 100% {\n// opacity: 0;\n// }\n// }\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n State,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { CheckboxInfo } from \"@genexus/gemini/dist/types/components/form-checkbox/form-checkbox\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport {\n updateTreeModelWithObjects,\n convertKbPropertiesDataToTreeItemData,\n clearKbPropertiesFromTree\n} from \"./helpers\";\n\nimport { KB_PROPERTY, KB_OBJECT } from \"./helpers\";\n@Component({\n tag: \"gx-ide-kb-manager-export\",\n styleUrl: \"kb-manager-export.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-export\"]\n})\nexport class GxIdeKbManagerExport {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private checkedPropertiesIds: string[] = [];\n private renderedFirstTime = false;\n private flattenedObjectTypes: Map<string, ObjectType> = new Map();\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeKbManagerExportElement;\n\n private fileNameEl!: HTMLGxgFormTextElement;\n private exportAllCheckboxEl!: HTMLGxgFormCheckboxElement;\n private objectsTreeEl!: HTMLGxgTreeViewElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\n\n @State() exportAllIsChecked = false;\n @State() addKbPropertiesIsChecked = false;\n @State() checkedObjectsIds: string[] = [];\n @State() noObjects: boolean;\n\n @State() treeModel: TreeViewItemModel[] = [];\n @Watch(\"treeModel\")\n watchTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !!(newState.length === 0 || !newState);\n }\n\n @State() exportingIsInProcess = false;\n @Watch(\"exportingIsInProcess\")\n watchExportingIsInProcessHandler(isExporting: boolean) {\n if (isExporting && this.loader) {\n this.loaderEl.show = true;\n } else if (!isExporting && this.loader) {\n this.loaderEl.show = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * It allows defining the default Export File Name\n */\n @Prop() readonly fileName: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Array with the possible types of KB properties\n */\n @Prop() readonly kbPropertiesTypes: KBPropertyType[];\n\n /**\n * Array of possible object types\n */\n @Prop() readonly objectTypes: ObjectType[];\n @Watch(\"objectTypes\")\n watchObjectTypesHandler(newState: ObjectType[]) {\n this.flattenObjectTypes(newState);\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly exportFileDirectoryCallback: ExportFileDirectoryCallback;\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n /**\n * Callback invoked when the user wants to include KB properties.\n */\n @Prop() readonly addKBPropertiesCallback: KBPropertiesCallback;\n\n /**\n *Callback invoked when the user wants to add all the references for the selected objects.\n *@param itemIds:string[] The selected item ids\n *@returns : Returns an object with the items and its references\n */\n @Prop() readonly addReferencesCallback: AddReferencesCallback;\n\n /**\n * Callback invoked when the user wants to add objects.\n */\n @Prop() readonly addObjectsCallback: AddObjectsCallback;\n\n /**\n *Callback invoked when the user wants to initiate the export process.\n *@param fileName:string\n *@param itemIds:string[] The selected item ids\n *@returns : It returns a boolean indicating whether the process was successful\n */\n @Prop() readonly exportCallback: ExportCallback;\n\n /**\n * Callback invoked when the user wants to cancel the export process.\n * @returns It returns a boolean indicating whether the process could be canceled or not.\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n this.evaluateObjects();\n this.flattenObjectTypes(this.objectTypes);\n }\n\n componentDidLoad() {\n this.fileNameEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateObjects = () => {\n this.noObjects = !!(this.treeModel?.length === 0 || !this.treeModel);\n };\n\n private optionsCallbackHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns Promise<void>\n }\n };\n\n private addKBPropertiesCallbackHandler = async (e: CustomEvent) => {\n const checked = e.detail.value;\n this.addKbPropertiesIsChecked = checked;\n if (checked && this.addKBPropertiesCallback) {\n const kBPropertiesData: KBPropertyData[] =\n await this.addKBPropertiesCallback();\n if (kBPropertiesData.length === 0) {\n // nothing to do\n } else {\n // 'convertObjectDataToTreeItemData' can be used for converting KBPropertiesData as well, because the two types share the same properties\n const newTreeModel = convertKbPropertiesDataToTreeItemData(\n kBPropertiesData,\n this.kbPropertiesTypes,\n this.treeModel\n );\n this.treeModel = newTreeModel;\n }\n } else if (!checked) {\n // previous properties (if any) should be removed\n const objectsWithoutProperties = clearKbPropertiesFromTree(\n this.treeModel\n );\n this.treeModel = objectsWithoutProperties;\n }\n };\n\n private addObjectsCallbackHandler = async () => {\n if (this.addObjectsCallback) {\n const objects: ObjectData[] = await this.addObjectsCallback();\n this.updateObjects(objects);\n }\n };\n\n private addReferencesCallbackHandler = async () => {\n if (this.addReferencesCallback) {\n const objects: ObjectData[] = await this.addReferencesCallback(\n this.checkedObjectsIds\n );\n this.updateObjects(objects);\n }\n };\n\n /*\n * Used to update objects. Objects are updated when calling the 'addObjectsCallback' or 'addReferencesCallback'\n */\n private updateObjects = (objects: ObjectData[]) => {\n if (objects.length) {\n const newTreeModel = updateTreeModelWithObjects(\n objects,\n this.flattenedObjectTypes,\n this.treeModel\n );\n this.treeModel = newTreeModel;\n }\n };\n\n /*\n * Update checked objects 'checkedObjectsArray' array. Used for the 'addReferencesCallback'\n */\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n // filter 'checked objects' and 'checked properties' ids\n const checkedObjectsIds: string[] = [];\n const checkedPropertiesIds: string[] = [];\n const allItemsWithCheckbox = [...event.detail.values()];\n allItemsWithCheckbox.forEach(node => {\n if (node.item.checked && node.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(node.item.id);\n } else if (node.item.checked && node.item.metadata === KB_PROPERTY) {\n checkedPropertiesIds.push(node.item.id);\n }\n });\n this.checkedObjectsIds = checkedObjectsIds;\n this.checkedPropertiesIds = checkedPropertiesIds;\n };\n\n private exportCallbackHandler = async () => {\n if (this.exportCallback) {\n this.exportingIsInProcess = true;\n const exportAllChecked = this.exportAllCheckboxEl.checked;\n const fileName: string = this.fileNameEl.value;\n const checkedKbPropertiesIds = this.addKbPropertiesIsChecked\n ? this.checkedPropertiesIds\n : [];\n const checkedObjectIds = exportAllChecked\n ? undefined\n : this.checkedObjectsIds;\n this.exportCallback(\n fileName,\n checkedKbPropertiesIds,\n checkedObjectIds\n ).then(() => {\n this.exportingIsInProcess = false;\n });\n // returns Promise<boolean> but no procedure was detailed on the spec.\n }\n };\n\n private cancelCallbackHandler = async () => {\n if (this.cancelCallback) {\n const cancelled = await this.cancelCallback();\n if (cancelled) {\n this.exportingIsInProcess = false;\n }\n }\n };\n\n private clearButtonHandler = () => {\n /* revisar*/\n this.objectsTreeEl.updateAllItemsProperties({ checked: false });\n };\n\n private exportAllChangedHandler = (event: CustomEvent<CheckboxInfo>) => {\n this.exportAllIsChecked = event.detail.value;\n };\n\n private flattenObjectTypes(newState: ObjectType[]) {\n newState.forEach(objectType => {\n this.flattenedObjectTypes.set(objectType.id, objectType);\n });\n }\n\n private evaluateTreeViewFilters = (): string => {\n if (this.addKbPropertiesIsChecked && this.exportAllIsChecked) {\n // only show properties\n return KB_PROPERTY;\n } else if (!this.addKbPropertiesIsChecked && !this.exportAllIsChecked) {\n // only show objects\n return KB_OBJECT;\n }\n return \"none\"; // Applies if !this.addKbPropertiesIsChecked && this.exportAllIsChecked\n };\n\n private evaluateContentToDisplay = () => {\n // Nothing to display on the tree-view\n if (this.noObjects) {\n return this.renderMessage(true);\n }\n\n // The tree should be empty, because all filters are being applied.\n // Display a message to prevent a white screen.\n if (!this.addKbPropertiesIsChecked && this.exportAllIsChecked) {\n return this.renderMessage(false);\n }\n\n return (\n <gxg-tree-view\n treeModel={this.treeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checked={true}\n checkbox={true}\n filter={this.evaluateTreeViewFilters()}\n filterType={\n this.addKbPropertiesIsChecked && !this.exportAllIsChecked\n ? \"none\"\n : \"metadata\"\n }\n onCheckedItemsChange={this.objectsTreeCheckedItemsChangedHandler}\n ref={el => (this.objectsTreeEl = el as HTMLGxgTreeViewElement)}\n ></gxg-tree-view>\n );\n };\n\n private renderMessage = (nothingToDisplay: boolean) => {\n return (\n <gxg-text\n textAlign={config.gxgMessage.common.textAlign as TextAlign}\n padding={config.gxgMessage.common.textAlign as TextPadding}\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n class=\"gx-ide-message gx-ide-message--short\"\n part=\"referenced-by-empty-status-message\"\n >\n {nothingToDisplay ? (\n [\n <span>{this._componentLocale.main.noObjectsToDisplay}</span>,\n <gxg-text\n type=\"text-link-no-line\"\n textAlign=\"center\"\n onClick={this.addObjectsCallbackHandler}\n >\n {this._componentLocale.main.beginByADdingSomeObjects}\n </gxg-text>\n ]\n ) : (\n <span>{this._componentLocale.main.exportAllMessage}</span>\n )}\n </gxg-text>\n );\n };\n\n private clearButtonDisabledConditions = (): boolean => {\n return this.noObjects || this.checkedObjectsIds.length === 0;\n };\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private onClickCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noHeadingPadding\n headingPaddingTop\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <header slot=\"header\" class=\"header\">\n {/* header top */}\n <div class=\"header__top\">\n {/* export file name*/}\n <gxg-form-text\n class={{ \"select-file-input\": true }}\n value={this.fileName}\n part=\"xpz-file\"\n label={this._componentLocale.header.exportFileName}\n ref={el => (this.fileNameEl = el as HTMLGxgFormTextElement)}\n icon=\"gemini-tools/file\"\n iconPosition=\"start\"\n ></gxg-form-text>\n {/* export button / cancel button*/}\n <gxg-buttons-container\n reduced\n class=\"export-cancel-buttons-group\"\n >\n <gxg-button\n id=\"export-kb-btn\"\n part=\"export-btn\"\n onClick={this.exportCallbackHandler}\n disabled={this.noObjects}\n >\n {this._componentLocale.header.exportButton}\n </gxg-button>\n <gxg-button\n id=\"cancel-kb-export-btn\"\n part=\"cancel-button\"\n onClick={this.onClickCancelCallbackHandler}\n disabled={!this.exportingIsInProcess || this.noObjects}\n >\n {this._componentLocale.header.cancelButton}\n </gxg-button>\n </gxg-buttons-container>\n {/* settings/options button*/}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/settings\"\n part=\"select-kb-btn\"\n class={{ \"options-btn\": true }}\n onClick={this.optionsCallbackHandler}\n >\n {this._componentLocale.header.optionsButton}\n </gxg-button>\n </div>\n {/* header bottom */}\n <div class=\"header__bottom\">\n <div class={{ \"checkboxes-wrapper\": true }}>\n {/* checkboxes */}\n <gxg-form-checkbox\n label={\n this._componentLocale.main.addKnowledgeBaseDescription\n }\n onChange={this.addKBPropertiesCallbackHandler}\n part=\"add-kb-checkbox\"\n ></gxg-form-checkbox>\n <gxg-form-checkbox\n label={this._componentLocale.main.exportAll}\n part=\"export-all-checkbox\"\n ref={el =>\n (this.exportAllCheckboxEl =\n el as HTMLGxgFormCheckboxElement)\n }\n disabled={this.noObjects}\n onChange={this.exportAllChangedHandler}\n ></gxg-form-checkbox>\n </div>\n </div>\n </header>\n\n {/* main */}\n\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--empty\":\n this.noObjects ||\n (!this.noObjects &&\n this.exportAllIsChecked &&\n !this.addKbPropertiesIsChecked)\n // \"tree-container--export-all\": this.exportAllIsChecked\n }}\n >\n {this.evaluateContentToDisplay()}\n </div>\n\n {/* footer */}\n {/* clear 'button' */}\n <gxg-text\n type=\"button-like\"\n part=\"export-button\"\n slot=\"footer-start\"\n onClick={this.clearButtonHandler}\n disabled={this.clearButtonDisabledConditions()}\n >\n {this._componentLocale.footer.clearButton}\n </gxg-text>\n {/* references button */}\n <gxg-button\n onClick={this.addReferencesCallbackHandler}\n type=\"outlined-text-icon\"\n icon=\"general/references\"\n part=\"export-button\"\n class={{ \"cancel-btn\": true }}\n disabled={this.exportAllIsChecked}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.referencesButton}\n </gxg-button>\n {/* add button */}\n <gxg-button\n type=\"primary-text-icon\"\n icon=\"menus/new-object\"\n part=\"export-button\"\n class={{ \"cancel-btn\": true }}\n onClick={this.addObjectsCallbackHandler}\n disabled={this.exportAllIsChecked}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.addButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n {this.loader && false ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n container={this.el}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\n/* Kb Property*/\nexport type KBPropertiesCallback = () => Promise<KBPropertyData[]>;\nexport type KBPropertyData = {\n typeId: string;\n id: string;\n name: string;\n};\nexport type KBPropertyType = {\n id: string;\n icon: string;\n};\n\n/* Objects */\nexport type ObjectData = {\n typeId: string;\n id: string;\n name: string;\n};\nexport type ObjectType = {\n id: string;\n name: string;\n icon: string;\n};\n\n/* Callbacks*/\nexport type ExportFileDirectoryCallback = () => Promise<string>;\n\nexport type OptionsCallback = () => Promise<void>;\n\nexport type AddObjectsCallback = () => Promise<ObjectData[]>;\n\nexport type ExportCallback = (\n fileName: string,\n checkedKbPropertiesIds: string[],\n checkedObjectIds: string[]\n) => Promise<boolean>;\n\nexport type AddReferencesCallback = (\n objectIds: string[]\n) => Promise<ObjectData[]>;\n\nexport type CancelCallback = () => Promise<boolean>;\n"],"version":3}
1
+ {"file":"gx-ide-kb-manager-export.entry.cjs.js","mappings":"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","names":["h","config","Locale","Host"],"sources":["src/components/kb-manager-export/helpers.ts","src/components/kb-manager-export/kb-manager-export.scss?tag=gx-ide-kb-manager-export&encapsulation=shadow","src/components/kb-manager-export/kb-manager-export.tsx"],"sourcesContent":["// /* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport {\n ObjectData,\n ObjectType,\n KBPropertyData,\n KBPropertyType\n} from \"./kb-manager-export\";\nexport const KB_PROPERTY = \"property\";\nexport const KB_OBJECT = \"object\";\n\n/*\nINDEX:\n1. getObjectIcon\n2. convertObjectTypeToTreeItem\n3. convertObjectToTreeItem\n4. getObjectType\n5. findObjectInTree\n6. findPropertyInTree\n7. convertPropertyToTreeItem\n8. updateTreeModelWithObjects\n9. convertKbPropertiesDataToTreeItemData\n10. clearKbPropertiesFromTree\n*/\n\n/* 1.2 getIcon (for properties)*/\nconst getPropertyIcon = (\n typeId: string,\n kbPropertiesTypes: KBPropertyType[]\n): string => {\n // The object icon has to be retrieved from the ObjetTypes array, by matching the ObjectData typeId with the ObjectType id.\n const propertyType = kbPropertiesTypes.find(\n propertyType => propertyType.id === typeId\n );\n if (propertyType) {\n return propertyType.icon;\n } else {\n return undefined;\n }\n};\n\n/* 2. convertObjectTypeToTreeItem*/\nconst convertObjectTypeToTreeItem = (\n objectType: ObjectType\n): TreeViewItemModel => ({\n caption: objectType.name,\n id: objectType.id,\n startImgSrc: objectType.icon,\n leaf: false,\n class: \"object-type tree-view-item\",\n expanded: true,\n items: []\n});\n\n/* 3. convertObjectToTreeItem*/\nconst convertObjectToTreeItem = (\n object: ObjectData,\n objectTypes: Map<string, ObjectType>\n): TreeViewItemModel => ({\n caption: object.name,\n id: object.id,\n startImgSrc: objectTypes.get(object.typeId).icon,\n class: \"object tree-view-item\",\n metadata: KB_OBJECT,\n leaf: true\n});\n\n/* 5. findObjectInTree*/\nconst findObjectInTree = (\n object: ObjectData,\n actualTreeState: TreeViewItemModel[]\n): ObjectTreeInfo => {\n const objectTreeItemInfo = {\n objectExists: false,\n objectTypeIndex: -1\n };\n if (actualTreeState) {\n const objectTypeTreeItemIndex = actualTreeState.findIndex(\n objectTypeTreeItem => {\n return objectTypeTreeItem.id === object.typeId;\n }\n );\n if (objectTypeTreeItemIndex !== -1) {\n objectTreeItemInfo.objectTypeIndex = objectTypeTreeItemIndex;\n // objectType exists as a node in the actual tree.\n // Now try to find the object\n const objectFound = actualTreeState[objectTypeTreeItemIndex].items?.find(\n objectTreeItem => {\n return objectTreeItem.id === object.id;\n }\n );\n if (objectFound) {\n objectTreeItemInfo.objectExists = true;\n }\n }\n }\n return objectTreeItemInfo;\n};\n\n/* 6. findPropertyInTree */\nconst findPropertyInTree = (\n property: KBPropertyData,\n updatedTreeData: TreeViewItemModel[]\n): boolean => {\n const found = updatedTreeData.find(node => {\n return node.id === property.id;\n });\n if (found) {\n return true;\n }\n return false;\n};\n\n/* 7. convertPropertyToTreeItem */\nconst convertPropertyToTreeItem = (\n property: KBPropertyData,\n kbPropertiesTypes: KBPropertyType[]\n): TreeViewItemModel => ({\n caption: property.name,\n id: property.id,\n startImgSrc: getPropertyIcon(property.typeId, kbPropertiesTypes),\n class: \"property tree-view-item\",\n metadata: KB_PROPERTY,\n leaf: true\n});\n\n/* 8. updateTreeModelWithObjects*/\nexport const updateTreeModelWithObjects = (\n objects: ObjectData[] | undefined,\n objectTypes: Map<string, ObjectType>,\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const updatedTreeData: TreeViewItemModel[] = [...actualTreeState];\n if (!objects) {\n // nothing to do\n return updatedTreeData;\n }\n objects.forEach(object => {\n // objects that already exists in the actual actualTreeState should not be added.\n // We can find the object in the actual actualTreeState.\n const objectTreeItemInfo: ObjectTreeInfo = findObjectInTree(\n object,\n updatedTreeData\n );\n if (!objectTreeItemInfo.objectExists) {\n // object does not exists in actualTreeState\n // if the objectType tree node exists, insert inside.\n // if the objectType tree node does not exists, create object type node first.\n if (objectTreeItemInfo.objectTypeIndex === -1) {\n const objectType: ObjectType = objectTypes.get(object.typeId);\n if (objectType !== undefined) {\n const objectTypeTreeItem = convertObjectTypeToTreeItem(objectType);\n objectTreeItemInfo.objectTypeIndex =\n updatedTreeData.push(objectTypeTreeItem) - 1;\n }\n }\n const objectAsTreeItem: TreeViewItemModel = convertObjectToTreeItem(\n object,\n objectTypes\n );\n // insert object in tree (under the object type tree node)\n updatedTreeData[objectTreeItemInfo.objectTypeIndex].items.push(\n objectAsTreeItem\n );\n }\n });\n return updatedTreeData;\n};\n\n/* 9. convertKbPropertiesDataToTreeItemData*/\nexport const convertKbPropertiesDataToTreeItemData = (\n properties: KBPropertyData[],\n kbPropertiesTypes: KBPropertyType[],\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const updatedTreeData: TreeViewItemModel[] = [...actualTreeState];\n if (!properties) {\n // nothing to do\n return updatedTreeData;\n }\n properties.forEach(property => {\n // properties have no parent node, and they should be added at the beginning of the tree\n const propertyAlreadyExists = findPropertyInTree(property, updatedTreeData);\n if (!propertyAlreadyExists) {\n const propertyTreeItem = convertPropertyToTreeItem(\n property,\n kbPropertiesTypes\n );\n updatedTreeData.unshift(propertyTreeItem);\n }\n });\n return updatedTreeData;\n};\n\ntype ObjectTreeInfo = {\n objectExists: boolean;\n objectTypeIndex: number;\n};\n\n/* 10. clearKbPropertiesFromTree*/\nexport const clearKbPropertiesFromTree = (\n actualTreeState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n if (!(actualTreeState.length > 0)) {\n // nothing to do.\n return [];\n }\n const updatedTreeData: TreeViewItemModel[] = [...actualTreeState];\n for (let i = updatedTreeData.length - 1; i >= 0; i--) {\n if (updatedTreeData[i].class === \"property\") {\n updatedTreeData.splice(i, 1);\n }\n }\n return updatedTreeData;\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n/*general*/\n.tree-view-container {\n display: flex;\n}\n\n/*Header*/\n.header {\n &__top {\n border-top: 1px solid var(--gx-ide-container-border-color);\n //border-bottom: 1px solid var(--gx-ide-container-border-color);\n display: grid;\n padding: var(--gx-ide-container__padding) var(--gx-ide-container__padding) 0\n var(--gx-ide-container__padding);\n gap: var(--gx-ide-grid-column-gap);\n grid-template-columns: 1fr auto;\n grid-template-areas: \"select-directory export-cancel-buttons-group options-btn\";\n\n .select-directory {\n grid-area: select-directory;\n }\n .export-cancel-buttons-group {\n grid-area: export-cancel-buttons-group;\n }\n .options-btn {\n grid-area: options-btn;\n }\n }\n &__bottom {\n .checkboxes-wrapper {\n padding: var(--gx-ide-grid-column-gap);\n display: flex;\n flex-wrap: wrap;\n gap: var(--gx-ide-grid-column-gap);\n\n .add-checkbox {\n display: flex;\n }\n }\n }\n}\n\n/*Main*/\n.tree-container {\n &--empty {\n align-items: center;\n justify-content: center;\n }\n @include gx-ide-message(\"tall\");\n}\n\n// @keyframes toggleTreeObjectsVisibility {\n// 0% {\n// opacity: 1;\n// }\n// 100% {\n// opacity: 0;\n// }\n// }\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n State,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { CheckboxInfo } from \"@genexus/gemini/dist/types/components/form-checkbox/form-checkbox\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport {\n updateTreeModelWithObjects,\n convertKbPropertiesDataToTreeItemData,\n clearKbPropertiesFromTree\n} from \"./helpers\";\n\nimport { KB_PROPERTY, KB_OBJECT } from \"./helpers\";\n@Component({\n tag: \"gx-ide-kb-manager-export\",\n styleUrl: \"kb-manager-export.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-export\"]\n})\nexport class GxIdeKbManagerExport {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private checkedPropertiesIds: string[] = [];\n private renderedFirstTime = false;\n private flattenedObjectTypes: Map<string, ObjectType> = new Map();\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeKbManagerExportElement;\n\n private fileNameEl!: HTMLGxgFormTextElement;\n private exportAllCheckboxEl!: HTMLGxgFormCheckboxElement;\n private objectsTreeEl!: HTMLGxgTreeViewElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n\n // 3.STATE() VARIABLES //\n\n @State() exportAllIsChecked = false;\n @State() addKbPropertiesIsChecked = false;\n @State() checkedObjectsIds: string[] = [];\n @State() noObjects: boolean;\n\n @State() treeModel: TreeViewItemModel[] = [];\n @Watch(\"treeModel\")\n watchTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !!(newState.length === 0 || !newState);\n }\n\n @State() exportingIsInProcess = false;\n @Watch(\"exportingIsInProcess\")\n watchExportingIsInProcessHandler(isExporting: boolean) {\n if (isExporting && this.loader) {\n this.loaderEl.show = true;\n } else if (!isExporting && this.loader) {\n this.loaderEl.show = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * It allows defining the default Export File Name\n */\n @Prop() readonly fileName: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Array with the possible types of KB properties\n */\n @Prop() readonly kbPropertiesTypes: KBPropertyType[];\n\n /**\n * Array of possible object types\n */\n @Prop() readonly objectTypes: ObjectType[];\n @Watch(\"objectTypes\")\n watchObjectTypesHandler(newState: ObjectType[]) {\n this.flattenObjectTypes(newState);\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly exportFileDirectoryCallback: ExportFileDirectoryCallback;\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n /**\n * Callback invoked when the user wants to include KB properties.\n */\n @Prop() readonly addKBPropertiesCallback: KBPropertiesCallback;\n\n /**\n *Callback invoked when the user wants to add all the references for the selected objects.\n *@param itemIds:string[] The selected item ids\n *@returns : Returns an object with the items and its references\n */\n @Prop() readonly addReferencesCallback: AddReferencesCallback;\n\n /**\n * Callback invoked when the user wants to add objects.\n */\n @Prop() readonly addObjectsCallback: AddObjectsCallback;\n\n /**\n *Callback invoked when the user wants to initiate the export process.\n *@param fileName:string\n *@param itemIds:string[] The selected item ids\n *@returns : It returns a boolean indicating whether the process was successful\n */\n @Prop() readonly exportCallback: ExportCallback;\n\n /**\n * Callback invoked when the user wants to cancel the export process.\n * @returns It returns a boolean indicating whether the process could be canceled or not.\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n this.evaluateObjects();\n this.flattenObjectTypes(this.objectTypes);\n }\n\n componentDidLoad() {\n this.fileNameEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n private evaluateObjects = () => {\n this.noObjects = !!(this.treeModel?.length === 0 || !this.treeModel);\n };\n\n private optionsCallbackHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns Promise<void>\n }\n };\n\n private addKBPropertiesCallbackHandler = async (e: CustomEvent) => {\n const checked = e.detail.value;\n this.addKbPropertiesIsChecked = checked;\n if (checked && this.addKBPropertiesCallback) {\n const kBPropertiesData: KBPropertyData[] =\n await this.addKBPropertiesCallback();\n if (kBPropertiesData.length === 0) {\n // nothing to do\n } else {\n // 'convertObjectDataToTreeItemData' can be used for converting KBPropertiesData as well, because the two types share the same properties\n const newTreeModel = convertKbPropertiesDataToTreeItemData(\n kBPropertiesData,\n this.kbPropertiesTypes,\n this.treeModel\n );\n this.treeModel = newTreeModel;\n }\n } else if (!checked) {\n // previous properties (if any) should be removed\n const objectsWithoutProperties = clearKbPropertiesFromTree(\n this.treeModel\n );\n this.treeModel = objectsWithoutProperties;\n }\n };\n\n private addObjectsCallbackHandler = async () => {\n if (this.addObjectsCallback) {\n const objects: ObjectData[] = await this.addObjectsCallback();\n this.updateObjects(objects);\n }\n };\n\n private addReferencesCallbackHandler = async () => {\n if (this.addReferencesCallback) {\n const objects: ObjectData[] = await this.addReferencesCallback(\n this.checkedObjectsIds\n );\n this.updateObjects(objects);\n }\n };\n\n /*\n * Used to update objects. Objects are updated when calling the 'addObjectsCallback' or 'addReferencesCallback'\n */\n private updateObjects = (objects: ObjectData[]) => {\n if (objects.length) {\n const newTreeModel = updateTreeModelWithObjects(\n objects,\n this.flattenedObjectTypes,\n this.treeModel\n );\n this.treeModel = newTreeModel;\n }\n };\n\n /*\n * Update checked objects 'checkedObjectsArray' array. Used for the 'addReferencesCallback'\n */\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n // filter 'checked objects' and 'checked properties' ids\n const checkedObjectsIds: string[] = [];\n const checkedPropertiesIds: string[] = [];\n const allItemsWithCheckbox = [...event.detail.values()];\n allItemsWithCheckbox.forEach(node => {\n if (node.item.checked && node.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(node.item.id);\n } else if (node.item.checked && node.item.metadata === KB_PROPERTY) {\n checkedPropertiesIds.push(node.item.id);\n }\n });\n this.checkedObjectsIds = checkedObjectsIds;\n this.checkedPropertiesIds = checkedPropertiesIds;\n };\n\n private exportCallbackHandler = async () => {\n if (this.exportCallback) {\n this.exportingIsInProcess = true;\n const exportAllChecked = this.exportAllCheckboxEl.checked;\n const fileName: string = this.fileNameEl.value;\n const checkedKbPropertiesIds = this.addKbPropertiesIsChecked\n ? this.checkedPropertiesIds\n : [];\n const checkedObjectIds = exportAllChecked\n ? undefined\n : this.checkedObjectsIds;\n this.exportCallback(\n fileName,\n checkedKbPropertiesIds,\n checkedObjectIds\n ).then(() => {\n this.exportingIsInProcess = false;\n });\n // returns Promise<boolean> but no procedure was detailed on the spec.\n }\n };\n\n private cancelCallbackHandler = async () => {\n if (this.cancelCallback) {\n const cancelled = await this.cancelCallback();\n if (cancelled) {\n this.exportingIsInProcess = false;\n }\n }\n };\n\n private clearButtonHandler = () => {\n /* revisar*/\n this.objectsTreeEl.updateAllItemsProperties({ checked: false });\n };\n\n private exportAllChangedHandler = (event: CustomEvent<CheckboxInfo>) => {\n this.exportAllIsChecked = event.detail.value;\n };\n\n private flattenObjectTypes(newState: ObjectType[]) {\n newState.forEach(objectType => {\n this.flattenedObjectTypes.set(objectType.id, objectType);\n });\n }\n\n private evaluateTreeViewFilters = (): string => {\n if (this.addKbPropertiesIsChecked && this.exportAllIsChecked) {\n // only show properties\n return KB_PROPERTY;\n } else if (!this.addKbPropertiesIsChecked && !this.exportAllIsChecked) {\n // only show objects\n return KB_OBJECT;\n }\n return \"none\"; // Applies if !this.addKbPropertiesIsChecked && this.exportAllIsChecked\n };\n\n private evaluateContentToDisplay = () => {\n // Nothing to display on the tree-view\n if (this.noObjects) {\n return this.renderMessage(true);\n }\n\n // The tree should be empty, because all filters are being applied.\n // Display a message to prevent a white screen.\n if (!this.addKbPropertiesIsChecked && this.exportAllIsChecked) {\n return this.renderMessage(false);\n }\n\n return (\n <gxg-tree-view\n treeModel={this.treeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checked={true}\n checkbox={true}\n filter={this.evaluateTreeViewFilters()}\n filterType={\n this.addKbPropertiesIsChecked && !this.exportAllIsChecked\n ? \"none\"\n : \"metadata\"\n }\n onCheckedItemsChange={this.objectsTreeCheckedItemsChangedHandler}\n ref={el => (this.objectsTreeEl = el as HTMLGxgTreeViewElement)}\n ></gxg-tree-view>\n );\n };\n\n private renderMessage = (nothingToDisplay: boolean) => {\n return (\n <gxg-text\n textAlign={config.gxgMessage.common.textAlign as TextAlign}\n padding={config.gxgMessage.common.textAlign as TextPadding}\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n class=\"gx-ide-message gx-ide-message--short\"\n part=\"referenced-by-empty-status-message\"\n >\n {nothingToDisplay ? (\n [\n <span>{this._componentLocale.main.noObjectsToDisplay}</span>,\n <gxg-text\n type=\"text-link-no-line\"\n textAlign=\"center\"\n onClick={this.addObjectsCallbackHandler}\n >\n {this._componentLocale.main.beginByADdingSomeObjects}\n </gxg-text>\n ]\n ) : (\n <span>{this._componentLocale.main.exportAllMessage}</span>\n )}\n </gxg-text>\n );\n };\n\n private clearButtonDisabledConditions = (): boolean => {\n return this.noObjects || this.checkedObjectsIds.length === 0;\n };\n\n private loaderCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n private onClickCancelCallbackHandler = async () => {\n this.cancelCallbackHandler();\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noHeadingPadding\n headingPaddingTop\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <header slot=\"header\" class=\"header\">\n {/* header top */}\n <div class=\"header__top\">\n {/* export file name*/}\n <gxg-form-text\n class={{ \"select-file-input\": true }}\n value={this.fileName}\n part=\"xpz-file\"\n label={this._componentLocale.header.exportFileName}\n ref={el => (this.fileNameEl = el as HTMLGxgFormTextElement)}\n icon=\"gemini-tools/file\"\n iconPosition=\"start\"\n ></gxg-form-text>\n {/* export button / cancel button*/}\n <gxg-buttons-container\n reduced\n class=\"export-cancel-buttons-group\"\n >\n <gxg-button\n id=\"export-kb-btn\"\n part=\"export-btn\"\n onClick={this.exportCallbackHandler}\n disabled={this.noObjects}\n >\n {this._componentLocale.header.exportButton}\n </gxg-button>\n <gxg-button\n id=\"cancel-kb-export-btn\"\n part=\"cancel-button\"\n onClick={this.onClickCancelCallbackHandler}\n disabled={!this.exportingIsInProcess || this.noObjects}\n >\n {this._componentLocale.header.cancelButton}\n </gxg-button>\n </gxg-buttons-container>\n {/* settings/options button*/}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/settings\"\n part=\"select-kb-btn\"\n class={{ \"options-btn\": true }}\n onClick={this.optionsCallbackHandler}\n >\n {this._componentLocale.header.optionsButton}\n </gxg-button>\n </div>\n {/* header bottom */}\n <div class=\"header__bottom\">\n <div class={{ \"checkboxes-wrapper\": true }}>\n {/* checkboxes */}\n <gxg-form-checkbox\n label={\n this._componentLocale.main.addKnowledgeBaseDescription\n }\n onChange={this.addKBPropertiesCallbackHandler}\n part=\"add-kb-checkbox\"\n ></gxg-form-checkbox>\n <gxg-form-checkbox\n label={this._componentLocale.main.exportAll}\n part=\"export-all-checkbox\"\n ref={el =>\n (this.exportAllCheckboxEl =\n el as HTMLGxgFormCheckboxElement)\n }\n disabled={this.noObjects}\n onChange={this.exportAllChangedHandler}\n ></gxg-form-checkbox>\n </div>\n </div>\n </header>\n\n {/* main */}\n\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--empty\":\n this.noObjects ||\n (!this.noObjects &&\n this.exportAllIsChecked &&\n !this.addKbPropertiesIsChecked)\n // \"tree-container--export-all\": this.exportAllIsChecked\n }}\n >\n {this.evaluateContentToDisplay()}\n </div>\n\n {/* footer */}\n {/* clear 'button' */}\n <gxg-text\n type=\"button-like\"\n part=\"export-button\"\n slot=\"footer-start\"\n onClick={this.clearButtonHandler}\n disabled={this.clearButtonDisabledConditions()}\n >\n {this._componentLocale.footer.clearButton}\n </gxg-text>\n {/* references button */}\n <gxg-button\n onClick={this.addReferencesCallbackHandler}\n type=\"outlined-text-icon\"\n icon=\"general/references\"\n part=\"export-button\"\n class={{ \"cancel-btn\": true }}\n disabled={this.exportAllIsChecked}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.referencesButton}\n </gxg-button>\n {/* add button */}\n <gxg-button\n type=\"primary-text-icon\"\n icon=\"menus/new-object\"\n part=\"export-button\"\n class={{ \"cancel-btn\": true }}\n onClick={this.addObjectsCallbackHandler}\n disabled={this.exportAllIsChecked}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.addButton}\n </gxg-button>\n </gx-ide-container>\n </div>\n {this.loader && false ? (\n <gxg-ide-loader\n cancelLabel={this._componentLocale.loader.cancelLabel}\n container={this.el}\n loaderTitle={this._componentLocale.loader.title}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n cancelCallback={this.loaderCancelCallbackHandler}\n ></gxg-ide-loader>\n ) : null}\n </Host>\n );\n }\n}\n\n/* Kb Property*/\nexport type KBPropertiesCallback = () => Promise<KBPropertyData[]>;\nexport type KBPropertyData = {\n typeId: string;\n id: string;\n name: string;\n};\nexport type KBPropertyType = {\n id: string;\n icon: string;\n};\n\n/* Objects */\nexport type ObjectData = {\n typeId: string;\n id: string;\n name: string;\n};\nexport type ObjectType = {\n id: string;\n name: string;\n icon: string;\n};\n\n/* Callbacks*/\nexport type ExportFileDirectoryCallback = () => Promise<string>;\n\nexport type OptionsCallback = () => Promise<void>;\n\nexport type AddObjectsCallback = () => Promise<ObjectData[]>;\n\nexport type ExportCallback = (\n fileName: string,\n checkedKbPropertiesIds: string[],\n checkedObjectIds: string[]\n) => Promise<boolean>;\n\nexport type AddReferencesCallback = (\n objectIds: string[]\n) => Promise<ObjectData[]>;\n\nexport type CancelCallback = () => Promise<boolean>;\n"],"version":3}