@genexus/genexus-ide-ui 1.1.26 → 1.1.27

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 (340) hide show
  1. package/dist/cjs/{common-8c725d8c.js → common-8e7923c5.js} +2 -2
  2. package/dist/cjs/{common-8c725d8c.js.map → common-8e7923c5.js.map} +1 -1
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-about.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +1 -1
  6. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +2 -2
  7. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
  10. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +2 -2
  11. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
  12. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +2 -2
  13. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js +1 -1
  14. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +1 -1
  15. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
  16. package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
  17. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +1 -1
  18. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
  19. package/dist/cjs/gx-ide-container_2.cjs.entry.js +1 -1
  20. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +2 -2
  23. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +1 -1
  25. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +1 -1
  26. package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +1 -1
  28. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +1 -1
  29. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  30. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
  31. package/dist/cjs/gx-ide-file-item.cjs.entry.js +1 -1
  32. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +1 -1
  33. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
  34. package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
  35. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  36. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
  37. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
  38. package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
  39. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +2 -2
  40. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +2 -2
  41. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +1 -1
  42. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +3 -3
  43. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +3 -3
  44. package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
  45. package/dist/cjs/gx-ide-new-version.cjs.entry.js +1 -1
  46. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +2 -2
  47. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +1 -1
  48. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +1 -1
  49. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +1 -1
  50. package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
  51. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +1 -1
  52. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +1 -1
  53. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +1 -1
  54. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
  55. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +1 -1
  56. package/dist/cjs/gx-ide-sign-in.cjs.entry.js +1 -1
  57. package/dist/cjs/gx-ide-splash.cjs.entry.js +2 -2
  58. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  59. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
  60. package/dist/cjs/gx-ide-switch-panel.cjs.entry.js +1 -1
  61. package/dist/cjs/gx-ide-switcher.cjs.entry.js +1 -1
  62. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +2 -2
  63. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
  64. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +3 -3
  65. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +2 -2
  66. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
  67. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
  68. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +2 -2
  69. package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
  70. package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
  71. package/dist/cjs/gx-ide-top-bar.cjs.entry.js +1 -1
  72. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +1 -1
  73. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
  74. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +1 -1
  75. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +77 -30
  76. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  77. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +3 -3
  78. package/dist/cjs/{helpers-b30b36b4.js → helpers-8e625231.js} +2 -2
  79. package/dist/cjs/{helpers-b30b36b4.js.map → helpers-8e625231.js.map} +1 -1
  80. package/dist/cjs/{index-e227aefb.js → index-408303ce.js} +9 -4
  81. package/dist/cjs/index-408303ce.js.map +1 -0
  82. package/dist/cjs/loader.cjs.js +1 -1
  83. package/dist/cjs/{render-list-item-7c6449c4.js → render-list-item-5c33517f.js} +2 -2
  84. package/dist/cjs/{render-list-item-7c6449c4.js.map → render-list-item-5c33517f.js.map} +1 -1
  85. package/dist/cjs/{utilities-0b308992.js → utilities-d0de7967.js} +2 -2
  86. package/dist/cjs/{utilities-0b308992.js.map → utilities-d0de7967.js.map} +1 -1
  87. package/dist/collection/components/ww-files/ww-files.js +76 -29
  88. package/dist/collection/components/ww-files/ww-files.js.map +1 -1
  89. package/dist/components/gx-ide-ww-files.js +75 -28
  90. package/dist/components/gx-ide-ww-files.js.map +1 -1
  91. package/dist/esm/{common-c25d8c2f.js → common-c8407100.js} +2 -2
  92. package/dist/esm/{common-c25d8c2f.js.map → common-c8407100.js.map} +1 -1
  93. package/dist/esm/genexus-ide-ui.js +2 -2
  94. package/dist/esm/gx-ide-about.entry.js +1 -1
  95. package/dist/esm/gx-ide-ai-assistant.entry.js +1 -1
  96. package/dist/esm/gx-ide-ai-message.entry.js +2 -2
  97. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  98. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
  99. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
  100. package/dist/esm/gx-ide-bpm-import-files.entry.js +2 -2
  101. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  102. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +2 -2
  103. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js +1 -1
  104. package/dist/esm/gx-ide-bpm-task-documents.entry.js +1 -1
  105. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
  106. package/dist/esm/gx-ide-card.entry.js +1 -1
  107. package/dist/esm/gx-ide-chat-container_2.entry.js +1 -1
  108. package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
  109. package/dist/esm/gx-ide-container_2.entry.js +1 -1
  110. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
  111. package/dist/esm/gx-ide-current-user-info.entry.js +1 -1
  112. package/dist/esm/gx-ide-dashboard-home.entry.js +2 -2
  113. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  114. package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
  115. package/dist/esm/gx-ide-deployment-tool.entry.js +1 -1
  116. package/dist/esm/gx-ide-design-import.entry.js +1 -1
  117. package/dist/esm/gx-ide-directory-selector.entry.js +1 -1
  118. package/dist/esm/gx-ide-edit-module-server.entry.js +1 -1
  119. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  120. package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
  121. package/dist/esm/gx-ide-file-item.entry.js +1 -1
  122. package/dist/esm/gx-ide-file-uploader.entry.js +1 -1
  123. package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
  124. package/dist/esm/gx-ide-json-import.entry.js +1 -1
  125. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  126. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
  127. package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
  128. package/dist/esm/gx-ide-loader.entry.js +1 -1
  129. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +2 -2
  130. package/dist/esm/gx-ide-manage-module-references.entry.js +2 -2
  131. package/dist/esm/gx-ide-navigation-report.entry.js +1 -1
  132. package/dist/esm/gx-ide-new-environment.entry.js +3 -3
  133. package/dist/esm/gx-ide-new-kb.entry.js +3 -3
  134. package/dist/esm/gx-ide-new-object.entry.js +1 -1
  135. package/dist/esm/gx-ide-new-version.entry.js +1 -1
  136. package/dist/esm/gx-ide-object-selector.entry.js +2 -2
  137. package/dist/esm/gx-ide-open-api-import.entry.js +1 -1
  138. package/dist/esm/gx-ide-plugin-details.entry.js +1 -1
  139. package/dist/esm/gx-ide-plugin-explorer.entry.js +1 -1
  140. package/dist/esm/gx-ide-references.entry.js +1 -1
  141. package/dist/esm/gx-ide-sc-chat-container.entry.js +1 -1
  142. package/dist/esm/gx-ide-select-kb-items.entry.js +1 -1
  143. package/dist/esm/gx-ide-select-user-team.entry.js +1 -1
  144. package/dist/esm/gx-ide-share-kb.entry.js +1 -1
  145. package/dist/esm/gx-ide-sign-in-team.entry.js +1 -1
  146. package/dist/esm/gx-ide-sign-in.entry.js +1 -1
  147. package/dist/esm/gx-ide-splash.entry.js +2 -2
  148. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  149. package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
  150. package/dist/esm/gx-ide-switch-panel.entry.js +1 -1
  151. package/dist/esm/gx-ide-switcher.entry.js +1 -1
  152. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +2 -2
  153. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  154. package/dist/esm/gx-ide-team-dev-history.entry.js +3 -3
  155. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
  156. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
  157. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
  158. package/dist/esm/gx-ide-team-dev-update.entry.js +2 -2
  159. package/dist/esm/gx-ide-template.entry.js +1 -1
  160. package/dist/esm/gx-ide-test.entry.js +1 -1
  161. package/dist/esm/gx-ide-top-bar.entry.js +1 -1
  162. package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
  163. package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
  164. package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
  165. package/dist/esm/gx-ide-ww-files.entry.js +77 -30
  166. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  167. package/dist/esm/gx-ide-ww-images.entry.js +3 -3
  168. package/dist/esm/{helpers-a4f16ffb.js → helpers-37946d65.js} +2 -2
  169. package/dist/esm/{helpers-a4f16ffb.js.map → helpers-37946d65.js.map} +1 -1
  170. package/dist/esm/{index-10af18cf.js → index-25ff5600.js} +9 -4
  171. package/dist/esm/index-25ff5600.js.map +1 -0
  172. package/dist/esm/loader.js +2 -2
  173. package/dist/esm/{render-list-item-f5836c31.js → render-list-item-b79501ca.js} +2 -2
  174. package/dist/esm/{render-list-item-f5836c31.js.map → render-list-item-b79501ca.js.map} +1 -1
  175. package/dist/esm/{utilities-00ec1b22.js → utilities-76a18030.js} +2 -2
  176. package/dist/esm/{utilities-00ec1b22.js.map → utilities-76a18030.js.map} +1 -1
  177. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +3 -3
  178. package/dist/genexus-ide-ui/{p-0c0eb8ae.js → p-0090f914.js} +2 -2
  179. package/dist/genexus-ide-ui/{p-0a0ab008.entry.js → p-04597fd0.entry.js} +2 -2
  180. package/dist/genexus-ide-ui/{p-75d6c740.entry.js → p-070628a8.entry.js} +4 -4
  181. package/dist/genexus-ide-ui/{p-bfe3277f.entry.js → p-0e2da68a.entry.js} +2 -2
  182. package/dist/genexus-ide-ui/{p-ded7444c.entry.js → p-1191a6f0.entry.js} +2 -2
  183. package/dist/genexus-ide-ui/{p-8e34e92b.entry.js → p-149e771e.entry.js} +2 -2
  184. package/dist/genexus-ide-ui/{p-1664d366.entry.js → p-1622e339.entry.js} +2 -2
  185. package/dist/genexus-ide-ui/{p-1dd7be84.entry.js → p-1bb1c9cc.entry.js} +2 -2
  186. package/dist/genexus-ide-ui/{p-46ffec64.entry.js → p-2698d51a.entry.js} +2 -2
  187. package/dist/genexus-ide-ui/{p-4ad7826c.entry.js → p-277999c2.entry.js} +2 -2
  188. package/dist/genexus-ide-ui/{p-e9f8b156.entry.js → p-2e0ace7b.entry.js} +2 -2
  189. package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js → p-2e559ead.entry.js} +2 -2
  190. package/dist/genexus-ide-ui/{p-5ff6fe1d.entry.js → p-2e8b3151.entry.js} +2 -2
  191. package/dist/genexus-ide-ui/{p-05b04291.entry.js → p-3090813a.entry.js} +2 -2
  192. package/dist/genexus-ide-ui/{p-d4ca8530.entry.js → p-312ea200.entry.js} +2 -2
  193. package/dist/genexus-ide-ui/{p-11b8f81d.entry.js → p-32262d7f.entry.js} +4 -4
  194. package/dist/genexus-ide-ui/{p-f722955f.entry.js → p-34af745b.entry.js} +2 -2
  195. package/dist/genexus-ide-ui/{p-68969051.entry.js → p-36e62da4.entry.js} +2 -2
  196. package/dist/genexus-ide-ui/{p-4bb2c398.entry.js → p-3d143a80.entry.js} +3 -3
  197. package/dist/genexus-ide-ui/{p-731b8947.entry.js → p-413c0800.entry.js} +2 -2
  198. package/dist/genexus-ide-ui/{p-25a9f1d7.js → p-4406e156.js} +11 -5
  199. package/dist/genexus-ide-ui/p-4406e156.js.map +1 -0
  200. package/dist/genexus-ide-ui/{p-b58fb87b.entry.js → p-44eacccd.entry.js} +4 -4
  201. package/dist/genexus-ide-ui/{p-e162771e.entry.js → p-45267d6e.entry.js} +2 -2
  202. package/dist/genexus-ide-ui/{p-94904819.entry.js → p-4cafeee4.entry.js} +2 -2
  203. package/dist/genexus-ide-ui/{p-6b957e82.entry.js → p-4cd4f013.entry.js} +2 -2
  204. package/dist/genexus-ide-ui/{p-0937c905.entry.js → p-52d48fba.entry.js} +3 -3
  205. package/dist/genexus-ide-ui/{p-e02e3694.entry.js → p-541c43a2.entry.js} +3 -3
  206. package/dist/genexus-ide-ui/{p-9d985956.entry.js → p-5770d8b7.entry.js} +2 -2
  207. package/dist/genexus-ide-ui/{p-8c0b4d9f.js → p-5cb98d5b.js} +2 -2
  208. package/dist/genexus-ide-ui/{p-dce532ea.entry.js → p-61c8d171.entry.js} +2 -2
  209. package/dist/genexus-ide-ui/{p-8714eeb1.entry.js → p-693be6bb.entry.js} +2 -2
  210. package/dist/genexus-ide-ui/{p-f83ceb69.entry.js → p-6b525369.entry.js} +2 -2
  211. package/dist/genexus-ide-ui/{p-538594e2.entry.js → p-6c0cc0fc.entry.js} +6 -6
  212. package/dist/genexus-ide-ui/{p-d7a91333.js → p-6c5cc7e2.js} +19 -19
  213. package/dist/genexus-ide-ui/{p-04c6bd23.entry.js → p-74882b8f.entry.js} +3 -3
  214. package/dist/genexus-ide-ui/{p-1bc2613e.entry.js → p-7884efd9.entry.js} +2 -2
  215. package/dist/genexus-ide-ui/{p-19d197c5.entry.js → p-78d65da3.entry.js} +4 -4
  216. package/dist/genexus-ide-ui/{p-f49bb305.entry.js → p-7965af56.entry.js} +2 -2
  217. package/dist/genexus-ide-ui/{p-d095a37c.entry.js → p-7a8aeb4e.entry.js} +2 -2
  218. package/dist/genexus-ide-ui/{p-960d9108.entry.js → p-7ba4e229.entry.js} +5 -5
  219. package/dist/genexus-ide-ui/{p-957046fd.js → p-7c2a9252.js} +9 -9
  220. package/dist/genexus-ide-ui/{p-e24902a0.entry.js → p-7de1daee.entry.js} +2 -2
  221. package/dist/genexus-ide-ui/{p-a708a870.entry.js → p-7f756647.entry.js} +2 -2
  222. package/dist/genexus-ide-ui/{p-45996535.entry.js → p-811ff88b.entry.js} +2 -2
  223. package/dist/genexus-ide-ui/{p-35f9ebbc.entry.js → p-832ec678.entry.js} +2 -2
  224. package/dist/genexus-ide-ui/{p-4b38fffc.entry.js → p-847cd613.entry.js} +2 -2
  225. package/dist/genexus-ide-ui/{p-f52ea9d4.entry.js → p-8657d13c.entry.js} +2 -2
  226. package/dist/genexus-ide-ui/{p-6e958b79.entry.js → p-888d029f.entry.js} +3 -3
  227. package/dist/genexus-ide-ui/{p-05f1ff03.entry.js → p-8b4fac7e.entry.js} +2 -2
  228. package/dist/genexus-ide-ui/{p-2d04b927.entry.js → p-987081c1.entry.js} +4 -4
  229. package/dist/genexus-ide-ui/{p-cbe2dd13.entry.js → p-9b2a1619.entry.js} +5 -5
  230. package/dist/genexus-ide-ui/{p-b2928645.entry.js → p-9d5dc6a7.entry.js} +2 -2
  231. package/dist/genexus-ide-ui/{p-d8379699.entry.js → p-9e15d58d.entry.js} +3 -3
  232. package/dist/genexus-ide-ui/{p-f3f068f6.entry.js → p-9e8a71db.entry.js} +2 -2
  233. package/dist/genexus-ide-ui/{p-304d5629.entry.js → p-a29936cd.entry.js} +2 -2
  234. package/dist/genexus-ide-ui/{p-86365635.entry.js → p-a4c35113.entry.js} +2 -2
  235. package/dist/genexus-ide-ui/{p-494b3955.entry.js → p-a5de63cc.entry.js} +2 -2
  236. package/dist/genexus-ide-ui/{p-f4a60017.entry.js → p-a7194c97.entry.js} +2 -2
  237. package/dist/genexus-ide-ui/{p-de7f0c1f.entry.js → p-a92f1884.entry.js} +11 -11
  238. package/dist/genexus-ide-ui/{p-c3abc0f5.entry.js → p-afd84bc7.entry.js} +2 -2
  239. package/dist/genexus-ide-ui/{p-03dbccde.entry.js → p-b3aa0ecb.entry.js} +2 -2
  240. package/dist/genexus-ide-ui/{p-88581fe4.entry.js → p-ba9b9aa5.entry.js} +2 -2
  241. package/dist/genexus-ide-ui/{p-80c1ddc3.entry.js → p-cd8831e4.entry.js} +2 -2
  242. package/dist/genexus-ide-ui/{p-caa5ee2f.entry.js → p-ddbd4891.entry.js} +2 -2
  243. package/dist/genexus-ide-ui/{p-2ad98d24.entry.js → p-de83b5d7.entry.js} +3 -3
  244. package/dist/genexus-ide-ui/{p-36c7a87b.entry.js → p-df148798.entry.js} +2 -2
  245. package/dist/genexus-ide-ui/{p-4328be14.entry.js → p-e0eda984.entry.js} +2 -2
  246. package/dist/genexus-ide-ui/{p-5e7f8ae6.entry.js → p-e267e84e.entry.js} +2 -2
  247. package/dist/genexus-ide-ui/{p-163bfc6a.entry.js → p-e27f0e14.entry.js} +268 -234
  248. package/dist/genexus-ide-ui/p-e27f0e14.entry.js.map +1 -0
  249. package/dist/genexus-ide-ui/{p-14165308.entry.js → p-e40929cd.entry.js} +3 -3
  250. package/dist/genexus-ide-ui/{p-f7421997.entry.js → p-e94c0ad6.entry.js} +2 -2
  251. package/dist/genexus-ide-ui/{p-c58e0a92.entry.js → p-eaa0d5ce.entry.js} +2 -2
  252. package/dist/genexus-ide-ui/{p-3dbd3842.entry.js → p-eb3caba5.entry.js} +4 -4
  253. package/dist/genexus-ide-ui/{p-767e0f6d.entry.js → p-eea24d19.entry.js} +2 -2
  254. package/dist/genexus-ide-ui/{p-b1851e6b.entry.js → p-f15c84ab.entry.js} +2 -2
  255. package/dist/genexus-ide-ui/{p-fa52a417.entry.js → p-f5157be1.entry.js} +3 -3
  256. package/dist/genexus-ide-ui/{p-31beae9e.entry.js → p-fb62d808.entry.js} +2 -2
  257. package/dist/genexus-ide-ui/{p-b0aa8cdb.entry.js → p-fdd75b9c.entry.js} +3 -3
  258. package/dist/types/components/ww-files/ww-files.d.ts +2 -1
  259. package/dist/types/components.d.ts +1 -1
  260. package/package.json +1 -1
  261. package/dist/cjs/index-e227aefb.js.map +0 -1
  262. package/dist/esm/index-10af18cf.js.map +0 -1
  263. package/dist/genexus-ide-ui/p-163bfc6a.entry.js.map +0 -1
  264. package/dist/genexus-ide-ui/p-25a9f1d7.js.map +0 -1
  265. /package/dist/genexus-ide-ui/{p-0c0eb8ae.js.map → p-0090f914.js.map} +0 -0
  266. /package/dist/genexus-ide-ui/{p-0a0ab008.entry.js.map → p-04597fd0.entry.js.map} +0 -0
  267. /package/dist/genexus-ide-ui/{p-75d6c740.entry.js.map → p-070628a8.entry.js.map} +0 -0
  268. /package/dist/genexus-ide-ui/{p-bfe3277f.entry.js.map → p-0e2da68a.entry.js.map} +0 -0
  269. /package/dist/genexus-ide-ui/{p-ded7444c.entry.js.map → p-1191a6f0.entry.js.map} +0 -0
  270. /package/dist/genexus-ide-ui/{p-8e34e92b.entry.js.map → p-149e771e.entry.js.map} +0 -0
  271. /package/dist/genexus-ide-ui/{p-1664d366.entry.js.map → p-1622e339.entry.js.map} +0 -0
  272. /package/dist/genexus-ide-ui/{p-1dd7be84.entry.js.map → p-1bb1c9cc.entry.js.map} +0 -0
  273. /package/dist/genexus-ide-ui/{p-46ffec64.entry.js.map → p-2698d51a.entry.js.map} +0 -0
  274. /package/dist/genexus-ide-ui/{p-4ad7826c.entry.js.map → p-277999c2.entry.js.map} +0 -0
  275. /package/dist/genexus-ide-ui/{p-e9f8b156.entry.js.map → p-2e0ace7b.entry.js.map} +0 -0
  276. /package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js.map → p-2e559ead.entry.js.map} +0 -0
  277. /package/dist/genexus-ide-ui/{p-5ff6fe1d.entry.js.map → p-2e8b3151.entry.js.map} +0 -0
  278. /package/dist/genexus-ide-ui/{p-05b04291.entry.js.map → p-3090813a.entry.js.map} +0 -0
  279. /package/dist/genexus-ide-ui/{p-d4ca8530.entry.js.map → p-312ea200.entry.js.map} +0 -0
  280. /package/dist/genexus-ide-ui/{p-11b8f81d.entry.js.map → p-32262d7f.entry.js.map} +0 -0
  281. /package/dist/genexus-ide-ui/{p-f722955f.entry.js.map → p-34af745b.entry.js.map} +0 -0
  282. /package/dist/genexus-ide-ui/{p-68969051.entry.js.map → p-36e62da4.entry.js.map} +0 -0
  283. /package/dist/genexus-ide-ui/{p-4bb2c398.entry.js.map → p-3d143a80.entry.js.map} +0 -0
  284. /package/dist/genexus-ide-ui/{p-731b8947.entry.js.map → p-413c0800.entry.js.map} +0 -0
  285. /package/dist/genexus-ide-ui/{p-b58fb87b.entry.js.map → p-44eacccd.entry.js.map} +0 -0
  286. /package/dist/genexus-ide-ui/{p-e162771e.entry.js.map → p-45267d6e.entry.js.map} +0 -0
  287. /package/dist/genexus-ide-ui/{p-94904819.entry.js.map → p-4cafeee4.entry.js.map} +0 -0
  288. /package/dist/genexus-ide-ui/{p-6b957e82.entry.js.map → p-4cd4f013.entry.js.map} +0 -0
  289. /package/dist/genexus-ide-ui/{p-0937c905.entry.js.map → p-52d48fba.entry.js.map} +0 -0
  290. /package/dist/genexus-ide-ui/{p-e02e3694.entry.js.map → p-541c43a2.entry.js.map} +0 -0
  291. /package/dist/genexus-ide-ui/{p-9d985956.entry.js.map → p-5770d8b7.entry.js.map} +0 -0
  292. /package/dist/genexus-ide-ui/{p-8c0b4d9f.js.map → p-5cb98d5b.js.map} +0 -0
  293. /package/dist/genexus-ide-ui/{p-dce532ea.entry.js.map → p-61c8d171.entry.js.map} +0 -0
  294. /package/dist/genexus-ide-ui/{p-8714eeb1.entry.js.map → p-693be6bb.entry.js.map} +0 -0
  295. /package/dist/genexus-ide-ui/{p-f83ceb69.entry.js.map → p-6b525369.entry.js.map} +0 -0
  296. /package/dist/genexus-ide-ui/{p-538594e2.entry.js.map → p-6c0cc0fc.entry.js.map} +0 -0
  297. /package/dist/genexus-ide-ui/{p-d7a91333.js.map → p-6c5cc7e2.js.map} +0 -0
  298. /package/dist/genexus-ide-ui/{p-04c6bd23.entry.js.map → p-74882b8f.entry.js.map} +0 -0
  299. /package/dist/genexus-ide-ui/{p-1bc2613e.entry.js.map → p-7884efd9.entry.js.map} +0 -0
  300. /package/dist/genexus-ide-ui/{p-19d197c5.entry.js.map → p-78d65da3.entry.js.map} +0 -0
  301. /package/dist/genexus-ide-ui/{p-f49bb305.entry.js.map → p-7965af56.entry.js.map} +0 -0
  302. /package/dist/genexus-ide-ui/{p-d095a37c.entry.js.map → p-7a8aeb4e.entry.js.map} +0 -0
  303. /package/dist/genexus-ide-ui/{p-960d9108.entry.js.map → p-7ba4e229.entry.js.map} +0 -0
  304. /package/dist/genexus-ide-ui/{p-957046fd.js.map → p-7c2a9252.js.map} +0 -0
  305. /package/dist/genexus-ide-ui/{p-e24902a0.entry.js.map → p-7de1daee.entry.js.map} +0 -0
  306. /package/dist/genexus-ide-ui/{p-a708a870.entry.js.map → p-7f756647.entry.js.map} +0 -0
  307. /package/dist/genexus-ide-ui/{p-45996535.entry.js.map → p-811ff88b.entry.js.map} +0 -0
  308. /package/dist/genexus-ide-ui/{p-35f9ebbc.entry.js.map → p-832ec678.entry.js.map} +0 -0
  309. /package/dist/genexus-ide-ui/{p-4b38fffc.entry.js.map → p-847cd613.entry.js.map} +0 -0
  310. /package/dist/genexus-ide-ui/{p-f52ea9d4.entry.js.map → p-8657d13c.entry.js.map} +0 -0
  311. /package/dist/genexus-ide-ui/{p-6e958b79.entry.js.map → p-888d029f.entry.js.map} +0 -0
  312. /package/dist/genexus-ide-ui/{p-05f1ff03.entry.js.map → p-8b4fac7e.entry.js.map} +0 -0
  313. /package/dist/genexus-ide-ui/{p-2d04b927.entry.js.map → p-987081c1.entry.js.map} +0 -0
  314. /package/dist/genexus-ide-ui/{p-cbe2dd13.entry.js.map → p-9b2a1619.entry.js.map} +0 -0
  315. /package/dist/genexus-ide-ui/{p-b2928645.entry.js.map → p-9d5dc6a7.entry.js.map} +0 -0
  316. /package/dist/genexus-ide-ui/{p-d8379699.entry.js.map → p-9e15d58d.entry.js.map} +0 -0
  317. /package/dist/genexus-ide-ui/{p-f3f068f6.entry.js.map → p-9e8a71db.entry.js.map} +0 -0
  318. /package/dist/genexus-ide-ui/{p-304d5629.entry.js.map → p-a29936cd.entry.js.map} +0 -0
  319. /package/dist/genexus-ide-ui/{p-86365635.entry.js.map → p-a4c35113.entry.js.map} +0 -0
  320. /package/dist/genexus-ide-ui/{p-494b3955.entry.js.map → p-a5de63cc.entry.js.map} +0 -0
  321. /package/dist/genexus-ide-ui/{p-f4a60017.entry.js.map → p-a7194c97.entry.js.map} +0 -0
  322. /package/dist/genexus-ide-ui/{p-de7f0c1f.entry.js.map → p-a92f1884.entry.js.map} +0 -0
  323. /package/dist/genexus-ide-ui/{p-c3abc0f5.entry.js.map → p-afd84bc7.entry.js.map} +0 -0
  324. /package/dist/genexus-ide-ui/{p-03dbccde.entry.js.map → p-b3aa0ecb.entry.js.map} +0 -0
  325. /package/dist/genexus-ide-ui/{p-88581fe4.entry.js.map → p-ba9b9aa5.entry.js.map} +0 -0
  326. /package/dist/genexus-ide-ui/{p-80c1ddc3.entry.js.map → p-cd8831e4.entry.js.map} +0 -0
  327. /package/dist/genexus-ide-ui/{p-caa5ee2f.entry.js.map → p-ddbd4891.entry.js.map} +0 -0
  328. /package/dist/genexus-ide-ui/{p-2ad98d24.entry.js.map → p-de83b5d7.entry.js.map} +0 -0
  329. /package/dist/genexus-ide-ui/{p-36c7a87b.entry.js.map → p-df148798.entry.js.map} +0 -0
  330. /package/dist/genexus-ide-ui/{p-4328be14.entry.js.map → p-e0eda984.entry.js.map} +0 -0
  331. /package/dist/genexus-ide-ui/{p-5e7f8ae6.entry.js.map → p-e267e84e.entry.js.map} +0 -0
  332. /package/dist/genexus-ide-ui/{p-14165308.entry.js.map → p-e40929cd.entry.js.map} +0 -0
  333. /package/dist/genexus-ide-ui/{p-f7421997.entry.js.map → p-e94c0ad6.entry.js.map} +0 -0
  334. /package/dist/genexus-ide-ui/{p-c58e0a92.entry.js.map → p-eaa0d5ce.entry.js.map} +0 -0
  335. /package/dist/genexus-ide-ui/{p-3dbd3842.entry.js.map → p-eb3caba5.entry.js.map} +0 -0
  336. /package/dist/genexus-ide-ui/{p-767e0f6d.entry.js.map → p-eea24d19.entry.js.map} +0 -0
  337. /package/dist/genexus-ide-ui/{p-b1851e6b.entry.js.map → p-f15c84ab.entry.js.map} +0 -0
  338. /package/dist/genexus-ide-ui/{p-fa52a417.entry.js.map → p-f5157be1.entry.js.map} +0 -0
  339. /package/dist/genexus-ide-ui/{p-31beae9e.entry.js.map → p-fb62d808.entry.js.map} +0 -0
  340. /package/dist/genexus-ide-ui/{p-b0aa8cdb.entry.js.map → p-fdd75b9c.entry.js.map} +0 -0
