@genexus/genexus-ide-ui 1.1.56 → 1.1.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/dist/cjs/assets-manager-089e91b1.js +7 -0
  2. package/dist/cjs/assets-manager-089e91b1.js.map +1 -0
  3. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +8 -4
  4. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  5. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +8 -4
  6. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  7. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +12 -16
  8. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -1
  9. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +8 -4
  10. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  11. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +6 -2
  12. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +6 -2
  14. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +6 -2
  16. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-design-import.cjs.entry.js +11 -7
  18. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js +6 -2
  20. package/dist/cjs/gx-ide-details-acknowledgements.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +7 -3
  22. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-file-item.cjs.entry.js +9 -5
  24. package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +6 -2
  26. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  27. package/dist/cjs/gx-ide-json-import.cjs.entry.js +7 -3
  28. package/dist/cjs/gx-ide-json-import.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +10 -6
  30. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +9 -5
  32. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +7 -3
  34. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  35. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +6 -2
  36. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  37. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +7 -3
  38. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  39. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +7 -3
  40. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +8 -4
  42. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +6 -2
  44. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-references.cjs.entry.js +7 -3
  46. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +263 -20
  48. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +7 -3
  50. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +9 -5
  52. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -2
  54. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gx-ide-splash.cjs.entry.js +6 -2
  56. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -5
  58. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gx-ide-starting-template.cjs.entry.js +6 -2
  60. package/dist/cjs/gx-ide-starting-template.cjs.entry.js.map +1 -1
  61. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +14 -10
  62. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +7 -3
  64. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +10 -6
  66. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +6 -2
  68. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  69. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +17 -13
  70. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  71. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +6 -2
  72. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  73. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +6 -2
  74. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  75. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +8 -4
  76. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  77. package/dist/cjs/index.cjs.js +0 -3
  78. package/dist/cjs/index.cjs.js.map +1 -1
  79. package/dist/cjs/mer-animated-dots-001c7465.js +79 -0
  80. package/dist/cjs/mer-animated-dots-001c7465.js.map +1 -0
  81. package/dist/cjs/{tabular-grid-render-b1767da2.js → tabular-grid-render-f97a5ab3.js} +18 -14
  82. package/dist/cjs/tabular-grid-render-f97a5ab3.js.map +1 -0
  83. package/dist/cjs/{utilities-0e316b39.js → utilities-0815a260.js} +10 -6
  84. package/dist/cjs/utilities-0815a260.js.map +1 -0
  85. package/dist/collection/components/chat/chat-container/chat-container.js +2 -10
  86. package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -1
  87. package/dist/collection/index.js +0 -2
  88. package/dist/collection/index.js.map +1 -1
  89. package/dist/collection/showcase/chat-container/callbacks.js +9 -9
  90. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  91. package/dist/collection/showcase/chat-container/chat.showcase.js +4 -4
  92. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  93. package/dist/collection/showcase/chat-container/models.js +18 -18
  94. package/dist/collection/showcase/chat-container/models.js.map +1 -1
  95. package/dist/components/chat-container.js +6 -11
  96. package/dist/components/chat-container.js.map +1 -1
  97. package/dist/components/chat-welcome.js +4 -1
  98. package/dist/components/chat-welcome.js.map +1 -1
  99. package/dist/components/entity-selector.js +4 -1
  100. package/dist/components/entity-selector.js.map +1 -1
  101. package/dist/components/file-item.js +4 -1
  102. package/dist/components/file-item.js.map +1 -1
  103. package/dist/components/gx-ide-bpm-app-declaration.js +4 -1
  104. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  105. package/dist/components/gx-ide-bpm-task-documents.js +4 -1
  106. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  107. package/dist/components/gx-ide-create-kb-from-server.js +4 -1
  108. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  109. package/dist/components/gx-ide-current-user-info.js +4 -1
  110. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  111. package/dist/components/gx-ide-data-selector.js +4 -1
  112. package/dist/components/gx-ide-data-selector.js.map +1 -1
  113. package/dist/components/gx-ide-data-type-selector.js +4 -1
  114. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  115. package/dist/components/gx-ide-design-import.js +4 -1
  116. package/dist/components/gx-ide-design-import.js.map +1 -1
  117. package/dist/components/gx-ide-details-acknowledgements.js +4 -1
  118. package/dist/components/gx-ide-details-acknowledgements.js.map +1 -1
  119. package/dist/components/gx-ide-file-uploader.js +4 -1
  120. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  121. package/dist/components/gx-ide-json-import.js +4 -1
  122. package/dist/components/gx-ide-json-import.js.map +1 -1
  123. package/dist/components/gx-ide-kb-manager-export.js +4 -1
  124. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  125. package/dist/components/gx-ide-kb-manager-import.js +4 -1
  126. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  127. package/dist/components/gx-ide-manage-module-references.js +4 -1
  128. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  129. package/dist/components/gx-ide-new-kb.js +4 -1
  130. package/dist/components/gx-ide-new-kb.js.map +1 -1
  131. package/dist/components/gx-ide-object-selector.js +4 -1
  132. package/dist/components/gx-ide-object-selector.js.map +1 -1
  133. package/dist/components/gx-ide-open-api-import.js +4 -1
  134. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  135. package/dist/components/gx-ide-plugin-details.js +4 -1
  136. package/dist/components/gx-ide-plugin-details.js.map +1 -1
  137. package/dist/components/gx-ide-plugin-explorer.js +4 -1
  138. package/dist/components/gx-ide-plugin-explorer.js.map +1 -1
  139. package/dist/components/gx-ide-references.js +4 -1
  140. package/dist/components/gx-ide-references.js.map +1 -1
  141. package/dist/components/gx-ide-sc-chat-container.js +263 -20
  142. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  143. package/dist/components/gx-ide-server-selector.js +4 -1
  144. package/dist/components/gx-ide-server-selector.js.map +1 -1
  145. package/dist/components/gx-ide-share-kb.js +4 -1
  146. package/dist/components/gx-ide-share-kb.js.map +1 -1
  147. package/dist/components/gx-ide-splash.js +4 -1
  148. package/dist/components/gx-ide-splash.js.map +1 -1
  149. package/dist/components/gx-ide-start-page.js +4 -1
  150. package/dist/components/gx-ide-start-page.js.map +1 -1
  151. package/dist/components/gx-ide-starting-template.js +4 -1
  152. package/dist/components/gx-ide-starting-template.js.map +1 -1
  153. package/dist/components/gx-ide-team-dev-bring-changes.js +4 -1
  154. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  155. package/dist/components/gx-ide-team-dev-history.js +4 -1
  156. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  157. package/dist/components/gx-ide-team-dev-update-partial-selection.js +4 -1
  158. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  159. package/dist/components/gx-ide-team-dev-update.js +4 -1
  160. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  161. package/dist/components/gx-ide-welcome-page.js +4 -1
  162. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  163. package/dist/components/gx-ide-ww-attributes.js +4 -1
  164. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  165. package/dist/components/gx-ide-ww-files.js +4 -1
  166. package/dist/components/gx-ide-ww-files.js.map +1 -1
  167. package/dist/components/index.js +0 -1
  168. package/dist/components/index.js.map +1 -1
  169. package/dist/components/mer-animated-dots.js +81 -0
  170. package/dist/components/mer-animated-dots.js.map +1 -0
  171. package/dist/components/select-kb-items.js +4 -1
  172. package/dist/components/select-kb-items.js.map +1 -1
  173. package/dist/components/tabular-grid-render.js +4 -1
  174. package/dist/components/tabular-grid-render.js.map +1 -1
  175. package/dist/components/utilities.js +4 -1
  176. package/dist/components/utilities.js.map +1 -1
  177. package/dist/esm/assets-manager-7d6fc08f.js +5 -0
  178. package/dist/esm/assets-manager-7d6fc08f.js.map +1 -0
  179. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +5 -1
  180. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  181. package/dist/esm/gx-ide-bpm-task-documents.entry.js +5 -1
  182. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  183. package/dist/esm/gx-ide-chat-container_2.entry.js +7 -11
  184. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -1
  185. package/dist/esm/gx-ide-create-kb-from-server.entry.js +5 -1
  186. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  187. package/dist/esm/gx-ide-current-user-info.entry.js +5 -1
  188. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  189. package/dist/esm/gx-ide-data-selector.entry.js +5 -1
  190. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  191. package/dist/esm/gx-ide-data-type-selector.entry.js +5 -1
  192. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  193. package/dist/esm/gx-ide-design-import.entry.js +5 -1
  194. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  195. package/dist/esm/gx-ide-details-acknowledgements.entry.js +5 -1
  196. package/dist/esm/gx-ide-details-acknowledgements.entry.js.map +1 -1
  197. package/dist/esm/gx-ide-entity-selector.entry.js +5 -1
  198. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  199. package/dist/esm/gx-ide-file-item.entry.js +5 -1
  200. package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
  201. package/dist/esm/gx-ide-file-uploader.entry.js +5 -1
  202. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  203. package/dist/esm/gx-ide-json-import.entry.js +5 -1
  204. package/dist/esm/gx-ide-json-import.entry.js.map +1 -1
  205. package/dist/esm/gx-ide-kb-manager-export.entry.js +5 -1
  206. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  207. package/dist/esm/gx-ide-kb-manager-import.entry.js +5 -1
  208. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  209. package/dist/esm/gx-ide-manage-module-references.entry.js +5 -1
  210. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  211. package/dist/esm/gx-ide-new-kb.entry.js +5 -1
  212. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  213. package/dist/esm/gx-ide-object-selector.entry.js +5 -1
  214. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  215. package/dist/esm/gx-ide-open-api-import.entry.js +5 -1
  216. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  217. package/dist/esm/gx-ide-plugin-details.entry.js +5 -1
  218. package/dist/esm/gx-ide-plugin-details.entry.js.map +1 -1
  219. package/dist/esm/gx-ide-plugin-explorer.entry.js +5 -1
  220. package/dist/esm/gx-ide-plugin-explorer.entry.js.map +1 -1
  221. package/dist/esm/gx-ide-references.entry.js +5 -1
  222. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  223. package/dist/esm/gx-ide-sc-chat-container.entry.js +263 -20
  224. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  225. package/dist/esm/gx-ide-select-kb-items.entry.js +5 -1
  226. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  227. package/dist/esm/gx-ide-server-selector.entry.js +5 -1
  228. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  229. package/dist/esm/gx-ide-share-kb.entry.js +5 -1
  230. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  231. package/dist/esm/gx-ide-splash.entry.js +5 -1
  232. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  233. package/dist/esm/gx-ide-start-page.entry.js +5 -1
  234. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  235. package/dist/esm/gx-ide-starting-template.entry.js +5 -1
  236. package/dist/esm/gx-ide-starting-template.entry.js.map +1 -1
  237. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +7 -3
  238. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  239. package/dist/esm/gx-ide-team-dev-commit.entry.js +7 -3
  240. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  241. package/dist/esm/gx-ide-team-dev-history.entry.js +6 -2
  242. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  243. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +5 -1
  244. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  245. package/dist/esm/gx-ide-team-dev-update.entry.js +7 -3
  246. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  247. package/dist/esm/gx-ide-welcome-page.entry.js +5 -1
  248. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  249. package/dist/esm/gx-ide-ww-attributes.entry.js +5 -1
  250. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  251. package/dist/esm/gx-ide-ww-files.entry.js +5 -1
  252. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  253. package/dist/esm/index.js +0 -2
  254. package/dist/esm/index.js.map +1 -1
  255. package/dist/esm/mer-animated-dots-75d88f7e.js +77 -0
  256. package/dist/esm/mer-animated-dots-75d88f7e.js.map +1 -0
  257. package/dist/esm/{tabular-grid-render-96d67a8c.js → tabular-grid-render-2fca02f4.js} +7 -3
  258. package/dist/esm/tabular-grid-render-2fca02f4.js.map +1 -0
  259. package/dist/esm/{utilities-6624d90e.js → utilities-0cdc28eb.js} +6 -2
  260. package/dist/esm/utilities-0cdc28eb.js.map +1 -0
  261. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  262. package/dist/genexus-ide-ui/index.esm.js +0 -2
  263. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  264. package/dist/genexus-ide-ui/{p-2ce60f4c.entry.js → p-02883452.entry.js} +28 -20
  265. package/dist/genexus-ide-ui/{p-2ce60f4c.entry.js.map → p-02883452.entry.js.map} +1 -1
  266. package/dist/genexus-ide-ui/{p-c5eac770.entry.js → p-0548097b.entry.js} +10 -2
  267. package/dist/genexus-ide-ui/{p-c5eac770.entry.js.map → p-0548097b.entry.js.map} +1 -1
  268. package/dist/genexus-ide-ui/{p-64dbc4c0.entry.js → p-082780cc.entry.js} +10 -2
  269. package/dist/genexus-ide-ui/{p-64dbc4c0.entry.js.map → p-082780cc.entry.js.map} +1 -1
  270. package/dist/genexus-ide-ui/{p-9ac4aaa0.entry.js → p-1baf026c.entry.js} +16 -8
  271. package/dist/genexus-ide-ui/{p-9ac4aaa0.entry.js.map → p-1baf026c.entry.js.map} +1 -1
  272. package/dist/genexus-ide-ui/{p-098a7288.entry.js → p-1d647672.entry.js} +19 -11
  273. package/dist/genexus-ide-ui/{p-098a7288.entry.js.map → p-1d647672.entry.js.map} +1 -1
  274. package/dist/genexus-ide-ui/{p-13630aa2.entry.js → p-1e1d2672.entry.js} +51 -43
  275. package/dist/genexus-ide-ui/{p-13630aa2.entry.js.map → p-1e1d2672.entry.js.map} +1 -1
  276. package/dist/genexus-ide-ui/{p-b6a75c44.entry.js → p-207a698a.entry.js} +57 -49
  277. package/dist/genexus-ide-ui/{p-b6a75c44.entry.js.map → p-207a698a.entry.js.map} +1 -1
  278. package/dist/genexus-ide-ui/{p-d18c51fe.entry.js → p-2726ab59.entry.js} +18 -10
  279. package/dist/genexus-ide-ui/{p-d18c51fe.entry.js.map → p-2726ab59.entry.js.map} +1 -1
  280. package/dist/genexus-ide-ui/{p-0c5b7e75.entry.js → p-27633aae.entry.js} +10 -2
  281. package/dist/genexus-ide-ui/{p-0c5b7e75.entry.js.map → p-27633aae.entry.js.map} +1 -1
  282. package/dist/genexus-ide-ui/{p-2fe7ffc8.entry.js → p-28c11aff.entry.js} +32 -24
  283. package/dist/genexus-ide-ui/{p-2fe7ffc8.entry.js.map → p-28c11aff.entry.js.map} +1 -1
  284. package/dist/genexus-ide-ui/{p-3b955964.entry.js → p-2a51ea80.entry.js} +10 -2
  285. package/dist/genexus-ide-ui/{p-3b955964.entry.js.map → p-2a51ea80.entry.js.map} +1 -1
  286. package/dist/genexus-ide-ui/{p-1056dfe7.entry.js → p-336bb2ce.entry.js} +28 -20
  287. package/dist/genexus-ide-ui/{p-1056dfe7.entry.js.map → p-336bb2ce.entry.js.map} +1 -1
  288. package/dist/genexus-ide-ui/{p-ac026635.entry.js → p-364e8ecb.entry.js} +16 -8
  289. package/dist/genexus-ide-ui/{p-ac026635.entry.js.map → p-364e8ecb.entry.js.map} +1 -1
  290. package/dist/genexus-ide-ui/{p-1d044bf5.entry.js → p-4548ae72.entry.js} +17 -9
  291. package/dist/genexus-ide-ui/{p-1d044bf5.entry.js.map → p-4548ae72.entry.js.map} +1 -1
  292. package/dist/genexus-ide-ui/{p-80e49324.entry.js → p-46bb921b.entry.js} +36 -28
  293. package/dist/genexus-ide-ui/{p-80e49324.entry.js.map → p-46bb921b.entry.js.map} +1 -1
  294. package/dist/genexus-ide-ui/{p-11a60dbe.entry.js → p-506760d7.entry.js} +10 -2
  295. package/dist/genexus-ide-ui/{p-11a60dbe.entry.js.map → p-506760d7.entry.js.map} +1 -1
  296. package/dist/genexus-ide-ui/p-6e29711e.entry.js +608 -0
  297. package/dist/genexus-ide-ui/p-6e29711e.entry.js.map +1 -0
  298. package/dist/genexus-ide-ui/{p-7b986243.entry.js → p-71d4d3dd.entry.js} +32 -24
  299. package/dist/genexus-ide-ui/{p-7b986243.entry.js.map → p-71d4d3dd.entry.js.map} +1 -1
  300. package/dist/genexus-ide-ui/{p-891faf90.entry.js → p-77c315d9.entry.js} +28 -20
  301. package/dist/genexus-ide-ui/{p-891faf90.entry.js.map → p-77c315d9.entry.js.map} +1 -1
  302. package/dist/genexus-ide-ui/{p-18bbaa49.entry.js → p-7c95f511.entry.js} +16 -8
  303. package/dist/genexus-ide-ui/{p-18bbaa49.entry.js.map → p-7c95f511.entry.js.map} +1 -1
  304. package/dist/genexus-ide-ui/{p-eedb407c.entry.js → p-7e3cccf7.entry.js} +10 -2
  305. package/dist/genexus-ide-ui/{p-eedb407c.entry.js.map → p-7e3cccf7.entry.js.map} +1 -1
  306. package/dist/genexus-ide-ui/{p-410a35da.entry.js → p-8925fc99.entry.js} +40 -32
  307. package/dist/genexus-ide-ui/{p-410a35da.entry.js.map → p-8925fc99.entry.js.map} +1 -1
  308. package/dist/genexus-ide-ui/{p-072419f9.entry.js → p-94f74c12.entry.js} +18 -10
  309. package/dist/genexus-ide-ui/{p-072419f9.entry.js.map → p-94f74c12.entry.js.map} +1 -1
  310. package/dist/genexus-ide-ui/{p-d24c1115.entry.js → p-97f6438c.entry.js} +67 -59
  311. package/dist/genexus-ide-ui/{p-d24c1115.entry.js.map → p-97f6438c.entry.js.map} +1 -1
  312. package/dist/genexus-ide-ui/{p-9270c80f.entry.js → p-981873da.entry.js} +114 -118
  313. package/dist/genexus-ide-ui/p-981873da.entry.js.map +1 -0
  314. package/dist/genexus-ide-ui/{p-17b54532.entry.js → p-99b1dfd7.entry.js} +39 -31
  315. package/dist/genexus-ide-ui/{p-17b54532.entry.js.map → p-99b1dfd7.entry.js.map} +1 -1
  316. package/dist/genexus-ide-ui/{p-e1d0adf6.entry.js → p-9f7c347c.entry.js} +24 -16
  317. package/dist/genexus-ide-ui/{p-e1d0adf6.entry.js.map → p-9f7c347c.entry.js.map} +1 -1
  318. package/dist/genexus-ide-ui/{p-eacc81c8.entry.js → p-a28c2a64.entry.js} +122 -114
  319. package/dist/genexus-ide-ui/{p-eacc81c8.entry.js.map → p-a28c2a64.entry.js.map} +1 -1
  320. package/dist/genexus-ide-ui/{p-cccd6565.entry.js → p-a73db549.entry.js} +10 -2
  321. package/dist/genexus-ide-ui/{p-cccd6565.entry.js.map → p-a73db549.entry.js.map} +1 -1
  322. package/dist/genexus-ide-ui/{p-547fbde8.entry.js → p-be1ceb01.entry.js} +28 -20
  323. package/dist/genexus-ide-ui/{p-547fbde8.entry.js.map → p-be1ceb01.entry.js.map} +1 -1
  324. package/dist/genexus-ide-ui/{p-7adb9d1f.entry.js → p-c133095b.entry.js} +78 -70
  325. package/dist/genexus-ide-ui/{p-7adb9d1f.entry.js.map → p-c133095b.entry.js.map} +1 -1
  326. package/dist/genexus-ide-ui/{p-a58048e9.entry.js → p-c1c3996c.entry.js} +12 -4
  327. package/dist/genexus-ide-ui/{p-a58048e9.entry.js.map → p-c1c3996c.entry.js.map} +1 -1
  328. package/dist/genexus-ide-ui/{p-7551c2e9.entry.js → p-c426a3e7.entry.js} +22 -14
  329. package/dist/genexus-ide-ui/{p-7551c2e9.entry.js.map → p-c426a3e7.entry.js.map} +1 -1
  330. package/dist/genexus-ide-ui/{p-4f88fecd.entry.js → p-d12739cf.entry.js} +17 -9
  331. package/dist/genexus-ide-ui/{p-4f88fecd.entry.js.map → p-d12739cf.entry.js.map} +1 -1
  332. package/dist/genexus-ide-ui/{p-c8270f7d.js → p-d3ee56a4.js} +45 -37
  333. package/dist/genexus-ide-ui/{p-c8270f7d.js.map → p-d3ee56a4.js.map} +1 -1
  334. package/dist/genexus-ide-ui/p-d42e842b.js +7 -0
  335. package/dist/genexus-ide-ui/p-d42e842b.js.map +1 -0
  336. package/dist/genexus-ide-ui/{p-401bfc97.js → p-d4ecd3bb.js} +9366 -7152
  337. package/dist/genexus-ide-ui/p-d4ecd3bb.js.map +1 -0
  338. package/dist/genexus-ide-ui/{p-48e87e4f.entry.js → p-de6e9132.entry.js} +71 -63
  339. package/dist/genexus-ide-ui/{p-48e87e4f.entry.js.map → p-de6e9132.entry.js.map} +1 -1
  340. package/dist/genexus-ide-ui/{p-05fa08d7.entry.js → p-e4e3a7af.entry.js} +19 -11
  341. package/dist/genexus-ide-ui/{p-05fa08d7.entry.js.map → p-e4e3a7af.entry.js.map} +1 -1
  342. package/dist/genexus-ide-ui/{p-a24571ca.js → p-ea4b35b6.js} +19 -11
  343. package/dist/genexus-ide-ui/{p-a24571ca.js.map → p-ea4b35b6.js.map} +1 -1
  344. package/dist/genexus-ide-ui/{p-bd0ffc08.entry.js → p-f47b08c5.entry.js} +44 -36
  345. package/dist/genexus-ide-ui/{p-bd0ffc08.entry.js.map → p-f47b08c5.entry.js.map} +1 -1
  346. package/dist/types/index.d.ts +0 -2
  347. package/package.json +9 -8
  348. package/dist/cjs/MERCURY_ASSETS-f14e91ff.js +0 -9
  349. package/dist/cjs/MERCURY_ASSETS-f14e91ff.js.map +0 -1
  350. package/dist/cjs/render-item.lit-3f18e009.js +0 -329
  351. package/dist/cjs/render-item.lit-3f18e009.js.map +0 -1
  352. package/dist/cjs/tabular-grid-render-b1767da2.js.map +0 -1
  353. package/dist/cjs/utilities-0e316b39.js.map +0 -1
  354. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/chat-lit.css +0 -376
  355. package/dist/collection/components/chat/lit-custom-render/actions.lit.js +0 -27
  356. package/dist/collection/components/chat/lit-custom-render/actions.lit.js.map +0 -1
  357. package/dist/collection/components/chat/lit-custom-render/code-block.lit.js +0 -46
  358. package/dist/collection/components/chat/lit-custom-render/code-block.lit.js.map +0 -1
  359. package/dist/collection/components/chat/lit-custom-render/dots-animation.js +0 -61
  360. package/dist/collection/components/chat/lit-custom-render/dots-animation.js.map +0 -1
  361. package/dist/collection/components/chat/lit-custom-render/render-item.lit.js +0 -122
  362. package/dist/collection/components/chat/lit-custom-render/render-item.lit.js.map +0 -1
  363. package/dist/collection/components/chat/lit-custom-render/spinner-animation.js +0 -58
  364. package/dist/collection/components/chat/lit-custom-render/spinner-animation.js.map +0 -1
  365. package/dist/collection/components/chat/lit-custom-render/types.js +0 -2
  366. package/dist/collection/components/chat/lit-custom-render/types.js.map +0 -1
  367. package/dist/collection/components/chat/lit-custom-render/utils.js +0 -50
  368. package/dist/collection/components/chat/lit-custom-render/utils.js.map +0 -1
  369. package/dist/components/MERCURY_ASSETS.js +0 -7
  370. package/dist/components/MERCURY_ASSETS.js.map +0 -1
  371. package/dist/components/render-item.lit.js +0 -327
  372. package/dist/components/render-item.lit.js.map +0 -1
  373. package/dist/esm/MERCURY_ASSETS-ccf43ae3.js +0 -7
  374. package/dist/esm/MERCURY_ASSETS-ccf43ae3.js.map +0 -1
  375. package/dist/esm/render-item.lit-449f2946.js +0 -327
  376. package/dist/esm/render-item.lit-449f2946.js.map +0 -1
  377. package/dist/esm/tabular-grid-render-96d67a8c.js.map +0 -1
  378. package/dist/esm/utilities-6624d90e.js.map +0 -1
  379. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/chat-lit.css +0 -376
  380. package/dist/genexus-ide-ui/p-401bfc97.js.map +0 -1
  381. package/dist/genexus-ide-ui/p-8d6f2b4f.entry.js +0 -359
  382. package/dist/genexus-ide-ui/p-8d6f2b4f.entry.js.map +0 -1
  383. package/dist/genexus-ide-ui/p-9270c80f.entry.js.map +0 -1
  384. package/dist/genexus-ide-ui/p-fd4f9904.js +0 -955
  385. package/dist/genexus-ide-ui/p-fd4f9904.js.map +0 -1
  386. package/dist/types/components/chat/lit-custom-render/actions.lit.d.ts +0 -2
  387. package/dist/types/components/chat/lit-custom-render/code-block.lit.d.ts +0 -2
  388. package/dist/types/components/chat/lit-custom-render/dots-animation.d.ts +0 -5
  389. package/dist/types/components/chat/lit-custom-render/render-item.lit.d.ts +0 -3
  390. package/dist/types/components/chat/lit-custom-render/spinner-animation.d.ts +0 -5
  391. package/dist/types/components/chat/lit-custom-render/types.d.ts +0 -4
  392. package/dist/types/components/chat/lit-custom-render/utils.d.ts +0 -23
