@genexus/genexus-ide-ui 1.1.55 → 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 (412) 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/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +8 -4
  5. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +8 -4
  7. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +12 -16
  9. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +8 -4
  11. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +6 -2
  13. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +6 -2
  15. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +6 -2
  17. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-design-import.cjs.entry.js +11 -7
  19. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js +6 -2
  21. package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +7 -3
  23. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gx-ide-file-item.cjs.entry.js +9 -5
  25. package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +6 -2
  27. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gx-ide-json-import.cjs.entry.js +7 -3
  29. package/dist/cjs/gx-ide-json-import.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +10 -6
  31. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +9 -5
  33. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +7 -3
  35. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +6 -2
  37. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-new-version.cjs.entry.js +15 -3
  39. package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +7 -3
  41. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  42. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +7 -3
  43. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  44. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +8 -4
  45. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js.map +1 -1
  46. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +6 -2
  47. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js.map +1 -1
  48. package/dist/cjs/gx-ide-references.cjs.entry.js +7 -3
  49. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  50. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +263 -20
  51. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  52. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +7 -3
  53. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  54. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +9 -5
  55. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  56. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -2
  57. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  58. package/dist/cjs/gx-ide-splash.cjs.entry.js +6 -2
  59. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  60. package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -5
  61. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  62. package/dist/cjs/gx-ide-starting-template.cjs.entry.js +6 -2
  63. package/dist/cjs/gx-ide-starting-template.cjs.entry.js.map +1 -1
  64. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +14 -10
  65. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  66. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +7 -3
  67. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  68. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +10 -6
  69. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  70. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +6 -2
  71. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  72. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +17 -13
  73. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  74. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +6 -2
  75. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  76. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +6 -2
  77. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  78. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +8 -4
  79. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  80. package/dist/cjs/index.cjs.js +0 -3
  81. package/dist/cjs/index.cjs.js.map +1 -1
  82. package/dist/cjs/loader.cjs.js +1 -1
  83. package/dist/cjs/mer-animated-dots-001c7465.js +79 -0
  84. package/dist/cjs/mer-animated-dots-001c7465.js.map +1 -0
  85. package/dist/cjs/{tabular-grid-render-b1767da2.js → tabular-grid-render-f97a5ab3.js} +18 -14
  86. package/dist/cjs/tabular-grid-render-f97a5ab3.js.map +1 -0
  87. package/dist/cjs/{utilities-0e316b39.js → utilities-0815a260.js} +10 -6
  88. package/dist/cjs/utilities-0815a260.js.map +1 -0
  89. package/dist/collection/components/chat/chat-container/chat-container.js +2 -10
  90. package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -1
  91. package/dist/collection/components/new-version/gx-ide-assets/new-version/shortcuts.json +15 -0
  92. package/dist/collection/components/new-version/new-version.js +17 -4
  93. package/dist/collection/components/new-version/new-version.js.map +1 -1
  94. package/dist/collection/index.js +0 -2
  95. package/dist/collection/index.js.map +1 -1
  96. package/dist/collection/showcase/chat-container/callbacks.js +9 -9
  97. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  98. package/dist/collection/showcase/chat-container/chat.showcase.js +4 -4
  99. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  100. package/dist/collection/showcase/chat-container/models.js +18 -18
  101. package/dist/collection/showcase/chat-container/models.js.map +1 -1
  102. package/dist/components/chat-container.js +6 -11
  103. package/dist/components/chat-container.js.map +1 -1
  104. package/dist/components/chat-welcome.js +4 -1
  105. package/dist/components/chat-welcome.js.map +1 -1
  106. package/dist/components/entity-selector.js +4 -1
  107. package/dist/components/entity-selector.js.map +1 -1
  108. package/dist/components/file-item.js +4 -1
  109. package/dist/components/file-item.js.map +1 -1
  110. package/dist/components/gx-ide-bpm-app-declaration.js +4 -1
  111. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  112. package/dist/components/gx-ide-bpm-task-documents.js +4 -1
  113. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  114. package/dist/components/gx-ide-create-kb-from-server.js +4 -1
  115. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  116. package/dist/components/gx-ide-current-user-info.js +4 -1
  117. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  118. package/dist/components/gx-ide-data-selector.js +4 -1
  119. package/dist/components/gx-ide-data-selector.js.map +1 -1
  120. package/dist/components/gx-ide-data-type-selector.js +4 -1
  121. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  122. package/dist/components/gx-ide-design-import.js +4 -1
  123. package/dist/components/gx-ide-design-import.js.map +1 -1
  124. package/dist/components/gx-ide-details-acknowledgements.js +4 -1
  125. package/dist/components/gx-ide-details-acknowledgements.js.map +1 -1
  126. package/dist/components/gx-ide-file-uploader.js +4 -1
  127. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  128. package/dist/components/gx-ide-json-import.js +4 -1
  129. package/dist/components/gx-ide-json-import.js.map +1 -1
  130. package/dist/components/gx-ide-kb-manager-export.js +4 -1
  131. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  132. package/dist/components/gx-ide-kb-manager-import.js +4 -1
  133. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  134. package/dist/components/gx-ide-manage-module-references.js +4 -1
  135. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  136. package/dist/components/gx-ide-new-kb.js +4 -1
  137. package/dist/components/gx-ide-new-kb.js.map +1 -1
  138. package/dist/components/gx-ide-new-version.js +17 -4
  139. package/dist/components/gx-ide-new-version.js.map +1 -1
  140. package/dist/components/gx-ide-object-selector.js +4 -1
  141. package/dist/components/gx-ide-object-selector.js.map +1 -1
  142. package/dist/components/gx-ide-open-api-import.js +4 -1
  143. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  144. package/dist/components/gx-ide-plugin-details.js +4 -1
  145. package/dist/components/gx-ide-plugin-details.js.map +1 -1
  146. package/dist/components/gx-ide-plugin-explorer.js +4 -1
  147. package/dist/components/gx-ide-plugin-explorer.js.map +1 -1
  148. package/dist/components/gx-ide-references.js +4 -1
  149. package/dist/components/gx-ide-references.js.map +1 -1
  150. package/dist/components/gx-ide-sc-chat-container.js +263 -20
  151. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  152. package/dist/components/gx-ide-server-selector.js +4 -1
  153. package/dist/components/gx-ide-server-selector.js.map +1 -1
  154. package/dist/components/gx-ide-share-kb.js +4 -1
  155. package/dist/components/gx-ide-share-kb.js.map +1 -1
  156. package/dist/components/gx-ide-splash.js +4 -1
  157. package/dist/components/gx-ide-splash.js.map +1 -1
  158. package/dist/components/gx-ide-start-page.js +4 -1
  159. package/dist/components/gx-ide-start-page.js.map +1 -1
  160. package/dist/components/gx-ide-starting-template.js +4 -1
  161. package/dist/components/gx-ide-starting-template.js.map +1 -1
  162. package/dist/components/gx-ide-team-dev-bring-changes.js +4 -1
  163. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  164. package/dist/components/gx-ide-team-dev-history.js +4 -1
  165. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  166. package/dist/components/gx-ide-team-dev-update-partial-selection.js +4 -1
  167. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  168. package/dist/components/gx-ide-team-dev-update.js +4 -1
  169. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  170. package/dist/components/gx-ide-welcome-page.js +4 -1
  171. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  172. package/dist/components/gx-ide-ww-attributes.js +4 -1
  173. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  174. package/dist/components/gx-ide-ww-files.js +4 -1
  175. package/dist/components/gx-ide-ww-files.js.map +1 -1
  176. package/dist/components/index.js +0 -1
  177. package/dist/components/index.js.map +1 -1
  178. package/dist/components/mer-animated-dots.js +81 -0
  179. package/dist/components/mer-animated-dots.js.map +1 -0
  180. package/dist/components/select-kb-items.js +4 -1
  181. package/dist/components/select-kb-items.js.map +1 -1
  182. package/dist/components/tabular-grid-render.js +4 -1
  183. package/dist/components/tabular-grid-render.js.map +1 -1
  184. package/dist/components/utilities.js +4 -1
  185. package/dist/components/utilities.js.map +1 -1
  186. package/dist/esm/assets-manager-7d6fc08f.js +5 -0
  187. package/dist/esm/assets-manager-7d6fc08f.js.map +1 -0
  188. package/dist/esm/genexus-ide-ui.js +1 -1
  189. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +5 -1
  190. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  191. package/dist/esm/gx-ide-bpm-task-documents.entry.js +5 -1
  192. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  193. package/dist/esm/gx-ide-chat-container_2.entry.js +7 -11
  194. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -1
  195. package/dist/esm/gx-ide-create-kb-from-server.entry.js +5 -1
  196. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  197. package/dist/esm/gx-ide-current-user-info.entry.js +5 -1
  198. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  199. package/dist/esm/gx-ide-data-selector.entry.js +5 -1
  200. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  201. package/dist/esm/gx-ide-data-type-selector.entry.js +5 -1
  202. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  203. package/dist/esm/gx-ide-design-import.entry.js +5 -1
  204. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  205. package/dist/esm/gx-ide-details-acknowledgements.entry.js +5 -1
  206. package/dist/esm/gx-ide-details-acknowledgements.entry.js.map +1 -1
  207. package/dist/esm/gx-ide-entity-selector.entry.js +5 -1
  208. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  209. package/dist/esm/gx-ide-file-item.entry.js +5 -1
  210. package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
  211. package/dist/esm/gx-ide-file-uploader.entry.js +5 -1
  212. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  213. package/dist/esm/gx-ide-json-import.entry.js +5 -1
  214. package/dist/esm/gx-ide-json-import.entry.js.map +1 -1
  215. package/dist/esm/gx-ide-kb-manager-export.entry.js +5 -1
  216. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  217. package/dist/esm/gx-ide-kb-manager-import.entry.js +5 -1
  218. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  219. package/dist/esm/gx-ide-manage-module-references.entry.js +5 -1
  220. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  221. package/dist/esm/gx-ide-new-kb.entry.js +5 -1
  222. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  223. package/dist/esm/gx-ide-new-version.entry.js +16 -4
  224. package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
  225. package/dist/esm/gx-ide-object-selector.entry.js +5 -1
  226. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  227. package/dist/esm/gx-ide-open-api-import.entry.js +5 -1
  228. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  229. package/dist/esm/gx-ide-plugin-details.entry.js +5 -1
  230. package/dist/esm/gx-ide-plugin-details.entry.js.map +1 -1
  231. package/dist/esm/gx-ide-plugin-explorer.entry.js +5 -1
  232. package/dist/esm/gx-ide-plugin-explorer.entry.js.map +1 -1
  233. package/dist/esm/gx-ide-references.entry.js +5 -1
  234. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  235. package/dist/esm/gx-ide-sc-chat-container.entry.js +263 -20
  236. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  237. package/dist/esm/gx-ide-select-kb-items.entry.js +5 -1
  238. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  239. package/dist/esm/gx-ide-server-selector.entry.js +5 -1
  240. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  241. package/dist/esm/gx-ide-share-kb.entry.js +5 -1
  242. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  243. package/dist/esm/gx-ide-splash.entry.js +5 -1
  244. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  245. package/dist/esm/gx-ide-start-page.entry.js +5 -1
  246. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  247. package/dist/esm/gx-ide-starting-template.entry.js +5 -1
  248. package/dist/esm/gx-ide-starting-template.entry.js.map +1 -1
  249. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +7 -3
  250. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  251. package/dist/esm/gx-ide-team-dev-commit.entry.js +7 -3
  252. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  253. package/dist/esm/gx-ide-team-dev-history.entry.js +6 -2
  254. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  255. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +5 -1
  256. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  257. package/dist/esm/gx-ide-team-dev-update.entry.js +7 -3
  258. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  259. package/dist/esm/gx-ide-welcome-page.entry.js +5 -1
  260. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  261. package/dist/esm/gx-ide-ww-attributes.entry.js +5 -1
  262. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  263. package/dist/esm/gx-ide-ww-files.entry.js +5 -1
  264. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  265. package/dist/esm/index.js +0 -2
  266. package/dist/esm/index.js.map +1 -1
  267. package/dist/esm/loader.js +1 -1
  268. package/dist/esm/mer-animated-dots-75d88f7e.js +77 -0
  269. package/dist/esm/mer-animated-dots-75d88f7e.js.map +1 -0
  270. package/dist/esm/{tabular-grid-render-96d67a8c.js → tabular-grid-render-2fca02f4.js} +7 -3
  271. package/dist/esm/tabular-grid-render-2fca02f4.js.map +1 -0
  272. package/dist/esm/{utilities-6624d90e.js → utilities-0cdc28eb.js} +6 -2
  273. package/dist/esm/utilities-0cdc28eb.js.map +1 -0
  274. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  275. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  276. package/dist/genexus-ide-ui/gx-ide-assets/new-version/shortcuts.json +15 -0
  277. package/dist/genexus-ide-ui/index.esm.js +0 -2
  278. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  279. package/dist/genexus-ide-ui/{p-2ce60f4c.entry.js → p-02883452.entry.js} +28 -20
  280. package/dist/genexus-ide-ui/{p-2ce60f4c.entry.js.map → p-02883452.entry.js.map} +1 -1
  281. package/dist/genexus-ide-ui/{p-c5eac770.entry.js → p-0548097b.entry.js} +10 -2
  282. package/dist/genexus-ide-ui/{p-c5eac770.entry.js.map → p-0548097b.entry.js.map} +1 -1
  283. package/dist/genexus-ide-ui/{p-64dbc4c0.entry.js → p-082780cc.entry.js} +10 -2
  284. package/dist/genexus-ide-ui/{p-64dbc4c0.entry.js.map → p-082780cc.entry.js.map} +1 -1
  285. package/dist/genexus-ide-ui/{p-9ac4aaa0.entry.js → p-1baf026c.entry.js} +16 -8
  286. package/dist/genexus-ide-ui/{p-9ac4aaa0.entry.js.map → p-1baf026c.entry.js.map} +1 -1
  287. package/dist/genexus-ide-ui/{p-098a7288.entry.js → p-1d647672.entry.js} +19 -11
  288. package/dist/genexus-ide-ui/{p-098a7288.entry.js.map → p-1d647672.entry.js.map} +1 -1
  289. package/dist/genexus-ide-ui/{p-13630aa2.entry.js → p-1e1d2672.entry.js} +51 -43
  290. package/dist/genexus-ide-ui/{p-13630aa2.entry.js.map → p-1e1d2672.entry.js.map} +1 -1
  291. package/dist/genexus-ide-ui/{p-b6a75c44.entry.js → p-207a698a.entry.js} +57 -49
  292. package/dist/genexus-ide-ui/{p-b6a75c44.entry.js.map → p-207a698a.entry.js.map} +1 -1
  293. package/dist/genexus-ide-ui/{p-d18c51fe.entry.js → p-2726ab59.entry.js} +18 -10
  294. package/dist/genexus-ide-ui/{p-d18c51fe.entry.js.map → p-2726ab59.entry.js.map} +1 -1
  295. package/dist/genexus-ide-ui/{p-0c5b7e75.entry.js → p-27633aae.entry.js} +10 -2
  296. package/dist/genexus-ide-ui/{p-0c5b7e75.entry.js.map → p-27633aae.entry.js.map} +1 -1
  297. package/dist/genexus-ide-ui/{p-2fe7ffc8.entry.js → p-28c11aff.entry.js} +32 -24
  298. package/dist/genexus-ide-ui/{p-2fe7ffc8.entry.js.map → p-28c11aff.entry.js.map} +1 -1
  299. package/dist/genexus-ide-ui/{p-3b955964.entry.js → p-2a51ea80.entry.js} +10 -2
  300. package/dist/genexus-ide-ui/{p-3b955964.entry.js.map → p-2a51ea80.entry.js.map} +1 -1
  301. package/dist/genexus-ide-ui/{p-1056dfe7.entry.js → p-336bb2ce.entry.js} +28 -20
  302. package/dist/genexus-ide-ui/{p-1056dfe7.entry.js.map → p-336bb2ce.entry.js.map} +1 -1
  303. package/dist/genexus-ide-ui/{p-ac026635.entry.js → p-364e8ecb.entry.js} +16 -8
  304. package/dist/genexus-ide-ui/{p-ac026635.entry.js.map → p-364e8ecb.entry.js.map} +1 -1
  305. package/dist/genexus-ide-ui/p-3c14bdfc.entry.js +234 -0
  306. package/dist/genexus-ide-ui/p-3c14bdfc.entry.js.map +1 -0
  307. package/dist/genexus-ide-ui/{p-1d044bf5.entry.js → p-4548ae72.entry.js} +17 -9
  308. package/dist/genexus-ide-ui/{p-1d044bf5.entry.js.map → p-4548ae72.entry.js.map} +1 -1
  309. package/dist/genexus-ide-ui/{p-80e49324.entry.js → p-46bb921b.entry.js} +36 -28
  310. package/dist/genexus-ide-ui/{p-80e49324.entry.js.map → p-46bb921b.entry.js.map} +1 -1
  311. package/dist/genexus-ide-ui/{p-11a60dbe.entry.js → p-506760d7.entry.js} +10 -2
  312. package/dist/genexus-ide-ui/{p-11a60dbe.entry.js.map → p-506760d7.entry.js.map} +1 -1
  313. package/dist/genexus-ide-ui/p-6e29711e.entry.js +608 -0
  314. package/dist/genexus-ide-ui/p-6e29711e.entry.js.map +1 -0
  315. package/dist/genexus-ide-ui/{p-7b986243.entry.js → p-71d4d3dd.entry.js} +32 -24
  316. package/dist/genexus-ide-ui/{p-7b986243.entry.js.map → p-71d4d3dd.entry.js.map} +1 -1
  317. package/dist/genexus-ide-ui/{p-891faf90.entry.js → p-77c315d9.entry.js} +28 -20
  318. package/dist/genexus-ide-ui/{p-891faf90.entry.js.map → p-77c315d9.entry.js.map} +1 -1
  319. package/dist/genexus-ide-ui/{p-18bbaa49.entry.js → p-7c95f511.entry.js} +16 -8
  320. package/dist/genexus-ide-ui/{p-18bbaa49.entry.js.map → p-7c95f511.entry.js.map} +1 -1
  321. package/dist/genexus-ide-ui/{p-eedb407c.entry.js → p-7e3cccf7.entry.js} +10 -2
  322. package/dist/genexus-ide-ui/{p-eedb407c.entry.js.map → p-7e3cccf7.entry.js.map} +1 -1
  323. package/dist/genexus-ide-ui/{p-410a35da.entry.js → p-8925fc99.entry.js} +40 -32
  324. package/dist/genexus-ide-ui/{p-410a35da.entry.js.map → p-8925fc99.entry.js.map} +1 -1
  325. package/dist/genexus-ide-ui/{p-072419f9.entry.js → p-94f74c12.entry.js} +18 -10
  326. package/dist/genexus-ide-ui/{p-072419f9.entry.js.map → p-94f74c12.entry.js.map} +1 -1
  327. package/dist/genexus-ide-ui/{p-d24c1115.entry.js → p-97f6438c.entry.js} +67 -59
  328. package/dist/genexus-ide-ui/{p-d24c1115.entry.js.map → p-97f6438c.entry.js.map} +1 -1
  329. package/dist/genexus-ide-ui/{p-9270c80f.entry.js → p-981873da.entry.js} +114 -118
  330. package/dist/genexus-ide-ui/p-981873da.entry.js.map +1 -0
  331. package/dist/genexus-ide-ui/{p-17b54532.entry.js → p-99b1dfd7.entry.js} +39 -31
  332. package/dist/genexus-ide-ui/{p-17b54532.entry.js.map → p-99b1dfd7.entry.js.map} +1 -1
  333. package/dist/genexus-ide-ui/{p-e1d0adf6.entry.js → p-9f7c347c.entry.js} +24 -16
  334. package/dist/genexus-ide-ui/{p-e1d0adf6.entry.js.map → p-9f7c347c.entry.js.map} +1 -1
  335. package/dist/genexus-ide-ui/{p-eacc81c8.entry.js → p-a28c2a64.entry.js} +122 -114
  336. package/dist/genexus-ide-ui/{p-eacc81c8.entry.js.map → p-a28c2a64.entry.js.map} +1 -1
  337. package/dist/genexus-ide-ui/{p-cccd6565.entry.js → p-a73db549.entry.js} +10 -2
  338. package/dist/genexus-ide-ui/{p-cccd6565.entry.js.map → p-a73db549.entry.js.map} +1 -1
  339. package/dist/genexus-ide-ui/{p-547fbde8.entry.js → p-be1ceb01.entry.js} +28 -20
  340. package/dist/genexus-ide-ui/{p-547fbde8.entry.js.map → p-be1ceb01.entry.js.map} +1 -1
  341. package/dist/genexus-ide-ui/{p-7adb9d1f.entry.js → p-c133095b.entry.js} +78 -70
  342. package/dist/genexus-ide-ui/{p-7adb9d1f.entry.js.map → p-c133095b.entry.js.map} +1 -1
  343. package/dist/genexus-ide-ui/{p-a58048e9.entry.js → p-c1c3996c.entry.js} +12 -4
  344. package/dist/genexus-ide-ui/{p-a58048e9.entry.js.map → p-c1c3996c.entry.js.map} +1 -1
  345. package/dist/genexus-ide-ui/{p-7551c2e9.entry.js → p-c426a3e7.entry.js} +22 -14
  346. package/dist/genexus-ide-ui/{p-7551c2e9.entry.js.map → p-c426a3e7.entry.js.map} +1 -1
  347. package/dist/genexus-ide-ui/{p-4f88fecd.entry.js → p-d12739cf.entry.js} +17 -9
  348. package/dist/genexus-ide-ui/{p-4f88fecd.entry.js.map → p-d12739cf.entry.js.map} +1 -1
  349. package/dist/genexus-ide-ui/{p-c8270f7d.js → p-d3ee56a4.js} +45 -37
  350. package/dist/genexus-ide-ui/{p-c8270f7d.js.map → p-d3ee56a4.js.map} +1 -1
  351. package/dist/genexus-ide-ui/p-d42e842b.js +7 -0
  352. package/dist/genexus-ide-ui/p-d42e842b.js.map +1 -0
  353. package/dist/genexus-ide-ui/{p-401bfc97.js → p-d4ecd3bb.js} +9366 -7152
  354. package/dist/genexus-ide-ui/p-d4ecd3bb.js.map +1 -0
  355. package/dist/genexus-ide-ui/{p-48e87e4f.entry.js → p-de6e9132.entry.js} +71 -63
  356. package/dist/genexus-ide-ui/{p-48e87e4f.entry.js.map → p-de6e9132.entry.js.map} +1 -1
  357. package/dist/genexus-ide-ui/{p-05fa08d7.entry.js → p-e4e3a7af.entry.js} +19 -11
  358. package/dist/genexus-ide-ui/{p-05fa08d7.entry.js.map → p-e4e3a7af.entry.js.map} +1 -1
  359. package/dist/genexus-ide-ui/{p-a24571ca.js → p-ea4b35b6.js} +19 -11
  360. package/dist/genexus-ide-ui/{p-a24571ca.js.map → p-ea4b35b6.js.map} +1 -1
  361. package/dist/genexus-ide-ui/{p-bd0ffc08.entry.js → p-f47b08c5.entry.js} +44 -36
  362. package/dist/genexus-ide-ui/{p-bd0ffc08.entry.js.map → p-f47b08c5.entry.js.map} +1 -1
  363. package/dist/types/components/new-version/new-version.d.ts +4 -0
  364. package/dist/types/index.d.ts +0 -2
  365. package/package.json +9 -8
  366. package/dist/cjs/MERCURY_ASSETS-f14e91ff.js +0 -9
  367. package/dist/cjs/MERCURY_ASSETS-f14e91ff.js.map +0 -1
  368. package/dist/cjs/render-item.lit-3f18e009.js +0 -329
  369. package/dist/cjs/render-item.lit-3f18e009.js.map +0 -1
  370. package/dist/cjs/tabular-grid-render-b1767da2.js.map +0 -1
  371. package/dist/cjs/utilities-0e316b39.js.map +0 -1
  372. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/chat-lit.css +0 -376
  373. package/dist/collection/components/chat/lit-custom-render/actions.lit.js +0 -27
  374. package/dist/collection/components/chat/lit-custom-render/actions.lit.js.map +0 -1
  375. package/dist/collection/components/chat/lit-custom-render/code-block.lit.js +0 -46
  376. package/dist/collection/components/chat/lit-custom-render/code-block.lit.js.map +0 -1
  377. package/dist/collection/components/chat/lit-custom-render/dots-animation.js +0 -61
  378. package/dist/collection/components/chat/lit-custom-render/dots-animation.js.map +0 -1
  379. package/dist/collection/components/chat/lit-custom-render/render-item.lit.js +0 -122
  380. package/dist/collection/components/chat/lit-custom-render/render-item.lit.js.map +0 -1
  381. package/dist/collection/components/chat/lit-custom-render/spinner-animation.js +0 -58
  382. package/dist/collection/components/chat/lit-custom-render/spinner-animation.js.map +0 -1
  383. package/dist/collection/components/chat/lit-custom-render/types.js +0 -2
  384. package/dist/collection/components/chat/lit-custom-render/types.js.map +0 -1
  385. package/dist/collection/components/chat/lit-custom-render/utils.js +0 -50
  386. package/dist/collection/components/chat/lit-custom-render/utils.js.map +0 -1
  387. package/dist/components/MERCURY_ASSETS.js +0 -7
  388. package/dist/components/MERCURY_ASSETS.js.map +0 -1
  389. package/dist/components/render-item.lit.js +0 -327
  390. package/dist/components/render-item.lit.js.map +0 -1
  391. package/dist/esm/MERCURY_ASSETS-ccf43ae3.js +0 -7
  392. package/dist/esm/MERCURY_ASSETS-ccf43ae3.js.map +0 -1
  393. package/dist/esm/render-item.lit-449f2946.js +0 -327
  394. package/dist/esm/render-item.lit-449f2946.js.map +0 -1
  395. package/dist/esm/tabular-grid-render-96d67a8c.js.map +0 -1
  396. package/dist/esm/utilities-6624d90e.js.map +0 -1
  397. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/chat-lit.css +0 -376
  398. package/dist/genexus-ide-ui/p-401bfc97.js.map +0 -1
  399. package/dist/genexus-ide-ui/p-5f65a4bb.entry.js +0 -218
  400. package/dist/genexus-ide-ui/p-5f65a4bb.entry.js.map +0 -1
  401. package/dist/genexus-ide-ui/p-8d6f2b4f.entry.js +0 -359
  402. package/dist/genexus-ide-ui/p-8d6f2b4f.entry.js.map +0 -1
  403. package/dist/genexus-ide-ui/p-9270c80f.entry.js.map +0 -1
  404. package/dist/genexus-ide-ui/p-fd4f9904.js +0 -955
  405. package/dist/genexus-ide-ui/p-fd4f9904.js.map +0 -1
  406. package/dist/types/components/chat/lit-custom-render/actions.lit.d.ts +0 -2
  407. package/dist/types/components/chat/lit-custom-render/code-block.lit.d.ts +0 -2
  408. package/dist/types/components/chat/lit-custom-render/dots-animation.d.ts +0 -5
  409. package/dist/types/components/chat/lit-custom-render/render-item.lit.d.ts +0 -3
  410. package/dist/types/components/chat/lit-custom-render/spinner-animation.d.ts +0 -5
  411. package/dist/types/components/chat/lit-custom-render/types.d.ts +0 -4
  412. package/dist/types/components/chat/lit-custom-render/utils.d.ts +0 -23