@@ -1,8 +1,8 @@
1
- import { h, r as registerInstance, H as Host, a as getElement } from './index-10af18cf.js';
1
+ import { h, r as registerInstance, H as Host, a as getElement } from './index-25ff5600.js';
2
2
  import { g as getIconPath } from './MERCURY_ASSETS-ccf43ae3.js';
3
3
  import { L as Locale } from './locale-e5107fad.js';
4
4
  import { c as config } from './config-1ef9d75a.js';
5
- import { f as formatDate } from './helpers-a4f16ffb.js';
5
+ import { f as formatDate } from './helpers-37946d65.js';
6
6
 
7
7
  const mapOptionsToComboBoxItemModel = (options) => {
8
8
  return options.map(option => {
@@ -44,7 +44,7 @@ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) ||
44
44
  throw new TypeError("Cannot read private member from an object whose class did not declare it");
45
45
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
46
46
  };
47
- var _GxIdeWWFiles_componentLocale, _GxIdeWWFiles_ACCORDION_MODEL, _GxIdeWWFiles_nameValue, _GxIdeWWFiles_moduleValue, _GxIdeWWFiles_searchContentsValue, _GxIdeWWFiles_categoryValue, _GxIdeWWFiles_allDescendants, _GxIdeWWFiles_userValue, _GxIdeWWFiles_selectedObjectsIds, _GxIdeWWFiles_chGridEl, _GxIdeWWFiles_filterModuleEl, _GxIdeWWFiles_setFilterDefaultValues, _GxIdeWWFiles_allDescendantsCheckboxHandler, _GxIdeWWFiles_attachGridListeners, _GxIdeWWFiles_categoryInputHandler, _GxIdeWWFiles_clearDateTimeValue, _GxIdeWWFiles_dateTimeInputHandler, _GxIdeWWFiles_deleteSelectionCallbackHandler, _GxIdeWWFiles_deselectAll, _GxIdeWWFiles_evaluateModifiedDates, _GxIdeWWFiles_filterAfterTypeCallbackHandler, _GxIdeWWFiles_formatDate, _GxIdeWWFiles_getObjects, _GxIdeWWFiles_renderHeader, _GxIdeWWFiles_renderObjects, _GxIdeWWFiles_moduleValueChangedHandler, _GxIdeWWFiles_nameInputHandler, _GxIdeWWFiles_newFileCallbackHandler, _GxIdeWWFiles_openSelectionCallbackHandler, _GxIdeWWFiles_searchContentsInputHandler, _GxIdeWWFiles_setLoadingState, _GxIdeWWFiles_userInputHandler, _GxIdeWWFiles_showModifiedCheckboxHandler, _GxIdeWWFiles_selectAll;
47
+ var _GxIdeWWFiles_componentLocale, _GxIdeWWFiles_ACCORDION_MODEL, _GxIdeWWFiles_nameValue, _GxIdeWWFiles_moduleValue, _GxIdeWWFiles_searchContentsValue, _GxIdeWWFiles_categoryValue, _GxIdeWWFiles_allDescendants, _GxIdeWWFiles_userValue, _GxIdeWWFiles_selectedObjectsIds, _GxIdeWWFiles_chGridEl, _GxIdeWWFiles_filterModuleEl, _GxIdeWWFiles_setFilterDefaultValues, _GxIdeWWFiles_allDescendantsCheckboxHandler, _GxIdeWWFiles_handleSelectionChanged, _GxIdeWWFiles_handleRowDoubleClicked, _GxIdeWWFiles_handleRowContextMenu, _GxIdeWWFiles_attachGridListeners, _GxIdeWWFiles_categoryInputHandler, _GxIdeWWFiles_clearDateTimeValue, _GxIdeWWFiles_dateTimeInputHandler, _GxIdeWWFiles_deleteSelectionCallbackHandler, _GxIdeWWFiles_deselectAll, _GxIdeWWFiles_evaluateModifiedDates, _GxIdeWWFiles_filterAfterTypeCallbackHandler, _GxIdeWWFiles_formatDate, _GxIdeWWFiles_getObjects, _GxIdeWWFiles_renderHeader, _GxIdeWWFiles_renderObjects, _GxIdeWWFiles_moduleValueChangedHandler, _GxIdeWWFiles_nameInputHandler, _GxIdeWWFiles_newFileCallbackHandler, _GxIdeWWFiles_openSelectionCallbackHandler, _GxIdeWWFiles_searchContentsInputHandler, _GxIdeWWFiles_setLoadingState, _GxIdeWWFiles_userInputHandler, _GxIdeWWFiles_showModifiedCheckboxHandler, _GxIdeWWFiles_selectAll;
48
48
  const CSS_BUNDLES = [
49
49
  "resets/box-sizing",
50
50
  "components/button",
@@ -102,9 +102,15 @@ const GxIdeWWFiles = class {
102
102
  __classPrivateFieldSet(this, _GxIdeWWFiles_nameValue, "", "f");
103
103
  __classPrivateFieldSet(this, _GxIdeWWFiles_moduleValue, Object.assign({}, this.defaultModule), "f");
104
104
  __classPrivateFieldSet(this, _GxIdeWWFiles_searchContentsValue, "", "f");
105
- __classPrivateFieldSet(this, _GxIdeWWFiles_categoryValue, this.defaultCategory || this.categoriesComboBoxModel[0].value, "f");
105
+ __classPrivateFieldSet(this, _GxIdeWWFiles_categoryValue, this.defaultCategory ||
106
+ (this.categoriesComboBoxModel && this.categoriesComboBoxModel.length > 0
107
+ ? this.categoriesComboBoxModel[0].value
108
+ : ""), "f");
106
109
  __classPrivateFieldSet(this, _GxIdeWWFiles_allDescendants, CHECKBOX_UNCHECKED_VALUE, "f");
107
- this.afterValue = this.filterAfterComboBoxModel[0].value;
110
+ this.afterValue =
111
+ this.filterAfterComboBoxModel && this.filterAfterComboBoxModel.length > 0
112
+ ? this.filterAfterComboBoxModel[0].value
113
+ : FILTER_AFTER_DATE_TIME;
108
114
  __classPrivateFieldSet(this, _GxIdeWWFiles_userValue, "", "f");
109
115
  this.dateTimeValue = undefined;
110
116
  });
@@ -114,24 +120,27 @@ const GxIdeWWFiles = class {
114
120
  : CHECKBOX_UNCHECKED_VALUE, "f");
115
121
  __classPrivateFieldGet(this, _GxIdeWWFiles_getObjects, "f").call(this);
116
122
  });