@@ -1 +1 @@
1
- {"version":3,"names":["serverSelectorCss","CSS_BUNDLES","INFO_ICON","getIconPath","category","name","colorType","LOCK_ICON","LANGUAGE_ICON","GxIdeServerSelector","_GxIdeServerSelector_chSearchIcon","set","this","_GxIdeServerSelector_versionsSelect","value","caption","_GxIdeServerSelector__componentLocale","_GxIdeServerSelector_chGridRecentlyUsedServersEl","_GxIdeServerSelector_chGridConnectedServersEl","_GxIdeServerSelector_previousSelectedRowId","_GxIdeServerSelector_selectedRowId","_GxIdeServerSelector_serverUrlEL","_GxIdeServerSelector_serverFriendlyNameEL","_GxIdeServerSelector_cancelHandler","cancelCallback","_GxIdeServerSelector_confirmHandler","async","formSubmitResult","selectedConnectionType","selectServerCallback","uri","selectedServerUri","selectedServerName","serverUrlInputValue","serverNameInputValue","validatableControls","validateControls","_GxIdeServerSelector_evaluateTooltipRender","controlReference","_b","_a","get","id","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeServerSelector_initializeValidatableControls","__classPrivateFieldGet","forEach","validatableControl","reference","undefined","_GxIdeServerSelector_filterValueChangedHandler","event","filterValue","detail","toLowerCase","filteredConnectedServersData","connectedServersData","filter","item","serverName","includes","_GxIdeServerSelector_inputHandler","field","enableConfirmButton","controlId","clearControlError","_GxIdeServerSelector_enableConfirmButton","call","length","_GxIdeServerSelector_onConnectedServersRowDoubleClickHandler","_GxIdeServerSelector_selectConnectedServersHandler","_GxIdeServerSelector_onRecentlyUsedRowDoubleClickHandler","_GxIdeServerSelector_selectRecentlyUsedServersHandler","_GxIdeServerSelector_handleServerSelection","recentlyUsedServersData","serversData","otherGridEl","isFirstSelection","__classPrivateFieldSet","rowId","selectedServer","find","server","serverUrl","userName","gxServerUsername","selectRow","_GxIdeServerSelector_connectionTypeChangedHandler","_GxIdeServerSelector_sortTabularGridColumnCallback","e","sortTabularGridColumn","_GxIdeServerSelector_renderTabularGridColumnSet","hideColumnName","columnId","columnName","settingable","columnNameHidden","size","tabularGrid","colSize","maxContent","resizable","sortable","onColumnSortChanged","auto","_GxIdeServerSelector_renderTooltip","text","_GxIdeServerSelector_renderTabularGridCommonCells","_GxIdeServerSelector_renderIcon","accessLevel","isConnected","_GxIdeServerSelector_renderRecentlyUsedServersGrid","rowSelectionMode","ref","el","allowColumnReorder","onRowClicked","onRowDoubleClicked","map","rowid","stateIconSrc","stateTitle","emptyConnectedServers","isAnimated","_GxIdeServerSelector_renderConnectedServersGrid","icon","src","_GxIdeServerSelector_renderFooter","isSelectionMode","onClick","footer","cancel","disabled","confirm","Map","componentWillLoad","Locale","getComponentStrings","componentDidRender","render","connectionTypeClass","recentlyUsedEmptyClass","Host","model","header","title","onChange","startImgSrc","onInput","placeholder","placeholders","searchServers","accessibleName","type","htmlFor","recentlyUsed","allServers","labels","maxLength"],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n overflow: auto;\n border-inline: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// Recently Used\n\n.tabular-grid-recently-used .tabular-grid-column::part(bar) {\n --grid-cell__padding-block: 0;\n --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.tabular-grid-recently-used {\n border-block-end: 1px solid var(--grid-cell__border-color);\n max-block-size: 100px;\n}\n\n// All Servers\n\n.tabular-grid-all-servers {\n overflow: auto;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n.tabular-grid-all-servers {\n border-block: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n\n// WA: .tabular-grid-wrapper and .border-patch is a WA. See details on Asana task:\n// https://app.asana.com/1/10206720691358/project/1207081021030105/task/1211391456974726?focus=true\n.tabular-grid-wrapper {\n position: relative;\n overflow: auto;\n}\n.border-patch {\n --tabular-grid-border-radius: 4px;\n position: absolute;\n top: 0;\n inline-size: calc(100% - var(--tabular-grid-border-radius) * 2);\n inset-inline-start: var(--tabular-grid-border-radius);\n block-size: 2px;\n background-color: var(--items-container__bg-color);\n z-index: 9999;\n border-block-start: 1px solid var(--mer-border-color__on-surface);\n}\n\n.tooltip {\n position: absolute;\n}\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n clearControlError,\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nimport sortTabularGridColumn from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"select\", caption: \"Select a server from the list below\" },\n { value: \"new\", caption: \"Enter a server URL manually\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n\n #chGridRecentlyUsedServersEl: HTMLChTabularGridElement;\n #chGridConnectedServersEl: HTMLChTabularGridElement;\n #previousSelectedRowId: string | undefined;\n #selectedRowId: string | undefined;\n #serverUrlEL: HTMLChEditElement;\n #serverFriendlyNameEL: HTMLChEditElement;\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * State to track if this is the first selection made by the user.\n */\n @State() isFirstSelection: boolean = true;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredConnectedServersData: ConnectedGXServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The list of connected GX servers.\n */\n @Prop({ mutable: true }) connectedServersData: ConnectedGXServerData[] = [];\n\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ConnectedGXServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin,\n connectionOption: ConnectionOption\n ) => Promise<FormSubmitResult>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedServerUri = this.connectedServersData[0]?.serverUrl;\n this.userName = this.connectedServersData[0]?.gxServerUsername;\n\n this.filteredConnectedServersData = this.connectedServersData;\n }\n\n componentDidRender() {\n if (\n this.selectedConnectionType === \"new\" &&\n this.#serverUrlEL &&\n this.#serverFriendlyNameEL\n ) {\n this.#initializeValidatableControls();\n }\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void> => {\n let formSubmitResult: FormSubmitResult;\n if (this.selectedConnectionType === \"select\") {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.selectedServerUri,\n name: this.selectedServerName\n },\n this.selectedConnectionType\n );\n } else {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n },\n this.selectedConnectionType\n );\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#serverUrlEL,\n this.#serverFriendlyNameEL\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredConnectedServersData = this.connectedServersData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = event.detail as string;\n\n const controlId =\n field === \"serverUrlInputValue\" ? \"server-url\" : \"server-name\";\n clearControlError(this.validatableControls, controlId);\n this.#enableConfirmButton();\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #onConnectedServersRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n this.#selectConnectedServersHandler(event);\n this.#confirmHandler();\n };\n\n #onRecentlyUsedRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n this.#selectRecentlyUsedServersHandler(event);\n this.#confirmHandler();\n };\n\n #selectConnectedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.connectedServersData,\n this.#chGridRecentlyUsedServersEl\n );\n\n #selectRecentlyUsedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.recentlyUsedServersData,\n this.#chGridConnectedServersEl\n );\n\n #handleServerSelection = async (\n event: CustomEvent<TabularGridRowClickedEvent>,\n serversData: ConnectedGXServerData[],\n otherGridEl: HTMLChTabularGridElement\n ): Promise<void> => {\n if (!this.isFirstSelection) {\n this.#previousSelectedRowId = this.#selectedRowId;\n }\n this.#selectedRowId = event.detail.rowId;\n if (this.#selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n } else {\n const selectedServer = serversData.find(\n server => server.id === this.#selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.isFirstSelection = false;\n await otherGridEl?.selectRow(this.#previousSelectedRowId, false);\n }\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n this.filteredConnectedServersData = [\n ...sortTabularGridColumn(\n e,\n this.filteredConnectedServersData,\n \"string\",\n undefined\n )\n ];\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n columnName=\"Username\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"status\"\n class=\"tabular-grid-column\"\n columnName=\"Status\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderTabularGridCommonCells = (server: ConnectedGXServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(server.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-name\">\n {server.serverName}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-url\">\n {server.serverUrl}\n {this.#renderTooltip(server.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {server.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell text-neutral-gray-400 body-italic-s\">\n {server.isConnected && \"Connected\"}\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderRecentlyUsedServersGrid = (hideColumnName: boolean): Element => {\n return (\n <ch-tabular-grid\n class={\"tabular-grid-recently-used tabular-grid\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridRecentlyUsedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectRecentlyUsedServersHandler}\n onRowDoubleClicked={this.#onRecentlyUsedRowDoubleClickHandler}\n id=\"recently-used-servers\"\n >\n {this.#renderTabularGridColumnSet(hideColumnName)}\n {this.recentlyUsedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.recentlyUsedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row rowid={server.id} class=\"tabular-grid-row\">\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #renderConnectedServersGrid = (): Element => {\n return (\n <div class=\"tabular-grid-wrapper\">\n <div class=\"border-patch\"></div>\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridConnectedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectConnectedServersHandler}\n onRowDoubleClicked={this.#onConnectedServersRowDoubleClickHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredConnectedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredConnectedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row\n rowid={server.id}\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n const connectionTypeClass =\n this.selectedConnectionType === \"new\" && \"new-connection\";\n const recentlyUsedEmptyClass =\n this.recentlyUsedServersData.length === 0 && \"recently-used-empty\";\n return (\n <Host\n class={`widget elevation-1 ${connectionTypeClass} ${recentlyUsedEmptyClass}`}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n {this.selectedConnectionType === \"select\" && [\n this.recentlyUsedServersData.length > 0 && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n {this.#renderRecentlyUsedServersGrid(true)}\n </div>\n ),\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderConnectedServersGrid()}\n </div>\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class=\"input\"\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverUrlEL)}\n </div>\n\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ref={el =>\n (this.#serverFriendlyNameEL = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverFriendlyNameEL)}\n </div>\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ConnectedGXServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["serverSelectorCss","CSS_BUNDLES","INFO_ICON","getIconPath","category","name","colorType","LOCK_ICON","LANGUAGE_ICON","GxIdeServerSelector","_GxIdeServerSelector_chSearchIcon","set","this","_GxIdeServerSelector_versionsSelect","value","caption","_GxIdeServerSelector__componentLocale","_GxIdeServerSelector_chGridRecentlyUsedServersEl","_GxIdeServerSelector_chGridConnectedServersEl","_GxIdeServerSelector_previousSelectedRowId","_GxIdeServerSelector_selectedRowId","_GxIdeServerSelector_serverUrlEL","_GxIdeServerSelector_serverFriendlyNameEL","_GxIdeServerSelector_cancelHandler","cancelCallback","_GxIdeServerSelector_confirmHandler","async","formSubmitResult","selectedConnectionType","selectServerCallback","uri","selectedServerUri","selectedServerName","serverUrlInputValue","serverNameInputValue","validatableControls","validateControls","_GxIdeServerSelector_evaluateTooltipRender","controlReference","_b","_a","get","id","hasError","_c","message","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeServerSelector_initializeValidatableControls","__classPrivateFieldGet","forEach","validatableControl","reference","undefined","_GxIdeServerSelector_filterValueChangedHandler","event","filterValue","detail","toLowerCase","filteredConnectedServersData","connectedServersData","filter","item","serverName","includes","_GxIdeServerSelector_inputHandler","field","enableConfirmButton","controlId","clearControlError","_GxIdeServerSelector_enableConfirmButton","call","length","_GxIdeServerSelector_onConnectedServersRowDoubleClickHandler","_GxIdeServerSelector_selectConnectedServersHandler","_GxIdeServerSelector_onRecentlyUsedRowDoubleClickHandler","_GxIdeServerSelector_selectRecentlyUsedServersHandler","_GxIdeServerSelector_handleServerSelection","recentlyUsedServersData","serversData","otherGridEl","isFirstSelection","__classPrivateFieldSet","rowId","selectedServer","find","server","serverUrl","userName","gxServerUsername","selectRow","_GxIdeServerSelector_connectionTypeChangedHandler","_GxIdeServerSelector_sortTabularGridColumnCallback","e","sortTabularGridColumn","_GxIdeServerSelector_renderTabularGridColumnSet","hideColumnName","columnId","columnName","settingable","columnNameHidden","size","tabularGrid","colSize","maxContent","resizable","sortable","onColumnSortChanged","auto","_GxIdeServerSelector_renderTooltip","text","_GxIdeServerSelector_renderTabularGridCommonCells","_GxIdeServerSelector_renderIcon","accessLevel","isConnected","_GxIdeServerSelector_renderRecentlyUsedServersGrid","rowSelectionMode","ref","el","allowColumnReorder","onRowClicked","onRowDoubleClicked","map","rowid","stateIconSrc","stateTitle","emptyConnectedServers","isAnimated","_GxIdeServerSelector_renderConnectedServersGrid","icon","src","_GxIdeServerSelector_renderFooter","isSelectionMode","onClick","footer","cancel","disabled","confirm","Map","componentWillLoad","Locale","getComponentStrings","componentDidRender","render","connectionTypeClass","recentlyUsedEmptyClass","Host","model","header","title","onChange","startImgSrc","onInput","placeholder","placeholders","searchServers","accessibleName","type","htmlFor","recentlyUsed","allServers","labels","maxLength"],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n overflow: auto;\n border-inline: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// Recently Used\n\n.tabular-grid-recently-used .tabular-grid-column::part(bar) {\n --grid-cell__padding-block: 0;\n --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.tabular-grid-recently-used {\n border-block-end: 1px solid var(--grid-cell__border-color);\n max-block-size: 100px;\n}\n\n// All Servers\n\n.tabular-grid-all-servers {\n overflow: auto;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n.tabular-grid-all-servers {\n border-block: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n\n// WA: .tabular-grid-wrapper and .border-patch is a WA. See details on Asana task:\n// https://app.asana.com/1/10206720691358/project/1207081021030105/task/1211391456974726?focus=true\n.tabular-grid-wrapper {\n position: relative;\n overflow: auto;\n}\n.border-patch {\n --tabular-grid-border-radius: 4px;\n position: absolute;\n top: 0;\n inline-size: calc(100% - var(--tabular-grid-border-radius) * 2);\n inset-inline-start: var(--tabular-grid-border-radius);\n block-size: 2px;\n background-color: var(--items-container__bg-color);\n z-index: 9999;\n border-block-start: 1px solid var(--mer-border-color__on-surface);\n}\n\n.tooltip {\n position: absolute;\n}\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n clearControlError,\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nimport sortTabularGridColumn from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"select\", caption: \"Select a server from the list below\" },\n { value: \"new\", caption: \"Enter a server URL manually\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n\n #chGridRecentlyUsedServersEl: HTMLChTabularGridElement;\n #chGridConnectedServersEl: HTMLChTabularGridElement;\n #previousSelectedRowId: string | undefined;\n #selectedRowId: string | undefined;\n #serverUrlEL: HTMLChEditElement;\n #serverFriendlyNameEL: HTMLChEditElement;\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * State to track if this is the first selection made by the user.\n */\n @State() isFirstSelection: boolean = true;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredConnectedServersData: ConnectedGXServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The list of connected GX servers.\n */\n @Prop({ mutable: true }) connectedServersData: ConnectedGXServerData[] = [];\n\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ConnectedGXServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin,\n connectionOption: ConnectionOption\n ) => Promise<FormSubmitResult>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedServerUri = this.connectedServersData[0]?.serverUrl;\n this.userName = this.connectedServersData[0]?.gxServerUsername;\n\n this.filteredConnectedServersData = this.connectedServersData;\n }\n\n componentDidRender() {\n if (\n this.selectedConnectionType === \"new\" &&\n this.#serverUrlEL &&\n this.#serverFriendlyNameEL\n ) {\n this.#initializeValidatableControls();\n }\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void> => {\n let formSubmitResult: FormSubmitResult;\n if (this.selectedConnectionType === \"select\") {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.selectedServerUri,\n name: this.selectedServerName\n },\n this.selectedConnectionType\n );\n } else {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n },\n this.selectedConnectionType\n );\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#serverUrlEL,\n this.#serverFriendlyNameEL\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredConnectedServersData = this.connectedServersData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = event.detail as string;\n\n const controlId =\n field === \"serverUrlInputValue\" ? \"server-url\" : \"server-name\";\n clearControlError(this.validatableControls, controlId);\n this.#enableConfirmButton();\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #onConnectedServersRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n this.#selectConnectedServersHandler(event);\n this.#confirmHandler();\n };\n\n #onRecentlyUsedRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n this.#selectRecentlyUsedServersHandler(event);\n this.#confirmHandler();\n };\n\n #selectConnectedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.connectedServersData,\n this.#chGridRecentlyUsedServersEl\n );\n\n #selectRecentlyUsedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.recentlyUsedServersData,\n this.#chGridConnectedServersEl\n );\n\n #handleServerSelection = async (\n event: CustomEvent<TabularGridRowClickedEvent>,\n serversData: ConnectedGXServerData[],\n otherGridEl: HTMLChTabularGridElement\n ): Promise<void> => {\n if (!this.isFirstSelection) {\n this.#previousSelectedRowId = this.#selectedRowId;\n }\n this.#selectedRowId = event.detail.rowId;\n if (this.#selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n } else {\n const selectedServer = serversData.find(\n server => server.id === this.#selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.isFirstSelection = false;\n await otherGridEl?.selectRow(this.#previousSelectedRowId, false);\n }\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n this.filteredConnectedServersData = [\n ...sortTabularGridColumn(\n e,\n this.filteredConnectedServersData,\n \"string\",\n undefined\n )\n ];\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n columnName=\"Username\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"status\"\n class=\"tabular-grid-column\"\n columnName=\"Status\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderTabularGridCommonCells = (server: ConnectedGXServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(server.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-name\">\n {server.serverName}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-url\">\n {server.serverUrl}\n {this.#renderTooltip(server.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {server.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell text-neutral-gray-400 body-italic-s\">\n {server.isConnected && \"Connected\"}\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderRecentlyUsedServersGrid = (hideColumnName: boolean): Element => {\n return (\n <ch-tabular-grid\n class={\"tabular-grid-recently-used tabular-grid\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridRecentlyUsedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectRecentlyUsedServersHandler}\n onRowDoubleClicked={this.#onRecentlyUsedRowDoubleClickHandler}\n id=\"recently-used-servers\"\n >\n {this.#renderTabularGridColumnSet(hideColumnName)}\n {this.recentlyUsedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.recentlyUsedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row rowid={server.id} class=\"tabular-grid-row\">\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #renderConnectedServersGrid = (): Element => {\n return (\n <div class=\"tabular-grid-wrapper\">\n <div class=\"border-patch\"></div>\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridConnectedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectConnectedServersHandler}\n onRowDoubleClicked={this.#onConnectedServersRowDoubleClickHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredConnectedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredConnectedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row\n rowid={server.id}\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n const connectionTypeClass =\n this.selectedConnectionType === \"new\" && \"new-connection\";\n const recentlyUsedEmptyClass =\n this.recentlyUsedServersData.length === 0 && \"recently-used-empty\";\n return (\n <Host\n class={`widget elevation-1 ${connectionTypeClass} ${recentlyUsedEmptyClass}`}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n {this.selectedConnectionType === \"select\" && [\n this.recentlyUsedServersData.length > 0 && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n {this.#renderRecentlyUsedServersGrid(true)}\n </div>\n ),\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderConnectedServersGrid()}\n </div>\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class=\"input\"\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverUrlEL)}\n </div>\n\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ref={el =>\n (this.#serverFriendlyNameEL = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverFriendlyNameEL)}\n </div>\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ConnectedGXServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"mappings":"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"}
@@ -1,6 +1,14 @@
1
1
  import { r as t, h as i, H as e, a } from "./p-97107ecc.js";
2
2
 
3
- import { g as s } from "./p-401bfc97.js";
3
+ import { g as s } 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 { c as r } from "./p-9a03ac9f.js";
6
14
 
@@ -8,7 +16,7 @@ import { f as l } from "./p-1972b953.js";
8
16
 
9
17
  import { L as n } from "./p-311eedf3.js";
10
18
 
11
- import { r as o, a as c } from "./p-a24571ca.js";
19
+ import { r as o, a as c } from "./p-ea4b35b6.js";
12
20
 
13
21
  const mapObjectTypeToComboBoxItemModel = t => t.map((t => ({
14
22
  value: t.id,
@@ -43,7 +51,7 @@ var u = undefined && undefined.__classPrivateFieldSet || function(t, i, e, a, s)
43
51
  return a === "a" ? s.call(t, e) : s ? s.value = e : i.set(t, e), e;
44
52
  };
45
53
 
46
- var f, m, g, p, b, v, w, y, x, k, _, M, W, C, j, z, T, E, F;
54
+ var f, m, g, p, b, v, w, y, x, k, _, M, W, j, C, z, T, E, F;
47
55
 
48
56
  const I = [ "resets/box-sizing", "utils/form--full", "utils/layout", "utils/spacing", "utils/typography", "chameleon/scrollbar", "components/tabular-grid", "components/accordion", "components/sidebar" ];
49
57
 
@@ -121,18 +129,18 @@ const $ = class {
121
129
  h(this, k, "f").addEventListener("contextmenu", (t => {
122
130
  t.preventDefault();
123
131
  t.stopPropagation();
124
- h(this, C, "f").call(this, t);
132
+ h(this, j, "f").call(this, t);
125
133
  }));
126
134
  }
127
135
  }));
128
- C.set(this, (async t => {
136
+ j.set(this, (async t => {
129
137
  this.gridContextMenuCallback({
130
138
  selection: [ this.selectedRevisionId ],
131
139
  clientX: t.clientX,
132
140
  clientY: t.clientY
133
141
  });
134
142
  }));
135
- j.set(this, (() => {
143
+ C.set(this, (() => {
136
144
  this.filtersHidden = !this.filtersHidden;
137
145
  }));
138
146
  z.set(this, (() => {
@@ -375,7 +383,7 @@ const $ = class {
375
383
  "aria-label": h(this, f, "f").searchFilter.filterAriaLabel,
376
384
  "aria-expanded": this.filtersHidden ? "false" : "true",
377
385
  "aria-controls": "filters-container",
378
- onClick: () => h(this, j, "f").call(this)
386
+ onClick: () => h(this, C, "f").call(this)
379
387
  }, i("ch-image", {
380
388
  class: "icon-md",
381
389
  src: L
@@ -488,10 +496,10 @@ const $ = class {
488
496
 
489
497
  f = new WeakMap, m = new WeakMap, g = new WeakMap, p = new WeakMap, b = new WeakMap,
490
498
  v = new WeakMap, w = new WeakMap, y = new WeakMap, x = new WeakMap, k = new WeakMap,
491
- _ = new WeakMap, M = new WeakMap, W = new WeakMap, C = new WeakMap, j = new WeakMap,
499
+ _ = new WeakMap, M = new WeakMap, W = new WeakMap, j = new WeakMap, C = new WeakMap,
492
500
  z = new WeakMap, T = new WeakMap, E = new WeakMap, F = new WeakMap;
493
501
 
494
502
  $.style = d;
495
503
 
496
504
  export { $ as gx_ide_team_dev_history };
497
- //# sourceMappingURL=p-4f88fecd.entry.js.map
505
+ //# sourceMappingURL=p-d12739cf.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","startImgSrc","icon","hasActiveNode","node","active","Array","isArray","nodes","some","hasActiveVersionInList","versionsList","historyCss","CSS_BUNDLES","FILTER_ICON_PRIMARY","getIconPath","category","colorType","FILTER_ICON","RESET_ICON","SEARCH_ICON","GxIdeTeamDevHistory","_GxIdeTeamDevHistory__componentLocale","set","this","_GxIdeTeamDevHistory_types","_GxIdeTeamDevHistory_fromEl","_GxIdeTeamDevHistory_revisionEl","_GxIdeTeamDevHistory_searchEl","_GxIdeTeamDevHistory_toEl","_GxIdeTeamDevHistory_typesEl","_GxIdeTeamDevHistory_userEl","_GxIdeTeamDevHistory_sidebarEl","_GxIdeTeamDevHistory_revisionsGridEl","_GxIdeTeamDevHistory_getObjectsFromVersion","async","versionId","isRefresh","loading","filters","search","__classPrivateFieldGet","from","Date","to","revision","user","type","objects","loadCallback","_GxIdeTeamDevHistory_getSelectedRevision","call","_a","error","versions","historyDetail","selectedRevisionId","revisionId","loadDetailCallback","title","_GxIdeTeamDevHistory_formatHistoryDetailDate","_GxIdeTeamDevHistory_registerGridContextMenuListener","addEventListener","ev","preventDefault","stopPropagation","_GxIdeTeamDevHistory_gridContextMenuCallbackHandler","gridContextMenuCallback","selection","clientX","clientY","_GxIdeTeamDevHistory_toggleFiltersHandler","filtersHidden","_GxIdeTeamDevHistory_renderCommitsGrid","tabularGridEmpty","length","h","class","onSelectionChanged","detail","rowsId","ref","el","__classPrivateFieldSet","selectRow","mainGrid","columns","settingable","size","comment","commitDate","obj","rowid","key","formatDate","stateTitle","emptyRevisionsText","isAnimated","_GxIdeTeamDevHistory_renderAffectedObjectsGrid","iterable","_b","affectedObjectsGrid","config","tabularGrid","colSize","maxContent","types","description","auto","action","renderObjectTypeWithIcon","renderObjectStateWithIcon","state","stateIconSrc","emptyHistoryDetailText","_GxIdeTeamDevHistory_renderLoader","loaderTitle","loader","show","parts","split","datePart","formattedDate","selectedVersionIdChanged","newSelectedVersionId","oldSelectedVersionId","versionsListChanged","newVersionsList","hasActiveVersion","selectedVersionId","isFirstLoad","componentWillLoad","Locale","getComponentStrings","componentDidLoad","e","sidebarExpanded","render","Host","model","expanded","expandButtonCollapseAccessibleName","sidebar","collapseAriaLabel","expandButtonExpandAccessibleName","expandAriaLabel","showExpandButton","checkboxType","itemsList","expandOnClick","selectionChanged","selectedVersionChangeCallback","itemContextMenuCallback","htmlFor","part","searchFilter","filterAriaLabel","onClick","src","reloadAriaLabel","inert","hidden","accessibleName","multiline","autoGrow","readonly"],"sources":["src/components/team-dev/history/helpers.ts","src/components/team-dev/history/history.scss?tag=gx-ide-team-dev-history&encapsulation=shadow","src/components/team-dev/history/history.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxItemModel[] =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n\nconst hasActiveNode = (node: any): boolean => {\n if (node.active) {\n return true;\n }\n if (Array.isArray(node.nodes)) {\n return node.nodes.some(hasActiveNode);\n }\n return false;\n};\n\nexport const hasActiveVersionInList = (versionsList: ItemNode[]): boolean => {\n return versionsList.some(hasActiveNode);\n};\n","@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n// TODO: this should be a class on Mercury.\n// Not sure if applying \".field-group\" is the right thing to do.\n$commonRowGap: var(--mer-spacing--sm);\n\n:host {\n display: grid;\n grid-template-columns: max-content 1fr;\n block-size: 100%;\n overflow: auto;\n}\n\n.sidebar {\n background-color: transparent !important; // TODO: Apply elevation classes on Mercury.\n border-inline-end: var(--section-common-border);\n}\n\n.sidebar::part(expand-button) {\n border-radius: var(--control__border-radius);\n}\n\ngx-ide-select-kb-items {\n --search-input-max-inline-size: 300px;\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\ngx-ide-select-kb-items.sidebar-expanded {\n opacity: 1;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.main {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-row-gap: $commonRowGap;\n overflow: auto;\n}\n.main__header {\n display: grid;\n}\n.main__content {\n position: relative;\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content 2fr;\n grid-row-gap: $commonRowGap;\n}\n\n.tabular-grid {\n overflow: auto;\n}\n\n/*SECOND GRID*/\n.search-filter {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--gx-ide-grid-column-gap);\n}\n\n.action-buttons {\n justify-self: flex-end;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n grid-template-areas:\n \"from from to to type type\"\n \"user user user revision revision revision\";\n grid-gap: var(--gx-ide-grid-column-gap);\n padding-block-start: $commonRowGap;\n}\n\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n\n.filters-container > div {\n overflow: hidden;\n}\n\n.field-from {\n grid-area: from;\n}\n\n.field-to {\n grid-area: to;\n}\n.field-type {\n grid-area: type;\n}\n.field-user {\n grid-area: user;\n}\n.field-revision {\n grid-area: revision;\n}\n\n// commits grid \"comment\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".commits-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// affected objects grid \"description\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".affected-objects-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","/* STENCIL IMPORTS */\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../../common/config\";\nimport { formatDate } from \"../../../common/helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../components\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\nimport {\n hasActiveVersionInList,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\nimport { ObjectState } from \"../version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\",\n \"components/accordion\",\n \"components/sidebar\"\n];\n\nconst FILTER_ICON_PRIMARY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-history\",\n styleUrl: \"history.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-history\"]\n})\nexport class GxIdeTeamDevHistory {\n #_componentLocale: any;\n\n #types: ComboBoxItemModel[] = [];\n\n @Element() el: HTMLGxIdeTeamDevHistoryElement;\n\n #fromEl?: HTMLChEditElement;\n #revisionEl?: HTMLChEditElement;\n #searchEl: HTMLChEditElement;\n #toEl?: HTMLChEditElement;\n #typesEl?: HTMLChComboBoxRenderElement;\n #userEl?: HTMLChEditElement;\n #sidebarEl: HTMLChSidebarElement;\n #revisionsGridEl: HTMLChTabularGridElement;\n\n @State() historyDetail: RevisionDetailData;\n\n /**\n * The files rendered in the table\n */\n @State() objects: RevisionData[] = [];\n\n /**\n * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.\n */\n @State() isFirstLoad: boolean = true;\n\n /**\n * Used to hide the select-kb-items when collapsed\n */\n @State() sidebarExpanded: boolean = true;\n\n /**\n * Used to show or hide the filters section\n */\n @State() filtersHidden = true;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * The Id of the selected revision in the revisions grid\n */\n @State() selectedRevisionId: string;\n\n /**\n * Used to customize the select-kb-items \"header\" part grid layout\n */\n @State() hasActiveVersion: boolean = false; // TODO:\n\n /**\n * Possible values of type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly gridContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * The Id of the selected version in the select-kb-items component\n */\n @Prop({ mutable: true }) selectedVersionId: string;\n @Watch(\"selectedVersionId\")\n async selectedVersionIdChanged(\n newSelectedVersionId: string,\n oldSelectedVersionId?: string\n ) {\n if (newSelectedVersionId === oldSelectedVersionId) {\n return;\n }\n\n // Reset filters\n this.#searchEl.value = null;\n this.#fromEl.value = null;\n this.#toEl.value = null;\n this.#revisionEl.value = null;\n this.#userEl.value = null;\n this.#typesEl.value = this.#types[0]?.value;\n\n await this.#getObjectsFromVersion(newSelectedVersionId, false);\n }\n\n /**\n * List of versions to show in the versions tree\n */\n @Prop({ mutable: true }) versions: ItemNode[];\n @Watch(\"versions\")\n async versionsListChanged(newVersionsList: ItemNode[]) {\n this.versions = newVersionsList;\n this.hasActiveVersion = hasActiveVersionInList(newVersionsList);\n\n if (\n newVersionsList.length > 0 &&\n this.selectedVersionId &&\n this.isFirstLoad\n ) {\n await this.#getObjectsFromVersion(this.selectedVersionId, false);\n this.isFirstLoad = false;\n } else if (newVersionsList.length === 0 && this.isFirstLoad) {\n this.loading = false;\n this.isFirstLoad = false;\n }\n }\n\n /**\n * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.\n\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id\n */\n @Prop() readonly loadDetailCallback: LoadDetailCallback;\n\n /**\n * Callback invoked when the selected version changes. As parameter receive the selected version id\n */\n @Prop() readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#types = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n this.#sidebarEl.addEventListener(\n \"expandedChange\",\n (e: CustomEvent<boolean>) => {\n this.sidebarExpanded = e.detail;\n }\n );\n }\n\n #getObjectsFromVersion = async (\n versionId: string,\n isRefresh: boolean\n ): Promise<void> => {\n this.loading = true;\n\n const filters: FiltersData = {\n search: this.#searchEl.value ? this.#searchEl.value : \"\",\n from: this.#fromEl.value ? new Date(this.#fromEl.value) : null,\n to: this.#toEl.value ? new Date(this.#toEl.value) : null,\n revision: this.#revisionEl.value ? this.#revisionEl.value : \"\",\n user: this.#userEl.value ? this.#userEl.value : \"\",\n type: this.#typesEl.value === \"all\" ? \"\" : this.#typesEl.value\n };\n try {\n this.objects = await this.loadCallback(filters, versionId, isRefresh);\n await this.#getSelectedRevision(this.objects[0]?.id);\n } catch (error) {\n this.versions = [];\n this.objects = [];\n this.historyDetail = null;\n this.selectedRevisionId = null;\n } finally {\n this.loading = false;\n }\n };\n\n #getSelectedRevision = async (revisionId: string) => {\n if (revisionId) {\n this.historyDetail = await this.loadDetailCallback(revisionId);\n this.historyDetail.title = this.#formatHistoryDetailDate(\n this.historyDetail.title\n );\n this.selectedRevisionId = revisionId;\n } else {\n this.historyDetail = null;\n }\n };\n\n #registerGridContextMenuListener = (): void => {\n if (this.#revisionsGridEl) {\n this.#revisionsGridEl.addEventListener(\n \"contextmenu\",\n (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#gridContextMenuCallbackHandler(ev);\n }\n );\n }\n };\n\n #gridContextMenuCallbackHandler = async (ev: MouseEvent): Promise<void> => {\n this.gridContextMenuCallback({\n selection: [this.selectedRevisionId],\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #renderCommitsGrid = (): Element => {\n const tabularGridEmpty = this.objects?.length === 0 || !this.objects;\n return (\n <ch-tabular-grid\n class={{\n \"commits-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n onSelectionChanged={(ev: any) => {\n this.objects.length > 0 &&\n this.#getSelectedRevision(ev.detail.rowsId[0]);\n }}\n ref={(el: HTMLChTabularGridElement) => {\n if (el && this.#revisionsGridEl !== el) {\n this.#revisionsGridEl = el as HTMLChTabularGridElement;\n\n this.#registerGridContextMenuListener();\n\n if (this.objects.length > 0) {\n this.#revisionsGridEl.selectRow(this.objects[0]?.id, true);\n }\n }\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.id}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.comment}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"1fr\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.user}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.commitDate}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: RevisionData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.id}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.comment}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.commitDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateTitle={this.#_componentLocale.emptyRevisionsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderAffectedObjectsGrid = (): Element => {\n const iterable = this.historyDetail ? this.historyDetail.objects : [];\n const tabularGridEmpty =\n this.historyDetail?.objects?.length === 0 || !this.historyDetail;\n return (\n <ch-tabular-grid\n class={{\n \"affected-objects-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.name\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.types\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.description\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.action\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.historyDetail && this.historyDetail.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {iterable.map((obj: ObjectData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(obj.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectStateWithIcon(obj.state)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyHistoryDetailText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderLoader = (): Element => {\n return (\n this.loading && (\n <div class=\"main__content scrollable\">\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n description={this.#_componentLocale.loader.description}\n ></gx-ide-loader>\n </div>\n )\n );\n };\n\n #formatHistoryDetailDate = (title: string): string => {\n const parts = title.split(\" - \");\n const datePart = new Date(parts[1]);\n const formattedDate = formatDate(datePart, \"date-time\");\n return `${parts[0]} - ${formattedDate} - ${parts[2]}`;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-sidebar\n ref={(el: HTMLChSidebarElement) =>\n (this.#sidebarEl = el as HTMLChSidebarElement)\n }\n class=\"sidebar\"\n expanded={this.sidebarExpanded}\n expandButtonCollapseAccessibleName={\n this.#_componentLocale.sidebar.collapseAriaLabel\n }\n expandButtonExpandAccessibleName={\n this.#_componentLocale.sidebar.expandAriaLabel\n }\n showExpandButton\n >\n <gx-ide-select-kb-items\n class={{\n \"sidebar-expanded\": this.sidebarExpanded,\n \"has-active-version\": this.hasActiveVersion\n }}\n checkboxType=\"none\"\n itemsList={this.versions}\n expandOnClick={false}\n selectionChanged={this.selectedVersionChangeCallback}\n itemContextMenuCallback={this.itemContextMenuCallback}\n ></gx-ide-select-kb-items>\n </ch-sidebar>\n\n <main class=\"main spacing-body-block-start spacing-body-inline\">\n <div class=\"main__header\">\n <div class=\"search-filter\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"search\">\n {this.#_componentLocale.filters.search}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n startImgSrc={SEARCH_ICON}\n part=\"search\"\n id=\"search\"\n ref={(el: HTMLChEditElement) =>\n (this.#searchEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={() => this.#toggleFiltersHandler()}\n >\n <ch-image class=\"icon-md\" src={FILTER_ICON_PRIMARY}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.reloadAriaLabel}\n onClick={() =>\n this.#getObjectsFromVersion(this.selectedVersionId, true)\n }\n part={this.#_componentLocale.searchFilter.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\n </div>\n\n <div\n id=\"filters-container\"\n aria-labelledby=\"filter-toggle-button\"\n class={{\n \"filters-container-visible\": !this.filtersHidden,\n \"filters-container\": true\n }}\n inert={this.filtersHidden}\n hidden={this.filtersHidden}\n >\n <div>\n <div class=\"filters-grid\">\n <div class=\"field field-block field-from\">\n <label class=\"label\" htmlFor=\"from\">\n {this.#_componentLocale.filters.from}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n part=\"from\"\n id=\"from\"\n ref={(el: HTMLChEditElement) =>\n (this.#fromEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-to\">\n <label class=\"label\" htmlFor=\"to\">\n {this.#_componentLocale.filters.to}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n id=\"to\"\n ref={(el: HTMLChEditElement) =>\n (this.#toEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filters.type}\n </label>\n\n <ch-combo-box-render\n accessibleName=\"types\"\n class=\"combo-box\"\n part=\"type\"\n model={this.#types}\n value={this.#types[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block field-user\">\n <label class=\"label\" htmlFor=\"user\">\n {this.#_componentLocale.filters.user}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"user\"\n class=\"input\"\n id=\"user\"\n ref={(el: HTMLChEditElement) =>\n (this.#userEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-revision\">\n <label class=\"label\" htmlFor=\"revision\">\n {this.#_componentLocale.filters.revision}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"revision\"\n class=\"input\"\n id=\"revision\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this.#renderLoader()}\n\n {!this.loading && (\n <div class=\"main__content scrollable\">\n {this.#renderCommitsGrid()}\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"comment-area\">\n {this.historyDetail ? this.historyDetail.title : null}\n </label>\n <ch-edit\n class=\"input comment-text-area\"\n value={this.historyDetail ? this.historyDetail.comment : null}\n multiline\n autoGrow\n readonly={true}\n part=\"comment-area\"\n id=\"comment-area\"\n ></ch-edit>\n </div>\n\n {this.#renderAffectedObjectsGrid()}\n </div>\n )}\n </main>\n </Host>\n );\n }\n}\n\n// Types\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type FiltersData = {\n search: string;\n from?: Date;\n to?: Date;\n user?: string;\n revision?: string;\n type?: string;\n};\nexport type RevisionData = {\n id: string;\n comment: string;\n user: string;\n commitDate: Date;\n};\n\nexport type RevisionDetailData = {\n title: string;\n comment: string;\n objects: ObjectData[];\n};\nexport type ObjectData = {\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: ObjectType;\n description: string;\n action: string;\n};\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string,\n isRefresh: boolean\n) => Promise<RevisionData[]>;\n\nexport type LoadDetailCallback = (\n revision: string\n) => Promise<RevisionDetailData>;\n\nexport type SelectedVersionChangeCallback = (\n selectedVersion: string[]\n) => Promise<void>;\n"],"mappings":"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"}
1
+ {"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","startImgSrc","icon","hasActiveNode","node","active","Array","isArray","nodes","some","hasActiveVersionInList","versionsList","historyCss","CSS_BUNDLES","FILTER_ICON_PRIMARY","getIconPath","category","colorType","FILTER_ICON","RESET_ICON","SEARCH_ICON","GxIdeTeamDevHistory","_GxIdeTeamDevHistory__componentLocale","set","this","_GxIdeTeamDevHistory_types","_GxIdeTeamDevHistory_fromEl","_GxIdeTeamDevHistory_revisionEl","_GxIdeTeamDevHistory_searchEl","_GxIdeTeamDevHistory_toEl","_GxIdeTeamDevHistory_typesEl","_GxIdeTeamDevHistory_userEl","_GxIdeTeamDevHistory_sidebarEl","_GxIdeTeamDevHistory_revisionsGridEl","_GxIdeTeamDevHistory_getObjectsFromVersion","async","versionId","isRefresh","loading","filters","search","__classPrivateFieldGet","from","Date","to","revision","user","type","objects","loadCallback","_GxIdeTeamDevHistory_getSelectedRevision","call","_a","error","versions","historyDetail","selectedRevisionId","revisionId","loadDetailCallback","title","_GxIdeTeamDevHistory_formatHistoryDetailDate","_GxIdeTeamDevHistory_registerGridContextMenuListener","addEventListener","ev","preventDefault","stopPropagation","_GxIdeTeamDevHistory_gridContextMenuCallbackHandler","gridContextMenuCallback","selection","clientX","clientY","_GxIdeTeamDevHistory_toggleFiltersHandler","filtersHidden","_GxIdeTeamDevHistory_renderCommitsGrid","tabularGridEmpty","length","h","class","onSelectionChanged","detail","rowsId","ref","el","__classPrivateFieldSet","selectRow","mainGrid","columns","settingable","size","comment","commitDate","obj","rowid","key","formatDate","stateTitle","emptyRevisionsText","isAnimated","_GxIdeTeamDevHistory_renderAffectedObjectsGrid","iterable","_b","affectedObjectsGrid","config","tabularGrid","colSize","maxContent","types","description","auto","action","renderObjectTypeWithIcon","renderObjectStateWithIcon","state","stateIconSrc","emptyHistoryDetailText","_GxIdeTeamDevHistory_renderLoader","loaderTitle","loader","show","parts","split","datePart","formattedDate","selectedVersionIdChanged","newSelectedVersionId","oldSelectedVersionId","versionsListChanged","newVersionsList","hasActiveVersion","selectedVersionId","isFirstLoad","componentWillLoad","Locale","getComponentStrings","componentDidLoad","e","sidebarExpanded","render","Host","model","expanded","expandButtonCollapseAccessibleName","sidebar","collapseAriaLabel","expandButtonExpandAccessibleName","expandAriaLabel","showExpandButton","checkboxType","itemsList","expandOnClick","selectionChanged","selectedVersionChangeCallback","itemContextMenuCallback","htmlFor","part","searchFilter","filterAriaLabel","onClick","src","reloadAriaLabel","inert","hidden","accessibleName","multiline","autoGrow","readonly"],"sources":["src/components/team-dev/history/helpers.ts","src/components/team-dev/history/history.scss?tag=gx-ide-team-dev-history&encapsulation=shadow","src/components/team-dev/history/history.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxItemModel[] =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n\nconst hasActiveNode = (node: any): boolean => {\n if (node.active) {\n return true;\n }\n if (Array.isArray(node.nodes)) {\n return node.nodes.some(hasActiveNode);\n }\n return false;\n};\n\nexport const hasActiveVersionInList = (versionsList: ItemNode[]): boolean => {\n return versionsList.some(hasActiveNode);\n};\n","@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n// TODO: this should be a class on Mercury.\n// Not sure if applying \".field-group\" is the right thing to do.\n$commonRowGap: var(--mer-spacing--sm);\n\n:host {\n display: grid;\n grid-template-columns: max-content 1fr;\n block-size: 100%;\n overflow: auto;\n}\n\n.sidebar {\n background-color: transparent !important; // TODO: Apply elevation classes on Mercury.\n border-inline-end: var(--section-common-border);\n}\n\n.sidebar::part(expand-button) {\n border-radius: var(--control__border-radius);\n}\n\ngx-ide-select-kb-items {\n --search-input-max-inline-size: 300px;\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\ngx-ide-select-kb-items.sidebar-expanded {\n opacity: 1;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.main {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-row-gap: $commonRowGap;\n overflow: auto;\n}\n.main__header {\n display: grid;\n}\n.main__content {\n position: relative;\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content 2fr;\n grid-row-gap: $commonRowGap;\n}\n\n.tabular-grid {\n overflow: auto;\n}\n\n/*SECOND GRID*/\n.search-filter {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--gx-ide-grid-column-gap);\n}\n\n.action-buttons {\n justify-self: flex-end;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n grid-template-areas:\n \"from from to to type type\"\n \"user user user revision revision revision\";\n grid-gap: var(--gx-ide-grid-column-gap);\n padding-block-start: $commonRowGap;\n}\n\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n\n.filters-container > div {\n overflow: hidden;\n}\n\n.field-from {\n grid-area: from;\n}\n\n.field-to {\n grid-area: to;\n}\n.field-type {\n grid-area: type;\n}\n.field-user {\n grid-area: user;\n}\n.field-revision {\n grid-area: revision;\n}\n\n// commits grid \"comment\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".commits-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// affected objects grid \"description\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".affected-objects-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","/* STENCIL IMPORTS */\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../../common/config\";\nimport { formatDate } from \"../../../common/helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../components\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\nimport {\n hasActiveVersionInList,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\nimport { ObjectState } from \"../version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\",\n \"components/accordion\",\n \"components/sidebar\"\n];\n\nconst FILTER_ICON_PRIMARY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-history\",\n styleUrl: \"history.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-history\"]\n})\nexport class GxIdeTeamDevHistory {\n #_componentLocale: any;\n\n #types: ComboBoxItemModel[] = [];\n\n @Element() el: HTMLGxIdeTeamDevHistoryElement;\n\n #fromEl?: HTMLChEditElement;\n #revisionEl?: HTMLChEditElement;\n #searchEl: HTMLChEditElement;\n #toEl?: HTMLChEditElement;\n #typesEl?: HTMLChComboBoxRenderElement;\n #userEl?: HTMLChEditElement;\n #sidebarEl: HTMLChSidebarElement;\n #revisionsGridEl: HTMLChTabularGridElement;\n\n @State() historyDetail: RevisionDetailData;\n\n /**\n * The files rendered in the table\n */\n @State() objects: RevisionData[] = [];\n\n /**\n * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.\n */\n @State() isFirstLoad: boolean = true;\n\n /**\n * Used to hide the select-kb-items when collapsed\n */\n @State() sidebarExpanded: boolean = true;\n\n /**\n * Used to show or hide the filters section\n */\n @State() filtersHidden = true;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * The Id of the selected revision in the revisions grid\n */\n @State() selectedRevisionId: string;\n\n /**\n * Used to customize the select-kb-items \"header\" part grid layout\n */\n @State() hasActiveVersion: boolean = false; // TODO:\n\n /**\n * Possible values of type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly gridContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * The Id of the selected version in the select-kb-items component\n */\n @Prop({ mutable: true }) selectedVersionId: string;\n @Watch(\"selectedVersionId\")\n async selectedVersionIdChanged(\n newSelectedVersionId: string,\n oldSelectedVersionId?: string\n ) {\n if (newSelectedVersionId === oldSelectedVersionId) {\n return;\n }\n\n // Reset filters\n this.#searchEl.value = null;\n this.#fromEl.value = null;\n this.#toEl.value = null;\n this.#revisionEl.value = null;\n this.#userEl.value = null;\n this.#typesEl.value = this.#types[0]?.value;\n\n await this.#getObjectsFromVersion(newSelectedVersionId, false);\n }\n\n /**\n * List of versions to show in the versions tree\n */\n @Prop({ mutable: true }) versions: ItemNode[];\n @Watch(\"versions\")\n async versionsListChanged(newVersionsList: ItemNode[]) {\n this.versions = newVersionsList;\n this.hasActiveVersion = hasActiveVersionInList(newVersionsList);\n\n if (\n newVersionsList.length > 0 &&\n this.selectedVersionId &&\n this.isFirstLoad\n ) {\n await this.#getObjectsFromVersion(this.selectedVersionId, false);\n this.isFirstLoad = false;\n } else if (newVersionsList.length === 0 && this.isFirstLoad) {\n this.loading = false;\n this.isFirstLoad = false;\n }\n }\n\n /**\n * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.\n\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id\n */\n @Prop() readonly loadDetailCallback: LoadDetailCallback;\n\n /**\n * Callback invoked when the selected version changes. As parameter receive the selected version id\n */\n @Prop() readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#types = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n this.#sidebarEl.addEventListener(\n \"expandedChange\",\n (e: CustomEvent<boolean>) => {\n this.sidebarExpanded = e.detail;\n }\n );\n }\n\n #getObjectsFromVersion = async (\n versionId: string,\n isRefresh: boolean\n ): Promise<void> => {\n this.loading = true;\n\n const filters: FiltersData = {\n search: this.#searchEl.value ? this.#searchEl.value : \"\",\n from: this.#fromEl.value ? new Date(this.#fromEl.value) : null,\n to: this.#toEl.value ? new Date(this.#toEl.value) : null,\n revision: this.#revisionEl.value ? this.#revisionEl.value : \"\",\n user: this.#userEl.value ? this.#userEl.value : \"\",\n type: this.#typesEl.value === \"all\" ? \"\" : this.#typesEl.value\n };\n try {\n this.objects = await this.loadCallback(filters, versionId, isRefresh);\n await this.#getSelectedRevision(this.objects[0]?.id);\n } catch (error) {\n this.versions = [];\n this.objects = [];\n this.historyDetail = null;\n this.selectedRevisionId = null;\n } finally {\n this.loading = false;\n }\n };\n\n #getSelectedRevision = async (revisionId: string) => {\n if (revisionId) {\n this.historyDetail = await this.loadDetailCallback(revisionId);\n this.historyDetail.title = this.#formatHistoryDetailDate(\n this.historyDetail.title\n );\n this.selectedRevisionId = revisionId;\n } else {\n this.historyDetail = null;\n }\n };\n\n #registerGridContextMenuListener = (): void => {\n if (this.#revisionsGridEl) {\n this.#revisionsGridEl.addEventListener(\n \"contextmenu\",\n (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#gridContextMenuCallbackHandler(ev);\n }\n );\n }\n };\n\n #gridContextMenuCallbackHandler = async (ev: MouseEvent): Promise<void> => {\n this.gridContextMenuCallback({\n selection: [this.selectedRevisionId],\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #renderCommitsGrid = (): Element => {\n const tabularGridEmpty = this.objects?.length === 0 || !this.objects;\n return (\n <ch-tabular-grid\n class={{\n \"commits-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n onSelectionChanged={(ev: any) => {\n this.objects.length > 0 &&\n this.#getSelectedRevision(ev.detail.rowsId[0]);\n }}\n ref={(el: HTMLChTabularGridElement) => {\n if (el && this.#revisionsGridEl !== el) {\n this.#revisionsGridEl = el as HTMLChTabularGridElement;\n\n this.#registerGridContextMenuListener();\n\n if (this.objects.length > 0) {\n this.#revisionsGridEl.selectRow(this.objects[0]?.id, true);\n }\n }\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.id}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.comment}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"1fr\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.user}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.commitDate}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: RevisionData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.id}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.comment}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.commitDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateTitle={this.#_componentLocale.emptyRevisionsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderAffectedObjectsGrid = (): Element => {\n const iterable = this.historyDetail ? this.historyDetail.objects : [];\n const tabularGridEmpty =\n this.historyDetail?.objects?.length === 0 || !this.historyDetail;\n return (\n <ch-tabular-grid\n class={{\n \"affected-objects-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.name\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.types\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.description\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.action\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.historyDetail && this.historyDetail.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {iterable.map((obj: ObjectData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(obj.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectStateWithIcon(obj.state)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyHistoryDetailText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderLoader = (): Element => {\n return (\n this.loading && (\n <div class=\"main__content scrollable\">\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n description={this.#_componentLocale.loader.description}\n ></gx-ide-loader>\n </div>\n )\n );\n };\n\n #formatHistoryDetailDate = (title: string): string => {\n const parts = title.split(\" - \");\n const datePart = new Date(parts[1]);\n const formattedDate = formatDate(datePart, \"date-time\");\n return `${parts[0]} - ${formattedDate} - ${parts[2]}`;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-sidebar\n ref={(el: HTMLChSidebarElement) =>\n (this.#sidebarEl = el as HTMLChSidebarElement)\n }\n class=\"sidebar\"\n expanded={this.sidebarExpanded}\n expandButtonCollapseAccessibleName={\n this.#_componentLocale.sidebar.collapseAriaLabel\n }\n expandButtonExpandAccessibleName={\n this.#_componentLocale.sidebar.expandAriaLabel\n }\n showExpandButton\n >\n <gx-ide-select-kb-items\n class={{\n \"sidebar-expanded\": this.sidebarExpanded,\n \"has-active-version\": this.hasActiveVersion\n }}\n checkboxType=\"none\"\n itemsList={this.versions}\n expandOnClick={false}\n selectionChanged={this.selectedVersionChangeCallback}\n itemContextMenuCallback={this.itemContextMenuCallback}\n ></gx-ide-select-kb-items>\n </ch-sidebar>\n\n <main class=\"main spacing-body-block-start spacing-body-inline\">\n <div class=\"main__header\">\n <div class=\"search-filter\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"search\">\n {this.#_componentLocale.filters.search}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n startImgSrc={SEARCH_ICON}\n part=\"search\"\n id=\"search\"\n ref={(el: HTMLChEditElement) =>\n (this.#searchEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={() => this.#toggleFiltersHandler()}\n >\n <ch-image class=\"icon-md\" src={FILTER_ICON_PRIMARY}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.reloadAriaLabel}\n onClick={() =>\n this.#getObjectsFromVersion(this.selectedVersionId, true)\n }\n part={this.#_componentLocale.searchFilter.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\n </div>\n\n <div\n id=\"filters-container\"\n aria-labelledby=\"filter-toggle-button\"\n class={{\n \"filters-container-visible\": !this.filtersHidden,\n \"filters-container\": true\n }}\n inert={this.filtersHidden}\n hidden={this.filtersHidden}\n >\n <div>\n <div class=\"filters-grid\">\n <div class=\"field field-block field-from\">\n <label class=\"label\" htmlFor=\"from\">\n {this.#_componentLocale.filters.from}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n part=\"from\"\n id=\"from\"\n ref={(el: HTMLChEditElement) =>\n (this.#fromEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-to\">\n <label class=\"label\" htmlFor=\"to\">\n {this.#_componentLocale.filters.to}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n id=\"to\"\n ref={(el: HTMLChEditElement) =>\n (this.#toEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filters.type}\n </label>\n\n <ch-combo-box-render\n accessibleName=\"types\"\n class=\"combo-box\"\n part=\"type\"\n model={this.#types}\n value={this.#types[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block field-user\">\n <label class=\"label\" htmlFor=\"user\">\n {this.#_componentLocale.filters.user}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"user\"\n class=\"input\"\n id=\"user\"\n ref={(el: HTMLChEditElement) =>\n (this.#userEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-revision\">\n <label class=\"label\" htmlFor=\"revision\">\n {this.#_componentLocale.filters.revision}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"revision\"\n class=\"input\"\n id=\"revision\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this.#renderLoader()}\n\n {!this.loading && (\n <div class=\"main__content scrollable\">\n {this.#renderCommitsGrid()}\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"comment-area\">\n {this.historyDetail ? this.historyDetail.title : null}\n </label>\n <ch-edit\n class=\"input comment-text-area\"\n value={this.historyDetail ? this.historyDetail.comment : null}\n multiline\n autoGrow\n readonly={true}\n part=\"comment-area\"\n id=\"comment-area\"\n ></ch-edit>\n </div>\n\n {this.#renderAffectedObjectsGrid()}\n </div>\n )}\n </main>\n </Host>\n );\n }\n}\n\n// Types\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type FiltersData = {\n search: string;\n from?: Date;\n to?: Date;\n user?: string;\n revision?: string;\n type?: string;\n};\nexport type RevisionData = {\n id: string;\n comment: string;\n user: string;\n commitDate: Date;\n};\n\nexport type RevisionDetailData = {\n title: string;\n comment: string;\n objects: ObjectData[];\n};\nexport type ObjectData = {\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: ObjectType;\n description: string;\n action: string;\n};\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string,\n isRefresh: boolean\n) => Promise<RevisionData[]>;\n\nexport type LoadDetailCallback = (\n revision: string\n) => Promise<RevisionDetailData>;\n\nexport type SelectedVersionChangeCallback = (\n selectedVersion: string[]\n) => Promise<void>;\n"],"mappings":"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"}