@@ -1,6 +1,14 @@
1
- import { r as t, c as e, h as i, H as s, a } from "./p-97107ecc.js";
1
+ import { r as t, c as e, h as i, H as s, a as n } from "./p-97107ecc.js";
2
2
 
3
- import { g as n } from "./p-401bfc97.js";
3
+ import { g as a } from "./p-d42e842b.js";
4
+
5
+ import "./p-d4ecd3bb.js";
6
+
7
+ import "lit";
8
+
9
+ import "lit/directives/when.js";
10
+
11
+ import "lit/directives/if-defined.js";
4
12
 
5
13
  import { L as o } from "./p-311eedf3.js";
6
14
 
@@ -56,9 +64,9 @@ const convertImportCategoryDataToTreeView = t => {
56
64
  // - - - - - - - - - - - - - - - - -
57
65
  const createImportResultDataMessages = (t, e, i) => {
58
66
  const s = [];
59
- e.forEach(((e, a) => {
67
+ e.forEach(((e, n) => {
60
68
  s.push({
61
- id: `${t}-message-${a}`,
69
+ id: `${t}-message-${n}`,
62
70
  caption: e,
63
71
  startImgSrc: "gemini-tools/list-view/on-surface",
64
72
  leaf: true,
@@ -89,30 +97,30 @@ const createImportResultItem = (t, e) => {
89
97
 
90
98
  // This functions updates the "Import Status" model, by adding a new result item.
91
99
  const addImportItemResultDataItem = (t, e, i, s) => {
92
- const a = [ ...s ];
100
+ const n = [ ...s ];
93
101
  // Use the resultItem.id to find the corresponding category in the categoryMap
94
- const n = i.get(t.id);
95
- const o = e.get(n);
96
- const r = a.findIndex((t => t.id === n));
102
+ const a = i.get(t.id);
103
+ const o = e.get(a);
104
+ const r = n.findIndex((t => t.id === a));
97
105
  if (r === -1) {
98
106
  // category does not exists yet.
99
107
  const e = {
100
- id: n,
108
+ id: a,
101
109
  caption: `${o.name} (1)`,
102
110
  startImgSrc: `${o.icon}`,
103
111
  expanded: true,
104
112
  items: [ createImportResultItem(o, t) ]
105
113
  };
106
- a.push(e);
107
- return a;
114
+ n.push(e);
115
+ return n;
108
116
  }
109
117
  // else category already exists. Just insert the result item in the category.
110
118
  const c = createImportResultItem(o, t);
111
- a[r].items = [ ...a[r].items, c ];
119
+ n[r].items = [ ...n[r].items, c ];
112
120
  // update category caption length
113
- const l = a[r].items.length;
114
- a[r].caption = `${o.name} (${l})`;
115
- return a;
121
+ const l = n[r].items.length;
122
+ n[r].caption = `${o.name} (${l})`;
123
+ return n;
116
124
  };
117
125
 
118
126
  const d = ':host{display:grid;block-size:100%;grid-template:"header header" max-content "objects-in-file import-status" 1fr "footer footer" max-content;grid-template-columns:1fr 1fr}.section{display:contents}.header{grid-template-columns:1fr max-content;grid-area:header}.objects-in-file__section{grid-area:objects-in-file}.objects-in-file__main{border-inline-end:var(--section-common-border);grid-template-rows:1fr max-content}.objects-in-file__footer{display:grid}.import-status__section{grid-area:import-status}.import-status__main{grid-template-rows:1fr max-content}.import-status__footer{display:flex}.import-clear-status-btn{margin-inline-start:auto}.objects-in-file__section,.import-status__section{display:grid;grid-template-rows:max-content 1fr}.control-header__objects-in-file,.control-header__import-status{padding-block-start:var(--mer-spacing--md)}.objects-in-file__main,.import-status__main{grid-auto-rows:max-content;padding-block:var(--content-block-spacing);overflow:auto}.footer{display:flex;grid-area:footer;border-block-start:var(--section-common-border)}.text-align-center{text-align:center}.tree-view::part(item__action tree-view-item--status){grid-template:"first-img left-img text right-img"/max-content max-content 1fr max-content}.tree-view::part(item__action tree-view-item--status)::before{grid-area:first-img;content:"";width:var(--mer-spacing--xs);height:var(--mer-spacing--xs);border-radius:50%;background-color:var(--gray-03);margin-inline-end:var(--mer-spacing--xxs)}.tree-view::part(item__action tree-view-item--success):before{background-image:none;background-color:var(--color-success-dark)}.tree-view::part(item__action tree-view-item--warning):before{background-image:none;background-color:var(--color-warning-dark)}.tree-view::part(item__action tree-view-item--error):before{background-image:none;background-color:var(--color-error-dark)}.tree-view-import::part(item){content-visibility:auto;contain-intrinsic-size:auto 22px}';
@@ -123,36 +131,36 @@ var f = undefined && undefined.__classPrivateFieldGet || function(t, e, i, s) {
123
131
  return i === "m" ? s : i === "a" ? s.call(t) : s ? s.value : e.get(t);
124
132
  };
125
133
 
126
- var m = undefined && undefined.__classPrivateFieldSet || function(t, e, i, s, a) {
134
+ var p = undefined && undefined.__classPrivateFieldSet || function(t, e, i, s, n) {
127
135
  if (s === "m") throw new TypeError("Private method is not writable");
128
- if (s === "a" && !a) throw new TypeError("Private accessor was defined without a setter");
129
- if (typeof e === "function" ? t !== e || !a : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
130
- return s === "a" ? a.call(t, i) : a ? a.value = i : e.set(t, i), i;
136
+ if (s === "a" && !n) throw new TypeError("Private accessor was defined without a setter");
137
+ if (typeof e === "function" ? t !== e || !n : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
138
+ return s === "a" ? n.call(t, i) : n ? n.value = i : e.set(t, i), i;
131
139
  };
132
140
 
133
- var p, u, b, g, w, k, v, y, _, x, M, W, C, j, T, S, I, $, E, D, L, z, F, H, O, R, A, N;
141
+ var m, u, b, g, w, k, v, y, _, x, M, W, j, C, T, S, I, $, E, D, L, z, F, H, O, R, A, N;
134
142
 
135
143
  const P = [ "resets/box-sizing", "components/button", "components/checkbox", "components/edit", "components/icon", "components/tree-view", "utils/form", "utils/layout", "utils/typography", "utils/spacing" ];
136
144
 
137
- const J = n({
145
+ const J = a({
138
146
  category: "gemini-tools",
139
147
  name: "notice",
140
148
  colorType: "on-elevation"
141
149
  });
142
150
 
143
- const V = n({
151
+ const V = a({
144
152
  category: "gemini-tools",
145
153
  name: "file",
146
154
  colorType: "primary"
147
155
  });
148
156
 
149
- const U = n({
157
+ const U = a({
150
158
  category: "gemini-tools",
151
159
  name: "settings",
152
160
  colorType: "primary"
153
161
  });
154
162
 
155
- const X = n({
163
+ const X = a({
156
164
  category: "menus",
157
165
  name: "delete",
158
166
  colorType: "primary"
@@ -171,7 +179,7 @@ const B = class {
171
179
  * The component hard-coded strings translations.
172
180
  */
173
181
  // eslint-disable-next-line @stencil-community/own-props-must-be-private
174
- p.set(this, void 0);
182
+ m.set(this, void 0);
175
183
  u.set(this, []);
176
184
  b.set(this, void 0);
177
185
  g.set(this, void 0);
@@ -187,13 +195,13 @@ const B = class {
187
195
  W.set(this, (() => {
188
196
  this.cancelCallback();
189
197
  }));
190
- C.set(this, (() => {
198
+ j.set(this, (() => {
191
199
  this.importTreeState = [];
192
200
  this.statusInfo.error.number = 0;
193
201
  this.statusInfo.warning.number = 0;
194
202
  this.statusInfo.success.number = 0;
195
203
  }));
196
- j.set(this, (() => {
204
+ C.set(this, (() => {
197
205
  var t;
198
206
  this.noImport = !!(((t = this.importTreeState) === null || t === void 0 ? void 0 : t.length) === 0 || !this.importTreeState);
199
207
  }));
@@ -202,7 +210,7 @@ const B = class {
202
210
  }));
203
211
  S.set(this, (async () => {
204
212
  var t;
205
- /* first clear imported objects (this clears errors/warnings/success counts as well)*/ f(this, C, "f").call(this);
213
+ /* first clear imported objects (this clears errors/warnings/success counts as well)*/ f(this, j, "f").call(this);
206
214
  /* then do the import*/ this.importingIsInProcess = true;
207
215
  /*
208
216
  Process checked objects manually, considering lazy loading.
@@ -233,7 +241,7 @@ const B = class {
233
241
  }));
234
242
  }));
235
243
  I.set(this, (async t => {
236
- m(this, M, await this.loadCallback(t), "f");
244
+ p(this, M, await this.loadCallback(t), "f");
237
245
  f(this, _, "f").clear();
238
246
  f(this, x, "f").clear();
239
247
  f(this, M, "f").forEach((t => {
@@ -289,7 +297,7 @@ const B = class {
289
297
  }
290
298
  }));
291
299
  L.set(this, (t => {
292
- m(this, u, t.detail.map((t => t.item.id)), "f");
300
+ p(this, u, t.detail.map((t => t.item.id)), "f");
293
301
  }));
294
302
  z.set(this, (() => {
295
303
  if (this.optionsCallback) {
@@ -315,15 +323,15 @@ const B = class {
315
323
  const e = t.detail;
316
324
  const i = [];
317
325
  const s = e.findIndex((t => t.itemId === "errors"));
318
- const a = e.findIndex((t => t.itemId === "warnings"));
319
- const n = e.findIndex((t => t.itemId === "successes"));
326
+ const n = e.findIndex((t => t.itemId === "warnings"));
327
+ const a = e.findIndex((t => t.itemId === "successes"));
320
328
  if (s !== -1) {
321
329
  i.push("error");
322
330
  }
323
- if (a !== -1) {
331
+ if (n !== -1) {
324
332
  i.push("warning");
325
333
  }
326
- if (n !== -1) {
334
+ if (a !== -1) {
327
335
  i.push("success");
328
336
  }
329
337
  let o = `"${h}":""`;
@@ -339,11 +347,11 @@ const B = class {
339
347
  number: this.statusInfo.error.number
340
348
  },
341
349
  warning: {
342
- display: a !== -1,
350
+ display: n !== -1,
343
351
  number: this.statusInfo.warning.number
344
352
  },
345
353
  success: {
346
- display: n !== -1,
354
+ display: a !== -1,
347
355
  number: this.statusInfo.success.number
348
356
  }
349
357
  };
@@ -414,11 +422,11 @@ const B = class {
414
422
  // this.#filterImportedHandler();
415
423
  }
416
424
  watchImportTreeStateHandler() {
417
- f(this, j, "f").call(this);
425
+ f(this, C, "f").call(this);
418
426
  if (this.noImport) {
419
- this.importStatusMessage = f(this, p, "f").main.importStatus.noImportedFiles;
427
+ this.importStatusMessage = f(this, m, "f").main.importStatus.noImportedFiles;
420
428
  } else {
421
- this.importStatusMessage = f(this, p, "f").main.importStatus.importedButHidden;
429
+ this.importStatusMessage = f(this, m, "f").main.importStatus.importedButHidden;
422
430
  }
423
431
  }
424
432
  watchObjectsTreeModelHandler(t) {
@@ -434,11 +442,11 @@ const B = class {
434
442
  }
435
443
  componentDidRender() {}
436
444
  async componentWillLoad() {
437
- m(this, p, await o.getComponentStrings(this.el), "f");
445
+ p(this, m, await o.getComponentStrings(this.el), "f");
438
446
  this.componentDidLoadEvent.emit(true);
439
447
  // this.#evaluateObjects();
440
- f(this, j, "f").call(this);
441
- this.importStatusMessage = f(this, p, "f").main.importStatus.noImportedFiles;
448
+ f(this, C, "f").call(this);
449
+ this.importStatusMessage = f(this, m, "f").main.importStatus.noImportedFiles;
442
450
  f(this, T, "f").call(this);
443
451
  }
444
452
  /**
@@ -466,7 +474,7 @@ const B = class {
466
474
  }, i("label", {
467
475
  class: "label",
468
476
  htmlFor: "file-name"
469
- }, f(this, p, "f").header.fileNameLabel), i("ch-edit", {
477
+ }, f(this, m, "f").header.fileNameLabel), i("ch-edit", {
470
478
  autoFocus: true,
471
479
  id: "file-name",
472
480
  class: "input",
@@ -474,20 +482,20 @@ const B = class {
474
482
  type: "text",
475
483
  readonly: true,
476
484
  value: (t = this.selectedFile) === null || t === void 0 ? void 0 : t.name,
477
- placeholder: f(this, p, "f").header.fileNamePlaceholder,
485
+ placeholder: f(this, m, "f").header.fileNamePlaceholder,
478
486
  startImgSrc: V,
479
- ref: t => m(this, b, t, "f")
487
+ ref: t => p(this, b, t, "f")
480
488
  }), i("input", {
481
489
  hidden: true,
482
490
  type: "file",
483
491
  accept: ".xpz, .xml",
484
492
  onChange: f(this, O, "f"),
485
- ref: t => m(this, g, t, "f")
493
+ ref: t => p(this, g, t, "f")
486
494
  })), i("div", {
487
495
  class: "buttons-spacer"
488
496
  }, i("button", {
489
- "aria-label": f(this, p, "f").header.removeFileSelection,
490
- title: f(this, p, "f").header.removeFileSelection,
497
+ "aria-label": f(this, m, "f").header.removeFileSelection,
498
+ title: f(this, m, "f").header.removeFileSelection,
491
499
  id: "reset-all-button",
492
500
  class: "button-tertiary button-icon-only",
493
501
  part: "reset-all-button",
@@ -502,12 +510,12 @@ const B = class {
502
510
  part: "select-file-load-button",
503
511
  onClick: f(this, H, "f"),
504
512
  disabled: this.importingIsInProcess
505
- }, f(this, p, "f").header.selectFileButton))), i("section", {
513
+ }, f(this, m, "f").header.selectFileButton))), i("section", {
506
514
  // objects in file
507
515
  class: "objects-in-file__section"
508
516
  }, i("h2", {
509
517
  class: "control-header control-header-with-border control-header__objects-in-file subtitle-regular-xs\t text-align-center spacing-body-inline"
510
- }, f(this, p, "f").main.objectsInFile.title), i("div", {
518
+ }, f(this, m, "f").main.objectsInFile.title), i("div", {
511
519
  class: "field-group objects-in-file__main"
512
520
  }, !this.noObjects ? i("ch-tree-view-render", {
513
521
  // objects in file tree
@@ -523,16 +531,16 @@ const B = class {
523
531
  onCheckedItemsChange: f(this, E, "f"),
524
532
  onSelectedItemsChange: f(this, L, "f"),
525
533
  onItemContextmenu: f(this, D, "f"),
526
- ref: t => m(this, w, t, "f")
534
+ ref: t => p(this, w, t, "f")
527
535
  }) : i("gx-ide-empty-state", {
528
536
  isAnimated: false,
529
- stateTitle: f(this, p, "f").main.objectsInFile.noObjects,
537
+ stateTitle: f(this, m, "f").main.objectsInFile.noObjects,
530
538
  key: "no-objects-empty-state"
531
539
  }, i("button", {
532
540
  // begin by selecting a file
533
541
  class: "button-secondary",
534
542
  onClick: f(this, H, "f")
535
- }, f(this, p, "f").main.objectsInFile.selectFile)), i("footer", {
543
+ }, f(this, m, "f").main.objectsInFile.selectFile)), i("footer", {
536
544
  class: "field-group objects-in-file__footer spacing-body-inline"
537
545
  }, i("ch-checkbox", {
538
546
  // select all / unselect all checkbox
@@ -540,7 +548,7 @@ const B = class {
540
548
  class: "checkbox create-data-in-kb",
541
549
  checkedValue: Y,
542
550
  unCheckedValue: q,
543
- caption: f(this, p, "f").main.objectsInFile.selectUnselect,
551
+ caption: f(this, m, "f").main.objectsInFile.selectUnselect,
544
552
  value: this.selectAllCheckboxValue,
545
553
  onInput: f(this, A, "f"),
546
554
  disabled: this.importingIsInProcess || this.objectsTreeModel.length === 0,
@@ -553,14 +561,14 @@ const B = class {
553
561
  class: "button-primary ",
554
562
  onClick: f(this, S, "f"),
555
563
  disabled: ((e = this.objectsTreeModel) === null || e === void 0 ? void 0 : e.length) === 0 || this.importingIsInProcess
556
- }, f(this, p, "f").main.objectsInFile.importButton), i("button", {
564
+ }, f(this, m, "f").main.objectsInFile.importButton), i("button", {
557
565
  // cancel-import button
558
566
  id: "cancel-import-btn",
559
567
  class: "button-secondary ",
560
568
  onClick: f(this, W, "f"),
561
569
  disabled: !this.importingIsInProcess,
562
570
  part: "cancel-import-button"
563
- }, f(this, p, "f").main.objectsInFile.cancelButton), i("button", {
571
+ }, f(this, m, "f").main.objectsInFile.cancelButton), i("button", {
564
572
  // settings/options button
565
573
  id: "select-kb-btn",
566
574
  class: "button-tertiary button-icon-only",
@@ -574,7 +582,7 @@ const B = class {
574
582
  class: "import-status__section"
575
583
  }, i("h2", {
576
584
  class: "control-header control-header-with-border control-header__import-status subtitle-regular-xs\t text-align-center spacing-body-inline"
577
- }, f(this, p, "f").main.importStatus.title), i("div", {
585
+ }, f(this, m, "f").main.importStatus.title), i("div", {
578
586
  class: "field-group import-status__main"
579
587
  }, !this.noImport && this.someStatusVisible ? i("ch-tree-view-render", {
580
588
  // import status tree
@@ -598,10 +606,10 @@ const B = class {
598
606
  }, i("button", {
599
607
  // clear status button
600
608
  class: "button-secondary import-clear-status-btn",
601
- onClick: f(this, C, "f"),
609
+ onClick: f(this, j, "f"),
602
610
  disabled: this.noImport || this.importingIsInProcess,
603
611
  part: "clear-status-btn"
604
- }, f(this, p, "f").main.importStatus.clearButton)))), i("footer", {
612
+ }, f(this, m, "f").main.importStatus.clearButton)))), i("footer", {
605
613
  // footer
606
614
  class: "footer"
607
615
  }, i("gx-ide-status-buttons", {
@@ -618,7 +626,7 @@ const B = class {
618
626
  return [ "gx-ide-assets/kb-manager-import" ];
619
627
  }
620
628
  get el() {
621
- return a(this);
629
+ return n(this);
622
630
  }
623
631
  static get watchers() {
624
632
  return {
@@ -629,9 +637,9 @@ const B = class {
629
637
  }
630
638
  };
631
639
 
632
- p = new WeakMap, u = new WeakMap, b = new WeakMap, g = new WeakMap, w = new WeakMap,
640
+ m = new WeakMap, u = new WeakMap, b = new WeakMap, g = new WeakMap, w = new WeakMap,
633
641
  k = new WeakMap, v = new WeakMap, y = new WeakMap, _ = new WeakMap, x = new WeakMap,
634
- M = new WeakMap, W = new WeakMap, C = new WeakMap, j = new WeakMap, T = new WeakMap,
642
+ M = new WeakMap, W = new WeakMap, j = new WeakMap, C = new WeakMap, T = new WeakMap,
635
643
  S = new WeakMap, I = new WeakMap, $ = new WeakMap, E = new WeakMap, D = new WeakMap,
636
644
  L = new WeakMap, z = new WeakMap, F = new WeakMap, H = new WeakMap, O = new WeakMap,
637
645
  R = new WeakMap, A = new WeakMap, N = new WeakMap;
@@ -639,4 +647,4 @@ R = new WeakMap, A = new WeakMap, N = new WeakMap;
639
647
  B.style = d;
640
648
 
641
649
  export { B as gx_ide_kb_manager_import };
642
- //# sourceMappingURL=p-48e87e4f.entry.js.map
650
+ //# sourceMappingURL=p-de6e9132.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MAX_CATEGORY_ITEMS_FIRST_RENDER","KB_OBJECT","KB_CATEGORY","STATUS_REGEXP_KEY","convertImportCategoryItemToTreeItem","importCatIcon","importItems","importTreeItems","forEach","importItem","push","id","caption","name","expanded","leaf","startImgSrc","metadata","convertImportCategoryDataToTreeView","importCategoryData","treeData","importCategory","importCategoryTreeItem","items","length","lazy","icon","createImportResultDataMessages","importItemId","messagesArray","status","messages","message","i","JSON","stringify","createImportResultItem","categoryData","importItemResultData","resultItemId","importResultItem","parts","addImportItemResultDataItem","categoryItemMap","objectCategoryItemMap","importTreeActualState","updatedImportTreeModel","objectCategoryId","get","categoryIndex","findIndex","treeItem","category","resultItem","newItemsLength","kbManagerImportCss","CSS_BUNDLES","NOTICE_ICON","getIconPath","colorType","FILE_ICON","GEMINI_TOOLS_SETTINGS","MENU_DELETE","CHECKBOX_ALL_CHECKED_VALUE","CHECKBOX_ALL_UNCHECKED_VALUE","GxIdeKbManagerImport","_GxIdeKbManagerImport_componentLocale","set","this","_GxIdeKbManagerImport_selectedObjectsInFileIds","_GxIdeKbManagerImport_fileInputEl","_GxIdeKbManagerImport_fileInputHiddenEl","_GxIdeKbManagerImport_objectsTreeEl","_GxIdeKbManagerImport_successItemsIds","Set","_GxIdeKbManagerImport_warningItemsIds","_GxIdeKbManagerImport_errorItemsIds","_GxIdeKbManagerImport_categoryItemMap","Map","_GxIdeKbManagerImport_objectCategoryItemMap","_GxIdeKbManagerImport_importedCategoryData","_GxIdeKbManagerImport_cancelImportHandler","cancelCallback","_GxIdeKbManagerImport_clearStatusHandler","importTreeState","statusInfo","error","number","warning","success","_GxIdeKbManagerImport_evaluateImport","noImport","_a","_GxIdeKbManagerImport_evaluateImportStatusMessage","someStatusVisible","display","_GxIdeKbManagerImport_importObjectsHandler","async","__classPrivateFieldGet","call","importingIsInProcess","checkedObjectsIds","model","obj","checked","find","cat","importCallback","then","_GxIdeKbManagerImport_loadFileHandler","file","__classPrivateFieldSet","loadCallback","clear","object","importCategoryTreeData","objectsTreeModel","_GxIdeKbManagerImport_lazyLoadTreeItems","treeItemId","_GxIdeKbManagerImport_objectsTreeCheckedItemsChangedHandler","event","allItems","detail","checkedItemIds","pendingCheckedItemIds","item","pendingCheckedItemId","size","selectAllCheckboxValue","selectAllCheckboxIndeterminate","_GxIdeKbManagerImport_objectsTreeContextMenuHandler","objectContextMenuCallback","selection","clientX","contextmenuEvent","screenX","clientY","screenY","_GxIdeKbManagerImport_objectsTreeSelectedItemsChangedHandler","map","_GxIdeKbManagerImport_optionsHandler","optionsCallback","_GxIdeKbManagerImport_removeFileSelection","selectedFile","value","_GxIdeKbManagerImport_selectFileInputHandler","click","_GxIdeKbManagerImport_selectFileInputChangedHandler","target","files","_GxIdeKbManagerImport_statusButtonsSelectionChangedHandler","activeStates","statuses","errorIndex","state","itemId","warningIndex","successIndex","pattern","statusOptions","join","importedTreeFilterRegExp","RegExp","_GxIdeKbManagerImport_toggleSelectionClickHandler","updateAllItemsProperties","_GxIdeKbManagerImport_updateStatusItemsState","child","add","importTreeStateChanged","watchImportTreeStateHandler","importStatusMessage","main","importStatus","noImportedFiles","importedButHidden","watchObjectsTreeModelHandler","newState","noObjects","selectedFileChanged","newFile","componentDidLoad","focus","componentDidRender","componentWillLoad","Locale","getComponentStrings","el","componentDidLoadEvent","emit","addResultItem","render","h","Host","class","slot","htmlFor","header","fileNameLabel","autoFocus","part","type","readonly","placeholder","fileNamePlaceholder","ref","hidden","accept","onChange","removeFileSelection","title","onClick","src","disabled","selectFileButton","objectsInFile","showLines","dragDisabled","dropDisabled","toggleCheckboxes","checkbox","lazyLoadTreeItemsCallback","onCheckedItemsChange","onSelectedItemsChange","onItemContextmenu","isAnimated","stateTitle","key","selectFile","checkedValue","unCheckedValue","selectUnselect","onInput","_b","importButton","cancelButton","filter","filterType","filterOptions","autoExpand","hideMatchesAndShowNonMatches","stateIconSrc","clearButton","errors","warnings","successes","hideMessage","compact","minimal","statusMinimal","onSelectionChanged"],"sources":["src/components/kb-manager-import/helpers.ts","src/components/kb-manager-import/kb-manager-import.scss?tag=gx-ide-kb-manager-import&encapsulation=shadow","src/components/kb-manager-import/kb-manager-import.tsx"],"sourcesContent":["/* Tree View */\nimport {\n TreeViewItemModel,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\n\n/* Kb Manager Import Types*/\nimport {\n ImportItemData,\n CategoryItemMap,\n CategoryItemMapValue,\n ObjectCategoryItemMap,\n Status\n} from \"./kb-manager-import\";\nimport { ImportCategoryData, ImportItemResultData } from \"../../common/types\";\n\nconst MAX_CATEGORY_ITEMS_FIRST_RENDER = 30;\n\n/* objects in file metadata*/\nexport const KB_OBJECT = \"object\";\nexport const KB_CATEGORY = \"category\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\n\n// - - - - - - - - - - - - - - - - -\n// Objects In File Tree Model\n// - - - - - - - - - - - - - - - - -\n\nexport const convertImportCategoryItemToTreeItem = (\n importCatIcon: string,\n importItems: ImportItemData[]\n) => {\n const importTreeItems: TreeViewItemModel[] = [];\n importItems.forEach(importItem => {\n importTreeItems.push({\n id: importItem.id,\n caption: importItem.name,\n expanded: true,\n leaf: true,\n startImgSrc: importCatIcon,\n metadata: KB_OBJECT\n });\n });\n return importTreeItems;\n};\n\nexport const convertImportCategoryDataToTreeView = (\n importCategoryData: ImportCategoryData[]\n): TreeViewModel => {\n const treeData: TreeViewModel = [];\n if (!importCategoryData) {\n return treeData;\n }\n importCategoryData.forEach(importCategory => {\n const importCategoryTreeItem: TreeViewItemModel = {\n id: importCategory.id,\n caption: `${importCategory.name} (${importCategory.items.length})`,\n expanded: importCategory.items.length <= MAX_CATEGORY_ITEMS_FIRST_RENDER,\n lazy: importCategory.items.length > MAX_CATEGORY_ITEMS_FIRST_RENDER,\n leaf: false,\n startImgSrc: importCategory.icon,\n metadata: KB_CATEGORY,\n items: importCategory.items.length <= MAX_CATEGORY_ITEMS_FIRST_RENDER ? \n convertImportCategoryItemToTreeItem(\n importCategory.icon,\n importCategory.items\n ) : []\n };\n treeData.push(importCategoryTreeItem);\n });\n return treeData;\n};\n\n// - - - - - - - - - - - - - - - - -\n// Import Status Tree Model\n// - - - - - - - - - - - - - - - - -\n\nconst createImportResultDataMessages = (\n importItemId: string,\n messagesArray: string[],\n status: Status\n): TreeViewItemModel[] => {\n const messages: TreeViewItemModel[] = [];\n messagesArray.forEach((message, i) => {\n messages.push({\n id: `${importItemId}-message-${i}`,\n caption: message,\n startImgSrc: \"gemini-tools/list-view/on-surface\",\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: status\n })\n });\n });\n return messages;\n};\n\nconst createImportResultItem = (\n categoryData: CategoryItemMapValue,\n importItemResultData: ImportItemResultData\n): TreeViewItemModel => {\n const resultItemId = `${importItemResultData.id}-${importItemResultData.name}`;\n const importResultItem: TreeViewItemModel = {\n id: resultItemId,\n startImgSrc: categoryData.icon,\n caption: importItemResultData.name,\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultData.status}`,\n expanded: true,\n leaf: importItemResultData.messages.length === 0,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: importItemResultData.status\n }),\n items: createImportResultDataMessages(\n resultItemId,\n importItemResultData.messages,\n importItemResultData.status\n )\n };\n return importResultItem;\n};\n\n// This functions updates the \"Import Status\" model, by adding a new result item.\nexport const addImportItemResultDataItem = (\n importItemResultData: ImportItemResultData,\n categoryItemMap: CategoryItemMap,\n objectCategoryItemMap: ObjectCategoryItemMap,\n importTreeActualState: TreeViewItemModel[]\n) => {\n const updatedImportTreeModel: TreeViewModel = [...importTreeActualState];\n\n // Use the resultItem.id to find the corresponding category in the categoryMap\n const objectCategoryId = objectCategoryItemMap.get(importItemResultData.id);\n const categoryData = categoryItemMap.get(objectCategoryId);\n\n const categoryIndex: number = updatedImportTreeModel.findIndex(\n treeItem => treeItem.id === objectCategoryId\n );\n\n if (categoryIndex === -1) {\n // category does not exists yet.\n const category: TreeViewItemModel = {\n id: objectCategoryId,\n caption: `${categoryData.name} (1)`,\n startImgSrc: `${categoryData.icon}`,\n expanded: true,\n items: [createImportResultItem(categoryData, importItemResultData)]\n };\n\n updatedImportTreeModel.push(category);\n return updatedImportTreeModel;\n }\n\n // else category already exists. Just insert the result item in the category.\n const resultItem: TreeViewItemModel = createImportResultItem(\n categoryData,\n importItemResultData\n );\n updatedImportTreeModel[categoryIndex].items = [\n ...updatedImportTreeModel[categoryIndex].items,\n resultItem\n ];\n\n // update category caption length\n const newItemsLength = updatedImportTreeModel[categoryIndex].items.length;\n updatedImportTreeModel[\n categoryIndex\n ].caption = `${categoryData.name} (${newItemsLength})`;\n\n return updatedImportTreeModel;\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template:\n \"header header\" max-content\n \"objects-in-file import-status\" 1fr\n \"footer footer\" max-content;\n grid-template-columns: 1fr 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n grid-template-columns: 1fr max-content;\n grid-area: header;\n}\n\n// objects in file\n.objects-in-file__section {\n grid-area: objects-in-file;\n}\n.objects-in-file__main {\n border-inline-end: var(--section-common-border);\n grid-template-rows: 1fr max-content;\n}\n.objects-in-file__footer {\n display: grid;\n}\n\n// import status\n.import-status__section {\n grid-area: import-status;\n}\n.import-status__main {\n grid-template-rows: 1fr max-content;\n}\n.import-status__footer {\n display: flex;\n}\n.import-clear-status-btn {\n margin-inline-start: auto;\n}\n\n// objects in file & import status\n.objects-in-file__section,\n.import-status__section {\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n.control-header__objects-in-file,\n.control-header__import-status {\n padding-block-start: var(--mer-spacing--md);\n}\n.objects-in-file__main,\n.import-status__main {\n grid-auto-rows: max-content;\n padding-block: var(--content-block-spacing);\n overflow: auto;\n}\n\n// footer\n.footer {\n display: flex;\n grid-area: footer;\n border-block-start: var(--section-common-border);\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tree-view::part(item__action tree-view-item--status) {\n grid-template: \"first-img left-img text right-img\" / max-content max-content 1fr max-content;\n &::before {\n grid-area: first-img;\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n background-color: var(--gray-03);\n margin-inline-end: var(--mer-spacing--xxs);\n }\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n @include tree-item-status(\"success\");\n}\n.tree-view::part(item__action tree-view-item--warning) {\n @include tree-item-status(\"warning\");\n}\n.tree-view::part(item__action tree-view-item--error) {\n @include tree-item-status(\"error\");\n}\n\n// WA: prevent crashes when the items collection contains too many elements\n.tree-view-import::part(item) {\n content-visibility: auto;\n contain-intrinsic-size: auto 22px;\n // TODO: Check if 22px can be calculated. Not \"secure\" since font-size\n // (body-regular-s) defines the total height. If the typographic style\n // changes, this calculation will break. Ideally, tree item font-size\n // should use a variable like \"--tree-item-font-size\".\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n h,\n Method,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n // ChEditCustomEvent,\n TreeViewItemContextMenu\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nimport {\n ImportCategoryData,\n ImportItemResultData,\n ContextMenuInfo\n} from \"../../common/types\";\nimport {\n convertImportCategoryDataToTreeView,\n addImportItemResultDataItem,\n convertImportCategoryItemToTreeItem\n} from \"./helpers\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nimport { KB_OBJECT, STATUS_REGEXP_KEY } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/icon\",\n \"components/tree-view\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst NOTICE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"notice\",\n colorType: \"on-elevation\"\n});\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"primary\"\n});\n\nconst GEMINI_TOOLS_SETTINGS = getIconPath({\n category: \"gemini-tools\",\n name: \"settings\",\n colorType: \"primary\"\n});\n\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\n\nconst CHECKBOX_ALL_CHECKED_VALUE = \"allChecked\";\nconst CHECKBOX_ALL_UNCHECKED_VALUE = \"allUnchecked\";\n\n@Component({\n tag: \"gx-ide-kb-manager-import\",\n styleUrl: \"kb-manager-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-import\"]\n})\nexport class GxIdeKbManagerImport {\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 #selectedObjectsInFileIds: string[] = [];\n\n @Element() el: HTMLGxIdeKbManagerImportElement;\n\n #fileInputEl!: HTMLChEditElement;\n #fileInputHiddenEl!: HTMLInputElement;\n #objectsTreeEl!: HTMLChTreeViewRenderElement;\n #successItemsIds: Set<string> = new Set();\n #warningItemsIds: Set<string> = new Set();\n #errorItemsIds: Set<string> = new Set();\n // #categoryItemMap maps a category id, with the name and icon.\n // required for the \"import status\" tree.\n #categoryItemMap: CategoryItemMap = new Map();\n #objectCategoryItemMap: ObjectCategoryItemMap = new Map();\n #importedCategoryData: ImportCategoryData[];\n\n @State() selectAllCheckboxValue: string;\n @State() selectAllCheckboxIndeterminate: boolean = false;\n @State() importStatusMessage: string;\n @State() importTreeState: TreeViewItemModel[] = [];\n @State() importedTreeFilterRegExp: RegExp;\n @Watch(\"importTreeState\")\n importTreeStateChanged() {\n // this.#filterImportedHandler();\n }\n @State() importingIsInProcess = false;\n @State() importTreeFilterList: string[] = [];\n @State() noImport: boolean;\n @State() noObjects: boolean = true;\n @State() objectsTreeModel: TreeViewItemModel[] = [];\n @State() showHiddenImportsMessage = false;\n @State() someStatusVisible: boolean;\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n\n @Watch(\"importTreeState\")\n watchImportTreeStateHandler() {\n this.#evaluateImport();\n if (this.noImport) {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n } else {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.importedButHidden;\n }\n }\n @Watch(\"objectsTreeModel\")\n watchObjectsTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !newState || newState.length === 0;\n }\n\n /**\n * Callback invoked when user wants to cancel the export process.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when user wants to initiate the import process.\n */\n @Prop() readonly importCallback!: ImportCallback;\n\n /**\n * Callback invoked when user wants to load the xpz information\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Displays status buttons (errors, warning, succeeded) with minimal UI (no captions)\n */\n @Prop() readonly objectContextMenuCallback!: ObjectContextMenuCallback;\n\n /**\n * Callback invoked when user wants to access the export options.\n */\n @Prop() readonly optionsCallback!: OptionsCallback;\n\n /**\n * Imported xml or xps file name\n */\n @Prop({ mutable: true }) selectedFile: File;\n @Watch(\"selectedFile\")\n selectedFileChanged(newFile: File) {\n if (newFile) {\n this.#loadFileHandler(newFile);\n }\n }\n\n /**\n * Displays status buttons (error, warning, success) with minimal UI (no captions).\n */\n @Prop() readonly statusMinimal = false;\n\n /**\n * Emitted once just after the component is fully loaded.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.#fileInputEl.focus();\n }\n\n componentDidRender() {}\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n // this.#evaluateObjects();\n this.#evaluateImport();\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n this.#evaluateImportStatusMessage();\n }\n\n /**\n * Add the result of importing an item\n */\n @Method()\n async addResultItem(item: ImportItemResultData) {\n this.importTreeState = addImportItemResultDataItem(\n item,\n this.#categoryItemMap,\n this.#objectCategoryItemMap,\n this.importTreeState\n );\n this.statusInfo[item.status].number++;\n this.#updateStatusItemsState();\n }\n\n #cancelImportHandler = () => {\n this.cancelCallback();\n };\n\n #clearStatusHandler = () => {\n this.importTreeState = [];\n this.statusInfo.error.number = 0;\n this.statusInfo.warning.number = 0;\n this.statusInfo.success.number = 0;\n };\n\n #evaluateImport = () => {\n this.noImport = !!(\n this.importTreeState?.length === 0 || !this.importTreeState\n );\n };\n\n #evaluateImportStatusMessage = () => {\n this.someStatusVisible =\n this.statusInfo.error.display ||\n this.statusInfo.warning.display ||\n this.statusInfo.success.display;\n };\n\n #importObjectsHandler = async () => {\n /* first clear imported objects (this clears errors/warnings/success counts as well)*/\n this.#clearStatusHandler();\n /* then do the import*/\n this.importingIsInProcess = true;\n\n /*\n Process checked objects manually, considering lazy loading. \n Example: \n 1. The \"Attributes\" category is lazy-loaded and marked as checked. \n 2. The user runs the import without expanding the node. \n 3. No attribute objects appear as checked, since lazy load was not triggered. \n 4. Still, all attribute objects must be included, because the category itself is checked. \n\n This avoids forcing users to expand nodes just to select objects. \n Large categories are not expanded by default to improve performance, which is crucial \n for very large imports (1000+ objects). \n */\n const checkedObjectsIds:string[] = [];\n for(let category of this.#objectsTreeEl.model) {\n if (category.items?.length > 0) {\n for(let obj of category.items) {\n if (obj.checked)\n checkedObjectsIds.push(obj.id);\n }\n }\n else if (category.lazy && category.checked) {\n const categoryData = this.#importedCategoryData.find(cat => cat.id == category.id);\n for(let obj of categoryData.items) {\n checkedObjectsIds.push(obj.id);\n }\n }\n }\n this.importCallback(checkedObjectsIds).then(() => {\n this.importingIsInProcess = false;\n });\n };\n\n #loadFileHandler = async (file: File) => {\n this.#importedCategoryData = await this.loadCallback(file);\n this.#categoryItemMap.clear();\n this.#objectCategoryItemMap.clear();\n\n this.#importedCategoryData.forEach(category => {\n this.#categoryItemMap.set(category.id, {\n name: category.name,\n icon: category.icon\n });\n category.items.forEach(object => {\n this.#objectCategoryItemMap.set(object.id, category.id);\n });\n });\n\n const importCategoryTreeData =\n convertImportCategoryDataToTreeView(this.#importedCategoryData);\n this.objectsTreeModel = importCategoryTreeData;\n };\n\n #lazyLoadTreeItems = async (treeItemId: string) => {\n const category = this.#importedCategoryData.find(cat => cat.id === treeItemId);\n return category && category.items.length > 0 ? \n convertImportCategoryItemToTreeItem(category.icon, category.items) : \n [];\n }\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const allItems = event.detail;\n const checkedItemIds: string[] = [];\n const pendingCheckedItemIds: string[] = [];\n const checkedObjectsIds: string[] = [];\n allItems.forEach(item => {\n if (item.item.checked) {\n checkedItemIds.push(item.item.id);\n if (item.item.lazy && !item.item.items)\n pendingCheckedItemIds.push(item.item.id);\n }\n if (item.item.checked && item.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(item.item.id);\n }\n });\n\n for(let pendingCheckedItemId of pendingCheckedItemIds) {\n const category = this.#importedCategoryData.find(cat => cat.id === pendingCheckedItemId);\n if (category) {\n for(let item of category.items) {\n if (checkedObjectsIds.indexOf(item.id) < 0)\n checkedObjectsIds.push(item.id);\n }\n }\n }\n\n // Evaluate \"Select All / Unselect All\" checkbox state\n if (allItems.size === checkedItemIds.length) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_CHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else if (checkedItemIds.length === 0) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_UNCHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else {\n this.selectAllCheckboxIndeterminate = true;\n }\n };\n\n #objectsTreeContextMenuHandler = (\n event: CustomEvent<TreeViewItemContextMenu>\n ) => {\n if (event.detail.metadata === KB_OBJECT) {\n this.objectContextMenuCallback(\"imported\", {\n selection: this.#selectedObjectsInFileIds,\n clientX: event.detail.contextmenuEvent.screenX,\n clientY: event.detail.contextmenuEvent.screenY\n });\n }\n };\n\n #objectsTreeSelectedItemsChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.#selectedObjectsInFileIds = event.detail.map(item => item.item.id);\n };\n\n #optionsHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns boolean\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputHandler = () => {\n this.#fileInputHiddenEl.click();\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 }\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n let pattern = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n pattern = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n }\n this.importedTreeFilterRegExp = new RegExp(pattern, \"i\");\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n\n this.#evaluateImportStatusMessage();\n };\n\n #toggleSelectionClickHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n if (this.#objectsTreeEl) {\n const checked = event.detail === CHECKBOX_ALL_CHECKED_VALUE;\n this.#objectsTreeEl.updateAllItemsProperties({ checked: checked });\n }\n };\n\n #updateStatusItemsState = () => {\n this.#errorItemsIds.clear();\n this.#warningItemsIds.clear();\n this.#successItemsIds.clear();\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (child.metadata === \"error\") {\n this.#errorItemsIds.add(child.id);\n }\n if (child.metadata === \"warning\") {\n this.#warningItemsIds.add(child.id);\n }\n if (child.metadata === \"success\") {\n this.#successItemsIds.add(child.id);\n }\n });\n });\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header\n // header\n class=\"field-group control-header-with-border header header-two-cols spacing-body-block-start spacing-body-inline\"\n slot=\"header\"\n >\n <div\n // select a file\n class=\"field field-inline\"\n >\n <label class=\"label\" htmlFor=\"file-name\">\n {this.#componentLocale.header.fileNameLabel}\n </label>\n <ch-edit\n autoFocus\n id=\"file-name\"\n class=\"input\"\n part=\"file-name\"\n type=\"text\"\n readonly\n value={this.selectedFile?.name}\n placeholder={this.#componentLocale.header.fileNamePlaceholder}\n startImgSrc={FILE_ICON}\n ref={(el: HTMLChEditElement) =>\n (this.#fileInputEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n <input\n hidden\n type=\"file\"\n accept=\".xpz, .xml\"\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n </div>\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 onClick={this.#removeFileSelection}\n >\n <ch-image class=\"icon-md\" src={MENU_DELETE}></ch-image>\n </button>\n\n <button\n // select file\n id=\"select-file-load-button\"\n class=\"button-primary\"\n part=\"select-file-load-button\"\n onClick={this.#selectFileInputHandler}\n disabled={this.importingIsInProcess}\n >\n {this.#componentLocale.header.selectFileButton}\n </button>\n </div>\n </header>\n\n <section\n // objects in file\n class=\"objects-in-file__section\"\n >\n <h2 class=\"control-header control-header-with-border control-header__objects-in-file subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.objectsInFile.title}\n </h2>\n\n <div class=\"field-group objects-in-file__main\">\n {!this.noObjects ? (\n <ch-tree-view-render\n // objects in file tree\n showLines=\"last\"\n class=\"tree-view tree-view-import\"\n model={this.objectsTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n lazyLoadTreeItemsCallback={this.#lazyLoadTreeItems}\n onCheckedItemsChange={\n this.#objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={\n this.#objectsTreeSelectedItemsChangedHandler\n }\n onItemContextmenu={this.#objectsTreeContextMenuHandler}\n ref={(el: HTMLChTreeViewRenderElement) =>\n (this.#objectsTreeEl = el as HTMLChTreeViewRenderElement)\n }\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateTitle={\n this.#componentLocale.main.objectsInFile.noObjects\n }\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-secondary\"\n onClick={this.#selectFileInputHandler}\n >\n {this.#componentLocale.main.objectsInFile.selectFile}\n </button>\n </gx-ide-empty-state>\n )}\n\n <footer class=\"field-group objects-in-file__footer spacing-body-inline\">\n <ch-checkbox\n // select all / unselect all checkbox\n id=\"select-all-checkbox\"\n class=\"checkbox create-data-in-kb\"\n checkedValue={CHECKBOX_ALL_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_ALL_UNCHECKED_VALUE}\n caption={\n this.#componentLocale.main.objectsInFile.selectUnselect\n }\n value={this.selectAllCheckboxValue}\n onInput={this.#toggleSelectionClickHandler}\n disabled={\n this.importingIsInProcess ||\n this.objectsTreeModel.length === 0\n }\n part=\"select-all-checkbox\"\n ></ch-checkbox>\n\n <div class=\"buttons-spacer\">\n <button\n // import objects button\n id=\"import-btn\"\n class=\"button-primary \"\n onClick={this.#importObjectsHandler}\n disabled={\n this.objectsTreeModel?.length === 0 ||\n this.importingIsInProcess\n }\n >\n {this.#componentLocale.main.objectsInFile.importButton}\n </button>\n\n <button\n // cancel-import button\n id=\"cancel-import-btn\"\n class=\"button-secondary \"\n onClick={this.#cancelImportHandler}\n disabled={!this.importingIsInProcess}\n part=\"cancel-import-button\"\n >\n {this.#componentLocale.main.objectsInFile.cancelButton}\n </button>\n\n <button\n // settings/options button\n id=\"select-kb-btn\"\n class=\"button-tertiary button-icon-only\"\n part=\"select-kb-btn\"\n onClick={this.#optionsHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={GEMINI_TOOLS_SETTINGS}\n ></ch-image>\n </button>\n </div>\n </footer>\n </div>\n </section>\n\n <section\n // import status\n class=\"import-status__section\"\n >\n <h2 class=\"control-header control-header-with-border control-header__import-status subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.importStatus.title}\n </h2>\n\n <div class=\"field-group import-status__main\">\n {!this.noImport && this.someStatusVisible ? (\n <ch-tree-view-render\n // import status tree\n model={this.importTreeState}\n toggleCheckboxes={true}\n showLines=\"last\"\n class=\"tree-view tree-view-import\"\n filter={this.importedTreeFilterRegExp}\n filterType=\"metadata\"\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateIconSrc={NOTICE_ICON}\n stateTitle={this.importStatusMessage}\n key=\"no-objects-empty-state\"\n ></gx-ide-empty-state>\n )}\n\n <footer class=\"import-status__footer spacing-body-inline\">\n <button\n // clear status button\n class=\"button-secondary import-clear-status-btn\"\n onClick={this.#clearStatusHandler}\n disabled={this.noImport || this.importingIsInProcess}\n part=\"clear-status-btn\"\n >\n {this.#componentLocale.main.importStatus.clearButton}\n </button>\n </footer>\n </div>\n </section>\n\n <footer\n // footer\n class=\"footer\"\n >\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n minimal={this.statusMinimal}\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport type CancelCallback = () => Promise<boolean>;\n\nexport type ImportCallback = (itemIds: string[]) => Promise<boolean>;\n\nexport type ImportItemData = {\n id: string;\n name: string;\n};\n\nexport type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;\n\nexport type ObjectContextMenuCallback = (\n tree: ObjectsSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ObjectsSourceType = \"in-file\" | \"imported\";\n\nexport type OptionsCallback = () => Promise<void>;\n\nexport interface SelectedObject {\n itemId: string;\n subItemsIds: string[];\n}\n\nexport type StatusItemsState = {\n error: string[];\n warning: string[];\n success: string[];\n};\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type CategoryItemMap = Map<string, CategoryItemMapValue>;\nexport type CategoryItemMapValue = { name: string; icon: string };\nexport type ObjectCategoryItemMap = Map<string, string>;\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"mappings":";;;;;;AAgBA,MAAMA,IAAkC;;6BAGjC,OAAMC,IAAY;;AAClB,MAAMC,IAAc;;AAEpB,MAAMC,IAAoB;;;;oCAM1B;MAAMC,sCAAsC,CACjDC,GACAC;EAEA,MAAMC,IAAuC;EAC7CD,EAAYE,SAAQC;IAClBF,EAAgBG,KAAK;MACnBC,IAAIF,EAAWE;MACfC,SAASH,EAAWI;MACpBC,UAAU;MACVC,MAAM;MACNC,aAAaX;MACbY,UAAUhB;;AACV;EAEJ,OAAOM;AAAe;;AAGjB,MAAMW,sCACXC;EAEA,MAAMC,IAA0B;EAChC,KAAKD,GAAoB;IACvB,OAAOC;;EAETD,EAAmBX,SAAQa;IACzB,MAAMC,IAA4C;MAChDX,IAAIU,EAAeV;MACnBC,SAAS,GAAGS,EAAeR,SAASQ,EAAeE,MAAMC;MACzDV,UAAUO,EAAeE,MAAMC,UAAUxB;MACzCyB,MAAMJ,EAAeE,MAAMC,SAASxB;MACpCe,MAAM;MACNC,aAAaK,EAAeK;MAC5BT,UAAUf;MACVqB,OAAOF,EAAeE,MAAMC,UAAUxB,IACpCI,oCACEiB,EAAeK,MACfL,EAAeE,SACb;;IAERH,EAASV,KAAKY;AAAuB;EAEvC,OAAOF;AAAQ;;;;oCAOjB;MAAMO,iCAAiC,CACrCC,GACAC,GACAC;EAEA,MAAMC,IAAgC;EACtCF,EAAcrB,SAAQ,CAACwB,GAASC;IAC9BF,EAASrB,KAAK;MACZC,IAAI,GAAGiB,aAAwBK;MAC/BrB,SAASoB;MACThB,aAAa;MACbD,MAAM;MACNE,UAAUiB,KAAKC,UAAU;QACvBhC,CAACA,IAAoB2B;;;AAEvB;EAEJ,OAAOC;AAAQ;;AAGjB,MAAMK,yBAAyB,CAC7BC,GACAC;EAEA,MAAMC,IAAe,GAAGD,EAAqB3B,MAAM2B,EAAqBzB;EACxE,MAAM2B,IAAsC;IAC1C7B,IAAI4B;IACJvB,aAAaqB,EAAaX;IAC1Bd,SAAS0B,EAAqBzB;IAC9B4B,OAAO,yDAAyDH,EAAqBR;IACrFhB,UAAU;IACVC,MAAMuB,EAAqBP,SAASP,WAAW;IAC/CP,UAAUiB,KAAKC,UAAU;MACvBhC,CAACA,IAAoBmC,EAAqBR;;IAE5CP,OAAOI,+BACLY,GACAD,EAAqBP,UACrBO,EAAqBR;;EAGzB,OAAOU;AAAgB;;iFAIlB;MAAME,8BAA8B,CACzCJ,GACAK,GACAC,GACAC;EAEA,MAAMC,IAAwC,KAAID;;IAGlD,MAAME,IAAmBH,EAAsBI,IAAIV,EAAqB3B;EACxE,MAAM0B,IAAeM,EAAgBK,IAAID;EAEzC,MAAME,IAAwBH,EAAuBI,WACnDC,KAAYA,EAASxC,OAAOoC;EAG9B,IAAIE,OAAmB,GAAG;;IAExB,MAAMG,IAA8B;MAClCzC,IAAIoC;MACJnC,SAAS,GAAGyB,EAAaxB;MACzBG,aAAa,GAAGqB,EAAaX;MAC7BZ,UAAU;MACVS,OAAO,EAACa,uBAAuBC,GAAcC;;IAG/CQ,EAAuBpC,KAAK0C;IAC5B,OAAON;;;IAIT,MAAMO,IAAgCjB,uBACpCC,GACAC;EAEFQ,EAAuBG,GAAe1B,QAAQ,KACzCuB,EAAuBG,GAAe1B,OACzC8B;;IAIF,MAAMC,IAAiBR,EAAuBG,GAAe1B,MAAMC;EACnEsB,EACEG,GACArC,UAAU,GAAGyB,EAAaxB,SAASyC;EAErC,OAAOR;AAAsB;;ACxK/B,MAAMS,IAAqB;;;;;;;;;;;;;;;;;ACsC3B,MAAMC,IAA8B,EAClC,qBACA,qBACA,uBACA,mBACA,mBACA,wBACA,cACA,gBACA,oBACA;;AAGF,MAAMC,IAAcC,EAAY;EAC9BN,UAAU;EACVvC,MAAM;EACN8C,WAAW;;;AAGb,MAAMC,IAAYF,EAAY;EAC5BN,UAAU;EACVvC,MAAM;EACN8C,WAAW;;;AAGb,MAAME,IAAwBH,EAAY;EACxCN,UAAU;EACVvC,MAAM;EACN8C,WAAW;;;AAGb,MAAMG,IAAcJ,EAAY;EAC9BN,UAAU;EACVvC,MAAM;EACN8C,WAAW;;;AAGb,MAAMI,IAA6B;;AACnC,MAAMC,IAA+B;;MAQxBC,IAAoB;;;;;;;;;QAK/BC,EAAAC,IAAAC,WAAA;IAEAC,EAAAF,IAAAC,MAAsC;IAItCE,EAAAH,IAAAC,WAAA;IACAG,EAAAJ,IAAAC,WAAA;IACAI,EAAAL,IAAAC,WAAA;IACAK,EAAAN,IAAAC,MAAgC,IAAIM;IACpCC,EAAAR,IAAAC,MAAgC,IAAIM;IACpCE,EAAAT,IAAAC,MAA8B,IAAIM;;;QAGlCG,EAAAV,IAAAC,MAAoC,IAAIU;IACxCC,EAAAZ,IAAAC,MAAgD,IAAIU;IACpDE,EAAAb,IAAAC,WAAA;IAmIAa,EAAAd,IAAAC,OAAuB;MACrBA,KAAKc;AAAgB;IAGvBC,EAAAhB,IAAAC,OAAsB;MACpBA,KAAKgB,kBAAkB;MACvBhB,KAAKiB,WAAWC,MAAMC,SAAS;MAC/BnB,KAAKiB,WAAWG,QAAQD,SAAS;MACjCnB,KAAKiB,WAAWI,QAAQF,SAAS;AAAC;IAGpCG,EAAAvB,IAAAC,OAAkB;;MAChBA,KAAKuB,gBACHC,IAAAxB,KAAKgB,qBAAe,QAAAQ,WAAA,aAAAA,EAAEpE,YAAW,MAAM4C,KAAKgB;AAC7C;IAGHS,EAAA1B,IAAAC,OAA+B;MAC7BA,KAAK0B,oBACH1B,KAAKiB,WAAWC,MAAMS,WACtB3B,KAAKiB,WAAWG,QAAQO,WACxB3B,KAAKiB,WAAWI,QAAQM;AAAO;IAGnCC,EAAA7B,IAAAC,OAAwB6B;;kGAEtBC,EAAA9B,MAAIe,GAAA,KAAoBgB,KAAxB/B;mCAEAA,KAAKgC,uBAAuB;;;;;;;;;;;;oBAc5B,MAAMC,IAA6B;MACnC,KAAI,IAAIjD,KAAY8C,EAAA9B,MAAII,GAAA,KAAgB8B,OAAO;QAC7C,MAAIV,IAAAxC,EAAS7B,WAAK,QAAAqE,WAAA,aAAAA,EAAEpE,UAAS,GAAG;UAC9B,KAAI,IAAI+E,KAAOnD,EAAS7B,OAAO;YAC7B,IAAIgF,EAAIC,SACNH,EAAkB3F,KAAK6F,EAAI5F;;eAG5B,IAAIyC,EAAS3B,QAAQ2B,EAASoD,SAAS;UAC1C,MAAMnE,IAAe6D,EAAA9B,MAAIY,GAAA,KAAuByB,MAAKC,KAAOA,EAAI/F,MAAMyC,EAASzC;UAC/E,KAAI,IAAI4F,KAAOlE,EAAad,OAAO;YACjC8E,EAAkB3F,KAAK6F,EAAI5F;;;;MAIjCyD,KAAKuC,eAAeN,GAAmBO,MAAK;QAC1CxC,KAAKgC,uBAAuB;AAAK;AACjC;IAGJS,EAAA1C,IAAAC,OAAmB6B,MAAOa;MACxBC,EAAA3C,MAAIY,SAA+BZ,KAAK4C,aAAaF,IAAK;MAC1DZ,EAAA9B,MAAIS,GAAA,KAAkBoC;MACtBf,EAAA9B,MAAIW,GAAA,KAAwBkC;MAE5Bf,EAAA9B,MAAIY,GAAA,KAAuBxE,SAAQ4C;QACjC8C,EAAA9B,MAAIS,GAAA,KAAkBV,IAAIf,EAASzC,IAAI;UACrCE,MAAMuC,EAASvC;UACfa,MAAM0B,EAAS1B;;QAEjB0B,EAAS7B,MAAMf,SAAQ0G;UACrBhB,EAAA9B,MAAIW,GAAA,KAAwBZ,IAAI+C,EAAOvG,IAAIyC,EAASzC;AAAG;AACvD;MAGJ,MAAMwG,IACJjG,oCAAoCgF,EAAA9B,MAAIY,GAAA;MAC1CZ,KAAKgD,mBAAmBD;AAAsB;IAGhDE,EAAAlD,IAAAC,OAAqB6B,MAAOqB;MAC1B,MAAMlE,IAAW8C,EAAA9B,MAAIY,GAAA,KAAuByB,MAAKC,KAAOA,EAAI/F,OAAO2G;MACnE,OAAOlE,KAAYA,EAAS7B,MAAMC,SAAS,IACzCpB,oCAAoCgD,EAAS1B,MAAM0B,EAAS7B,SAC5D;AAAE;IAGNgG,EAAApD,IAAAC,OACEoD;MAEA,MAAMC,IAAWD,EAAME;MACvB,MAAMC,IAA2B;MACjC,MAAMC,IAAkC;MAExCH,EAASjH,SAAQqH;QACf,IAAIA,EAAKA,KAAKrB,SAAS;UACrBmB,EAAejH,KAAKmH,EAAKA,KAAKlH;UAC9B,IAAIkH,EAAKA,KAAKpG,SAASoG,EAAKA,KAAKtG,OAC/BqG,EAAsBlH,KAAKmH,EAAKA,KAAKlH;;;MAO3C,KAAI,IAAImH,KAAwBF,GAAuB;QACrD,MAAMxE,IAAW8C,EAAA9B,MAAIY,GAAA,KAAuByB,MAAKC,KAAOA,EAAI/F,OAAOmH;QACnE,IAAI1E,GAAU;UACZ,KAAI,IAAIyE,KAAQzE,EAAS7B,OAAO,C;;;;YAQpC,IAAIkG,EAASM,SAASJ,EAAenG,QAAQ;QAC3C4C,KAAK4D,yBAAyBjE;QAC9BK,KAAK6D,iCAAiC;aACjC,IAAIN,EAAenG,WAAW,GAAG;QACtC4C,KAAK4D,yBAAyBhE;QAC9BI,KAAK6D,iCAAiC;aACjC;QACL7D,KAAK6D,iCAAiC;;;IAI1CC,EAAA/D,IAAAC,OACEoD;MAEA,IAAIA,EAAME,OAAOzG,aAAahB,GAAW;QACvCmE,KAAK+D,0BAA0B,YAAY;UACzCC,WAAWlC,EAAA9B,MAAIC,GAAA;UACfgE,SAASb,EAAME,OAAOY,iBAAiBC;UACvCC,SAAShB,EAAME,OAAOY,iBAAiBG;;;;IAK7CC,EAAAvE,IAAAC,OACEoD;MAEAT,EAAA3C,MAAIC,GAA6BmD,EAAME,OAAOiB,KAAId,KAAQA,EAAKA,KAAKlH,MAAG;AAAA;IAGzEiI,EAAAzE,IAAAC,OAAkB;MAChB,IAAIA,KAAKyE,iBAAiB;QACxBzE,KAAKyE;;;;IAKTC,EAAA3E,IAAAC,OAAuB;MACrBA,KAAK2E,eAAe;MACpB7C,EAAA9B,MAAIG,GAAA,KAAoByE,QAAQ;AAAI;IAGtCC,EAAA9E,IAAAC,OAA0B;MACxB8B,EAAA9B,MAAIG,GAAA,KAAoB2E;AAAO;IAGjCC,EAAAhF,IAAAC,OAAkCoD;;MAChC,MAAM4B,IAAS5B,EAAM4B;MACrB,MAAIxD,IAAAwD,EAAOC,WAAK,QAAAzD,WAAA,aAAAA,EAAEpE,UAAS,GAAG;QAC5B4C,KAAK2E,eAAeK,EAAOC,MAAM;;;IAIrCC,EAAAnF,IAAAC,OACEoD;MAEA,MAAM+B,IAAe/B,EAAME;MAC3B,MAAM8B,IAAqB;MAE3B,MAAMC,IAAaF,EAAarG,WAC9BwG,KAASA,EAAMC,WAAW;MAE5B,MAAMC,IAAeL,EAAarG,WAChCwG,KAASA,EAAMC,WAAW;MAE5B,MAAME,IAAeN,EAAarG,WAChCwG,KAASA,EAAMC,WAAW;MAG5B,IAAIF,OAAgB,GAAG;QACrBD,EAAS9I,KAAK;;MAEhB,IAAIkJ,OAAkB,GAAG;QACvBJ,EAAS9I,KAAK;;MAEhB,IAAImJ,OAAkB,GAAG;QACvBL,EAAS9I,KAAK;;MAGhB,IAAIoJ,IAAU,IAAI3J;MAClB,IAAIqJ,EAAShI,QAAQ;QACnB,MAAMuI,IAAgBP,EAASQ,KAAK;QACpCF,IAAU,IAAI3J,QAAwB4J;;MAExC3F,KAAK6F,2BAA2B,IAAIC,OAAOJ,GAAS;;YAGpD1F,KAAKiB,aAAa;QAChBC,OAAO;UACLS,SAAS0D,OAAgB;UACzBlE,QAAQnB,KAAKiB,WAAWC,MAAMC;;QAEhCC,SAAS;UACPO,SAAS6D,OAAkB;UAC3BrE,QAAQnB,KAAKiB,WAAWG,QAAQD;;QAElCE,SAAS;UACPM,SAAS8D,OAAkB;UAC3BtE,QAAQnB,KAAKiB,WAAWI,QAAQF;;;MAIpCW,EAAA9B,MAAIyB,GAAA,KAA6BM,KAAjC/B;AAAmC;IAGrC+F,EAAAhG,IAAAC,OACEoD;MAEA,IAAItB,EAAA9B,MAAII,GAAA,MAAiB;QACvB,MAAMgC,IAAUgB,EAAME,WAAW3D;QACjCmC,EAAA9B,MAAII,GAAA,KAAgB4F,yBAAyB;UAAE5D,SAASA;;;;IAI5D6D,EAAAlG,IAAAC,OAA0B;MACxB8B,EAAA9B,MAAIQ,GAAA,KAAgBqC;MACpBf,EAAA9B,MAAIO,GAAA,KAAkBsC;MACtBf,EAAA9B,MAAIK,GAAA,KAAkBwC;MACtB7C,KAAKgB,gBAAgB5E,SAAQqH;QAC3B,MAAMtG,IAAQsG,EAAKtG;QACnBA,EAAMf,SAAQ8J;UACZ,IAAIA,EAAMrJ,aAAa,SAAS;YAC9BiF,EAAA9B,MAAIQ,GAAA,KAAgB2F,IAAID,EAAM3J;;UAEhC,IAAI2J,EAAMrJ,aAAa,WAAW;YAChCiF,EAAA9B,MAAIO,GAAA,KAAkB4F,IAAID,EAAM3J;;UAElC,IAAI2J,EAAMrJ,aAAa,WAAW;YAChCiF,EAAA9B,MAAIK,GAAA,KAAkB8F,IAAID,EAAM3J;;;AAElC;AACF;;0CAxX+C;;2BAEH;;gCAMhB;gCACU;;qBAEZ;4BACmB;oCACb;;sBAEF;MAChC2E,OAAO;QACLS,SAAS;QACTR,QAAQ;;MAEVC,SAAS;QACPO,SAAS;QACTR,QAAQ;;MAEVE,SAAS;QACPM,SAAS;QACTR,QAAQ;;;;;;;;;yBA2DqB;;EAhFjC,sBAAAiF;;;EA0BA,2BAAAC;IACEvE,EAAA9B,MAAIsB,GAAA,KAAgBS,KAApB/B;IACA,IAAIA,KAAKuB,UAAU;MACjBvB,KAAKsG,sBACHxE,EAAA9B,MAAIF,GAAA,KAAkByG,KAAKC,aAAaC;WACrC;MACLzG,KAAKsG,sBACHxE,EAAA9B,MAAIF,GAAA,KAAkByG,KAAKC,aAAaE;;;EAI9C,4BAAAC,CAA6BC;IAC3B5G,KAAK6G,aAAaD,KAAYA,EAASxJ,WAAW;;EAiCpD,mBAAA0J,CAAoBC;IAClB,IAAIA,GAAS;MACXjF,EAAA9B,MAAIyC,GAAA,KAAiBV,KAArB/B,MAAsB+G;;;EAmB1B,gBAAAC;IACElF,EAAA9B,MAAIE,GAAA,KAAc+G;;EAGpB,kBAAAC,IAAkB;EAElB,uBAAMC;IACJxE,EAAA3C,MAAIF,SAA0BsH,EAAOC,oBAAoBrH,KAAKsH,KAAG;IACjEtH,KAAKuH,sBAAsBC,KAAK;;QAEhC1F,EAAA9B,MAAIsB,GAAA,KAAgBS,KAApB/B;IACAA,KAAKsG,sBACHxE,EAAA9B,MAAIF,GAAA,KAAkByG,KAAKC,aAAaC;IAC1C3E,EAAA9B,MAAIyB,GAAA,KAA6BM,KAAjC/B;;;;SAOF,mBAAMyH,CAAchE;IAClBzD,KAAKgB,kBAAkB1C,4BACrBmF,GACA3B,EAAA9B,MAAIS,GAAA,MACJqB,EAAA9B,MAAIW,GAAA,MACJX,KAAKgB;IAEPhB,KAAKiB,WAAWwC,EAAK/F,QAAQyD;IAC7BW,EAAA9B,MAAIiG,GAAA,KAAwBlE,KAA5B/B;;EA8PF,MAAA0H;;IACE,OACEC,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUzF,OAAO9C;QAEjBuI,EAAA;MAASE,OAAM;OACbF,EAAA;;MAEEE,OAAM;MACNC,MAAK;OAELH,EAAA;;MAEEE,OAAM;OAENF,EAAA;MAAOE,OAAM;MAAQE,SAAQ;OAC1BjG,EAAA9B,MAAIF,GAAA,KAAkBkI,OAAOC,gBAEhCN,EAAA;MACEO,WAAS;MACT3L,IAAG;MACHsL,OAAM;MACNM,MAAK;MACLC,MAAK;MACLC,UAAQ;MACRzD,QAAOpD,IAAAxB,KAAK2E,kBAAY,QAAAnD,WAAA,aAAAA,EAAE/E;MAC1B6L,aAAaxG,EAAA9B,MAAIF,GAAA,KAAkBkI,OAAOO;MAC1C3L,aAAa4C;MACbgJ,KAAMlB,KACH3E,EAAA3C,MAAIE,GAAgBoH,GAAuB;QAGhDK,EAAA;MACEc,QAAM;MACNL,MAAK;MACLM,QAAO;MACPC,UAAU7G,EAAA9B,MAAI+E,GAAA;MACdyD,KAAMlB,KACH3E,EAAA3C,MAAIG,GAAsBmH,GAAsB;SAKvDK,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAA,cAEc7F,EAAA9B,MAAIF,GAAA,KAAkBkI,OAAOY;MACzCC,OAAO/G,EAAA9B,MAAIF,GAAA,KAAkBkI,OAAOY;MACpCrM,IAAG;MACHsL,OAAM;MACNM,MAAK;MACLW,SAAShH,EAAA9B,MAAI0E,GAAA;OAEbiD,EAAA;MAAUE,OAAM;MAAUkB,KAAKrJ;SAGjCiI,EAAA;;MAEEpL,IAAG;MACHsL,OAAM;MACNM,MAAK;MACLW,SAAShH,EAAA9B,MAAI6E,GAAA;MACbmE,UAAUhJ,KAAKgC;OAEdF,EAAA9B,MAAIF,GAAA,KAAkBkI,OAAOiB,qBAKpCtB,EAAA;;MAEEE,OAAM;OAENF,EAAA;MAAIE,OAAM;OACP/F,EAAA9B,MAAIF,GAAA,KAAkByG,KAAK2C,cAAcL,QAG5ClB,EAAA;MAAKE,OAAM;QACP7H,KAAK6G,YACLc,EAAA;;MAEEwB,WAAU;MACVtB,OAAM;MACN3F,OAAOlC,KAAKgD;MACZoG,cAAc;MACdC,cAAc;MACdC,kBAAkB;MAClBC,UAAU;MACVnH,SAAS;MACToH,2BAA2B1H,EAAA9B,MAAIiD,GAAA;MAC/BwG,sBACE3H,EAAA9B,MAAImD,GAAA;MAENuG,uBACE5H,EAAA9B,MAAIsE,GAAA;MAENqF,mBAAmB7H,EAAA9B,MAAI8D,GAAA;MACvB0E,KAAMlB,KACH3E,EAAA3C,MAAII,GAAkBkH,GAAiC;SAI5DK,EAAA;MACEiC,YAAY;MACZC,YACE/H,EAAA9B,MAAIF,GAAA,KAAkByG,KAAK2C,cAAcrC;MAE3CiD,KAAI;OAEJnC,EAAA;;MAEEE,OAAM;MACNiB,SAAShH,EAAA9B,MAAI6E,GAAA;OAEZ/C,EAAA9B,MAAIF,GAAA,KAAkByG,KAAK2C,cAAca,cAKhDpC,EAAA;MAAQE,OAAM;OACZF,EAAA;;MAEEpL,IAAG;MACHsL,OAAM;MACNmC,cAAcrK;MACdsK,gBAAgBrK;MAChBpD,SACEsF,EAAA9B,MAAIF,GAAA,KAAkByG,KAAK2C,cAAcgB;MAE3CtF,OAAO5E,KAAK4D;MACZuG,SAASrI,EAAA9B,MAAI+F,GAAA;MACbiD,UACEhJ,KAAKgC,wBACLhC,KAAKgD,iBAAiB5F,WAAW;MAEnC+K,MAAK;QAGPR,EAAA;MAAKE,OAAM;OACTF,EAAA;;MAEEpL,IAAG;MACHsL,OAAM;MACNiB,SAAShH,EAAA9B,MAAI4B,GAAA;MACboH,YACEoB,IAAApK,KAAKgD,sBAAgB,QAAAoH,WAAA,aAAAA,EAAEhN,YAAW,KAClC4C,KAAKgC;OAGNF,EAAA9B,MAAIF,GAAA,KAAkByG,KAAK2C,cAAcmB,eAG5C1C,EAAA;;MAEEpL,IAAG;MACHsL,OAAM;MACNiB,SAAShH,EAAA9B,MAAIa,GAAA;MACbmI,WAAWhJ,KAAKgC;MAChBmG,MAAK;OAEJrG,EAAA9B,MAAIF,GAAA,KAAkByG,KAAK2C,cAAcoB,eAG5C3C,EAAA;;MAEEpL,IAAG;MACHsL,OAAM;MACNM,MAAK;MACLW,SAAShH,EAAA9B,MAAIwE,GAAA;OAEbmD,EAAA;MACEE,OAAM;MACNkB,KAAKtJ;aAQjBkI,EAAA;;MAEEE,OAAM;OAENF,EAAA;MAAIE,OAAM;OACP/F,EAAA9B,MAAIF,GAAA,KAAkByG,KAAKC,aAAaqC,QAG3ClB,EAAA;MAAKE,OAAM;QACP7H,KAAKuB,YAAYvB,KAAK0B,oBACtBiG,EAAA;;MAEEzF,OAAOlC,KAAKgB;MACZsI,kBAAkB;MAClBH,WAAU;MACVtB,OAAM;MACN0C,QAAQvK,KAAK6F;MACb2E,YAAW;MACXC,eAAe;QACbC,YAAY;QACZC,8BAA8B;;SAIlChD,EAAA;MACEiC,YAAY;MACZgB,cAAcvL;MACdwK,YAAY7J,KAAKsG;MACjBwD,KAAI;QAIRnC,EAAA;MAAQE,OAAM;OACZF,EAAA;;MAEEE,OAAM;MACNiB,SAAShH,EAAA9B,MAAIe,GAAA;MACbiI,UAAUhJ,KAAKuB,YAAYvB,KAAKgC;MAChCmG,MAAK;OAEJrG,EAAA9B,MAAIF,GAAA,KAAkByG,KAAKC,aAAaqE,iBAMjDlD,EAAA;;MAEEE,OAAM;OAENF,EAAA;MACEmD,QAAQ9K,KAAKiB,WAAWC,MAAMC;MAC9B4J,UAAU/K,KAAKiB,WAAWG,QAAQD;MAClC6J,WAAWhL,KAAKiB,WAAWI,QAAQF;MACnC8J,aAAW;MACXC,SAAO;MACPC,SAASnL,KAAKoL;MACdC,oBAAoBvJ,EAAA9B,MAAIkF,GAAA"}
1
+ {"version":3,"names":["MAX_CATEGORY_ITEMS_FIRST_RENDER","KB_OBJECT","KB_CATEGORY","STATUS_REGEXP_KEY","convertImportCategoryItemToTreeItem","importCatIcon","importItems","importTreeItems","forEach","importItem","push","id","caption","name","expanded","leaf","startImgSrc","metadata","convertImportCategoryDataToTreeView","importCategoryData","treeData","importCategory","importCategoryTreeItem","items","length","lazy","icon","createImportResultDataMessages","importItemId","messagesArray","status","messages","message","i","JSON","stringify","createImportResultItem","categoryData","importItemResultData","resultItemId","importResultItem","parts","addImportItemResultDataItem","categoryItemMap","objectCategoryItemMap","importTreeActualState","updatedImportTreeModel","objectCategoryId","get","categoryIndex","findIndex","treeItem","category","resultItem","newItemsLength","kbManagerImportCss","CSS_BUNDLES","NOTICE_ICON","getIconPath","colorType","FILE_ICON","GEMINI_TOOLS_SETTINGS","MENU_DELETE","CHECKBOX_ALL_CHECKED_VALUE","CHECKBOX_ALL_UNCHECKED_VALUE","GxIdeKbManagerImport","_GxIdeKbManagerImport_componentLocale","set","this","_GxIdeKbManagerImport_selectedObjectsInFileIds","_GxIdeKbManagerImport_fileInputEl","_GxIdeKbManagerImport_fileInputHiddenEl","_GxIdeKbManagerImport_objectsTreeEl","_GxIdeKbManagerImport_successItemsIds","Set","_GxIdeKbManagerImport_warningItemsIds","_GxIdeKbManagerImport_errorItemsIds","_GxIdeKbManagerImport_categoryItemMap","Map","_GxIdeKbManagerImport_objectCategoryItemMap","_GxIdeKbManagerImport_importedCategoryData","_GxIdeKbManagerImport_cancelImportHandler","cancelCallback","_GxIdeKbManagerImport_clearStatusHandler","importTreeState","statusInfo","error","number","warning","success","_GxIdeKbManagerImport_evaluateImport","noImport","_a","_GxIdeKbManagerImport_evaluateImportStatusMessage","someStatusVisible","display","_GxIdeKbManagerImport_importObjectsHandler","async","__classPrivateFieldGet","call","importingIsInProcess","checkedObjectsIds","model","obj","checked","find","cat","importCallback","then","_GxIdeKbManagerImport_loadFileHandler","file","__classPrivateFieldSet","loadCallback","clear","object","importCategoryTreeData","objectsTreeModel","_GxIdeKbManagerImport_lazyLoadTreeItems","treeItemId","_GxIdeKbManagerImport_objectsTreeCheckedItemsChangedHandler","event","allItems","detail","checkedItemIds","pendingCheckedItemIds","item","pendingCheckedItemId","size","selectAllCheckboxValue","selectAllCheckboxIndeterminate","_GxIdeKbManagerImport_objectsTreeContextMenuHandler","objectContextMenuCallback","selection","clientX","contextmenuEvent","screenX","clientY","screenY","_GxIdeKbManagerImport_objectsTreeSelectedItemsChangedHandler","map","_GxIdeKbManagerImport_optionsHandler","optionsCallback","_GxIdeKbManagerImport_removeFileSelection","selectedFile","value","_GxIdeKbManagerImport_selectFileInputHandler","click","_GxIdeKbManagerImport_selectFileInputChangedHandler","target","files","_GxIdeKbManagerImport_statusButtonsSelectionChangedHandler","activeStates","statuses","errorIndex","state","itemId","warningIndex","successIndex","pattern","statusOptions","join","importedTreeFilterRegExp","RegExp","_GxIdeKbManagerImport_toggleSelectionClickHandler","updateAllItemsProperties","_GxIdeKbManagerImport_updateStatusItemsState","child","add","importTreeStateChanged","watchImportTreeStateHandler","importStatusMessage","main","importStatus","noImportedFiles","importedButHidden","watchObjectsTreeModelHandler","newState","noObjects","selectedFileChanged","newFile","componentDidLoad","focus","componentDidRender","componentWillLoad","Locale","getComponentStrings","el","componentDidLoadEvent","emit","addResultItem","render","h","Host","class","slot","htmlFor","header","fileNameLabel","autoFocus","part","type","readonly","placeholder","fileNamePlaceholder","ref","hidden","accept","onChange","removeFileSelection","title","onClick","src","disabled","selectFileButton","objectsInFile","showLines","dragDisabled","dropDisabled","toggleCheckboxes","checkbox","lazyLoadTreeItemsCallback","onCheckedItemsChange","onSelectedItemsChange","onItemContextmenu","isAnimated","stateTitle","key","selectFile","checkedValue","unCheckedValue","selectUnselect","onInput","_b","importButton","cancelButton","filter","filterType","filterOptions","autoExpand","hideMatchesAndShowNonMatches","stateIconSrc","clearButton","errors","warnings","successes","hideMessage","compact","minimal","statusMinimal","onSelectionChanged"],"sources":["src/components/kb-manager-import/helpers.ts","src/components/kb-manager-import/kb-manager-import.scss?tag=gx-ide-kb-manager-import&encapsulation=shadow","src/components/kb-manager-import/kb-manager-import.tsx"],"sourcesContent":["/* Tree View */\nimport {\n TreeViewItemModel,\n TreeViewModel\n} from \"@genexus/chameleon-controls-library\";\n\n/* Kb Manager Import Types*/\nimport {\n ImportItemData,\n CategoryItemMap,\n CategoryItemMapValue,\n ObjectCategoryItemMap,\n Status\n} from \"./kb-manager-import\";\nimport { ImportCategoryData, ImportItemResultData } from \"../../common/types\";\n\nconst MAX_CATEGORY_ITEMS_FIRST_RENDER = 30;\n\n/* objects in file metadata*/\nexport const KB_OBJECT = \"object\";\nexport const KB_CATEGORY = \"category\";\n\nexport const STATUS_REGEXP_KEY = \"status\";\n\n// - - - - - - - - - - - - - - - - -\n// Objects In File Tree Model\n// - - - - - - - - - - - - - - - - -\n\nexport const convertImportCategoryItemToTreeItem = (\n importCatIcon: string,\n importItems: ImportItemData[]\n) => {\n const importTreeItems: TreeViewItemModel[] = [];\n importItems.forEach(importItem => {\n importTreeItems.push({\n id: importItem.id,\n caption: importItem.name,\n expanded: true,\n leaf: true,\n startImgSrc: importCatIcon,\n metadata: KB_OBJECT\n });\n });\n return importTreeItems;\n};\n\nexport const convertImportCategoryDataToTreeView = (\n importCategoryData: ImportCategoryData[]\n): TreeViewModel => {\n const treeData: TreeViewModel = [];\n if (!importCategoryData) {\n return treeData;\n }\n importCategoryData.forEach(importCategory => {\n const importCategoryTreeItem: TreeViewItemModel = {\n id: importCategory.id,\n caption: `${importCategory.name} (${importCategory.items.length})`,\n expanded: importCategory.items.length <= MAX_CATEGORY_ITEMS_FIRST_RENDER,\n lazy: importCategory.items.length > MAX_CATEGORY_ITEMS_FIRST_RENDER,\n leaf: false,\n startImgSrc: importCategory.icon,\n metadata: KB_CATEGORY,\n items: importCategory.items.length <= MAX_CATEGORY_ITEMS_FIRST_RENDER ? \n convertImportCategoryItemToTreeItem(\n importCategory.icon,\n importCategory.items\n ) : []\n };\n treeData.push(importCategoryTreeItem);\n });\n return treeData;\n};\n\n// - - - - - - - - - - - - - - - - -\n// Import Status Tree Model\n// - - - - - - - - - - - - - - - - -\n\nconst createImportResultDataMessages = (\n importItemId: string,\n messagesArray: string[],\n status: Status\n): TreeViewItemModel[] => {\n const messages: TreeViewItemModel[] = [];\n messagesArray.forEach((message, i) => {\n messages.push({\n id: `${importItemId}-message-${i}`,\n caption: message,\n startImgSrc: \"gemini-tools/list-view/on-surface\",\n leaf: true,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: status\n })\n });\n });\n return messages;\n};\n\nconst createImportResultItem = (\n categoryData: CategoryItemMapValue,\n importItemResultData: ImportItemResultData\n): TreeViewItemModel => {\n const resultItemId = `${importItemResultData.id}-${importItemResultData.name}`;\n const importResultItem: TreeViewItemModel = {\n id: resultItemId,\n startImgSrc: categoryData.icon,\n caption: importItemResultData.name,\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultData.status}`,\n expanded: true,\n leaf: importItemResultData.messages.length === 0,\n metadata: JSON.stringify({\n [STATUS_REGEXP_KEY]: importItemResultData.status\n }),\n items: createImportResultDataMessages(\n resultItemId,\n importItemResultData.messages,\n importItemResultData.status\n )\n };\n return importResultItem;\n};\n\n// This functions updates the \"Import Status\" model, by adding a new result item.\nexport const addImportItemResultDataItem = (\n importItemResultData: ImportItemResultData,\n categoryItemMap: CategoryItemMap,\n objectCategoryItemMap: ObjectCategoryItemMap,\n importTreeActualState: TreeViewItemModel[]\n) => {\n const updatedImportTreeModel: TreeViewModel = [...importTreeActualState];\n\n // Use the resultItem.id to find the corresponding category in the categoryMap\n const objectCategoryId = objectCategoryItemMap.get(importItemResultData.id);\n const categoryData = categoryItemMap.get(objectCategoryId);\n\n const categoryIndex: number = updatedImportTreeModel.findIndex(\n treeItem => treeItem.id === objectCategoryId\n );\n\n if (categoryIndex === -1) {\n // category does not exists yet.\n const category: TreeViewItemModel = {\n id: objectCategoryId,\n caption: `${categoryData.name} (1)`,\n startImgSrc: `${categoryData.icon}`,\n expanded: true,\n items: [createImportResultItem(categoryData, importItemResultData)]\n };\n\n updatedImportTreeModel.push(category);\n return updatedImportTreeModel;\n }\n\n // else category already exists. Just insert the result item in the category.\n const resultItem: TreeViewItemModel = createImportResultItem(\n categoryData,\n importItemResultData\n );\n updatedImportTreeModel[categoryIndex].items = [\n ...updatedImportTreeModel[categoryIndex].items,\n resultItem\n ];\n\n // update category caption length\n const newItemsLength = updatedImportTreeModel[categoryIndex].items.length;\n updatedImportTreeModel[\n categoryIndex\n ].caption = `${categoryData.name} (${newItemsLength})`;\n\n return updatedImportTreeModel;\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template:\n \"header header\" max-content\n \"objects-in-file import-status\" 1fr\n \"footer footer\" max-content;\n grid-template-columns: 1fr 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.header {\n grid-template-columns: 1fr max-content;\n grid-area: header;\n}\n\n// objects in file\n.objects-in-file__section {\n grid-area: objects-in-file;\n}\n.objects-in-file__main {\n border-inline-end: var(--section-common-border);\n grid-template-rows: 1fr max-content;\n}\n.objects-in-file__footer {\n display: grid;\n}\n\n// import status\n.import-status__section {\n grid-area: import-status;\n}\n.import-status__main {\n grid-template-rows: 1fr max-content;\n}\n.import-status__footer {\n display: flex;\n}\n.import-clear-status-btn {\n margin-inline-start: auto;\n}\n\n// objects in file & import status\n.objects-in-file__section,\n.import-status__section {\n display: grid;\n grid-template-rows: max-content 1fr;\n}\n.control-header__objects-in-file,\n.control-header__import-status {\n padding-block-start: var(--mer-spacing--md);\n}\n.objects-in-file__main,\n.import-status__main {\n grid-auto-rows: max-content;\n padding-block: var(--content-block-spacing);\n overflow: auto;\n}\n\n// footer\n.footer {\n display: flex;\n grid-area: footer;\n border-block-start: var(--section-common-border);\n}\n\n// WA / TODO: Add a helper class in Mercury to justify text.\n.text-align-center {\n text-align: center; // should be resolved on mercury\n}\n\n.tree-view::part(item__action tree-view-item--status) {\n grid-template: \"first-img left-img text right-img\" / max-content max-content 1fr max-content;\n &::before {\n grid-area: first-img;\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n background-color: var(--gray-03);\n margin-inline-end: var(--mer-spacing--xxs);\n }\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n @include tree-item-status(\"success\");\n}\n.tree-view::part(item__action tree-view-item--warning) {\n @include tree-item-status(\"warning\");\n}\n.tree-view::part(item__action tree-view-item--error) {\n @include tree-item-status(\"error\");\n}\n\n// WA: prevent crashes when the items collection contains too many elements\n.tree-view-import::part(item) {\n content-visibility: auto;\n contain-intrinsic-size: auto 22px;\n // TODO: Check if 22px can be calculated. Not \"secure\" since font-size\n // (body-regular-s) defines the total height. If the typographic style\n // changes, this calculation will break. Ideally, tree item font-size\n // should use a variable like \"--tree-item-font-size\".\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n Host,\n h,\n Method,\n Prop,\n State,\n Watch\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n // ChEditCustomEvent,\n TreeViewItemContextMenu\n} from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\n\nimport {\n ImportCategoryData,\n ImportItemResultData,\n ContextMenuInfo\n} from \"../../common/types\";\nimport {\n convertImportCategoryDataToTreeView,\n addImportItemResultDataItem,\n convertImportCategoryItemToTreeItem\n} from \"./helpers\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nimport { KB_OBJECT, STATUS_REGEXP_KEY } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/icon\",\n \"components/tree-view\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst NOTICE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"notice\",\n colorType: \"on-elevation\"\n});\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"primary\"\n});\n\nconst GEMINI_TOOLS_SETTINGS = getIconPath({\n category: \"gemini-tools\",\n name: \"settings\",\n colorType: \"primary\"\n});\n\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\n\nconst CHECKBOX_ALL_CHECKED_VALUE = \"allChecked\";\nconst CHECKBOX_ALL_UNCHECKED_VALUE = \"allUnchecked\";\n\n@Component({\n tag: \"gx-ide-kb-manager-import\",\n styleUrl: \"kb-manager-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-import\"]\n})\nexport class GxIdeKbManagerImport {\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 #selectedObjectsInFileIds: string[] = [];\n\n @Element() el: HTMLGxIdeKbManagerImportElement;\n\n #fileInputEl!: HTMLChEditElement;\n #fileInputHiddenEl!: HTMLInputElement;\n #objectsTreeEl!: HTMLChTreeViewRenderElement;\n #successItemsIds: Set<string> = new Set();\n #warningItemsIds: Set<string> = new Set();\n #errorItemsIds: Set<string> = new Set();\n // #categoryItemMap maps a category id, with the name and icon.\n // required for the \"import status\" tree.\n #categoryItemMap: CategoryItemMap = new Map();\n #objectCategoryItemMap: ObjectCategoryItemMap = new Map();\n #importedCategoryData: ImportCategoryData[];\n\n @State() selectAllCheckboxValue: string;\n @State() selectAllCheckboxIndeterminate: boolean = false;\n @State() importStatusMessage: string;\n @State() importTreeState: TreeViewItemModel[] = [];\n @State() importedTreeFilterRegExp: RegExp;\n @Watch(\"importTreeState\")\n importTreeStateChanged() {\n // this.#filterImportedHandler();\n }\n @State() importingIsInProcess = false;\n @State() importTreeFilterList: string[] = [];\n @State() noImport: boolean;\n @State() noObjects: boolean = true;\n @State() objectsTreeModel: TreeViewItemModel[] = [];\n @State() showHiddenImportsMessage = false;\n @State() someStatusVisible: boolean;\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n\n @Watch(\"importTreeState\")\n watchImportTreeStateHandler() {\n this.#evaluateImport();\n if (this.noImport) {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n } else {\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.importedButHidden;\n }\n }\n @Watch(\"objectsTreeModel\")\n watchObjectsTreeModelHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !newState || newState.length === 0;\n }\n\n /**\n * Callback invoked when user wants to cancel the export process.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * Callback invoked when user wants to initiate the import process.\n */\n @Prop() readonly importCallback!: ImportCallback;\n\n /**\n * Callback invoked when user wants to load the xpz information\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Displays status buttons (errors, warning, succeeded) with minimal UI (no captions)\n */\n @Prop() readonly objectContextMenuCallback!: ObjectContextMenuCallback;\n\n /**\n * Callback invoked when user wants to access the export options.\n */\n @Prop() readonly optionsCallback!: OptionsCallback;\n\n /**\n * Imported xml or xps file name\n */\n @Prop({ mutable: true }) selectedFile: File;\n @Watch(\"selectedFile\")\n selectedFileChanged(newFile: File) {\n if (newFile) {\n this.#loadFileHandler(newFile);\n }\n }\n\n /**\n * Displays status buttons (error, warning, success) with minimal UI (no captions).\n */\n @Prop() readonly statusMinimal = false;\n\n /**\n * Emitted once just after the component is fully loaded.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * Emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n componentDidLoad() {\n this.#fileInputEl.focus();\n }\n\n componentDidRender() {}\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n // this.#evaluateObjects();\n this.#evaluateImport();\n this.importStatusMessage =\n this.#componentLocale.main.importStatus.noImportedFiles;\n this.#evaluateImportStatusMessage();\n }\n\n /**\n * Add the result of importing an item\n */\n @Method()\n async addResultItem(item: ImportItemResultData) {\n this.importTreeState = addImportItemResultDataItem(\n item,\n this.#categoryItemMap,\n this.#objectCategoryItemMap,\n this.importTreeState\n );\n this.statusInfo[item.status].number++;\n this.#updateStatusItemsState();\n }\n\n #cancelImportHandler = () => {\n this.cancelCallback();\n };\n\n #clearStatusHandler = () => {\n this.importTreeState = [];\n this.statusInfo.error.number = 0;\n this.statusInfo.warning.number = 0;\n this.statusInfo.success.number = 0;\n };\n\n #evaluateImport = () => {\n this.noImport = !!(\n this.importTreeState?.length === 0 || !this.importTreeState\n );\n };\n\n #evaluateImportStatusMessage = () => {\n this.someStatusVisible =\n this.statusInfo.error.display ||\n this.statusInfo.warning.display ||\n this.statusInfo.success.display;\n };\n\n #importObjectsHandler = async () => {\n /* first clear imported objects (this clears errors/warnings/success counts as well)*/\n this.#clearStatusHandler();\n /* then do the import*/\n this.importingIsInProcess = true;\n\n /*\n Process checked objects manually, considering lazy loading. \n Example: \n 1. The \"Attributes\" category is lazy-loaded and marked as checked. \n 2. The user runs the import without expanding the node. \n 3. No attribute objects appear as checked, since lazy load was not triggered. \n 4. Still, all attribute objects must be included, because the category itself is checked. \n\n This avoids forcing users to expand nodes just to select objects. \n Large categories are not expanded by default to improve performance, which is crucial \n for very large imports (1000+ objects). \n */\n const checkedObjectsIds:string[] = [];\n for(let category of this.#objectsTreeEl.model) {\n if (category.items?.length > 0) {\n for(let obj of category.items) {\n if (obj.checked)\n checkedObjectsIds.push(obj.id);\n }\n }\n else if (category.lazy && category.checked) {\n const categoryData = this.#importedCategoryData.find(cat => cat.id == category.id);\n for(let obj of categoryData.items) {\n checkedObjectsIds.push(obj.id);\n }\n }\n }\n this.importCallback(checkedObjectsIds).then(() => {\n this.importingIsInProcess = false;\n });\n };\n\n #loadFileHandler = async (file: File) => {\n this.#importedCategoryData = await this.loadCallback(file);\n this.#categoryItemMap.clear();\n this.#objectCategoryItemMap.clear();\n\n this.#importedCategoryData.forEach(category => {\n this.#categoryItemMap.set(category.id, {\n name: category.name,\n icon: category.icon\n });\n category.items.forEach(object => {\n this.#objectCategoryItemMap.set(object.id, category.id);\n });\n });\n\n const importCategoryTreeData =\n convertImportCategoryDataToTreeView(this.#importedCategoryData);\n this.objectsTreeModel = importCategoryTreeData;\n };\n\n #lazyLoadTreeItems = async (treeItemId: string) => {\n const category = this.#importedCategoryData.find(cat => cat.id === treeItemId);\n return category && category.items.length > 0 ? \n convertImportCategoryItemToTreeItem(category.icon, category.items) : \n [];\n }\n\n #objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const allItems = event.detail;\n const checkedItemIds: string[] = [];\n const pendingCheckedItemIds: string[] = [];\n const checkedObjectsIds: string[] = [];\n allItems.forEach(item => {\n if (item.item.checked) {\n checkedItemIds.push(item.item.id);\n if (item.item.lazy && !item.item.items)\n pendingCheckedItemIds.push(item.item.id);\n }\n if (item.item.checked && item.item.metadata === KB_OBJECT) {\n checkedObjectsIds.push(item.item.id);\n }\n });\n\n for(let pendingCheckedItemId of pendingCheckedItemIds) {\n const category = this.#importedCategoryData.find(cat => cat.id === pendingCheckedItemId);\n if (category) {\n for(let item of category.items) {\n if (checkedObjectsIds.indexOf(item.id) < 0)\n checkedObjectsIds.push(item.id);\n }\n }\n }\n\n // Evaluate \"Select All / Unselect All\" checkbox state\n if (allItems.size === checkedItemIds.length) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_CHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else if (checkedItemIds.length === 0) {\n this.selectAllCheckboxValue = CHECKBOX_ALL_UNCHECKED_VALUE;\n this.selectAllCheckboxIndeterminate = false;\n } else {\n this.selectAllCheckboxIndeterminate = true;\n }\n };\n\n #objectsTreeContextMenuHandler = (\n event: CustomEvent<TreeViewItemContextMenu>\n ) => {\n if (event.detail.metadata === KB_OBJECT) {\n this.objectContextMenuCallback(\"imported\", {\n selection: this.#selectedObjectsInFileIds,\n clientX: event.detail.contextmenuEvent.screenX,\n clientY: event.detail.contextmenuEvent.screenY\n });\n }\n };\n\n #objectsTreeSelectedItemsChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.#selectedObjectsInFileIds = event.detail.map(item => item.item.id);\n };\n\n #optionsHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns boolean\n }\n };\n\n #removeFileSelection = () => {\n this.selectedFile = null;\n this.#fileInputHiddenEl.value = null;\n };\n\n #selectFileInputHandler = () => {\n this.#fileInputHiddenEl.click();\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 }\n };\n\n #statusButtonsSelectionChangedHandler = (\n event: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = event.detail;\n const statuses: Status[] = [];\n\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n\n if (errorIndex !== -1) {\n statuses.push(\"error\");\n }\n if (warningIndex !== -1) {\n statuses.push(\"warning\");\n }\n if (successIndex !== -1) {\n statuses.push(\"success\");\n }\n\n let pattern = `\"${STATUS_REGEXP_KEY}\":\"\"`;\n if (statuses.length) {\n const statusOptions = statuses.join(\"|\");\n pattern = `\"${STATUS_REGEXP_KEY}\":\"(${statusOptions})\"`;\n }\n this.importedTreeFilterRegExp = new RegExp(pattern, \"i\");\n\n // Update statusInfo for the status-buttons\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n\n this.#evaluateImportStatusMessage();\n };\n\n #toggleSelectionClickHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n if (this.#objectsTreeEl) {\n const checked = event.detail === CHECKBOX_ALL_CHECKED_VALUE;\n this.#objectsTreeEl.updateAllItemsProperties({ checked: checked });\n }\n };\n\n #updateStatusItemsState = () => {\n this.#errorItemsIds.clear();\n this.#warningItemsIds.clear();\n this.#successItemsIds.clear();\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (child.metadata === \"error\") {\n this.#errorItemsIds.add(child.id);\n }\n if (child.metadata === \"warning\") {\n this.#warningItemsIds.add(child.id);\n }\n if (child.metadata === \"success\") {\n this.#successItemsIds.add(child.id);\n }\n });\n });\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header\n // header\n class=\"field-group control-header-with-border header header-two-cols spacing-body-block-start spacing-body-inline\"\n slot=\"header\"\n >\n <div\n // select a file\n class=\"field field-inline\"\n >\n <label class=\"label\" htmlFor=\"file-name\">\n {this.#componentLocale.header.fileNameLabel}\n </label>\n <ch-edit\n autoFocus\n id=\"file-name\"\n class=\"input\"\n part=\"file-name\"\n type=\"text\"\n readonly\n value={this.selectedFile?.name}\n placeholder={this.#componentLocale.header.fileNamePlaceholder}\n startImgSrc={FILE_ICON}\n ref={(el: HTMLChEditElement) =>\n (this.#fileInputEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n <input\n hidden\n type=\"file\"\n accept=\".xpz, .xml\"\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n </div>\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 onClick={this.#removeFileSelection}\n >\n <ch-image class=\"icon-md\" src={MENU_DELETE}></ch-image>\n </button>\n\n <button\n // select file\n id=\"select-file-load-button\"\n class=\"button-primary\"\n part=\"select-file-load-button\"\n onClick={this.#selectFileInputHandler}\n disabled={this.importingIsInProcess}\n >\n {this.#componentLocale.header.selectFileButton}\n </button>\n </div>\n </header>\n\n <section\n // objects in file\n class=\"objects-in-file__section\"\n >\n <h2 class=\"control-header control-header-with-border control-header__objects-in-file subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.objectsInFile.title}\n </h2>\n\n <div class=\"field-group objects-in-file__main\">\n {!this.noObjects ? (\n <ch-tree-view-render\n // objects in file tree\n showLines=\"last\"\n class=\"tree-view tree-view-import\"\n model={this.objectsTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n lazyLoadTreeItemsCallback={this.#lazyLoadTreeItems}\n onCheckedItemsChange={\n this.#objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={\n this.#objectsTreeSelectedItemsChangedHandler\n }\n onItemContextmenu={this.#objectsTreeContextMenuHandler}\n ref={(el: HTMLChTreeViewRenderElement) =>\n (this.#objectsTreeEl = el as HTMLChTreeViewRenderElement)\n }\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateTitle={\n this.#componentLocale.main.objectsInFile.noObjects\n }\n key=\"no-objects-empty-state\"\n >\n <button\n // begin by selecting a file\n class=\"button-secondary\"\n onClick={this.#selectFileInputHandler}\n >\n {this.#componentLocale.main.objectsInFile.selectFile}\n </button>\n </gx-ide-empty-state>\n )}\n\n <footer class=\"field-group objects-in-file__footer spacing-body-inline\">\n <ch-checkbox\n // select all / unselect all checkbox\n id=\"select-all-checkbox\"\n class=\"checkbox create-data-in-kb\"\n checkedValue={CHECKBOX_ALL_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_ALL_UNCHECKED_VALUE}\n caption={\n this.#componentLocale.main.objectsInFile.selectUnselect\n }\n value={this.selectAllCheckboxValue}\n onInput={this.#toggleSelectionClickHandler}\n disabled={\n this.importingIsInProcess ||\n this.objectsTreeModel.length === 0\n }\n part=\"select-all-checkbox\"\n ></ch-checkbox>\n\n <div class=\"buttons-spacer\">\n <button\n // import objects button\n id=\"import-btn\"\n class=\"button-primary \"\n onClick={this.#importObjectsHandler}\n disabled={\n this.objectsTreeModel?.length === 0 ||\n this.importingIsInProcess\n }\n >\n {this.#componentLocale.main.objectsInFile.importButton}\n </button>\n\n <button\n // cancel-import button\n id=\"cancel-import-btn\"\n class=\"button-secondary \"\n onClick={this.#cancelImportHandler}\n disabled={!this.importingIsInProcess}\n part=\"cancel-import-button\"\n >\n {this.#componentLocale.main.objectsInFile.cancelButton}\n </button>\n\n <button\n // settings/options button\n id=\"select-kb-btn\"\n class=\"button-tertiary button-icon-only\"\n part=\"select-kb-btn\"\n onClick={this.#optionsHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={GEMINI_TOOLS_SETTINGS}\n ></ch-image>\n </button>\n </div>\n </footer>\n </div>\n </section>\n\n <section\n // import status\n class=\"import-status__section\"\n >\n <h2 class=\"control-header control-header-with-border control-header__import-status subtitle-regular-xs\t text-align-center spacing-body-inline\">\n {this.#componentLocale.main.importStatus.title}\n </h2>\n\n <div class=\"field-group import-status__main\">\n {!this.noImport && this.someStatusVisible ? (\n <ch-tree-view-render\n // import status tree\n model={this.importTreeState}\n toggleCheckboxes={true}\n showLines=\"last\"\n class=\"tree-view tree-view-import\"\n filter={this.importedTreeFilterRegExp}\n filterType=\"metadata\"\n filterOptions={{\n autoExpand: true,\n hideMatchesAndShowNonMatches: false\n }}\n ></ch-tree-view-render>\n ) : (\n <gx-ide-empty-state\n isAnimated={false}\n stateIconSrc={NOTICE_ICON}\n stateTitle={this.importStatusMessage}\n key=\"no-objects-empty-state\"\n ></gx-ide-empty-state>\n )}\n\n <footer class=\"import-status__footer spacing-body-inline\">\n <button\n // clear status button\n class=\"button-secondary import-clear-status-btn\"\n onClick={this.#clearStatusHandler}\n disabled={this.noImport || this.importingIsInProcess}\n part=\"clear-status-btn\"\n >\n {this.#componentLocale.main.importStatus.clearButton}\n </button>\n </footer>\n </div>\n </section>\n\n <footer\n // footer\n class=\"footer\"\n >\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n minimal={this.statusMinimal}\n onSelectionChanged={this.#statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </section>\n </Host>\n );\n }\n}\nexport type CancelCallback = () => Promise<boolean>;\n\nexport type ImportCallback = (itemIds: string[]) => Promise<boolean>;\n\nexport type ImportItemData = {\n id: string;\n name: string;\n};\n\nexport type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;\n\nexport type ObjectContextMenuCallback = (\n tree: ObjectsSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ObjectsSourceType = \"in-file\" | \"imported\";\n\nexport type OptionsCallback = () => Promise<void>;\n\nexport interface SelectedObject {\n itemId: string;\n subItemsIds: string[];\n}\n\nexport type StatusItemsState = {\n error: string[];\n warning: string[];\n success: string[];\n};\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type CategoryItemMap = Map<string, CategoryItemMapValue>;\nexport type CategoryItemMapValue = { name: string; icon: string };\nexport type ObjectCategoryItemMap = Map<string, string>;\nexport type Status = \"success\" | \"error\" | \"warning\";\n"],"mappings":"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"}