@genexus/genexus-ide-ui 1.1.56 → 1.1.57

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 (392) hide show
  1. package/dist/cjs/assets-manager-089e91b1.js +7 -0
  2. package/dist/cjs/assets-manager-089e91b1.js.map +1 -0
  3. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +8 -4
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  5. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +8 -4
  6. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  7. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +12 -16
  8. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +8 -4
  10. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +6 -2
  12. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +6 -2
  14. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +6 -2
  16. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-design-import.cjs.entry.js +11 -7
  18. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js +6 -2
  20. package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +7 -3
  22. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-file-item.cjs.entry.js +9 -5
  24. package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +6 -2
  26. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  27. package/dist/cjs/gx-ide-json-import.cjs.entry.js +7 -3
  28. package/dist/cjs/gx-ide-json-import.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +10 -6
  30. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +9 -5
  32. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +7 -3
  34. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  35. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +6 -2
  36. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  37. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +7 -3
  38. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  39. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +7 -3
  40. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +8 -4
  42. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +6 -2
  44. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-references.cjs.entry.js +7 -3
  46. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +263 -20
  48. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +7 -3
  50. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +9 -5
  52. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -2
  54. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gx-ide-splash.cjs.entry.js +6 -2
  56. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -5
  58. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gx-ide-starting-template.cjs.entry.js +6 -2
  60. package/dist/cjs/gx-ide-starting-template.cjs.entry.js.map +1 -1
  61. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +14 -10
  62. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +7 -3
  64. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +10 -6
  66. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +6 -2
  68. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  69. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +17 -13
  70. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  71. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +6 -2
  72. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  73. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +6 -2
  74. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  75. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +8 -4
  76. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  77. package/dist/cjs/index.cjs.js +0 -3
  78. package/dist/cjs/index.cjs.js.map +1 -1
  79. package/dist/cjs/mer-animated-dots-001c7465.js +79 -0
  80. package/dist/cjs/mer-animated-dots-001c7465.js.map +1 -0
  81. package/dist/cjs/{tabular-grid-render-b1767da2.js → tabular-grid-render-f97a5ab3.js} +18 -14
  82. package/dist/cjs/tabular-grid-render-f97a5ab3.js.map +1 -0
  83. package/dist/cjs/{utilities-0e316b39.js → utilities-0815a260.js} +10 -6
  84. package/dist/cjs/utilities-0815a260.js.map +1 -0
  85. package/dist/collection/components/chat/chat-container/chat-container.js +2 -10
  86. package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -1
  87. package/dist/collection/index.js +0 -2
  88. package/dist/collection/index.js.map +1 -1
  89. package/dist/collection/showcase/chat-container/callbacks.js +9 -9
  90. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  91. package/dist/collection/showcase/chat-container/chat.showcase.js +4 -4
  92. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  93. package/dist/collection/showcase/chat-container/models.js +18 -18
  94. package/dist/collection/showcase/chat-container/models.js.map +1 -1
  95. package/dist/components/chat-container.js +6 -11
  96. package/dist/components/chat-container.js.map +1 -1
  97. package/dist/components/chat-welcome.js +4 -1
  98. package/dist/components/chat-welcome.js.map +1 -1
  99. package/dist/components/entity-selector.js +4 -1
  100. package/dist/components/entity-selector.js.map +1 -1
  101. package/dist/components/file-item.js +4 -1
  102. package/dist/components/file-item.js.map +1 -1
  103. package/dist/components/gx-ide-bpm-app-declaration.js +4 -1
  104. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  105. package/dist/components/gx-ide-bpm-task-documents.js +4 -1
  106. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  107. package/dist/components/gx-ide-create-kb-from-server.js +4 -1
  108. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  109. package/dist/components/gx-ide-current-user-info.js +4 -1
  110. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  111. package/dist/components/gx-ide-data-selector.js +4 -1
  112. package/dist/components/gx-ide-data-selector.js.map +1 -1
  113. package/dist/components/gx-ide-data-type-selector.js +4 -1
  114. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  115. package/dist/components/gx-ide-design-import.js +4 -1
  116. package/dist/components/gx-ide-design-import.js.map +1 -1
  117. package/dist/components/gx-ide-details-acknowledgements.js +4 -1
  118. package/dist/components/gx-ide-details-acknowledgements.js.map +1 -1
  119. package/dist/components/gx-ide-file-uploader.js +4 -1
  120. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  121. package/dist/components/gx-ide-json-import.js +4 -1
  122. package/dist/components/gx-ide-json-import.js.map +1 -1
  123. package/dist/components/gx-ide-kb-manager-export.js +4 -1
  124. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  125. package/dist/components/gx-ide-kb-manager-import.js +4 -1
  126. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  127. package/dist/components/gx-ide-manage-module-references.js +4 -1
  128. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  129. package/dist/components/gx-ide-new-kb.js +4 -1
  130. package/dist/components/gx-ide-new-kb.js.map +1 -1
  131. package/dist/components/gx-ide-object-selector.js +4 -1
  132. package/dist/components/gx-ide-object-selector.js.map +1 -1
  133. package/dist/components/gx-ide-open-api-import.js +4 -1
  134. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  135. package/dist/components/gx-ide-plugin-details.js +4 -1
  136. package/dist/components/gx-ide-plugin-details.js.map +1 -1
  137. package/dist/components/gx-ide-plugin-explorer.js +4 -1
  138. package/dist/components/gx-ide-plugin-explorer.js.map +1 -1
  139. package/dist/components/gx-ide-references.js +4 -1
  140. package/dist/components/gx-ide-references.js.map +1 -1
  141. package/dist/components/gx-ide-sc-chat-container.js +263 -20
  142. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  143. package/dist/components/gx-ide-server-selector.js +4 -1
  144. package/dist/components/gx-ide-server-selector.js.map +1 -1
  145. package/dist/components/gx-ide-share-kb.js +4 -1
  146. package/dist/components/gx-ide-share-kb.js.map +1 -1
  147. package/dist/components/gx-ide-splash.js +4 -1
  148. package/dist/components/gx-ide-splash.js.map +1 -1
  149. package/dist/components/gx-ide-start-page.js +4 -1
  150. package/dist/components/gx-ide-start-page.js.map +1 -1
  151. package/dist/components/gx-ide-starting-template.js +4 -1
  152. package/dist/components/gx-ide-starting-template.js.map +1 -1
  153. package/dist/components/gx-ide-team-dev-bring-changes.js +4 -1
  154. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  155. package/dist/components/gx-ide-team-dev-history.js +4 -1
  156. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  157. package/dist/components/gx-ide-team-dev-update-partial-selection.js +4 -1
  158. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  159. package/dist/components/gx-ide-team-dev-update.js +4 -1
  160. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  161. package/dist/components/gx-ide-welcome-page.js +4 -1
  162. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  163. package/dist/components/gx-ide-ww-attributes.js +4 -1
  164. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  165. package/dist/components/gx-ide-ww-files.js +4 -1
  166. package/dist/components/gx-ide-ww-files.js.map +1 -1
  167. package/dist/components/index.js +0 -1
  168. package/dist/components/index.js.map +1 -1
  169. package/dist/components/mer-animated-dots.js +81 -0
  170. package/dist/components/mer-animated-dots.js.map +1 -0
  171. package/dist/components/select-kb-items.js +4 -1
  172. package/dist/components/select-kb-items.js.map +1 -1
  173. package/dist/components/tabular-grid-render.js +4 -1
  174. package/dist/components/tabular-grid-render.js.map +1 -1
  175. package/dist/components/utilities.js +4 -1
  176. package/dist/components/utilities.js.map +1 -1
  177. package/dist/esm/assets-manager-7d6fc08f.js +5 -0
  178. package/dist/esm/assets-manager-7d6fc08f.js.map +1 -0
  179. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +5 -1
  180. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  181. package/dist/esm/gx-ide-bpm-task-documents.entry.js +5 -1
  182. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  183. package/dist/esm/gx-ide-chat-container_2.entry.js +7 -11
  184. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -1
  185. package/dist/esm/gx-ide-create-kb-from-server.entry.js +5 -1
  186. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  187. package/dist/esm/gx-ide-current-user-info.entry.js +5 -1
  188. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  189. package/dist/esm/gx-ide-data-selector.entry.js +5 -1
  190. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  191. package/dist/esm/gx-ide-data-type-selector.entry.js +5 -1
  192. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  193. package/dist/esm/gx-ide-design-import.entry.js +5 -1
  194. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  195. package/dist/esm/gx-ide-details-acknowledgements.entry.js +5 -1
  196. package/dist/esm/gx-ide-details-acknowledgements.entry.js.map +1 -1
  197. package/dist/esm/gx-ide-entity-selector.entry.js +5 -1
  198. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  199. package/dist/esm/gx-ide-file-item.entry.js +5 -1
  200. package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
  201. package/dist/esm/gx-ide-file-uploader.entry.js +5 -1
  202. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  203. package/dist/esm/gx-ide-json-import.entry.js +5 -1
  204. package/dist/esm/gx-ide-json-import.entry.js.map +1 -1
  205. package/dist/esm/gx-ide-kb-manager-export.entry.js +5 -1
  206. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  207. package/dist/esm/gx-ide-kb-manager-import.entry.js +5 -1
  208. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  209. package/dist/esm/gx-ide-manage-module-references.entry.js +5 -1
  210. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  211. package/dist/esm/gx-ide-new-kb.entry.js +5 -1
  212. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  213. package/dist/esm/gx-ide-object-selector.entry.js +5 -1
  214. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  215. package/dist/esm/gx-ide-open-api-import.entry.js +5 -1
  216. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  217. package/dist/esm/gx-ide-plugin-details.entry.js +5 -1
  218. package/dist/esm/gx-ide-plugin-details.entry.js.map +1 -1
  219. package/dist/esm/gx-ide-plugin-explorer.entry.js +5 -1
  220. package/dist/esm/gx-ide-plugin-explorer.entry.js.map +1 -1
  221. package/dist/esm/gx-ide-references.entry.js +5 -1
  222. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  223. package/dist/esm/gx-ide-sc-chat-container.entry.js +263 -20
  224. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  225. package/dist/esm/gx-ide-select-kb-items.entry.js +5 -1
  226. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  227. package/dist/esm/gx-ide-server-selector.entry.js +5 -1
  228. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  229. package/dist/esm/gx-ide-share-kb.entry.js +5 -1
  230. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  231. package/dist/esm/gx-ide-splash.entry.js +5 -1
  232. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  233. package/dist/esm/gx-ide-start-page.entry.js +5 -1
  234. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  235. package/dist/esm/gx-ide-starting-template.entry.js +5 -1
  236. package/dist/esm/gx-ide-starting-template.entry.js.map +1 -1
  237. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +7 -3
  238. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  239. package/dist/esm/gx-ide-team-dev-commit.entry.js +7 -3
  240. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  241. package/dist/esm/gx-ide-team-dev-history.entry.js +6 -2
  242. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  243. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +5 -1
  244. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  245. package/dist/esm/gx-ide-team-dev-update.entry.js +7 -3
  246. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  247. package/dist/esm/gx-ide-welcome-page.entry.js +5 -1
  248. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  249. package/dist/esm/gx-ide-ww-attributes.entry.js +5 -1
  250. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  251. package/dist/esm/gx-ide-ww-files.entry.js +5 -1
  252. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  253. package/dist/esm/index.js +0 -2
  254. package/dist/esm/index.js.map +1 -1
  255. package/dist/esm/mer-animated-dots-75d88f7e.js +77 -0
  256. package/dist/esm/mer-animated-dots-75d88f7e.js.map +1 -0
  257. package/dist/esm/{tabular-grid-render-96d67a8c.js → tabular-grid-render-2fca02f4.js} +7 -3
  258. package/dist/esm/tabular-grid-render-2fca02f4.js.map +1 -0
  259. package/dist/esm/{utilities-6624d90e.js → utilities-0cdc28eb.js} +6 -2
  260. package/dist/esm/utilities-0cdc28eb.js.map +1 -0
  261. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  262. package/dist/genexus-ide-ui/index.esm.js +0 -2
  263. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  264. package/dist/genexus-ide-ui/{p-2ce60f4c.entry.js → p-02883452.entry.js} +28 -20
  265. package/dist/genexus-ide-ui/{p-2ce60f4c.entry.js.map → p-02883452.entry.js.map} +1 -1
  266. package/dist/genexus-ide-ui/{p-c5eac770.entry.js → p-0548097b.entry.js} +10 -2
  267. package/dist/genexus-ide-ui/{p-c5eac770.entry.js.map → p-0548097b.entry.js.map} +1 -1
  268. package/dist/genexus-ide-ui/{p-64dbc4c0.entry.js → p-082780cc.entry.js} +10 -2
  269. package/dist/genexus-ide-ui/{p-64dbc4c0.entry.js.map → p-082780cc.entry.js.map} +1 -1
  270. package/dist/genexus-ide-ui/{p-9ac4aaa0.entry.js → p-1baf026c.entry.js} +16 -8
  271. package/dist/genexus-ide-ui/{p-9ac4aaa0.entry.js.map → p-1baf026c.entry.js.map} +1 -1
  272. package/dist/genexus-ide-ui/{p-098a7288.entry.js → p-1d647672.entry.js} +19 -11
  273. package/dist/genexus-ide-ui/{p-098a7288.entry.js.map → p-1d647672.entry.js.map} +1 -1
  274. package/dist/genexus-ide-ui/{p-13630aa2.entry.js → p-1e1d2672.entry.js} +51 -43
  275. package/dist/genexus-ide-ui/{p-13630aa2.entry.js.map → p-1e1d2672.entry.js.map} +1 -1
  276. package/dist/genexus-ide-ui/{p-b6a75c44.entry.js → p-207a698a.entry.js} +57 -49
  277. package/dist/genexus-ide-ui/{p-b6a75c44.entry.js.map → p-207a698a.entry.js.map} +1 -1
  278. package/dist/genexus-ide-ui/{p-d18c51fe.entry.js → p-2726ab59.entry.js} +18 -10
  279. package/dist/genexus-ide-ui/{p-d18c51fe.entry.js.map → p-2726ab59.entry.js.map} +1 -1
  280. package/dist/genexus-ide-ui/{p-0c5b7e75.entry.js → p-27633aae.entry.js} +10 -2
  281. package/dist/genexus-ide-ui/{p-0c5b7e75.entry.js.map → p-27633aae.entry.js.map} +1 -1
  282. package/dist/genexus-ide-ui/{p-2fe7ffc8.entry.js → p-28c11aff.entry.js} +32 -24
  283. package/dist/genexus-ide-ui/{p-2fe7ffc8.entry.js.map → p-28c11aff.entry.js.map} +1 -1
  284. package/dist/genexus-ide-ui/{p-3b955964.entry.js → p-2a51ea80.entry.js} +10 -2
  285. package/dist/genexus-ide-ui/{p-3b955964.entry.js.map → p-2a51ea80.entry.js.map} +1 -1
  286. package/dist/genexus-ide-ui/{p-1056dfe7.entry.js → p-336bb2ce.entry.js} +28 -20
  287. package/dist/genexus-ide-ui/{p-1056dfe7.entry.js.map → p-336bb2ce.entry.js.map} +1 -1
  288. package/dist/genexus-ide-ui/{p-ac026635.entry.js → p-364e8ecb.entry.js} +16 -8
  289. package/dist/genexus-ide-ui/{p-ac026635.entry.js.map → p-364e8ecb.entry.js.map} +1 -1
  290. package/dist/genexus-ide-ui/{p-1d044bf5.entry.js → p-4548ae72.entry.js} +17 -9
  291. package/dist/genexus-ide-ui/{p-1d044bf5.entry.js.map → p-4548ae72.entry.js.map} +1 -1
  292. package/dist/genexus-ide-ui/{p-80e49324.entry.js → p-46bb921b.entry.js} +36 -28
  293. package/dist/genexus-ide-ui/{p-80e49324.entry.js.map → p-46bb921b.entry.js.map} +1 -1
  294. package/dist/genexus-ide-ui/{p-11a60dbe.entry.js → p-506760d7.entry.js} +10 -2
  295. package/dist/genexus-ide-ui/{p-11a60dbe.entry.js.map → p-506760d7.entry.js.map} +1 -1
  296. package/dist/genexus-ide-ui/p-6e29711e.entry.js +608 -0
  297. package/dist/genexus-ide-ui/p-6e29711e.entry.js.map +1 -0
  298. package/dist/genexus-ide-ui/{p-7b986243.entry.js → p-71d4d3dd.entry.js} +32 -24
  299. package/dist/genexus-ide-ui/{p-7b986243.entry.js.map → p-71d4d3dd.entry.js.map} +1 -1
  300. package/dist/genexus-ide-ui/{p-891faf90.entry.js → p-77c315d9.entry.js} +28 -20
  301. package/dist/genexus-ide-ui/{p-891faf90.entry.js.map → p-77c315d9.entry.js.map} +1 -1
  302. package/dist/genexus-ide-ui/{p-18bbaa49.entry.js → p-7c95f511.entry.js} +16 -8
  303. package/dist/genexus-ide-ui/{p-18bbaa49.entry.js.map → p-7c95f511.entry.js.map} +1 -1
  304. package/dist/genexus-ide-ui/{p-eedb407c.entry.js → p-7e3cccf7.entry.js} +10 -2
  305. package/dist/genexus-ide-ui/{p-eedb407c.entry.js.map → p-7e3cccf7.entry.js.map} +1 -1
  306. package/dist/genexus-ide-ui/{p-410a35da.entry.js → p-8925fc99.entry.js} +40 -32
  307. package/dist/genexus-ide-ui/{p-410a35da.entry.js.map → p-8925fc99.entry.js.map} +1 -1
  308. package/dist/genexus-ide-ui/{p-072419f9.entry.js → p-94f74c12.entry.js} +18 -10
  309. package/dist/genexus-ide-ui/{p-072419f9.entry.js.map → p-94f74c12.entry.js.map} +1 -1
  310. package/dist/genexus-ide-ui/{p-d24c1115.entry.js → p-97f6438c.entry.js} +67 -59
  311. package/dist/genexus-ide-ui/{p-d24c1115.entry.js.map → p-97f6438c.entry.js.map} +1 -1
  312. package/dist/genexus-ide-ui/{p-9270c80f.entry.js → p-981873da.entry.js} +114 -118
  313. package/dist/genexus-ide-ui/p-981873da.entry.js.map +1 -0
  314. package/dist/genexus-ide-ui/{p-17b54532.entry.js → p-99b1dfd7.entry.js} +39 -31
  315. package/dist/genexus-ide-ui/{p-17b54532.entry.js.map → p-99b1dfd7.entry.js.map} +1 -1
  316. package/dist/genexus-ide-ui/{p-e1d0adf6.entry.js → p-9f7c347c.entry.js} +24 -16
  317. package/dist/genexus-ide-ui/{p-e1d0adf6.entry.js.map → p-9f7c347c.entry.js.map} +1 -1
  318. package/dist/genexus-ide-ui/{p-eacc81c8.entry.js → p-a28c2a64.entry.js} +122 -114
  319. package/dist/genexus-ide-ui/{p-eacc81c8.entry.js.map → p-a28c2a64.entry.js.map} +1 -1
  320. package/dist/genexus-ide-ui/{p-cccd6565.entry.js → p-a73db549.entry.js} +10 -2
  321. package/dist/genexus-ide-ui/{p-cccd6565.entry.js.map → p-a73db549.entry.js.map} +1 -1
  322. package/dist/genexus-ide-ui/{p-547fbde8.entry.js → p-be1ceb01.entry.js} +28 -20
  323. package/dist/genexus-ide-ui/{p-547fbde8.entry.js.map → p-be1ceb01.entry.js.map} +1 -1
  324. package/dist/genexus-ide-ui/{p-7adb9d1f.entry.js → p-c133095b.entry.js} +78 -70
  325. package/dist/genexus-ide-ui/{p-7adb9d1f.entry.js.map → p-c133095b.entry.js.map} +1 -1
  326. package/dist/genexus-ide-ui/{p-a58048e9.entry.js → p-c1c3996c.entry.js} +12 -4
  327. package/dist/genexus-ide-ui/{p-a58048e9.entry.js.map → p-c1c3996c.entry.js.map} +1 -1
  328. package/dist/genexus-ide-ui/{p-7551c2e9.entry.js → p-c426a3e7.entry.js} +22 -14
  329. package/dist/genexus-ide-ui/{p-7551c2e9.entry.js.map → p-c426a3e7.entry.js.map} +1 -1
  330. package/dist/genexus-ide-ui/{p-4f88fecd.entry.js → p-d12739cf.entry.js} +17 -9
  331. package/dist/genexus-ide-ui/{p-4f88fecd.entry.js.map → p-d12739cf.entry.js.map} +1 -1
  332. package/dist/genexus-ide-ui/{p-c8270f7d.js → p-d3ee56a4.js} +45 -37
  333. package/dist/genexus-ide-ui/{p-c8270f7d.js.map → p-d3ee56a4.js.map} +1 -1
  334. package/dist/genexus-ide-ui/p-d42e842b.js +7 -0
  335. package/dist/genexus-ide-ui/p-d42e842b.js.map +1 -0
  336. package/dist/genexus-ide-ui/{p-401bfc97.js → p-d4ecd3bb.js} +9366 -7152
  337. package/dist/genexus-ide-ui/p-d4ecd3bb.js.map +1 -0
  338. package/dist/genexus-ide-ui/{p-48e87e4f.entry.js → p-de6e9132.entry.js} +71 -63
  339. package/dist/genexus-ide-ui/{p-48e87e4f.entry.js.map → p-de6e9132.entry.js.map} +1 -1
  340. package/dist/genexus-ide-ui/{p-05fa08d7.entry.js → p-e4e3a7af.entry.js} +19 -11
  341. package/dist/genexus-ide-ui/{p-05fa08d7.entry.js.map → p-e4e3a7af.entry.js.map} +1 -1
  342. package/dist/genexus-ide-ui/{p-a24571ca.js → p-ea4b35b6.js} +19 -11
  343. package/dist/genexus-ide-ui/{p-a24571ca.js.map → p-ea4b35b6.js.map} +1 -1
  344. package/dist/genexus-ide-ui/{p-bd0ffc08.entry.js → p-f47b08c5.entry.js} +44 -36
  345. package/dist/genexus-ide-ui/{p-bd0ffc08.entry.js.map → p-f47b08c5.entry.js.map} +1 -1
  346. package/dist/types/index.d.ts +0 -2
  347. package/package.json +9 -8
  348. package/dist/cjs/MERCURY_ASSETS-f14e91ff.js +0 -9
  349. package/dist/cjs/MERCURY_ASSETS-f14e91ff.js.map +0 -1
  350. package/dist/cjs/render-item.lit-3f18e009.js +0 -329
  351. package/dist/cjs/render-item.lit-3f18e009.js.map +0 -1
  352. package/dist/cjs/tabular-grid-render-b1767da2.js.map +0 -1
  353. package/dist/cjs/utilities-0e316b39.js.map +0 -1
  354. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/chat-lit.css +0 -376
  355. package/dist/collection/components/chat/lit-custom-render/actions.lit.js +0 -27
  356. package/dist/collection/components/chat/lit-custom-render/actions.lit.js.map +0 -1
  357. package/dist/collection/components/chat/lit-custom-render/code-block.lit.js +0 -46
  358. package/dist/collection/components/chat/lit-custom-render/code-block.lit.js.map +0 -1
  359. package/dist/collection/components/chat/lit-custom-render/dots-animation.js +0 -61
  360. package/dist/collection/components/chat/lit-custom-render/dots-animation.js.map +0 -1
  361. package/dist/collection/components/chat/lit-custom-render/render-item.lit.js +0 -122
  362. package/dist/collection/components/chat/lit-custom-render/render-item.lit.js.map +0 -1
  363. package/dist/collection/components/chat/lit-custom-render/spinner-animation.js +0 -58
  364. package/dist/collection/components/chat/lit-custom-render/spinner-animation.js.map +0 -1
  365. package/dist/collection/components/chat/lit-custom-render/types.js +0 -2
  366. package/dist/collection/components/chat/lit-custom-render/types.js.map +0 -1
  367. package/dist/collection/components/chat/lit-custom-render/utils.js +0 -50
  368. package/dist/collection/components/chat/lit-custom-render/utils.js.map +0 -1
  369. package/dist/components/MERCURY_ASSETS.js +0 -7
  370. package/dist/components/MERCURY_ASSETS.js.map +0 -1
  371. package/dist/components/render-item.lit.js +0 -327
  372. package/dist/components/render-item.lit.js.map +0 -1
  373. package/dist/esm/MERCURY_ASSETS-ccf43ae3.js +0 -7
  374. package/dist/esm/MERCURY_ASSETS-ccf43ae3.js.map +0 -1
  375. package/dist/esm/render-item.lit-449f2946.js +0 -327
  376. package/dist/esm/render-item.lit-449f2946.js.map +0 -1
  377. package/dist/esm/tabular-grid-render-96d67a8c.js.map +0 -1
  378. package/dist/esm/utilities-6624d90e.js.map +0 -1
  379. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/chat-lit.css +0 -376
  380. package/dist/genexus-ide-ui/p-401bfc97.js.map +0 -1
  381. package/dist/genexus-ide-ui/p-8d6f2b4f.entry.js +0 -359
  382. package/dist/genexus-ide-ui/p-8d6f2b4f.entry.js.map +0 -1
  383. package/dist/genexus-ide-ui/p-9270c80f.entry.js.map +0 -1
  384. package/dist/genexus-ide-ui/p-fd4f9904.js +0 -955
  385. package/dist/genexus-ide-ui/p-fd4f9904.js.map +0 -1
  386. package/dist/types/components/chat/lit-custom-render/actions.lit.d.ts +0 -2
  387. package/dist/types/components/chat/lit-custom-render/code-block.lit.d.ts +0 -2
  388. package/dist/types/components/chat/lit-custom-render/dots-animation.d.ts +0 -5
  389. package/dist/types/components/chat/lit-custom-render/render-item.lit.d.ts +0 -3
  390. package/dist/types/components/chat/lit-custom-render/spinner-animation.d.ts +0 -5
  391. package/dist/types/components/chat/lit-custom-render/types.d.ts +0 -4
  392. package/dist/types/components/chat/lit-custom-render/utils.d.ts +0 -23
