@genexus/genexus-ide-ui 1.1.23 → 1.1.25
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.
- package/dist/cjs/MERCURY_ASSETS-f14e91ff.js +9 -0
- package/dist/cjs/{MERCURY_ASSETS-15c5c1ac.js.map → MERCURY_ASSETS-f14e91ff.js.map} +1 -1
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-about.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-about.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +5 -5
- package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-file-item.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-json-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-plugin-details.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +144 -112
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-test.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js +235 -211
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
- package/dist/cjs/index.cjs.js +2 -5
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/render-item.lit-3f18e009.js +329 -0
- package/dist/cjs/render-item.lit-3f18e009.js.map +1 -0
- package/dist/cjs/{utilities-6118dc24.js → utilities-0b308992.js} +2 -2
- package/dist/cjs/{utilities-6118dc24.js.map → utilities-0b308992.js.map} +1 -1
- package/dist/collection/components/_test/test.js +1 -1
- package/dist/collection/components/_test/test.js.map +1 -1
- package/dist/collection/components/about/about.css +1 -0
- package/dist/collection/components/bpm/import-files/bpm-import-files.js +1 -1
- package/dist/collection/components/bpm/import-files/bpm-import-files.js.map +1 -1
- package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.js +1 -1
- package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.js.map +1 -1
- package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.js +1 -1
- package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.js.map +1 -1
- package/dist/collection/components/bpm/task-documents/task-documents.js +4 -4
- package/dist/collection/components/bpm/task-documents/task-documents.js.map +1 -1
- package/dist/collection/components/chat/chat-container/chat-container.css +0 -5
- package/dist/collection/components/chat/lit-custom-render/actions.lit.js +27 -0
- package/dist/collection/components/chat/lit-custom-render/actions.lit.js.map +1 -0
- package/dist/collection/components/chat/lit-custom-render/code-block.lit.js +46 -0
- package/dist/collection/components/chat/lit-custom-render/code-block.lit.js.map +1 -0
- package/dist/collection/components/chat/lit-custom-render/dots-animation.js +61 -0
- package/dist/collection/components/chat/lit-custom-render/dots-animation.js.map +1 -0
- package/dist/collection/components/chat/lit-custom-render/render-item.lit.js +122 -0
- package/dist/collection/components/chat/lit-custom-render/render-item.lit.js.map +1 -0
- package/dist/collection/components/chat/lit-custom-render/spinner-animation.js +58 -0
- package/dist/collection/components/chat/lit-custom-render/spinner-animation.js.map +1 -0
- package/dist/collection/components/chat/lit-custom-render/types.js +2 -0
- package/dist/collection/components/chat/lit-custom-render/types.js.map +1 -0
- package/dist/collection/components/chat/lit-custom-render/utils.js +50 -0
- package/dist/collection/components/chat/lit-custom-render/utils.js.map +1 -0
- package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
- package/dist/collection/components/json-import/json-import.js.map +1 -1
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +2 -2
- package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
- package/dist/collection/components/open-api-import/open-api-import.js +1 -1
- package/dist/collection/components/open-api-import/open-api-import.js.map +1 -1
- package/dist/collection/components/plugin-details/plugin-details.js +1 -1
- package/dist/collection/components/plugin-details/plugin-details.js.map +1 -1
- package/dist/collection/components/references/references.js +1 -1
- package/dist/collection/components/references/references.js.map +1 -1
- package/dist/collection/components/team-dev/bring-changes/bring-changes.js +1 -1
- package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/components/team-dev/share-kb/share-kb.js +1 -1
- package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
- package/dist/collection/components/team-dev/update/update.js +1 -1
- package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.en.json +10 -1
- package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +9 -0
- package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.zh.json +9 -0
- package/dist/collection/components/ww-files/helpers.js +12 -0
- package/dist/collection/components/ww-files/helpers.js.map +1 -1
- package/dist/collection/components/ww-files/ww-files.css +49 -63
- package/dist/collection/components/ww-files/ww-files.js +270 -421
- package/dist/collection/components/ww-files/ww-files.js.map +1 -1
- package/dist/collection/index.js +2 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/showcase/chat-container/callbacks.js +44 -187
- package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
- package/dist/collection/showcase/chat-container/chat.showcase.js +7 -6
- package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
- package/dist/collection/showcase/chat-container/models.js +321 -0
- package/dist/collection/showcase/chat-container/models.js.map +1 -0
- package/dist/components/MERCURY_ASSETS.js +1 -1
- package/dist/components/MERCURY_ASSETS.js.map +1 -1
- package/dist/components/bpm-objects-selector.js +1 -1
- package/dist/components/bpm-objects-selector.js.map +1 -1
- package/dist/components/chat-container.js +1 -1
- package/dist/components/chat-container.js.map +1 -1
- package/dist/components/gx-ide-about.js +1 -1
- package/dist/components/gx-ide-about.js.map +1 -1
- package/dist/components/gx-ide-bpm-import-files.js +1 -1
- package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
- package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
- package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
- package/dist/components/gx-ide-bpm-task-documents.js +4 -4
- package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-data-type-selector.js.map +1 -1
- package/dist/components/gx-ide-json-import.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-import.js +1 -1
- package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
- package/dist/components/gx-ide-open-api-import.js +1 -1
- package/dist/components/gx-ide-open-api-import.js.map +1 -1
- package/dist/components/gx-ide-plugin-details.js +1 -1
- package/dist/components/gx-ide-plugin-details.js.map +1 -1
- package/dist/components/gx-ide-references.js +1 -1
- package/dist/components/gx-ide-references.js.map +1 -1
- package/dist/components/gx-ide-sc-chat-container.js +145 -112
- package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
- package/dist/components/gx-ide-share-kb.js +1 -1
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
- package/dist/components/gx-ide-test.js +1 -1
- package/dist/components/gx-ide-test.js.map +1 -1
- package/dist/components/gx-ide-ww-files.js +258 -233
- package/dist/components/gx-ide-ww-files.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/render-item.lit.js +327 -0
- package/dist/components/render-item.lit.js.map +1 -0
- package/dist/esm/MERCURY_ASSETS-ccf43ae3.js +7 -0
- package/dist/esm/{MERCURY_ASSETS-7c06e424.js.map → MERCURY_ASSETS-ccf43ae3.js.map} +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-about.entry.js +1 -1
- package/dist/esm/gx-ide-about.entry.js.map +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-task-documents.entry.js +5 -5
- package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
- package/dist/esm/gx-ide-chat-container_2.entry.js +2 -2
- package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-current-user-info.entry.js +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
- package/dist/esm/gx-ide-file-item.entry.js +1 -1
- package/dist/esm/gx-ide-file-uploader.entry.js +1 -1
- package/dist/esm/gx-ide-json-import.entry.js +1 -1
- package/dist/esm/gx-ide-json-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +2 -2
- package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-open-api-import.entry.js +2 -2
- package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-plugin-details.entry.js +2 -2
- package/dist/esm/gx-ide-plugin-details.entry.js.map +1 -1
- package/dist/esm/gx-ide-plugin-explorer.entry.js +1 -1
- package/dist/esm/gx-ide-references.entry.js +2 -2
- package/dist/esm/gx-ide-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-sc-chat-container.entry.js +145 -113
- package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +2 -2
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-splash.entry.js +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +3 -3
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-history.entry.js +2 -2
- package/dist/esm/gx-ide-test.entry.js +1 -1
- package/dist/esm/gx-ide-test.entry.js.map +1 -1
- package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
- package/dist/esm/gx-ide-ww-files.entry.js +236 -212
- package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
- package/dist/esm/index.js +1 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/render-item.lit-449f2946.js +327 -0
- package/dist/esm/render-item.lit-449f2946.js.map +1 -0
- package/dist/esm/{utilities-6fdb43e4.js → utilities-00ec1b22.js} +2 -2
- package/dist/esm/{utilities-6fdb43e4.js.map → utilities-00ec1b22.js.map} +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.en.json +10 -1
- package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.zh.json +9 -0
- package/dist/genexus-ide-ui/index.esm.js +1 -5
- package/dist/genexus-ide-ui/index.esm.js.map +1 -1
- package/dist/genexus-ide-ui/p-04c6bd23.entry.js.map +1 -1
- package/dist/genexus-ide-ui/{p-476b74a1.entry.js → p-05f1ff03.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-05f1ff03.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-863ef4de.entry.js → p-0937c905.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0cd3ab87.entry.js → p-0a0ab008.entry.js} +3 -3
- package/dist/genexus-ide-ui/p-0a0ab008.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-163bfc6a.entry.js +611 -0
- package/dist/genexus-ide-ui/p-163bfc6a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-1292a6b9.entry.js → p-1664d366.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-1292a6b9.entry.js.map → p-1664d366.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-884e0ed9.entry.js → p-2ad98d24.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-884e0ed9.entry.js.map → p-2ad98d24.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-d4ef0c35.entry.js → p-2d04b927.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-8bb9242a.entry.js → p-36c7a87b.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-36c7a87b.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ca706700.entry.js → p-3dbd3842.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-2987a259.js → p-401bfc97.js} +4430 -4318
- package/dist/genexus-ide-ui/p-401bfc97.js.map +1 -0
- package/dist/genexus-ide-ui/p-46ffec64.entry.js.map +1 -1
- package/dist/genexus-ide-ui/{p-45539ad0.entry.js → p-494b3955.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-45539ad0.entry.js.map → p-494b3955.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-d77582b8.entry.js → p-4ad7826c.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-72b5d3e4.entry.js → p-4bb2c398.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-810ad95f.entry.js → p-538594e2.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-641c79a9.entry.js → p-5e7f8ae6.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c50b9883.entry.js → p-5ff6fe1d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c50b9883.entry.js.map → p-5ff6fe1d.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-7ae2a57f.entry.js → p-6e958b79.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-4e6425f3.entry.js → p-731b8947.entry.js} +183 -142
- package/dist/genexus-ide-ui/p-731b8947.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-012cfb1d.entry.js → p-75d6c740.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7d7cf30d.entry.js → p-8714eeb1.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ca9978e1.entry.js → p-88581fe4.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-1be1db4e.entry.js → p-8e34e92b.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-8e34e92b.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ea02e5cf.entry.js → p-960d9108.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ea02e5cf.entry.js.map → p-960d9108.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-7053c38e.entry.js → p-9d985956.entry.js} +11 -11
- package/dist/genexus-ide-ui/{p-7f65f9e3.entry.js → p-a708a870.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c92332af.entry.js → p-b0aa8cdb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-93cdb6f8.entry.js → p-bfe3277f.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-760d8f2a.entry.js → p-c3abc0f5.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-760d8f2a.entry.js.map → p-c3abc0f5.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-52f37ec7.entry.js → p-caa5ee2f.entry.js} +8 -8
- package/dist/genexus-ide-ui/{p-a869ec48.entry.js → p-d4ca8530.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0f8a8202.js → p-d7a91333.js} +2 -2
- package/dist/genexus-ide-ui/p-d8379699.entry.js.map +1 -1
- package/dist/genexus-ide-ui/{p-c9bca7c0.entry.js → p-dce532ea.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-bbb5b0fb.entry.js → p-e02e3694.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-75c1634c.entry.js → p-e162771e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-75c1634c.entry.js.map → p-e162771e.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/p-e24902a0.entry.js.map +1 -1
- package/dist/genexus-ide-ui/{p-7d107d2f.entry.js → p-f3f068f6.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-fd440291.entry.js → p-f4a60017.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7cece7a8.entry.js → p-f52ea9d4.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7cece7a8.entry.js.map → p-f52ea9d4.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-54fb1287.entry.js → p-f83ceb69.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-fd4f9904.js +955 -0
- package/dist/genexus-ide-ui/p-fd4f9904.js.map +1 -0
- package/dist/types/components/chat/lit-custom-render/actions.lit.d.ts +2 -0
- package/dist/types/components/chat/lit-custom-render/code-block.lit.d.ts +2 -0
- package/dist/types/components/chat/lit-custom-render/dots-animation.d.ts +5 -0
- package/dist/types/components/chat/lit-custom-render/render-item.lit.d.ts +3 -0
- package/dist/types/components/chat/lit-custom-render/spinner-animation.d.ts +5 -0
- package/dist/types/components/chat/lit-custom-render/types.d.ts +4 -0
- package/dist/types/components/chat/lit-custom-render/utils.d.ts +23 -0
- package/dist/types/components/ww-files/helpers.d.ts +1 -0
- package/dist/types/components/ww-files/ww-files.d.ts +36 -76
- package/dist/types/components.d.ts +10 -89
- package/dist/types/index.d.ts +2 -1
- package/dist/types/showcase/chat-container/callbacks.d.ts +2 -5
- package/dist/types/showcase/chat-container/models.d.ts +15 -0
- package/package.json +8 -7
- package/dist/cjs/MERCURY_ASSETS-15c5c1ac.js +0 -9
- package/dist/cjs/code-render-2af31443.js +0 -86
- package/dist/cjs/code-render-2af31443.js.map +0 -1
- package/dist/collection/components/chat/code-render.js +0 -65
- package/dist/collection/components/chat/code-render.js.map +0 -1
- package/dist/components/code-render.js +0 -83
- package/dist/components/code-render.js.map +0 -1
- package/dist/esm/MERCURY_ASSETS-7c06e424.js +0 -7
- package/dist/esm/code-render-e6bf0562.js +0 -83
- package/dist/esm/code-render-e6bf0562.js.map +0 -1
- package/dist/genexus-ide-ui/p-0cd3ab87.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-1be1db4e.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-2987a259.js.map +0 -1
- package/dist/genexus-ide-ui/p-385c9544.entry.js +0 -564
- package/dist/genexus-ide-ui/p-385c9544.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-476b74a1.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-4e6425f3.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-60221a44.js +0 -109
- package/dist/genexus-ide-ui/p-60221a44.js.map +0 -1
- package/dist/genexus-ide-ui/p-8bb9242a.entry.js.map +0 -1
- package/dist/types/components/chat/code-render.d.ts +0 -4
- /package/dist/genexus-ide-ui/{p-863ef4de.entry.js.map → p-0937c905.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d4ef0c35.entry.js.map → p-2d04b927.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ca706700.entry.js.map → p-3dbd3842.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d77582b8.entry.js.map → p-4ad7826c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-72b5d3e4.entry.js.map → p-4bb2c398.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-810ad95f.entry.js.map → p-538594e2.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-641c79a9.entry.js.map → p-5e7f8ae6.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7ae2a57f.entry.js.map → p-6e958b79.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-012cfb1d.entry.js.map → p-75d6c740.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7d7cf30d.entry.js.map → p-8714eeb1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ca9978e1.entry.js.map → p-88581fe4.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7053c38e.entry.js.map → p-9d985956.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7f65f9e3.entry.js.map → p-a708a870.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c92332af.entry.js.map → p-b0aa8cdb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-93cdb6f8.entry.js.map → p-bfe3277f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-52f37ec7.entry.js.map → p-caa5ee2f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a869ec48.entry.js.map → p-d4ca8530.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0f8a8202.js.map → p-d7a91333.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c9bca7c0.entry.js.map → p-dce532ea.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-bbb5b0fb.entry.js.map → p-e02e3694.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7d107d2f.entry.js.map → p-f3f068f6.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-fd440291.entry.js.map → p-f4a60017.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-54fb1287.entry.js.map → p-f83ceb69.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ww-files.js","sourceRoot":"","sources":["../../../src/components/ww-files/ww-files.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Listen,\n Watch\n} from \"@stencil/core\";\n\nimport { ChGridRowContextMenuEvent } from \"@genexus/chameleon-controls-library\";\n\nimport { 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 } from \"./helpers\";\nimport {\n AccordionModel,\n ComboBoxModel\n} from \"@genexus/chameleon-controls-library\";\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/tabular-grid\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\"\n];\n\nconst FILTER_AFTER_DATE_TIME = \"afterDateTime\";\nconst FILTER_AFTER_LAST_BUILD = \"afterLastBuild\";\nconst FILTER_AFTER_IMPORT = \"afterImport\";\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_FILTER_ID = \"advanced-filter\";\n #ACCORDION_MODEL: AccordionModel = [];\n\n @Element() el: HTMLGxIdeWwFilesElement;\n\n #chGridEl!: HTMLChTabularGridElement;\n #filterAfterTypeEl!: HTMLChComboBoxRenderElement;\n #filterAllDescendantsEl!: HTMLChCheckboxElement;\n #filterCategoryEl!: HTMLChComboBoxRenderElement;\n #filterModifiedDateEl!: HTMLChEditElement;\n #filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n #filterModifiedEl!: HTMLChCheckboxElement;\n #filterNameEl!: HTMLChEditElement;\n #filterSearchContentsEl!: HTMLChEditElement;\n #filterUserEl!: HTMLChEditElement;\n\n // representations of GxOption[] as ComboBoxModel\n @State() categoriesComboBoxModel: ComboBoxModel = [];\n\n /**\n * The current value of the \"After\" combo box options.\n */\n @State() afterCurrentValue: string = FILTER_AFTER_DATE_TIME;\n\n /**\n * The options for the \"After\" combo-box\n */\n @State() filterAfterOptions: ComboBoxModel;\n\n /**\n * When true, modified controls will be enabled, otherwise disabled.\n */\n @State() enabledModifiedControls: boolean = false;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * For show or hide advanced filters\n */\n @State() filterMore = false;\n\n /**\n * The files rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * Files filter input value\n */\n @State() filterFilesInputValue = \"\";\n\n /**\n * Files rendered in the table after filtering\n */\n @State() filteredFiles: ObjectData[] = [];\n\n /**\n * The selected files in the table of files\n */\n @State() selectedObjectsIds: string[] = [];\n\n /**\n * Controls the expanded state of the advanced filter accordion\n */\n @State() advancedFilterAccordionExpanded: boolean = false;\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 * 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 * The modules/folders render in the module/folder selector\n */\n @Prop() readonly filterModules!: GxOption[];\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: GxOption[];\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 * This is a function provided by the developer for delete the selected files.\n */\n @Prop() readonly deleteSelectionCallback!: DeleteSelectionCallback;\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 * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n /**\n * Controls whether to show the Search contents field in the advanced filter section\n */\n @Prop() showSearchContents = false;\n\n /**\n * Controls whether to show the description column in the grid\n */\n @Prop() showDescription = false;\n\n /**\n * Controls whether to show the modified date column in the grid\n */\n @Prop() showModifiedDate = false;\n\n /**\n * Controls whether to show the last user column in the grid\n */\n @Prop() showLastUser = false;\n\n /**\n * Controls whether to show the import date column in the grid\n */\n @Prop() showImportDate = false;\n\n /**\n * Controls whether to show the type column in the grid\n */\n @Prop() showType = false;\n\n /**\n * Controls whether to show the last build date column in the grid\n */\n @Prop() showLastBuildDate = 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.filterAfterOptions = [\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 this.afterCurrentValue = FILTER_AFTER_DATE_TIME;\n\n // initialize accordion model with proper configuration\n this.#ACCORDION_MODEL = [\n {\n id: this.#ACCORDION_FILTER_ID,\n caption: this.#componentLocale.filter.accordionCaption,\n expanded: this.advancedFilterAccordionExpanded\n }\n ];\n\n // initialize filtered files\n this.filteredFiles = this.objects;\n\n this.componentDidLoadEvent.emit(true);\n }\n\n componentDidLoad() {\n this.#listenChanges();\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.#openSelectionCallbackHandle();\n break;\n case \"Delete\":\n eventInfo.preventDefault();\n this.#deleteSelectionCallbackHandle();\n break;\n case \"Escape\":\n eventInfo.preventDefault();\n this.#deselectAll();\n break;\n }\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n /**\n * This method reload the view, refreshing the filters and the table of files.\n */\n @Method()\n async reload(): Promise<void> {\n this.filterFilesInputValue = \"\";\n this.#filterUserEl.value = null;\n this.#filterAfterTypeEl.value = null;\n this.afterCurrentValue = null;\n this.#filterModifiedEl.value = undefined;\n this.#filterAllDescendantsEl.value = undefined;\n this.#filterModuleEl.value = this.defaultModule;\n this.#filterCategoryEl.value = null;\n this.#filterSearchContentsEl.value = null;\n this.#filterNameEl.value = null;\n this.filterMore = false;\n this.#getObjects();\n }\n\n #renderHeader = (): Element[] => {\n return [\n <div class=\"field field-block name\">\n <label class=\"label\" htmlFor=\"filter-files\">\n {this.#componentLocale.filter.name}\n </label>\n <ch-edit\n id=\"filter-files\"\n class=\"input\"\n ref={(el: HTMLChEditElement) => (this.#filterNameEl = el)}\n value={this.filterFilesInputValue}\n onInput={this.#handleFilterInput}\n part=\"filter-files\"\n ></ch-edit>\n </div>,\n\n <div class=\"field field-block module-folder\">\n <label class=\"label\" htmlFor=\"module-folder\">\n {this.#componentLocale.filter.moduleFolder}\n </label>\n\n <gx-ide-entity-selector\n part=\"filter-module-folder\"\n id=\"module/folder\"\n labelPosition=\"none\"\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n ></gx-ide-entity-selector>\n </div>,\n\n <ch-accordion-render\n class=\"accordion-outlined advanced-filter-accordion\"\n model={this.#ACCORDION_MODEL}\n onExpandedChange={this.#expandedHandler}\n >\n <div slot={this.#ACCORDION_FILTER_ID} class=\"spacing-body\">\n <div class=\"main__filter\">\n {/* Primera fila - Search Content */}\n {this.showSearchContents && (\n <div class=\"search-content\">\n <div class=\"field field-block\">\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 ref={(el: HTMLChEditElement) =>\n (this.#filterSearchContentsEl = el as HTMLChEditElement)\n }\n onInput={this.#handleSearchContentsInput}\n part=\"filter-content\"\n ></ch-edit>\n </div>\n </div>\n )}\n\n {/* Segunda fila - Category y Checkboxes */}\n <div class=\"filter-row\">\n <div class=\"category-column\">\n <div class=\"field field-block\">\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\"\n value={this.defaultCategory}\n disabled={!this.categories}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#filterCategoryEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.categoriesComboBoxModel}\n part=\"filter-category\"\n onInput={this.#getObjects}\n ></ch-combo-box-render>\n </div>\n </div>\n\n <div class=\"checkboxes-column\">\n <ch-checkbox\n class=\"checkbox\"\n caption={this.#componentLocale.filter.allDescendants}\n checkedValue=\"filterAllDescendants\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#filterAllDescendantsEl = el as HTMLChCheckboxElement)\n }\n onInput={this.#getObjects}\n part=\"filter-all-descendants\"\n ></ch-checkbox>\n\n <ch-checkbox\n class=\"checkbox align-center\"\n caption={this.#componentLocale.filter.modified}\n checkedValue=\"filterModified\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#filterModifiedEl = el as HTMLChCheckboxElement)\n }\n onInput={this.#filterModifiedCallbackHandle}\n part=\"filter-modified\"\n ></ch-checkbox>\n </div>\n\n <div class=\"empty-column\"></div>\n </div>\n\n {/* Tercera fila - Modified inputs */}\n <div\n class={{ \"modified-inputs\": true, \"hide\": !this.filterModified }}\n >\n <div class=\"field field-block\">\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.afterCurrentValue}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#filterAfterTypeEl =\n el as HTMLChComboBoxRenderElement)\n }\n model={this.filterAfterOptions}\n onInput={this.#filterAfterTypeCallbackHandle}\n part=\"filter-after-type\"\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block\">\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 ref={(el: HTMLChEditElement) =>\n (this.#filterUserEl = el as HTMLChEditElement)\n }\n onInput={this.#getObjects}\n part=\"filter-user\"\n ></ch-edit>\n </div>\n\n <div\n class={{\n \"field field-block\": true,\n \"hide\": this.afterCurrentValue !== FILTER_AFTER_DATE_TIME\n }}\n >\n <label class=\"label\" htmlFor=\"filter-modified-date\">\n {this.#componentLocale.filter.dateTime}\n </label>\n <ch-edit\n id=\"filter-modified-date\"\n type=\"date\"\n class=\"input\"\n ref={(el: HTMLChEditElement) =>\n (this.#filterModifiedDateEl = el as HTMLChEditElement)\n }\n onInput={this.#getObjects}\n part=\"filter-modified-date\"\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n ];\n };\n\n #renderObjects = (): Element => {\n return (\n <div class=\"field-group main__grid\">\n <ch-tabular-grid\n ref={(el: HTMLChTabularGridElement) => (this.#chGridEl = el)}\n class=\"tabular-grid tabular-grid-ww-files\"\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.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n {this.showType && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.type}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.module}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.common}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n\n {this.showDescription && (\n <ch-tabular-grid-column\n columnName={this.#componentLocale.tableHead.description}\n columnNameHidden={false}\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n )}\n\n {this.showModifiedDate && (\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.showLastUser && (\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.showImportDate && (\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.showLastBuildDate && (\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 {this.filteredFiles.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredFiles.map((obj: ObjectData) => (\n <ch-tabular-grid-row rowid={obj.id} class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon}></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.name.toLowerCase(),\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n {this.showType && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.type.toLowerCase(),\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.module.toLowerCase(),\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n {this.showDescription && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.description.toLowerCase(),\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n {this.showModifiedDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.modifiedDate\n ? this.#formatDate(obj.modifiedDate)\n : \"\",\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n {this.showLastUser && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.lastUser?.toLowerCase() || \"\",\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n {this.showImportDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.importDate ? this.#formatDate(obj.importDate) : \"\",\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n {this.showLastBuildDate && (\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#hiChar(\n obj.lastBuildDate\n ? this.#formatDate(obj.lastBuildDate)\n : \"\",\n this.filterFilesInputValue\n )}\n </ch-tabular-grid-cell>\n )}\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : null}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #hiChar = (text: string, search: string): Element[] | string => {\n if (!search) return text;\n const parts = text.split(new RegExp(`(${search})`, \"gi\"));\n return parts.map((part, i) =>\n part.toLowerCase() === search.toLowerCase() ? (\n <span key={i} class=\"highlight\">\n {part}\n </span>\n ) : (\n part\n )\n );\n };\n\n #formatDate = (date: Date): string => {\n return date.toISOString().slice(0, 10);\n };\n\n #getObjects = () => {\n const filters: ObjectFiltersData = {\n name: this.#filterNameEl.value,\n searchContents: this.showSearchContents\n ? this.#filterSearchContentsEl?.value\n : null,\n category: this.#filterCategoryEl.value,\n parent: this.#filterModuleEl.value ? this.#filterModuleEl.value.id : null,\n allDescendants: !!this.#filterAllDescendantsEl.value,\n modifiedAfter: this.filterModified ? this.afterCurrentValue : null,\n modifiedBy: this.filterModified ? this.#filterUserEl.value : null,\n modifiedDate:\n this.filterModified && this.afterCurrentValue === FILTER_AFTER_DATE_TIME\n ? new Date(this.#filterModifiedDateEl.value)\n : null\n };\n\n this.loadCallback(filters).then((items: ObjectData[]) => {\n this.objects = items;\n this.#filterFiles();\n this.selectedObjectsIds = [];\n this.#deselectAll();\n });\n };\n\n #filterFiles = () => {\n const filterValue = this.filterFilesInputValue.toLowerCase();\n const searchContents = this.showSearchContents\n ? this.#filterSearchContentsEl?.value?.toLowerCase() || \"\"\n : \"\";\n\n this.filteredFiles = this.objects.filter(file => {\n const nameMatch = file.name.toLowerCase().includes(filterValue);\n const typeMatch = file.type.toLowerCase().includes(filterValue);\n const moduleMatch = file.module.toLowerCase().includes(filterValue);\n const descriptionMatch = file.description\n ?.toLowerCase()\n .includes(filterValue);\n const modifiedDateMatch = file.modifiedDate\n ?.toString()\n .includes(filterValue);\n const lastUserMatch = file.lastUser?.toLowerCase().includes(filterValue);\n const importDateMatch = file.importDate?.toString().includes(filterValue);\n const contentsMatch = searchContents\n ? file.description?.toLowerCase().includes(searchContents)\n : true;\n\n return (\n (nameMatch ||\n typeMatch ||\n moduleMatch ||\n descriptionMatch ||\n modifiedDateMatch ||\n lastUserMatch ||\n importDateMatch) &&\n contentsMatch\n );\n });\n };\n\n #handleFilterInput = (event: CustomEvent<any> | InputEvent) => {\n this.filterFilesInputValue = event.detail.toLowerCase();\n this.#filterFiles();\n };\n\n #handleSearchContentsInput = () => {\n this.#filterFiles();\n };\n\n #deleteSelectionCallbackHandle = (): void => {\n this.deleteSelectionCallback(this.selectedObjectsIds);\n };\n #deselectAll = (): void => {\n (this.#chGridEl as any).selectAllRows(false);\n };\n\n #expandedHandler = (e: CustomEvent<{ id: string; expanded: boolean }>) => {\n if (e.detail.id === this.#ACCORDION_FILTER_ID) {\n this.advancedFilterAccordionExpanded = e.detail.expanded;\n this.filterMore = e.detail.expanded;\n }\n };\n #filterModifiedCallbackHandle = () => {\n this.filterModified = !!this.#filterModifiedEl.value;\n this.enabledModifiedControls = this.filterModified;\n if (!this.filterModified) {\n // Reset related fields when unchecking Modified\n this.#filterUserEl.value = null;\n this.#filterAfterTypeEl.value = null;\n this.afterCurrentValue = null;\n this.#filterModifiedDateEl.value = null;\n } else {\n // Restore default values when checking Modified\n this.afterCurrentValue = FILTER_AFTER_DATE_TIME;\n this.#filterAfterTypeEl.value = FILTER_AFTER_DATE_TIME;\n }\n this.#getObjects();\n };\n\n #filterAfterTypeCallbackHandle = () => {\n const newValue = this.#filterAfterTypeEl.value;\n // Validar que el valor sea uno de los permitidos\n if (\n [\n FILTER_AFTER_DATE_TIME,\n FILTER_AFTER_LAST_BUILD,\n FILTER_AFTER_IMPORT\n ].includes(newValue)\n ) {\n this.afterCurrentValue = newValue;\n } else {\n // Si no es un valor válido, establecer el valor por defecto\n this.afterCurrentValue = FILTER_AFTER_DATE_TIME;\n this.#filterAfterTypeEl.value = FILTER_AFTER_DATE_TIME;\n }\n this.#getObjects();\n };\n\n #listenChanges = (): void => {\n /* module/folder */\n this.#filterModuleEl.addEventListener(\"valueChanged\", () => {\n this.#getObjects();\n });\n\n // for grid selection\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.#openSelectionCallbackHandle();\n });\n\n this.#chGridEl.addEventListener(\n \"rowContextMenu\",\n (ev: CustomEvent<ChGridRowContextMenuEvent>): 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 #newFileCallbackHandle = (): void => {\n this.newFileCallback();\n };\n\n #openSelectionCallbackHandle = (): void => {\n this.openSelectionCallback(this.selectedObjectsIds);\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 <div class=\"main\">{this.#renderObjects()}</div>\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.filteredFiles.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 >\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.#newFileCallbackHandle}\n part=\"button button--new-file\"\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 type: string;\n description: string;\n parent: string;\n module: string;\n modifiedDate?: Date;\n lastUser?: string;\n importDate?: Date;\n lastBuildDate: Date;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"ww-files.js","sourceRoot":"","sources":["../../../src/components/ww-files/ww-files.tsx"],"names":[],"mappings":"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","sourcesContent":["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"]}
|
package/dist/collection/index.js
CHANGED
|
@@ -2,7 +2,8 @@ export * from "./components";
|
|
|
2
2
|
// Add types from Chameleon, without importing any JS in the final bundle.
|
|
3
3
|
// Don't use 'import "@genexus/chameleon-controls-library"'
|
|
4
4
|
typeof import("@genexus/chameleon-controls-library/dist/types/index");
|
|
5
|
-
|
|
5
|
+
// ch-chat
|
|
6
|
+
export { renderItemMercury } from "./components/chat/lit-custom-render/render-item.lit";
|
|
6
7
|
import nexaAvatar from "./components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar.svg";
|
|
7
8
|
export { nexaAvatar };
|
|
8
9
|
import nexaAvatarCommon from "./common/images/ai-avatar.svg";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,0EAA0E;AAC1E,2DAA2D;AAC3D,OAAO,MAAM,CAAC,sDAAsD,CAAC,CAAC;AAEtE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAE7B,0EAA0E;AAC1E,2DAA2D;AAC3D,OAAO,MAAM,CAAC,sDAAsD,CAAC,CAAC;AAEtE,UAAU;AACV,OAAO,EAAE,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AAGxF,OAAO,UAAU,MAAM,gFAAgF,CAAC;AACxG,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,CAAC","sourcesContent":["export * from \"./components\";\n\n// Add types from Chameleon, without importing any JS in the final bundle.\n// Don't use 'import \"@genexus/chameleon-controls-library\"'\ntypeof import(\"@genexus/chameleon-controls-library/dist/types/index\");\n\n// ch-chat\nexport { renderItemMercury } from \"./components/chat/lit-custom-render/render-item.lit\";\nexport { MercuryChatMessageMetadata } from \"./components/chat/lit-custom-render/types\";\n\nimport nexaAvatar from \"./components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar.svg\";\nexport { nexaAvatar };\n\nimport nexaAvatarCommon from \"./common/images/ai-avatar.svg\";\nexport { nexaAvatarCommon };\n"]}
|
|
@@ -1,105 +1,55 @@
|
|
|
1
|
+
import { ASSISTANT_RESPONSE_MARKDOWN } from "./models";
|
|
2
|
+
import { ASSISTANT_NAME } from "./models";
|
|
1
3
|
const PROCESSING_PLACEHOLDER = "{{ASSISTANT_NAME}}";
|
|
2
|
-
|
|
3
|
-
const ASSISTANT_RESPONSE_MARKDOWN = `
|
|
4
|
-
###### Code block {#code-block}
|
|
5
|
-
To create code blocks, you’ll use three backticks (\` \`\`\` \`) or three tildes (\`~~~\`) on the lines before and after the code block.
|
|
6
|
-
|
|
7
|
-
\`\`\`
|
|
8
|
-
{
|
|
9
|
-
"firstName": "John",
|
|
10
|
-
"lastName": "Smith",
|
|
11
|
-
"age": 25
|
|
12
|
-
}
|
|
13
|
-
\`\`\`
|
|
14
|
-
|
|
15
|
-
Another way to create code blocks is to indent every line of the block by at least four spaces or one tab.
|
|
16
|
-
|
|
17
|
-
<html>
|
|
18
|
-
<head>
|
|
19
|
-
</head>
|
|
20
|
-
</html>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
###### Syntax Highlighting {#syntax-highlighting}
|
|
24
|
-
This feature allows you to add color highlighting for whatever language your code was written in.
|
|
25
|
-
To add syntax highlighting, specify a language next to the backticks before the fenced code block.
|
|
26
|
-
|
|
27
|
-
\`\`\`json
|
|
28
|
-
{
|
|
29
|
-
"firstName": "John",
|
|
30
|
-
"lastName": "Smith",
|
|
31
|
-
"age": 25
|
|
32
|
-
}
|
|
33
|
-
\`\`\`
|
|
34
|
-
|
|
35
|
-
\`\`\`javascript
|
|
36
|
-
import React from 'react'
|
|
37
|
-
import ReactDOM from 'react-dom'
|
|
38
|
-
import Markdown from 'react-markdown'
|
|
39
|
-
import rehypeHighlight from 'rehype-highlight'
|
|
40
|
-
|
|
41
|
-
const markdown = \`
|
|
42
|
-
# Your markdown here
|
|
43
|
-
\`
|
|
44
|
-
|
|
45
|
-
ReactDOM.render(
|
|
46
|
-
<Markdown rehypePlugins={[rehypeHighlight]}>{markdown}</Markdown>,
|
|
47
|
-
document.querySelector('#content')
|
|
48
|
-
)
|
|
49
|
-
\`\`\`
|
|
50
|
-
|
|
51
|
-
###### Horizontal Rules {#horizontal-rules}
|
|
52
|
-
To create a horizontal rule, use three or more asterisks (\`***\`), dashes (\`---\`), or underscores (\`___\`) on a line by themselves.
|
|
53
|
-
`;
|
|
54
|
-
const ASSISTANT_RESPONSE_SHORT_MARKDOWN = `
|
|
55
|
-
###### Code block {#code-block}
|
|
56
|
-
To create code blocks, you’ll use three backticks (\` \`\`\` \`) or three tildes (\`~~~\`) on the lines before and after the code block.
|
|
57
|
-
|
|
58
|
-
\`\`\`json
|
|
59
|
-
{
|
|
60
|
-
"firstName": "John",
|
|
61
|
-
"lastName": "Smith",
|
|
62
|
-
"age": 25
|
|
63
|
-
}
|
|
64
|
-
\`\`\`
|
|
65
|
-
`;
|
|
66
|
-
const sendChatToLLM = (chatRef) => () => {
|
|
4
|
+
const sendChatMessages = (chatRef) => () => {
|
|
67
5
|
chatRef.generatingResponse = true;
|
|
68
6
|
chatRef.addNewMessage({
|
|
69
7
|
id: `${new Date().getTime()}`,
|
|
70
8
|
role: "assistant",
|
|
71
9
|
content: "Analyzing",
|
|
72
|
-
status: "waiting"
|
|
10
|
+
status: "waiting",
|
|
11
|
+
metadata: {
|
|
12
|
+
assistantName: ASSISTANT_NAME,
|
|
13
|
+
time: "14:25"
|
|
14
|
+
}
|
|
73
15
|
});
|
|
74
|
-
|
|
16
|
+
setTimeout(() => {
|
|
75
17
|
chatRef.updateLastMessage({
|
|
76
18
|
role: "assistant",
|
|
77
19
|
content: "Processing with Chat with LLMs",
|
|
78
|
-
status: "waiting"
|
|
20
|
+
status: "waiting",
|
|
21
|
+
metadata: {
|
|
22
|
+
assistantName: ASSISTANT_NAME,
|
|
23
|
+
time: "14:25"
|
|
24
|
+
}
|
|
79
25
|
}, "replace");
|
|
80
|
-
|
|
26
|
+
setTimeout(() => {
|
|
81
27
|
dummyStreaming(chatRef, 20, ASSISTANT_RESPONSE_MARKDOWN, "replace");
|
|
82
|
-
},
|
|
83
|
-
},
|
|
28
|
+
}, 2000);
|
|
29
|
+
}, 2000);
|
|
30
|
+
};
|
|
31
|
+
const stopGeneratingAnswer = () => {
|
|
32
|
+
console.log("stop generating answer");
|
|
33
|
+
return new Promise(resolve => {
|
|
34
|
+
// Lógica asincrónica aquí si es necesario
|
|
35
|
+
resolve();
|
|
36
|
+
});
|
|
84
37
|
};
|
|
85
38
|
export const chatCallbacksWithChatRef = (chChatRef) => {
|
|
86
39
|
return {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}, "concat");
|
|
97
|
-
return new Promise(resolve => setTimeout(() => resolve, 10));
|
|
98
|
-
}
|
|
40
|
+
sendChatMessages: sendChatMessages(chChatRef),
|
|
41
|
+
uploadFile: (file) => new Promise(() => {
|
|
42
|
+
console.log("file", file);
|
|
43
|
+
return Promise.resolve({
|
|
44
|
+
url: "Error",
|
|
45
|
+
mimeType: "application/javascript"
|
|
46
|
+
});
|
|
47
|
+
}),
|
|
48
|
+
stopGeneratingAnswer: stopGeneratingAnswer
|
|
99
49
|
};
|
|
100
50
|
};
|
|
101
51
|
function dummyStreaming(chatRef, counter, stringToDisplay, mode) {
|
|
102
|
-
|
|
52
|
+
setTimeout(() => {
|
|
103
53
|
const streamingCompleted = counter >= stringToDisplay.length;
|
|
104
54
|
chatRef.updateLastMessage({
|
|
105
55
|
role: "assistant",
|
|
@@ -119,7 +69,11 @@ function dummyStreaming(chatRef, counter, stringToDisplay, mode) {
|
|
|
119
69
|
// ]
|
|
120
70
|
// : undefined
|
|
121
71
|
// },
|
|
122
|
-
status: streamingCompleted ? "complete" : "streaming"
|
|
72
|
+
status: streamingCompleted ? "complete" : "streaming",
|
|
73
|
+
metadata: {
|
|
74
|
+
assistantName: ASSISTANT_NAME,
|
|
75
|
+
time: "14:25"
|
|
76
|
+
}
|
|
123
77
|
}, mode);
|
|
124
78
|
if (!streamingCompleted) {
|
|
125
79
|
dummyStreaming(chatRef, counter + 20, stringToDisplay, "concat");
|
|
@@ -132,10 +86,8 @@ function dummyStreaming(chatRef, counter, stringToDisplay, mode) {
|
|
|
132
86
|
export const chatTranslations = {
|
|
133
87
|
accessibleName: {
|
|
134
88
|
clearChat: "Clear chat",
|
|
135
|
-
|
|
89
|
+
copyMessageContent: "Copy message",
|
|
136
90
|
downloadCodeButton: "Download code",
|
|
137
|
-
imagePicker: "Select images",
|
|
138
|
-
removeUploadedImage: "Remove uploaded image",
|
|
139
91
|
sendButton: "Send",
|
|
140
92
|
sendInput: "Message",
|
|
141
93
|
stopGeneratingAnswerButton: "Stop generating answer"
|
|
@@ -145,106 +97,11 @@ export const chatTranslations = {
|
|
|
145
97
|
},
|
|
146
98
|
text: {
|
|
147
99
|
copyCodeButton: "Copy code",
|
|
100
|
+
copyMessageContent: "Copy message content",
|
|
101
|
+
downloadCodeButton: "Download code",
|
|
148
102
|
processing: `Processing with ${PROCESSING_PLACEHOLDER}`,
|
|
149
|
-
sourceFiles: "Source files:"
|
|
103
|
+
sourceFiles: "Source files:",
|
|
104
|
+
stopGeneratingAnswerButton: "Stop generating answer"
|
|
150
105
|
}
|
|
151
106
|
};
|
|
152
|
-
export const chatRecord = [
|
|
153
|
-
{ id: "1", role: "user", content: "Hello world" },
|
|
154
|
-
{ id: "2", role: "assistant", content: ASSISTANT_RESPONSE_MARKDOWN },
|
|
155
|
-
{ id: "3", role: "user", content: "Hello world 1" },
|
|
156
|
-
{ id: "4", role: "assistant", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },
|
|
157
|
-
{ id: "5", role: "user", content: "Hello world 2" },
|
|
158
|
-
{ id: "6", role: "assistant", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },
|
|
159
|
-
{ id: "7", role: "user", content: "Hello world 3" },
|
|
160
|
-
{ id: "8", role: "assistant", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },
|
|
161
|
-
{ id: "9", role: "user", content: "Hello world 4" },
|
|
162
|
-
{ id: "10", role: "assistant", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN }
|
|
163
|
-
];
|
|
164
|
-
export const longChatRecord = Array.from({ length: 40 }, (_, index) => index % 2 === 0
|
|
165
|
-
? {
|
|
166
|
-
id: `index: ${index}`,
|
|
167
|
-
role: "user",
|
|
168
|
-
content: `index: ${index}` +
|
|
169
|
-
`index: ${index}\n` +
|
|
170
|
-
`index: ${index}\n` +
|
|
171
|
-
`index: ${index}\n` +
|
|
172
|
-
`index: ${index}\n` +
|
|
173
|
-
`index: ${index}\n` +
|
|
174
|
-
`index: ${index}\n`
|
|
175
|
-
}
|
|
176
|
-
: {
|
|
177
|
-
id: `index: ${index}`,
|
|
178
|
-
role: "assistant",
|
|
179
|
-
content: ASSISTANT_RESPONSE_SHORT_MARKDOWN +
|
|
180
|
-
`\nindex: ${index}\n` +
|
|
181
|
-
`index: ${index}\n` +
|
|
182
|
-
`index: ${index}\n` +
|
|
183
|
-
`index: ${index}\n` +
|
|
184
|
-
`index: ${index}\n` +
|
|
185
|
-
`index: ${index}\n` +
|
|
186
|
-
`index: ${index}\n`
|
|
187
|
-
});
|
|
188
|
-
export const codeFixerRecord = [
|
|
189
|
-
{
|
|
190
|
-
id: "1",
|
|
191
|
-
role: "user",
|
|
192
|
-
content: "Please give me an example about...",
|
|
193
|
-
metadata: "14:55"
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
id: "2",
|
|
197
|
-
role: "assistant",
|
|
198
|
-
status: "complete",
|
|
199
|
-
content: "Action required example. Action required example. Action required example.",
|
|
200
|
-
metadata: "14:56"
|
|
201
|
-
},
|
|
202
|
-
{
|
|
203
|
-
id: "3",
|
|
204
|
-
role: "assistant",
|
|
205
|
-
status: "complete",
|
|
206
|
-
content: "Some fields contain missing or invalid data, which may prevent the process from completing correctly. Review your input carefully and make any necessary corrections before continuing.",
|
|
207
|
-
metadata: "14:57",
|
|
208
|
-
parts: "warning"
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
id: "4",
|
|
212
|
-
role: "error",
|
|
213
|
-
content: "An unexpected error occurred while processing your request, and the operation couldn’t be completed.Please check your internet connection or try again later. If the problem persists, contact support.",
|
|
214
|
-
metadata: "14:58"
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
id: "5",
|
|
218
|
-
role: "assistant",
|
|
219
|
-
status: "complete",
|
|
220
|
-
content: "Your information has been saved successfully, and all changes are now reflected in your account. You can continue with the next steps or return to the dashboard at any time.",
|
|
221
|
-
metadata: "14:59",
|
|
222
|
-
parts: "success"
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
id: "6",
|
|
226
|
-
role: "user",
|
|
227
|
-
content: "Implement the function calculate_average_grade in grades.py that takes a list of grades as input and returns the average grade as a floating-point number",
|
|
228
|
-
metadata: "15:00"
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
id: "7",
|
|
232
|
-
role: "assistant",
|
|
233
|
-
status: "complete",
|
|
234
|
-
content: "You can provide further details or updates regarding your support ticket and its associated code. Your input here helps us better understand and address your issue effectively.",
|
|
235
|
-
metadata: "15:01"
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
id: "8",
|
|
239
|
-
role: "assistant",
|
|
240
|
-
status: "waiting",
|
|
241
|
-
content: "You can provide further details or updates"
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
id: "9",
|
|
245
|
-
role: "assistant",
|
|
246
|
-
status: "complete",
|
|
247
|
-
content: ASSISTANT_RESPONSE_SHORT_MARKDOWN
|
|
248
|
-
}
|
|
249
|
-
];
|
|
250
107
|
//# sourceMappingURL=callbacks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../../src/showcase/chat-container/callbacks.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChatInternalCallbacks,\n ChatMessage,\n ChatTranslations\n} from \"@genexus/chameleon-controls-library\";\n\nconst PROCESSING_PLACEHOLDER = \"{{ASSISTANT_NAME}}\";\n\nlet timeOut: NodeJS.Timeout;\n\nconst ASSISTANT_RESPONSE_MARKDOWN = `\n###### Code block {#code-block}\nTo create code blocks, you’ll use three backticks (\\` \\`\\`\\` \\`) or three tildes (\\`~~~\\`) on the lines before and after the code block.\n\n\\`\\`\\`\n{\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"age\": 25\n}\n\\`\\`\\`\n\nAnother way to create code blocks is to indent every line of the block by at least four spaces or one tab.\n\n <html>\n <head>\n </head>\n </html>\n\n\n###### Syntax Highlighting {#syntax-highlighting}\nThis feature allows you to add color highlighting for whatever language your code was written in.\nTo add syntax highlighting, specify a language next to the backticks before the fenced code block.\n\n\\`\\`\\`json\n{\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"age\": 25\n}\n\\`\\`\\`\n\n\\`\\`\\`javascript\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport Markdown from 'react-markdown'\nimport rehypeHighlight from 'rehype-highlight'\n\nconst markdown = \\`\n# Your markdown here\n\\`\n\nReactDOM.render(\n <Markdown rehypePlugins={[rehypeHighlight]}>{markdown}</Markdown>,\n document.querySelector('#content')\n)\n\\`\\`\\`\n\n###### Horizontal Rules {#horizontal-rules}\nTo create a horizontal rule, use three or more asterisks (\\`***\\`), dashes (\\`---\\`), or underscores (\\`___\\`) on a line by themselves.\n`;\n\nconst ASSISTANT_RESPONSE_SHORT_MARKDOWN = `\n###### Code block {#code-block}\nTo create code blocks, you’ll use three backticks (\\` \\`\\`\\` \\`) or three tildes (\\`~~~\\`) on the lines before and after the code block.\n\n\\`\\`\\`json\n{\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"age\": 25\n}\n\\`\\`\\`\n`;\n\nconst sendChatToLLM = (chatRef: HTMLChChatElement) => () => {\n chatRef.generatingResponse = true;\n\n chatRef.addNewMessage({\n id: `${new Date().getTime()}`,\n role: \"assistant\",\n content: \"Analyzing\",\n status: \"waiting\"\n });\n\n timeOut = setTimeout(() => {\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"Processing with Chat with LLMs\",\n status: \"waiting\"\n },\n \"replace\"\n );\n\n timeOut = setTimeout(() => {\n dummyStreaming(chatRef, 20, ASSISTANT_RESPONSE_MARKDOWN, \"replace\");\n }, 10000);\n }, 20000);\n};\n\nexport const chatCallbacksWithChatRef = (\n chChatRef: HTMLChChatElement\n): ChatInternalCallbacks => {\n return {\n clear: () => new Promise(resolve => resolve()),\n sendChatToLLM: sendChatToLLM(chChatRef),\n uploadImage: () => new Promise(resolve => resolve(\"\")),\n stopGeneratingAnswer: () => {\n clearTimeout(timeOut);\n\n chChatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"\",\n status: \"complete\"\n },\n \"concat\"\n );\n\n return new Promise(resolve => setTimeout(() => resolve, 10));\n }\n };\n};\n\nfunction dummyStreaming(\n chatRef: HTMLChChatElement,\n counter: number,\n stringToDisplay: string,\n mode: \"concat\" | \"replace\"\n) {\n timeOut = setTimeout(\n () => {\n const streamingCompleted = counter >= stringToDisplay.length;\n\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: stringToDisplay.substring(counter - 20, counter),\n\n // {\n // message: stringToDisplay.substring(counter - 20, counter),\n // files: streamingCompleted\n // ? [\n // {\n // url: \"https://next.genexus.ai\",\n // caption: \"Mars Exploration Contract\"\n // },\n // {\n // url: \"https://gx-chameleon.netlify.app\",\n // caption: \"Venus Exploration Contract\"\n // }\n // ]\n // : undefined\n // },\n status: streamingCompleted ? \"complete\" : \"streaming\"\n },\n mode\n );\n\n if (!streamingCompleted) {\n dummyStreaming(chatRef, counter + 20, stringToDisplay, \"concat\");\n } else {\n chatRef.generatingResponse = false;\n }\n },\n counter % 200 === 0 ? 50 : 40\n );\n}\n\nexport const chatTranslations: ChatTranslations = {\n accessibleName: {\n clearChat: \"Clear chat\",\n copyResponseButton: \"Copy assistant response\",\n downloadCodeButton: \"Download code\",\n imagePicker: \"Select images\",\n removeUploadedImage: \"Remove uploaded image\",\n sendButton: \"Send\",\n sendInput: \"Message\",\n stopGeneratingAnswerButton: \"Stop generating answer\"\n },\n placeholder: {\n sendInput: \"Ask me a question...\"\n },\n text: {\n copyCodeButton: \"Copy code\",\n processing: `Processing with ${PROCESSING_PLACEHOLDER}`,\n sourceFiles: \"Source files:\"\n }\n};\n\nexport const chatRecord: ChatMessage[] = [\n { id: \"1\", role: \"user\", content: \"Hello world\" },\n { id: \"2\", role: \"assistant\", content: ASSISTANT_RESPONSE_MARKDOWN },\n { id: \"3\", role: \"user\", content: \"Hello world 1\" },\n { id: \"4\", role: \"assistant\", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },\n { id: \"5\", role: \"user\", content: \"Hello world 2\" },\n { id: \"6\", role: \"assistant\", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },\n { id: \"7\", role: \"user\", content: \"Hello world 3\" },\n { id: \"8\", role: \"assistant\", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },\n { id: \"9\", role: \"user\", content: \"Hello world 4\" },\n { id: \"10\", role: \"assistant\", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN }\n];\n\nexport const longChatRecord: ChatMessage[] = Array.from(\n { length: 40 },\n (_, index) =>\n index % 2 === 0\n ? {\n id: `index: ${index}`,\n role: \"user\",\n content:\n `index: ${index}` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n`\n }\n : {\n id: `index: ${index}`,\n role: \"assistant\",\n content:\n ASSISTANT_RESPONSE_SHORT_MARKDOWN +\n `\\nindex: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n`\n }\n);\n\nexport const codeFixerRecord: ChatMessage[] = [\n {\n id: \"1\",\n role: \"user\",\n content: \"Please give me an example about...\",\n metadata: \"14:55\"\n },\n {\n id: \"2\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"Action required example. Action required example. Action required example.\",\n metadata: \"14:56\"\n },\n {\n id: \"3\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"Some fields contain missing or invalid data, which may prevent the process from completing correctly. Review your input carefully and make any necessary corrections before continuing.\",\n metadata: \"14:57\",\n parts: \"warning\"\n },\n {\n id: \"4\",\n role: \"error\",\n content:\n \"An unexpected error occurred while processing your request, and the operation couldn’t be completed.Please check your internet connection or try again later. If the problem persists, contact support.\",\n metadata: \"14:58\"\n },\n {\n id: \"5\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"Your information has been saved successfully, and all changes are now reflected in your account. You can continue with the next steps or return to the dashboard at any time.\",\n metadata: \"14:59\",\n parts: \"success\"\n },\n {\n id: \"6\",\n role: \"user\",\n content:\n \"Implement the function calculate_average_grade in grades.py that takes a list of grades as input and returns the average grade as a floating-point number\",\n metadata: \"15:00\"\n },\n {\n id: \"7\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"You can provide further details or updates regarding your support ticket and its associated code. Your input here helps us better understand and address your issue effectively.\",\n metadata: \"15:01\"\n },\n {\n id: \"8\",\n role: \"assistant\",\n status: \"waiting\",\n content: \"You can provide further details or updates\"\n },\n {\n id: \"9\",\n role: \"assistant\",\n status: \"complete\",\n content: ASSISTANT_RESPONSE_SHORT_MARKDOWN\n }\n];\n"]}
|
|
1
|
+
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../../src/showcase/chat-container/callbacks.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ChatCallbacks,\n ChatTranslations\n} from \"@genexus/chameleon-controls-library\";\nimport { ChatMessageFile } from \"@genexus/chameleon-controls-library/dist/types/components/chat/types\";\n\nimport { ASSISTANT_RESPONSE_MARKDOWN } from \"./models\";\n\nimport { ASSISTANT_NAME } from \"./models\";\nimport { MercuryChatMessageMetadata } from \"../../components/chat/lit-custom-render/types\";\n\nconst PROCESSING_PLACEHOLDER = \"{{ASSISTANT_NAME}}\";\n\nconst sendChatMessages = (chatRef: HTMLChChatElement) => () => {\n chatRef.generatingResponse = true;\n\n chatRef.addNewMessage({\n id: `${new Date().getTime()}`,\n role: \"assistant\",\n content: \"Analyzing\",\n status: \"waiting\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n });\n\n setTimeout(() => {\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"Processing with Chat with LLMs\",\n status: \"waiting\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n \"replace\"\n );\n\n setTimeout(() => {\n dummyStreaming(chatRef, 20, ASSISTANT_RESPONSE_MARKDOWN, \"replace\");\n }, 2000);\n }, 2000);\n};\n\nconst stopGeneratingAnswer = (): Promise<void> => {\n console.log(\"stop generating answer\");\n return new Promise<void>(resolve => {\n // Lógica asincrónica aquí si es necesario\n resolve();\n });\n};\n\nexport const chatCallbacksWithChatRef = (\n chChatRef: HTMLChChatElement\n): ChatCallbacks => {\n return {\n sendChatMessages: sendChatMessages(chChatRef),\n uploadFile: (file: File) =>\n new Promise<ChatMessageFile>(() => {\n console.log(\"file\", file);\n\n return Promise.resolve({\n url: \"Error\",\n mimeType: \"application/javascript\"\n } satisfies ChatMessageFile);\n }),\n stopGeneratingAnswer: stopGeneratingAnswer\n };\n};\n\nfunction dummyStreaming(\n chatRef: HTMLChChatElement,\n counter: number,\n stringToDisplay: string,\n mode: \"concat\" | \"replace\"\n) {\n setTimeout(\n () => {\n const streamingCompleted = counter >= stringToDisplay.length;\n\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: stringToDisplay.substring(counter - 20, counter),\n\n // {\n // message: stringToDisplay.substring(counter - 20, counter),\n // files: streamingCompleted\n // ? [\n // {\n // url: \"https://next.genexus.ai\",\n // caption: \"Mars Exploration Contract\"\n // },\n // {\n // url: \"https://gx-chameleon.netlify.app\",\n // caption: \"Venus Exploration Contract\"\n // }\n // ]\n // : undefined\n // },\n status: streamingCompleted ? \"complete\" : \"streaming\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n mode\n );\n\n if (!streamingCompleted) {\n dummyStreaming(chatRef, counter + 20, stringToDisplay, \"concat\");\n } else {\n chatRef.generatingResponse = false;\n }\n },\n counter % 200 === 0 ? 50 : 40\n );\n}\n\nexport const chatTranslations: ChatTranslations = {\n accessibleName: {\n clearChat: \"Clear chat\",\n copyMessageContent: \"Copy message\",\n downloadCodeButton: \"Download code\",\n sendButton: \"Send\",\n sendInput: \"Message\",\n stopGeneratingAnswerButton: \"Stop generating answer\"\n },\n placeholder: {\n sendInput: \"Ask me a question...\"\n },\n text: {\n copyCodeButton: \"Copy code\",\n copyMessageContent: \"Copy message content\",\n downloadCodeButton: \"Download code\",\n processing: `Processing with ${PROCESSING_PLACEHOLDER}`,\n sourceFiles: \"Source files:\",\n stopGeneratingAnswerButton: \"Stop generating answer\"\n }\n};\n"]}
|
|
@@ -15,15 +15,16 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
15
15
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
16
16
|
};
|
|
17
17
|
var _GxIdeScChatContainer_chatContainerRef, _GxIdeScChatContainer_chatWelcomeRef, _GxIdeScChatContainer_chChatRef, _GxIdeScChatContainer_chatCallbacks, _GxIdeScChatContainer_copyConversationCallbackHandler, _GxIdeScChatContainer_deleteConversationCallbackHandler, _GxIdeScChatContainer_suggestedPrompRequestedCallbackHandler;
|
|
18
|
-
import { Host, h
|
|
19
|
-
import {
|
|
20
|
-
|
|
18
|
+
import { Host, h } from "@stencil/core";
|
|
19
|
+
import { renderItemMercury } from "../../components/chat/lit-custom-render/render-item.lit";
|
|
20
|
+
import { codeFixerRecord } from "./models";
|
|
21
21
|
const CSS_BUNDLES = [
|
|
22
22
|
"resets/box-sizing",
|
|
23
23
|
"utils/elevation",
|
|
24
|
-
"components/chat"
|
|
24
|
+
"components/chat-lit",
|
|
25
|
+
"components/markdown-viewer"
|
|
25
26
|
];
|
|
26
|
-
import { chatCallbacksWithChatRef, chatTranslations
|
|
27
|
+
import { chatCallbacksWithChatRef, chatTranslations } from "./callbacks";
|
|
27
28
|
export class GxIdeScChatContainer {
|
|
28
29
|
constructor() {
|
|
29
30
|
_GxIdeScChatContainer_chatContainerRef.set(this, void 0);
|
|
@@ -127,7 +128,7 @@ export class GxIdeScChatContainer {
|
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
130
|
render() {
|
|
130
|
-
return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("gx-ide-chat-container", { chatTitle: "GeneXus Assistant", copyConversationCallback: __classPrivateFieldGet(this, _GxIdeScChatContainer_copyConversationCallbackHandler, "f"), deleteConversationCallback: __classPrivateFieldGet(this, _GxIdeScChatContainer_deleteConversationCallbackHandler, "f"), ref: el => (__classPrivateFieldSet(this, _GxIdeScChatContainer_chatContainerRef, el, "f")), class: "elevation-1" }, h("ch-chat", { callbacks: __classPrivateFieldGet(this, _GxIdeScChatContainer_chatCallbacks, "f"), class: "chat", generatingResponse: this.generatingResponse, loadingState: this.loadingState, renderItem:
|
|
131
|
+
return (h(Host, null, h("ch-theme", { model: CSS_BUNDLES }), h("gx-ide-chat-container", { chatTitle: "GeneXus Assistant", copyConversationCallback: __classPrivateFieldGet(this, _GxIdeScChatContainer_copyConversationCallbackHandler, "f"), deleteConversationCallback: __classPrivateFieldGet(this, _GxIdeScChatContainer_deleteConversationCallbackHandler, "f"), ref: el => (__classPrivateFieldSet(this, _GxIdeScChatContainer_chatContainerRef, el, "f")), class: "elevation-1" }, h("ch-chat", { callbacks: __classPrivateFieldGet(this, _GxIdeScChatContainer_chatCallbacks, "f"), class: "chat-lit", generatingResponse: this.generatingResponse, loadingState: this.loadingState, renderItem: renderItemMercury, items: codeFixerRecord, showAdditionalContent: this.showAdditionalContent, translations: chatTranslations, ref: (el) => (__classPrivateFieldSet(this, _GxIdeScChatContainer_chChatRef, el, "f")), markdownTheme: "components/markdown-viewer" }, h("gx-ide-chat-welcome", { ref: el => (__classPrivateFieldSet(this, _GxIdeScChatContainer_chatWelcomeRef, el, "f")), slot: "empty-chat", suggestedPrompRequestedCallback: __classPrivateFieldGet(this, _GxIdeScChatContainer_suggestedPrompRequestedCallbackHandler, "f"), suggestedPrompts: [
|
|
131
132
|
"I need to represente a product entity",
|
|
132
133
|
"I want to create a Customer Tracking application. Can you help me with the architecture?",
|
|
133
134
|
"I need to create a REST API for my application"
|