117
- _GxIdeWWFiles_attachGridListeners.set(this, () => {
118
- __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").addEventListener("selectionChanged", (ev) => {
119
- __classPrivateFieldSet(this, _GxIdeWWFiles_selectedObjectsIds, ev.detail.rowsId, "f");
120
- this.selectionChangeCallback(__classPrivateFieldGet(this, _GxIdeWWFiles_selectedObjectsIds, "f"));
121
- });
122
- __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").addEventListener("rowDoubleClicked", () => {
123
- __classPrivateFieldGet(this, _GxIdeWWFiles_openSelectionCallbackHandler, "f").call(this);
124
- });
125
- __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").addEventListener("rowContextMenu", (ev) => {
126
- ev.preventDefault();
127
- ev.stopPropagation();
128
- this.contextMenuCallback({
129
- selection: ev.detail.selectedRowsId,
130
- clientX: ev.detail.clientX,
131
- clientY: ev.detail.clientY
132
- });
123
+ _GxIdeWWFiles_handleSelectionChanged.set(this, (ev) => {
124
+ __classPrivateFieldSet(this, _GxIdeWWFiles_selectedObjectsIds, ev.detail.rowsId, "f");
125
+ this.selectionChangeCallback(__classPrivateFieldGet(this, _GxIdeWWFiles_selectedObjectsIds, "f"));
126
+ });
127
+ _GxIdeWWFiles_handleRowDoubleClicked.set(this, () => {
128
+ __classPrivateFieldGet(this, _GxIdeWWFiles_openSelectionCallbackHandler, "f").call(this);
129
+ });
130
+ _GxIdeWWFiles_handleRowContextMenu.set(this, (ev) => {
131
+ ev.preventDefault();
132
+ ev.stopPropagation();
133
+ this.contextMenuCallback({
134
+ selection: ev.detail.selectedRowsId,
135
+ clientX: ev.detail.clientX,
136
+ clientY: ev.detail.clientY
133
137
  });
134
138
  });