@@ -3,7 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-2f1471c9.js');
6
- const MERCURY_ASSETS = require('./MERCURY_ASSETS-f14e91ff.js');
6
+ const assetsManager = require('./assets-manager-089e91b1.js');
7
+ require('./mer-animated-dots-001c7465.js');
8
+ require('lit');
9
+ require('lit/directives/when.js');
10
+ require('lit/directives/if-defined.js');
7
11
  const config = require('./config-df6ba4e9.js');
8
12
  const locale = require('./locale-ff30a5f3.js');
9
13
 
@@ -111,25 +115,25 @@ const ITEM_COMPOSE_ID_SEPARATOR = "@@@";
111
115
  // ch-checkbox
112
116
  const CHECKED_VALUE = "on";
113
117
  // Icons
114
- const MENU_DELETE = MERCURY_ASSETS.getIconPath({
118
+ const MENU_DELETE = assetsManager.getIconPath({
115
119
  category: "menus",
116
120
  name: "delete",
117
121
  colorType: "primary"
118
122
  });
119
- const DESIGN = MERCURY_ASSETS.getIconPath({
123
+ const DESIGN = assetsManager.getIconPath({
120
124
  category: "objects",
121
125
  name: "design"
122
126
  });
123
- const FILE_UPLOAD = MERCURY_ASSETS.getIconPath({
127
+ const FILE_UPLOAD = assetsManager.getIconPath({
124
128
  category: "controls",
125
129
  name: "file-upload"
126
130
  });
127
131
  // For empty states
128
- const WEBPANEL_ICON = MERCURY_ASSETS.getIconPath({
132
+ const WEBPANEL_ICON = assetsManager.getIconPath({
129
133
  category: "objects",
130
134
  name: "webpanel"
131
135
  });
132
- const PANEL_FOR_SD_ICON = MERCURY_ASSETS.getIconPath({
136
+ const PANEL_FOR_SD_ICON = assetsManager.getIconPath({
133
137
  category: "objects",
134
138
  name: "panel-for-sd"
135
139
  });
@@ -201,7 +205,7 @@ const GxIdeImportFromDesign = class {
201
205
  {
202
206
  leaf: true,
203
207
  caption: `Warning: ${caption}`,
204
- startImgSrc: MERCURY_ASSETS.getIconPath({
208
+ startImgSrc: assetsManager.getIconPath({
205
209
  category: "system",
206
210
  name: "warning",
207
211
  colorType: "warning"
@@ -1 +1 @@
1
- {"file":"gx-ide-design-import.entry.cjs.js","mappings":"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","names":["getIconPath","h","config","Locale","Host"],"sources":["src/components/design-import/helpers.ts","src/components/design-import/models.ts","src/components/design-import/design-import.scss?tag=gx-ide-design-import&encapsulation=shadow","src/components/design-import/design-import.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../common/types\";\n\nexport const mapStylesToComboBoxItemModel = (\n styles: GxOption[]\n): ComboBoxModel =>\n styles?.map(style => ({\n value: style.id,\n caption: style.label || style.name\n }));\n","import { TabModel } from \"@genexus/chameleon-controls-library\";\nimport { DesignType } from \"./design-import\";\n\nexport const TAB_DATA: { [key in TAB_SELECTOR]: TabData } = {\n layout: { id: \"layout\", caption: \"Layout\", slot: \"layout\" },\n code: { id: \"code\", caption: \"Code\", slot: \"code\" },\n tokens: { id: \"tokens\", caption: \"Tokens\", slot: \"tokens\" },\n styles: { id: \"styles\", caption: \"Styles\", slot: \"styles\" },\n composition: {\n id: \"composition\",\n caption: \"Composition\",\n slot: \"composition\"\n }\n};\n\nexport const TAB_MODEL: TabDataModel = {\n panels: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n },\n {\n id: TAB_DATA.layout.id,\n name: TAB_DATA.layout.caption\n },\n {\n id: TAB_DATA.code.id,\n name: TAB_DATA.code.caption\n }\n ],\n stencils: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n },\n {\n id: TAB_DATA.layout.id,\n name: TAB_DATA.layout.caption\n },\n {\n id: TAB_DATA.code.id,\n name: TAB_DATA.code.caption\n }\n ],\n images: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n }\n ],\n fonts: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n }\n ],\n designSystem: [\n {\n id: TAB_DATA.tokens.id,\n name: TAB_DATA.tokens.caption\n },\n {\n id: TAB_DATA.styles.id,\n name: TAB_DATA.styles.caption\n }\n ]\n};\n\nexport type TabDataModel = {\n panels: TabModel;\n stencils: TabModel;\n images: TabModel;\n fonts: TabModel;\n designSystem: TabModel;\n};\n\ntype TabData = {\n id: TAB_SELECTOR;\n caption: string;\n slot: TAB_SELECTOR;\n};\n\nexport type TAB_SELECTOR =\n | \"layout\"\n | \"code\"\n | \"tokens\"\n | \"styles\"\n | \"composition\";\n\nexport const DESIGN_TYPE_TO_TAB_MODEL_MAP = new Map<DesignType, TabModel>([\n [\"panels\", TAB_MODEL.panels],\n [\"stencils\", TAB_MODEL.stencils],\n [\"images\", TAB_MODEL.images],\n [\"design_system\", TAB_MODEL.designSystem],\n [\"fonts\", TAB_MODEL.fonts]\n]);\n","@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - - -\n\n.header {\n display: grid;\n grid-auto-rows: max-content;\n // 88px is the inline-size of the largest label (Access Token) that is not always visible.\n // Setting 88px as the minimum inline size prevents an undesired difference when Access Token\n // is visible. This fix has been made for english only. The value should work with .ja and .zh also.\n grid-template-columns: minmax(88px, max-content) 1fr !important;\n\n &--show-access-token {\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 &--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// path url\n.path-url-wrapper {\n grid-template-columns: 1fr max-content;\n}\n.path-url-label {\n grid-area: path-url-label;\n}\n.path-url-control {\n flex-grow: 1;\n}\n.select-load-button {\n min-inline-size: 80px;\n}\n// access token\n.access-token-label {\n grid-area: access-token-label;\n}\n.access-token {\n grid-area: access-token;\n}\n// style\n.style-label {\n grid-area: style-label;\n}\n.style {\n grid-area: style;\n}\n// module\n.module-label {\n grid-area: module-label;\n}\n.module {\n grid-area: module;\n}\n// checkboxes options\n.checkboxes-options {\n grid-area: checkboxes-options;\n grid-template-columns: max-content max-content;\n justify-content: space-between;\n}\n\n// - - - - - - - - - - - - -\n// Main\n// - - - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 250px 1fr;\n block-size: 100%;\n overflow: auto;\n\n &--loading {\n grid-template-columns: 1fr;\n }\n}\n\n.panel-tab {\n block-size: 100%;\n display: grid;\n grid-template-columns: 1fr 300px;\n\n .panel-item {\n overflow: auto;\n }\n}\n.panel-tab:has(> :only-child) {\n grid-template-columns: 1fr;\n}\n\n.tree-view {\n padding-block: var(--mer-spacing--2xs);\n}\n\n.tree-view-panel-item {\n border-inline-start: var(--section-common-border);\n}\n\n.checker-board {\n --white-square-color: #fff1;\n --black-square-color: #0000;\n background: linear-gradient(\n 45deg,\n var(--white-square-color) 25%,\n var(--black-square-color) 25%\n ),\n linear-gradient(\n -45deg,\n var(--white-square-color) 25%,\n var(--black-square-color) 25%\n ),\n linear-gradient(\n 45deg,\n var(--black-square-color) 75%,\n var(--white-square-color) 75%\n ),\n linear-gradient(\n -45deg,\n var(--black-square-color) 75%,\n var(--white-square-color) 75%\n );\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\n}\n\n/*--- Tabs ---*/\n.tab {\n border-width: 0 !important; // WA/TODO this should be a class on mercury\n}\n.tab.fit-images .composition-tab-slot {\n font-size: 0; // WA to prevent scroll\n}\n.tab.fit-images img {\n object-fit: scale-down;\n object-position: left top;\n max-height: 100%;\n}\n.tab--hidden {\n display: none;\n}\n\n// - - - - - - - - - - - - -\n// Footer\n// - - - - - - - - - - - - -\n\n.button-cancel,\n.button-ok {\n min-inline-size: var(--mer-spacing--4xl);\n}\n\n// - - - - - - - - - - - - -\n// Other\n// - - - - - - - - - - - - -\n\n.messages-slot-container {\n block-size: 100%;\n}\n\n.composition-tab-slot {\n block-size: 100%;\n overflow: auto;\n}\n\n.empty-state {\n overflow: auto;\n}\n.empty-state-button {\n // WA (It looks more pleasing with a little bit less of gap)\n transform: translateY(-12px);\n}\n\n// Messages Styles\n.messages-container {\n}\n.message {\n animation: fadeIn var(--mer-timing--fast) ease-in-out forwards;\n\n &--info {\n color: var(--mer-text__on-surface);\n }\n &--warning {\n color: var(--mer-text__warning);\n }\n &--error {\n color: var(--mer-text__error);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n// WA's\n.combo-box.ch-disabled {\n --control__bg-color: var(--control__background-color--disabled);\n --control__border-color: var(--control__border-color--disabled);\n --control__color: var(--control__color--disabled);\n --ch-placeholder-color: var(--control-placeholder__color--disabled);\n}\n\n.tree-view::part(item__header) {\n // TODO: Remove this when Mercury is updated to >= 0.12.8\n min-inline-size: var(--tree-view__min-inline-size);\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n\n// Other Libraries\nimport {\n ChCheckboxCustomEvent,\n ChEditCustomEvent,\n ComboBoxModel,\n TabModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../common/config\";\nimport { mapStylesToComboBoxItemModel } from \"./helpers\";\nimport { Locale } from \"../../common/locale\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { TAB_DATA, DESIGN_TYPE_TO_TAB_MODEL_MAP, TAB_MODEL } from \"./models\";\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\nconst ITEM_COMPOSE_ID_SEPARATOR = \"@@@\";\n\n// ch-checkbox\nconst CHECKED_VALUE = \"on\";\n\n// Icons\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\nconst DESIGN = getIconPath({\n category: \"objects\",\n name: \"design\"\n});\nconst FILE_UPLOAD = getIconPath({\n category: \"controls\",\n name: \"file-upload\"\n});\n// For empty states\nconst WEBPANEL_ICON = getIconPath({\n category: \"objects\",\n name: \"webpanel\"\n});\nconst PANEL_FOR_SD_ICON = getIconPath({\n category: \"objects\",\n name: \"panel-for-sd\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\",\n \"components/combo-box\",\n \"components/tab\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-design-import\",\n styleUrl: \"design-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/design-import\"]\n})\nexport class GxIdeImportFromDesign {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n /**\n * An array that keeps track of the tree items id's (design system data type\n * + item id) along with the content, that will be used to save and retrieve\n * items information, in order to avoid using a callback to get items\n * information that was already get. loadedItemsArray will be reset every time\n * a new design is loaded.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n #emptyStateAnimated: boolean = false;\n #formattedExtensions: string;\n #objectTreeCheckedStatus: ObjectTreeCheckedStatus = {\n all: [],\n none: [\"-\"]\n };\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeDesignImportElement;\n\n /* References needed to collect data */\n #accessTokenEl!: HTMLChEditElement;\n #importAsWebPanelsEl!: HTMLChCheckboxElement;\n #moduleEl!: HTMLGxIdeEntitySelectorElement;\n #messagesList: HTMLElement;\n #panelsSelected: string[] = [];\n #stencilsSelected: string[] = [];\n #imagesSelected: string[] = [];\n #fontsSelected: string[] = [];\n #fileInputHiddenEl: HTMLInputElement;\n #pathEl: HTMLChEditElement;\n\n // Use to force a re-render\n @State() reRenderCounter: number = 0;\n\n // Maps to Chameleon Models:\n @State() stylesAsComboBoxModel: ComboBoxModel;\n\n // The current style value\n @State() styleValue: string = \"\";\n\n @State() accessTokenHasError: boolean = false;\n\n @State() pathIsValid: boolean;\n @Watch(\"pathIsValid\")\n pathIsValidChanged(pathIsValid: boolean) {\n if (pathIsValid) {\n this.#evaluateAccessTokenRender();\n } else {\n // hide access token input if path is not valid\n this.requiresAccessToken = false;\n }\n }\n\n @State() tabsModel: TabModel = [];\n\n @State() activeTabs: Map<DesignType, string> = new Map();\n\n @State() renderedTabs: Set<string> = new Set();\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n designDataChanged(newDesignData: DesignData) {\n if (newDesignData) {\n // panels\n const panelsSelectedItem = this.#getPanelsSelectedItem(\n this.designData.panels\n );\n const isForWeb = this.#importAsWebPanelsEl.value === CHECKED_VALUE;\n const panelsIconSrc = isForWeb\n ? \"objects/webpanel\"\n : \"objects/panel-for-sd\";\n\n // images\n const imagesIconSrc = \"objects/image\";\n\n this.designDataTreeDataModel = [\n {\n order: 0,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,\n leaf: false,\n caption: isForWeb\n ? this.#componentLocale.tree.webPanels\n : this.#componentLocale.tree.panels,\n startImgSrc: panelsIconSrc,\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.#recursiveDesignTreeItems(\n this.designData.panels,\n DESIGN_DATA_TYPE_PANELS,\n panelsIconSrc,\n panelsSelectedItem\n )\n },\n {\n order: 1,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n leaf: false,\n caption: this.#componentLocale.tree.stencils,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: !item.warning,\n caption: item.name,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: item.warning && this.#warningTreeItem(item.warning)\n }))\n },\n {\n order: 2,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,\n leaf: false,\n caption: this.#componentLocale.tree.images,\n startImgSrc: imagesIconSrc,\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.#recursiveDesignTreeItems(\n this.designData.images,\n DESIGN_DATA_TYPE_IMAGES,\n imagesIconSrc\n )\n },\n {\n order: 3,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n leaf: false,\n caption: this.#componentLocale.tree.fonts,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n leaf: !item.warning,\n caption: item.name,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: item.warning && this.#warningTreeItem(item.warning)\n }))\n },\n {\n order: 4,\n id: `${\n this.designData.designSystem.length > 0\n ? this.designData.designSystem[0].id\n : \"parent\"\n }${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n leaf: true,\n caption: this.#componentLocale.tree.designSystem,\n startImgSrc: \"objects/dso\",\n checkbox: true,\n checked: true\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 * If the design data is loaded or not, for conditioning input file\n */\n @State() isLoaded = false;\n\n /**\n * The messages receive when the file is loading\n */\n @State() messages: MessageData[] = [];\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 * Whether to show or not the access token input field\n */\n @State() requiresAccessToken: boolean;\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\n * renderDesignTree, in order to set the first tab as the active tab\n * (setFirstActiveTab()), since calling this method inside\n * objectsTreeSelectedItemsChangedHandler does not always work without a\n * 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 * Represents a collection of settings where each key is a specific option. Its\n * boolean value determines whether changes to that option are listened to and\n * trigger the loadCallback callback.\n */\n @Prop() readonly reactiveSettings: ReactiveSettings = {\n path: true,\n style: false,\n module: false,\n importAsWebPanels: true\n };\n\n /**\n * Used to keep track of the settings values since the last loadCallback.\n * Used to know if loadCallback is required to be called again, when any\n * of these values are changed.\n */\n @State() lastLoadCallbackSettingValues: ReactiveSettingsValues = {\n path: undefined,\n style: undefined,\n moduleId: undefined,\n importAsWebPanels: undefined\n };\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL\n * (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string[];\n\n /**\n * Default value for the 'Module' field.\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The path/URL for load the design data\n */\n @Prop({ mutable: true }) path: string = \"\";\n @Watch(\"path\")\n pathChanged(newPath: string) {\n const fileIsLoaded = this.selectedFile?.size > 0;\n const validatePathResult = this.#validatePath(newPath) || fileIsLoaded;\n this.pathIsValid = validatePathResult;\n }\n\n /**\n * The access token for the given path, which is not always required\n */\n @Prop({ mutable: true }) accessToken: string = \"\";\n @Watch(\"accessToken\")\n accessTokenChanged(newAccessToken: string) {\n if (!newAccessToken.trim().length) {\n this.accessTokenHasError = true;\n return;\n }\n this.accessTokenHasError = false;\n this.accessToken = newAccessToken;\n }\n\n /**\n * The value for \"Import as Web Panels\" checkbox.\n */\n @Prop() readonly importAsWebPanels: boolean = false;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter.\n * It returns the information of the selected object (id and name) or\n * '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 initiates the process\n * of importing a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that returns the list of\n * data types loaded from a file or URL.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * 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 returns the information\n * of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * 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 returns the information\n * of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determine if accessing a design requires an authentication token.\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n @Watch(\"styles\")\n stylesChanged(newStyles: GxOption[]) {\n this.stylesAsComboBoxModel = mapStylesToComboBoxItemModel(newStyles);\n }\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 async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#formattedExtensions = this.extensions\n .map(ext => `.${ext}`)\n .join(\", \");\n this.stylesChanged(this.styles);\n this.#initializeActiveTabs();\n this.pathChanged(this.path);\n this.styleValue =\n this.stylesAsComboBoxModel?.length > 0\n ? this.stylesAsComboBoxModel[0]?.value\n : \"\";\n }\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 #countDesignDataItems = (tree: DesignItemData[]) => {\n let count = 0;\n\n function countItemsRecursively(designItemsArray: DesignItemData[]) {\n for (const designItem of designItemsArray) {\n count++;\n if (designItem.variants && Array.isArray(designItem.variants)) {\n countItemsRecursively(designItem.variants);\n }\n }\n }\n\n countItemsRecursively(tree);\n\n return count;\n };\n\n #warningTreeItem = (caption: string) => {\n return [\n {\n leaf: true,\n caption: `Warning: ${caption}`,\n startImgSrc: getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n }),\n order: -1,\n checkbox: false,\n disabled: true\n } as TreeViewItemModel\n ];\n };\n\n #recursiveDesignTreeItems(\n items: DesignItemData[],\n designType: DesignType,\n iconSrc: string,\n selectedIndex: number = undefined\n ): TreeViewItemModel[] {\n return items.map((item, i) => {\n const id = `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${designType}`;\n const hasVariants = item.variants?.length > 0;\n const itemWithWarning = item.warning\n ? this.#warningTreeItem(item.warning)\n : [];\n const isLeaf = !hasVariants && !item.warning;\n\n return {\n id: id,\n leaf: isLeaf,\n caption: item.name,\n startImgSrc: iconSrc,\n checkbox: true,\n checked: true,\n expanded: !isLeaf,\n selected: selectedIndex === i,\n order: i,\n items: [\n ...itemWithWarning,\n ...(hasVariants\n ? this.#recursiveDesignTreeItems(item.variants, designType, iconSrc)\n : [])\n ]\n };\n });\n }\n\n #initializeActiveTabs = () => {\n this.activeTabs.set(\"panels\", TAB_MODEL.panels[0].id);\n this.activeTabs.set(\"stencils\", TAB_MODEL.stencils[0].id);\n this.activeTabs.set(\"images\", TAB_MODEL.images[0].id);\n this.activeTabs.set(\"fonts\", TAB_MODEL.fonts[0].id);\n this.activeTabs.set(\"design_system\", TAB_MODEL.designSystem[0].id);\n };\n\n #evaluateAccessTokenRender = async () => {\n this.requiresAccessToken = await this.requiresAccessTokenCallback(\n this.path\n );\n // evaluate access token error\n if (this.accessToken.length) {\n this.accessTokenHasError = false;\n }\n };\n\n #pathURLBlurHandler = async () => {\n const loadDataCondition1 =\n this.isLoaded &&\n this.reactiveSettings.path &&\n this.pathIsValid &&\n this.path !== this.lastLoadCallbackSettingValues.path;\n const loadDataCondition2 =\n !this.requiresAccessToken ||\n (this.requiresAccessToken && this.accessToken.length > 0);\n if (loadDataCondition1 && loadDataCondition2) {\n this.#loadData();\n }\n };\n\n #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 #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(ITEM_COMPOSE_ID_SEPARATOR);\n const itemId = idList[0];\n const itemDesignType: DesignType = idList[1] as DesignType;\n const isChildNode = itemId && itemId !== \"parent\";\n const isDesignSystem = itemDesignType === \"design_system\";\n if (isChildNode || isDesignSystem) {\n this.tabsModel = DESIGN_TYPE_TO_TAB_MODEL_MAP.get(itemDesignType);\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 this.renderedTabs.clear();\n this.renderedTabs.add(this.activeTabs.get(this.selectedDesignType));\n }\n }\n };\n\n #getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.#loadedItems?.get(id);\n };\n\n #validatePath = (path: string): boolean => {\n const validPathRegex = /^(\\/|\\.\\/|(\\w:))[^:*?\"<>|]*\\.(sketch|gxsketch)$/i; // Match valid file paths\n const figmaURLRegex = /^https?:\\/\\/(www\\.)?figma\\.com/; // Match URLs containing \"www.figma.com\"\n const urlWithExtensionRegex =\n /^https?:\\/\\/[^\\s/$.?#].[^\\s]*\\.(sketch|gxsketch)$/i; // Match URLs ending with .sketch or .gxsketch\n const pathIsValid =\n validPathRegex.test(path) ||\n figmaURLRegex.test(path) ||\n urlWithExtensionRegex.test(path);\n return pathIsValid;\n };\n\n #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${ITEM_COMPOSE_ID_SEPARATOR}`)) {\n currentParentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils, images } = result;\n\n // this.designSystemSelected = designSystem;\n this.#panelsSelected = panels;\n this.#stencilsSelected = stencils;\n this.#imagesSelected = images;\n this.#fontsSelected = fonts;\n };\n\n #selectFileHandler = (): void => {\n this.#fileInputHiddenEl.click();\n };\n\n #styleComboBoxInputHandler = (event: CustomEvent<string> | InputEvent) => {\n this.styleValue = (event.target as HTMLChComboBoxRenderElement).value;\n if (\n this.reactiveSettings.style &&\n this.styleValue !== this.lastLoadCallbackSettingValues.style\n ) {\n this.#loadData();\n }\n };\n\n #moduleInputHandler = (event: CustomEvent<EntityData>) => {\n if (\n this.reactiveSettings.module &&\n this.defaultModule.id !== event.detail.id &&\n this.pathIsValid\n ) {\n this.#loadData();\n }\n };\n\n #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 const style = this.styleValue;\n const importAsWebPanels = this.#importAsWebPanelsEl.value === CHECKED_VALUE;\n const designData: DesignData = await this.loadCallback(\n source,\n style,\n importAsWebPanels,\n token,\n this.#messageCallback\n );\n\n // clear\n this.#panelsSelected = [];\n this.#stencilsSelected = [];\n this.#fontsSelected = [];\n this.selectedDesignType = undefined;\n this.selectedDesignItem = undefined;\n this.messages = [];\n\n this.designData = designData;\n this.isLoaded = designData?.success ?? false;\n this.isLoading = false;\n\n const firstDesignSystemName = designData.designSystem[0]?.name;\n if (firstDesignSystemName && !this.styleValue) {\n this.styleValue = firstDesignSystemName;\n }\n\n // update the settings that were used for the last load\n if (this.reactiveSettings.path && this.pathIsValid) {\n this.lastLoadCallbackSettingValues.path = this.path;\n }\n if (this.reactiveSettings.style) {\n this.lastLoadCallbackSettingValues.style = style;\n }\n if (this.reactiveSettings.module) {\n this.lastLoadCallbackSettingValues.moduleId = this.#moduleEl.value.id;\n }\n if (this.reactiveSettings.importAsWebPanels) {\n this.lastLoadCallbackSettingValues.importAsWebPanels = importAsWebPanels;\n }\n };\n\n #messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n #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 #getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"code\",\n TAB_DATA.code.slot,\n this.selectedDesignItem.code\n );\n this.textEditorFactoryCallback(\n \"html\",\n TAB_DATA.layout.slot,\n this.selectedDesignItem.layout\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n TAB_DATA.tokens.slot,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n TAB_DATA.styles.slot,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n #evaluateDesignItemsChecked = (\n designItemsData: DesignItemData[],\n selectedItems: string[]\n ) => {\n let itemsToImport: string[] = selectedItems;\n\n const totalItemsInTree = this.#countDesignDataItems(designItemsData);\n const selectedItemsLength = selectedItems.length;\n if (totalItemsInTree === selectedItemsLength) {\n itemsToImport = this.#objectTreeCheckedStatus.all;\n } else if (selectedItemsLength === 0) {\n itemsToImport = this.#objectTreeCheckedStatus.none;\n }\n\n return itemsToImport;\n };\n\n #confirm = (): void => {\n const panelsToImport = this.#evaluateDesignItemsChecked(\n this.designData.panels,\n this.#panelsSelected\n );\n const stencilsToImport = this.#evaluateDesignItemsChecked(\n this.designData.stencils,\n this.#stencilsSelected\n );\n const imagesToImport = this.#evaluateDesignItemsChecked(\n this.designData.images,\n this.#imagesSelected\n );\n const fontsToImport = this.#evaluateDesignItemsChecked(\n this.designData.fonts,\n this.#fontsSelected\n );\n\n this.confirmCallback({\n panels: panelsToImport,\n stencils: stencilsToImport,\n images: imagesToImport,\n fonts: fontsToImport,\n moduleId: this.#moduleEl?.value?.id,\n styleName: this.styleValue,\n importAsWebPanels: this.#importAsWebPanelsEl.value === CHECKED_VALUE\n });\n };\n\n #cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n #fitImagesHandler = (event: ChCheckboxCustomEvent<any> | InputEvent) => {\n this.fitImages = event.detail === CHECKED_VALUE;\n };\n\n #getPanelsSelectedItem = (panels: DesignItemData[]): number => {\n return panels.reduce((minIndex, item, index, panels) => {\n return panels[minIndex].name <= item.name ? minIndex : index;\n }, 0);\n };\n\n #importAsWebPanelsChangedHandler = () => {\n const loadData =\n this.reactiveSettings.importAsWebPanels && this.pathIsValid;\n if (loadData) {\n this.#loadData();\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.path = \"\";\n this.accessToken = \"\";\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n this.path = this.selectedFile.name;\n // we know the path is valid because the extensions are restricted by \"extensions\" Prop.\n }\n };\n\n #accessFocusHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"text\"; // display token on focus\n };\n\n #accessBlurHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"password\"; // hide token on blur\n\n this.accessTokenChanged(element.value);\n };\n\n #pathUrlInputHandler = async (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.path = event.detail as string;\n this.#evaluateAccessTokenRender();\n this.selectedFile = null;\n if (!this.path.length) {\n this.designData = null;\n }\n };\n\n #renderHeader = (): Element => {\n const primaryButtonDisabled =\n this.isLoading ||\n (this.pathIsValid &&\n this.requiresAccessToken &&\n this.accessToken.length === 0);\n const clearFileButtonDisabled = this.isLoading || this.path.length === 0;\n const stylesComboDisabled = this.isLoading;\n const moduleDisabled = this.isLoading;\n const pathWithErrorStyles = !this.pathIsValid && this.path.length > 0;\n const displayPathErrorTooltip = !this.pathIsValid && this.path.length > 0;\n const fitImagesIsDisabled =\n this.isLoading ||\n !this.designDataTreeDataModel.length ||\n this.selectedDesignType === \"stencils\" ||\n this.selectedDesignType === \"design_system\";\n\n let primaryButtonCaption;\n if (\n this.pathIsValid &&\n this.path === this.lastLoadCallbackSettingValues.path\n ) {\n primaryButtonCaption = this.#componentLocale.header.btnReload;\n } else if (this.pathIsValid) {\n primaryButtonCaption = this.#componentLocale.header.btnLoad;\n } else {\n primaryButtonCaption = this.#componentLocale.header.selectFileButton;\n }\n\n return (\n <header\n class={{\n \"header\": true,\n \"control-header-with-border\": true,\n \"spacing-body-inline\": true,\n \"spacing-body-block-start\": true,\n \"header--show-access-token\": this.requiresAccessToken,\n \"header--hide-access-token\": !this.requiresAccessToken,\n \"field-group-justified-start\": true\n }}\n >\n <label\n // path/url label\n class=\"label path-url-label\"\n >\n {this.#componentLocale.header.path}\n </label>\n <div class=\"path-url-wrapper buttons-spacer\">\n <ch-edit\n // path/url/file input\n id=\"path-url\"\n class={{\n \"input\": true,\n \"input-error\": pathWithErrorStyles,\n \"path-url-control\": true\n }}\n debounce={config.inputDebounce}\n part=\"option-path\"\n type=\"text\"\n value={this.path}\n onInput={this.#pathUrlInputHandler}\n onBlur={this.reactiveSettings.path && this.#pathURLBlurHandler}\n disabled={this.isLoading}\n placeholder={`${this.#componentLocale.header.pathPlaceholder}`}\n startImgSrc={FILE_UPLOAD}\n ref={(el: HTMLChEditElement) =>\n (this.#pathEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {displayPathErrorTooltip && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#pathEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.pathErrorMessage}{\" \"}\n {this.#formattedExtensions}\n </ch-tooltip>\n )}\n\n <input\n hidden\n type=\"file\"\n accept={this.#formattedExtensions}\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n\n <div class=\"buttons-spacer\">\n <button\n // remove file selection\n aria-label={this.#componentLocale.header.removeFileSelection}\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n disabled={clearFileButtonDisabled}\n onClick={!clearFileButtonDisabled && this.#removeFileSelection}\n >\n <ch-image\n class=\"icon-md\"\n src={MENU_DELETE}\n disabled={clearFileButtonDisabled}\n ></ch-image>\n </button>\n <button\n // load file button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={\n this.pathIsValid ? this.#loadData : this.#selectFileHandler\n }\n part=\"button button--load\"\n disabled={primaryButtonDisabled}\n class={{\n \"button-primary\": this.pathIsValid,\n \"button-secondary\": !this.pathIsValid,\n \"select-load-button\": true\n }}\n >\n {primaryButtonCaption}\n </button>\n </div>\n </div>\n\n {this.requiresAccessToken && [\n <label\n // access token label\n class=\"label access-token-label\"\n >\n {this.#componentLocale.header.accessToken}\n </label>,\n <div>\n <ch-edit\n class={{\n \"input\": true,\n \"access-token\": true,\n \"input-error\": this.accessTokenHasError\n }}\n ref={(el: HTMLChEditElement) =>\n (this.#accessTokenEl = el as HTMLChEditElement)\n }\n value={this.accessToken}\n placeholder={this.#componentLocale.header.accessTokenPlaceholder}\n onFocus={this.#accessFocusHandler}\n onBlur={this.#accessBlurHandler}\n part=\"access-token\"\n disabled={this.isLoading}\n type=\"password\"\n ></ch-edit>\n {this.accessTokenHasError && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#accessTokenEl as unknown as HTMLButtonElement\n }\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.accessTokenErrorMessage}\n </ch-tooltip>\n )}\n </div>\n ]}\n <label\n // style label\n class=\"label style-label\"\n >\n {this.#componentLocale.header.style}\n </label>\n <ch-combo-box-render\n // style combo box\n suggest={true}\n suggestOptions={{\n alreadyProcessed: true\n }}\n disabled={stylesComboDisabled}\n model={this.stylesAsComboBoxModel}\n value={this.styleValue}\n onInput={this.#styleComboBoxInputHandler}\n part=\"option-style\"\n class=\"combo-box style\"\n ></ch-combo-box-render>\n\n <label\n // module label\n class=\"label module-label\"\n >\n {this.#componentLocale.header.module}\n </label>\n <gx-ide-entity-selector\n // module entity selector\n labelPosition=\"none\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n onValueChanged={\n this.reactiveSettings.module && this.#moduleInputHandler\n }\n disabled={moduleDisabled}\n class=\"module\"\n ></gx-ide-entity-selector>\n\n <div\n // import as web panels\n class=\"checkboxes-options field-group\"\n >\n <ch-checkbox\n caption={this.#componentLocale.header.importAs}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox import-as-web-panels\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#importAsWebPanelsEl = el as HTMLChCheckboxElement)\n }\n value={this.importAsWebPanels ? CHECKED_VALUE : undefined}\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n onInput={this.#importAsWebPanelsChangedHandler}\n ></ch-checkbox>\n\n <div\n class={{\n \"field-group-inline\": true,\n \"checkboxes-options__col-right\": true\n }}\n >\n <ch-checkbox\n // fit images\n caption={this.#componentLocale.header.fitImages}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox\"\n part=\"fit-images-checkbox\"\n disabled={fitImagesIsDisabled}\n onInput={this.#fitImagesHandler}\n ></ch-checkbox>\n </div>\n </div>\n </header>\n );\n };\n\n #renderMessages = (): HTMLParagraphElement[] => {\n return (\n this.messages.length > 0 &&\n this.messages.map(message => (\n <p\n class={{\n \"body-regular-m\": true,\n \"message\": true,\n [`message--${message.type}`]: true\n }}\n >\n {message.type}: {message.text}\n </p>\n ))\n );\n };\n\n #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 #renderMain = () => {\n if (this.isLoading || this.designData?.success === false) {\n return (\n <div\n class=\"main main--loading scrollable\"\n ref={(el: HTMLElement) => (this.#messagesList = el as HTMLElement)}\n >\n {this.#renderMessages()}\n <div class=\"body-regular-m spacing-body\">\n <slot name=\"messages\"></slot>\n </div>\n </div>\n );\n } else if (this.designData?.success) {\n return (\n /* #main*/\n <div class=\"main\">\n {[this.#renderDesignTree(), this.#renderDesignTabsCh()]}\n </div>\n );\n } else {\n return (\n <gx-ide-empty-state\n class=\"empty-state scrollable\"\n stateIconSrc={DESIGN}\n isAnimated={this.#emptyStateAnimated}\n stateTitle={this.#componentLocale.messages.noDesignSelected}\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-tertiary empty-state-button\"\n onClick={this.#selectFileHandler}\n >\n {this.#componentLocale.messages.selectDesign}\n </button>\n </gx-ide-empty-state>\n );\n }\n };\n\n #renderDesignTree = (): HTMLChTreeViewElement => {\n return (\n <ch-tree-view-render\n part=\"data-tree\"\n class=\"tree-view\"\n id=\"data-tree\"\n showLines=\"last\"\n model={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n expandableButton=\"action\"\n expandOnClick={false}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.#objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.#objectsTreeSelectedItemsChangedHandler}\n ></ch-tree-view-render>\n );\n };\n\n #renderFooter = () => {\n const buttonOkDisabled =\n this.designData?.success !== true || this.isLoading;\n return (\n <footer class=\"control-footer-with-border spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n // button cancel\n id=\"button-cancel\"\n class=\"button-secondary button-cancel\"\n type=\"outlined\"\n onClick={this.#cancel}\n part=\"button button--cancel\"\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button ok\n id=\"button-ok\"\n class=\"button-primary button-ok\"\n type=\"primary-text-only\"\n onClick={!buttonOkDisabled && this.#confirm}\n part=\"button button--ok\"\n disabled={buttonOkDisabled}\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnOk}\n </button>\n </div>\n </footer>\n );\n };\n\n #evaluatePanelPreview = () => {\n if (this.selectedDesignType === \"panels\") {\n return this.selectedDesignItem?.composition?.preview ? (\n <div\n part=\"data-panel-composition-preview\"\n class=\"panel-item scrollable\"\n >\n <img\n src={this.selectedDesignItem.composition.preview}\n alt=\"Preview\"\n />\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"panel-tab__empty-state\"\n stateTitle={this.#componentLocale.messages.noPanelPreviewAvailable}\n stateIconSrc={\n this.#importAsWebPanelsEl.value === CHECKED_VALUE\n ? WEBPANEL_ICON\n : PANEL_FOR_SD_ICON\n }\n ></gx-ide-empty-state>\n );\n }\n return null;\n };\n\n #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.#evaluatePanelPreview()}\n\n {renderControlsTree ? (\n <ch-tree-view-render\n part=\"data-panel-composition-tree\"\n class=\"tree-view tree-view-panel-item scrollable\"\n showLines=\"last\"\n model={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></ch-tree-view-render>\n ) : null}\n </div>\n );\n };\n\n #renderImageTab = () => {\n return (\n <div\n part=\"data-panel-composition-preview\"\n class=\"data-preview\"\n style={{ height: \"100%\" }}\n >\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n class={\n this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES\n ? \"checker-board\"\n : undefined\n }\n />\n </div>\n );\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.renderedTabs.clear();\n this.renderedTabs.add(event.detail.newSelectedId);\n this.reRenderCounter++;\n this.activeTabs.set(this.selectedDesignType, event.detail.newSelectedId);\n };\n\n #renderDesignTabsCh = (): HTMLChTabRenderElement => {\n return (\n <ch-tab-render\n // main section\n class={{\n \"tab\": true,\n \"scrollable\": true,\n \"fit-images\": this.fitImages\n }}\n tabListPosition=\"block-start\"\n model={this.tabsModel}\n selectedId={this.activeTabs.get(this.selectedDesignType)}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div\n slot={TAB_DATA.tokens.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.tokens.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.tokens.slot}></slot>\n </div>\n\n <div\n slot={TAB_DATA.styles.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.styles.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.styles.slot}></slot>\n </div>\n\n <div\n class=\"composition-tab-slot scrollable\"\n slot={TAB_DATA.composition.slot}\n style={{\n display: this.renderedTabs.has(TAB_DATA.composition.id)\n ? \"\"\n : \"none\"\n }}\n >\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.#renderImageTab()\n : this.#renderPanelTab()}\n </div>\n\n <div\n slot={TAB_DATA.layout.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.layout.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.layout.slot}></slot>\n </div>\n\n <div\n slot={TAB_DATA.code.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.code.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.code.slot}></slot>\n </div>\n </ch-tab-render>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.#renderHeader()}\n {this.#renderMain()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n designSystem: string,\n importAsWebPanels: boolean,\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: string,\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 success: boolean;\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n warning?: string;\n variants?: DesignItemData[];\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n layout?: 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 DesignObjectType = {\n [Key in DesignType]: string;\n};\n\nexport type ItemLoadedInfo = {\n designType: DesignType;\n designDataDetail: DesignItemDataDetail;\n};\n\nexport type TextEditorType = \"code\" | \"html\" | \"styles\" | \"tokens\";\n\nexport type ReactiveSettings = {\n path: boolean;\n style: boolean;\n module: boolean;\n importAsWebPanels: boolean;\n};\n\nexport type ObjectTreeCheckedStatus = {\n all: [];\n none: [\"-\"];\n};\n\ntype ReactiveSettingsValues = {\n path: string;\n style: string;\n moduleId: string;\n importAsWebPanels: boolean;\n};\n"],"version":3}
1
+ {"file":"gx-ide-design-import.entry.cjs.js","mappings":"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","names":["getIconPath","h","config","Locale","Host"],"sources":["src/components/design-import/helpers.ts","src/components/design-import/models.ts","src/components/design-import/design-import.scss?tag=gx-ide-design-import&encapsulation=shadow","src/components/design-import/design-import.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../common/types\";\n\nexport const mapStylesToComboBoxItemModel = (\n styles: GxOption[]\n): ComboBoxModel =>\n styles?.map(style => ({\n value: style.id,\n caption: style.label || style.name\n }));\n","import { TabModel } from \"@genexus/chameleon-controls-library\";\nimport { DesignType } from \"./design-import\";\n\nexport const TAB_DATA: { [key in TAB_SELECTOR]: TabData } = {\n layout: { id: \"layout\", caption: \"Layout\", slot: \"layout\" },\n code: { id: \"code\", caption: \"Code\", slot: \"code\" },\n tokens: { id: \"tokens\", caption: \"Tokens\", slot: \"tokens\" },\n styles: { id: \"styles\", caption: \"Styles\", slot: \"styles\" },\n composition: {\n id: \"composition\",\n caption: \"Composition\",\n slot: \"composition\"\n }\n};\n\nexport const TAB_MODEL: TabDataModel = {\n panels: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n },\n {\n id: TAB_DATA.layout.id,\n name: TAB_DATA.layout.caption\n },\n {\n id: TAB_DATA.code.id,\n name: TAB_DATA.code.caption\n }\n ],\n stencils: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n },\n {\n id: TAB_DATA.layout.id,\n name: TAB_DATA.layout.caption\n },\n {\n id: TAB_DATA.code.id,\n name: TAB_DATA.code.caption\n }\n ],\n images: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n }\n ],\n fonts: [\n {\n id: TAB_DATA.composition.id,\n name: TAB_DATA.composition.caption\n }\n ],\n designSystem: [\n {\n id: TAB_DATA.tokens.id,\n name: TAB_DATA.tokens.caption\n },\n {\n id: TAB_DATA.styles.id,\n name: TAB_DATA.styles.caption\n }\n ]\n};\n\nexport type TabDataModel = {\n panels: TabModel;\n stencils: TabModel;\n images: TabModel;\n fonts: TabModel;\n designSystem: TabModel;\n};\n\ntype TabData = {\n id: TAB_SELECTOR;\n caption: string;\n slot: TAB_SELECTOR;\n};\n\nexport type TAB_SELECTOR =\n | \"layout\"\n | \"code\"\n | \"tokens\"\n | \"styles\"\n | \"composition\";\n\nexport const DESIGN_TYPE_TO_TAB_MODEL_MAP = new Map<DesignType, TabModel>([\n [\"panels\", TAB_MODEL.panels],\n [\"stencils\", TAB_MODEL.stencils],\n [\"images\", TAB_MODEL.images],\n [\"design_system\", TAB_MODEL.designSystem],\n [\"fonts\", TAB_MODEL.fonts]\n]);\n","@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - - -\n\n.header {\n display: grid;\n grid-auto-rows: max-content;\n // 88px is the inline-size of the largest label (Access Token) that is not always visible.\n // Setting 88px as the minimum inline size prevents an undesired difference when Access Token\n // is visible. This fix has been made for english only. The value should work with .ja and .zh also.\n grid-template-columns: minmax(88px, max-content) 1fr !important;\n\n &--show-access-token {\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 &--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// path url\n.path-url-wrapper {\n grid-template-columns: 1fr max-content;\n}\n.path-url-label {\n grid-area: path-url-label;\n}\n.path-url-control {\n flex-grow: 1;\n}\n.select-load-button {\n min-inline-size: 80px;\n}\n// access token\n.access-token-label {\n grid-area: access-token-label;\n}\n.access-token {\n grid-area: access-token;\n}\n// style\n.style-label {\n grid-area: style-label;\n}\n.style {\n grid-area: style;\n}\n// module\n.module-label {\n grid-area: module-label;\n}\n.module {\n grid-area: module;\n}\n// checkboxes options\n.checkboxes-options {\n grid-area: checkboxes-options;\n grid-template-columns: max-content max-content;\n justify-content: space-between;\n}\n\n// - - - - - - - - - - - - -\n// Main\n// - - - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 250px 1fr;\n block-size: 100%;\n overflow: auto;\n\n &--loading {\n grid-template-columns: 1fr;\n }\n}\n\n.panel-tab {\n block-size: 100%;\n display: grid;\n grid-template-columns: 1fr 300px;\n\n .panel-item {\n overflow: auto;\n }\n}\n.panel-tab:has(> :only-child) {\n grid-template-columns: 1fr;\n}\n\n.tree-view {\n padding-block: var(--mer-spacing--2xs);\n}\n\n.tree-view-panel-item {\n border-inline-start: var(--section-common-border);\n}\n\n.checker-board {\n --white-square-color: #fff1;\n --black-square-color: #0000;\n background: linear-gradient(\n 45deg,\n var(--white-square-color) 25%,\n var(--black-square-color) 25%\n ),\n linear-gradient(\n -45deg,\n var(--white-square-color) 25%,\n var(--black-square-color) 25%\n ),\n linear-gradient(\n 45deg,\n var(--black-square-color) 75%,\n var(--white-square-color) 75%\n ),\n linear-gradient(\n -45deg,\n var(--black-square-color) 75%,\n var(--white-square-color) 75%\n );\n background-size: 20px 20px;\n background-position: 0 0, 0 10px, 10px -10px, -10px 0px;\n}\n\n/*--- Tabs ---*/\n.tab {\n border-width: 0 !important; // WA/TODO this should be a class on mercury\n}\n.tab.fit-images .composition-tab-slot {\n font-size: 0; // WA to prevent scroll\n}\n.tab.fit-images img {\n object-fit: scale-down;\n object-position: left top;\n max-height: 100%;\n}\n.tab--hidden {\n display: none;\n}\n\n// - - - - - - - - - - - - -\n// Footer\n// - - - - - - - - - - - - -\n\n.button-cancel,\n.button-ok {\n min-inline-size: var(--mer-spacing--4xl);\n}\n\n// - - - - - - - - - - - - -\n// Other\n// - - - - - - - - - - - - -\n\n.messages-slot-container {\n block-size: 100%;\n}\n\n.composition-tab-slot {\n block-size: 100%;\n overflow: auto;\n}\n\n.empty-state {\n overflow: auto;\n}\n.empty-state-button {\n // WA (It looks more pleasing with a little bit less of gap)\n transform: translateY(-12px);\n}\n\n// Messages Styles\n.messages-container {\n}\n.message {\n animation: fadeIn var(--mer-timing--fast) ease-in-out forwards;\n\n &--info {\n color: var(--mer-text__on-surface);\n }\n &--warning {\n color: var(--mer-text__warning);\n }\n &--error {\n color: var(--mer-text__error);\n }\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n// WA's\n.combo-box.ch-disabled {\n --control__bg-color: var(--control__background-color--disabled);\n --control__border-color: var(--control__border-color--disabled);\n --control__color: var(--control__color--disabled);\n --ch-placeholder-color: var(--control-placeholder__color--disabled);\n}\n\n.tree-view::part(item__header) {\n // TODO: Remove this when Mercury is updated to >= 0.12.8\n min-inline-size: var(--tree-view__min-inline-size);\n}\n","// Stencil\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n\n// Other Libraries\nimport {\n ChCheckboxCustomEvent,\n ChEditCustomEvent,\n ComboBoxModel,\n TabModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../common/config\";\nimport { mapStylesToComboBoxItemModel } from \"./helpers\";\nimport { Locale } from \"../../common/locale\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { TAB_DATA, DESIGN_TYPE_TO_TAB_MODEL_MAP, TAB_MODEL } from \"./models\";\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\nconst ITEM_COMPOSE_ID_SEPARATOR = \"@@@\";\n\n// ch-checkbox\nconst CHECKED_VALUE = \"on\";\n\n// Icons\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\nconst DESIGN = getIconPath({\n category: \"objects\",\n name: \"design\"\n});\nconst FILE_UPLOAD = getIconPath({\n category: \"controls\",\n name: \"file-upload\"\n});\n// For empty states\nconst WEBPANEL_ICON = getIconPath({\n category: \"objects\",\n name: \"webpanel\"\n});\nconst PANEL_FOR_SD_ICON = getIconPath({\n category: \"objects\",\n name: \"panel-for-sd\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\",\n \"components/combo-box\",\n \"components/tab\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-design-import\",\n styleUrl: \"design-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/design-import\"]\n})\nexport class GxIdeImportFromDesign {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n /**\n * An array that keeps track of the tree items id's (design system data type\n * + item id) along with the content, that will be used to save and retrieve\n * items information, in order to avoid using a callback to get items\n * information that was already get. loadedItemsArray will be reset every time\n * a new design is loaded.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n #emptyStateAnimated: boolean = false;\n #formattedExtensions: string;\n #objectTreeCheckedStatus: ObjectTreeCheckedStatus = {\n all: [],\n none: [\"-\"]\n };\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeDesignImportElement;\n\n /* References needed to collect data */\n #accessTokenEl!: HTMLChEditElement;\n #importAsWebPanelsEl!: HTMLChCheckboxElement;\n #moduleEl!: HTMLGxIdeEntitySelectorElement;\n #messagesList: HTMLElement;\n #panelsSelected: string[] = [];\n #stencilsSelected: string[] = [];\n #imagesSelected: string[] = [];\n #fontsSelected: string[] = [];\n #fileInputHiddenEl: HTMLInputElement;\n #pathEl: HTMLChEditElement;\n\n // Use to force a re-render\n @State() reRenderCounter: number = 0;\n\n // Maps to Chameleon Models:\n @State() stylesAsComboBoxModel: ComboBoxModel;\n\n // The current style value\n @State() styleValue: string = \"\";\n\n @State() accessTokenHasError: boolean = false;\n\n @State() pathIsValid: boolean;\n @Watch(\"pathIsValid\")\n pathIsValidChanged(pathIsValid: boolean) {\n if (pathIsValid) {\n this.#evaluateAccessTokenRender();\n } else {\n // hide access token input if path is not valid\n this.requiresAccessToken = false;\n }\n }\n\n @State() tabsModel: TabModel = [];\n\n @State() activeTabs: Map<DesignType, string> = new Map();\n\n @State() renderedTabs: Set<string> = new Set();\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n designDataChanged(newDesignData: DesignData) {\n if (newDesignData) {\n // panels\n const panelsSelectedItem = this.#getPanelsSelectedItem(\n this.designData.panels\n );\n const isForWeb = this.#importAsWebPanelsEl.value === CHECKED_VALUE;\n const panelsIconSrc = isForWeb\n ? \"objects/webpanel\"\n : \"objects/panel-for-sd\";\n\n // images\n const imagesIconSrc = \"objects/image\";\n\n this.designDataTreeDataModel = [\n {\n order: 0,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_PANELS}`,\n leaf: false,\n caption: isForWeb\n ? this.#componentLocale.tree.webPanels\n : this.#componentLocale.tree.panels,\n startImgSrc: panelsIconSrc,\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.#recursiveDesignTreeItems(\n this.designData.panels,\n DESIGN_DATA_TYPE_PANELS,\n panelsIconSrc,\n panelsSelectedItem\n )\n },\n {\n order: 1,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n leaf: false,\n caption: this.#componentLocale.tree.stencils,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: !item.warning,\n caption: item.name,\n startImgSrc: \"objects/stencil\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: item.warning && this.#warningTreeItem(item.warning)\n }))\n },\n {\n order: 2,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_IMAGES}`,\n leaf: false,\n caption: this.#componentLocale.tree.images,\n startImgSrc: imagesIconSrc,\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.#recursiveDesignTreeItems(\n this.designData.images,\n DESIGN_DATA_TYPE_IMAGES,\n imagesIconSrc\n )\n },\n {\n order: 3,\n id: `parent${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n leaf: false,\n caption: this.#componentLocale.tree.fonts,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_FONTS}`,\n leaf: !item.warning,\n caption: item.name,\n startImgSrc: \"controls/font\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: item.warning && this.#warningTreeItem(item.warning)\n }))\n },\n {\n order: 4,\n id: `${\n this.designData.designSystem.length > 0\n ? this.designData.designSystem[0].id\n : \"parent\"\n }${ITEM_COMPOSE_ID_SEPARATOR}${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n leaf: true,\n caption: this.#componentLocale.tree.designSystem,\n startImgSrc: \"objects/dso\",\n checkbox: true,\n checked: true\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 * If the design data is loaded or not, for conditioning input file\n */\n @State() isLoaded = false;\n\n /**\n * The messages receive when the file is loading\n */\n @State() messages: MessageData[] = [];\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 * Whether to show or not the access token input field\n */\n @State() requiresAccessToken: boolean;\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\n * renderDesignTree, in order to set the first tab as the active tab\n * (setFirstActiveTab()), since calling this method inside\n * objectsTreeSelectedItemsChangedHandler does not always work without a\n * 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 * Represents a collection of settings where each key is a specific option. Its\n * boolean value determines whether changes to that option are listened to and\n * trigger the loadCallback callback.\n */\n @Prop() readonly reactiveSettings: ReactiveSettings = {\n path: true,\n style: false,\n module: false,\n importAsWebPanels: true\n };\n\n /**\n * Used to keep track of the settings values since the last loadCallback.\n * Used to know if loadCallback is required to be called again, when any\n * of these values are changed.\n */\n @State() lastLoadCallbackSettingValues: ReactiveSettingsValues = {\n path: undefined,\n style: undefined,\n moduleId: undefined,\n importAsWebPanels: undefined\n };\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL\n * (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string[];\n\n /**\n * Default value for the 'Module' field.\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The path/URL for load the design data\n */\n @Prop({ mutable: true }) path: string = \"\";\n @Watch(\"path\")\n pathChanged(newPath: string) {\n const fileIsLoaded = this.selectedFile?.size > 0;\n const validatePathResult = this.#validatePath(newPath) || fileIsLoaded;\n this.pathIsValid = validatePathResult;\n }\n\n /**\n * The access token for the given path, which is not always required\n */\n @Prop({ mutable: true }) accessToken: string = \"\";\n @Watch(\"accessToken\")\n accessTokenChanged(newAccessToken: string) {\n if (!newAccessToken.trim().length) {\n this.accessTokenHasError = true;\n return;\n }\n this.accessTokenHasError = false;\n this.accessToken = newAccessToken;\n }\n\n /**\n * The value for \"Import as Web Panels\" checkbox.\n */\n @Prop() readonly importAsWebPanels: boolean = false;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter.\n * It returns the information of the selected object (id and name) or\n * '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 initiates the process\n * of importing a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that returns the list of\n * data types loaded from a file or URL.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * 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 returns the information\n * of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that returns the information\n * 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 returns the information\n * of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determine if accessing a design requires an authentication token.\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n @Watch(\"styles\")\n stylesChanged(newStyles: GxOption[]) {\n this.stylesAsComboBoxModel = mapStylesToComboBoxItemModel(newStyles);\n }\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 async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#formattedExtensions = this.extensions\n .map(ext => `.${ext}`)\n .join(\", \");\n this.stylesChanged(this.styles);\n this.#initializeActiveTabs();\n this.pathChanged(this.path);\n this.styleValue =\n this.stylesAsComboBoxModel?.length > 0\n ? this.stylesAsComboBoxModel[0]?.value\n : \"\";\n }\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 #countDesignDataItems = (tree: DesignItemData[]) => {\n let count = 0;\n\n function countItemsRecursively(designItemsArray: DesignItemData[]) {\n for (const designItem of designItemsArray) {\n count++;\n if (designItem.variants && Array.isArray(designItem.variants)) {\n countItemsRecursively(designItem.variants);\n }\n }\n }\n\n countItemsRecursively(tree);\n\n return count;\n };\n\n #warningTreeItem = (caption: string) => {\n return [\n {\n leaf: true,\n caption: `Warning: ${caption}`,\n startImgSrc: getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n }),\n order: -1,\n checkbox: false,\n disabled: true\n } as TreeViewItemModel\n ];\n };\n\n #recursiveDesignTreeItems(\n items: DesignItemData[],\n designType: DesignType,\n iconSrc: string,\n selectedIndex: number = undefined\n ): TreeViewItemModel[] {\n return items.map((item, i) => {\n const id = `${item.id}${ITEM_COMPOSE_ID_SEPARATOR}${designType}`;\n const hasVariants = item.variants?.length > 0;\n const itemWithWarning = item.warning\n ? this.#warningTreeItem(item.warning)\n : [];\n const isLeaf = !hasVariants && !item.warning;\n\n return {\n id: id,\n leaf: isLeaf,\n caption: item.name,\n startImgSrc: iconSrc,\n checkbox: true,\n checked: true,\n expanded: !isLeaf,\n selected: selectedIndex === i,\n order: i,\n items: [\n ...itemWithWarning,\n ...(hasVariants\n ? this.#recursiveDesignTreeItems(item.variants, designType, iconSrc)\n : [])\n ]\n };\n });\n }\n\n #initializeActiveTabs = () => {\n this.activeTabs.set(\"panels\", TAB_MODEL.panels[0].id);\n this.activeTabs.set(\"stencils\", TAB_MODEL.stencils[0].id);\n this.activeTabs.set(\"images\", TAB_MODEL.images[0].id);\n this.activeTabs.set(\"fonts\", TAB_MODEL.fonts[0].id);\n this.activeTabs.set(\"design_system\", TAB_MODEL.designSystem[0].id);\n };\n\n #evaluateAccessTokenRender = async () => {\n this.requiresAccessToken = await this.requiresAccessTokenCallback(\n this.path\n );\n // evaluate access token error\n if (this.accessToken.length) {\n this.accessTokenHasError = false;\n }\n };\n\n #pathURLBlurHandler = async () => {\n const loadDataCondition1 =\n this.isLoaded &&\n this.reactiveSettings.path &&\n this.pathIsValid &&\n this.path !== this.lastLoadCallbackSettingValues.path;\n const loadDataCondition2 =\n !this.requiresAccessToken ||\n (this.requiresAccessToken && this.accessToken.length > 0);\n if (loadDataCondition1 && loadDataCondition2) {\n this.#loadData();\n }\n };\n\n #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 #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(ITEM_COMPOSE_ID_SEPARATOR);\n const itemId = idList[0];\n const itemDesignType: DesignType = idList[1] as DesignType;\n const isChildNode = itemId && itemId !== \"parent\";\n const isDesignSystem = itemDesignType === \"design_system\";\n if (isChildNode || isDesignSystem) {\n this.tabsModel = DESIGN_TYPE_TO_TAB_MODEL_MAP.get(itemDesignType);\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 this.renderedTabs.clear();\n this.renderedTabs.add(this.activeTabs.get(this.selectedDesignType));\n }\n }\n };\n\n #getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.#loadedItems?.get(id);\n };\n\n #validatePath = (path: string): boolean => {\n const validPathRegex = /^(\\/|\\.\\/|(\\w:))[^:*?\"<>|]*\\.(sketch|gxsketch)$/i; // Match valid file paths\n const figmaURLRegex = /^https?:\\/\\/(www\\.)?figma\\.com/; // Match URLs containing \"www.figma.com\"\n const urlWithExtensionRegex =\n /^https?:\\/\\/[^\\s/$.?#].[^\\s]*\\.(sketch|gxsketch)$/i; // Match URLs ending with .sketch or .gxsketch\n const pathIsValid =\n validPathRegex.test(path) ||\n figmaURLRegex.test(path) ||\n urlWithExtensionRegex.test(path);\n return pathIsValid;\n };\n\n #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${ITEM_COMPOSE_ID_SEPARATOR}`)) {\n currentParentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(ITEM_COMPOSE_ID_SEPARATOR)[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils, images } = result;\n\n // this.designSystemSelected = designSystem;\n this.#panelsSelected = panels;\n this.#stencilsSelected = stencils;\n this.#imagesSelected = images;\n this.#fontsSelected = fonts;\n };\n\n #selectFileHandler = (): void => {\n this.#fileInputHiddenEl.click();\n };\n\n #styleComboBoxInputHandler = (event: CustomEvent<string> | InputEvent) => {\n this.styleValue = (event.target as HTMLChComboBoxRenderElement).value;\n if (\n this.reactiveSettings.style &&\n this.styleValue !== this.lastLoadCallbackSettingValues.style\n ) {\n this.#loadData();\n }\n };\n\n #moduleInputHandler = (event: CustomEvent<EntityData>) => {\n if (\n this.reactiveSettings.module &&\n this.defaultModule.id !== event.detail.id &&\n this.pathIsValid\n ) {\n this.#loadData();\n }\n };\n\n #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 const style = this.styleValue;\n const importAsWebPanels = this.#importAsWebPanelsEl.value === CHECKED_VALUE;\n const designData: DesignData = await this.loadCallback(\n source,\n style,\n importAsWebPanels,\n token,\n this.#messageCallback\n );\n\n // clear\n this.#panelsSelected = [];\n this.#stencilsSelected = [];\n this.#fontsSelected = [];\n this.selectedDesignType = undefined;\n this.selectedDesignItem = undefined;\n this.messages = [];\n\n this.designData = designData;\n this.isLoaded = designData?.success ?? false;\n this.isLoading = false;\n\n const firstDesignSystemName = designData.designSystem[0]?.name;\n if (firstDesignSystemName && !this.styleValue) {\n this.styleValue = firstDesignSystemName;\n }\n\n // update the settings that were used for the last load\n if (this.reactiveSettings.path && this.pathIsValid) {\n this.lastLoadCallbackSettingValues.path = this.path;\n }\n if (this.reactiveSettings.style) {\n this.lastLoadCallbackSettingValues.style = style;\n }\n if (this.reactiveSettings.module) {\n this.lastLoadCallbackSettingValues.moduleId = this.#moduleEl.value.id;\n }\n if (this.reactiveSettings.importAsWebPanels) {\n this.lastLoadCallbackSettingValues.importAsWebPanels = importAsWebPanels;\n }\n };\n\n #messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n #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 #getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"code\",\n TAB_DATA.code.slot,\n this.selectedDesignItem.code\n );\n this.textEditorFactoryCallback(\n \"html\",\n TAB_DATA.layout.slot,\n this.selectedDesignItem.layout\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n TAB_DATA.tokens.slot,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n TAB_DATA.styles.slot,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n #evaluateDesignItemsChecked = (\n designItemsData: DesignItemData[],\n selectedItems: string[]\n ) => {\n let itemsToImport: string[] = selectedItems;\n\n const totalItemsInTree = this.#countDesignDataItems(designItemsData);\n const selectedItemsLength = selectedItems.length;\n if (totalItemsInTree === selectedItemsLength) {\n itemsToImport = this.#objectTreeCheckedStatus.all;\n } else if (selectedItemsLength === 0) {\n itemsToImport = this.#objectTreeCheckedStatus.none;\n }\n\n return itemsToImport;\n };\n\n #confirm = (): void => {\n const panelsToImport = this.#evaluateDesignItemsChecked(\n this.designData.panels,\n this.#panelsSelected\n );\n const stencilsToImport = this.#evaluateDesignItemsChecked(\n this.designData.stencils,\n this.#stencilsSelected\n );\n const imagesToImport = this.#evaluateDesignItemsChecked(\n this.designData.images,\n this.#imagesSelected\n );\n const fontsToImport = this.#evaluateDesignItemsChecked(\n this.designData.fonts,\n this.#fontsSelected\n );\n\n this.confirmCallback({\n panels: panelsToImport,\n stencils: stencilsToImport,\n images: imagesToImport,\n fonts: fontsToImport,\n moduleId: this.#moduleEl?.value?.id,\n styleName: this.styleValue,\n importAsWebPanels: this.#importAsWebPanelsEl.value === CHECKED_VALUE\n });\n };\n\n #cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n #fitImagesHandler = (event: ChCheckboxCustomEvent<any> | InputEvent) => {\n this.fitImages = event.detail === CHECKED_VALUE;\n };\n\n #getPanelsSelectedItem = (panels: DesignItemData[]): number => {\n return panels.reduce((minIndex, item, index, panels) => {\n return panels[minIndex].name <= item.name ? minIndex : index;\n }, 0);\n };\n\n #importAsWebPanelsChangedHandler = () => {\n const loadData =\n this.reactiveSettings.importAsWebPanels && this.pathIsValid;\n if (loadData) {\n this.#loadData();\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.path = \"\";\n this.accessToken = \"\";\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0) {\n this.selectedFile = target.files[0];\n this.path = this.selectedFile.name;\n // we know the path is valid because the extensions are restricted by \"extensions\" Prop.\n }\n };\n\n #accessFocusHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"text\"; // display token on focus\n };\n\n #accessBlurHandler = (event: ChEditCustomEvent<string> | FocusEvent) => {\n const element = event.target as HTMLChEditElement;\n element.type = \"password\"; // hide token on blur\n\n this.accessTokenChanged(element.value);\n };\n\n #pathUrlInputHandler = async (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.path = event.detail as string;\n this.#evaluateAccessTokenRender();\n this.selectedFile = null;\n if (!this.path.length) {\n this.designData = null;\n }\n };\n\n #renderHeader = (): Element => {\n const primaryButtonDisabled =\n this.isLoading ||\n (this.pathIsValid &&\n this.requiresAccessToken &&\n this.accessToken.length === 0);\n const clearFileButtonDisabled = this.isLoading || this.path.length === 0;\n const stylesComboDisabled = this.isLoading;\n const moduleDisabled = this.isLoading;\n const pathWithErrorStyles = !this.pathIsValid && this.path.length > 0;\n const displayPathErrorTooltip = !this.pathIsValid && this.path.length > 0;\n const fitImagesIsDisabled =\n this.isLoading ||\n !this.designDataTreeDataModel.length ||\n this.selectedDesignType === \"stencils\" ||\n this.selectedDesignType === \"design_system\";\n\n let primaryButtonCaption;\n if (\n this.pathIsValid &&\n this.path === this.lastLoadCallbackSettingValues.path\n ) {\n primaryButtonCaption = this.#componentLocale.header.btnReload;\n } else if (this.pathIsValid) {\n primaryButtonCaption = this.#componentLocale.header.btnLoad;\n } else {\n primaryButtonCaption = this.#componentLocale.header.selectFileButton;\n }\n\n return (\n <header\n class={{\n \"header\": true,\n \"control-header-with-border\": true,\n \"spacing-body-inline\": true,\n \"spacing-body-block-start\": true,\n \"header--show-access-token\": this.requiresAccessToken,\n \"header--hide-access-token\": !this.requiresAccessToken,\n \"field-group-justified-start\": true\n }}\n >\n <label\n // path/url label\n class=\"label path-url-label\"\n >\n {this.#componentLocale.header.path}\n </label>\n <div class=\"path-url-wrapper buttons-spacer\">\n <ch-edit\n // path/url/file input\n id=\"path-url\"\n class={{\n \"input\": true,\n \"input-error\": pathWithErrorStyles,\n \"path-url-control\": true\n }}\n debounce={config.inputDebounce}\n part=\"option-path\"\n type=\"text\"\n value={this.path}\n onInput={this.#pathUrlInputHandler}\n onBlur={this.reactiveSettings.path && this.#pathURLBlurHandler}\n disabled={this.isLoading}\n placeholder={`${this.#componentLocale.header.pathPlaceholder}`}\n startImgSrc={FILE_UPLOAD}\n ref={(el: HTMLChEditElement) =>\n (this.#pathEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {displayPathErrorTooltip && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={this.#pathEl as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.pathErrorMessage}{\" \"}\n {this.#formattedExtensions}\n </ch-tooltip>\n )}\n\n <input\n hidden\n type=\"file\"\n accept={this.#formattedExtensions}\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n\n <div class=\"buttons-spacer\">\n <button\n // remove file selection\n aria-label={this.#componentLocale.header.removeFileSelection}\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n disabled={clearFileButtonDisabled}\n onClick={!clearFileButtonDisabled && this.#removeFileSelection}\n >\n <ch-image\n class=\"icon-md\"\n src={MENU_DELETE}\n disabled={clearFileButtonDisabled}\n ></ch-image>\n </button>\n <button\n // load file button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={\n this.pathIsValid ? this.#loadData : this.#selectFileHandler\n }\n part=\"button button--load\"\n disabled={primaryButtonDisabled}\n class={{\n \"button-primary\": this.pathIsValid,\n \"button-secondary\": !this.pathIsValid,\n \"select-load-button\": true\n }}\n >\n {primaryButtonCaption}\n </button>\n </div>\n </div>\n\n {this.requiresAccessToken && [\n <label\n // access token label\n class=\"label access-token-label\"\n >\n {this.#componentLocale.header.accessToken}\n </label>,\n <div>\n <ch-edit\n class={{\n \"input\": true,\n \"access-token\": true,\n \"input-error\": this.accessTokenHasError\n }}\n ref={(el: HTMLChEditElement) =>\n (this.#accessTokenEl = el as HTMLChEditElement)\n }\n value={this.accessToken}\n placeholder={this.#componentLocale.header.accessTokenPlaceholder}\n onFocus={this.#accessFocusHandler}\n onBlur={this.#accessBlurHandler}\n part=\"access-token\"\n disabled={this.isLoading}\n type=\"password\"\n ></ch-edit>\n {this.accessTokenHasError && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={\n this.#accessTokenEl as unknown as HTMLButtonElement\n }\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.header.accessTokenErrorMessage}\n </ch-tooltip>\n )}\n </div>\n ]}\n <label\n // style label\n class=\"label style-label\"\n >\n {this.#componentLocale.header.style}\n </label>\n <ch-combo-box-render\n // style combo box\n suggest={true}\n suggestOptions={{\n alreadyProcessed: true\n }}\n disabled={stylesComboDisabled}\n model={this.stylesAsComboBoxModel}\n value={this.styleValue}\n onInput={this.#styleComboBoxInputHandler}\n part=\"option-style\"\n class=\"combo-box style\"\n ></ch-combo-box-render>\n\n <label\n // module label\n class=\"label module-label\"\n >\n {this.#componentLocale.header.module}\n </label>\n <gx-ide-entity-selector\n // module entity selector\n labelPosition=\"none\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n onValueChanged={\n this.reactiveSettings.module && this.#moduleInputHandler\n }\n disabled={moduleDisabled}\n class=\"module\"\n ></gx-ide-entity-selector>\n\n <div\n // import as web panels\n class=\"checkboxes-options field-group\"\n >\n <ch-checkbox\n caption={this.#componentLocale.header.importAs}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox import-as-web-panels\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#importAsWebPanelsEl = el as HTMLChCheckboxElement)\n }\n value={this.importAsWebPanels ? CHECKED_VALUE : undefined}\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n onInput={this.#importAsWebPanelsChangedHandler}\n ></ch-checkbox>\n\n <div\n class={{\n \"field-group-inline\": true,\n \"checkboxes-options__col-right\": true\n }}\n >\n <ch-checkbox\n // fit images\n caption={this.#componentLocale.header.fitImages}\n checkedValue={CHECKED_VALUE}\n class=\"checkbox\"\n part=\"fit-images-checkbox\"\n disabled={fitImagesIsDisabled}\n onInput={this.#fitImagesHandler}\n ></ch-checkbox>\n </div>\n </div>\n </header>\n );\n };\n\n #renderMessages = (): HTMLParagraphElement[] => {\n return (\n this.messages.length > 0 &&\n this.messages.map(message => (\n <p\n class={{\n \"body-regular-m\": true,\n \"message\": true,\n [`message--${message.type}`]: true\n }}\n >\n {message.type}: {message.text}\n </p>\n ))\n );\n };\n\n #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 #renderMain = () => {\n if (this.isLoading || this.designData?.success === false) {\n return (\n <div\n class=\"main main--loading scrollable\"\n ref={(el: HTMLElement) => (this.#messagesList = el as HTMLElement)}\n >\n {this.#renderMessages()}\n <div class=\"body-regular-m spacing-body\">\n <slot name=\"messages\"></slot>\n </div>\n </div>\n );\n } else if (this.designData?.success) {\n return (\n /* #main*/\n <div class=\"main\">\n {[this.#renderDesignTree(), this.#renderDesignTabsCh()]}\n </div>\n );\n } else {\n return (\n <gx-ide-empty-state\n class=\"empty-state scrollable\"\n stateIconSrc={DESIGN}\n isAnimated={this.#emptyStateAnimated}\n stateTitle={this.#componentLocale.messages.noDesignSelected}\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-tertiary empty-state-button\"\n onClick={this.#selectFileHandler}\n >\n {this.#componentLocale.messages.selectDesign}\n </button>\n </gx-ide-empty-state>\n );\n }\n };\n\n #renderDesignTree = (): HTMLChTreeViewElement => {\n return (\n <ch-tree-view-render\n part=\"data-tree\"\n class=\"tree-view\"\n id=\"data-tree\"\n showLines=\"last\"\n model={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n expandableButton=\"action\"\n expandOnClick={false}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.#objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.#objectsTreeSelectedItemsChangedHandler}\n ></ch-tree-view-render>\n );\n };\n\n #renderFooter = () => {\n const buttonOkDisabled =\n this.designData?.success !== true || this.isLoading;\n return (\n <footer class=\"control-footer-with-border spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n // button cancel\n id=\"button-cancel\"\n class=\"button-secondary button-cancel\"\n type=\"outlined\"\n onClick={this.#cancel}\n part=\"button button--cancel\"\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n // button ok\n id=\"button-ok\"\n class=\"button-primary button-ok\"\n type=\"primary-text-only\"\n onClick={!buttonOkDisabled && this.#confirm}\n part=\"button button--ok\"\n disabled={buttonOkDisabled}\n slot=\"footer-end\"\n >\n {this.#componentLocale.footer.btnOk}\n </button>\n </div>\n </footer>\n );\n };\n\n #evaluatePanelPreview = () => {\n if (this.selectedDesignType === \"panels\") {\n return this.selectedDesignItem?.composition?.preview ? (\n <div\n part=\"data-panel-composition-preview\"\n class=\"panel-item scrollable\"\n >\n <img\n src={this.selectedDesignItem.composition.preview}\n alt=\"Preview\"\n />\n </div>\n ) : (\n <gx-ide-empty-state\n class=\"panel-tab__empty-state\"\n stateTitle={this.#componentLocale.messages.noPanelPreviewAvailable}\n stateIconSrc={\n this.#importAsWebPanelsEl.value === CHECKED_VALUE\n ? WEBPANEL_ICON\n : PANEL_FOR_SD_ICON\n }\n ></gx-ide-empty-state>\n );\n }\n return null;\n };\n\n #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.#evaluatePanelPreview()}\n\n {renderControlsTree ? (\n <ch-tree-view-render\n part=\"data-panel-composition-tree\"\n class=\"tree-view tree-view-panel-item scrollable\"\n showLines=\"last\"\n model={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></ch-tree-view-render>\n ) : null}\n </div>\n );\n };\n\n #renderImageTab = () => {\n return (\n <div\n part=\"data-panel-composition-preview\"\n class=\"data-preview\"\n style={{ height: \"100%\" }}\n >\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n class={\n this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES\n ? \"checker-board\"\n : undefined\n }\n />\n </div>\n );\n };\n\n #tabSelectionChangedHandler = (\n event: CustomEvent<{\n lastSelectedIndex: number;\n newSelectedId: string;\n newSelectedIndex: number;\n }>\n ): void => {\n this.renderedTabs.clear();\n this.renderedTabs.add(event.detail.newSelectedId);\n this.reRenderCounter++;\n this.activeTabs.set(this.selectedDesignType, event.detail.newSelectedId);\n };\n\n #renderDesignTabsCh = (): HTMLChTabRenderElement => {\n return (\n <ch-tab-render\n // main section\n class={{\n \"tab\": true,\n \"scrollable\": true,\n \"fit-images\": this.fitImages\n }}\n tabListPosition=\"block-start\"\n model={this.tabsModel}\n selectedId={this.activeTabs.get(this.selectedDesignType)}\n overflow=\"auto\"\n contain=\"size\"\n onSelectedItemChange={this.#tabSelectionChangedHandler}\n >\n <div\n slot={TAB_DATA.tokens.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.tokens.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.tokens.slot}></slot>\n </div>\n\n <div\n slot={TAB_DATA.styles.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.styles.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.styles.slot}></slot>\n </div>\n\n <div\n class=\"composition-tab-slot scrollable\"\n slot={TAB_DATA.composition.slot}\n style={{\n display: this.renderedTabs.has(TAB_DATA.composition.id)\n ? \"\"\n : \"none\"\n }}\n >\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.#renderImageTab()\n : this.#renderPanelTab()}\n </div>\n\n <div\n slot={TAB_DATA.layout.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.layout.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.layout.slot}></slot>\n </div>\n\n <div\n slot={TAB_DATA.code.slot}\n class=\"spacing-body\"\n style={{\n display: this.renderedTabs.has(TAB_DATA.code.id) ? \"\" : \"none\"\n }}\n >\n <slot name={TAB_DATA.code.slot}></slot>\n </div>\n </ch-tab-render>\n );\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {this.#renderHeader()}\n {this.#renderMain()}\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n designSystem: string,\n importAsWebPanels: boolean,\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: string,\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 success: boolean;\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n warning?: string;\n variants?: DesignItemData[];\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n layout?: 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 DesignObjectType = {\n [Key in DesignType]: string;\n};\n\nexport type ItemLoadedInfo = {\n designType: DesignType;\n designDataDetail: DesignItemDataDetail;\n};\n\nexport type TextEditorType = \"code\" | \"html\" | \"styles\" | \"tokens\";\n\nexport type ReactiveSettings = {\n path: boolean;\n style: boolean;\n module: boolean;\n importAsWebPanels: boolean;\n};\n\nexport type ObjectTreeCheckedStatus = {\n all: [];\n none: [\"-\"];\n};\n\ntype ReactiveSettingsValues = {\n path: string;\n style: string;\n moduleId: string;\n importAsWebPanels: boolean;\n};\n"],"version":3}
@@ -3,7 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-2f1471c9.js');
6
- const MERCURY_ASSETS = require('./MERCURY_ASSETS-f14e91ff.js');
6
+ const assetsManager = require('./assets-manager-089e91b1.js');
7
+ require('./mer-animated-dots-001c7465.js');
8
+ require('lit');
9
+ require('lit/directives/when.js');
10
+ require('lit/directives/if-defined.js');
7
11
  const locale = require('./locale-ff30a5f3.js');
8
12
 
9
13
  const detailsAcknowledgementsCss = "@charset \"UTF-8\";:host{display:grid;block-size:100%;grid-auto-rows:max-content;justify-content:center;padding:95px var(--mer-spacing--lg) 95px var(--mer-spacing--lg);overflow:auto}.licenses-descriptions-list,.licenses-names-list{list-style:none;margin:0;padding:0}.main-wrapper{max-inline-size:1000px;display:grid;gap:var(--mer-spacing--xl)}.logo{inline-size:200px;margin:0 auto;margin-block-end:var(--mer-spacing--2xl);opacity:0;transform:translateY(var(--mer-spacing--2xs));animation:showLogo var(--mer-timing--regular) ease-out forwards;animation-delay:var(--mer-timing--regular)}@keyframes showLogo{100%{opacity:1;transform:translateY(0)}}.card{display:grid;border-radius:var(--mer-border__radius--sm);border-width:var(--mer-border__width--sm);border-color:var(--elevation-border-color);border-style:solid;padding:var(--mer-spacing--lg);gap:var(--mer-spacing--md);opacity:0;animation:showCard var(--mer-timing--fast) ease-out forwards;animation-delay:calc(var(--mer-timing--regular) * 2)}@keyframes showCard{100%{opacity:1}}h1.title{font-weight:600}.intro-container{display:grid;gap:var(--mer-spacing--md)}.date-container{display:grid;gap:var(--mer-spacing--sm)}.card-package{opacity:0;transition:opacity var(--mer-timing--fast)}.package-name{--package-name-color:var(--mer-text__primary);color:var(--package-name-color)}.package-name a{display:flex;align-items:center;gap:8px}.package-name.has-link:hover{--package-name-color:var(--mer-text__primary--hover)}.package-name.has-link:active{--package-name-color:var(--mer-text__primary--active)}.package-link{display:inline-block}.licenses-names-list{display:flex;align-items:center}.licenses-names-item:not(:first-child)::before{content:\"•\";padding-inline:8px}.licenses-descriptions-description{white-space:break-spaces;max-block-size:940px;overflow:auto;line-height:1.5}.licenses-descriptions-item{display:grid;gap:var(--mer-spacing--md)}.code-box{border-radius:var(--mer-border__radius--sm);background-color:var(--mer-surface);border:1px solid var(--mer-border-color__on-elevation--01);padding:var(--mer-spacing--md);font-family:var(--font-family-code);font-size:var(--font-size-body-s);display:grid;gap:var(--mer-spacing--lg)}.description-list{display:grid;gap:var(--mer-spacing--xs);max-inline-size:400px;margin:0 auto}.show-more-button{justify-self:start}.color-default{color:var(--mer-text__highlighted)}.color-neutral{color:var(--mer-color__neutral-gray--400)}.color-primary{color:var(--mer-text__primary)}p{--line-height-tight:1.5;--font-weight-regular:300}hr{border-block-start:0;border-color:var(--mer-border-color__on-elevation--01);inline-size:100%;margin:0}";
@@ -16,7 +20,7 @@ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) ||
16
20
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
17
21
  };
18
22
  var _GxIdeDetailsAcknowledgements_getFormatedDate, _GxIdeDetailsAcknowledgements_renderLicenseInfo, _GxIdeDetailsAcknowledgements_renderLicensesViewButtons, _GxIdeDetailsAcknowledgements_getLicenseId, _GxIdeDetailsAcknowledgements_viewLicenseClickedHandler, _GxIdeDetailsAcknowledgements_openLinkClickedHandler;
19
- const OPEN_WINDOW_ICON = MERCURY_ASSETS.getIconPath({
23
+ const OPEN_WINDOW_ICON = assetsManager.getIconPath({
20
24
  category: "gemini-tools",
21
25
  name: "open-window",
22
26
  colorType: "primary"
@@ -1 +1 @@
1
- {"file":"gx-ide-details-acknowledgements.entry.cjs.js","mappings":"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","names":["getIconPath","getAssetPath","h","Locale","Host"],"sources":["src/components/details-acknowledgements/details-acknowledgements.scss?tag=gx-ide-details-acknowledgements&encapsulation=shadow","src/components/details-acknowledgements/details-acknowledgements.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-auto-rows: max-content;\n justify-content: center;\n padding: 95px var(--mer-spacing--lg) 95px var(--mer-spacing--lg);\n overflow: auto;\n}\n\n%resetList {\n // TODO: Use mixin from common\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.main-wrapper {\n max-inline-size: 1000px;\n display: grid;\n gap: var(--mer-spacing--xl);\n}\n\n.logo {\n inline-size: 200px;\n margin: 0 auto;\n margin-block-end: var(--mer-spacing--2xl);\n opacity: 0;\n transform: translateY(var(--mer-spacing--2xs));\n animation: showLogo var(--mer-timing--regular) ease-out forwards;\n animation-delay: var(--mer-timing--regular);\n}\n@keyframes showLogo {\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n// general\n\n.card {\n display: grid;\n border-radius: var(--mer-border__radius--sm);\n border-width: var(--mer-border__width--sm);\n border-color: var(--elevation-border-color);\n border-style: solid;\n padding: var(--mer-spacing--lg);\n gap: var(--mer-spacing--md);\n opacity: 0;\n animation: showCard var(--mer-timing--fast) ease-out forwards;\n animation-delay: calc(var(--mer-timing--regular) * 2);\n}\n@keyframes showCard {\n 100% {\n opacity: 1;\n }\n}\n\n// details card\n\nh1.title {\n font-weight: 600;\n}\n\n.intro-container {\n display: grid;\n gap: var(--mer-spacing--md);\n}\n\n.date-container {\n display: grid;\n gap: var(--mer-spacing--sm);\n}\n\n// package card\n\n.card-package {\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\n\n.package-name {\n --package-name-color: var(--mer-text__primary);\n color: var(--package-name-color);\n\n a {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n &.has-link {\n // TODO: This should be a class in Mercury\n &:hover {\n --package-name-color: var(--mer-text__primary--hover);\n }\n &:active {\n --package-name-color: var(--mer-text__primary--active);\n }\n }\n}\n.package-link {\n display: inline-block;\n}\n\n.licenses-names-list {\n @extend %resetList;\n display: flex;\n align-items: center;\n}\n.licenses-names-item:not(:first-child)::before {\n content: \"•\";\n padding-inline: 8px;\n}\n\n.licenses-descriptions-list {\n @extend %resetList;\n}\n.licenses-descriptions-description {\n white-space: break-spaces;\n max-block-size: 940px;\n overflow: auto;\n line-height: 1.5;\n}\n.licenses-descriptions-item {\n display: grid;\n gap: var(--mer-spacing--md);\n}\n\n.code-box {\n border-radius: var(--mer-border__radius--sm);\n background-color: var(--mer-surface);\n border: 1px solid var(--mer-border-color__on-elevation--01);\n padding: var(--mer-spacing--md);\n font-family: var(--font-family-code);\n font-size: var(--font-size-body-s);\n display: grid;\n gap: var(--mer-spacing--lg);\n}\n\n.description-list {\n display: grid;\n gap: var(--mer-spacing--xs);\n max-inline-size: 400px;\n margin: 0 auto;\n}\n\n.show-more-button {\n justify-self: start;\n}\n\n// utilities\n// WA/TODO: This should be defined on Mercury\n.color-default {\n color: var(--mer-text__highlighted);\n}\n.color-neutral {\n color: var(--mer-color__neutral-gray--400);\n}\n.color-primary {\n color: var(--mer-text__primary);\n}\n\np {\n // TODO: Update line-height values on Mercury\n --line-height-tight: 1.5;\n --font-weight-regular: 300;\n}\n\nhr {\n // WA/TODO: A style for hr should be defined on Mercury\n border-block-start: 0;\n border-color: var(--mer-border-color__on-elevation--01);\n inline-size: 100%;\n margin: 0;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath,\n JSX\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\n\nimport type { PackageData, License, OpenPackageURLCallback } from \"./types\";\n\nconst OPEN_WINDOW_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"open-window\",\n colorType: \"primary\"\n});\n\nconst IMAGES_PATH = \"./gx-ide-assets/details-acknowledgements/images\";\nconst BACKGROUND_SIZE = \"300px\";\n\nconst GENEXUS_NEXT_LOGO_SRC = getAssetPath(\n `${IMAGES_PATH}/genexus-next-logo.svg`\n);\nconst BG_IMAGE_TOP_START = getAssetPath(`${IMAGES_PATH}/top-start.svg`);\nconst BG_IMAGE_BOTTOM_START = getAssetPath(`${IMAGES_PATH}/bottom-start.svg`);\nconst BG_IMAGE_BOTTOM_END = getAssetPath(`${IMAGES_PATH}/bottom-end.svg`);\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/elevation\",\n \"components/button\",\n \"components/icon\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-details-acknowledgements\",\n styleUrl: \"details-acknowledgements.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/details-acknowledgements\"]\n})\nexport class GxIdeDetailsAcknowledgements {\n /**\n * The component hard-coded strings translations.\n */\n _componentLocale: any;\n\n @Element() el: HTMLGxIdeDetailsAcknowledgementsElement;\n\n /**\n * Identifier of the currently expanded license. Should combine:\n * packageName + packageVersion + license.name. Example:\n * @sentry/core-6.7.1-mit\n */\n @State() expandedLicenseId?: string;\n\n /** The date when the current release was published */\n @Prop() readonly dateGenerated?: Date;\n\n /** The version of the current release*/\n @Prop() readonly release?: string;\n\n /** The list of packages that the current release contains*/\n @Prop() readonly packages: PackageData[];\n\n /**\n * Callback invoked when the user clicks a package with a packageURL.\n * If openPackageUrlCallback is defined, the default link action is\n * prevented and the URL is passed to the host via the callback.\n * Otherwise, the link opens in a new tab as usual.\n */\n @Prop() readonly openPackageUrlCallback: OpenPackageURLCallback;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #getFormatedDate = (date: Date) => {\n return date?.toISOString().split(\"T\")[0];\n };\n\n #renderLicenseInfo = (\n license: License,\n type: \"name\" | \"description\" = \"name\",\n packageData: PackageData\n ): JSX.Element => {\n const licenseId = this.#getLicenseId(packageData, license.name);\n const showDescription = licenseId === this.expandedLicenseId;\n return type === \"name\" ? (\n <ul class=\"licenses-names-list\">\n <li class=\"color-default body-regular-m licenses-names-item\">\n {license.name}\n </li>\n </ul>\n ) : (\n <ul class=\"licenses-descriptions-list\">\n <li class=\"licenses-descriptions-item\" key={license.name}>\n {showDescription ? (\n <p class=\"code-box color-neutral licenses-descriptions-description scrollable\">\n {license.description}\n </p>\n ) : null}\n </li>\n </ul>\n );\n };\n\n #renderLicensesViewButtons = (\n license: License,\n packageData?: PackageData\n ): JSX.Element => {\n const licenseId = this.#getLicenseId(packageData, license.name);\n const visibleLicenseButton = licenseId === this.expandedLicenseId;\n const viewLicenseButtonLabel = visibleLicenseButton\n ? this._componentLocale.detailsCard.hide\n : this._componentLocale.detailsCard.show;\n return (\n <div class=\"licenses-buttons-container buttons-spacer\">\n {\n <button\n class={{\n \"button-icon-and-text\": true,\n \"button-primary\": !visibleLicenseButton,\n \"button-secondary\": visibleLicenseButton,\n \"show-more-button\": true\n }}\n onClick={this.#viewLicenseClickedHandler(licenseId)}\n >\n {viewLicenseButtonLabel}\n </button>\n }\n </div>\n );\n };\n\n #getLicenseId = (packageData: PackageData, licenseName: string): string => {\n return `${packageData.packageName}-${packageData.packageVersion}-${licenseName}`;\n };\n\n #viewLicenseClickedHandler = (licenseId: string) => () => {\n if (licenseId === this.expandedLicenseId) {\n // collapse\n this.expandedLicenseId = undefined;\n } else {\n // expand collapse\n this.expandedLicenseId = licenseId;\n }\n };\n\n #openLinkClickedHandler = (url: string) => (e: MouseEvent) => {\n if (this.openPackageUrlCallback) {\n e.preventDefault();\n this.openPackageUrlCallback(url);\n }\n };\n\n render() {\n const formatedDate = this.#getFormatedDate(this.dateGenerated);\n return (\n <Host\n class=\"scrollable\"\n style={{\n backgroundImage: `url(${BG_IMAGE_TOP_START}), url(${BG_IMAGE_BOTTOM_START}), url(${BG_IMAGE_BOTTOM_END})`,\n backgroundPosition: \"left top, left bottom, right bottom\",\n backgroundRepeat: \"no-repeat, no-repeat, no-repeat\",\n backgroundSize: `${BACKGROUND_SIZE}, ${BACKGROUND_SIZE}, ${BACKGROUND_SIZE}`\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"main-wrapper\">\n <img src={GENEXUS_NEXT_LOGO_SRC} class=\"logo\"></img>\n <div class=\"card card-details elevation-1\">\n <div class=\"intro-container\">\n <h1 class=\"title heading-3 color-default\">\n {this._componentLocale.detailsCard.title}\n </h1>\n <p class=\"color-default body-regular-m\">\n {this._componentLocale.detailsCard.mainDescription}\n </p>\n <p class=\"color-neutral body-italic-s\">\n {this._componentLocale.detailsCard.secondaryDescription}\n </p>\n </div>\n\n <hr />\n\n <div class=\"date-container\">\n <p class=\"color-neutral\">\n {this._componentLocale.detailsCard.dateGenerated}\n </p>\n <time class=\"color-default\" dateTime={formatedDate}>\n {formatedDate}\n </time>\n </div>\n </div>\n\n {this.packages?.map(packageItem => {\n let packageName = `${packageItem.packageName} ${packageItem.packageVersion}`;\n const headingContent = packageItem.packageURL ? (\n <a\n href={packageItem.packageURL}\n target=\"_blank\"\n onClick={this.#openLinkClickedHandler(packageItem.packageURL)}\n class=\"package-link\"\n >\n {packageName}\n <ch-image\n src={OPEN_WINDOW_ICON}\n class=\"package-icon icon-md\"\n ></ch-image>\n </a>\n ) : (\n packageName\n );\n\n return (\n <article class=\"card card-package elevation-1\">\n <h2\n class={{\n \"subtitle-semi-bold-s\": true,\n \"package-name\": true,\n \"has-link\": !!packageItem.packageURL\n }}\n >\n {headingContent}\n </h2>\n <p class=\"color-default subtitle-semi-bold-s\">\n {this._componentLocale.packageCard.declaredLicenses}\n </p>\n {this.#renderLicenseInfo(\n packageItem.declaredLicense,\n \"name\",\n packageItem\n )}\n\n {this.#renderLicenseInfo(\n packageItem.declaredLicense,\n \"description\",\n packageItem\n )}\n\n {this.#renderLicensesViewButtons(\n packageItem.declaredLicense,\n packageItem\n )}\n </article>\n );\n })}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"gx-ide-details-acknowledgements.entry.cjs.js","mappings":"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","names":["getIconPath","getAssetPath","h","Locale","Host"],"sources":["src/components/details-acknowledgements/details-acknowledgements.scss?tag=gx-ide-details-acknowledgements&encapsulation=shadow","src/components/details-acknowledgements/details-acknowledgements.tsx"],"sourcesContent":[":host {\n display: grid;\n block-size: 100%;\n grid-auto-rows: max-content;\n justify-content: center;\n padding: 95px var(--mer-spacing--lg) 95px var(--mer-spacing--lg);\n overflow: auto;\n}\n\n%resetList {\n // TODO: Use mixin from common\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.main-wrapper {\n max-inline-size: 1000px;\n display: grid;\n gap: var(--mer-spacing--xl);\n}\n\n.logo {\n inline-size: 200px;\n margin: 0 auto;\n margin-block-end: var(--mer-spacing--2xl);\n opacity: 0;\n transform: translateY(var(--mer-spacing--2xs));\n animation: showLogo var(--mer-timing--regular) ease-out forwards;\n animation-delay: var(--mer-timing--regular);\n}\n@keyframes showLogo {\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n// general\n\n.card {\n display: grid;\n border-radius: var(--mer-border__radius--sm);\n border-width: var(--mer-border__width--sm);\n border-color: var(--elevation-border-color);\n border-style: solid;\n padding: var(--mer-spacing--lg);\n gap: var(--mer-spacing--md);\n opacity: 0;\n animation: showCard var(--mer-timing--fast) ease-out forwards;\n animation-delay: calc(var(--mer-timing--regular) * 2);\n}\n@keyframes showCard {\n 100% {\n opacity: 1;\n }\n}\n\n// details card\n\nh1.title {\n font-weight: 600;\n}\n\n.intro-container {\n display: grid;\n gap: var(--mer-spacing--md);\n}\n\n.date-container {\n display: grid;\n gap: var(--mer-spacing--sm);\n}\n\n// package card\n\n.card-package {\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\n\n.package-name {\n --package-name-color: var(--mer-text__primary);\n color: var(--package-name-color);\n\n a {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n &.has-link {\n // TODO: This should be a class in Mercury\n &:hover {\n --package-name-color: var(--mer-text__primary--hover);\n }\n &:active {\n --package-name-color: var(--mer-text__primary--active);\n }\n }\n}\n.package-link {\n display: inline-block;\n}\n\n.licenses-names-list {\n @extend %resetList;\n display: flex;\n align-items: center;\n}\n.licenses-names-item:not(:first-child)::before {\n content: \"•\";\n padding-inline: 8px;\n}\n\n.licenses-descriptions-list {\n @extend %resetList;\n}\n.licenses-descriptions-description {\n white-space: break-spaces;\n max-block-size: 940px;\n overflow: auto;\n line-height: 1.5;\n}\n.licenses-descriptions-item {\n display: grid;\n gap: var(--mer-spacing--md);\n}\n\n.code-box {\n border-radius: var(--mer-border__radius--sm);\n background-color: var(--mer-surface);\n border: 1px solid var(--mer-border-color__on-elevation--01);\n padding: var(--mer-spacing--md);\n font-family: var(--font-family-code);\n font-size: var(--font-size-body-s);\n display: grid;\n gap: var(--mer-spacing--lg);\n}\n\n.description-list {\n display: grid;\n gap: var(--mer-spacing--xs);\n max-inline-size: 400px;\n margin: 0 auto;\n}\n\n.show-more-button {\n justify-self: start;\n}\n\n// utilities\n// WA/TODO: This should be defined on Mercury\n.color-default {\n color: var(--mer-text__highlighted);\n}\n.color-neutral {\n color: var(--mer-color__neutral-gray--400);\n}\n.color-primary {\n color: var(--mer-text__primary);\n}\n\np {\n // TODO: Update line-height values on Mercury\n --line-height-tight: 1.5;\n --font-weight-regular: 300;\n}\n\nhr {\n // WA/TODO: A style for hr should be defined on Mercury\n border-block-start: 0;\n border-color: var(--mer-border-color__on-elevation--01);\n inline-size: 100%;\n margin: 0;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath,\n JSX\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\n\nimport type { PackageData, License, OpenPackageURLCallback } from \"./types\";\n\nconst OPEN_WINDOW_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"open-window\",\n colorType: \"primary\"\n});\n\nconst IMAGES_PATH = \"./gx-ide-assets/details-acknowledgements/images\";\nconst BACKGROUND_SIZE = \"300px\";\n\nconst GENEXUS_NEXT_LOGO_SRC = getAssetPath(\n `${IMAGES_PATH}/genexus-next-logo.svg`\n);\nconst BG_IMAGE_TOP_START = getAssetPath(`${IMAGES_PATH}/top-start.svg`);\nconst BG_IMAGE_BOTTOM_START = getAssetPath(`${IMAGES_PATH}/bottom-start.svg`);\nconst BG_IMAGE_BOTTOM_END = getAssetPath(`${IMAGES_PATH}/bottom-end.svg`);\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/elevation\",\n \"components/button\",\n \"components/icon\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-details-acknowledgements\",\n styleUrl: \"details-acknowledgements.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/details-acknowledgements\"]\n})\nexport class GxIdeDetailsAcknowledgements {\n /**\n * The component hard-coded strings translations.\n */\n _componentLocale: any;\n\n @Element() el: HTMLGxIdeDetailsAcknowledgementsElement;\n\n /**\n * Identifier of the currently expanded license. Should combine:\n * packageName + packageVersion + license.name. Example:\n * @sentry/core-6.7.1-mit\n */\n @State() expandedLicenseId?: string;\n\n /** The date when the current release was published */\n @Prop() readonly dateGenerated?: Date;\n\n /** The version of the current release*/\n @Prop() readonly release?: string;\n\n /** The list of packages that the current release contains*/\n @Prop() readonly packages: PackageData[];\n\n /**\n * Callback invoked when the user clicks a package with a packageURL.\n * If openPackageUrlCallback is defined, the default link action is\n * prevented and the URL is passed to the host via the callback.\n * Otherwise, the link opens in a new tab as usual.\n */\n @Prop() readonly openPackageUrlCallback: OpenPackageURLCallback;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #getFormatedDate = (date: Date) => {\n return date?.toISOString().split(\"T\")[0];\n };\n\n #renderLicenseInfo = (\n license: License,\n type: \"name\" | \"description\" = \"name\",\n packageData: PackageData\n ): JSX.Element => {\n const licenseId = this.#getLicenseId(packageData, license.name);\n const showDescription = licenseId === this.expandedLicenseId;\n return type === \"name\" ? (\n <ul class=\"licenses-names-list\">\n <li class=\"color-default body-regular-m licenses-names-item\">\n {license.name}\n </li>\n </ul>\n ) : (\n <ul class=\"licenses-descriptions-list\">\n <li class=\"licenses-descriptions-item\" key={license.name}>\n {showDescription ? (\n <p class=\"code-box color-neutral licenses-descriptions-description scrollable\">\n {license.description}\n </p>\n ) : null}\n </li>\n </ul>\n );\n };\n\n #renderLicensesViewButtons = (\n license: License,\n packageData?: PackageData\n ): JSX.Element => {\n const licenseId = this.#getLicenseId(packageData, license.name);\n const visibleLicenseButton = licenseId === this.expandedLicenseId;\n const viewLicenseButtonLabel = visibleLicenseButton\n ? this._componentLocale.detailsCard.hide\n : this._componentLocale.detailsCard.show;\n return (\n <div class=\"licenses-buttons-container buttons-spacer\">\n {\n <button\n class={{\n \"button-icon-and-text\": true,\n \"button-primary\": !visibleLicenseButton,\n \"button-secondary\": visibleLicenseButton,\n \"show-more-button\": true\n }}\n onClick={this.#viewLicenseClickedHandler(licenseId)}\n >\n {viewLicenseButtonLabel}\n </button>\n }\n </div>\n );\n };\n\n #getLicenseId = (packageData: PackageData, licenseName: string): string => {\n return `${packageData.packageName}-${packageData.packageVersion}-${licenseName}`;\n };\n\n #viewLicenseClickedHandler = (licenseId: string) => () => {\n if (licenseId === this.expandedLicenseId) {\n // collapse\n this.expandedLicenseId = undefined;\n } else {\n // expand collapse\n this.expandedLicenseId = licenseId;\n }\n };\n\n #openLinkClickedHandler = (url: string) => (e: MouseEvent) => {\n if (this.openPackageUrlCallback) {\n e.preventDefault();\n this.openPackageUrlCallback(url);\n }\n };\n\n render() {\n const formatedDate = this.#getFormatedDate(this.dateGenerated);\n return (\n <Host\n class=\"scrollable\"\n style={{\n backgroundImage: `url(${BG_IMAGE_TOP_START}), url(${BG_IMAGE_BOTTOM_START}), url(${BG_IMAGE_BOTTOM_END})`,\n backgroundPosition: \"left top, left bottom, right bottom\",\n backgroundRepeat: \"no-repeat, no-repeat, no-repeat\",\n backgroundSize: `${BACKGROUND_SIZE}, ${BACKGROUND_SIZE}, ${BACKGROUND_SIZE}`\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"main-wrapper\">\n <img src={GENEXUS_NEXT_LOGO_SRC} class=\"logo\"></img>\n <div class=\"card card-details elevation-1\">\n <div class=\"intro-container\">\n <h1 class=\"title heading-3 color-default\">\n {this._componentLocale.detailsCard.title}\n </h1>\n <p class=\"color-default body-regular-m\">\n {this._componentLocale.detailsCard.mainDescription}\n </p>\n <p class=\"color-neutral body-italic-s\">\n {this._componentLocale.detailsCard.secondaryDescription}\n </p>\n </div>\n\n <hr />\n\n <div class=\"date-container\">\n <p class=\"color-neutral\">\n {this._componentLocale.detailsCard.dateGenerated}\n </p>\n <time class=\"color-default\" dateTime={formatedDate}>\n {formatedDate}\n </time>\n </div>\n </div>\n\n {this.packages?.map(packageItem => {\n let packageName = `${packageItem.packageName} ${packageItem.packageVersion}`;\n const headingContent = packageItem.packageURL ? (\n <a\n href={packageItem.packageURL}\n target=\"_blank\"\n onClick={this.#openLinkClickedHandler(packageItem.packageURL)}\n class=\"package-link\"\n >\n {packageName}\n <ch-image\n src={OPEN_WINDOW_ICON}\n class=\"package-icon icon-md\"\n ></ch-image>\n </a>\n ) : (\n packageName\n );\n\n return (\n <article class=\"card card-package elevation-1\">\n <h2\n class={{\n \"subtitle-semi-bold-s\": true,\n \"package-name\": true,\n \"has-link\": !!packageItem.packageURL\n }}\n >\n {headingContent}\n </h2>\n <p class=\"color-default subtitle-semi-bold-s\">\n {this._componentLocale.packageCard.declaredLicenses}\n </p>\n {this.#renderLicenseInfo(\n packageItem.declaredLicense,\n \"name\",\n packageItem\n )}\n\n {this.#renderLicenseInfo(\n packageItem.declaredLicense,\n \"description\",\n packageItem\n )}\n\n {this.#renderLicensesViewButtons(\n packageItem.declaredLicense,\n packageItem\n )}\n </article>\n );\n })}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}