@genexus/genexus-ide-ui 1.0.56 → 1.0.58
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/{code-render-43aa3faf.js → code-render-d66a13e2.js} +12 -5
- package/dist/cjs/code-render-d66a13e2.js.map +1 -0
- package/dist/cjs/{common-f571dfc1.js → common-f7361979.js} +2 -2
- package/dist/cjs/{common-f571dfc1.js.map → common-f7361979.js.map} +1 -1
- package/dist/cjs/genexus-ide-ui.cjs.js +2 -2
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-chat-container.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-chat-container.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-container_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +5 -1
- 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 +2 -2
- 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-design-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +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 +1 -1
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-references.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +5 -16
- 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 +13 -6
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-sign-in.cjs.entry.js +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-status-buttons.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-switch-panel.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-switcher.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-template.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-top-bar.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +3 -3
- package/dist/cjs/{helpers-03ef57a7.js → helpers-30f109a4.js} +2 -2
- package/dist/cjs/{helpers-03ef57a7.js.map → helpers-30f109a4.js.map} +1 -1
- package/dist/cjs/{index-caaa95cf.js → index-e227aefb.js} +34 -4
- package/dist/cjs/index-e227aefb.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{render-combo-items-878e8852.js → render-combo-items-e774f796.js} +2 -2
- package/dist/cjs/{render-combo-items-878e8852.js.map → render-combo-items-e774f796.js.map} +1 -1
- package/dist/cjs/{render-list-item-c71032e3.js → render-list-item-7c6449c4.js} +2 -2
- package/dist/cjs/{render-list-item-c71032e3.js.map → render-list-item-7c6449c4.js.map} +1 -1
- package/dist/cjs/{render-suggest-4c515c9d.js → render-suggest-4a569cbe.js} +2 -2
- package/dist/cjs/{render-suggest-4c515c9d.js.map → render-suggest-4a569cbe.js.map} +1 -1
- package/dist/collection/components/_helpers/chat-container/chat-container.css +34 -3
- package/dist/collection/components/_helpers/chat-container/chat-container.js +1 -1
- package/dist/collection/components/_helpers/chat-container/chat-container.js.map +1 -1
- package/dist/collection/components/_helpers/chat-container/code-render.js +4 -3
- package/dist/collection/components/_helpers/chat-container/code-render.js.map +1 -1
- package/dist/collection/components/select-kb-items/select-kb-items.css +8 -0
- package/dist/collection/components/select-kb-items/select-kb-items.js +12 -4
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +4 -0
- package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/showcase/chat-container/callbacks.js +2 -13
- package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
- package/dist/collection/showcase/chat-container/chat.showcase.js +1 -1
- package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
- package/dist/components/chat-container.js +2 -2
- package/dist/components/chat-container.js.map +1 -1
- package/dist/components/code-render.js +10 -3
- package/dist/components/code-render.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js +4 -0
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-sc-chat-container.js +3 -14
- package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
- package/dist/components/gx-ide-select-kb-items.js +20 -6
- package/dist/components/gx-ide-select-kb-items.js.map +1 -1
- package/dist/components/index.js +0 -1
- package/dist/components/index.js.map +1 -1
- package/dist/esm/{code-render-9ccc8dac.js → code-render-67c13139.js} +12 -5
- package/dist/esm/code-render-67c13139.js.map +1 -0
- package/dist/esm/{common-c15a0328.js → common-2a1e4e67.js} +2 -2
- package/dist/esm/{common-c15a0328.js.map → common-2a1e4e67.js.map} +1 -1
- package/dist/esm/genexus-ide-ui.js +3 -3
- package/dist/esm/gx-ide-ai-assistant.entry.js +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +3 -3
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
- package/dist/esm/gx-ide-card.entry.js +1 -1
- package/dist/esm/gx-ide-chat-container.entry.js +3 -3
- package/dist/esm/gx-ide-chat-container.entry.js.map +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
- package/dist/esm/gx-ide-container_2.entry.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +5 -1
- 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 +2 -2
- 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-design-import.entry.js +1 -1
- package/dist/esm/gx-ide-directory-selector.entry.js +1 -1
- package/dist/esm/gx-ide-edit-module-server.entry.js +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
- package/dist/esm/gx-ide-loader.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +2 -2
- package/dist/esm/gx-ide-manage-module-references.entry.js +2 -2
- package/dist/esm/gx-ide-navigation-report.entry.js +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +3 -3
- package/dist/esm/gx-ide-new-kb.entry.js +3 -3
- package/dist/esm/gx-ide-new-object.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +2 -2
- package/dist/esm/gx-ide-references.entry.js +2 -2
- package/dist/esm/gx-ide-sc-chat-container.entry.js +5 -16
- package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +13 -6
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-user-team.entry.js +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/gx-ide-sign-in-team.entry.js +1 -1
- package/dist/esm/gx-ide-sign-in.entry.js +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-status-buttons.entry.js +1 -1
- package/dist/esm/gx-ide-switch-panel.entry.js +1 -1
- package/dist/esm/gx-ide-switcher.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +3 -3
- package/dist/esm/gx-ide-template.entry.js +1 -1
- package/dist/esm/gx-ide-test.entry.js +1 -1
- package/dist/esm/gx-ide-top-bar.entry.js +1 -1
- package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +3 -3
- package/dist/esm/{helpers-39459872.js → helpers-ec4585e5.js} +2 -2
- package/dist/esm/{helpers-39459872.js.map → helpers-ec4585e5.js.map} +1 -1
- package/dist/esm/{index-93411ea2.js → index-6a0d98df.js} +34 -4
- package/dist/esm/index-6a0d98df.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{render-combo-items-7a49ed63.js → render-combo-items-70aa3ecf.js} +2 -2
- package/dist/esm/{render-combo-items-7a49ed63.js.map → render-combo-items-70aa3ecf.js.map} +1 -1
- package/dist/esm/{render-list-item-2bd9cf13.js → render-list-item-2ad96b71.js} +2 -2
- package/dist/esm/{render-list-item-2bd9cf13.js.map → render-list-item-2ad96b71.js.map} +1 -1
- package/dist/esm/{render-suggest-6b99b199.js → render-suggest-dac35d72.js} +2 -2
- package/dist/esm/{render-suggest-6b99b199.js.map → render-suggest-dac35d72.js.map} +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +3 -3
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/index.esm.js +2 -2
- package/dist/genexus-ide-ui/{p-22d8de70.entry.js → p-03265b1b.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-86b0cf22.entry.js → p-09d55db9.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ec2cb326.entry.js → p-1105c966.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-1e44952c.entry.js → p-1364f700.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-ae468251.entry.js → p-1a53cc60.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-37a2e9ac.entry.js → p-1c36217e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-fdd9de33.entry.js → p-1cfcec9e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-64e05f19.entry.js → p-22908448.entry.js} +8 -8
- package/dist/genexus-ide-ui/{p-cce8a91a.entry.js → p-24af7f98.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-e2a87cd7.entry.js → p-26aff07c.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-49712340.js → p-2cf37639.js} +161 -132
- package/dist/genexus-ide-ui/p-2cf37639.js.map +1 -0
- package/dist/genexus-ide-ui/{p-296d8ba7.js → p-2de01408.js} +2 -2
- package/dist/genexus-ide-ui/{p-90c8cb0d.entry.js → p-3468662b.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-5a565d8f.entry.js → p-34b5a494.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-56ab7460.entry.js → p-395e9c81.entry.js} +51 -41
- package/dist/genexus-ide-ui/p-395e9c81.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-e4fe373f.entry.js → p-3e15089e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7a3baebc.entry.js → p-49f9f6bf.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-324af897.entry.js → p-4cd56d14.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-d9c27591.entry.js → p-502f2b47.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-848b26be.entry.js → p-52af77c2.entry.js} +5 -5
- package/dist/genexus-ide-ui/{p-d26f3f46.js → p-5545d58d.js} +2 -2
- package/dist/genexus-ide-ui/{p-4f6d120f.entry.js → p-57354473.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3611f8b7.entry.js → p-57986b2e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-67b7c308.entry.js → p-5a734013.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-960c4988.js → p-5b1576cc.js} +2 -2
- package/dist/genexus-ide-ui/{p-cff284a9.entry.js → p-5dc54e85.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-e9f2dd3f.entry.js → p-6374dabb.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-20cca16c.entry.js → p-6637e817.entry.js} +6 -6
- package/dist/genexus-ide-ui/{p-6d8b4f96.entry.js → p-6e667dde.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-4fc17d27.entry.js → p-70024ecb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-9dbe2323.entry.js → p-71f3b66e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c49885c3.entry.js → p-822090ba.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-2e043c76.entry.js → p-8900c81a.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-9c83ec17.entry.js → p-8ff555f4.entry.js} +12 -8
- package/dist/genexus-ide-ui/{p-9c83ec17.entry.js.map → p-8ff555f4.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-ae3102f4.entry.js → p-97114eef.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-2320aa7a.entry.js → p-9a604798.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-fdb45861.entry.js → p-9e27c0cc.entry.js} +9 -9
- package/dist/genexus-ide-ui/p-9e27c0cc.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-07fedb96.entry.js → p-9ffe118a.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-57542159.entry.js → p-a6dd3f03.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-307e47a1.entry.js → p-aa821b66.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-562db47d.entry.js → p-acaed500.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-68b911a6.entry.js → p-afc73c6f.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-7153555f.entry.js → p-b238a545.entry.js} +11 -11
- package/dist/genexus-ide-ui/{p-a837de2e.entry.js → p-b2af0c95.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-2b1634e7.entry.js → p-b3e352c8.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-bb0eb196.entry.js +85 -0
- package/dist/genexus-ide-ui/p-bb0eb196.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-f0efd16f.entry.js → p-bb1394ca.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3f44de6a.entry.js → p-c21300fb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-b5fa3116.entry.js → p-c74d18fe.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-27a2429c.entry.js → p-d7169c07.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-291eb585.entry.js → p-d8c7e0b5.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-4f815835.entry.js → p-dcb1516d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-e3711567.entry.js → p-df4249e1.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-580899ab.entry.js → p-df8bf481.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-e4bd955a.entry.js → p-e07c97d5.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-f1cc5d30.entry.js → p-e3f234a8.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-a526d1f5.entry.js → p-eaab7765.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-5cb80ab8.entry.js → p-ebe6d71f.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-d1cb5507.js → p-f194af32.js} +11 -11
- package/dist/genexus-ide-ui/{p-5707060d.entry.js → p-f2f9e36e.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-14e9afa7.js → p-f3aa0e41.js} +2 -2
- package/dist/genexus-ide-ui/{p-e36d7f5c.entry.js → p-f654f86d.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-f963b96e.entry.js +17 -0
- package/dist/genexus-ide-ui/{p-de92ee84.entry.js → p-fbab024e.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-fc7b3ace.js +106 -0
- package/dist/genexus-ide-ui/p-fc7b3ace.js.map +1 -0
- package/dist/genexus-ide-ui/{p-9e78c60c.entry.js → p-fce76974.entry.js} +4 -4
- package/dist/types/components/_helpers/chat-container/code-render.d.ts +1 -1
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +4 -0
- package/package.json +1 -1
- package/dist/cjs/code-render-43aa3faf.js.map +0 -1
- package/dist/cjs/index-caaa95cf.js.map +0 -1
- package/dist/esm/code-render-9ccc8dac.js.map +0 -1
- package/dist/esm/index-93411ea2.js.map +0 -1
- package/dist/genexus-ide-ui/p-49712340.js.map +0 -1
- package/dist/genexus-ide-ui/p-4b665a04.js +0 -68
- package/dist/genexus-ide-ui/p-4b665a04.js.map +0 -1
- package/dist/genexus-ide-ui/p-56ab7460.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-caad0b7e.entry.js +0 -17
- package/dist/genexus-ide-ui/p-e0db2615.entry.js +0 -87
- package/dist/genexus-ide-ui/p-e0db2615.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-fdb45861.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-22d8de70.entry.js.map → p-03265b1b.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-86b0cf22.entry.js.map → p-09d55db9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ec2cb326.entry.js.map → p-1105c966.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-1e44952c.entry.js.map → p-1364f700.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ae468251.entry.js.map → p-1a53cc60.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-37a2e9ac.entry.js.map → p-1c36217e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-fdd9de33.entry.js.map → p-1cfcec9e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-64e05f19.entry.js.map → p-22908448.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-cce8a91a.entry.js.map → p-24af7f98.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e2a87cd7.entry.js.map → p-26aff07c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-296d8ba7.js.map → p-2de01408.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-90c8cb0d.entry.js.map → p-3468662b.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5a565d8f.entry.js.map → p-34b5a494.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e4fe373f.entry.js.map → p-3e15089e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7a3baebc.entry.js.map → p-49f9f6bf.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-324af897.entry.js.map → p-4cd56d14.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d9c27591.entry.js.map → p-502f2b47.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-848b26be.entry.js.map → p-52af77c2.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d26f3f46.js.map → p-5545d58d.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4f6d120f.entry.js.map → p-57354473.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3611f8b7.entry.js.map → p-57986b2e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-67b7c308.entry.js.map → p-5a734013.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-960c4988.js.map → p-5b1576cc.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-cff284a9.entry.js.map → p-5dc54e85.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e9f2dd3f.entry.js.map → p-6374dabb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-20cca16c.entry.js.map → p-6637e817.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6d8b4f96.entry.js.map → p-6e667dde.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4fc17d27.entry.js.map → p-70024ecb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-9dbe2323.entry.js.map → p-71f3b66e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c49885c3.entry.js.map → p-822090ba.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2e043c76.entry.js.map → p-8900c81a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ae3102f4.entry.js.map → p-97114eef.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2320aa7a.entry.js.map → p-9a604798.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-07fedb96.entry.js.map → p-9ffe118a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-57542159.entry.js.map → p-a6dd3f03.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-307e47a1.entry.js.map → p-aa821b66.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-562db47d.entry.js.map → p-acaed500.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-68b911a6.entry.js.map → p-afc73c6f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7153555f.entry.js.map → p-b238a545.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a837de2e.entry.js.map → p-b2af0c95.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2b1634e7.entry.js.map → p-b3e352c8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f0efd16f.entry.js.map → p-bb1394ca.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3f44de6a.entry.js.map → p-c21300fb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-b5fa3116.entry.js.map → p-c74d18fe.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-27a2429c.entry.js.map → p-d7169c07.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-291eb585.entry.js.map → p-d8c7e0b5.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4f815835.entry.js.map → p-dcb1516d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e3711567.entry.js.map → p-df4249e1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-580899ab.entry.js.map → p-df8bf481.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e4bd955a.entry.js.map → p-e07c97d5.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f1cc5d30.entry.js.map → p-e3f234a8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a526d1f5.entry.js.map → p-eaab7765.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5cb80ab8.entry.js.map → p-ebe6d71f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d1cb5507.js.map → p-f194af32.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5707060d.entry.js.map → p-f2f9e36e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-14e9afa7.js.map → p-f3aa0e41.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e36d7f5c.entry.js.map → p-f654f86d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-caad0b7e.entry.js.map → p-f963b96e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-de92ee84.entry.js.map → p-fbab024e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-9e78c60c.entry.js.map → p-fce76974.entry.js.map} +0 -0
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { h as e } from "./p-49712340.js";
|
|
2
|
-
|
|
3
|
-
import "./p-c9551186.js";
|
|
4
|
-
|
|
5
|
-
const s = "message__copied-feedback";
|
|
6
|
-
|
|
7
|
-
const a = "message__copied-feedback-visible";
|
|
8
|
-
|
|
9
|
-
const copy = e => t => {
|
|
10
|
-
t.stopPropagation();
|
|
11
|
-
// 1. Copy message
|
|
12
|
-
navigator.clipboard.writeText(e);
|
|
13
|
-
// 2. Display "copied" message (expects to be the next sibling!)
|
|
14
|
-
const o = t.target.nextSibling;
|
|
15
|
-
const c = o.getAttribute("part");
|
|
16
|
-
if (c === s) {
|
|
17
|
-
o.setAttribute("part", `${s} ${a}`);
|
|
18
|
-
setTimeout((() => {
|
|
19
|
-
o.setAttribute("part", `${s}`);
|
|
20
|
-
}), 1e3);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const copyButton = (s, a, t) => e("button", {
|
|
25
|
-
"aria-label": a,
|
|
26
|
-
title: a,
|
|
27
|
-
class: "button-copy-code",
|
|
28
|
-
type: "button",
|
|
29
|
-
onClick: copy(s),
|
|
30
|
-
part: `message__copy-button ${t}`
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
const mercuryCodeRender = s => a => e("div", {
|
|
34
|
-
class: "code-block-container"
|
|
35
|
-
}, e("div", {
|
|
36
|
-
class: "code-block-header"
|
|
37
|
-
}, copyButton(a.plainText, s, "code-render")), e("ch-code", {
|
|
38
|
-
language: a.language,
|
|
39
|
-
lastNestedChildClass: a.lastNestedChildClass,
|
|
40
|
-
value: a.plainText
|
|
41
|
-
}));
|
|
42
|
-
|
|
43
|
-
const mercuryChatMessageRender = (a, t = "You", o = "AI Assistant", c = "Processing request") => n => n.role === "assistant" && n.status === "waiting" ? [ e("span", {
|
|
44
|
-
part: "message__processing"
|
|
45
|
-
}, c), e("div", {
|
|
46
|
-
class: "processing-animation",
|
|
47
|
-
part: "processing-animation"
|
|
48
|
-
}) ] : [
|
|
49
|
-
// "copy button" before "role" and "time" to hide both on button:focus
|
|
50
|
-
copyButton(n.content, "Copy code", "common-message"), e("p", {
|
|
51
|
-
part: s
|
|
52
|
-
}, "message copied to clipboard"), e("span", {
|
|
53
|
-
part: `message__role ${n.role}`
|
|
54
|
-
}, n.role === "user" ? t : o), e("time", {
|
|
55
|
-
dateTime: n.metadata,
|
|
56
|
-
part: "message__time"
|
|
57
|
-
}, n.metadata), n.role === "user" ? e("span", {
|
|
58
|
-
part: "message__content user"
|
|
59
|
-
}, n.content) : e("ch-markdown-viewer", {
|
|
60
|
-
part: n.role === "assistant" && (n.status === "complete" || !n.status) && !n.parts ? `message__content no-error` : "message__content",
|
|
61
|
-
theme: a,
|
|
62
|
-
showIndicator: false,
|
|
63
|
-
renderCode: mercuryCodeRender("Copy code"),
|
|
64
|
-
value: n.content
|
|
65
|
-
}) ];
|
|
66
|
-
|
|
67
|
-
export { mercuryCodeRender as a, mercuryChatMessageRender as m };
|
|
68
|
-
//# sourceMappingURL=p-4b665a04.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["MESSAGE_COPIED_PART_SELECTOR","MESSAGE_COPIED_VISIBLE_PART_SELECTOR","copy","text","event","stopPropagation","navigator","clipboard","writeText","copiedFeedbackRef","target","nextSibling","copiedFeedbackPart","getAttribute","setAttribute","setTimeout","copyButton","textToCopy","accessibleName","additionalPart","h","title","class","type","onClick","part","mercuryCodeRender","copyButtonAccessibleName","options","plainText","language","lastNestedChildClass","value","mercuryChatMessageRender","theme","userName","assistantName","assistantTaskDescription","messageModel","role","status","content","dateTime","metadata","parts","showIndicator","renderCode"],"sources":["src/components/_helpers/chat-container/code-render.tsx"],"sourcesContent":["import { h } 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\";\nimport { getIconPath } from \"@genexus/mercury\";\ngetIconPath;\n\nconst MESSAGE_COPIED_PART_SELECTOR = \"message__copied-feedback\";\nconst MESSAGE_COPIED_VISIBLE_PART_SELECTOR = \"message__copied-feedback-visible\";\n\nconst copy = (text: string) => (event: Event) => {\n event.stopPropagation();\n\n // 1. Copy message\n navigator.clipboard.writeText(text);\n\n // 2. Display \"copied\" message (expects to be the next sibling!)\n const copiedFeedbackRef = (event.target as HTMLElement)\n .nextSibling as HTMLElement;\n const copiedFeedbackPart = copiedFeedbackRef.getAttribute(\"part\");\n if (copiedFeedbackPart === MESSAGE_COPIED_PART_SELECTOR) {\n copiedFeedbackRef.setAttribute(\n \"part\",\n `${MESSAGE_COPIED_PART_SELECTOR} ${MESSAGE_COPIED_VISIBLE_PART_SELECTOR}`\n );\n\n setTimeout(() => {\n copiedFeedbackRef.setAttribute(\"part\", `${MESSAGE_COPIED_PART_SELECTOR}`);\n }, 1000);\n }\n};\n\nconst copyButton = (\n textToCopy: string,\n accessibleName: string,\n additionalPart: string\n) => {\n return (\n <button\n aria-label={accessibleName}\n title={accessibleName}\n class=\"button-copy-code\"\n type=\"button\"\n onClick={copy(textToCopy)}\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\">\n {copyButton(\n options.plainText,\n copyButtonAccessibleName,\n \"code-render\"\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\nexport const mercuryChatMessageRender =\n (\n theme: string,\n userName: string = \"You\",\n assistantName: string = \"AI Assistant\",\n assistantTaskDescription: string = \"Processing request\"\n ) =>\n (messageModel: ChatMessageByRole<\"assistant\" | \"error\" | \"user\">) =>\n messageModel.role === \"assistant\" && messageModel.status === \"waiting\"\n ? [\n <span part=\"message__processing\">{assistantTaskDescription}</span>,\n\n <div class=\"processing-animation\" part=\"processing-animation\"></div>\n ]\n : [\n // \"copy button\" before \"role\" and \"time\" to hide both on button:focus\n copyButton(\n messageModel.content as string,\n \"Copy code\",\n \"common-message\"\n ),\n <p part={MESSAGE_COPIED_PART_SELECTOR}>\n message copied to clipboard\n </p>,\n <span part={`message__role ${messageModel.role}`}>\n {messageModel.role === \"user\" ? userName : assistantName}\n </span>,\n <time dateTime={messageModel.metadata} part=\"message__time\">\n {messageModel.metadata}\n </time>,\n\n messageModel.role === \"user\" ? (\n <span part=\"message__content user\">{messageModel.content}</span>\n ) : (\n <ch-markdown-viewer\n part={\n messageModel.role === \"assistant\" &&\n (messageModel.status === \"complete\" || !messageModel.status) &&\n !messageModel.parts\n ? `message__content no-error`\n : \"message__content\"\n }\n theme={theme}\n showIndicator={false}\n renderCode={mercuryCodeRender(\"Copy code\")}\n value={messageModel.content as string}\n ></ch-markdown-viewer>\n )\n ];\n"],"mappings":";;;;AASA,MAAMA,IAA+B;;AACrC,MAAMC,IAAuC;;AAE7C,MAAMC,OAAQC,KAAkBC;EAC9BA,EAAMC;;IAGNC,UAAUC,UAAUC,UAAUL;;IAG9B,MAAMM,IAAqBL,EAAMM,OAC9BC;EACH,MAAMC,IAAqBH,EAAkBI,aAAa;EAC1D,IAAID,MAAuBZ,GAA8B;IACvDS,EAAkBK,aAChB,QACA,GAAGd,KAAgCC;IAGrCc,YAAW;MACTN,EAAkBK,aAAa,QAAQ,GAAGd;AAA+B,QACxE;;;;AAIP,MAAMgB,aAAa,CACjBC,GACAC,GACAC,MAGEC,EAAA;EAAA,cACcF;EACZG,OAAOH;EACPI,OAAM;EACNC,MAAK;EACLC,SAAStB,KAAKe;EACdQ,MAAM,wBAAwBN;;;MAKvBO,oBACVC,KACAC,KAEGR,EAAA;EAAKE,OAAM;GACTF,EAAA;EAAKE,OAAM;GACRN,WACCY,EAAQC,WACRF,GACA,iBAGJP,EAAA;EACEU,UAAUF,EAAQE;EAClBC,sBAAsBH,EAAQG;EAC9BC,OAAOJ,EAAQC;;;MAKZI,2BACX,CACEC,GACAC,IAAmB,OACnBC,IAAwB,gBACxBC,IAAmC,yBAEpCC,KACCA,EAAaC,SAAS,eAAeD,EAAaE,WAAW,YACzD,EACEpB,EAAA;EAAMK,MAAK;GAAuBY,IAElCjB,EAAA;EAAKE,OAAM;EAAuBG,MAAK;OAEzC;;AAEET,WACEsB,EAAaG,SACb,aACA,mBAEFrB,EAAA;EAAGK,MAAMzB;GAA4B,gCAGrCoB,EAAA;EAAMK,MAAM,iBAAiBa,EAAaC;GACvCD,EAAaC,SAAS,SAASJ,IAAWC,IAE7ChB,EAAA;EAAMsB,UAAUJ,EAAaK;EAAUlB,MAAK;GACzCa,EAAaK,WAGhBL,EAAaC,SAAS,SACpBnB,EAAA;EAAMK,MAAK;GAAyBa,EAAaG,WAEjDrB,EAAA;EACEK,MACEa,EAAaC,SAAS,gBACrBD,EAAaE,WAAW,eAAeF,EAAaE,YACpDF,EAAaM,QACV,8BACA;EAENV,OAAOA;EACPW,eAAe;EACfC,YAAYpB,kBAAkB;EAC9BM,OAAOM,EAAaG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["convertItemsNodeListToFlattenedTreeViewModel","itemsList","checkboxType","itemsListFlattenedTreeViewModel","processNode","item","leaf","_a","nodes","length","checkbox","metaData","JSON","stringify","versionType","type","push","id","toString","metadata","caption","name","checked","expanded","startImgSrc","icon","items","selected","forEach","childNode","convertItemsListToTreeViewModel","itemsListTreeViewModel","order","parseInt","findItemNode","itemNode","result","findItemInArray","itemsNodes","setAllLeafsCheckedFalse","uncheck","unselectAllNodes","unselect","checkItems","idsChecked","itemFind","expandItems","selectItems","idsSelected","searchInNode","node","parents","searchParentsItems","ids","rootItem","results","selectKbItemsCss","CSS_BUNDLES","SYSTEM_SEARCH_ICON","getIconPath","category","colorType","VIEW_AS_TREE_ID","VIEW_AS_LIST_ID","TOGGLE_CHECKBOXES_CHECKED_VALUE","GxIdeSelectKbItems","_GxIdeSelectKbItems__componentLocale","set","this","_GxIdeSelectKbItems_checkedNodesIds","_GxIdeSelectKbItems_chShortcutsEl","_GxIdeSelectKbItems_selectedNodesIds","_GxIdeSelectKbItems_shortcutsSrc","getAssetPath","_GxIdeSelectKbItems_updatedModelList","_GxIdeSelectKbItems_viewItemsAsModel","_GxIdeSelectKbItems_treeViewRenderEl","_GxIdeSelectKbItems_cancelHandler","cancelCallback","_GxIdeSelectKbItems_checkedItemsChangeHandler","async","e","checkedNodesIds","detail","__classPrivateFieldSet","__classPrivateFieldGet","checkedChanged","_GxIdeSelectKbItems_confirmHandler","confirmCallback","_GxIdeSelectKbItems_contextMenuHandler","itemContextMenuCallback","info","isSelected","find","updateItemsProperties","clientX","contextmenuEvent","clientY","selection","_GxIdeSelectKbItems_executeDialogAction","callback","_GxIdeSelectKbItems_patternSearchValueChangedHandler","event","searchPatternValue","_GxIdeSelectKbItems_renderActionButtons","h","dialogActions","map","action","class","part","onClick","call","_GxIdeSelectKbItems_renderFooter","footer","cancel","select","_GxIdeSelectKbItems_selectedItemsChangeHandler","selectedNodesIds","selectionChanged","_GxIdeSelectKbItems_toggleAndSelectNodesInModelItems","selectedItemsIds","nodesToToggle","newItemsSelected","newItemsExpanded","_GxIdeSelectKbItems_updateViews","_GxIdeSelectKbItems_toggleCheckedNodesInModelItems","newItemsList","nodeVersionsListTreeModel","nodeListFlattenedTreeModel","_GxIdeSelectKbItems_viewItemsAsChangedHandler","selectedViewType","nodesVersionsViewType","_GxIdeSelectKbItems_toggleCheckboxesChangedHandler","toggleCheckboxes","watchNodeListHandler","componentWillLoad","Locale","getComponentStrings","el","value","main","tree","suspendShortcuts","suspend","updateSelection","render","Host","model","src","ref","htmlFor","onChange","htmlfor","checkedValue","onInput","placeholder","header","searchPatternPlaceholder","expandableButton","onItemContextmenu","onCheckedItemsChange","onSelectedItemsChange","multiSelection","filter","filterType"],"sources":["src/components/select-kb-items/helpers.tsx","src/components/select-kb-items/select-kb-items.scss?tag=gx-ide-select-kb-items&encapsulation=shadow","src/components/select-kb-items/select-kb-items.tsx"],"sourcesContent":["import { ItemNode, CheckboxType } from \"./select-kb-items\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\n\nexport const convertItemsNodeListToFlattenedTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListFlattenedTreeViewModel: TreeViewItemModel[] = [];\n\n const processNode = (item: ItemNode) => {\n const leaf = !item.nodes?.length;\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListFlattenedTreeViewModel.push({\n id: item.id.toString(),\n metadata: metaData,\n caption: item.name,\n checked: item.checked,\n checkbox: checkbox,\n expanded: item.expanded,\n startImgSrc: item.icon,\n items: null,\n leaf: leaf,\n selected: item.selected\n });\n\n if (item.nodes) {\n item.nodes.forEach(childNode => processNode(childNode));\n }\n };\n\n itemsList.forEach(item => processNode(item));\n return itemsListFlattenedTreeViewModel;\n};\n\nexport const convertItemsListToTreeViewModel = (\n itemsList: ItemNode[],\n checkboxType: CheckboxType\n): TreeViewItemModel[] => {\n const itemsListTreeViewModel: TreeViewItemModel[] = [];\n itemsList.forEach(item => {\n const leaf = !item.nodes?.length;\n const expanded = item.expanded;\n const icon = item.icon;\n const order = parseInt(item.id);\n const checkbox =\n checkboxType === \"all\" ||\n (checkboxType === \"custom\" && item.checkbox) ||\n (checkboxType === \"leaf\" && leaf);\n const metaData = JSON.stringify({\n versionType: item.type\n });\n itemsListTreeViewModel.push({\n id: item.id.toString(),\n metadata: metaData,\n caption: item.name,\n checkbox: checkbox,\n checked: item.checked,\n order: order,\n selected: item.selected,\n expanded: expanded,\n startImgSrc: icon,\n items: !leaf\n ? convertItemsListToTreeViewModel(item.nodes, checkboxType)\n : null,\n leaf: leaf\n });\n });\n\n return itemsListTreeViewModel;\n};\n\nconst findItemNode = (id: string, item: ItemNode): ItemNode | null => {\n if (item.id === id) {\n return item;\n }\n\n if (item.nodes) {\n for (const itemNode of item.nodes) {\n const result = findItemNode(id, itemNode);\n if (result) {\n return result;\n }\n }\n }\n return null;\n};\n\nfunction findItemInArray(itemsNodes: ItemNode[], id: string): ItemNode | null {\n for (const item of itemsNodes) {\n const result = findItemNode(id, item);\n if (result) {\n return result;\n }\n }\n return null;\n}\nconst setAllLeafsCheckedFalse = (itemsList: ItemNode[]): ItemNode[] => {\n const uncheck = (itemNode: ItemNode) => {\n itemNode.checked = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => uncheck(childNode));\n }\n };\n\n itemsList.forEach(item => uncheck(item));\n return itemsList;\n};\n\nexport const unselectAllNodes = (itemsList: ItemNode[]) => {\n const unselect = (itemNode: ItemNode) => {\n itemNode.selected = false;\n if (itemNode.nodes?.length) {\n itemNode.nodes.forEach(childNode => unselect(childNode));\n }\n };\n\n itemsList.forEach(item => unselect(item));\n};\n\nexport const checkItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n setAllLeafsCheckedFalse(itemsList);\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.checked = true;\n }\n });\n\n return itemsList;\n};\n\nexport const expandItems = (\n itemsList: ItemNode[],\n idsChecked: string[]\n): ItemNode[] => {\n idsChecked.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.expanded = true;\n }\n });\n\n return itemsList;\n};\n\nexport const selectItems = (\n itemsList: ItemNode[],\n idsSelected: string[]\n): ItemNode[] => {\n idsSelected.forEach(id => {\n const itemFind = findItemInArray(itemsList, id);\n if (itemFind) {\n itemFind.selected = true;\n }\n });\n return itemsList;\n};\n\nfunction searchInNode(item: ItemNode, id: string): string[] | null {\n // If the current node is the searched node, we return an empty list (it has no parents in this branch)\n if (item.id === id) {\n return [];\n }\n\n // We traverse each child looking for the target node\n if (item.nodes?.length) {\n for (const node of item.nodes) {\n const parents = searchInNode(node, id);\n if (parents !== null) {\n // If we find it, we include the current node at the beginning of the path and return\n return [item.id, ...parents];\n }\n }\n }\n return null;\n}\n\nexport const searchParentsItems = (\n items: ItemNode[],\n ids: string[]\n): string[] | null => {\n const parents: string[] = [];\n for (const id of ids) {\n for (const rootItem of items) {\n const results = searchInNode(rootItem, id);\n if (results !== null) {\n results.forEach(result => {\n parents.push(result);\n });\n }\n }\n }\n return parents;\n};\n",":host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content 1fr max-content;\n}\n\n.section {\n display: contents;\n}\n\n// header\n.view-mode__toggle-checkboxes {\n grid-template-columns: max-content max-content;\n}\n.field__items-view-type {\n align-items: center;\n .label {\n margin-block-start: 0 !important; // WA to center label with radio-group\n }\n}\n.field__toggle-checkboxes {\n .label {\n margin-block-start: 0 !important; // WA to center label with radio-group\n }\n}\n","import {\n Component,\n Element,\n getAssetPath,\n Host,\n h,\n Prop,\n State,\n Watch,\n Method\n} from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n TreeViewItemModel,\n TreeViewItemModelExtended\n} from \"@genexus/chameleon-controls-library\";\n\nimport {\n checkItems,\n convertItemsListToTreeViewModel,\n convertItemsNodeListToFlattenedTreeViewModel,\n expandItems,\n searchParentsItems,\n selectItems,\n unselectAllNodes\n} from \"./helpers\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { Locale } from \"../../common/locale\";\nimport { ContextMenuInfo } from \"../../common/types\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\",\n \"components/tree-view\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\"\n];\n\nconst SYSTEM_SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst VIEW_AS_TREE_ID: NodesVersionsViewType = \"tree\";\nconst VIEW_AS_LIST_ID: NodesVersionsViewType = \"list\";\n\nconst TOGGLE_CHECKBOXES_CHECKED_VALUE = \"on\";\n\n@Component({\n tag: \"gx-ide-select-kb-items\",\n styleUrl: \"select-kb-items.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/select-kb-items\"]\n})\nexport class GxIdeSelectKbItems {\n #_componentLocale: any;\n #checkedNodesIds: string[] = [];\n #chShortcutsEl: HTMLChShortcutsElement;\n #selectedNodesIds: string[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/select-kb-items/shortcuts.json`\n );\n #updatedModelList: ItemNode[] = [];\n\n #viewItemsAsModel: RadioGroupItemModel[];\n\n @Element() el: HTMLGxIdeSelectKbItemsElement;\n #treeViewRenderEl: HTMLChTreeViewRenderElement;\n\n /**\n * Represents the nodes list model\n */\n @State() nodeListFlattenedTreeModel: TreeViewItemModel[] = [];\n\n /**\n * View type for the nodes.\n */\n @State() nodesVersionsViewType: NodesVersionsViewType = \"tree\";\n\n /**\n * Represents the nodes tree model\n */\n @State() nodeVersionsListTreeModel: TreeViewItemModel[] = [];\n\n /**\n * \"Search Pattern\" input value, used to filter the nodes tree/list.\n */\n @State() searchPatternValue: string = null;\n\n /**\n * It maps to the ch-tree-view-render \"toggleCheckboxes\" property.\n */\n @State() toggleCheckboxes: boolean = true;\n\n /**\n * Callback emitted when the 'cancel' button is pressed\n */\n @Prop() readonly cancelCallback?: () => Promise<void>;\n /**\n * Defines which nodes of the component have checkboxes.\n */\n @Prop() readonly checkboxType: CheckboxType;\n\n /**\n * Callback emitted when the items checked items change\n */\n @Prop() readonly checkedChanged?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Callback emitted when the 'select' button is pressed\n */\n @Prop() readonly confirmCallback?: (checkedItems: string[]) => Promise<void>;\n\n /**\n * Set of additional actions (callbacks) to those already provided by default by the selector (cancelCallback and selectCallback)\n */\n @Prop() readonly dialogActions: DialogAction[] = [];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Represents the itemLis list model\n */\n @Prop() readonly itemsList: ItemNode[] = [];\n\n @Watch(\"itemsList\")\n watchNodeListHandler(newItemsList: ItemNode[]) {\n this.#updateViews(newItemsList);\n }\n\n /**\n * This define if the selection is unique or not\n */\n @Prop() readonly multiSelection?: boolean = false;\n\n /**\n * Callback emitted when the items selection change\n */\n @Prop() readonly selectionChanged?: (selectedItem: string[]) => Promise<void>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#viewItemsAsModel = [\n { value: VIEW_AS_TREE_ID, caption: this.#_componentLocale.main.tree },\n { value: VIEW_AS_LIST_ID, caption: \"List\" }\n ];\n this.watchNodeListHandler(this.itemsList);\n }\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#chShortcutsEl.suspend = true;\n } else {\n this.#chShortcutsEl.suspend = false;\n }\n }\n\n /**\n * Allow to update the selected items\n */\n @Method()\n async updateSelection(selectedItemsIds: string[]) {\n // first clear selected\n this.#treeViewRenderEl.updateItemsProperties(this.#selectedNodesIds, {\n selected: false\n });\n // then select\n this.#treeViewRenderEl.updateItemsProperties(selectedItemsIds, {\n selected: true\n });\n }\n\n #cancelHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback();\n }\n };\n\n #checkedItemsChangeHandler = async (\n e: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const checkedNodesIds: string[] = [];\n e.detail.forEach(node => {\n node.item.checked && checkedNodesIds.push(node.item.id);\n });\n this.#checkedNodesIds = checkedNodesIds;\n this.#updatedModelList = checkItems(this.itemsList, this.#checkedNodesIds);\n\n if (this.checkedChanged) {\n this.checkedChanged(this.#checkedNodesIds);\n }\n };\n\n #confirmHandler = () => {\n if (this.confirmCallback) {\n this.confirmCallback(this.#checkedNodesIds);\n }\n };\n\n #contextMenuHandler = async (\n e: CustomEvent<{\n id: string;\n itemRef: HTMLChTreeViewItemElement;\n metadata: string;\n contextmenuEvent: PointerEvent;\n }>\n ) => {\n if (this.itemContextMenuCallback) {\n let info: ContextMenuInfo;\n const isSelected = this.#selectedNodesIds.find(id => id === e.detail.id);\n if (!this.#selectedNodesIds.length || !isSelected) {\n await this.#treeViewRenderEl.updateItemsProperties(\n this.#selectedNodesIds,\n { selected: false }\n );\n await this.#treeViewRenderEl.updateItemsProperties([e.detail.id], {\n selected: true\n });\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: [e.detail.id]\n };\n } else {\n info = {\n clientX: e.detail.contextmenuEvent.clientX,\n clientY: e.detail.contextmenuEvent.clientY,\n selection: this.#selectedNodesIds\n };\n }\n this.itemContextMenuCallback(info);\n }\n };\n\n #executeDialogAction = (\n callback: (checkedNodesIds: string[], selectedNodesIds: string[]) => void\n ) => {\n return () => {\n callback(this.#checkedNodesIds, this.#selectedNodesIds);\n };\n };\n\n #patternSearchValueChangedHandler = (\n event: CustomEvent<string> | InputEvent\n ) => {\n this.searchPatternValue = event.detail.toString();\n };\n\n #renderActionButtons = (): HTMLElement[] => {\n return (\n <div>\n {this.dialogActions.map(action => {\n return (\n <button\n class={\"button-tertiary\"}\n part={`button button-${action.name}`}\n onClick={this.#executeDialogAction(action.callback)}\n >\n {action.name}\n </button>\n );\n })}\n </div>\n );\n };\n\n #renderFooter = (): HTMLElement => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end control-footer-space-between\">\n {this.#renderActionButtons()}\n <div class=\"buttons-spacer \">\n {this.cancelCallback && (\n <button\n class={\"button-secondary\"}\n part={\"cancel-button\"}\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n )}\n {this.confirmCallback && (\n <button\n class={\"button-primary\"}\n part={\"confirm-button\"}\n onClick={this.#confirmHandler}\n >\n {this.#_componentLocale.footer.select}\n </button>\n )}\n </div>\n </footer>\n );\n };\n\n #selectedItemsChangeHandler = (\n e: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n const selectedNodesIds: string[] = [];\n unselectAllNodes(this.itemsList);\n e.detail.forEach(node => {\n selectedNodesIds.push(node.item.id);\n });\n this.#selectedNodesIds = selectedNodesIds;\n if (this.selectionChanged) {\n this.selectionChanged(this.#selectedNodesIds);\n }\n\n this.#updatedModelList = selectItems(this.itemsList, selectedNodesIds);\n };\n\n #toggleAndSelectNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsSelected = selectItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(newItemsSelected, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #toggleCheckedNodesInModelItems = async (selectedItemsIds: string[]) => {\n const nodesToToggle = searchParentsItems(this.itemsList, selectedItemsIds);\n const newItemsExpanded = expandItems(this.itemsList, nodesToToggle);\n this.#updateViews(newItemsExpanded);\n };\n\n #updateViews = (newItemsList: ItemNode[]) => {\n this.nodeVersionsListTreeModel = convertItemsListToTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n\n this.nodeListFlattenedTreeModel =\n convertItemsNodeListToFlattenedTreeViewModel(\n newItemsList,\n this.checkboxType\n );\n };\n\n #viewItemsAsChangedHandler = async (event: CustomEvent<string>) => {\n const selectedViewType = event.detail as NodesVersionsViewType;\n this.nodesVersionsViewType = selectedViewType;\n if (this.nodesVersionsViewType === \"tree\") {\n await this.#toggleAndSelectNodesInModelItems(this.#selectedNodesIds);\n await this.#toggleCheckedNodesInModelItems(this.#checkedNodesIds);\n }\n this.#updateViews(this.#updatedModelList);\n };\n\n #toggleCheckboxesChangedHandler = (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => {\n this.toggleCheckboxes = event.detail === TOGGLE_CHECKBOXES_CHECKED_VALUE;\n };\n\n render() {\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=\"control-header field-group spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group view-mode__toggle-checkboxes\">\n <div class=\"field field-inline field__items-view-type\">\n <label class=\"label\" htmlFor=\"view-mode\">\n Select view mode:\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n id=\"view-mode\"\n model={this.#viewItemsAsModel}\n onChange={this.#viewItemsAsChangedHandler}\n value={this.#viewItemsAsModel[0].value}\n ></ch-radio-group-render>\n </div>\n\n <div class=\"field field-inline field__toggle-checkboxes\">\n <label\n class=\"label\"\n htmlFor=\"control-id-1\"\n htmlfor=\"toggle-checkboxes\"\n >\n Toggle Checkboxes\n </label>\n <ch-checkbox\n class=\"checkbox\"\n id=\"toggle-checkboxes\"\n checkedValue={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n value={TOGGLE_CHECKBOXES_CHECKED_VALUE}\n onInput={this.#toggleCheckboxesChangedHandler}\n ></ch-checkbox>\n </div>\n </div>\n\n <ch-edit\n class=\"input pattern-filter\"\n placeholder={\n this.#_componentLocale.header.searchPatternPlaceholder\n }\n startImgSrc={SYSTEM_SEARCH_ICON}\n onInput={this.#patternSearchValueChangedHandler}\n ></ch-edit>\n </header>\n\n <div class=\"spacing-body-inline-start trees\">\n <ch-tree-view-render\n class=\"tree-view\"\n model={\n this.nodesVersionsViewType === \"tree\"\n ? this.nodeVersionsListTreeModel\n : this.nodeListFlattenedTreeModel\n }\n show-lines={\n this.nodesVersionsViewType === \"tree\" ? \"all\" : \"none\"\n }\n expandableButton={\n this.nodesVersionsViewType === \"tree\" ? \"decorative\" : \"no\"\n }\n onItemContextmenu={this.#contextMenuHandler}\n onCheckedItemsChange={this.#checkedItemsChangeHandler}\n onSelectedItemsChange={this.#selectedItemsChangeHandler}\n multiSelection={this.multiSelection}\n filter={this.searchPatternValue}\n filterType=\"caption\"\n toggleCheckboxes={this.toggleCheckboxes}\n ref={(el: HTMLChTreeViewRenderElement) => {\n this.#treeViewRenderEl = el as HTMLChTreeViewRenderElement;\n }}\n ></ch-tree-view-render>\n </div>\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type CheckboxType = \"none\" | \"all\" | \"leaf\" | \"custom\";\n\nexport type DialogAction = {\n name: string;\n callback: DialogActionCallback;\n};\n\nexport type DialogActionCallback = (...args: any[]) => void;\n\nexport type ItemCommon = {\n icon: string;\n expanded: boolean;\n};\n\nexport type ItemNode = {\n checkbox?: boolean;\n checked?: boolean;\n expanded?: boolean;\n icon?: string;\n id: string;\n name: string;\n nodes?: ItemNode[];\n selected?: boolean;\n type: ItemType;\n};\n\nexport type ItemType = {\n id: string;\n name: string;\n};\n\ntype NodesVersionsViewType = \"tree\" | \"list\";\n"],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { r as s, h as r, H as t } from "./p-49712340.js";
|
|
2
|
-
|
|
3
|
-
const o = ":host{display:block}";
|
|
4
|
-
|
|
5
|
-
const l = class {
|
|
6
|
-
constructor(r) {
|
|
7
|
-
s(this, r);
|
|
8
|
-
}
|
|
9
|
-
render() {
|
|
10
|
-
return r(t, null, r("slot", null));
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
l.style = o;
|
|
15
|
-
|
|
16
|
-
export { l as gx_ide_switcher };
|
|
17
|
-
//# sourceMappingURL=p-caad0b7e.entry.js.map
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { r as t, h as e, H as a } from "./p-49712340.js";
|
|
2
|
-
|
|
3
|
-
import { g as o } from "./p-6e4208d8.js";
|
|
4
|
-
|
|
5
|
-
import "./p-c9551186.js";
|
|
6
|
-
|
|
7
|
-
const i = '.chat-container{display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content 1fr max-content;gap:var(--mer-spacing--xs);padding:var(--mer-spacing--xs);position:relative;--chat-common-border-radius:var(--mer-spacing--2xs)}.section{display:contents}.chat-container__header{padding:var(--mer-spacing--2xs) var(--mer-spacing--2xs) var(--mer-spacing--2xs) var(--mer-spacing--sm);display:flex;align-items:center;gap:var(--mer-spacing--sm);justify-content:space-between}.chat-container__ch-chat{overflow:auto;position:relative;display:grid}.chat-container__header,.chat-container__footer{padding:var(--mer-spacing--2xs) var(--mer-spacing--2xs) var(--mer-spacing--2xs) var(--mer-spacing--sm);border-radius:var(--chat-common-border-radius)}.chat-container__conversation-copied{position:absolute;z-index:1;inline-size:100%;block-size:100%;background:rgba(22, 22, 23, 0.75);backdrop-filter:saturate(180%) blur(20px);display:grid;align-items:center;justify-content:center;text-align:center;padding:32px;--mer-icon__box--md:18px;pointer-events:none;overflow:hidden;animation:fadeIn 100ms ease-in-out forwards;opacity:0}.chat-container__conversation-copied-wrapper{display:flex;align-items:center;gap:var(--mer-spacing--sm)}.chat-container__conversation-copied-wrapper{animation:liftUp var(--mer-timing--fast) ease-in-out forwards;inset-block-start:4px;opacity:0;animation-delay:var(--mer-timing--fast);position:relative}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes liftUp{from{opacity:0;inset-block-start:4px}to{opacity:1;inset-block-start:0}}.chat::part(message){position:relative;--copy-button-opacity:0;--copied-to-clipboard-opacity:0;--date-opacity:1}.chat::part(message__time),.chat::part(message__copy-button){transition:opacity var(--mer-timing--super-fast) ease-in-out}.chat::part(message__time){opacity:var(--date-opacity)}.chat::part(message):hover{position:relative;--copy-button-opacity:1;--date-opacity:0}.chat::part(message__copy-button){position:absolute;z-index:1;inset-inline-end:0;padding:var(--mer-spacing--sm);transition:opacity var(--mer-timing--fast) ease-in-out;opacity:var(--copy-button-opacity)}.chat::part(message__copy-button)::after{content:"";inline-size:var(--mer-icon__box--md);block-size:var(--mer-icon__box--md);background:no-repeat center/var(--mer-icon__size--md) var(--icon-path);--icon-path:var(--icon__system_copy_primary--enabled)}.chat::part(message__copy-button):hover::after{--icon-path:var(--icon__system_copy_primary--hover)}.chat::part(message__copy-button):active::after{--icon-path:var(--icon__system_copy_primary--active)}.chat::part(message__copied-feedback){transition:opacity 150ms ease-in-out;position:absolute;inline-size:100%;block-size:100%;display:flex;align-items:center;justify-content:center;z-index:2;background:rgba(22, 22, 23, 0.8);backdrop-filter:saturate(180%) blur(20px);opacity:var(--copied-to-clipboard-opacity);pointer-events:none}.chat::part(message__copied-feedback-visible){--copied-to-clipboard-opacity:1;pointer-events:visible}.chat::part(send-container){gap:var(--mer-spacing--xs)}.chat::part(send-input){--control__padding-block:7px !important}.chat::part(send-button){border-width:var(--control__border-width);border-style:var(--control__border-style);border-color:var(--control__border-color);border-radius:var(--control__border-radius);inline-size:32px;block-size:32px;background:no-repeat center/var(--mer-icon__box--md) var(--icon-path);--icon-path:var(--icon__system_send_primary--enabled)}.chat::part(send-button):hover{--icon-path:var(--icon__system_send_primary--hover);--control__border-color:var(--mer-text__primary--hover)}.chat::part(send-button):active{--icon-path:var(--icon__system_send_primary--active);--control__border-color:var(--mer-border-color__primary--active)}';
|
|
8
|
-
|
|
9
|
-
const r = [ "resets/box-sizing", "utils/typography", "chameleon/scrollbar", "components/button", "components/icon", "utils/elevation" ];
|
|
10
|
-
|
|
11
|
-
const n = o({
|
|
12
|
-
category: "system",
|
|
13
|
-
name: "copy",
|
|
14
|
-
colorType: "neutral"
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
const s = o({
|
|
18
|
-
category: "system",
|
|
19
|
-
name: "delete-outlined",
|
|
20
|
-
colorType: "error"
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
const c = o({
|
|
24
|
-
category: "objects",
|
|
25
|
-
name: "conversational-flows"
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
const p = class {
|
|
29
|
-
constructor(e) {
|
|
30
|
-
t(this, e);
|
|
31
|
-
this.chatTitle = undefined;
|
|
32
|
-
this.copyConversationCallback = undefined;
|
|
33
|
-
this.deleteConversationCallback = undefined;
|
|
34
|
-
this.displayConversationCopiedMessage = false;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* It will display a feedback message that the conversation has been copied
|
|
38
|
-
*/ async showCopyConversationMessage() {
|
|
39
|
-
this.displayConversationCopiedMessage = true;
|
|
40
|
-
setTimeout((() => {
|
|
41
|
-
this.displayConversationCopiedMessage = false;
|
|
42
|
-
}), 2e3);
|
|
43
|
-
}
|
|
44
|
-
render() {
|
|
45
|
-
const t = this.chatTitle || this.copyConversationCallback || this.deleteConversationCallback;
|
|
46
|
-
const o = this.copyConversationCallback || this.deleteConversationCallback;
|
|
47
|
-
return e(a, {
|
|
48
|
-
class: "chat-container"
|
|
49
|
-
}, e("ch-theme", {
|
|
50
|
-
model: r
|
|
51
|
-
}), e("section", {
|
|
52
|
-
class: "section"
|
|
53
|
-
}, t && e("header", {
|
|
54
|
-
class: "chat-container__header elevation-1 body-italic-m"
|
|
55
|
-
}, this.chatTitle && this.chatTitle, o && e("div", {
|
|
56
|
-
class: "buttons-spacer"
|
|
57
|
-
}, this.deleteConversationCallback && e("button", {
|
|
58
|
-
class: "button-secondary button-icon-only",
|
|
59
|
-
onClick: this.deleteConversationCallback
|
|
60
|
-
}, e("ch-image", {
|
|
61
|
-
class: "icon-md",
|
|
62
|
-
src: s
|
|
63
|
-
})), this.copyConversationCallback && e("button", {
|
|
64
|
-
class: "button-secondary button-icon-only",
|
|
65
|
-
onClick: this.copyConversationCallback
|
|
66
|
-
}, e("ch-image", {
|
|
67
|
-
class: "icon-md",
|
|
68
|
-
src: n
|
|
69
|
-
})))), e("section", {
|
|
70
|
-
class: "chat-container__ch-chat"
|
|
71
|
-
}, e("slot", null), this.displayConversationCopiedMessage && e("div", {
|
|
72
|
-
class: "chat-container__conversation-copied"
|
|
73
|
-
}, e("div", {
|
|
74
|
-
class: "chat-container__conversation-copied-wrapper"
|
|
75
|
-
}, e("ch-image", {
|
|
76
|
-
class: "icon-md",
|
|
77
|
-
src: c
|
|
78
|
-
}), e("p", {
|
|
79
|
-
class: "body-regular-l"
|
|
80
|
-
}, "conversation copied"))))));
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
p.style = i;
|
|
85
|
-
|
|
86
|
-
export { p as gx_ide_chat_container };
|
|
87
|
-
//# sourceMappingURL=p-e0db2615.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["chatContainerCss","CSS_BUNDLES","COPY_ICON","getIconPath","category","name","colorType","DELETE_ICON","CONVERSATION_ICON","GxIdeChatContainer","showCopyConversationMessage","this","displayConversationCopiedMessage","setTimeout","render","renderHeader","chatTitle","copyConversationCallback","deleteConversationCallback","renderButtonsGroup","h","Host","class","model","onClick","src"],"sources":["src/components/_helpers/chat-container/chat-container.scss?tag=gx-ide-chat-container","src/components/_helpers/chat-container/chat-container.tsx"],"sourcesContent":[".chat-container {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n gap: var(--mer-spacing--xs);\n padding: var(--mer-spacing--xs);\n position: relative;\n --chat-common-border-radius: var(--mer-spacing--2xs);\n}\n.section {\n display: contents;\n}\n\n// header\n.chat-container__header {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--2xs)\n var(--mer-spacing--2xs) var(--mer-spacing--sm);\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n justify-content: space-between;\n}\n\n// ch-chat container\n.chat-container__ch-chat {\n overflow: auto;\n position: relative;\n display: grid;\n}\n\n// footer\n\n// header & footer (common styles)\n.chat-container__header,\n.chat-container__footer {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--2xs)\n var(--mer-spacing--2xs) var(--mer-spacing--sm);\n border-radius: var(--chat-common-border-radius);\n}\n\n.chat-container__conversation-copied {\n position: absolute;\n z-index: 1;\n inline-size: 100%;\n block-size: 100%;\n background: rgba(22, 22, 23, 0.75);\n backdrop-filter: saturate(180%) blur(20px);\n display: grid;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 32px;\n --mer-icon__box--md: 18px;\n pointer-events: none;\n overflow: hidden;\n animation: fadeIn 100ms ease-in-out forwards;\n opacity: 0;\n}\n.chat-container__conversation-copied-wrapper {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n}\n.chat-container__conversation-copied-wrapper {\n animation: liftUp var(--mer-timing--fast) ease-in-out forwards;\n inset-block-start: 4px;\n opacity: 0;\n animation-delay: var(--mer-timing--fast);\n position: relative;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes liftUp {\n from {\n opacity: 0;\n inset-block-start: 4px;\n }\n to {\n opacity: 1;\n inset-block-start: 0;\n }\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - -\n// ch-chat overrides TODO: move this styles to Mercury\n// - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n.chat::part(message) {\n position: relative;\n --copy-button-opacity: 0;\n --copied-to-clipboard-opacity: 0;\n --date-opacity: 1;\n}\n.chat::part(message__time),\n.chat::part(message__copy-button) {\n transition: opacity var(--mer-timing--super-fast) ease-in-out;\n}\n.chat::part(message__time) {\n opacity: var(--date-opacity);\n}\n.chat::part(message):hover {\n position: relative;\n --copy-button-opacity: 1;\n --date-opacity: 0;\n}\n.chat::part(message__copy-button) {\n position: absolute;\n z-index: 1;\n inset-inline-end: 0;\n padding: var(--mer-spacing--sm); // same as part::(message)\n transition: opacity var(--mer-timing--fast) ease-in-out;\n opacity: var(--copy-button-opacity);\n\n &::after {\n content: \"\";\n inline-size: var(--mer-icon__box--md);\n block-size: var(--mer-icon__box--md);\n background: no-repeat center / var(--mer-icon__size--md) var(--icon-path);\n --icon-path: var(--icon__system_copy_primary--enabled);\n }\n &:hover::after {\n --icon-path: var(--icon__system_copy_primary--hover);\n }\n &:active::after {\n --icon-path: var(--icon__system_copy_primary--active);\n }\n}\n\n// // copy button effect\n.chat::part(message__copied-feedback) {\n transition: opacity 150ms ease-in-out;\n position: absolute;\n inline-size: 100%;\n block-size: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n background: rgba(22, 22, 23, 0.8);\n backdrop-filter: saturate(180%) blur(20px);\n opacity: var(--copied-to-clipboard-opacity);\n pointer-events: none;\n}\n\n.chat::part(message__copied-feedback-visible) {\n --copied-to-clipboard-opacity: 1;\n pointer-events: visible;\n}\n\n// send button\n\n.chat::part(send-container) {\n gap: var(--mer-spacing--xs);\n}\n.chat::part(send-input) {\n --control__padding-block: 7px !important;\n}\n\n.chat::part(send-button) {\n border-width: var(--control__border-width);\n border-style: var(--control__border-style);\n border-color: var(--control__border-color);\n border-radius: var(--control__border-radius);\n inline-size: 32px;\n block-size: 32px;\n background: no-repeat center / var(--mer-icon__box--md) var(--icon-path);\n --icon-path: var(--icon__system_send_primary--enabled);\n}\n.chat::part(send-button):hover {\n --icon-path: var(--icon__system_send_primary--hover);\n --control__border-color: var(--mer-text__primary--hover);\n}\n.chat::part(send-button):active {\n --icon-path: var(--icon__system_send_primary--active);\n --control__border-color: var(--mer-border-color__primary--active);\n}\n","import { Component, Host, h, Prop, Method, State } from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/button\",\n \"components/icon\",\n \"utils/elevation\"\n];\n\nconst COPY_ICON = getIconPath({\n category: \"system\",\n name: \"copy\",\n colorType: \"neutral\"\n});\nconst DELETE_ICON = getIconPath({\n category: \"system\",\n name: \"delete-outlined\",\n colorType: \"error\"\n});\nconst CONVERSATION_ICON = getIconPath({\n category: \"objects\",\n name: \"conversational-flows\"\n});\n\n@Component({\n tag: \"gx-ide-chat-container\",\n styleUrl: \"chat-container.scss\",\n shadow: false\n})\nexport class GxIdeChatContainer {\n /**\n * The chat title\n */\n @Prop() readonly chatTitle?: string;\n\n /**\n * If true a button for copying the conversation will be render on the header\n */\n @Prop() readonly copyConversationCallback: () => void;\n\n /**\n * If true a button for deleting the conversation will be render on the header\n */\n @Prop() readonly deleteConversationCallback: () => void;\n\n /**\n * Coneration Copied\n */\n @State() displayConversationCopiedMessage: boolean = false;\n\n /**\n * It will display a feedback message that the conversation has been copied\n */\n @Method()\n async showCopyConversationMessage() {\n this.displayConversationCopiedMessage = true;\n setTimeout(() => {\n this.displayConversationCopiedMessage = false;\n }, 2000);\n }\n\n render() {\n const renderHeader =\n this.chatTitle ||\n this.copyConversationCallback ||\n this.deleteConversationCallback;\n\n const renderButtonsGroup =\n this.copyConversationCallback || this.deleteConversationCallback;\n return (\n <Host class=\"chat-container\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {renderHeader && (\n <header class=\"chat-container__header elevation-1 body-italic-m\">\n {this.chatTitle && this.chatTitle}\n\n {renderButtonsGroup && (\n <div class=\"buttons-spacer\">\n {this.deleteConversationCallback && (\n <button\n class=\"button-secondary button-icon-only\"\n onClick={this.deleteConversationCallback}\n >\n <ch-image class=\"icon-md\" src={DELETE_ICON}></ch-image>\n </button>\n )}\n\n {this.copyConversationCallback && (\n <button\n class=\"button-secondary button-icon-only\"\n onClick={this.copyConversationCallback}\n >\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n </button>\n )}\n </div>\n )}\n </header>\n )}\n <section class=\"chat-container__ch-chat\">\n <slot></slot>\n {this.displayConversationCopiedMessage && (\n <div class=\"chat-container__conversation-copied\">\n <div class=\"chat-container__conversation-copied-wrapper\">\n <ch-image class=\"icon-md\" src={CONVERSATION_ICON}></ch-image>\n <p class=\"body-regular-l\">conversation copied</p>\n </div>\n </div>\n )}\n </section>\n {/* <footer class=\"chat-container__footer elevation-1\">footer</footer> */}\n </section>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;AAAA,MAAMA,IAAmB;;ACGzB,MAAMC,IAA8B,EAClC,qBACA,oBACA,uBACA,qBACA,mBACA;;AAGF,MAAMC,IAAYC,EAAY;EAC5BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;AAEb,MAAMC,IAAcJ,EAAY;EAC9BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;AAEb,MAAME,IAAoBL,EAAY;EACpCC,UAAU;EACVC,MAAM;;;MAQKI,IAAkB;;;;;;4CAmBwB;;;;SAMrD,iCAAMC;IACJC,KAAKC,mCAAmC;IACxCC,YAAW;MACTF,KAAKC,mCAAmC;AAAK,QAC5C;;EAGL,MAAAE;IACE,MAAMC,IACJJ,KAAKK,aACLL,KAAKM,4BACLN,KAAKO;IAEP,MAAMC,IACJR,KAAKM,4BAA4BN,KAAKO;IACxC,OACEE,EAACC,GAAI;MAACC,OAAM;OACVF,EAAA;MAAUG,OAAOtB;QACjBmB,EAAA;MAASE,OAAM;OACZP,KACCK,EAAA;MAAQE,OAAM;OACXX,KAAKK,aAAaL,KAAKK,WAEvBG,KACCC,EAAA;MAAKE,OAAM;OACRX,KAAKO,8BACJE,EAAA;MACEE,OAAM;MACNE,SAASb,KAAKO;OAEdE,EAAA;MAAUE,OAAM;MAAUG,KAAKlB;SAIlCI,KAAKM,4BACJG,EAAA;MACEE,OAAM;MACNE,SAASb,KAAKM;OAEdG,EAAA;MAAUE,OAAM;MAAUG,KAAKvB;WAO3CkB,EAAA;MAASE,OAAM;OACbF,EAAA,eACCT,KAAKC,oCACJQ,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAKE,OAAM;OACTF,EAAA;MAAUE,OAAM;MAAUG,KAAKjB;QAC/BY,EAAA;MAAGE,OAAM;OAAgB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["PROCESSING_PLACEHOLDER","timeOut","ASSISTANT_RESPONSE_MARKDOWN","ASSISTANT_RESPONSE_SHORT_MARKDOWN","sendChatToLLM","chatRef","document","querySelector","addNewMessage","id","Date","getTime","role","content","status","setTimeout","updateLastMessage","dummyStreaming","counter","stringToDisplay","mode","streamingCompleted","length","message","substring","files","url","caption","undefined","chatCallbacks","clear","Promise","resolve","uploadImage","stopGeneratingAnswer","clearTimeout","chatTranslations","accessibleName","clearChat","copyResponseButton","downloadCodeButton","imagePicker","removeUploadedImage","sendButton","sendInput","stopGeneratingAnswerButton","placeholder","text","copyCodeButton","processing","sourceFiles","Array","from","_","index","codeFixerRecord","metadata","parts","chatShowcaseCss","CSS_BUNDLES","GxIdeScChatContainer","_GxIdeScChatContainer_chatContainerRef","set","this","_GxIdeScChatContainer_copyConversationCallbackHandler","__classPrivateFieldGet","showCopyConversationMessage","_GxIdeScChatContainer_deleteConversationCallbackHandler","console","log","componentDidLoad","assistantStatus","render","h","Host","model","chatTitle","copyConversationCallback","deleteConversationCallback","ref","el","__classPrivateFieldSet","callbacks","class","generatingResponse","loadingState","markdownTheme","renderItem","mercuryChatMessageRender","isMobile","items","showAdditionalContent","translations","slot"],"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}\n To 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 \n Another 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}\n This feature allows you to add color highlighting for whatever language your code was written in.\n To 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\n import React from 'react'\n import ReactDOM from 'react-dom'\n import Markdown from 'react-markdown'\n import rehypeHighlight from 'rehype-highlight'\n \n const markdown = \\`\n # Your markdown here\n \\`\n \n ReactDOM.render(\n <Markdown rehypePlugins={[rehypeHighlight]}>{markdown}</Markdown>,\n document.querySelector('#content')\n )\n \\`\\`\\`\n \n ### Horizontal Rules {#horizontal-rules}\n To 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}\n To 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 = () => {\n // This is a WA to get the chat reference\n const chatRef = document.querySelector(\"ch-chat\") as HTMLChChatElement;\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 }, 200);\n }, 200);\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: {\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 }\n },\n counter % 200 === 0 ? 50 : 40\n );\n}\n\nexport const chatCallbacks: ChatInternalCallbacks = {\n clear: () => new Promise(resolve => resolve()),\n sendChatToLLM: sendChatToLLM,\n uploadImage: () => new Promise(resolve => resolve(\"\")),\n stopGeneratingAnswer: () => {\n clearTimeout(timeOut);\n\n // This is a WA to get the chat reference\n const chatRef = document.querySelector(\"ch-chat\") as HTMLChChatElement;\n\n chatRef.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\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: \"Warning in request\",\n metadata: \"14:57\",\n parts: \"warning\"\n },\n {\n id: \"4\",\n role: \"error\",\n content: \"Error in Request\",\n metadata: \"14:58\"\n },\n {\n id: \"5\",\n role: \"assistant\",\n status: \"complete\",\n content: \"Warning in request\",\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: \"Processing Request\"\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 { Component, Host, h, State } from \"@stencil/core\";\nimport { mercuryChatMessageRender } from \"../../components/_helpers/chat-container/code-render\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\"resets/box-sizing\", \"components/chat\"];\n\nimport { chatCallbacks, chatTranslations, codeFixerRecord } from \"./callbacks\";\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\n @State() showAdditionalContent: boolean = false;\n @State() conversationCopied: boolean = false;\n @State() assistantStatus: string = \"Getting Data\";\n\n #copyConversationCallbackHandler = () => {\n this.#chatContainerRef.showCopyConversationMessage();\n };\n\n #deleteConversationCallbackHandler = () => {\n console.log(\"delete messages\");\n };\n\n componentDidLoad() {\n setTimeout(() => {\n this.assistantStatus = \"Creating Data Base..\";\n }, 1000);\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 >\n <ch-chat\n callbacks={chatCallbacks}\n class=\"chat\"\n generatingResponse={false}\n loadingState=\"all-records-loaded\"\n markdownTheme=\"mercury/markdown-viewer\"\n renderItem={mercuryChatMessageRender(\n \"mercury/markdown-viewer\",\n \"Bruno\",\n \"Gx Assistant\",\n this.assistantStatus\n )}\n isMobile={false}\n items={codeFixerRecord}\n showAdditionalContent={this.showAdditionalContent}\n translations={chatTranslations}\n >\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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"}
|
|
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
|
|
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
|
|
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
|