@genexus/genexus-ide-ui 1.1.23 → 1.1.24
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/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/index.cjs.js +2 -5
- package/dist/cjs/index.cjs.js.map +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/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/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/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/index.js +1 -3
- package/dist/esm/index.js.map +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/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-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/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-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 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["aboutCss","CSS_BUNDLES","GxIdeAbout","_GxIdeAbout_componentLocale","set","this","_GxIdeAbout_nextLogo","getAssetPath","_GxIdeAbout_copyVersionsHandler","copying","setTimeout","navigator","clipboard","writeText","__classPrivateFieldGet","copyVersionsAdditionalText","versions","map","version","join","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","render","renderPrivacyAndTerms","privacyPolicyCallback","termsAndConditionsCallback","renderPrivacyOrTerms","h","Host","class","model","src","alt","logoAlt","length","type","onClick","disabled","copied","copy","detailsCallback","detailsAndAcknowledgmentes","hidden","privacyPolicy","termsAndConditions","copyright"],"sources":["src/components/about/about.scss?tag=gx-ide-about&encapsulation=shadow","src/components/about/about.tsx"],"sourcesContent":["$versionsListPadding: 14px;\n\n:host {\n --spacing-body-block-start: var(--mer-spacing--lg);\n --spacing-body-block-end: var(--mer-spacing--lg);\n --spacing-body-inline-start: var(--mer-spacing--md);\n --spacing-body-inline-end: var(--mer-spacing--md);\n\n display: grid;\n inline-size: 100%;\n block-size: 100%;\n gap: var(--mer-spacing--md);\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n background-color: var(\n --elevation-background-color,\n var(--mer-surface__elevation--02)\n );\n color: var(--mer-text__on-elevation);\n text-align: center;\n}\n.section {\n // section was addad for semantics, in order to allow a footer tag.\n display: contents;\n}\n\n.main {\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content;\n gap: var(--mer-spacing--lg);\n}\n\n.logo {\n &__container {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n align-items: center;\n margin: unset;\n }\n &__img {\n $logoSize: 28px;\n inline-size: $logoSize;\n block-size: $logoSize;\n }\n}\n.logotype {\n color: var(--mer-text__bright);\n}\n\n.versions__container {\n overflow: hidden;\n border: var(--mer-border__width--sm) solid\n var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--sm);\n display: grid;\n grid-template-rows: 1fr max-content;\n inline-size: 100%;\n\n button {\n justify-self: center;\n min-inline-size: 72px;\n }\n}\n.versions__container-footer {\n padding: $versionsListPadding;\n}\n\n.versions__list {\n overflow: auto;\n list-style: none;\n margin: 0;\n padding: $versionsListPadding;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n}\n\n.link-underlined {\n // TODO: Add link helper class in Mercury\n text-decoration: underline;\n color: var(--mer-text__on-elevation);\n &:hover {\n color: var(--mer-text__highlighted);\n }\n &:active {\n color: var(--mer-text__elevation);\n }\n}\n\n.links-container {\n display: flex;\n gap: var(--mer-spacing--xs);\n}\n\n.footer {\n // TODO: Add color helper classes in Mercury\n display: flex;\n align-items: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n color: var(--mer-text__complementary);\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/elevation\",\n \"components/button\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-about\",\n styleUrl: \"about.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/about\"]\n})\nexport class GxIdeAbout {\n #componentLocale: any;\n #nextLogo = getAssetPath(`./gx-ide-assets/about/images/next-logo.svg`);\n\n @Element() el: HTMLGxIdeAboutElement;\n\n /**\n * GeneXus Next version, and also related dependencies versions\n */\n @Prop() readonly versions: string[] = [];\n\n /**\n * Callback invoked when the user clicks on \"Details & Acknowledgements\"\n */\n @Prop() readonly detailsCallback: DetailsCallback;\n\n /**\n * Callback invoked when the user clicks on \"Privacy policy\"\n */\n @Prop() readonly privacyPolicyCallback: PrivacyPolicyCallback;\n\n /**\n * Callback invoked when the user clicks on \"Terms and conditions\"\n */\n @Prop() readonly termsAndConditionsCallback: TermsAndConditionsCallback;\n\n /**\n * True when the user copies the versions\n */\n @State() copying: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n #copyVersionsHandler = () => {\n this.copying = true;\n setTimeout(() => {\n this.copying = false;\n }, 1000);\n\n navigator.clipboard.writeText(\n `${this.#componentLocale.copyVersionsAdditionalText}${this.versions\n .map(version => `- ${version}`)\n .join(\"\\n\")}`\n );\n };\n\n render() {\n const renderPrivacyAndTerms =\n this.privacyPolicyCallback && this.termsAndConditionsCallback;\n const renderPrivacyOrTerms =\n this.privacyPolicyCallback || this.termsAndConditionsCallback;\n\n return (\n <Host class=\"scrollable\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header>\n <figure class=\"logo__container\">\n <img\n class=\"logo__img\"\n src={this.#nextLogo}\n alt={this.#componentLocale.logoAlt}\n />\n <figcaption class=\"body-semi-bold-m logotype\">\n GeneXus Next\n </figcaption>\n </figure>\n </header>\n <div class=\"main\">\n {this.versions.length ? (\n <div class=\"versions__container elevation-1\">\n <ul class=\"versions__list scrollable\">\n {this.versions.map(version => {\n return <li class=\"body-regular-s\">{version}</li>;\n })}\n </ul>\n <div class=\"versions__container-footer\">\n <button\n class=\"button-secondary\"\n type=\"button\"\n onClick={this.#copyVersionsHandler}\n disabled={this.copying}\n >\n {this.copying\n ? this.#componentLocale.copied\n : this.#componentLocale.copy}\n {}\n </button>\n </div>\n </div>\n ) : null}\n\n {this.detailsCallback && (\n <button\n class=\"button-tertiary\"\n type=\"button\"\n onClick={this.detailsCallback}\n >\n {this.#componentLocale.detailsAndAcknowledgmentes}\n </button>\n )}\n </div>\n\n <footer class=\"body-regular-s footer\">\n {renderPrivacyOrTerms && (\n <div class=\"links-container\" hidden={!renderPrivacyAndTerms}>\n {this.privacyPolicyCallback && (\n <button\n class=\"link-underlined tiny-regular-s\"\n type=\"button\"\n onClick={this.privacyPolicyCallback}\n >\n {this.#componentLocale.privacyPolicy}\n </button>\n )}\n\n {renderPrivacyAndTerms && \"|\"}\n\n {this.termsAndConditionsCallback && (\n <button\n class=\"link-underlined tiny-regular-s\"\n type=\"button\"\n onClick={this.termsAndConditionsCallback}\n >\n {this.#componentLocale.termsAndConditions}\n </button>\n )}\n </div>\n )}\n {this.#componentLocale.copyright}\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type DetailsCallback = () => Promise<void>;\nexport type PrivacyPolicyCallback = () => Promise<void>;\nexport type TermsAndConditionsCallback = () => Promise<void>;\n"],"mappings":";;;;AAAA,MAAMA,IAAW;;;;;;;;;;;;;;;;;ACajB,MAAMC,IAA8B,EAClC,qBACA,oBACA,mBACA,qBACA;;MASWC,IAAU;;;IACrBC,EAAAC,IAAAC,WAAA;IACAC,EAAAF,IAAAC,MAAYE,EAAa;IAiCzBC,EAAAJ,IAAAC,OAAuB;MACrBA,KAAKI,UAAU;MACfC,YAAW;QACTL,KAAKI,UAAU;AAAK,UACnB;MAEHE,UAAUC,UAAUC,UAClB,GAAGC,EAAAT,MAAIF,GAAA,KAAkBY,6BAA6BV,KAAKW,SACxDC,KAAIC,KAAW,KAAKA,MACpBC,KAAK;AACT;oBApCmC;;;;mBAoBV;;EAE5B,uBAAMC;IACJC,EAAAhB,MAAIF,SAA0BmB,EAAOC,oBAAoBlB,KAAKmB,KAAG;;EAgBnE,MAAAC;IACE,MAAMC,IACJrB,KAAKsB,yBAAyBtB,KAAKuB;IACrC,MAAMC,IACJxB,KAAKsB,yBAAyBtB,KAAKuB;IAErC,OACEE,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOhC;QACjB6B,EAAA;MAASE,OAAM;OACbF,EAAA,gBACEA,EAAA;MAAQE,OAAM;OACZF,EAAA;MACEE,OAAM;MACNE,KAAKpB,EAAAT,MAAIC,GAAA;MACT6B,KAAKrB,EAAAT,MAAIF,GAAA,KAAkBiC;QAE7BN,EAAA;MAAYE,OAAM;OAA2B,mBAKjDF,EAAA;MAAKE,OAAM;OACR3B,KAAKW,SAASqB,SACbP,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAIE,OAAM;OACP3B,KAAKW,SAASC,KAAIC,KACVY,EAAA;MAAIE,OAAM;OAAkBd,OAGvCY,EAAA;MAAKE,OAAM;OACTF,EAAA;MACEE,OAAM;MACNM,MAAK;MACLC,SAASzB,EAAAT,MAAIG,GAAA;MACbgC,UAAUnC,KAAKI;OAEdJ,KAAKI,UACFK,EAAAT,MAAIF,GAAA,KAAkBsC,SACtB3B,EAAAT,MAAIF,GAAA,KAAkBuC,UAK9B,MAEHrC,KAAKsC,mBACJb,EAAA;MACEE,OAAM;MACNM,MAAK;MACLC,SAASlC,KAAKsC;OAEb7B,EAAAT,MAAIF,GAAA,KAAkByC,8BAK7Bd,EAAA;MAAQE,OAAM;OACXH,KACCC,EAAA;MAAKE,OAAM;MAAkBa,SAASnB;OACnCrB,KAAKsB,yBACJG,EAAA;MACEE,OAAM;MACNM,MAAK;MACLC,SAASlC,KAAKsB;OAEbb,EAAAT,MAAIF,GAAA,KAAkB2C,gBAI1BpB,KAAyB,KAEzBrB,KAAKuB,8BACJE,EAAA;MACEE,OAAM;MACNM,MAAK;MACLC,SAASlC,KAAKuB;OAEbd,EAAAT,MAAIF,GAAA,KAAkB4C,sBAK9BjC,EAAAT,MAAIF,GAAA,KAAkB6C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["PROCESSING_PLACEHOLDER","timeOut","ASSISTANT_RESPONSE_MARKDOWN","ASSISTANT_RESPONSE_SHORT_MARKDOWN","sendChatToLLM","chatRef","generatingResponse","addNewMessage","id","Date","getTime","role","content","status","setTimeout","updateLastMessage","dummyStreaming","chatCallbacksWithChatRef","chChatRef","clear","Promise","resolve","uploadImage","stopGeneratingAnswer","clearTimeout","counter","stringToDisplay","mode","streamingCompleted","length","substring","chatTranslations","accessibleName","clearChat","copyResponseButton","downloadCodeButton","imagePicker","removeUploadedImage","sendButton","sendInput","stopGeneratingAnswerButton","placeholder","text","copyCodeButton","processing","sourceFiles","Array","from","_","index","codeFixerRecord","metadata","parts","chatShowcaseCss","AI_AVATAR","getAssetPath","CSS_BUNDLES","GxIdeScChatContainer","_GxIdeScChatContainer_chatContainerRef","set","this","_GxIdeScChatContainer_chatWelcomeRef","_GxIdeScChatContainer_chChatRef","_GxIdeScChatContainer_chatCallbacks","_GxIdeScChatContainer_copyConversationCallbackHandler","__classPrivateFieldGet","showCopyConversationMessage","_GxIdeScChatContainer_deleteConversationCallbackHandler","_GxIdeScChatContainer_suggestedPrompRequestedCallbackHandler","async","prompt","assistantFinalResponse","toLowerCase","includes","userPrompt","exitWelcome","componentDidLoad","assistantStatus","componentDidRender","__classPrivateFieldSet","componentWillLoad","chatItems","render","h","Host","model","chatTitle","copyConversationCallback","deleteConversationCallback","ref","el","class","callbacks","loadingState","renderItem","mercuryChatMessageRender","items","showAdditionalContent","translations","slot","suggestedPrompRequestedCallback","suggestedPrompts"],"sources":["src/showcase/chat-container/callbacks.ts","src/showcase/chat-container/chat-showcase.scss?tag=gx-ide-sc-chat-container&encapsulation=shadow","src/showcase/chat-container/chat.showcase.tsx"],"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",":host {\n block-size: 100%;\n display: grid;\n}\n","import {\n Component,\n Host,\n h,\n State,\n Prop,\n getAssetPath,\n Method\n} from \"@stencil/core\";\nimport { mercuryChatMessageRender } from \"../../components/chat/code-render\";\n\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nconst AI_AVATAR = getAssetPath(\n `./gx-ide-assets/chat-welcome/images/ai-avatar.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/elevation\",\n \"components/chat\"\n];\n\nimport {\n chatCallbacksWithChatRef,\n chatTranslations,\n codeFixerRecord\n} from \"./callbacks\";\nimport {\n ChatMessage,\n ChatInternalCallbacks\n} from \"@genexus/chameleon-controls-library\";\nimport { ChatMessageUser } from \"@genexus/chameleon-controls-library/dist/types/components/chat/types\";\n\n@Component({\n tag: \"gx-ide-sc-chat-container\",\n styleUrl: \"chat-showcase.scss\",\n shadow: true\n})\nexport class GxIdeScChatContainer {\n #chatContainerRef!: HTMLGxIdeChatContainerElement;\n #chatWelcomeRef!: HTMLGxIdeChatWelcomeElement;\n #chChatRef!: HTMLChChatElement;\n #chatCallbacks: ChatInternalCallbacks;\n\n /**\n * If true, the chat items length will be 0, since this is a requirement for dipslaying the ch-chat\n * \"empty-chat\" slot that welcome screen uses to display.\n */\n @Prop() readonly mode: \"welcome\" | \"messages-sample\" | \"empty\" =\n \"messages-sample\";\n\n @State() generatingResponse: boolean = false;\n @State() loadingState:\n | \"all-records-loaded\"\n | \"initial\"\n | \"loading\"\n | \"more-data-to-fetch\" = \"all-records-loaded\";\n @State() showAdditionalContent: boolean = false;\n @State() conversationCopied: boolean = false;\n @State() assistantStatus: string = \"Getting Data\";\n @State() chatItems: ChatMessage[] = [];\n\n /**\n * It will exit the wellcome screen and remove it from the dom.\n */\n @Method()\n async exitWelcome() {\n // hand exitWelcome to gx-ide-chat-welcome\n this.#chatWelcomeRef.exitWelcome();\n }\n\n #copyConversationCallbackHandler = () => {\n this.#chatContainerRef.showCopyConversationMessage();\n };\n\n #deleteConversationCallbackHandler = () => {};\n\n componentDidLoad() {\n setTimeout(() => {\n this.assistantStatus = \"Creating Data Base..\";\n }, 1000);\n }\n\n componentDidRender() {\n if (!this.#chatCallbacks && this.#chChatRef) {\n this.#chatCallbacks = chatCallbacksWithChatRef(this.#chChatRef);\n }\n }\n\n async componentWillLoad() {\n if (this.mode === \"messages-sample\") {\n this.chatItems = codeFixerRecord;\n } else if (this.mode === \"welcome\") {\n this.chatItems = [];\n } else if (this.mode === \"empty\") {\n this.chatItems = [\n {\n id: \"1\",\n role: \"assistant\",\n status: \"complete\",\n content: \"Hello! I am your assistant.\",\n metadata: \"14:56\"\n }\n ];\n }\n }\n #suggestedPrompRequestedCallbackHandler = async (\n prompt: string\n ): Promise<void> => {\n let assistantFinalResponse: string;\n if (prompt.toLowerCase().includes(\"transaction\")) {\n assistantFinalResponse =\n 'To create a transaction in GeneXus, start by opening your KB (Knowledge Base) and selecting \"Transaction\" from the \"New Object\" options. Give it a name and define its attributes, starting with a primary key followed by the related data fields. GeneXus will automatically infer the data structure and relationships based on how you define the attributes and their nesting. Once saved, it generates the necessary database tables and forms for inserting, updating, and deleting records. You can then run the application to test the transaction directly in your browser.';\n } else if (prompt.toLowerCase().includes(\"entity\")) {\n assistantFinalResponse =\n 'In GeneXus, creating an entity usually means defining a Transaction object that represents a real-world concept like \"Customer\" or \"Product.\" To do this, create a new Transaction, name it after the entity, and define its attributes—starting with a unique identifier (like CustomerId) and then adding other fields (like CustomerName, CustomerEmail). GeneXus treats this Transaction as an entity and uses it to generate the corresponding table and interface automatically.';\n } else {\n assistantFinalResponse =\n \"Sorry, I didn’t catch that—mind rephrasing it? 😅\";\n }\n\n const userPrompt: ChatMessageUser = {\n id: \"1\",\n role: \"user\",\n content: prompt\n };\n this.#chChatRef.addNewMessage(userPrompt);\n setTimeout(() => {\n this.#chChatRef.addNewMessage({\n id: `${new Date().getTime()}`,\n role: \"assistant\",\n content: \"Analyzing\",\n status: \"waiting\"\n });\n setTimeout(() => {\n this.#chChatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"Processing with Chat with LLMs\",\n status: \"waiting\"\n },\n \"replace\"\n );\n setTimeout(() => {\n this.#chChatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"Getting information\",\n status: \"waiting\"\n },\n \"replace\"\n );\n this.#chChatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: assistantFinalResponse,\n status: \"complete\"\n },\n \"replace\"\n );\n }, 1500);\n }, 1500);\n }, 100);\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <gx-ide-chat-container\n chatTitle=\"GeneXus Assistant\"\n copyConversationCallback={this.#copyConversationCallbackHandler}\n deleteConversationCallback={this.#deleteConversationCallbackHandler}\n ref={el =>\n (this.#chatContainerRef = el as HTMLGxIdeChatContainerElement)\n }\n class=\"elevation-1\"\n >\n <ch-chat\n callbacks={this.#chatCallbacks}\n class=\"chat\"\n generatingResponse={this.generatingResponse}\n loadingState={this.loadingState} // \"all-records-loaded\" to display the welcome screen\n renderItem={mercuryChatMessageRender(\n \"components/markdown-viewer\",\n AI_AVATAR,\n \"Nexa\"\n )}\n items={this.chatItems} // length 0 to display the welcome screen\n showAdditionalContent={this.showAdditionalContent}\n translations={chatTranslations}\n ref={el => (this.#chChatRef = el as HTMLChChatElement)}\n >\n <gx-ide-chat-welcome\n ref={el =>\n (this.#chatWelcomeRef = el as HTMLGxIdeChatWelcomeElement)\n }\n slot=\"empty-chat\"\n suggestedPrompRequestedCallback={\n this.#suggestedPrompRequestedCallbackHandler\n }\n suggestedPrompts={[\n \"I need to represente a product entity\",\n \"I want to create a Customer Tracking application. Can you help me with the architecture?\",\n \"I need to create a REST API for my application\"\n ]}\n ></gx-ide-chat-welcome>\n <div slot=\"additional-content\">\n Custom content that is rendered when the chat renders content\n </div>\n </ch-chat>\n </gx-ide-chat-container>\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { h as e } from "./p-25a9f1d7.js";
|
|
2
|
-
|
|
3
|
-
import { A as s } from "./p-0c0eb8ae.js";
|
|
4
|
-
|
|
5
|
-
const a = s("regular", "nexa");
|
|
6
|
-
|
|
7
|
-
const t = "code-block-header__copy";
|
|
8
|
-
|
|
9
|
-
const o = `${t}-copied`;
|
|
10
|
-
|
|
11
|
-
const r = "code-block-header";
|
|
12
|
-
|
|
13
|
-
const copy = (e, s = false) => a => {
|
|
14
|
-
const t = 1750;
|
|
15
|
-
a.stopPropagation();
|
|
16
|
-
// 1. Copy message
|
|
17
|
-
navigator.clipboard.writeText(e);
|
|
18
|
-
const r = a.target;
|
|
19
|
-
if (s) {
|
|
20
|
-
const e = r.previousElementSibling;
|
|
21
|
-
const s = e === null || e === void 0 ? void 0 : e.getAttribute("part");
|
|
22
|
-
const a = `${s} ${o}`;
|
|
23
|
-
e.setAttribute("part", a);
|
|
24
|
-
setTimeout((() => {
|
|
25
|
-
e.setAttribute("part", `${s}`);
|
|
26
|
-
}), t);
|
|
27
|
-
} else {
|
|
28
|
-
const e = r.closest("ch-smart-grid-cell");
|
|
29
|
-
const s = e === null || e === void 0 ? void 0 : e.getAttribute("part");
|
|
30
|
-
const a = `${s} copied`;
|
|
31
|
-
e.setAttribute("part", a);
|
|
32
|
-
setTimeout((() => {
|
|
33
|
-
e.setAttribute("part", `${s}`);
|
|
34
|
-
}), t);
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
const copyButton = (s, a, t, o = false) => e("button", {
|
|
39
|
-
"aria-label": a,
|
|
40
|
-
title: a,
|
|
41
|
-
class: "button-copy-code",
|
|
42
|
-
type: "button",
|
|
43
|
-
onClick: copy(s, o),
|
|
44
|
-
part: `message__copy-button ${t}`
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
const mercuryCodeRender = s => a => e("div", {
|
|
48
|
-
class: "code-block-container"
|
|
49
|
-
}, e("div", {
|
|
50
|
-
class: r,
|
|
51
|
-
part: r
|
|
52
|
-
}, e("p", {
|
|
53
|
-
part: "code-block-header__copy"
|
|
54
|
-
}, "Copied"), copyButton(a.plainText, s, "code-render", true)), e("ch-code", {
|
|
55
|
-
language: a.language,
|
|
56
|
-
lastNestedChildClass: a.lastNestedChildClass,
|
|
57
|
-
value: a.plainText
|
|
58
|
-
}));
|
|
59
|
-
|
|
60
|
-
const renderMessageHeader = (s, a, t, o) => e("div", {
|
|
61
|
-
part: "message__header"
|
|
62
|
-
}, e("div", {
|
|
63
|
-
part: "message__header-start"
|
|
64
|
-
}, e("span", {
|
|
65
|
-
part: "message__avatar",
|
|
66
|
-
style: {
|
|
67
|
-
backgroundImage: `url(${s})`
|
|
68
|
-
}
|
|
69
|
-
}), e("span", {
|
|
70
|
-
part: `message__role assistant`
|
|
71
|
-
}, a), e("time", {
|
|
72
|
-
dateTime: o,
|
|
73
|
-
part: "message__time"
|
|
74
|
-
}, o)), e("div", {
|
|
75
|
-
part: "message__header-end"
|
|
76
|
-
}, e("p", {
|
|
77
|
-
part: "message__header-copy"
|
|
78
|
-
}, "Copied"), copyButton(t, "Copy code", "common-message")));
|
|
79
|
-
|
|
80
|
-
const mercuryChatMessageRender = (s, n, c = "AI Assistant") => p => {
|
|
81
|
-
const i = renderMessageHeader(n, c, p.content, p.metadata);
|
|
82
|
-
if (p.role === "assistant") {
|
|
83
|
-
return p.status === "waiting" ? [ i, e("div", {
|
|
84
|
-
part: "message__processing-container"
|
|
85
|
-
}, e("span", {
|
|
86
|
-
part: "message__processing"
|
|
87
|
-
}, p.content), a) ] : [ i, e("div", {
|
|
88
|
-
part: `message__content assistant ${p.parts}`
|
|
89
|
-
}, e("ch-markdown-viewer", {
|
|
90
|
-
theme: s,
|
|
91
|
-
showIndicator: false,
|
|
92
|
-
renderCode: mercuryCodeRender("Copy response"),
|
|
93
|
-
value: p.content,
|
|
94
|
-
exportparts: `${r},${t},${o}`
|
|
95
|
-
})) ];
|
|
96
|
-
} else if (p.role === "user") {
|
|
97
|
-
return [ e("span", {
|
|
98
|
-
part: `message__content ${p.role}`
|
|
99
|
-
}, p.content) ];
|
|
100
|
-
} else {
|
|
101
|
-
// error (this is nor from assistant but design dictates to show header)
|
|
102
|
-
return [ i, e("span", {
|
|
103
|
-
part: `message__content ${p.role}`
|
|
104
|
-
}, p.content) ];
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
export { mercuryCodeRender as a, mercuryChatMessageRender as m };
|
|
109
|
-
//# sourceMappingURL=p-60221a44.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["animationDots","ANIMATION_DOTS","CODE_RENDER_COPY_PART","CODE_RENDER_COPIED_PART","CODE_BLOCK_HEADER_PART","copy","text","isForCodeRender","event","setTimeoutTime","stopPropagation","navigator","clipboard","writeText","copyButtonRef","target","copyTextElement","previousElementSibling","copyTextElementOriginalParts","getAttribute","copyTextElementWithCopiedPart","setAttribute","setTimeout","cmSmartGridCellRef","closest","cmSmartGridCellRefOriginalParts","cmSmartGridCellRefWithCopiedPart","copyButton","textToCopy","accessibleName","additionalPart","h","title","class","type","onClick","part","mercuryCodeRender","copyButtonAccessibleName","options","plainText","language","lastNestedChildClass","value","renderMessageHeader","avatarImagePath","displayName","messageContent","metadata","style","backgroundImage","dateTime","mercuryChatMessageRender","theme","assistantAvatarPath","assistantName","messageModel","messageHeader","content","role","status","parts","showIndicator","renderCode","exportparts"],"sources":["src/components/chat/code-render.tsx"],"sourcesContent":["import { h, JSX } from \"@stencil/core\";\nimport {\n MarkdownViewerCodeRender,\n ChatMessageByRole\n} from \"@genexus/chameleon-controls-library\";\nimport { MarkdownViewerCodeRenderOptions } from \"@genexus/chameleon-controls-library/dist/types/components/markdown-viewer/parsers/types\";\n\nimport { ANIMATION_DOTS } from \"../../common/common\";\nconst animationDots = ANIMATION_DOTS(\"regular\", \"nexa\");\nconst CODE_RENDER_COPY_PART = \"code-block-header__copy\";\nconst CODE_RENDER_COPIED_PART = `${CODE_RENDER_COPY_PART}-copied`;\nconst CODE_BLOCK_HEADER_PART = \"code-block-header\";\n\nconst copy =\n (text: string, isForCodeRender: boolean = false) =>\n (event: Event) => {\n const setTimeoutTime = 1750;\n event.stopPropagation();\n\n // 1. Copy message\n navigator.clipboard.writeText(text);\n\n const copyButtonRef = event.target as HTMLElement;\n\n if (isForCodeRender) {\n const copyTextElement = copyButtonRef.previousElementSibling;\n\n const copyTextElementOriginalParts =\n copyTextElement?.getAttribute(\"part\");\n const copyTextElementWithCopiedPart = `${copyTextElementOriginalParts} ${CODE_RENDER_COPIED_PART}`;\n copyTextElement.setAttribute(\"part\", copyTextElementWithCopiedPart);\n\n setTimeout(() => {\n copyTextElement.setAttribute(\"part\", `${copyTextElementOriginalParts}`);\n }, setTimeoutTime);\n } else {\n const cmSmartGridCellRef = copyButtonRef.closest(\"ch-smart-grid-cell\");\n\n const cmSmartGridCellRefOriginalParts =\n cmSmartGridCellRef?.getAttribute(\"part\");\n const cmSmartGridCellRefWithCopiedPart = `${cmSmartGridCellRefOriginalParts} copied`;\n cmSmartGridCellRef.setAttribute(\"part\", cmSmartGridCellRefWithCopiedPart);\n\n setTimeout(() => {\n cmSmartGridCellRef.setAttribute(\n \"part\",\n `${cmSmartGridCellRefOriginalParts}`\n );\n }, setTimeoutTime);\n }\n };\n\nconst copyButton = (\n textToCopy: string,\n accessibleName: string,\n additionalPart: string,\n isForCodeRender: boolean = false\n) => {\n return (\n <button\n aria-label={accessibleName}\n title={accessibleName}\n class=\"button-copy-code\"\n type=\"button\"\n onClick={copy(textToCopy, isForCodeRender)}\n part={`message__copy-button ${additionalPart}`}\n ></button>\n );\n};\n\nexport const mercuryCodeRender =\n (copyButtonAccessibleName: string) =>\n (options: MarkdownViewerCodeRenderOptions): MarkdownViewerCodeRender =>\n (\n <div class=\"code-block-container\">\n <div class={CODE_BLOCK_HEADER_PART} part={CODE_BLOCK_HEADER_PART}>\n <p part=\"code-block-header__copy\">Copied</p>\n {copyButton(\n options.plainText,\n copyButtonAccessibleName,\n \"code-render\",\n true\n )}\n </div>\n <ch-code\n language={options.language}\n lastNestedChildClass={options.lastNestedChildClass}\n value={options.plainText}\n ></ch-code>\n </div>\n );\n\nconst renderMessageHeader = (\n avatarImagePath: string,\n displayName: string,\n messageContent: string,\n metadata: string\n): JSX.Element => {\n return (\n <div part=\"message__header\">\n <div part=\"message__header-start\">\n <span\n part=\"message__avatar\"\n style={{ backgroundImage: `url(${avatarImagePath})` }}\n ></span>\n <span part={`message__role assistant`}>{displayName}</span>\n <time dateTime={metadata} part=\"message__time\">\n {metadata}\n </time>\n </div>\n <div part=\"message__header-end\">\n <p part=\"message__header-copy\">Copied</p>\n {copyButton(messageContent, \"Copy code\", \"common-message\")}\n </div>\n </div>\n );\n};\n\nexport const mercuryChatMessageRender =\n (\n theme: string,\n assistantAvatarPath: string,\n assistantName: string = \"AI Assistant\"\n ) =>\n (messageModel: ChatMessageByRole<\"assistant\" | \"error\" | \"user\">) => {\n const messageHeader = renderMessageHeader(\n assistantAvatarPath,\n assistantName,\n messageModel.content as string,\n messageModel.metadata\n );\n if (messageModel.role === \"assistant\") {\n return messageModel.status === \"waiting\"\n ? [\n messageHeader,\n <div part=\"message__processing-container\">\n <span part=\"message__processing\">{messageModel.content}</span>\n {animationDots}\n </div>\n ]\n : [\n messageHeader,\n <div part={`message__content assistant ${messageModel.parts}`}>\n <ch-markdown-viewer\n theme={theme}\n showIndicator={false}\n renderCode={mercuryCodeRender(\"Copy response\")}\n value={messageModel.content as string}\n exportparts={`${CODE_BLOCK_HEADER_PART},${CODE_RENDER_COPY_PART},${CODE_RENDER_COPIED_PART}`}\n ></ch-markdown-viewer>\n </div>\n ];\n } else if (messageModel.role === \"user\") {\n return [\n <span part={`message__content ${messageModel.role}`}>\n {messageModel.content}\n </span>\n ];\n } else {\n // error (this is nor from assistant but design dictates to show header)\n return [\n messageHeader,\n <span part={`message__content ${messageModel.role}`}>\n {messageModel.content}\n </span>\n ];\n }\n };\n"],"mappings":";;;;AAQA,MAAMA,IAAgBC,EAAe,WAAW;;AAChD,MAAMC,IAAwB;;AAC9B,MAAMC,IAA0B,GAAGD;;AACnC,MAAME,IAAyB;;AAE/B,MAAMC,OACJ,CAACC,GAAcC,IAA2B,UACzCC;EACC,MAAMC,IAAiB;EACvBD,EAAME;;IAGNC,UAAUC,UAAUC,UAAUP;EAE9B,MAAMQ,IAAgBN,EAAMO;EAE5B,IAAIR,GAAiB;IACnB,MAAMS,IAAkBF,EAAcG;IAEtC,MAAMC,IACJF,MAAe,QAAfA,WAAe,aAAfA,EAAiBG,aAAa;IAChC,MAAMC,IAAgC,GAAGF,KAAgCf;IACzEa,EAAgBK,aAAa,QAAQD;IAErCE,YAAW;MACTN,EAAgBK,aAAa,QAAQ,GAAGH;AAA+B,QACtET;SACE;IACL,MAAMc,IAAqBT,EAAcU,QAAQ;IAEjD,MAAMC,IACJF,MAAkB,QAAlBA,WAAkB,aAAlBA,EAAoBJ,aAAa;IACnC,MAAMO,IAAmC,GAAGD;IAC5CF,EAAmBF,aAAa,QAAQK;IAExCJ,YAAW;MACTC,EAAmBF,aACjB,QACA,GAAGI;AACJ,QACAhB;;;;AAIT,MAAMkB,aAAa,CACjBC,GACAC,GACAC,GACAvB,IAA2B,UAGzBwB,EAAA;EAAA,cACcF;EACZG,OAAOH;EACPI,OAAM;EACNC,MAAK;EACLC,SAAS9B,KAAKuB,GAAYrB;EAC1B6B,MAAM,wBAAwBN;;;MAKvBO,oBACVC,KACAC,KAEGR,EAAA;EAAKE,OAAM;GACTF,EAAA;EAAKE,OAAO7B;EAAwBgC,MAAMhC;GACxC2B,EAAA;EAAGK,MAAK;GAAyB,WAChCT,WACCY,EAAQC,WACRF,GACA,eACA,QAGJP,EAAA;EACEU,UAAUF,EAAQE;EAClBC,sBAAsBH,EAAQG;EAC9BC,OAAOJ,EAAQC;;;AAKzB,MAAMI,sBAAsB,CAC1BC,GACAC,GACAC,GACAC,MAGEjB,EAAA;EAAKK,MAAK;GACRL,EAAA;EAAKK,MAAK;GACRL,EAAA;EACEK,MAAK;EACLa,OAAO;IAAEC,iBAAiB,OAAOL;;IAEnCd,EAAA;EAAMK,MAAM;GAA4BU,IACxCf,EAAA;EAAMoB,UAAUH;EAAUZ,MAAK;GAC5BY,KAGLjB,EAAA;EAAKK,MAAK;GACRL,EAAA;EAAGK,MAAK;GAAsB,WAC7BT,WAAWoB,GAAgB,aAAa;;MAMpCK,2BACX,CACEC,GACAC,GACAC,IAAwB,mBAEzBC;EACC,MAAMC,IAAgBb,oBACpBU,GACAC,GACAC,EAAaE,SACbF,EAAaR;EAEf,IAAIQ,EAAaG,SAAS,aAAa;IACrC,OAAOH,EAAaI,WAAW,YAC3B,EACEH,GACA1B,EAAA;MAAKK,MAAK;OACRL,EAAA;MAAMK,MAAK;OAAuBoB,EAAaE,UAC9C1D,OAGL,EACEyD,GACA1B,EAAA;MAAKK,MAAM,8BAA8BoB,EAAaK;OACpD9B,EAAA;MACEsB,OAAOA;MACPS,eAAe;MACfC,YAAY1B,kBAAkB;MAC9BM,OAAOa,EAAaE;MACpBM,aAAa,GAAG5D,KAA0BF,KAAyBC;;SAIxE,IAAIqD,EAAaG,SAAS,QAAQ;IACvC,OAAO,EACL5B,EAAA;MAAMK,MAAM,oBAAoBoB,EAAaG;OAC1CH,EAAaE;SAGb;;IAEL,OAAO,EACLD,GACA1B,EAAA;MAAMK,MAAM,oBAAoBoB,EAAaG;OAC1CH,EAAaE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["jsonImportCss","CSS_BUNDLES","FILE_ICON","getIconPath","category","name","colorType","MENU_DELETE","GxIdeJsonImport","_GxIdeJsonImport_componentLocale","set","this","_GxIdeJsonImport_data","description","assumeVarcharForNull","parentId","json","_GxIdeJsonImport_radioOptionsModel","_GxIdeJsonImport_shortcutsSrc","getAssetPath","_GxIdeJsonImport_checkBoxEl","_GxIdeJsonImport_chShortcutsEl","_GxIdeJsonImport_descriptionEl","_GxIdeJsonImport_fileInputHiddenEl","_GxIdeJsonImport_moduleEntitySelector","_GxIdeJsonImport_nameEl","_GxIdeJsonImport_radioGroup","_GxIdeJsonImport_initializeValidatableControls","validatableControls","__classPrivateFieldGet","forEach","validatableControl","id","reference","hasError","message","undefined","_GxIdeJsonImport_evaluateTooltipRender","controlReference","_b","_a","get","_c","h","class","actionElement","blockAlign","config","tooltipSettings","inlineAlign","delay","_GxIdeJsonImport_validateForm","value","trim","radioGroupValue","fileName","jsonContent","isNameValid","validateNameCallback","Boolean","isJsonValid","validateJSONCallback","isFormValid","_GxIdeJsonImport_nameChangedHandler","call","_GxIdeJsonImport_changeRadioHandler","_GxIdeJsonImport_removeFileSelection","modeChangeCallback","_GxIdeJsonImport_createHandler","confirmCallback","then","formSubmitResult","validateControls","fileChangeCallback","_GxIdeJsonImport_selectFileInputChangedHandler","event","target","files","length","_GxIdeJsonImport_selectFileInputHandler","click","_GxIdeJsonImport_handleEditorChange","_GxIdeJsonImport_handleSlotChange","e","elements","assignedElements","element","addEventListener","detail","content","Map","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","caption","header","filePathLabel","main","jsonAreaLabel","componentDidLoad","suspendShortcuts","suspend","render","Host","model","src","ref","htmlFor","nameFieldLabel","onInput","descriptionFieldLabel","moduleFolderLabel","defaultParent","labelPosition","defaultValue","selectEntityCallback","selectModuleCallback","onChange","defaultRadioValue","autoFocus","part","type","readonly","placeholder","fileNamePlaceholder","startImgSrc","disabled","hidden","accept","removeFileSelection","title","onClick","selectfileButton","onSlotchange","checkBoxLabel","checkedValue","cancelCallback","footer","btnCancel","btnOk"],"sources":["src/components/json-import/json-import.scss?tag=gx-ide-json-import&encapsulation=shadow","src/components/json-import/json-import.tsx"],"sourcesContent":[":host {\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n block-size: 100%;\n overflow: auto;\n}\n\n.section {\n // just for semantics (allows header and footer element)\n display: contents;\n}\n\n.header {\n}\n\n.main {\n display: grid;\n grid-template-rows: 1fr max-content;\n overflow: auto;\n}\n.field-group-name-description-module {\n grid-template-areas:\n \"name-label name-input\"\n \"description-label description-input\"\n \"module-label module-entity-selector\";\n grid-template-columns: max-content 1fr;\n}\n\n.name-label {\n grid-area: name-label;\n}\n.name-input {\n grid-area: name-input;\n}\n.description-label {\n grid-area: description-label;\n}\n.description-input {\n grid-area: description-input;\n}\n.module-label {\n grid-area: module-label;\n}\n.module-entity-selector {\n grid-area: module-entity-selector;\n}\n.radio-file-input-wrapper {\n grid-template-columns: max-content 1fr;\n}\ndiv.field-file-input {\n grid-template-columns: 1fr max-content;\n}\n\n.json-area {\n display: grid;\n grid-template-rows: 1fr max-content;\n overflow: auto;\n}\n.slotted-container {\n overflow: auto;\n block-size: 100%;\n}\n\n.input-file {\n display: grid;\n grid-template-columns: 1fr max-content;\n}\n\n.radio-group {\n gap: 30px !important;\n}\n.tooltip {\n height: 0px;\n}\n","import {\n Component,\n Host,\n Prop,\n Element,\n State,\n getAssetPath,\n Method,\n h\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { config } from \"../../common/config\";\n\nimport { Locale } from \"../../common/locale\";\nimport { FormSubmitResult } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../common/form-validation\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tab\",\n \"components/tooltip\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst FILE_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"file\",\n colorType: \"primary\"\n});\n\nconst MENU_DELETE = getIconPath({\n category: \"menus\",\n name: \"delete\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-json-import\",\n styleUrl: \"json-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/json-import\"]\n})\nexport class GxIdeJsonImport {\n #componentLocale: any;\n #data: JsonImportData = {\n name: \"\",\n description: \"\",\n assumeVarcharForNull: false,\n parentId: \"\",\n json: \"\"\n };\n #radioOptionsModel: RadioGroupItemModel[] = [];\n #shortcutsSrc = getAssetPath(`./gx-ide-assets/json-import/shortcuts.json`);\n\n @Element() el: HTMLGxIdeJsonImportElement;\n #checkBoxEl!: HTMLChCheckboxElement;\n #chShortcutsEl: HTMLChShortcutsElement;\n #descriptionEl!: HTMLChEditElement;\n #fileInputHiddenEl!: HTMLInputElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #nameEl!: HTMLChEditElement;\n #radioGroup!: HTMLChRadioGroupRenderElement;\n\n @State() fileName: string;\n @State() radioGroupValue: string = \"file\";\n @State() isFormValid: boolean = false;\n @State() jsonContent: string = \"\";\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * Callback that must be invoked when the user want to cancel the operation\n */\n @Prop() readonly cancelCallback: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the user confirms the creation of the SDT. It receives as parameters the data necessary to create the SDT.\n */\n @Prop() readonly confirmCallback!: (\n data: JsonImportData\n ) => Promise<FormSubmitResult>;\n\n /**\n * Default value for Module/Folder field\n */\n @Prop() readonly defaultParent: EntityData;\n\n /**\n * Default value for Module/Folder field\n */\n @Prop() readonly defaultRadioValue: string;\n\n /**\n * Actual value for Module/Folder field\n */\n @Prop() readonly parent: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. 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 * Callback invoked when the input mode changes between file and text.\n */\n @Prop() readonly modeChangeCallback?: (\n mode: \"file\" | \"text\"\n ) => Promise<void>;\n\n /**\n * Callback invoked when a file is selected or removed.\n */\n @Prop() readonly fileChangeCallback?: (file: File | null) => Promise<void>;\n\n /**\n * Callback para validar el nombre del objeto. Debe retornar true si el nombre es válido, false en caso contrario.\n */\n @Prop() readonly validateNameCallback?: (name: string) => boolean;\n\n /**\n * Callback para validar el JSON. Debe retornar true si el JSON es válido, false en caso contrario.\n */\n @Prop() readonly validateJSONCallback?: (json: string) => boolean;\n\n /**\n * Callback invocado cuando el contenido del JSON cambia\n */\n @Prop() readonly onJsonContentChange?: (content: string) => void;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#radioOptionsModel = [\n {\n value: \"file\",\n caption: this.#componentLocale.header.filePathLabel\n },\n { value: \"text\", caption: this.#componentLocale.main.jsonAreaLabel }\n ];\n }\n\n componentDidLoad() {\n this.#initializeValidatableControls();\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n this.#chShortcutsEl.suspend = suspendShortcuts;\n }\n\n #initializeValidatableControls = () => {\n const validatableControls: HTMLElement[] = [\n this.#nameEl,\n this.#moduleEntitySelector\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #validateForm = () => {\n const name = this.#nameEl?.value?.trim() || \"\";\n const json =\n this.radioGroupValue === \"file\" ? this.fileName : this.jsonContent;\n\n const isNameValid = this.validateNameCallback\n ? this.validateNameCallback(name)\n : Boolean(name);\n\n const isJsonValid =\n this.radioGroupValue === \"file\"\n ? Boolean(this.fileName)\n : this.validateJSONCallback\n ? this.validateJSONCallback(json)\n : false;\n\n this.isFormValid = isNameValid && isJsonValid;\n };\n\n #nameChangedHandler = () => {\n this.#validateForm();\n };\n\n #changeRadioHandler = () => {\n this.radioGroupValue = this.#radioGroup.value;\n if (this.radioGroupValue === \"file\") {\n this.#checkBoxEl.value = \"false\";\n } else {\n this.#data.json = null;\n this.#removeFileSelection();\n this.#validateForm();\n }\n this.modeChangeCallback?.(this.radioGroupValue as \"file\" | \"text\");\n };\n\n #createHandler = () => {\n this.#data.name = this.#nameEl.value;\n this.#data.description = this.#descriptionEl.value;\n this.#data.parentId = this.#moduleEntitySelector.value?.id;\n this.#data.assumeVarcharForNull = this.#checkBoxEl.value === \"true\";\n this.confirmCallback(this.#data).then(\n (formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n );\n };\n\n #removeFileSelection = () => {\n this.#data.json = null;\n this.#fileInputHiddenEl.value = null;\n this.fileName = null;\n this.fileChangeCallback?.(null);\n this.#validateForm();\n };\n\n #selectFileInputChangedHandler = (event: InputEvent) => {\n const target = event.target as HTMLInputElement;\n if (target.files?.length > 0 && this.radioGroupValue === \"file\") {\n this.#data.json = target.files[0];\n this.fileName = target.files[0].name;\n this.fileChangeCallback?.(target.files[0]);\n this.#validateForm();\n }\n };\n\n #selectFileInputHandler = () => {\n this.#fileInputHiddenEl.click();\n };\n\n #handleEditorChange = () => {\n this.#validateForm();\n };\n\n #handleSlotChange = (e: Event) => {\n const elements = (e.target as HTMLSlotElement).assignedElements();\n if (elements.length > 0) {\n const element = elements[0];\n element.addEventListener(\"json-content-change\", ((event: CustomEvent) => {\n if (this.radioGroupValue === \"text\") {\n this.jsonContent = event.detail.content;\n this.#handleEditorChange();\n }\n }) as EventListener);\n }\n };\n\n render(): void {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#chShortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n <section class=\"section\">\n <header class=\"header field-group spacing-body control-header-with-border\">\n <div class=\"field-group field-group-name-description-module\">\n <label\n // name\n class=\"label name-label\"\n htmlFor=\"input-name\"\n >\n {this.#componentLocale.header.nameFieldLabel}\n </label>\n <ch-edit\n class=\"input name-input\"\n id=\"input-name\"\n ref={(el: HTMLChEditElement) =>\n (this.#nameEl = el as HTMLChEditElement)\n }\n onInput={this.#nameChangedHandler}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#nameEl)}\n\n <label\n // description\n class=\"label description-label\"\n htmlFor=\"input-description\"\n >\n {this.#componentLocale.header.descriptionFieldLabel}\n </label>\n <ch-edit\n class=\"input description-input\"\n id=\"input-description\"\n ref={(el: HTMLChEditElement) =>\n (this.#descriptionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n\n <label\n // module/folder\n class=\"label module-label\"\n htmlFor=\"input-module\"\n >\n {this.#componentLocale.header.moduleFolderLabel}\n </label>\n <gx-ide-entity-selector\n class=\"module module-entity-selector\"\n id=\"module\"\n value={this.defaultParent}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector =\n el as HTMLGxIdeEntitySelectorElement)\n }\n labelPosition=\"none\"\n defaultValue={this.defaultParent}\n selectEntityCallback={this.selectModuleCallback}\n ></gx-ide-entity-selector>\n {this.#evaluateTooltipRender(this.#moduleEntitySelector)}\n </div>\n\n <div class=\"radio-file-input-wrapper field-group\">\n <ch-radio-group-render\n // file url/text\n class=\"radio-group\"\n model={this.#radioOptionsModel}\n onChange={this.#changeRadioHandler}\n value={this.defaultRadioValue}\n ref={(el: HTMLChRadioGroupRenderElement) =>\n (this.#radioGroup = el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n <div class=\"field field-inline field-file-input\">\n <ch-edit\n autoFocus\n id=\"file-name\"\n class=\"input\"\n part=\"file-name\"\n type=\"text\"\n value={this.fileName}\n readonly\n placeholder={this.#componentLocale.header.fileNamePlaceholder}\n startImgSrc={FILE_ICON}\n disabled={this.radioGroupValue !== \"file\"}\n ></ch-edit>\n <input\n hidden\n type=\"file\"\n accept=\".json\"\n onChange={this.#selectFileInputChangedHandler}\n ref={(el: HTMLInputElement) =>\n (this.#fileInputHiddenEl = el as HTMLInputElement)\n }\n />\n <div class=\"buttons-spacer\">\n <button\n aria-label={\n this.#componentLocale.header.removeFileSelection\n }\n title={this.#componentLocale.header.removeFileSelection}\n id=\"reset-all-button\"\n class=\"button-tertiary button-icon-only\"\n part=\"reset-all-button\"\n onClick={this.#removeFileSelection}\n disabled={this.radioGroupValue !== \"file\"}\n >\n <ch-image class=\"icon-md\" src={MENU_DELETE}></ch-image>\n </button>\n\n <button\n id=\"select-file-load-button\"\n class=\"button-primary\"\n part=\"select-file-load-button\"\n onClick={this.#selectFileInputHandler}\n disabled={this.radioGroupValue !== \"file\"}\n >\n {this.#componentLocale.header.selectfileButton}\n </button>\n </div>\n </div>\n </div>\n </header>\n <div class=\"main field-group\">\n <div class=\"json-area\">\n <div class=\"slotted-container scrollable\">\n <slot\n name=\"JsonTextEditor\"\n onSlotchange={this.#handleSlotChange}\n ></slot>\n </div>\n </div>\n <ch-checkbox\n class=\"checkbox spacing-body-block-end spacing-body-inline-start\"\n caption={this.#componentLocale.main.checkBoxLabel}\n checkedValue=\"true\"\n ref={(el: HTMLChCheckboxElement) =>\n (this.#checkBoxEl = el as HTMLChCheckboxElement)\n }\n ></ch-checkbox>\n </div>\n\n <footer class=\"control-footer control-footer-with-border spacing-body-block-end spacing-body-inline\">\n <div class=\"buttons-spacer\">\n <button\n class=\"button-secondary\"\n id=\"button-cancel\"\n onClick={this.cancelCallback}\n part=\"button-cancel\"\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n <button\n class=\"button-primary\"\n id=\"button-ok\"\n onClick={this.#createHandler}\n part=\"button-ok\"\n disabled={!this.isFormValid}\n >\n {this.#componentLocale.footer.btnOk}\n </button>\n </div>\n </footer>\n </section>\n </Host>\n );\n }\n}\n\nexport type JsonImportData = {\n name: string;\n description: string;\n parentId: string;\n json: File | string;\n assumeVarcharForNull: boolean;\n};\n\nexport type EntityData = {\n id: string;\n name: string;\n iconSrc?: string;\n};\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n"],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { MarkdownViewerCodeRender, ChatMessageByRole } from "@genexus/chameleon-controls-library";
|
|
2
|
-
import { MarkdownViewerCodeRenderOptions } from "@genexus/chameleon-controls-library/dist/types/components/markdown-viewer/parsers/types";
|
|
3
|
-
export declare const mercuryCodeRender: (copyButtonAccessibleName: string) => (options: MarkdownViewerCodeRenderOptions) => MarkdownViewerCodeRender;
|
|
4
|
-
export declare const mercuryChatMessageRender: (theme: string, assistantAvatarPath: string, assistantName?: string) => (messageModel: ChatMessageByRole<"assistant" | "error" | "user">) => any[];
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|