139
+ _GxIdeWWFiles_attachGridListeners.set(this, () => {
140
+ __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").addEventListener("selectionChanged", __classPrivateFieldGet(this, _GxIdeWWFiles_handleSelectionChanged, "f"));
141
+ __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").addEventListener("rowDoubleClicked", __classPrivateFieldGet(this, _GxIdeWWFiles_handleRowDoubleClicked, "f"));
142
+ __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").addEventListener("rowContextMenu", __classPrivateFieldGet(this, _GxIdeWWFiles_handleRowContextMenu, "f"));
143
+ });
135
144
  _GxIdeWWFiles_categoryInputHandler.set(this, async (event) => {
136
145
  __classPrivateFieldSet(this, _GxIdeWWFiles_categoryValue, event.detail, "f");
137
146
  __classPrivateFieldGet(this, _GxIdeWWFiles_getObjects, "f").call(this);
@@ -147,7 +156,10 @@ const GxIdeWWFiles = class {
147
156
  this.deleteSelectionCallback(__classPrivateFieldGet(this, _GxIdeWWFiles_selectedObjectsIds, "f"));
148
157
  });
149
158
  _GxIdeWWFiles_deselectAll.set(this, () => {
150
- __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").selectAllRows(false);
159
+ if (__classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f") &&
160
+ typeof __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").selectAllRows === "function") {
161
+ __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").selectAllRows(false);
162
+ }
151
163
  });
152
164
  _GxIdeWWFiles_evaluateModifiedDates.set(this, (objectModifiedDate, filterSelectedModifiedDate) => {
153
165
  const filterSelectedModifiedDateAsDate = new Date(filterSelectedModifiedDate);
@@ -169,11 +181,16 @@ const GxIdeWWFiles = class {
169
181
  });
170
182
  _GxIdeWWFiles_getObjects.set(this, () => {
171
183
  __classPrivateFieldGet(this, _GxIdeWWFiles_setLoadingState, "f").call(this);
184
+ const parentId = __classPrivateFieldGet(this, _GxIdeWWFiles_filterModuleEl, "f") && __classPrivateFieldGet(this, _GxIdeWWFiles_filterModuleEl, "f").value
185
+ ? __classPrivateFieldGet(this, _GxIdeWWFiles_filterModuleEl, "f").value.id
186
+ : this.defaultModule
187
+ ? this.defaultModule.id
188
+ : "";
172
189
  const filtersValues = {
173
190
  name: __classPrivateFieldGet(this, _GxIdeWWFiles_nameValue, "f"),
174
191
  searchContents: __classPrivateFieldGet(this, _GxIdeWWFiles_searchContentsValue, "f"),
175
192
  category: __classPrivateFieldGet(this, _GxIdeWWFiles_categoryValue, "f"),
176
- parent: __classPrivateFieldGet(this, _GxIdeWWFiles_filterModuleEl, "f").value.id,
193
+ parent: parentId,
177
194
  allDescendants: __classPrivateFieldGet(this, _GxIdeWWFiles_allDescendants, "f") === CHECKBOX_CHECKED_VALUE,
178
195
  modifiedAfter: this.showModified ? this.afterValue : undefined,
179
196
  modifiedBy: this.showModified ? __classPrivateFieldGet(this, _GxIdeWWFiles_userValue, "f") : undefined,
@@ -182,7 +199,9 @@ const GxIdeWWFiles = class {
182
199
  this.loadCallback(filtersValues).then((items) => {
183
200
  this.objects = items;
184
201
  __classPrivateFieldSet(this, _GxIdeWWFiles_selectedObjectsIds, [], "f");
185
- __classPrivateFieldGet(this, _GxIdeWWFiles_deselectAll, "f").call(this);
202
+ if (__classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f")) {
203
+ __classPrivateFieldGet(this, _GxIdeWWFiles_deselectAll, "f").call(this);
204
+ }
186
205
  this.isLoading = false;
187
206
  });
188
207
  });
@@ -261,7 +280,10 @@ const GxIdeWWFiles = class {
261
280
  __classPrivateFieldGet(this, _GxIdeWWFiles_getObjects, "f").call(this);
262
281
  });
263
282
  _GxIdeWWFiles_setLoadingState.set(this, () => {
264
- this.objects = [];
283
+ // Only clear if no objects or first load
284
+ if (!this.objects || this.objects.length === 0) {
285
+ this.objects = [];
286
+ }
265
287
  this.isLoading = true;
266
288
  });
267
289
  _GxIdeWWFiles_userInputHandler.set(this, (event) => {
@@ -272,7 +294,10 @@ const GxIdeWWFiles = class {
272
294
  this.showModified = event.detail;
273
295
  });
274
296
  _GxIdeWWFiles_selectAll.set(this, () => {
275
- __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").selectAllRows();
297
+ if (__classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f") &&
298
+ typeof __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").selectAllRows === "function") {
299
+ __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").selectAllRows();
300
+ }
276
301
  });
277
302
  this.afterValue = undefined;
278
303
  this.categoriesComboBoxModel = [];
@@ -339,6 +364,14 @@ const GxIdeWWFiles = class {
339
364
  __classPrivateFieldGet(this, _GxIdeWWFiles_attachGridListeners, "f").call(this);
340
365
  __classPrivateFieldGet(this, _GxIdeWWFiles_getObjects, "f").call(this);
341
366
  }
367
+ disconnectedCallback() {
368
+ // Clean up event listeners to prevent memory leaks
369
+ if (__classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f")) {
370
+ __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").removeEventListener("selectionChanged", __classPrivateFieldGet(this, _GxIdeWWFiles_handleSelectionChanged, "f"));
371
+ __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").removeEventListener("rowDoubleClicked", __classPrivateFieldGet(this, _GxIdeWWFiles_handleRowDoubleClicked, "f"));
372
+ __classPrivateFieldGet(this, _GxIdeWWFiles_chGridEl, "f").removeEventListener("rowContextMenu", __classPrivateFieldGet(this, _GxIdeWWFiles_handleRowContextMenu, "f"));
373
+ }
374
+ }
342
375
  keyDownHandler(eventInfo) {
343
376
  if (document.activeElement === this.el) {
344
377
  switch (eventInfo.key) {
@@ -358,11 +391,25 @@ const GxIdeWWFiles = class {
358
391
  }
359
392
  }
360
393
  /**
361
- * This method reload the view, refreshing the filters and the table of files.
394
+ * Reloads the view, refreshing the filters and the table of files.
362
395
  */
363
396
  async reload() {
364
- __classPrivateFieldGet(this, _GxIdeWWFiles_setFilterDefaultValues, "f").call(this);
365
- __classPrivateFieldGet(this, _GxIdeWWFiles_getObjects, "f").call(this);
397
+ try {
398
+ if (__classPrivateFieldGet(this, _GxIdeWWFiles_componentLocale, "f") && this.filterAfterComboBoxModel) {
399
+ __classPrivateFieldGet(this, _GxIdeWWFiles_setFilterDefaultValues, "f").call(this);
400
+ __classPrivateFieldGet(this, _GxIdeWWFiles_getObjects, "f").call(this);
401
+ }
402
+ }
403
+ catch (error) {
404
+ console.error("Error in reload method:");
405
+ // Fallback: try only getObjects if setFilterDefaultValues fails
406
+ try {
407
+ __classPrivateFieldGet(this, _GxIdeWWFiles_getObjects, "f").call(this);
408
+ }
409
+ catch (fallbackError) {
410
+ console.error("Fallback also failed:");
411
+ }
412
+ }
366
413
  }
367
414
  render() {
368
415
  var _a;
@@ -384,7 +431,7 @@ const GxIdeWWFiles = class {
384
431
  "categories": ["categoriesChanged"]
385
432
  }; }
386
433
  };
387
- _GxIdeWWFiles_componentLocale = new WeakMap(), _GxIdeWWFiles_ACCORDION_MODEL = new WeakMap(), _GxIdeWWFiles_nameValue = new WeakMap(), _GxIdeWWFiles_moduleValue = new WeakMap(), _GxIdeWWFiles_searchContentsValue = new WeakMap(), _GxIdeWWFiles_categoryValue = new WeakMap(), _GxIdeWWFiles_allDescendants = new WeakMap(), _GxIdeWWFiles_userValue = new WeakMap(), _GxIdeWWFiles_selectedObjectsIds = new WeakMap(), _GxIdeWWFiles_chGridEl = new WeakMap(), _GxIdeWWFiles_filterModuleEl = new WeakMap(), _GxIdeWWFiles_setFilterDefaultValues = new WeakMap(), _GxIdeWWFiles_allDescendantsCheckboxHandler = new WeakMap(), _GxIdeWWFiles_attachGridListeners = new WeakMap(), _GxIdeWWFiles_categoryInputHandler = new WeakMap(), _GxIdeWWFiles_clearDateTimeValue = new WeakMap(), _GxIdeWWFiles_dateTimeInputHandler = new WeakMap(), _GxIdeWWFiles_deleteSelectionCallbackHandler = new WeakMap(), _GxIdeWWFiles_deselectAll = new WeakMap(), _GxIdeWWFiles_evaluateModifiedDates = new WeakMap(), _GxIdeWWFiles_filterAfterTypeCallbackHandler = new WeakMap(), _GxIdeWWFiles_formatDate = new WeakMap(), _GxIdeWWFiles_getObjects = new WeakMap(), _GxIdeWWFiles_renderHeader = new WeakMap(), _GxIdeWWFiles_renderObjects = new WeakMap(), _GxIdeWWFiles_moduleValueChangedHandler = new WeakMap(), _GxIdeWWFiles_nameInputHandler = new WeakMap(), _GxIdeWWFiles_newFileCallbackHandler = new WeakMap(), _GxIdeWWFiles_openSelectionCallbackHandler = new WeakMap(), _GxIdeWWFiles_searchContentsInputHandler = new WeakMap(), _GxIdeWWFiles_setLoadingState = new WeakMap(), _GxIdeWWFiles_userInputHandler = new WeakMap(), _GxIdeWWFiles_showModifiedCheckboxHandler = new WeakMap(), _GxIdeWWFiles_selectAll = new WeakMap();
434
+ _GxIdeWWFiles_componentLocale = new WeakMap(), _GxIdeWWFiles_ACCORDION_MODEL = new WeakMap(), _GxIdeWWFiles_nameValue = new WeakMap(), _GxIdeWWFiles_moduleValue = new WeakMap(), _GxIdeWWFiles_searchContentsValue = new WeakMap(), _GxIdeWWFiles_categoryValue = new WeakMap(), _GxIdeWWFiles_allDescendants = new WeakMap(), _GxIdeWWFiles_userValue = new WeakMap(), _GxIdeWWFiles_selectedObjectsIds = new WeakMap(), _GxIdeWWFiles_chGridEl = new WeakMap(), _GxIdeWWFiles_filterModuleEl = new WeakMap(), _GxIdeWWFiles_setFilterDefaultValues = new WeakMap(), _GxIdeWWFiles_allDescendantsCheckboxHandler = new WeakMap(), _GxIdeWWFiles_handleSelectionChanged = new WeakMap(), _GxIdeWWFiles_handleRowDoubleClicked = new WeakMap(), _GxIdeWWFiles_handleRowContextMenu = new WeakMap(), _GxIdeWWFiles_attachGridListeners = new WeakMap(), _GxIdeWWFiles_categoryInputHandler = new WeakMap(), _GxIdeWWFiles_clearDateTimeValue = new WeakMap(), _GxIdeWWFiles_dateTimeInputHandler = new WeakMap(), _GxIdeWWFiles_deleteSelectionCallbackHandler = new WeakMap(), _GxIdeWWFiles_deselectAll = new WeakMap(), _GxIdeWWFiles_evaluateModifiedDates = new WeakMap(), _GxIdeWWFiles_filterAfterTypeCallbackHandler = new WeakMap(), _GxIdeWWFiles_formatDate = new WeakMap(), _GxIdeWWFiles_getObjects = new WeakMap(), _GxIdeWWFiles_renderHeader = new WeakMap(), _GxIdeWWFiles_renderObjects = new WeakMap(), _GxIdeWWFiles_moduleValueChangedHandler = new WeakMap(), _GxIdeWWFiles_nameInputHandler = new WeakMap(), _GxIdeWWFiles_newFileCallbackHandler = new WeakMap(), _GxIdeWWFiles_openSelectionCallbackHandler = new WeakMap(), _GxIdeWWFiles_searchContentsInputHandler = new WeakMap(), _GxIdeWWFiles_setLoadingState = new WeakMap(), _GxIdeWWFiles_userInputHandler = new WeakMap(), _GxIdeWWFiles_showModifiedCheckboxHandler = new WeakMap(), _GxIdeWWFiles_selectAll = new WeakMap();
388
435
  GxIdeWWFiles.style = wwFilesCss;
389
436
 
390
437
  export { GxIdeWWFiles as gx_ide_ww_files };
@@ -1 +1 @@
1
- {"file":"gx-ide-ww-files.entry.js","mappings":"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","names":[],"sources":["src/components/ww-files/helpers.tsx","src/components/ww-files/ww-files.scss?tag=gx-ide-ww-files&encapsulation=shadow","src/components/ww-files/ww-files.tsx"],"sourcesContent":["import { h } from \"@stencil/core\";\n\nimport { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../..\";\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel => {\n return options.map(option => {\n return {\n value: option.id,\n caption: option.label,\n startImgSrc: option.iconName ?? \"\"\n };\n });\n};\n\nconst escapeRegExp = (string: string) => {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\nexport const hiChar = (text: string, search: string): Element[] | string => {\n if (!search) {\n return text;\n }\n const escapedSearch = escapeRegExp(search);\n const parts = text.split(new RegExp(`(${escapedSearch})`, \"gi\"));\n return parts.map((part, i) =>\n part.toLowerCase() === search.toLowerCase() ? (\n <span key={i} class=\"hiChar\">\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n container-type: inline-size;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - -\n\n.header {\n grid-template-areas:\n \"name module-folder\"\n \"advanced-filter advanced-filter\";\n grid-template-columns: 1fr 1fr;\n grid-auto-rows: max-content max-content;\n}\n.name {\n grid-area: name;\n}\n.module-folder {\n grid-area: module-folder;\n}\n.advanced-filter {\n grid-area: advanced-filter;\n}\n\n// Advanced Filter\n.advanced-filter {\n &__container {\n display: grid;\n grid-auto-rows: max-content;\n }\n &__first-row {\n grid-template-columns: 1fr 1fr;\n }\n &__second-row {\n grid-template-columns: 1fr 1fr 1fr;\n }\n .all-descendants__modified {\n display: flex;\n flex-direction: row;\n align-items: center;\n block-size: 32px;\n gap: 16px;\n align-self: self-end;\n }\n}\n// date/time\n.field-date {\n grid-template-areas:\n \"label-date-time label-date-time\"\n \"input-date-time icon-clear-date-time\";\n grid-template-columns: 1fr max-content;\n column-gap: var(--mer-spacing--2xs);\n}\n.label-date-time {\n // WA: There is no official way to use an icon (ch-image) within a label\n display: flex;\n align-items: center;\n gap: 6px;\n .icon-md {\n // WA: Icon looks so small that it is not recognizable\n --mer-icon__box--md: 16.8px;\n }\n grid-area: label-date-time;\n}\n.input-date-time {\n block-size: 31.98px; // WA: ch-edit of type \"date\" block-size is a little bit larger than regular ch-edit block-size. It should compute to 31.98px at the time of writting.\n grid-area: input-date-time;\n}\n.icon-clear-date-time {\n grid-area: icon-clear-date-time;\n}\n\n// - - - - - - - - - - - -\n// Grid\n// - - - - - - - - - - - -\n\n.tabular-grid {\n overflow: auto;\n inline-size: 100%;\n border-inline-end: var(--section-common-border);\n}\n.tabular-grid.empty::part(main),\n.tabular-grid.loading::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\nch-tabular-grid-rowset-empty {\n position: relative;\n}\n.main__files-container {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--mer-spacing--xs);\n position: relative;\n z-index: 1;\n}\n\n@include hiChar;\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 4\n )\n);\n.tabular-grid-cell-description {\n min-inline-size: max-content !important; // TODO: See how to remove the !important\n}\n\n@include hiChar();\n\n// - - - - - - - - - - - -\n// Responsive\n// - - - - - - - - - - - -\n\n// @container (max-width: 992px) {\n// .main__files-container {\n// grid-template-columns: repeat(3, 1fr);\n// }\n// }\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n Listen,\n Watch\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { GxOption } from \"../../common/types\";\nimport { EntityData, ContextMenuInfo } from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { mapOptionsToComboBoxItemModel, hiChar } from \"./helpers\";\nimport {\n AccordionModel,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\nimport { formatDate } from \"../../common/helpers\";\nimport { GxIdeEntitySelectorCustomEvent } from \"../..\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/combo-box\",\n \"components/accordion\",\n \"components/edit\",\n \"components/icon\",\n \"components/tooltip\",\n \"components/tabular-grid\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst CLEAR_ICON = getIconPath({\n category: \"system\",\n name: \"close\",\n colorType: \"neutral\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-elevation\"\n});\n\nconst ACCORDION_FILTER_ID = \"advanced-filter\";\nconst FILTER_AFTER_DATE_TIME = \"afterDateTime\";\nconst FILTER_AFTER_LAST_BUILD = \"afterLastBuild\";\nconst FILTER_AFTER_IMPORT = \"afterImport\";\n\nconst CHECKBOX_CHECKED_VALUE = \"checked\";\nconst CHECKBOX_UNCHECKED_VALUE = \"unchecked\";\n\n@Component({\n tag: \"gx-ide-ww-files\",\n styleUrl: \"ww-files.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-files\"]\n})\nexport class GxIdeWWFiles {\n #componentLocale: any;\n #ACCORDION_MODEL: AccordionModel = [];\n\n // Filter Values\n #nameValue: string;\n #moduleValue: EntityData;\n // Advanced Filter Values\n #searchContentsValue: string;\n #categoryValue: string;\n #allDescendants: CheckboxState;\n #userValue: string;\n // Other\n #selectedObjectsIds: string[] = [];\n\n @Element() el: HTMLGxIdeWwFilesElement;\n #chGridEl!: HTMLChTabularGridElement;\n #filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n\n /**\n * The \"After\" control value. Controls the visibility of the \"Date/Time\" control.\n */\n @State() afterValue: string;\n\n /**\n * The \"Category\" options as combo box model\n */\n @State() categoriesComboBoxModel: ComboBoxModel = [];\n\n /**\n * Value of the Date/Time control\n */\n @State() dateTimeValue: string;\n @Watch(\"dateTimeValue\")\n dateTimeValueChanged() {\n this.#getObjects();\n }\n\n /**\n * A loader that is shown when the filter changes and the server has to retrieve new data.\n */\n @State() isLoading: boolean = true;\n\n /**\n * The options for the \"After\" combo-box\n */\n @State() filterAfterComboBoxModel: ComboBoxModel;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() showModified: CheckboxState = CHECKBOX_CHECKED_VALUE;\n\n /**\n * The files rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n @Watch(\"categories\")\n categoriesChanged(newCategories: GxOption[]) {\n this.categoriesComboBoxModel = mapOptionsToComboBoxItemModel(newCategories);\n }\n\n /**\n * This is a function provided by the developer for show the context menu of the selected files.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * The default value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * This is a function provided by the developer for delete the selected files.\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * Controls the visibility of the tabular grid cell columns, and respective cells.\n */\n @Prop() readonly gridColumnsVisibility: GridColumnsVisibility = {\n description: true,\n importDate: true,\n lastBuildDate: true,\n lastUser: true,\n modifiedDate: true\n };\n\n /**\n * This is a function provided by the developer that return a list of files to populate the table of files.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n *\n */\n @Prop() readonly newFileCallback!: NewFileCallback;\n\n /**\n * This is a function provided by the developer to expand the data of files that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter (button '...'). It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback!: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of files that is double-clicked or entered.\n */\n @Prop() readonly selectionChangeCallback!: SelectionChangeCallback;\n\n /**\n * Controls whether to show the Search contents field in the advanced filter section (Not available at the time of writting, since the server is not handling this feature yet.)\n */\n @Prop() readonly showSearchContents = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // initialize combo-box models∂\n this.categoriesChanged(this.categories);\n\n // initialize \"After\" combo-box options\n this.filterAfterComboBoxModel = [\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_DATE_TIME],\n value: FILTER_AFTER_DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_LAST_BUILD],\n value: FILTER_AFTER_LAST_BUILD\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_IMPORT],\n value: FILTER_AFTER_IMPORT\n }\n ];\n\n // initialize accordion model with proper configuration\n this.#ACCORDION_MODEL = [\n {\n id: ACCORDION_FILTER_ID,\n caption: this.#componentLocale.filter.accordionCaption,\n expanded: false\n }\n ];\n\n this.#setFilterDefaultValues();\n }\n #setFilterDefaultValues = () => {\n this.#nameValue = \"\";\n this.#moduleValue = { ...this.defaultModule };\n this.#searchContentsValue = \"\";\n this.#categoryValue =\n this.defaultCategory || this.categoriesComboBoxModel[0].value;\n this.#allDescendants = CHECKBOX_UNCHECKED_VALUE;\n this.afterValue = this.filterAfterComboBoxModel[0].value;\n this.#userValue = \"\";\n this.dateTimeValue = undefined;\n };\n\n componentDidLoad() {\n this.#attachGridListeners();\n this.#getObjects();\n }\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n eventInfo.preventDefault();\n this.#openSelectionCallbackHandler();\n break;\n case \"Delete\":\n eventInfo.preventDefault();\n this.#deleteSelectionCallbackHandler();\n break;\n case \"Escape\":\n eventInfo.preventDefault();\n this.#deselectAll();\n break;\n }\n }\n }\n\n /**\n * This method reload the view, refreshing the filters and the table of files.\n */\n @Method()\n async reload(): Promise<void> {\n this.#setFilterDefaultValues();\n this.#getObjects();\n }\n\n #allDescendantsCheckboxHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.#allDescendants =\n event.detail === CHECKBOX_CHECKED_VALUE\n ? CHECKBOX_CHECKED_VALUE\n : CHECKBOX_UNCHECKED_VALUE;\n this.#getObjects();\n };\n\n #attachGridListeners = (): void => {\n this.#chGridEl.addEventListener(\"selectionChanged\", (ev: any): void => {\n this.#selectedObjectsIds = ev.detail.rowsId;\n this.selectionChangeCallback(this.#selectedObjectsIds);\n });\n\n this.#chGridEl.addEventListener(\"rowDoubleClicked\", (): void => {\n this.#openSelectionCallbackHandler();\n });\n\n this.#chGridEl.addEventListener(\n \"rowContextMenu\",\n (ev: CustomEvent<TabularGridRowContextMenuEvent>): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.contextMenuCallback({\n selection: ev.detail.selectedRowsId,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n }\n );\n };\n\n #categoryInputHandler = async (event: CustomEvent<string> | InputEvent) => {\n this.#categoryValue = event.detail as string;\n this.#getObjects();\n };\n\n #clearDateTimeValue = () => {\n this.dateTimeValue = undefined;\n };\n\n #dateTimeInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.dateTimeValue = event.detail;\n this.#getObjects();\n };\n\n #deleteSelectionCallbackHandler = (): void => {\n this.deleteSelectionCallback(this.#selectedObjectsIds);\n };\n\n #deselectAll = (): void => {\n (this.#chGridEl as any).selectAllRows(false);\n };\n\n #evaluateModifiedDates = (\n objectModifiedDate: Date,\n filterSelectedModifiedDate: string\n ) => {\n const filterSelectedModifiedDateAsDate = new Date(\n filterSelectedModifiedDate\n );\n if (filterSelectedModifiedDateAsDate >= objectModifiedDate) {\n // Object modifed date matches with filter date, or was modified after that date.\n // Highlight to show that it matches.\n return <span class=\"hiChar\">{this.#formatDate(objectModifiedDate)}</span>;\n } else {\n return this.#formatDate(objectModifiedDate);\n }\n };\n\n #filterAfterTypeCallbackHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.afterValue = event.detail as string;\n this.#getObjects();\n };\n\n #formatDate = (date: Date): string => {\n return formatDate(date, \"date-time-short\");\n };\n\n #getObjects = () => {\n this.#setLoadingState();\n const filtersValues: ObjectFiltersData = {\n name: this.#nameValue,\n searchContents: this.#searchContentsValue,\n category: this.#categoryValue,\n parent: this.#filterModuleEl.value.id,\n allDescendants: this.#allDescendants === CHECKBOX_CHECKED_VALUE,\n modifiedAfter: this.showModified ? this.afterValue : undefined,\n modifiedBy: this.showModified ? this.#userValue : undefined,\n modifiedDate: this.showModified ? new Date(this.dateTimeValue) : undefined\n };\n this.loadCallback(filtersValues).then((items: ObjectData[]) => {\n this.objects = items;\n this.#selectedObjectsIds = [];\n this.#deselectAll();\n this.isLoading = false;\n });\n };\n\n #renderHeader = (): Element[] => {\n return [\n <div\n // Name\n class=\"field field-block field-name\"\n >\n <label class=\"label\" htmlFor=\"name\">\n {this.#componentLocale.filter.name}\n </label>\n <ch-edit\n id=\"name\"\n class=\"input\"\n value={this.#nameValue}\n onInput={this.#nameInputHandler}\n part=\"filter-files\"\n debounce={config.inputDebounce}\n disabled={this.isLoading}\n ></ch-edit>\n </div>,\n\n <div\n // Module\n class=\"field field-block field-module-folder\"\n >\n <label class=\"label\" htmlFor=\"module-folder\">\n {this.#componentLocale.filter.moduleFolder}\n </label>\n <gx-ide-entity-selector\n part=\"filter-module-folder\"\n id=\"module/folder\"\n labelPosition=\"none\"\n value={this.#moduleValue}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n onValueChanged={this.#moduleValueChangedHandler}\n disabled={this.isLoading}\n ></gx-ide-entity-selector>\n </div>,\n\n <ch-accordion-render\n class=\"accordion-outlined advanced-filter\"\n model={this.#ACCORDION_MODEL}\n >\n <div\n slot={ACCORDION_FILTER_ID}\n class=\"spacing-body field-group advanced-filter__container\"\n >\n {this.showSearchContents && (\n <div\n // Search contents\n class=\"field field-block field-search-contents\"\n >\n <label class=\"label\" htmlFor=\"filter-content\">\n {this.#componentLocale.filter.content}\n </label>\n <ch-edit\n id=\"filter-content\"\n class=\"input\"\n onInput={this.#searchContentsInputHandler}\n part=\"filter-content\"\n ></ch-edit>\n </div>\n )}\n\n <div class=\"field-group advanced-filter__first-row\">\n <div\n // Category\n class=\"field field-block field-category\"\n >\n <label class=\"label\" htmlFor=\"filter-category\">\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"filter-category\"\n class=\"combo-box disabled\"\n value={this.#categoryValue}\n disabled={!this.categories || this.isLoading}\n model={this.categoriesComboBoxModel}\n part=\"filter-category\"\n onInput={this.#categoryInputHandler}\n ></ch-combo-box-render>\n </div>\n\n <div\n // All descendants / Modified\n class=\"all-descendants__modified field field-inline\"\n >\n <ch-checkbox\n // All descendants\n class=\"checkbox\"\n caption={this.#componentLocale.filter.allDescendants}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_UNCHECKED_VALUE}\n value={this.#allDescendants}\n onInput={this.#allDescendantsCheckboxHandler}\n part=\"filter-all-descendants\"\n disabled={this.isLoading}\n ></ch-checkbox>\n\n <ch-checkbox\n // Modified\n class=\"checkbox align-center\"\n caption={this.#componentLocale.filter.modified}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_UNCHECKED_VALUE}\n value={this.showModified}\n onInput={this.#showModifiedCheckboxHandler}\n part=\"filter-modified\"\n ></ch-checkbox>\n </div>\n </div>\n\n {this.showModified === CHECKBOX_CHECKED_VALUE && (\n <div class=\"field-group advanced-filter__second-row\">\n <div\n // After\n class=\"field field-block field-after\"\n >\n <label class=\"label\" htmlFor=\"filter-after-type\">\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n id=\"filter-after-type\"\n class=\"combo-box\"\n value={this.afterValue}\n model={this.filterAfterComboBoxModel}\n onInput={this.#filterAfterTypeCallbackHandler}\n part=\"filter-after-type\"\n disabled={this.isLoading}\n ></ch-combo-box-render>\n </div>\n\n <div\n // User\n class=\"field field-block field-user\"\n >\n <label class=\"label\" htmlFor=\"filter-user\">\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n id=\"filter-user\"\n class=\"input\"\n value={this.#userValue}\n onInput={this.#userInputHandler}\n part=\"filter-user\"\n debounce={config.inputDebounce}\n disabled={this.isLoading}\n ></ch-edit>\n </div>\n\n {this.afterValue === FILTER_AFTER_DATE_TIME && (\n <div\n // Date/Time\n class={{\n \"field field-block field-date\": true,\n \"hide\": this.afterValue !== FILTER_AFTER_DATE_TIME\n }}\n >\n <label\n class=\"label label-date-time\"\n htmlFor=\"filter-date-time\"\n >\n {this.#componentLocale.filter.dateTime}\n <ch-image\n class=\"icon-md icon-clear-date-time\"\n src={INFO_ICON}\n ></ch-image>\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-start\"\n inlineAlign=\"inside-start\"\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.filter.dateTimeTooltip}\n </ch-tooltip>\n </label>\n\n <ch-edit\n id=\"filter-date-time\"\n type=\"datetime-local\"\n class=\"input input-date-time\"\n value={this.dateTimeValue}\n onInput={this.#dateTimeInputHandler}\n part=\"filter-date-time\"\n disabled={this.isLoading}\n ></ch-edit>\n\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#clearDateTimeValue}\n disabled={this.isLoading}\n >\n <ch-image class=\"icon-md\" src={CLEAR_ICON} type=\"mask\" />\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n </ch-accordion-render>\n ];\n };\n\n #renderObjects = (): Element => {\n const gridIsEmpty = !this.objects.length;\n\n return (\n <ch-tabular-grid\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n class={{\n \"tabular-grid\": true,\n \"loading\": this.isLoading,\n \"empty\": this.objects.length === 0\n }}\n rowSelectionMode=\"multiple\"\n part=\"ch-grid-files\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnName=\"\"\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.name}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.module}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n {this.gridColumnsVisibility.description && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.description}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.modifiedDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.modifiedDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.lastUser && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.lastUser}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.importDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.importDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.lastBuildDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.lastBuildDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n </ch-tabular-grid-columnset>\n\n {!gridIsEmpty ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects?.map((object: ObjectData) => (\n <ch-tabular-grid-row rowid={object.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={object.icon}></ch-image>\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.name.toLowerCase(),\n this.#nameValue.toLowerCase()\n )}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(object.parent, this.#moduleValue.name)}\n </ch-tabular-grid-cell>\n\n {this.gridColumnsVisibility.description && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-description\">\n {object.description}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.modifiedDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#evaluateModifiedDates(\n object.modifiedDate,\n this.dateTimeValue\n )}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.lastUser && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(object.lastUser?.toLowerCase(), this.#userValue)}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.importDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.importDate\n ? this.#formatDate(object.importDate)\n : \"\",\n this.#nameValue\n )}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.lastBuildDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.lastBuildDate\n ? this.#formatDate(object.lastBuildDate)\n : \"\",\n this.#nameValue\n )}\n </ch-tabular-grid-cell>\n )}\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 {this.isLoading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n isAnimated={true}\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #moduleValueChangedHandler = (\n event: GxIdeEntitySelectorCustomEvent<EntityData>\n ) => {\n this.#moduleValue = event.detail;\n this.#getObjects();\n };\n\n #nameInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#nameValue = event.detail;\n this.#getObjects();\n };\n\n #newFileCallbackHandler = (): void => {\n this.newFileCallback();\n };\n\n #openSelectionCallbackHandler = (): void => {\n this.openSelectionCallback(this.#selectedObjectsIds);\n };\n\n #searchContentsInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#searchContentsValue = event.detail;\n this.#getObjects();\n };\n\n #setLoadingState = () => {\n this.objects = [];\n this.isLoading = true;\n };\n\n #userInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#userValue = event.detail;\n this.#getObjects();\n };\n\n #showModifiedCheckboxHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.showModified = event.detail;\n };\n\n #selectAll = (): void => {\n (this.#chGridEl as any).selectAllRows();\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start field-group\">\n {this.#renderHeader()}\n </header>\n\n {this.#renderObjects()}\n\n <footer class=\"control-footer-with-border control-footer-space-between spacing-body\">\n <p\n // matching objects\n class=\"text-body\"\n part=\"objects-matching\"\n >\n {`${this.objects?.length} ${\n this.#componentLocale.objCount.matching\n }`}\n </p>\n\n <div class=\"buttons-spacer\">\n <button\n // select all button\n id=\"button-select-all\"\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button--select-all\"\n disabled={this.isLoading}\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n\n <button\n // new file button\n id=\"button-new-file\"\n class=\"button-primary button-icon-and-text\"\n onClick={this.#newFileCallbackHandler}\n part=\"button button--new-file\"\n disabled={this.isLoading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type SelectionChangeCallback = (ids: string[]) => Promise<void>;\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n// export type ContextMenuCallback = (ids: string[]) => Promise<void>;\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport type NewFileCallback = () => Promise<void>;\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport interface ObjectFiltersData {\n name?: string;\n searchContents?: string;\n category?: string;\n parent?: string;\n allDescendants?: boolean;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n}\nexport interface ObjectData {\n id: string;\n icon: string;\n name: string;\n description: string;\n parent: string;\n modifiedDate?: Date;\n lastUser?: string;\n importDate?: Date;\n lastBuildDate: Date;\n}\n\nexport type GridColumnsVisibility = {\n description: boolean;\n importDate: boolean;\n lastBuildDate: boolean;\n lastUser: boolean;\n modifiedDate: boolean;\n};\n\ntype CheckboxState =\n | typeof CHECKBOX_CHECKED_VALUE\n | typeof CHECKBOX_UNCHECKED_VALUE;\n"],"version":3}
1
+ {"file":"gx-ide-ww-files.entry.js","mappings":"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","names":[],"sources":["src/components/ww-files/helpers.tsx","src/components/ww-files/ww-files.scss?tag=gx-ide-ww-files&encapsulation=shadow","src/components/ww-files/ww-files.tsx"],"sourcesContent":["import { h } from \"@stencil/core\";\n\nimport { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../..\";\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel => {\n return options.map(option => {\n return {\n value: option.id,\n caption: option.label,\n startImgSrc: option.iconName ?? \"\"\n };\n });\n};\n\nconst escapeRegExp = (string: string) => {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\nexport const hiChar = (text: string, search: string): Element[] | string => {\n if (!search) {\n return text;\n }\n const escapedSearch = escapeRegExp(search);\n const parts = text.split(new RegExp(`(${escapedSearch})`, \"gi\"));\n return parts.map((part, i) =>\n part.toLowerCase() === search.toLowerCase() ? (\n <span key={i} class=\"hiChar\">\n {part}\n </span>\n ) : (\n part\n )\n );\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n container-type: inline-size;\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// - - - - - - - - - - - -\n// Header\n// - - - - - - - - - - - -\n\n.header {\n grid-template-areas:\n \"name module-folder\"\n \"advanced-filter advanced-filter\";\n grid-template-columns: 1fr 1fr;\n grid-auto-rows: max-content max-content;\n}\n.name {\n grid-area: name;\n}\n.module-folder {\n grid-area: module-folder;\n}\n.advanced-filter {\n grid-area: advanced-filter;\n}\n\n// Advanced Filter\n.advanced-filter {\n &__container {\n display: grid;\n grid-auto-rows: max-content;\n }\n &__first-row {\n grid-template-columns: 1fr 1fr;\n }\n &__second-row {\n grid-template-columns: 1fr 1fr 1fr;\n }\n .all-descendants__modified {\n display: flex;\n flex-direction: row;\n align-items: center;\n block-size: 32px;\n gap: 16px;\n align-self: self-end;\n }\n}\n// date/time\n.field-date {\n grid-template-areas:\n \"label-date-time label-date-time\"\n \"input-date-time icon-clear-date-time\";\n grid-template-columns: 1fr max-content;\n column-gap: var(--mer-spacing--2xs);\n}\n.label-date-time {\n // WA: There is no official way to use an icon (ch-image) within a label\n display: flex;\n align-items: center;\n gap: 6px;\n .icon-md {\n // WA: Icon looks so small that it is not recognizable\n --mer-icon__box--md: 16.8px;\n }\n grid-area: label-date-time;\n}\n.input-date-time {\n block-size: 31.98px; // WA: ch-edit of type \"date\" block-size is a little bit larger than regular ch-edit block-size. It should compute to 31.98px at the time of writting.\n grid-area: input-date-time;\n}\n.icon-clear-date-time {\n grid-area: icon-clear-date-time;\n}\n\n// - - - - - - - - - - - -\n// Grid\n// - - - - - - - - - - - -\n\n.tabular-grid {\n overflow: auto;\n inline-size: 100%;\n border-inline-end: var(--section-common-border);\n}\n.tabular-grid.empty::part(main),\n.tabular-grid.loading::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\nch-tabular-grid-rowset-empty {\n position: relative;\n}\n.main__files-container {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: var(--mer-spacing--xs);\n position: relative;\n z-index: 1;\n}\n\n@include hiChar;\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 4\n )\n);\n.tabular-grid-cell-description {\n min-inline-size: max-content !important; // TODO: See how to remove the !important\n}\n\n@include hiChar();\n\n// - - - - - - - - - - - -\n// Responsive\n// - - - - - - - - - - - -\n\n// @container (max-width: 992px) {\n// .main__files-container {\n// grid-template-columns: repeat(3, 1fr);\n// }\n// }\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n Listen,\n Watch\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { GxOption } from \"../../common/types\";\nimport { EntityData, ContextMenuInfo } from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { mapOptionsToComboBoxItemModel, hiChar } from \"./helpers\";\nimport {\n AccordionModel,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\nimport { formatDate } from \"../../common/helpers\";\nimport { GxIdeEntitySelectorCustomEvent } from \"../..\";\n\ninterface TabularGridWithSelection extends HTMLChTabularGridElement {\n selectAllRows: (select?: boolean) => Promise<void>;\n}\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/checkbox\",\n \"components/combo-box\",\n \"components/accordion\",\n \"components/edit\",\n \"components/icon\",\n \"components/tooltip\",\n \"components/tabular-grid\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst CLEAR_ICON = getIconPath({\n category: \"system\",\n name: \"close\",\n colorType: \"neutral\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-elevation\"\n});\n\nconst ACCORDION_FILTER_ID = \"advanced-filter\";\nconst FILTER_AFTER_DATE_TIME = \"afterDateTime\";\nconst FILTER_AFTER_LAST_BUILD = \"afterLastBuild\";\nconst FILTER_AFTER_IMPORT = \"afterImport\";\n\nconst CHECKBOX_CHECKED_VALUE = \"checked\";\nconst CHECKBOX_UNCHECKED_VALUE = \"unchecked\";\n\n@Component({\n tag: \"gx-ide-ww-files\",\n styleUrl: \"ww-files.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/ww-files\"]\n})\nexport class GxIdeWWFiles {\n #componentLocale: any;\n #ACCORDION_MODEL: AccordionModel = [];\n\n // Filter Values\n #nameValue: string;\n #moduleValue: EntityData;\n // Advanced Filter Values\n #searchContentsValue: string;\n #categoryValue: string;\n #allDescendants: CheckboxState;\n #userValue: string;\n // Other\n #selectedObjectsIds: string[] = [];\n\n @Element() el: HTMLGxIdeWwFilesElement;\n #chGridEl!: HTMLChTabularGridElement;\n #filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n\n /**\n * The \"After\" control value. Controls the visibility of the \"Date/Time\" control.\n */\n @State() afterValue: string;\n\n /**\n * The \"Category\" options as combo box model\n */\n @State() categoriesComboBoxModel: ComboBoxModel = [];\n\n /**\n * Value of the Date/Time control\n */\n @State() dateTimeValue: string;\n @Watch(\"dateTimeValue\")\n dateTimeValueChanged() {\n this.#getObjects();\n }\n\n /**\n * A loader that is shown when the filter changes and the server has to retrieve new data.\n */\n @State() isLoading: boolean = true;\n\n /**\n * The options for the \"After\" combo-box\n */\n @State() filterAfterComboBoxModel: ComboBoxModel;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() showModified: CheckboxState = CHECKBOX_CHECKED_VALUE;\n\n /**\n * The files rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n @Watch(\"categories\")\n categoriesChanged(newCategories: GxOption[]) {\n this.categoriesComboBoxModel = mapOptionsToComboBoxItemModel(newCategories);\n }\n\n /**\n * This is a function provided by the developer for show the context menu of the selected files.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * The default value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * This is a function provided by the developer for delete the selected files.\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\n\n /**\n * Controls the visibility of the tabular grid cell columns, and respective cells.\n */\n @Prop() readonly gridColumnsVisibility: GridColumnsVisibility = {\n description: true,\n importDate: true,\n lastBuildDate: true,\n lastUser: true,\n modifiedDate: true\n };\n\n /**\n * This is a function provided by the developer that return a list of files to populate the table of files.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n *\n */\n @Prop() readonly newFileCallback!: NewFileCallback;\n\n /**\n * This is a function provided by the developer to expand the data of files that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Callback invoked when the action is executed on the Module/Folder filter (button '...'). It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback!: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of files that is double-clicked or entered.\n */\n @Prop() readonly selectionChangeCallback!: SelectionChangeCallback;\n\n /**\n * Controls whether to show the Search contents field in the advanced filter section (Not available at the time of writting, since the server is not handling this feature yet.)\n */\n @Prop() readonly showSearchContents = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // initialize combo-box models∂\n this.categoriesChanged(this.categories);\n\n // initialize \"After\" combo-box options\n this.filterAfterComboBoxModel = [\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_DATE_TIME],\n value: FILTER_AFTER_DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_LAST_BUILD],\n value: FILTER_AFTER_LAST_BUILD\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER_IMPORT],\n value: FILTER_AFTER_IMPORT\n }\n ];\n\n // initialize accordion model with proper configuration\n this.#ACCORDION_MODEL = [\n {\n id: ACCORDION_FILTER_ID,\n caption: this.#componentLocale.filter.accordionCaption,\n expanded: false\n }\n ];\n\n this.#setFilterDefaultValues();\n }\n #setFilterDefaultValues = () => {\n this.#nameValue = \"\";\n this.#moduleValue = { ...this.defaultModule };\n this.#searchContentsValue = \"\";\n\n this.#categoryValue =\n this.defaultCategory ||\n (this.categoriesComboBoxModel && this.categoriesComboBoxModel.length > 0\n ? this.categoriesComboBoxModel[0].value\n : \"\");\n\n this.#allDescendants = CHECKBOX_UNCHECKED_VALUE;\n\n this.afterValue =\n this.filterAfterComboBoxModel && this.filterAfterComboBoxModel.length > 0\n ? this.filterAfterComboBoxModel[0].value\n : FILTER_AFTER_DATE_TIME;\n\n this.#userValue = \"\";\n this.dateTimeValue = undefined;\n };\n\n componentDidLoad() {\n this.#attachGridListeners();\n this.#getObjects();\n }\n\n disconnectedCallback() {\n // Clean up event listeners to prevent memory leaks\n if (this.#chGridEl) {\n this.#chGridEl.removeEventListener(\"selectionChanged\", this.#handleSelectionChanged);\n this.#chGridEl.removeEventListener(\"rowDoubleClicked\", this.#handleRowDoubleClicked);\n this.#chGridEl.removeEventListener(\"rowContextMenu\", this.#handleRowContextMenu);\n }\n }\n\n @Listen(\"keydown\", { passive: true })\n keyDownHandler(eventInfo: KeyboardEvent) {\n if (document.activeElement === this.el) {\n switch (eventInfo.key) {\n case \"Enter\":\n eventInfo.preventDefault();\n this.#openSelectionCallbackHandler();\n break;\n case \"Delete\":\n eventInfo.preventDefault();\n this.#deleteSelectionCallbackHandler();\n break;\n case \"Escape\":\n eventInfo.preventDefault();\n this.#deselectAll();\n break;\n }\n }\n }\n\n /**\n * Reloads the view, refreshing the filters and the table of files.\n */\n @Method()\n async reload(): Promise<void> {\n try {\n if (this.#componentLocale && this.filterAfterComboBoxModel) {\n this.#setFilterDefaultValues();\n this.#getObjects();\n }\n } catch (error) {\n console.error(\"Error in reload method:\");\n // Fallback: try only getObjects if setFilterDefaultValues fails\n try {\n this.#getObjects();\n } catch (fallbackError) {\n console.error(\"Fallback also failed:\");\n }\n }\n }\n\n #allDescendantsCheckboxHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.#allDescendants =\n event.detail === CHECKBOX_CHECKED_VALUE\n ? CHECKBOX_CHECKED_VALUE\n : CHECKBOX_UNCHECKED_VALUE;\n this.#getObjects();\n };\n\n #handleSelectionChanged = (ev: CustomEvent<{ rowsId: string[] }>): void => {\n this.#selectedObjectsIds = ev.detail.rowsId;\n this.selectionChangeCallback(this.#selectedObjectsIds);\n };\n\n #handleRowDoubleClicked = (): void => {\n this.#openSelectionCallbackHandler();\n };\n\n #handleRowContextMenu = (ev: CustomEvent<TabularGridRowContextMenuEvent>): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.contextMenuCallback({\n selection: ev.detail.selectedRowsId,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n #attachGridListeners = (): void => {\n this.#chGridEl.addEventListener(\"selectionChanged\", this.#handleSelectionChanged);\n this.#chGridEl.addEventListener(\"rowDoubleClicked\", this.#handleRowDoubleClicked);\n this.#chGridEl.addEventListener(\"rowContextMenu\", this.#handleRowContextMenu);\n };\n\n #categoryInputHandler = async (event: CustomEvent<string> | InputEvent) => {\n this.#categoryValue = event.detail as string;\n this.#getObjects();\n };\n\n #clearDateTimeValue = () => {\n this.dateTimeValue = undefined;\n };\n\n #dateTimeInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.dateTimeValue = event.detail;\n this.#getObjects();\n };\n\n #deleteSelectionCallbackHandler = (): void => {\n this.deleteSelectionCallback(this.#selectedObjectsIds);\n };\n\n #deselectAll = (): void => {\n if (\n this.#chGridEl &&\n typeof (this.#chGridEl as TabularGridWithSelection).selectAllRows === \"function\"\n ) {\n (this.#chGridEl as TabularGridWithSelection).selectAllRows(false);\n }\n };\n\n #evaluateModifiedDates = (\n objectModifiedDate: Date,\n filterSelectedModifiedDate: string\n ) => {\n const filterSelectedModifiedDateAsDate = new Date(\n filterSelectedModifiedDate\n );\n if (filterSelectedModifiedDateAsDate >= objectModifiedDate) {\n // Object modifed date matches with filter date, or was modified after that date.\n // Highlight to show that it matches.\n return <span class=\"hiChar\">{this.#formatDate(objectModifiedDate)}</span>;\n } else {\n return this.#formatDate(objectModifiedDate);\n }\n };\n\n #filterAfterTypeCallbackHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.afterValue = event.detail as string;\n this.#getObjects();\n };\n\n #formatDate = (date: Date): string => {\n return formatDate(date, \"date-time-short\");\n };\n\n #getObjects = () => {\n this.#setLoadingState();\n\n const parentId =\n this.#filterModuleEl && this.#filterModuleEl.value\n ? this.#filterModuleEl.value.id\n : this.defaultModule\n ? this.defaultModule.id\n : \"\";\n\n const filtersValues: ObjectFiltersData = {\n name: this.#nameValue,\n searchContents: this.#searchContentsValue,\n category: this.#categoryValue,\n parent: parentId,\n allDescendants: this.#allDescendants === CHECKBOX_CHECKED_VALUE,\n modifiedAfter: this.showModified ? this.afterValue : undefined,\n modifiedBy: this.showModified ? this.#userValue : undefined,\n modifiedDate: this.showModified ? new Date(this.dateTimeValue) : undefined\n };\n\n this.loadCallback(filtersValues).then((items: ObjectData[]) => {\n this.objects = items;\n this.#selectedObjectsIds = [];\n\n if (this.#chGridEl) {\n this.#deselectAll();\n }\n\n this.isLoading = false;\n });\n };\n\n #renderHeader = (): Element[] => {\n return [\n <div\n // Name\n class=\"field field-block field-name\"\n >\n <label class=\"label\" htmlFor=\"name\">\n {this.#componentLocale.filter.name}\n </label>\n <ch-edit\n id=\"name\"\n class=\"input\"\n value={this.#nameValue}\n onInput={this.#nameInputHandler}\n part=\"filter-files\"\n debounce={config.inputDebounce}\n disabled={this.isLoading}\n ></ch-edit>\n </div>,\n\n <div\n // Module\n class=\"field field-block field-module-folder\"\n >\n <label class=\"label\" htmlFor=\"module-folder\">\n {this.#componentLocale.filter.moduleFolder}\n </label>\n <gx-ide-entity-selector\n part=\"filter-module-folder\"\n id=\"module/folder\"\n labelPosition=\"none\"\n value={this.#moduleValue}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n onValueChanged={this.#moduleValueChangedHandler}\n disabled={this.isLoading}\n ></gx-ide-entity-selector>\n </div>,\n\n <ch-accordion-render\n class=\"accordion-outlined advanced-filter\"\n model={this.#ACCORDION_MODEL}\n >\n <div\n slot={ACCORDION_FILTER_ID}\n class=\"spacing-body field-group advanced-filter__container\"\n >\n {this.showSearchContents && (\n <div\n // Search contents\n class=\"field field-block field-search-contents\"\n >\n <label class=\"label\" htmlFor=\"filter-content\">\n {this.#componentLocale.filter.content}\n </label>\n <ch-edit\n id=\"filter-content\"\n class=\"input\"\n onInput={this.#searchContentsInputHandler}\n part=\"filter-content\"\n ></ch-edit>\n </div>\n )}\n\n <div class=\"field-group advanced-filter__first-row\">\n <div\n // Category\n class=\"field field-block field-category\"\n >\n <label class=\"label\" htmlFor=\"filter-category\">\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"filter-category\"\n class=\"combo-box disabled\"\n value={this.#categoryValue}\n disabled={!this.categories || this.isLoading}\n model={this.categoriesComboBoxModel}\n part=\"filter-category\"\n onInput={this.#categoryInputHandler}\n ></ch-combo-box-render>\n </div>\n\n <div\n // All descendants / Modified\n class=\"all-descendants__modified field field-inline\"\n >\n <ch-checkbox\n // All descendants\n class=\"checkbox\"\n caption={this.#componentLocale.filter.allDescendants}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_UNCHECKED_VALUE}\n value={this.#allDescendants}\n onInput={this.#allDescendantsCheckboxHandler}\n part=\"filter-all-descendants\"\n disabled={this.isLoading}\n ></ch-checkbox>\n\n <ch-checkbox\n // Modified\n class=\"checkbox align-center\"\n caption={this.#componentLocale.filter.modified}\n checkedValue={CHECKBOX_CHECKED_VALUE}\n unCheckedValue={CHECKBOX_UNCHECKED_VALUE}\n value={this.showModified}\n onInput={this.#showModifiedCheckboxHandler}\n part=\"filter-modified\"\n ></ch-checkbox>\n </div>\n </div>\n\n {this.showModified === CHECKBOX_CHECKED_VALUE && (\n <div class=\"field-group advanced-filter__second-row\">\n <div\n // After\n class=\"field field-block field-after\"\n >\n <label class=\"label\" htmlFor=\"filter-after-type\">\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n id=\"filter-after-type\"\n class=\"combo-box\"\n value={this.afterValue}\n model={this.filterAfterComboBoxModel}\n onInput={this.#filterAfterTypeCallbackHandler}\n part=\"filter-after-type\"\n disabled={this.isLoading}\n ></ch-combo-box-render>\n </div>\n\n <div\n // User\n class=\"field field-block field-user\"\n >\n <label class=\"label\" htmlFor=\"filter-user\">\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n id=\"filter-user\"\n class=\"input\"\n value={this.#userValue}\n onInput={this.#userInputHandler}\n part=\"filter-user\"\n debounce={config.inputDebounce}\n disabled={this.isLoading}\n ></ch-edit>\n </div>\n\n {this.afterValue === FILTER_AFTER_DATE_TIME && (\n <div\n // Date/Time\n class={{\n \"field field-block field-date\": true,\n \"hide\": this.afterValue !== FILTER_AFTER_DATE_TIME\n }}\n >\n <label\n class=\"label label-date-time\"\n htmlFor=\"filter-date-time\"\n >\n {this.#componentLocale.filter.dateTime}\n <ch-image\n class=\"icon-md icon-clear-date-time\"\n src={INFO_ICON}\n ></ch-image>\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-start\"\n inlineAlign=\"inside-start\"\n delay={config.tooltipSettings.delay}\n >\n {this.#componentLocale.filter.dateTimeTooltip}\n </ch-tooltip>\n </label>\n\n <ch-edit\n id=\"filter-date-time\"\n type=\"datetime-local\"\n class=\"input input-date-time\"\n value={this.dateTimeValue}\n onInput={this.#dateTimeInputHandler}\n part=\"filter-date-time\"\n disabled={this.isLoading}\n ></ch-edit>\n\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#clearDateTimeValue}\n disabled={this.isLoading}\n >\n <ch-image class=\"icon-md\" src={CLEAR_ICON} type=\"mask\" />\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n </ch-accordion-render>\n ];\n };\n\n #renderObjects = (): Element => {\n const gridIsEmpty = !this.objects.length;\n\n return (\n <ch-tabular-grid\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n class={{\n \"tabular-grid\": true,\n \"loading\": this.isLoading,\n \"empty\": this.objects.length === 0\n }}\n rowSelectionMode=\"multiple\"\n part=\"ch-grid-files\"\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnName=\"\"\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.name}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.module}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n {this.gridColumnsVisibility.description && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.description}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.modifiedDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.modifiedDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.lastUser && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.lastUser}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.importDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.importDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.gridColumnsVisibility.lastBuildDate && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.lastBuildDate}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n </ch-tabular-grid-columnset>\n\n {!gridIsEmpty ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects?.map((object: ObjectData) => (\n <ch-tabular-grid-row rowid={object.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={object.icon}></ch-image>\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.name.toLowerCase(),\n this.#nameValue.toLowerCase()\n )}\n </ch-tabular-grid-cell>\n\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(object.parent, this.#moduleValue.name)}\n </ch-tabular-grid-cell>\n\n {this.gridColumnsVisibility.description && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-description\">\n {object.description}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.modifiedDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#evaluateModifiedDates(\n object.modifiedDate,\n this.dateTimeValue\n )}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.lastUser && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(object.lastUser?.toLowerCase(), this.#userValue)}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.importDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.importDate\n ? this.#formatDate(object.importDate)\n : \"\",\n this.#nameValue\n )}\n </ch-tabular-grid-cell>\n )}\n\n {this.gridColumnsVisibility.lastBuildDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {hiChar(\n object.lastBuildDate\n ? this.#formatDate(object.lastBuildDate)\n : \"\",\n this.#nameValue\n )}\n </ch-tabular-grid-cell>\n )}\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 {this.isLoading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n isAnimated={true}\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #moduleValueChangedHandler = (\n event: GxIdeEntitySelectorCustomEvent<EntityData>\n ) => {\n this.#moduleValue = event.detail;\n this.#getObjects();\n };\n\n #nameInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#nameValue = event.detail;\n this.#getObjects();\n };\n\n #newFileCallbackHandler = (): void => {\n this.newFileCallback();\n };\n\n #openSelectionCallbackHandler = (): void => {\n this.openSelectionCallback(this.#selectedObjectsIds);\n };\n\n #searchContentsInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#searchContentsValue = event.detail;\n this.#getObjects();\n };\n\n #setLoadingState = () => {\n // Only clear if no objects or first load\n if (!this.objects || this.objects.length === 0) {\n this.objects = [];\n }\n this.isLoading = true;\n };\n\n #userInputHandler = (event: CustomEvent<any> | InputEvent) => {\n this.#userValue = event.detail;\n this.#getObjects();\n };\n\n #showModifiedCheckboxHandler = (\n event: ChCheckboxCustomEvent<any> | InputEvent\n ) => {\n this.showModified = event.detail;\n };\n\n #selectAll = (): void => {\n if (\n this.#chGridEl &&\n typeof (this.#chGridEl as TabularGridWithSelection).selectAllRows === \"function\"\n ) {\n (this.#chGridEl as TabularGridWithSelection).selectAllRows();\n }\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <section class=\"section\">\n <header class=\"header control-header-with-border spacing-body-inline spacing-body-block-start field-group\">\n {this.#renderHeader()}\n </header>\n\n {this.#renderObjects()}\n\n <footer class=\"control-footer-with-border control-footer-space-between spacing-body\">\n <p\n // matching objects\n class=\"text-body\"\n part=\"objects-matching\"\n >\n {`${this.objects?.length} ${\n this.#componentLocale.objCount.matching\n }`}\n </p>\n\n <div class=\"buttons-spacer\">\n <button\n // select all button\n id=\"button-select-all\"\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button--select-all\"\n disabled={this.isLoading}\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n\n <button\n // new file button\n id=\"button-new-file\"\n class=\"button-primary button-icon-and-text\"\n onClick={this.#newFileCallbackHandler}\n part=\"button button--new-file\"\n disabled={this.isLoading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type SelectionChangeCallback = (ids: string[]) => Promise<void>;\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\nexport type DeleteSelectionCallback = (ids: string[]) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n// export type ContextMenuCallback = (ids: string[]) => Promise<void>;\nexport type ContextMenuCallback = (\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\nexport type NewFileCallback = () => Promise<void>;\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport interface ObjectFiltersData {\n name?: string;\n searchContents?: string;\n category?: string;\n parent?: string;\n allDescendants?: boolean;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n}\nexport interface ObjectData {\n id: string;\n icon: string;\n name: string;\n description: string;\n parent: string;\n modifiedDate?: Date;\n lastUser?: string;\n importDate?: Date;\n lastBuildDate: Date;\n}\n\nexport type GridColumnsVisibility = {\n description: boolean;\n importDate: boolean;\n lastBuildDate: boolean;\n lastUser: boolean;\n modifiedDate: boolean;\n};\n\ntype CheckboxState =\n | typeof CHECKBOX_CHECKED_VALUE\n | typeof CHECKBOX_UNCHECKED_VALUE;\n"],"version":3}
@@ -1,9 +1,9 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-10af18cf.js';
1
+ import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-25ff5600.js';
2
2
  import { L as Locale } from './locale-e5107fad.js';
3
3
  import { c as config } from './config-1ef9d75a.js';
4
- import { a as renderFormItems } from './common-c25d8c2f.js';
4
+ import { a as renderFormItems } from './common-c8407100.js';
5
5
  import { F as FILTER_AFTER } from './constants-f9193da7.js';
6
- import { c as closeOnOutsideClickHandler, h as hiChar, f as formatDate } from './helpers-a4f16ffb.js';
6
+ import { c as closeOnOutsideClickHandler, h as hiChar, f as formatDate } from './helpers-37946d65.js';
7
7
 
8
8
  const wwImagesCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.pill-tag{padding:1px 4px;border-radius:2px;min-inline-size:40px;text-align:center;margin-inline-end:10px;font-size:11px}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block}.module-folder::part(wrapper){padding-block:1.5px;margin-block-start:var(--gxg-label-separation-vertical)}.filter--padding{padding:var(--gx-ide-container__padding)}.filter--gap{gap:var(--gx-ide-grid-row-gap)}.filter{display:flex;flex-direction:column}.filter__first-row{display:flex;gap:var(--gx-ide-grid-column-gap)}.filter__first-row .name,.filter__first-row .module-folder{flex:1}.filter__first-row .filter-btn{flex:none}.filter__first-row .second-column{display:flex;flex-direction:row;align-items:end;gap:var(--gx-ide-grid-column-gap)}.filter__first-row>*{flex:1}.filter .checkboxes-label-wrapper{display:flex;flex-direction:column;gap:0}.filter .checkboxes-wrapper{display:flex;gap:var(--gx-ide-grid-column-gap);border-radius:var(--border-radius-sm);height:var(--gxg-form-text-height);box-sizing:border-box;align-items:center;padding-inline-start:var(--mer-spacing--2xs)}.filter .user{max-width:100% !important}.filters-outer-wrapper{display:grid;grid-template-rows:1fr;transition:grid-template-rows 200ms}.filters-outer-wrapper--hidden{grid-template-rows:0fr}.filters-inner-wrapper{padding-top:var(--gx-ide-container__padding);display:grid;overflow:hidden;grid-template-columns:repeat(12, 1fr);grid-template-rows:repeat(3, 1fr)}.filters-inner-wrapper .search-contents{grid-area:1/1/2/5}.filters-inner-wrapper .category{grid-area:1/5/2/9}.filters-inner-wrapper .options{grid-area:1/9/2/13}.filters-inner-wrapper .date-time{grid-area:2/1/3/5}.filters-inner-wrapper .after-date-time{grid-area:2/5/3/9}.filters-inner-wrapper .user{grid-area:2/9/3/13}.filters-inner-wrapper .style{grid-area:3/1/4/4}.filters-inner-wrapper .language{grid-area:3/4/4/7}.filters-inner-wrapper .density{grid-area:3/7/4/10}.filters-inner-wrapper .layer{grid-area:3/10/4/13}gxg-date-picker{position:absolute;inline-size:calc(33% - 16px)}gxg-date-picker::part(input){block-size:26px}.master-wrapper{height:100%;position:relative;display:grid;grid-template-rows:auto 1fr}.grid-images-container{border-top:1px solid var(--gx-ide-container-border-color);display:grid;grid-template-columns:1fr 220px;grid-column-gap:0;grid-row-gap:0;overflow:auto}.images-information__header{display:flex;align-items:center;gap:var(--gx-ide-grid-column-gap)}.images-information__header-title{flex:none}.images-grid{grid-template-columns:repeat(2, 1fr);grid-column-gap:0}.images-grid>:nth-child(1){grid-area:1/1/1/3}.images-container .image-item{display:inline-block;width:50%;height:110px;}.images-container .image-item__container{padding:var(--gx-ide-container__padding)}.images-container .image-item__container img{width:100%;height:100%;object-fit:scale-down}.images-container .image-item__name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;width:100%;display:block;font-size:10px;padding:4px 8px;box-sizing:border-box;background-color:var(--gray-00)}.images-container .image-item:nth-child(odd) .image-item__name{border-inline-end:1px solid var(--gray-02)}.objects-count{grid-template-columns:repeat(2, 1fr)}.objects-count *:nth-child(2){justify-content:flex-end;align-items:flex-start}.hiChar{color:var(--mer-color__primary--200);filter:brightness(1.3)}.tabular-grid-ww-images ch-tabular-grid-cell:is(:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}";
9
9
 
@@ -1,4 +1,4 @@
1
- import { h } from './index-10af18cf.js';
1
+ import { h } from './index-25ff5600.js';
2
2
 
3
3
  const daysOfWeek = [
4
4
  "Sunday",
@@ -148,4 +148,4 @@ const renderChCheckboxItems = (options, frontEndCheckboxInputHandler, checkedIds
148
148
 
149
149
  export { closeOnOutsideClickHandler as c, formatDate as f, hiChar as h, mapOptionsToComboBoxItemModel as m, renderChCheckboxItems as r };
150
150
 
151
- //# sourceMappingURL=helpers-a4f16ffb.js.map
151
+ //# sourceMappingURL=helpers-37946d65.js.map
@@ -1 +1 @@
1
- {"file":"helpers-a4f16ffb.js","mappings":";;AAWA,MAAM,UAAU,GAAG;IACjB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,UAAU;IACV,QAAQ;IACR,UAAU;CACX,CAAC;AA8EF,MAAM,aAAa,GAAG,CAAC,IAAU;IAC/B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;;IAEzB,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;;IAExD,MAAM,cAAc,GAAG,cAAc,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;IAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AACpC,CAAC,CAAC;AAEF;AACA;AACA;AAEA,MAAM,OAAO,GAAG,CAAC,IAAU;IACzB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,IAAI,KAAK,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE;QAChD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,IAAU;IAC7B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,SAAS,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE;QACpD,OAAO,IAAI,CAAC;KACb;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;MAEW,UAAU,GAAG,CACxB,IAAU,EACV,OAAuB,WAAW;;IAElC,IAAI,aAAa,CAAC;;;IAGlB,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE;QACvC,OAAO,EAAE,CAAC;KACX;;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IACtD,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,cAAc,CAAC;KACvB;IACD,IAAI,MAAM,GAAG,OAAO,CAAC;IACrB,MAAM,IAAI,GAAG,MAAA,QAAQ;SAClB,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SAC/B,YAAY,CAAC,MAAM,CAAC,0CACnB,OAAO,EAAE,CAAC;IACd,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,MAAM,GAAG,OAAO,CAAC;KAClB;IACD,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;IACnC,IAAI,IAAI,KAAK,WAAW,EAAE;QACxB,aAAa,IAAI,KAAK,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;KACnD;SAAM,IAAI,IAAI,KAAK,iBAAiB,EAAE;;QAErC,IAAI,MAAM,KAAK,OAAO,EAAE;YACtB,aAAa,GAAG,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;SACnD;aAAM;YACL,aAAa,GAAG,GAAG,KAAK,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;SACnD;KACF;SAAoB;QACnB,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,OAAO,SAAS,IAAI,EAAE,CAAC;SACxB;aAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,aAAa,IAAI,EAAE,CAAC;SAC5B;aAAM,IAAI,mBAAmB,IAAI,CAAC,EAAE;;YAEnC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACtC,OAAO,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;SACzB;aAAM,IAAI,WAAW,KAAK,IAAI,EAAE;;YAE/B,IAAI,MAAM,KAAK,OAAO,EAAE;gBACtB,aAAa,GAAG,GAAG,GAAG,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;oBACxD,KAAK,EAAE,MAAM;iBACd,CAAC,IAAI,IAAI,EAAE,CAAC;aACd;iBAAM;gBACL,aAAa,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;oBAC9C,KAAK,EAAE,MAAM;iBACd,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;aACrB;SACF;aAAM;;YAEL,aAAa,GAAG,UAAU,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;SACrD;KACF;IACD,OAAO,aAAa,CAAC;AACvB,EAAE;AAyCK,MAAM,YAAY,GAAG,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF;;;;;;;MAOa,MAAM,GAAG,UAAU,IAAY,EAAE,WAAmB;IAC/D,IAAI,IAAI,IAAI,WAAW,EAAE;QACvB,MAAM,kBAAkB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAChD,QACE,YACE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,gCAAgC,CAAC,GACvD,EACR;KACH;SAAM;QACL,OAAO,IAAI,CAAC;KACb;AACH,EAAE;MAEW,0BAA0B,GAAG,CACxC,SAAuB,EACvB,GAAgB;IAEhB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC3C,OAAO,IAAI,CAAC;KACb;AACH,EAAE;MAEW,6BAA6B,GAAG,CAC3C,OAAmB,KAEnB,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK;IACrB,KAAK,EAAE,MAAM,CAAC,EAAE;IAChB,OAAO,EAAE,MAAM,CAAC,KAAK;;CAEtB,CAAC,EAAE;MAEO,qBAAqB,GAAG,CACnC,OAA+B,EAC/B,4BAES,EACT,UAAoB;IAEpB,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,CAAC,MAAM;QACxB,MAAM,KAAK,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAC5B,EAAE,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,CAC9C,CAAC;QACF,QACE,mBACE,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,KAAK,EAAC,UAAU,EAChB,YAAY,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,EACvC,OAAO,EAAE,MAAM,CAAC,KAAK,EACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,4BAA4B,EACrC,WAAW,EAAE,MAAM,CAAC,QAAQ,EAC5B,GAAG,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,GACjB,EACf;KACH,CAAC,CAAC;AACL;;;;","names":[],"sources":["src/common/helpers.tsx"],"sourcesContent":["import { h } from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n ComboBoxModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nimport { GxOption } from \"./types\";\n\nconst daysOfWeek = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\n\n/**\n * @param element an HTMLElement\n * @returns an alphabetically ordered array of all the parts and exportparts the element contains.\n */\nexport const getElementSelectorParts = (element: HTMLElement) => {\n const queries: string[] = [];\n const elementParts = element.shadowRoot?.querySelectorAll(`[part]`);\n const elementExportParts =\n element.shadowRoot?.querySelectorAll(`[exportparts]`);\n\n elementParts?.forEach(el => {\n queries.push(\n `${element.tagName.toLowerCase()}::part(${el.getAttribute(\"part\")})`\n );\n });\n elementExportParts?.forEach(el => {\n queries.push(\n ...[\n ...el.getAttribute(\"exportparts\").matchAll(/(?:[\\w-]+:)?([\\w-]+)/g)\n ].map(item => `${element.tagName.toLowerCase()}::part(${item[1]})`)\n );\n });\n\n return queries.sort();\n};\n\n/**\n * @param selector a part selector\n * @returns A reference to the element the part belongs to.\n */\nexport const querySelectorPart = (selector: string) => {\n const querySelectorDeep = (\n element: HTMLElement,\n parts: string\n ): HTMLElement => {\n const shadow = element.shadowRoot;\n const partList = parts.split(\" \");\n\n const partElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[part~=\"${partName}\"]`).join(\"\")\n );\n if (partElement) {\n return partElement;\n }\n\n const exportPartElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[exportparts*=\"${partName}\"]`).join(\"\")\n );\n if (exportPartElement) {\n const exportPartList: string[] = [];\n const exportparts = exportPartElement.getAttribute(\"exportparts\");\n\n partList.forEach(partItem => {\n const exportPartName = exportparts.match(\n `(?:([\\\\w-]+):)?(${partItem})`\n )[1];\n if (exportPartName) {\n exportPartList.push(exportPartName);\n }\n });\n\n if (partList.length === exportPartList.length) {\n return querySelectorDeep(exportPartElement, exportPartList.join(\" \"));\n }\n }\n\n return null;\n };\n\n const selectorItems = selector.match(\"(.*)::part\\\\(([^)]+)\\\\)\");\n const entity = selectorItems[1];\n const partName = selectorItems[2];\n\n return querySelectorDeep(document.querySelector(entity), partName);\n};\n\nconst daysFromToday = (date: Date): number => {\n const today = new Date();\n // To calculate the time difference of two dates\n const timeDifference = today.getTime() - date.getTime();\n // To calculate the no. of days between two dates\n const daysDifference = timeDifference / (1000 * 3600 * 24);\n return Math.floor(daysDifference);\n};\n\n// - - - - - - - - - - - -\n// Date Functions\n// - - - - - - - - - - - -\n\nconst isToday = (date: Date): boolean => {\n const today = new Date();\n if (today.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nconst isYesterday = (date: Date): boolean => {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n if (yesterday.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nexport const formatDate = (\n date: Date,\n type: FormatDateType = \"date-time\"\n): string => {\n let formattedDate;\n // validate date\n // undefined or null\n if (date === undefined || date === null) {\n return \"\";\n }\n // If the date object is invalid it will return 'NaN' on getTime() and NaN is never equal to itself\n const dateIsValid = date.getTime() === date.getTime();\n if (!dateIsValid) {\n return \"Invalid date\";\n }\n let locale = \"en-US\";\n const lang = document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf();\n if (lang === \"es\") {\n locale = \"es-ES\";\n }\n formattedDate = date.toLocaleDateString(locale);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const time = `${hours}:${minutes}`;\n if (type === \"date-time\") {\n formattedDate += ` ${date.toLocaleTimeString()}`;\n } else if (type === \"date-time-short\") {\n // No seconds\n if (locale === \"es-ES\") {\n formattedDate = `${year}-${month}-${day} ${time}`;\n } else {\n formattedDate = `${month}/${day}/${year} ${time}`;\n }\n } else if (\"pretty\") {\n const daysPassedFromToday = daysFromToday(date);\n const today = new Date();\n const currentYear = today.getFullYear();\n if (isToday(date)) {\n return `Today ${time}`;\n } else if (isYesterday(date)) {\n return `Yesterday ${time}`;\n } else if (daysPassedFromToday <= 7) {\n // If one week or less, just show the day of the week, and the time\n const day = daysOfWeek[date.getDay()];\n return `${day} ${time}`;\n } else if (currentYear === year) {\n // If current year, show day number and month name. Example: November 17th\n if (locale === \"es-ES\") {\n formattedDate = `${day} de ${date.toLocaleString(\"es-ES\", {\n month: \"long\"\n })} ${time}`;\n } else {\n formattedDate = `${date.toLocaleString(\"en-US\", {\n month: \"long\"\n })} ${day} ${time}`;\n }\n } else {\n // Display date as usual\n formattedDate = formatDate(date, \"date-time-short\");\n }\n }\n return formattedDate;\n};\n\nexport type FormatDateType =\n | \"date\"\n | \"date-time\"\n | \"date-time-short\"\n | \"pretty\";\n\n// - - - - - - - - - - - -\n// /End of Date Functions\n// - - - - - - - - - - - -\n\n/* Count the total tree nodes (by default it does not count the first level nodes)*/\nexport const countTreeItems = (\n treeModel: TreeViewItemModel[],\n children = false\n): number => {\n let totalNodes = 0;\n treeModel.forEach(node => {\n children && totalNodes++;\n if (node.items) {\n totalNodes += countTreeItems(node.items, true);\n }\n });\n return totalNodes;\n};\n\n/**\n * @description it evaluates the initial selected combo item\n * @param options an array of GxOption\n * @returns the initial combo value, which in this case is the id\n */\nexport const setInitialComboValue = (options: GxOption[]): string => {\n const selected = options.find(option => option.selected);\n if (selected) {\n return selected.value || selected.id;\n } else {\n return options[0].value || options[0].id;\n }\n};\n\nexport const escapeRegExp = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n/**\n * @description this function highlights the character(s) that match(es) the filter value.\n * hiChar comes from (hi)light (Char)acters\n * @param text the string to find the filter value on\n * @param filterValue the filter value\n * @returns a span element\n */\nexport const hiChar = function (text: string, filterValue: string) {\n if (text && filterValue) {\n const escapedFilterValue = escapeRegExp(filterValue);\n const re = new RegExp(escapedFilterValue, \"gi\");\n return (\n <span\n innerHTML={text.replace(re, '<span class=\"hiChar\">$&</span>')}\n ></span>\n );\n } else {\n return text;\n }\n};\n\nexport const closeOnOutsideClickHandler = (\n eventInfo: PointerEvent,\n ref: HTMLElement\n): true | void => {\n if (!eventInfo.composedPath().includes(ref)) {\n return true;\n }\n};\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel =>\n options.map(option => ({\n value: option.id,\n caption: option.label\n // startImgSrc: option.iconName\n }));\n\nexport const renderChCheckboxItems = (\n options: GxOption[] | undefined,\n frontEndCheckboxInputHandler: (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => void,\n checkedIds: string[]\n): HTMLChCheckboxElement[] => {\n return options?.map(option => {\n const value = checkedIds?.find(\n id => option.value === id || option.id === id\n );\n return (\n <ch-checkbox\n name={option.name}\n class=\"checkbox\"\n checkedValue={option.value || option.id}\n caption={option.label}\n disabled={option.disabled}\n value={value}\n onInput={frontEndCheckboxInputHandler}\n startImgSrc={option.iconName}\n key={option.value || option.id}\n ></ch-checkbox>\n );\n });\n};\n"],"version":3}
1
+ {"file":"helpers-37946d65.js","mappings":"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","names":[],"sources":["src/common/helpers.tsx"],"sourcesContent":["import { h } from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n ComboBoxModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nimport { GxOption } from \"./types\";\n\nconst daysOfWeek = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\n\n/**\n * @param element an HTMLElement\n * @returns an alphabetically ordered array of all the parts and exportparts the element contains.\n */\nexport const getElementSelectorParts = (element: HTMLElement) => {\n const queries: string[] = [];\n const elementParts = element.shadowRoot?.querySelectorAll(`[part]`);\n const elementExportParts =\n element.shadowRoot?.querySelectorAll(`[exportparts]`);\n\n elementParts?.forEach(el => {\n queries.push(\n `${element.tagName.toLowerCase()}::part(${el.getAttribute(\"part\")})`\n );\n });\n elementExportParts?.forEach(el => {\n queries.push(\n ...[\n ...el.getAttribute(\"exportparts\").matchAll(/(?:[\\w-]+:)?([\\w-]+)/g)\n ].map(item => `${element.tagName.toLowerCase()}::part(${item[1]})`)\n );\n });\n\n return queries.sort();\n};\n\n/**\n * @param selector a part selector\n * @returns A reference to the element the part belongs to.\n */\nexport const querySelectorPart = (selector: string) => {\n const querySelectorDeep = (\n element: HTMLElement,\n parts: string\n ): HTMLElement => {\n const shadow = element.shadowRoot;\n const partList = parts.split(\" \");\n\n const partElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[part~=\"${partName}\"]`).join(\"\")\n );\n if (partElement) {\n return partElement;\n }\n\n const exportPartElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[exportparts*=\"${partName}\"]`).join(\"\")\n );\n if (exportPartElement) {\n const exportPartList: string[] = [];\n const exportparts = exportPartElement.getAttribute(\"exportparts\");\n\n partList.forEach(partItem => {\n const exportPartName = exportparts.match(\n `(?:([\\\\w-]+):)?(${partItem})`\n )[1];\n if (exportPartName) {\n exportPartList.push(exportPartName);\n }\n });\n\n if (partList.length === exportPartList.length) {\n return querySelectorDeep(exportPartElement, exportPartList.join(\" \"));\n }\n }\n\n return null;\n };\n\n const selectorItems = selector.match(\"(.*)::part\\\\(([^)]+)\\\\)\");\n const entity = selectorItems[1];\n const partName = selectorItems[2];\n\n return querySelectorDeep(document.querySelector(entity), partName);\n};\n\nconst daysFromToday = (date: Date): number => {\n const today = new Date();\n // To calculate the time difference of two dates\n const timeDifference = today.getTime() - date.getTime();\n // To calculate the no. of days between two dates\n const daysDifference = timeDifference / (1000 * 3600 * 24);\n return Math.floor(daysDifference);\n};\n\n// - - - - - - - - - - - -\n// Date Functions\n// - - - - - - - - - - - -\n\nconst isToday = (date: Date): boolean => {\n const today = new Date();\n if (today.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nconst isYesterday = (date: Date): boolean => {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n if (yesterday.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nexport const formatDate = (\n date: Date,\n type: FormatDateType = \"date-time\"\n): string => {\n let formattedDate;\n // validate date\n // undefined or null\n if (date === undefined || date === null) {\n return \"\";\n }\n // If the date object is invalid it will return 'NaN' on getTime() and NaN is never equal to itself\n const dateIsValid = date.getTime() === date.getTime();\n if (!dateIsValid) {\n return \"Invalid date\";\n }\n let locale = \"en-US\";\n const lang = document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf();\n if (lang === \"es\") {\n locale = \"es-ES\";\n }\n formattedDate = date.toLocaleDateString(locale);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const time = `${hours}:${minutes}`;\n if (type === \"date-time\") {\n formattedDate += ` ${date.toLocaleTimeString()}`;\n } else if (type === \"date-time-short\") {\n // No seconds\n if (locale === \"es-ES\") {\n formattedDate = `${year}-${month}-${day} ${time}`;\n } else {\n formattedDate = `${month}/${day}/${year} ${time}`;\n }\n } else if (\"pretty\") {\n const daysPassedFromToday = daysFromToday(date);\n const today = new Date();\n const currentYear = today.getFullYear();\n if (isToday(date)) {\n return `Today ${time}`;\n } else if (isYesterday(date)) {\n return `Yesterday ${time}`;\n } else if (daysPassedFromToday <= 7) {\n // If one week or less, just show the day of the week, and the time\n const day = daysOfWeek[date.getDay()];\n return `${day} ${time}`;\n } else if (currentYear === year) {\n // If current year, show day number and month name. Example: November 17th\n if (locale === \"es-ES\") {\n formattedDate = `${day} de ${date.toLocaleString(\"es-ES\", {\n month: \"long\"\n })} ${time}`;\n } else {\n formattedDate = `${date.toLocaleString(\"en-US\", {\n month: \"long\"\n })} ${day} ${time}`;\n }\n } else {\n // Display date as usual\n formattedDate = formatDate(date, \"date-time-short\");\n }\n }\n return formattedDate;\n};\n\nexport type FormatDateType =\n | \"date\"\n | \"date-time\"\n | \"date-time-short\"\n | \"pretty\";\n\n// - - - - - - - - - - - -\n// /End of Date Functions\n// - - - - - - - - - - - -\n\n/* Count the total tree nodes (by default it does not count the first level nodes)*/\nexport const countTreeItems = (\n treeModel: TreeViewItemModel[],\n children = false\n): number => {\n let totalNodes = 0;\n treeModel.forEach(node => {\n children && totalNodes++;\n if (node.items) {\n totalNodes += countTreeItems(node.items, true);\n }\n });\n return totalNodes;\n};\n\n/**\n * @description it evaluates the initial selected combo item\n * @param options an array of GxOption\n * @returns the initial combo value, which in this case is the id\n */\nexport const setInitialComboValue = (options: GxOption[]): string => {\n const selected = options.find(option => option.selected);\n if (selected) {\n return selected.value || selected.id;\n } else {\n return options[0].value || options[0].id;\n }\n};\n\nexport const escapeRegExp = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n/**\n * @description this function highlights the character(s) that match(es) the filter value.\n * hiChar comes from (hi)light (Char)acters\n * @param text the string to find the filter value on\n * @param filterValue the filter value\n * @returns a span element\n */\nexport const hiChar = function (text: string, filterValue: string) {\n if (text && filterValue) {\n const escapedFilterValue = escapeRegExp(filterValue);\n const re = new RegExp(escapedFilterValue, \"gi\");\n return (\n <span\n innerHTML={text.replace(re, '<span class=\"hiChar\">$&</span>')}\n ></span>\n );\n } else {\n return text;\n }\n};\n\nexport const closeOnOutsideClickHandler = (\n eventInfo: PointerEvent,\n ref: HTMLElement\n): true | void => {\n if (!eventInfo.composedPath().includes(ref)) {\n return true;\n }\n};\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel =>\n options.map(option => ({\n value: option.id,\n caption: option.label\n // startImgSrc: option.iconName\n }));\n\nexport const renderChCheckboxItems = (\n options: GxOption[] | undefined,\n frontEndCheckboxInputHandler: (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => void,\n checkedIds: string[]\n): HTMLChCheckboxElement[] => {\n return options?.map(option => {\n const value = checkedIds?.find(\n id => option.value === id || option.id === id\n );\n return (\n <ch-checkbox\n name={option.name}\n class=\"checkbox\"\n checkedValue={option.value || option.id}\n caption={option.label}\n disabled={option.disabled}\n value={value}\n onInput={frontEndCheckboxInputHandler}\n startImgSrc={option.iconName}\n key={option.value || option.id}\n ></ch-checkbox>\n );\n });\n};\n"],"version":3}