@genexus/genexus-ide-ui 1.1.4 → 1.1.6
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-972bf7f4.js +9 -0
- package/dist/cjs/MERCURY_ASSETS-972bf7f4.js.map +1 -0
- package/dist/cjs/code-render-55d37767.js +86 -0
- package/dist/cjs/code-render-55d37767.js.map +1 -0
- package/dist/cjs/{common-72f91a78.js → common-090e6d3a.js} +28 -12
- package/dist/cjs/common-090e6d3a.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +2 -3
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +5 -6
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +4 -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 +239 -0
- package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +3 -4
- 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 +2 -3
- package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +2 -3
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +2 -3
- package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +7 -8
- package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-file-item.cjs.entry.js +5 -6
- package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +2 -3
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +6 -7
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +5 -6
- 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 +4 -5
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +4 -5
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +4 -5
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +202 -98
- 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 +3 -4
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -3
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-splash.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +5 -6
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +2 -3
- package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +3 -4
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
- package/dist/cjs/index.cjs.js +8 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/common/common.js +19 -6
- package/dist/collection/common/common.js.map +1 -1
- package/dist/collection/common/images/ai-avatar.svg +11 -0
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +1 -0
- package/dist/collection/components/chat/chat-container/chat-container.css +118 -0
- package/dist/collection/components/chat/chat-container/chat-container.js +218 -0
- package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -0
- package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
- package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
- package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
- package/dist/collection/components/chat/chat-welcome/chat-welcome.css +109 -0
- package/dist/collection/components/chat/chat-welcome/chat-welcome.js +228 -0
- package/dist/collection/components/chat/chat-welcome/chat-welcome.js.map +1 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js +3 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js.map +1 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
- package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
- package/dist/collection/components/chat/code-render.js +65 -0
- package/dist/collection/components/chat/code-render.js.map +1 -0
- package/dist/collection/components/data-selector/data-selector.css +1 -0
- package/dist/collection/components/object-selector/object-selector.css +1 -0
- package/dist/collection/components/team-dev/commit/commit.css +1 -0
- package/dist/collection/components/team-dev/update/update.css +2 -0
- package/dist/collection/components/ww-attributes/ww-attributes.css +1 -0
- package/dist/collection/components/ww-files/ww-files.css +1 -0
- package/dist/collection/components/ww-images/ww-images.css +1 -0
- package/dist/collection/index.js +5 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/collection/showcase/chat-container/callbacks.js +105 -90
- package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
- package/dist/collection/showcase/chat-container/chat.showcase.js +145 -10
- package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
- package/dist/collection/testing/locale.e2e.js +1 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/MERCURY_ASSETS.js +5 -1
- package/dist/components/MERCURY_ASSETS.js.map +1 -1
- package/dist/components/ai-message.js +1 -2
- package/dist/components/ai-message.js.map +1 -1
- package/dist/components/chat-container.js +70 -7
- package/dist/components/chat-container.js.map +1 -1
- package/dist/components/chat-welcome.js +146 -0
- package/dist/components/chat-welcome.js.map +1 -0
- package/dist/components/code-render.js +68 -41
- package/dist/components/code-render.js.map +1 -1
- package/dist/components/common.js +27 -11
- package/dist/components/common.js.map +1 -1
- package/dist/components/entity-selector.js +1 -2
- package/dist/components/entity-selector.js.map +1 -1
- package/dist/components/file-item.js +1 -2
- package/dist/components/file-item.js.map +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js +2 -3
- package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
- package/dist/components/gx-ide-bpm-task-documents.js +1 -2
- package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
- package/dist/components/gx-ide-chat-welcome.d.ts +11 -0
- package/dist/components/gx-ide-chat-welcome.js +8 -0
- package/dist/components/gx-ide-chat-welcome.js.map +1 -0
- package/dist/components/gx-ide-create-kb-from-server.js +1 -2
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-current-user-info.js +1 -2
- package/dist/components/gx-ide-current-user-info.js.map +1 -1
- package/dist/components/gx-ide-dashboard-home.js +1 -2
- package/dist/components/gx-ide-dashboard-home.js.map +1 -1
- package/dist/components/gx-ide-data-selector.js +2 -3
- package/dist/components/gx-ide-data-selector.js.map +1 -1
- package/dist/components/gx-ide-data-type-selector.js +1 -2
- package/dist/components/gx-ide-data-type-selector.js.map +1 -1
- package/dist/components/gx-ide-design-import.js +1 -2
- package/dist/components/gx-ide-design-import.js.map +1 -1
- package/dist/components/gx-ide-file-uploader.js +1 -2
- package/dist/components/gx-ide-file-uploader.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-export.js +1 -2
- package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-import.js +1 -2
- package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
- package/dist/components/gx-ide-manage-module-references-v2.js +1 -2
- package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
- package/dist/components/gx-ide-manage-module-references.js +1 -2
- package/dist/components/gx-ide-manage-module-references.js.map +1 -1
- package/dist/components/gx-ide-new-kb.js +1 -2
- package/dist/components/gx-ide-new-kb.js.map +1 -1
- package/dist/components/gx-ide-object-selector.js +2 -3
- package/dist/components/gx-ide-object-selector.js.map +1 -1
- package/dist/components/gx-ide-open-api-import.js +1 -2
- package/dist/components/gx-ide-open-api-import.js.map +1 -1
- package/dist/components/gx-ide-references.js +1 -2
- package/dist/components/gx-ide-references.js.map +1 -1
- package/dist/components/gx-ide-sc-chat-container.js +215 -100
- package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
- package/dist/components/gx-ide-select-kb-items.js +1 -2
- package/dist/components/gx-ide-select-kb-items.js.map +1 -1
- package/dist/components/gx-ide-share-kb.js +1 -2
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/gx-ide-splash.js +1 -2
- package/dist/components/gx-ide-splash.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +1 -2
- package/dist/components/gx-ide-start-page.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +1 -1
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update.js +1 -1
- package/dist/components/gx-ide-team-dev-update.js.map +1 -1
- package/dist/components/gx-ide-welcome-page.js +1 -2
- package/dist/components/gx-ide-welcome-page.js.map +1 -1
- package/dist/components/gx-ide-ww-attributes.js +2 -3
- package/dist/components/gx-ide-ww-attributes.js.map +1 -1
- package/dist/components/gx-ide-ww-files.js +1 -1
- package/dist/components/gx-ide-ww-files.js.map +1 -1
- package/dist/components/gx-ide-ww-images.js +1 -1
- package/dist/components/gx-ide-ww-images.js.map +1 -1
- package/dist/components/index.js +6 -0
- package/dist/components/index.js.map +1 -1
- package/dist/esm/MERCURY_ASSETS-039222dd.js +7 -0
- package/dist/esm/MERCURY_ASSETS-039222dd.js.map +1 -0
- package/dist/esm/code-render-53b3b0bd.js +83 -0
- package/dist/esm/code-render-53b3b0bd.js.map +1 -0
- package/dist/esm/{common-ccb4504a.js → common-719c4daf.js} +28 -12
- package/dist/esm/common-719c4daf.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +1 -2
- package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +2 -3
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-task-documents.entry.js +1 -2
- package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
- package/dist/esm/gx-ide-chat-container_2.entry.js +234 -0
- package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -0
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -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 -2
- package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +1 -2
- package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +2 -3
- package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-data-type-selector.entry.js +1 -2
- package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +1 -2
- package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +1 -2
- package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-file-item.entry.js +1 -2
- package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
- package/dist/esm/gx-ide-file-uploader.entry.js +1 -2
- package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -2
- package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -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 +2 -3
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +2 -3
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +2 -3
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +2 -3
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-open-api-import.entry.js +1 -2
- package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-references.entry.js +1 -2
- package/dist/esm/gx-ide-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-sc-chat-container.entry.js +203 -99
- package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js +1 -2
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -2
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-splash.entry.js +2 -3
- package/dist/esm/gx-ide-splash.entry.js.map +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +1 -2
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/gx-ide-welcome-page.entry.js +1 -2
- package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +2 -3
- package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-files.entry.js +1 -1
- package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +2 -2
- package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
- package/dist/esm/index.js +8 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
- package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
- package/dist/genexus-ide-ui/index.esm.js +8 -2
- package/dist/genexus-ide-ui/index.esm.js.map +1 -1
- package/dist/genexus-ide-ui/{p-a1d73ca3.entry.js → p-01d96378.entry.js} +3 -5
- package/dist/genexus-ide-ui/{p-a1d73ca3.entry.js.map → p-01d96378.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-f51adb3d.entry.js → p-036d005d.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-f3f35e5c.entry.js → p-04205aa4.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-f3f35e5c.entry.js.map → p-04205aa4.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-961bb2cc.entry.js → p-0bdf34f2.entry.js} +3 -5
- package/dist/genexus-ide-ui/{p-961bb2cc.entry.js.map → p-0bdf34f2.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-fa18a70c.entry.js → p-1c7ea1cb.entry.js} +8 -10
- package/dist/genexus-ide-ui/{p-fa18a70c.entry.js.map → p-1c7ea1cb.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-530c32aa.entry.js → p-29c69938.entry.js} +8 -10
- package/dist/genexus-ide-ui/{p-530c32aa.entry.js.map → p-29c69938.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-67762237.entry.js → p-385c9544.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-4b79c3ab.entry.js → p-3da8db15.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-4b79c3ab.entry.js.map → p-3da8db15.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js → p-41a4364d.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js.map → p-41a4364d.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-56331289.entry.js → p-4538dea5.entry.js} +13 -15
- package/dist/genexus-ide-ui/{p-56331289.entry.js.map → p-4538dea5.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-4c717aa7.entry.js → p-48062d23.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-4c717aa7.entry.js.map → p-48062d23.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-9a609b51.js → p-48f5911b.js} +50 -33
- package/dist/genexus-ide-ui/p-48f5911b.js.map +1 -0
- package/dist/genexus-ide-ui/{p-6d2174ed.entry.js → p-4d0ba4f6.entry.js} +3 -5
- package/dist/genexus-ide-ui/{p-6d2174ed.entry.js.map → p-4d0ba4f6.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-76c3fc51.entry.js → p-4e943649.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-76c3fc51.entry.js.map → p-4e943649.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-29a026bb.entry.js → p-67e0b419.entry.js} +10 -12
- package/dist/genexus-ide-ui/{p-29a026bb.entry.js.map → p-67e0b419.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-bbf88f43.entry.js → p-690942cb.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-bbf88f43.entry.js.map → p-690942cb.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-84618917.entry.js → p-6f898249.entry.js} +3 -5
- package/dist/genexus-ide-ui/{p-84618917.entry.js.map → p-6f898249.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-fecc50e4.entry.js → p-704499e5.entry.js} +40 -42
- package/dist/genexus-ide-ui/{p-fecc50e4.entry.js.map → p-704499e5.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-fe490103.entry.js → p-7abe2214.entry.js} +8 -10
- package/dist/genexus-ide-ui/{p-fe490103.entry.js.map → p-7abe2214.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-c747afac.entry.js → p-7d8812b0.entry.js} +17 -19
- package/dist/genexus-ide-ui/{p-c747afac.entry.js.map → p-7d8812b0.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-edf889d2.entry.js → p-88c81f18.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-edf889d2.entry.js.map → p-88c81f18.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-1072bf33.entry.js → p-8cb937b7.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-1072bf33.entry.js.map → p-8cb937b7.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-fdf41406.entry.js → p-9fa1200f.entry.js} +12 -14
- package/dist/genexus-ide-ui/{p-fdf41406.entry.js.map → p-9fa1200f.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-fcecdafa.entry.js → p-a1415a9c.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-50f304fe.entry.js → p-aab809c4.entry.js} +11 -13
- package/dist/genexus-ide-ui/{p-50f304fe.entry.js.map → p-aab809c4.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-833c3585.entry.js → p-c38ce0bf.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-833c3585.entry.js.map → p-c38ce0bf.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/p-c5178973.js +109 -0
- package/dist/genexus-ide-ui/p-c5178973.js.map +1 -0
- package/dist/genexus-ide-ui/{p-eea944d4.entry.js → p-c7badbf1.entry.js} +2 -4
- package/dist/genexus-ide-ui/{p-eea944d4.entry.js.map → p-c7badbf1.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-2b3938b4.entry.js → p-d2107cb2.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ba7d1472.entry.js → p-d3767a7d.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-da473001.entry.js +338 -0
- package/dist/genexus-ide-ui/p-da473001.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-007173ef.entry.js → p-e28e6bc4.entry.js} +3 -5
- package/dist/genexus-ide-ui/{p-007173ef.entry.js.map → p-e28e6bc4.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-4cbc8a8b.entry.js → p-eb9e760d.entry.js} +10 -12
- package/dist/genexus-ide-ui/{p-4cbc8a8b.entry.js.map → p-eb9e760d.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/p-ec0809a7.entry.js +317 -0
- package/dist/genexus-ide-ui/p-ec0809a7.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5687fdb7.entry.js → p-ecba870e.entry.js} +9 -11
- package/dist/genexus-ide-ui/{p-5687fdb7.entry.js.map → p-ecba870e.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-5ac47c69.js → p-ede7bd20.js} +6885 -6346
- package/dist/genexus-ide-ui/p-ede7bd20.js.map +1 -0
- package/dist/types/common/common.d.ts +1 -1
- package/dist/types/components/{_helpers → chat}/chat-container/chat-container.d.ts +13 -2
- package/dist/types/components/chat/chat-welcome/chat-welcome.d.ts +39 -0
- package/dist/types/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.d.ts +1 -0
- package/dist/types/components/{_helpers/chat-container → chat}/code-render.d.ts +1 -1
- package/dist/types/components.d.ts +73 -0
- package/dist/types/index.d.ts +5 -1
- package/dist/types/showcase/chat-container/callbacks.d.ts +1 -1
- package/dist/types/showcase/chat-container/chat.showcase.d.ts +15 -0
- package/package.json +5 -5
- package/dist/cjs/MERCURY_ASSETS-6bbcc011.js +0 -5
- package/dist/cjs/MERCURY_ASSETS-6bbcc011.js.map +0 -1
- package/dist/cjs/assets-manager-7227a74b.js +0 -7
- package/dist/cjs/assets-manager-7227a74b.js.map +0 -1
- package/dist/cjs/code-render-db7cb770.js +0 -59
- package/dist/cjs/code-render-db7cb770.js.map +0 -1
- package/dist/cjs/common-72f91a78.js.map +0 -1
- package/dist/cjs/gx-ide-chat-container.cjs.entry.js +0 -62
- package/dist/cjs/gx-ide-chat-container.cjs.entry.js.map +0 -1
- package/dist/collection/components/_helpers/chat-container/chat-container.css +0 -204
- package/dist/collection/components/_helpers/chat-container/chat-container.js +0 -137
- package/dist/collection/components/_helpers/chat-container/chat-container.js.map +0 -1
- package/dist/collection/components/_helpers/chat-container/code-render.js +0 -46
- package/dist/collection/components/_helpers/chat-container/code-render.js.map +0 -1
- package/dist/components/assets-manager.js +0 -5
- package/dist/components/assets-manager.js.map +0 -1
- package/dist/esm/MERCURY_ASSETS-bbdf7018.js +0 -3
- package/dist/esm/MERCURY_ASSETS-bbdf7018.js.map +0 -1
- package/dist/esm/assets-manager-0d129105.js +0 -5
- package/dist/esm/assets-manager-0d129105.js.map +0 -1
- package/dist/esm/code-render-6cbb0e63.js +0 -56
- package/dist/esm/code-render-6cbb0e63.js.map +0 -1
- package/dist/esm/common-ccb4504a.js.map +0 -1
- package/dist/esm/gx-ide-chat-container.entry.js +0 -58
- package/dist/esm/gx-ide-chat-container.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-1a74d49a.entry.js +0 -231
- package/dist/genexus-ide-ui/p-1a74d49a.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-5ac47c69.js.map +0 -1
- package/dist/genexus-ide-ui/p-6e4208d8.js +0 -9
- package/dist/genexus-ide-ui/p-6e4208d8.js.map +0 -1
- package/dist/genexus-ide-ui/p-9a609b51.js.map +0 -1
- package/dist/genexus-ide-ui/p-be8a59fd.js +0 -107
- package/dist/genexus-ide-ui/p-be8a59fd.js.map +0 -1
- package/dist/genexus-ide-ui/p-db9c3b37.entry.js +0 -85
- package/dist/genexus-ide-ui/p-db9c3b37.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-f51adb3d.entry.js.map → p-036d005d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-67762237.entry.js.map → p-385c9544.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-fcecdafa.entry.js.map → p-a1415a9c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2b3938b4.entry.js.map → p-d2107cb2.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ba7d1472.entry.js.map → p-d3767a7d.entry.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"gx-ide-chat-container.gx-ide-chat-welcome.entry.cjs.js","mappings":"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","names":["CSS_BUNDLES","getIconPath","__classPrivateFieldSet","Locale","h","Host","__classPrivateFieldGet","getAssetPath"],"sources":["src/components/chat/chat-container/chat-container.scss?tag=gx-ide-chat-container","src/components/chat/chat-container/chat-container.tsx","src/components/chat/chat-welcome/chat-welcome.scss?tag=gx-ide-chat-welcome&encapsulation=shadow","src/components/chat/chat-welcome/chat-welcome.tsx"],"sourcesContent":[".chat-container {\n background-color: var(\n --elevation-background-color,\n --mer-surface__elevation--01\n );\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: 1fr;\n position: relative;\n --chat-common-border-radius: var(--mer-spacing--2xs);\n}\n\n.chat-container.with-header {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n.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 justify-content: space-between;\n gap: var(--mer-spacing--sm);\n color: var(--mer-text__bright);\n border-block-end: var(--mer-border__width--sm) solid\n var(--color-border-surface-on-elevation-01, #333d47);\n\n .button-copy-chat,\n .button-delete-chat {\n --control__border-color: transparent !important;\n }\n\n .button-delete-chat {\n &:hover {\n filter: brightness(1.3);\n }\n &:active {\n filter: brightness(0.8);\n }\n }\n}\n\n.ch-chat-container {\n overflow: auto;\n position: relative;\n display: grid;\n}\n\n// - - - - - - - - - - - - - -\n// other\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\n.chat-container__conversation-copied-wrapper {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n position: relative;\n inset-block-start: 4px;\n opacity: 0;\n animation: liftUp var(--mer-timing--fast) ease-in-out forwards;\n animation-delay: var(--mer-timing--fast);\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\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::selection {\n color: #00ccff;\n background: #22334a;\n}\n\n// The following styles shoul be moved over to Mercury\n\n.chat::part(code-block-header__copy) {\n --copy-text-opacity: 0;\n --copy-text-translate-x: 6px;\n opacity: var(--copy-text-opacity);\n pointer-events: none;\n transform: translateX(var(--copy-text-translate-x));\n transition: opacity 100ms ease-in-out, transform 100ms ease-in-out;\n font-size: 12px;\n}\n.chat::part(code-block-header__copy-copied) {\n --copy-button-pointer-events: none !important;\n --copy-text-opacity: 1;\n --copy-text-translate-x: 0;\n}\n.chat::part(code-block-header) {\n align-items: center;\n display: flex;\n gap: 8px;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n Method,\n State\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { ActionMenuModel } from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../../common/locale\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/button\",\n \"components/dropdown\",\n \"components/icon\",\n \"utils/elevation\"\n];\n\nconst COPY_ICON = getIconPath({\n category: \"system\",\n name: \"copy\",\n colorType: \"primary\"\n});\nconst DELETE_ICON = getIconPath({\n category: \"system\",\n name: \"delete-outlined\",\n colorType: \"primary\"\n});\nconst CONVERSATION_ICON = getIconPath({\n category: \"objects\",\n name: \"conversational-flows\"\n});\nconst MORE_HORIZONTAL_ICON = getIconPath({\n category: \"system\",\n name: \"more-horizontal\",\n colorType: \"neutral\"\n});\n\n@Component({\n tag: \"gx-ide-chat-container\",\n styleUrl: \"chat-container.scss\",\n shadow: false,\n assetsDirs: [\"gx-ide-assets/chat-container\"]\n})\nexport class GxIdeChatContainer {\n #menuItems: ActionMenuModel = [\n { type: \"slot\", id: \"delete-chat-button\" },\n { type: \"slot\", id: \"copy-chat-button\" }\n ];\n\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeChatContainerElement;\n\n /**\n * Coneration Copied\n */\n @State() displayConversationCopiedMessage: boolean = false;\n\n /**\n * Displays or hides the menu\n */\n @State() menuIsExpanded: boolean = false;\n\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 * If true a the welcome screen will be rendered\n */\n @Prop() readonly displayWelcomeScreen: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\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 #showMenuHandler = () => {\n this.menuIsExpanded = true;\n };\n\n #menuExpandedChangeHandler = (event: CustomEvent<boolean>) => {\n this.menuIsExpanded = event.detail;\n };\n\n #copyConversationHandler = () => {\n if (this.copyConversationCallback) {\n this.copyConversationCallback();\n this.menuIsExpanded = false;\n }\n };\n #deleteConversationHandler = () => {\n if (this.deleteConversationCallback) {\n this.deleteConversationCallback();\n this.menuIsExpanded = false;\n }\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\n class={{\n \"chat-container\": true,\n \"with-header\": !!renderHeader\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {renderHeader && (\n <header class=\"header tiny-semi-bold-l\">\n {this.chatTitle && this.chatTitle}\n {renderButtonsGroup && (\n <ch-action-menu-render\n class=\"dropdown\"\n blockAlign=\"inside-start\"\n inlineAlign=\"inside-end\"\n model={this.#menuItems}\n expanded={this.menuIsExpanded}\n onExpandedChange={this.#menuExpandedChangeHandler}\n >\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#showMenuHandler}\n type=\"button\"\n aria-label={this.#componentLocale.showMenuAriaLabel}\n title={this.#componentLocale.showMenuAriaLabel}\n >\n <ch-image\n class=\"icon-md\"\n src={MORE_HORIZONTAL_ICON}\n ></ch-image>\n </button>\n {this.copyConversationCallback && (\n <button\n class=\"button-tertiary button-icon-and-text button-copy-chat\"\n slot=\"copy-chat-button\"\n onClick={this.#copyConversationHandler}\n type=\"button\"\n aria-label={\n this.#componentLocale.copyConversationAriaLabel\n }\n title={this.#componentLocale.copyConversationAriaLabel}\n >\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n {this.#componentLocale.copyConversationLabel}\n </button>\n )}\n {this.deleteConversationCallback && (\n <button\n class=\"button-tertiary button-icon-and-text button-delete-chat\"\n slot=\"delete-chat-button\"\n onClick={this.#deleteConversationHandler}\n type=\"button\"\n aria-label={\n this.#componentLocale.deleteConversationAriaLabel\n }\n title={this.#componentLocale.deleteConversationAriaLabel}\n >\n <ch-image class=\"icon-md\" src={DELETE_ICON}></ch-image>\n {this.#componentLocale.clearConversationLabel}\n </button>\n )}\n </ch-action-menu-render>\n )}\n </header>\n )}\n <section class=\"ch-chat-container\">\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=\"footer elevation-1\">footer</footer> */}\n </section>\n </Host>\n );\n }\n}\n",":host {\n block-size: 100%;\n}\n\n$sharedPadding: var(--mer-spacing--md);\n\n.welcome-container {\n --opacity: 1;\n --translate-y: 0;\n opacity: var(--opacity);\n transform: translateY(var(--translate-y));\n transition: all var(--transition-duration);\n display: flex;\n block-size: 100%;\n grid-template-rows: max-content max-content;\n flex-direction: column;\n justify-content: space-between;\n background-repeat: no-repeat;\n background-size: cover;\n background-size: contain;\n\n &.hidden {\n --opacity: 0;\n --translate-y: 4px;\n }\n}\n\n%absolute-centered {\n position: absolute;\n inset-inline-start: 50%;\n inset-block-start: 50%;\n transform: translate(-50%, -50%);\n}\n\n.header {\n --opacity: 0;\n --translate-y: 3px;\n transition: all var(--transition-duration) var(--transition-delay)\n cubic-bezier(0.4, 0, 0.2, 1);\n transform: translateY(var(--translate-y));\n opacity: var(--opacity);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n align-items: center;\n padding: $sharedPadding;\n\n &--visible {\n --opacity: 1;\n --translate-y: 0;\n }\n\n &__circle {\n $circleSize: 55px;\n inline-size: $circleSize;\n block-size: $circleSize;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n margin-block-end: -6px;\n }\n\n &__title {\n display: grid;\n text-align: center;\n margin: 0;\n text-align: center;\n white-space: pre-line;\n line-height: 1.3;\n font-weight: 600;\n font-size: var(--font-size-header-h3);\n }\n\n &__greeting {\n line-height: 1.4;\n text-align: center;\n font-weight: 300;\n }\n}\n\n.suggested-prompts {\n --opacity: 1;\n opacity: var(--opacity);\n transition: opacity var(--transition-duration);\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--md);\n list-style: none;\n margin: 0;\n padding: $sharedPadding;\n\n &.hidden {\n --opacity: 0;\n }\n\n &__item {\n }\n\n &__button {\n opacity: 0;\n transform: translateX(-3px);\n animation: fadeInSuggestedPromptButton var(--mer-timing--regular) ease\n forwards;\n animation-delay: var(--delay, 0s);\n\n border: 0;\n padding: var(--mer-spacing--sm);\n border-radius: 30px;\n font-size: 14px; // TODO : Use a token when available\n font-style: oblique;\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n background-color: #22334a; // TODO : Use a token when available\n font-weight: 100;\n\n &:hover {\n background-color: #1a2b42;\n }\n }\n}\n\n@keyframes fadeInSuggestedPromptButton {\n from {\n opacity: 0;\n transform: translateX(-3px);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n","/* eslint-disable @stencil-community/strict-mutable */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath,\n Method\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../../common/locale\";\n\nconst HEADER_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/chat-welcome/images/header-illustration.svg`\n);\nconst AI_AVATAR = getAssetPath(\n `./gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg`\n);\n\nconst HEADER_TRANSITION_DELAY: number = 100;\nconst HEADER_TRANSITION_DURATION: number = 500;\nconst SUGGESTED_PROMPT_BUTTON_INTERVAL: number = 200;\nconst SUGGESTED_PROMPT_BUTTONS_DELAY: number = 500;\nconst WELCOME_EXIT_DURATION: number = 100;\n\nconst AI_ICON = getIconPath({\n category: \"system\",\n name: \"assistant\",\n colorType: \"primary\"\n});\nconst ARROW_RIGHT_ICON = getIconPath({\n category: \"system\",\n name: \"arrow-right\",\n colorType: \"primary\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/chat\",\n \"components/icon\",\n \"utils/typography\"\n];\n\n@Component({\n tag: \"gx-ide-chat-welcome\",\n styleUrl: \"chat-welcome.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/chat-welcome\"]\n})\nexport class GxIdeChatWelcome {\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeChatWelcomeElement;\n\n /**\n * When true, it will display the welcome elements (title, greeting, and buttons)\n */\n @State() showHeader: boolean = false;\n\n /**\n * When true, it will display the suggested prompts buttons\n */\n @State() showSuggestedPrompts: boolean = false;\n\n /**\n * When true, it will hide entire welcome layout\n */\n @State() hideWelcome: boolean = false;\n\n /**\n * The welcome title, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) welcomeTitle?: string;\n\n /**\n * The welcome greeting description, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) welcomeGreeting?: string;\n\n /**\n * The suggested prompts, if not provided, the default title will be used.\n */\n @Prop({ mutable: true }) suggestedPrompts?: string[];\n\n /**\n * Fired when the user clicks on a suggested prompt button\n */\n @Prop() readonly suggestedPrompRequestedCallback: (\n prompt: string\n ) => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // Set defaults\n if (!this.welcomeTitle) {\n this.welcomeTitle = this.#componentLocale.welcomeTitle;\n }\n if (!this.welcomeGreeting) {\n this.welcomeGreeting = this.#componentLocale.welcomeGreeting;\n }\n if (!this.suggestedPrompts) {\n this.suggestedPrompts = this.#componentLocale.suggestedPrompts;\n }\n }\n\n componentDidRender() {\n if (!this.hideWelcome) {\n this.#animationEntrance();\n }\n }\n\n /**\n * It will exit the wellcome screen and remove it from the dom.\n */\n @Method()\n async exitWelcome() {\n this.#animationExit();\n }\n\n #animationEntrance = () => {\n setTimeout(() => {\n this.showHeader = true;\n setTimeout(() => {\n this.showSuggestedPrompts = true;\n }, SUGGESTED_PROMPT_BUTTONS_DELAY);\n }, HEADER_TRANSITION_DELAY + HEADER_TRANSITION_DURATION);\n };\n\n #sendPromptToChat = async (e: MouseEvent) => {\n const prompt = (e.currentTarget as HTMLButtonElement).dataset[\"prommpt\"];\n await this.#animationExit();\n this.suggestedPrompRequestedCallback(prompt);\n };\n\n #animationExit = async (): Promise<void> => {\n this.hideWelcome = true;\n await new Promise(resolve => setTimeout(resolve, WELCOME_EXIT_DURATION));\n };\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div\n class={{ \"welcome-container\": true, \"hidden\": this.hideWelcome }}\n style={{\n \"backgroundImage\": `url(${HEADER_ILLUSTRATION})`,\n \"--transition-duration\": `${WELCOME_EXIT_DURATION}ms`\n }}\n >\n <header\n class={{ \"header\": true, \"header--visible\": this.showHeader }}\n style={{\n \"--transition-delay\": `${HEADER_TRANSITION_DELAY}ms`,\n \"--transition-duration\": `${HEADER_TRANSITION_DURATION}ms`\n }}\n >\n <span\n class=\"header__circle\"\n style={{ backgroundImage: `url(${AI_AVATAR})` }}\n ></span>\n <h2 class=\"header__title\">{this.welcomeTitle}</h2>\n <p class=\"header__greeting\">{this.welcomeGreeting}</p>\n </header>\n\n {this.suggestedPrompts && this.showSuggestedPrompts && (\n <ul class=\"suggested-prompts\">\n {this.suggestedPrompts.map((prompt, i) => (\n <li class=\"suggested-prompts__item\">\n <button\n class={{\n \"suggested-prompts__button\": true\n }}\n onClick={this.#sendPromptToChat}\n style={{\n \"--delay\": `${SUGGESTED_PROMPT_BUTTON_INTERVAL * i}ms`\n }}\n data-prommpt={prompt}\n >\n <ch-image src={AI_ICON} class=\"icon-md\"></ch-image>\n {prompt}\n <ch-image src={ARROW_RIGHT_ICON} class=\"icon-md\"></ch-image>\n </button>\n </li>\n ))}\n </ul>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-e227aefb.js');
|
|
6
|
-
const
|
|
7
|
-
require('./MERCURY_ASSETS-6bbcc011.js');
|
|
6
|
+
const MERCURY_ASSETS = require('./MERCURY_ASSETS-972bf7f4.js');
|
|
8
7
|
const config = require('./config-6a768514.js');
|
|
9
8
|
const formValidation = require('./form-validation-178cf461.js');
|
|
10
9
|
const locale = require('./locale-ff30a5f3.js');
|
|
@@ -53,12 +52,12 @@ const CSS_BUNDLES = [
|
|
|
53
52
|
const GxIdeCreateKbFromServer = class {
|
|
54
53
|
constructor(hostRef) {
|
|
55
54
|
index.registerInstance(this, hostRef);
|
|
56
|
-
_GxIdeCreateKbFromServer_chSearchIcon.set(this,
|
|
55
|
+
_GxIdeCreateKbFromServer_chSearchIcon.set(this, MERCURY_ASSETS.getIconPath({
|
|
57
56
|
category: "system",
|
|
58
57
|
name: "search",
|
|
59
58
|
colorType: "on-surface"
|
|
60
59
|
}));
|
|
61
|
-
_GxIdeCreateKbFromServer_showMoreIcon.set(this,
|
|
60
|
+
_GxIdeCreateKbFromServer_showMoreIcon.set(this, MERCURY_ASSETS.getIconPath({
|
|
62
61
|
category: "gemini-tools",
|
|
63
62
|
name: "show-more-horizontal",
|
|
64
63
|
colorType: "on-elevation"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-create-kb-from-server.entry.cjs.js","mappings":";;;;;;;;;;;AAGO,MAAM,4BAA4B,GAAG,CAC1C,OAAiB;IAEjB,MAAM,YAAY,GAA0B,EAAE,CAAC;IAC/C,OAAO,CAAC,OAAO,CAAC,EAAE;QAChB,YAAY,CAAC,IAAI,CAAC;YAChB,EAAE,EAAE,EAAE,CAAC,EAAE;YACT,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,EAAE,CAAC,IAAI;SACjB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC;;ACfD,MAAM,qBAAqB,GAAG,myBAAmyB;;;;;;;;;;;;;;;;;;;ACiCj0B,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;CACtB,CAAC;MAQW,uBAAuB;;;QAClC,gDAAgBA,yBAAW,CAAC;YAC1B,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,YAAY;SACxB,CAAC,EAAC;QAEH,gDAAgBA,yBAAW,CAAC;YAC1B,QAAQ,EAAE,cAAc;YACxB,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,cAAc;SAC1B,CAAC,EAAC;QAEH,kDAAyC;YACvC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE;YAC5C,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE;YACzC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE;SAC/C,EAAC;QAIF,4DAAuB;QACvB,sDAA6C,EAAE,EAAC;QAChD,8CAA2B,EAAE,EAAC;QAC9B,gDAAgBC,kBAAY,CAC1B,sDAAsD,CACvD,EAAC;QACF,wDAAsB;QACtB,6DAAsC,KAAK,EAAC;QAE5C,uDAAiC;QACjC,iEAAsD;QAItD,yDAAmC;QAsFnC,iDAAiB;YACf,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB,EAAC;QAEF,2DAA2B;YACzB,IAAI,CAAC,wBAAwB,CAAC;gBAC5B,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB;gBAC1D,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;gBACxC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;gBACtC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY;aAC/C,CAAC,CAAC;SACJ,EAAC;QAEF,iDAAiB;YACf,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;gBACzC,uBAAA,IAAI,uCAAe,EAAE,MAAA,CAAC;aACvB;YACD,IAAI,CAAC,gBAAgB,CAAC;gBACpB,UAAU,EAAE,uBAAA,IAAI,6CAAc;gBAC9B,eAAe,EAAE,IAAI,CAAC,mBAAmB;gBACzC,WAAW,EAAE,IAAI,CAAC,qBAAqB;gBACvC,WAAW,EAAE,uBAAA,IAAI,2CAAY;aAC9B,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAkC;gBACzC,IAAI,CAAC,mBAAmB,GAAGC,+BAAgB,CACzC,gBAAgB,EAChB,IAAI,CAAC,mBAAmB,CACzB,CAAC;aACH,CAAC,CAAC;SACJ,EAAC;;;QAIF,yDAAyB,CACvB,gBAA6B;;YAE7B,OAAA,CAAA,MAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,GAAG,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,EAAE,CAAC,0CAAE,QAAQ;iBAC7D,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,0CAAE,OAAO,CAAA,KACxDC,wBACE,KAAK,EAAC,SAAS,EACf,aAAa,EAAE,gBAAgD,EAC/D,UAAU,EAAEC,aAAM,CAAC,eAAe,CAAC,UAAU,EAC7C,WAAW,EAAEA,aAAM,CAAC,eAAe,CAAC,WAAW,EAC/C,KAAK,EAAEA,aAAM,CAAC,eAAe,CAAC,KAAK,IAElC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,CAC/C,CACd,CAAA;SAAA,EAAC;QAEJ,6DAA6B,CAC3B,KAA6C;YAE7C,IAAI,CAAC,WAAW,GAAI,KAAK,CAAC,MAAiB,CAAC,WAAW,EAAE,CAAC;YAC1D,IAAI,CAAC,0BAA0B,GAAG,uBAAA,IAAI,mDAAoB,CAAC,MAAM,CAC/D,CAAC,IAA8B,KAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CACxD,CAAC;SACH,EAAC;QAEF,wCAAQ;YACN,MAAM,IAAI,CAAC,sBAAsB,CAAC;gBAChC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,kBAAkB;gBAC1D,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS;gBACxC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ;gBACtC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,YAAY;aAC/C,CAAC,CAAC,IAAI,CAAC,MAAM;gBACZ,uBAAA,IAAI,+CAAuB,4BAA4B,CAAC,MAAM,CAAC,MAAA,CAAC;gBAChE,IAAI,CAAC,0BAA0B,GAAG,uBAAA,IAAI,mDAAoB,CAAC;gBAC3D,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;aACvB,CAAC,CAAC;SACJ,EAAC;QAEF,iEAAiC;;YAE/B,MAAM,mBAAmB,GAAkB,CAAC,uBAAA,IAAI,8CAAe,CAAC,CAAC;YACjE,mBAAmB,CAAC,OAAO,CAAC,kBAAkB;gBAC5C,IAAI,kBAAkB,CAAC,EAAE,EAAE;oBACzB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,EAAE;wBAClD,SAAS,EAAE,kBAAkB;wBAC7B,QAAQ,EAAE,KAAK;wBACf,OAAO,EAAE,SAAS;qBACnB,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;SACJ,EAAC;QAEF,2DAA2B,CACzB,KAA6C;YAE7C,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,MAAgB,CAAC;YACpD,uBAAA,IAAI,sDAA8B,IAAI,MAAA,CAAC;SACxC,EAAC;QAEF,0DAA0B;YACxB,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBACjC,MAAM,IAAI,CAAC,wBAAwB,CAAC,uBAAA,IAAI,6CAAc,CAAC,CAAC,IAAI,CAAC,MAAM;oBACjE,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,EAAE;wBAClB,uBAAA,IAAI,uCAAe,MAAM,CAAC,GAAG,CAAC,SAAS,KAAK;4BAC1C,EAAE,EAAE,SAAS,CAAC,EAAE;4BAChB,IAAI,EAAE,SAAS,CAAC,IAAI;yBACrB,CAAC,CAAC,MAAA,CAAC;wBAEJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,uBAAA,IAAI,2CAAY,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE;4BACvD,IAAI,CAAC,qBAAqB,GAAG,uBAAA,IAAI,6CAAc,CAAC;4BAChD,IAAI,CAAC,kBAAkB;gCACrB,uBAAA,IAAI,iDAAkB,CAAC,EAAE,CAAC,mBAAmB,CAAC;yBACjD;6BAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BAC5B,IAAI,CAAC,qBAAqB,GAAG,uBAAA,IAAI,6CAAc,CAAC;4BAChD,IAAI,CAAC,kBAAkB,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IACnD,uBAAA,IAAI,iDAAkB,CAAC,EAAE,CAAC,yBAC5B,EAAE,CAAC;yBACJ;6BAAM;4BACL,IAAI,CAAC,qBAAqB,GAAG,GAAG,uBAAA,IAAI,6CAAc,IAChD,uBAAA,IAAI,2CAAY,CAAC,CAAC,CAAC,CAAC,IACtB,EAAE,CAAC;4BACH,IAAI,CAAC,kBAAkB,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IACzC,uBAAA,IAAI,iDAAkB,CAAC,EAAE,CAAC,4BAC5B,EAAE,CAAC;yBACJ;qBACF;iBACF,CAAC,CAAC;aACJ;SACF,EAAC;QAEF,yDAAyB,CACvB,KAAmE;;YAEnE,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,IAAgC,CAAC;YAC/D,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,IAAI,CAAC,0BAA0B,GAAG,KAAK,CAAC;gBACxC,uBAAA,IAAI,yCAAiB,SAAS,MAAA,CAAC;gBAC/B,OAAO;aACR;YACD,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACvC,uBAAA,IAAI,yCAAiB,IAAI,CAAC,EAAE,MAAA,CAAC;YAC7B,IAAI,uBAAA,IAAI,0DAA2B,EAAE;gBACnC,OAAO;aACR;YACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC;YAC1C,IAAI,IAAI,CAAC,mBAAmB,KAAK,QAAQ,EAAE;gBACzC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;gBAC7B,uBAAA,IAAI,uCAAe,EAAE,MAAA,CAAC;aACvB;SACF,EAAC;QAEF,0DAA0B,CAAC,KAA0B;YACnD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC,MAAuB,CAAC;SAC1D,EAAC;QAEF,gDAAgB;YACd,QACED,oBAAQ,KAAK,EAAC,8EAA8E,IAC1FA,iBAAK,KAAK,EAAC,gBAAgB,IACzBA;;gBAEE,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,uBAAA,IAAI,8CAAe,EAC5B,IAAI,EAAC,sBAAsB;eAE1B,uBAAA,IAAI,iDAAkB,CAAC,MAAM,CAAC,MAAM,CAC9B,EAETA;;gBAEE,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,IAAI,CAAC,0BAA0B,IAAI,uBAAA,IAAI,8CAAe,EAC/D,QAAQ,EAAE,CAAC,IAAI,CAAC,0BAA0B,EAC1C,IAAI,EAAC,yBAAyB;eAE7B,uBAAA,IAAI,iDAAkB,CAAC,MAAM,CAAC,QAAQ,CAChC,CACL,CACC,EACT;SACH,EAAC;0CA9P6C,KAAK;qCAKX,EAAE;2BAKZ,EAAE;0CAK4B,EAAE;mCAEhC,IAAI,GAAG,EAA6B;;kCAU7B,EAAE;;;;;;;;IAwCxC,gBAAgB;QACb,uBAAA,IAAI,4CAA6B,CAAC,KAAK,EAAE,CAAC;QAE3C,IAAI,CAAC,mBAAmB,GAAG,uBAAA,IAAI,sDAAuB;aACnD,KAAsB,CAAC;QAE1B,uBAAA,IAAI,8DAA+B,MAAnC,IAAI,CAAiC,CAAC;KACvC;IAED,MAAM,iBAAiB;QACrB,uBAAA,IAAI,6CAAqB,MAAME,aAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;QACnE,MAAM,uBAAA,IAAI,qCAAM,MAAV,IAAI,CAAQ,CAAC;KACpB;IAiLD,MAAM;QACJ,QACEF,QAACG,UAAI,IAAC,KAAK,EAAC,QAAQ,IAClBH,sBAAU,KAAK,EAAE,WAAW,GAAa,EACzCA,0BACE,GAAG,EAAE,uBAAA,IAAI,6CAAc,EACvB,GAAG,EAAE,CAAC,EAA0B,MAC7B,IAAI,CAAC,aAAa,GAAG,EAA4B,CAAC,GAEvC,EAEhBA,qBAAS,KAAK,EAAC,SAAS,IACtBA,oBAAQ,KAAK,EAAC,2FAA2F,IACvGA,iBAAK,KAAK,EAAC,mBAAmB,IAC5BA,mBAAO,KAAK,EAAC,OAAO,IACjB,uBAAA,IAAI,iDAAkB,CAAC,MAAM,CAAC,SAAS,CAClC,EACRA,mBAAI,IAAI,CAAC,cAAc,CAAC,SAAS,CAAK,CAClC,EAENA,iBAAK,KAAK,EAAC,mBAAmB,IAC5BA,mBAAO,KAAK,EAAC,OAAO,IAAE,uBAAA,IAAI,iDAAkB,CAAC,MAAM,CAAC,IAAI,CAAS,EACjEA,mBAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAK,CACjC,EAENA,oBACE,KAAK,EAAC,+BAA+B,EACrC,OAAO,EAAE,uBAAA,IAAI,wDAAyB,IAErC,uBAAA,IAAI,iDAAkB,CAAC,MAAM,CAAC,MAAM,CAC9B,CACF,EAETA,qBAAS,KAAK,EAAC,+BAA+B,IAC5CA,qBACE,KAAK,EAAC,kBAAkB,EACxB,EAAE,EAAC,eAAe,EAClB,WAAW,EAAE,uBAAA,IAAI,6CAAc,EAC/B,OAAO,EAAE,uBAAA,IAAI,0DAA2B,EACxC,WAAW,EAAE,uBAAA,IAAI,iDAAkB,CAAC,EAAE,CAAC,oBAAoB,EAC3D,GAAG,EAAE,EAAE,KAAK,uBAAA,IAAI,wCAAgB,EAAuB,MAAA,CAAC,GAC/C,EAEXA,mCACE,SAAS,EAAC,QAAQ,EAClB,KAAK,EAAC,UAAU,EAChB,qBAAqB,EAAE,uBAAA,IAAI,sDAAuB,EAClD,KAAK,EAAE,IAAI,CAAC,0BAA0B,GACf,EAEzBA,iBAAK,KAAK,EAAC,gCAAgC,IACzCA,mCACE,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,uBAAA,IAAI,+CAAgB,EAC3B,QAAQ,EAAE,uBAAA,IAAI,uDAAwB,EACtC,KAAK,EAAE,uBAAA,IAAI,+CAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,EACpC,GAAG,EAAE,EAAE,KACJ,uBAAA,IAAI,kDACH,EAAmC,MAAA,CAAC,GAEjB,EAExB,IAAI,CAAC,mBAAmB,KAAK,QAAQ,KACpCA,iBAAK,KAAK,EAAC,sCAAsC,IAC/CA,iBAAK,KAAK,EAAC,mBAAmB,IAC5BA,mBAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,cAAc,IACxC,uBAAA,IAAI,iDAAkB,CAAC,EAAE,CAAC,aAAa,CAClC,EACRA,iBAAK,KAAK,EAAC,2BAA2B,IACpCA,qBACE,KAAK,EAAC,OAAO,EACb,QAAQ,QACR,WAAW,EACT,IAAI,CAAC,0BAA0B;kBAC3B,uBAAA,IAAI,iDAAkB,CAAC,EAAE,CAAC,mBAAmB;kBAC7C,uBAAA,IAAI,iDAAkB,CAAC,EAAE;qBACtB,2BAA2B,EAEpC,KAAK,EAAE,IAAI,CAAC,kBAAkB,GACrB,EACXA,oBACE,KAAK,EAAC,kCAAkC,EACxC,OAAO,EAAE,uBAAA,IAAI,uDAAwB,EACrC,QAAQ,EAAE,CAAC,IAAI,CAAC,0BAA0B,IAE1CA,sBACE,GAAG,EAAE,uBAAA,IAAI,6CAAc,EACvB,KAAK,EAAC,SAAS,GACL,CACL,CACL,CACF,CACF,CACP,CACG,EAENA,iBAAK,KAAK,EAAC,mBAAmB,IAC5BA,mBAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,aAAa,IACvC,uBAAA,IAAI,iDAAkB,CAAC,EAAE,CAAC,gBAAgB,CACrC,EACRA;;YAEE,KAAK,EAAC,OAAO,EACb,EAAE,EAAC,eAAe,EAClB,KAAK,EAAE,IAAI,CAAC,qBAAqB,EACjC,OAAO,EAAE,uBAAA,IAAI,wDAAyB,EACtC,WAAW,EAAE,uBAAA,IAAI,iDAAkB,CAAC,EAAE,CAAC,sBAAsB,EAC7D,GAAG,EAAE,CAAC,EAAqB,MACxB,uBAAA,IAAI,0CAAkB,EAAuB,MAAA,CAAC;UAExC,EACV,uBAAA,IAAI,sDAAuB,MAA3B,IAAI,EAAwB,uBAAA,IAAI,8CAAe,CAAC,CAC7C,CACE,EAET,uBAAA,IAAI,6CAAc,MAAlB,IAAI,CAAgB,CACb,CACL,EACP;KACH;;;;;;;;;","names":["getIconPath","getAssetPath","validateControls","h","config","Locale","Host"],"sources":["src/components/team-dev/create-kb-from-server/helpers.ts","src/components/team-dev/create-kb-from-server/create-kb-from-server.scss?tag=gx-ide-create-kb-from-server&encapsulation=shadow","src/components/team-dev/create-kb-from-server/create-kb-from-server.tsx"],"sourcesContent":["import { ActionListItemModel } from \"@genexus/chameleon-controls-library\";\nimport { KBData } from \"./create-kb-from-server\";\n\nexport const mapKbsModelToActionListModel = (\n kbsData: KBData[]\n): ActionListItemModel[] => {\n const listBoxItems: ActionListItemModel[] = [];\n kbsData.forEach(kb => {\n listBoxItems.push({\n id: kb.id,\n type: \"actionable\",\n caption: kb.name\n });\n });\n return listBoxItems;\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// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n }\n\n .button-icon-only {\n border-color: var(--mer-color__neutral-gray--500);\n border-width: var(--mer-border__width--sm);\n border-radius: var(--mer-border__radius--sm);\n }\n\n .button-icon-only:hover {\n border-color: var(--mer-color__neutral-gray--100);\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { mapKbsModelToActionListModel } from \"./helpers\";\nimport {\n ActionListItemActionable,\n ActionListItemModel,\n ActionListItemModelExtended,\n ChActionListRenderCustomEvent,\n ChEditCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-create-kb-from-server\",\n styleUrl: \"create-kb-from-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/create-kb-from-server\"]\n})\nexport class GxIdeCreateKbFromServer {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #showMoreIcon = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" },\n { value: \"Select\", caption: \"Select Version\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n #kbsActionListModel: ActionListItemModel[] = [];\n #kbVersions: KBVersion[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n #selectedKbId: string;\n #kbNameAlreadyEditedByUser: boolean = false;\n\n #searchKbsEl!: HTMLChEditElement;\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeCreateKbFromServerElement;\n\n #localKBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n /**\n * The current kbn name value.\n */\n @State() localKbNameInputValue: string = \"\";\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * KBs filtered\n */\n @State() kbsFilteredActionListModel: ActionListItemModel[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Create KB' button is pressed. Receives the user's parameter selection to create the remote KB locally and ends the dialog.\n */\n @Prop() readonly createKBCallback!: (\n kbInfo: KnowledgeBaseInfo\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback that must be invoked when invoking the dialog\n */\n @Prop() readonly getGXserverKBsCallback!: (\n data: GXServerConnectionData\n ) => Promise<KBData[]>;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n componentDidLoad() {\n (this.#searchKbsEl as HTMLElement).focus();\n\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n\n this.#initializeValidatableControls();\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n await this.#init();\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #createHandler = async (): Promise<void> => {\n if (this.versionSelectedType !== \"Select\") {\n this.#kbVersions = [];\n }\n this.createKBCallback({\n selectedKB: this.#selectedKbId,\n versionSelected: this.versionSelectedType,\n localKBName: this.localKbNameInputValue,\n versionList: this.#kbVersions\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.kbsFilteredActionListModel = this.#kbsActionListModel.filter(\n (item: ActionListItemActionable) =>\n item.caption.toLowerCase().includes(this.filterValue)\n );\n };\n\n #init = async () => {\n await this.getGXserverKBsCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n }).then(result => {\n this.#kbsActionListModel = mapKbsModelToActionListModel(result);\n this.kbsFilteredActionListModel = this.#kbsActionListModel;\n this.filterValue = \"\";\n });\n };\n\n #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#localKBNameEl];\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 #inputLocalKbNameHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.localKbNameInputValue = event.detail as string;\n this.#kbNameAlreadyEditedByUser = true;\n };\n\n #selectedVersionHandler = async () => {\n if (this.selectKBVersionsCallback) {\n await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n if (result?.length) {\n this.#kbVersions = result.map(kbVersion => ({\n id: kbVersion.id,\n name: kbVersion.name\n }));\n\n if (result.length === 1 && this.#kbVersions[0].id === 0) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput =\n this.#_componentLocale.kb.versionsPlaceholder;\n } else if (result.length > 1) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput = `${result.length.toString()} ${\n this.#_componentLocale.kb.versionSelectedFieldValue\n }`;\n } else {\n this.localKbNameInputValue = `${this.#selectedKbId}_${\n this.#kbVersions[0].name\n }`;\n this.versionsValueInput = `${result[0].name} ${\n this.#_componentLocale.kb.oneVersionSelectedFieldValue\n }`;\n }\n }\n });\n }\n };\n\n #selectKbChangeHandler = (\n event: ChActionListRenderCustomEvent<ActionListItemModelExtended[]>\n ): void => {\n const item = event.detail[0]?.item as ActionListItemActionable;\n if (item === undefined) {\n this.enableSelectVersionsButton = false;\n this.#selectedKbId = undefined;\n return;\n }\n this.enableSelectVersionsButton = true;\n this.#selectedKbId = item.id;\n if (this.#kbNameAlreadyEditedByUser) {\n return;\n }\n this.localKbNameInputValue = item.caption;\n if (this.versionSelectedType === \"Select\") {\n this.versionsValueInput = \"\";\n this.#kbVersions = [];\n }\n };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n };\n\n #renderFooter = () => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // create kb button\n class=\"button-primary\"\n onClick={this.enableSelectVersionsButton && this.#createHandler}\n disabled={!this.enableSelectVersionsButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.createKb}\n </button>\n </div>\n </footer>\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\n <section class=\"section\">\n <header class=\"header control-header-with-border space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n\n <section class=\"main field-group spacing-body\">\n <ch-edit\n class=\"input search-kbs\"\n id=\"local-kb-name\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={this.#_componentLocale.kb.searchKbsPlaceholder}\n ref={el => (this.#searchKbsEl = el as HTMLChEditElement)}\n ></ch-edit>\n\n <ch-action-list-render\n selection=\"single\"\n class=\"list-box\"\n onSelectedItemsChange={this.#selectKbChangeHandler}\n model={this.kbsFilteredActionListModel}\n ></ch-action-list-render>\n\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={el =>\n (this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-sm\"\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"localKbName\">\n {this.#_componentLocale.kb.localKbNameLabel}\n </label>\n <ch-edit\n // local kb name\n class=\"input\"\n id=\"local-kb-name\"\n value={this.localKbNameInputValue}\n onInput={this.#inputLocalKbNameHandler}\n placeholder={this.#_componentLocale.kb.localKbNamePlaceholder}\n ref={(el: HTMLChEditElement) =>\n (this.#localKBNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#localKBNameEl)}\n </div>\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type KBVersion = {\n id: number;\n name: string;\n type?: VersionType;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type KnowledgeBaseInfo = {\n selectedKB: string;\n versionSelected: VersionOption;\n localKBName: string;\n versionList: KBVersion[];\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type VersionType = \"Branch\" | \"Frozen\";\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-create-kb-from-server.entry.cjs.js","mappings":"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","names":["getIconPath","getAssetPath","validateControls","h","config","Locale","Host"],"sources":["src/components/team-dev/create-kb-from-server/helpers.ts","src/components/team-dev/create-kb-from-server/create-kb-from-server.scss?tag=gx-ide-create-kb-from-server&encapsulation=shadow","src/components/team-dev/create-kb-from-server/create-kb-from-server.tsx"],"sourcesContent":["import { ActionListItemModel } from \"@genexus/chameleon-controls-library\";\nimport { KBData } from \"./create-kb-from-server\";\n\nexport const mapKbsModelToActionListModel = (\n kbsData: KBData[]\n): ActionListItemModel[] => {\n const listBoxItems: ActionListItemModel[] = [];\n kbsData.forEach(kb => {\n listBoxItems.push({\n id: kb.id,\n type: \"actionable\",\n caption: kb.name\n });\n });\n return listBoxItems;\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// - - - - - - - - - - -\n// Header\n// - - - - - - - - - - -\n\nheader {\n display: grid;\n grid-template-rows: max-content;\n grid-template-columns: 1fr 1fr max-content;\n}\n\n.button-change {\n align-self: center;\n justify-self: end;\n}\n\n// - - - - - - - - - - -\n// Main\n// - - - - - - - - - - -\n\n.main {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: max-content 1fr max-content max-content;\n}\n\n.search-kbs {\n inline-size: 50%;\n}\n\n.versions-container {\n grid-auto-rows: max-content;\n\n &__input {\n display: grid;\n grid-template-columns: 1fr max-content;\n gap: var(--mer-spacing--xs);\n }\n\n .button-icon-only {\n border-color: var(--mer-color__neutral-gray--500);\n border-width: var(--mer-border__width--sm);\n border-radius: var(--mer-border__radius--sm);\n }\n\n .button-icon-only:hover {\n border-color: var(--mer-color__neutral-gray--100);\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport { config } from \"../../../common/config\";\nimport { GXServerConnectionData } from \"../connect-gx-server/connect-gx-server\";\nimport { FormSubmitResult } from \"../../../common/types\";\nimport {\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { mapKbsModelToActionListModel } from \"./helpers\";\nimport {\n ActionListItemActionable,\n ActionListItemModel,\n ActionListItemModelExtended,\n ChActionListRenderCustomEvent,\n ChEditCustomEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/list-box\",\n \"components/tooltip\",\n \"chameleon/scrollbar\"\n];\n\n@Component({\n tag: \"gx-ide-create-kb-from-server\",\n styleUrl: \"create-kb-from-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/create-kb-from-server\"]\n})\nexport class GxIdeCreateKbFromServer {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #showMoreIcon = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"on-elevation\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"Trunk\", caption: \"Trunk Version\" },\n { value: \"All\", caption: \"All Versions\" },\n { value: \"Select\", caption: \"Select Version\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n #kbsActionListModel: ActionListItemModel[] = [];\n #kbVersions: KBVersion[] = [];\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/create-kb-from-server/shortcuts.json`\n );\n #selectedKbId: string;\n #kbNameAlreadyEditedByUser: boolean = false;\n\n #searchKbsEl!: HTMLChEditElement;\n #versionSelectedTypeEl: HTMLChRadioGroupRenderElement;\n\n @Element() el: HTMLGxIdeCreateKbFromServerElement;\n\n #localKBNameEl!: HTMLChEditElement;\n\n /**\n * State to enable/disable the select versions button\n */\n @State() enableSelectVersionsButton: boolean = false;\n\n /**\n * The current kbn name value.\n */\n @State() localKbNameInputValue: string = \"\";\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * KBs filtered\n */\n @State() kbsFilteredActionListModel: ActionListItemModel[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The version selected type\n */\n @State() versionSelectedType: VersionOption;\n\n /**\n * String value to show the number of versions selected (\"N versions selected\")\n */\n @State() versionsValueInput: string = \"\";\n\n /**\n * Set of data required when executing any of the callbacks that require a connection to the server.\n */\n @Prop() readonly connectionData: GXServerConnectionData;\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * The host reopens the gx-ide-connect-server login modal with the previous data, and closes the current modal\n */\n @Prop() readonly changeConnectionCallback: (\n data: GXServerConnectionData\n ) => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Create KB' button is pressed. Receives the user's parameter selection to create the remote KB locally and ends the dialog.\n */\n @Prop() readonly createKBCallback!: (\n kbInfo: KnowledgeBaseInfo\n ) => Promise<FormSubmitResult>;\n\n /**\n * Callback that must be invoked when invoking the dialog\n */\n @Prop() readonly getGXserverKBsCallback!: (\n data: GXServerConnectionData\n ) => Promise<KBData[]>;\n\n /**\n * Callback invoked by pressing the ellipsis in the version selector. Receives the KB selected by the user, and displays the version selector dialog. Returns a list of versions chosen by the user.\n */\n @Prop() readonly selectKBVersionsCallback: (\n selectedKB: string\n ) => Promise<KBVersion[]>;\n\n componentDidLoad() {\n (this.#searchKbsEl as HTMLElement).focus();\n\n this.versionSelectedType = this.#versionSelectedTypeEl\n .value as VersionOption;\n\n this.#initializeValidatableControls();\n }\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n await this.#init();\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #changeConnectionHandler = async (): Promise<void> => {\n this.changeConnectionCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n });\n };\n\n #createHandler = async (): Promise<void> => {\n if (this.versionSelectedType !== \"Select\") {\n this.#kbVersions = [];\n }\n this.createKBCallback({\n selectedKB: this.#selectedKbId,\n versionSelected: this.versionSelectedType,\n localKBName: this.localKbNameInputValue,\n versionList: this.#kbVersions\n }).then((formSubmitResult: FormSubmitResult) => {\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n });\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.kbsFilteredActionListModel = this.#kbsActionListModel.filter(\n (item: ActionListItemActionable) =>\n item.caption.toLowerCase().includes(this.filterValue)\n );\n };\n\n #init = async () => {\n await this.getGXserverKBsCallback({\n authenticationType: this.connectionData.authenticationType,\n serverUrl: this.connectionData.serverUrl,\n userName: this.connectionData.userName,\n userPassword: this.connectionData.userPassword\n }).then(result => {\n this.#kbsActionListModel = mapKbsModelToActionListModel(result);\n this.kbsFilteredActionListModel = this.#kbsActionListModel;\n this.filterValue = \"\";\n });\n };\n\n #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [this.#localKBNameEl];\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 #inputLocalKbNameHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.localKbNameInputValue = event.detail as string;\n this.#kbNameAlreadyEditedByUser = true;\n };\n\n #selectedVersionHandler = async () => {\n if (this.selectKBVersionsCallback) {\n await this.selectKBVersionsCallback(this.#selectedKbId).then(result => {\n if (result?.length) {\n this.#kbVersions = result.map(kbVersion => ({\n id: kbVersion.id,\n name: kbVersion.name\n }));\n\n if (result.length === 1 && this.#kbVersions[0].id === 0) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput =\n this.#_componentLocale.kb.versionsPlaceholder;\n } else if (result.length > 1) {\n this.localKbNameInputValue = this.#selectedKbId;\n this.versionsValueInput = `${result.length.toString()} ${\n this.#_componentLocale.kb.versionSelectedFieldValue\n }`;\n } else {\n this.localKbNameInputValue = `${this.#selectedKbId}_${\n this.#kbVersions[0].name\n }`;\n this.versionsValueInput = `${result[0].name} ${\n this.#_componentLocale.kb.oneVersionSelectedFieldValue\n }`;\n }\n }\n });\n }\n };\n\n #selectKbChangeHandler = (\n event: ChActionListRenderCustomEvent<ActionListItemModelExtended[]>\n ): void => {\n const item = event.detail[0]?.item as ActionListItemActionable;\n if (item === undefined) {\n this.enableSelectVersionsButton = false;\n this.#selectedKbId = undefined;\n return;\n }\n this.enableSelectVersionsButton = true;\n this.#selectedKbId = item.id;\n if (this.#kbNameAlreadyEditedByUser) {\n return;\n }\n this.localKbNameInputValue = item.caption;\n if (this.versionSelectedType === \"Select\") {\n this.versionsValueInput = \"\";\n this.#kbVersions = [];\n }\n };\n\n #versionsChangedHandler = (event: CustomEvent<string>) => {\n this.versionSelectedType = event.detail as VersionOption;\n };\n\n #renderFooter = () => {\n return (\n <footer class=\"footer control-footer-with-border spacing-body-inline spacing-body-block-end\">\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n part=\"button button-cancel\"\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // create kb button\n class=\"button-primary\"\n onClick={this.enableSelectVersionsButton && this.#createHandler}\n disabled={!this.enableSelectVersionsButton}\n part=\"button button-create-kb\"\n >\n {this.#_componentLocale.footer.createKb}\n </button>\n </div>\n </footer>\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\n <section class=\"section\">\n <header class=\"header control-header-with-border space-body spacing-body-inline spacing-body-block-start\">\n <div class=\"field field-block\">\n <label class=\"label\">\n {this.#_componentLocale.header.serverUrl}\n </label>\n <p>{this.connectionData.serverUrl}</p>\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\">{this.#_componentLocale.header.user}</label>\n <p>{this.connectionData.userName}</p>\n </div>\n\n <button\n class=\"button-tertiary button-change\"\n onClick={this.#changeConnectionHandler}\n >\n {this.#_componentLocale.header.change}\n </button>\n </header>\n\n <section class=\"main field-group spacing-body\">\n <ch-edit\n class=\"input search-kbs\"\n id=\"local-kb-name\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={this.#_componentLocale.kb.searchKbsPlaceholder}\n ref={el => (this.#searchKbsEl = el as HTMLChEditElement)}\n ></ch-edit>\n\n <ch-action-list-render\n selection=\"single\"\n class=\"list-box\"\n onSelectedItemsChange={this.#selectKbChangeHandler}\n model={this.kbsFilteredActionListModel}\n ></ch-action-list-render>\n\n <div class=\"versions-container field-group\">\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#versionsChangedHandler}\n value={this.#versionsSelect[0].value}\n ref={el =>\n (this.#versionSelectedTypeEl =\n el as HTMLChRadioGroupRenderElement)\n }\n ></ch-radio-group-render>\n\n {this.versionSelectedType === \"Select\" && (\n <div class=\"versions-container__item field-group\">\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"control-id-1\">\n {this.#_componentLocale.kb.versionsLabel}\n </label>\n <div class=\"versions-container__input\">\n <ch-edit\n class=\"input\"\n readonly\n placeholder={\n this.enableSelectVersionsButton\n ? this.#_componentLocale.kb.versionsPlaceholder\n : this.#_componentLocale.kb\n .versionsPlaceholderDisabled\n }\n value={this.versionsValueInput}\n ></ch-edit>\n <button\n class=\"button-tertiary button-icon-only\"\n onClick={this.#selectedVersionHandler}\n disabled={!this.enableSelectVersionsButton}\n >\n <ch-image\n src={this.#showMoreIcon}\n class=\"icon-sm\"\n ></ch-image>\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"localKbName\">\n {this.#_componentLocale.kb.localKbNameLabel}\n </label>\n <ch-edit\n // local kb name\n class=\"input\"\n id=\"local-kb-name\"\n value={this.localKbNameInputValue}\n onInput={this.#inputLocalKbNameHandler}\n placeholder={this.#_componentLocale.kb.localKbNamePlaceholder}\n ref={(el: HTMLChEditElement) =>\n (this.#localKBNameEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#localKBNameEl)}\n </div>\n </section>\n\n {this.#renderFooter()}\n </section>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n id: string;\n name: string;\n};\n\nexport type KBVersion = {\n id: number;\n name: string;\n type?: VersionType;\n};\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n kbs: KBData[];\n};\n\nexport type KnowledgeBaseInfo = {\n selectedKB: string;\n versionSelected: VersionOption;\n localKBName: string;\n versionList: KBVersion[];\n};\n\nexport type VersionOption = \"Trunk\" | \"All\" | \"Select\";\n\nexport type VersionType = \"Branch\" | \"Frozen\";\n"],"version":3}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-e227aefb.js');
|
|
6
|
-
const
|
|
7
|
-
require('./MERCURY_ASSETS-6bbcc011.js');
|
|
6
|
+
const MERCURY_ASSETS = require('./MERCURY_ASSETS-972bf7f4.js');
|
|
8
7
|
const locale = require('./locale-ff30a5f3.js');
|
|
9
8
|
|
|
10
9
|
/**
|
|
@@ -85,7 +84,7 @@ const CSS_BUNDLES = [
|
|
|
85
84
|
"utils/spacing",
|
|
86
85
|
"chameleon/scrollbar"
|
|
87
86
|
];
|
|
88
|
-
const CHEVRON_DOWN_ICON =
|
|
87
|
+
const CHEVRON_DOWN_ICON = MERCURY_ASSETS.getIconPath({
|
|
89
88
|
category: "navigation",
|
|
90
89
|
name: "chevron-down",
|
|
91
90
|
colorType: "neutral"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-current-user-info.entry.cjs.js","mappings":"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","names":["getIconPath","Locale","h","Host"],"sources":["src/components/current-user-info/helpers.tsx","src/components/current-user-info/current-user-info.scss?tag=gx-ide-current-user-info&encapsulation=shadow","src/components/current-user-info/current-user-info.tsx"],"sourcesContent":["/**\n * Returns initials from the first two words of a name. Returns \"X\" for invalid input.\n *\n * @param name - The full name string.\n * @returns Initials of the first two words, or \"X\" if invalid.\n *\n * Example:\n * getInitialsFromName(\"John Doe\") -> \"JD\"\n * getInitialsFromName(\"Jane\") -> \"J\"\n * getInitialsFromName(\"\") -> \"X\"\n */\nexport const getInitialsFromName = (name: string): string | null => {\n if (typeof name !== \"string\" || name.trim() === \"\") {\n return \"X\";\n }\n\n const nameData = name.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (nameData.length === 1) {\n return nameData[0][0].toUpperCase();\n } else {\n return `${nameData[0][0].toUpperCase()}${nameData[1][0].toUpperCase()}`;\n }\n};\n\n/**\n * Limits the full name to the first two words. Returns null for invalid input.\n *\n * @param fullName - The full name string to be limited.\n * @returns The first two words of the full name, or null if invalid.\n *\n * Example:\n * limitFullName(\"John Doe Smith\") -> \"John Doe\"\n * limitFullName(\"Jane\") -> \"Jane\"\n * limitFullName(\"\") -> null\n */\nexport const limitFullName = (fullName: string): string | null => {\n if (typeof fullName !== \"string\" || fullName.trim() === \"\") {\n return null;\n }\n\n const fullNameData = fullName.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (fullNameData.length === 1) {\n return fullNameData[0];\n } else {\n return `${fullNameData[0]} ${fullNameData[1]}`;\n }\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: inline-grid;\n justify-items: end;\n block-size: 100%;\n}\n\n.dropdown::part(expandable-button) {\n display: grid;\n grid-template-columns: max-content max-content max-content;\n align-items: center;\n gap: var(--mer-spacing--sm);\n block-size: auto;\n cursor: pointer;\n}\n.user-login {\n &__details {\n display: grid;\n grid-template-rows: max-content max-content;\n gap: var(--mer-spacing--3xs);\n justify-items: end;\n }\n &__name {\n font-weight: var(--mer-font__weight--medium);\n font-size: var(--mer-font__size--3xs);\n color: var(--mer-text__on-elevation);\n }\n &__organization {\n font-weight: var(--mer-font__weight--light);\n font-size: var(--mer-font__size--4xs);\n color: var(--mer-text__neutral);\n }\n &__name,\n &__organization {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-inline-size: 120px;\n display: inline-block;\n }\n &__avatar {\n font-size: 9px;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: var(--mer-spacing--lg);\n inline-size: var(--mer-spacing--lg);\n color: var(--mer-text__on-elevation);\n border-radius: 50%;\n background-color: var(--mer-color__tinted-primary--10);\n border: var(--mer-border__width--sm) solid var(--mer-color__primary--200);\n }\n\n &__footer {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n @include button-reset();\n\n .agreement-link {\n text-decoration: underline;\n cursor: pointer; /* Ensure it still looks clickable */\n }\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Element, Host, Prop, State, h } from \"@stencil/core\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { getInitialsFromName, limitFullName } from \"./helpers\";\nimport {\n ActionMenuItemActionableModel,\n ActionMenuModel,\n ChActionMenuRenderCustomEvent,\n ChPopoverAlign\n} from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // TODO: review if \"utils/form--full\" is required.\n \"resets/box-sizing\",\n \"components/tooltip\",\n \"components/switch\",\n \"components/icon\",\n \"components/dropdown\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst CHEVRON_DOWN_ICON = getIconPath({\n category: \"navigation\",\n name: \"chevron-down\",\n colorType: \"neutral\"\n});\n\nconst MY_ACCOUNT_ID = \"my-account\";\nconst CHANGE_TEAM_ID = \"change-team\";\nconst SIGN_OUT_ID = \"sign-out\";\nconst LANGUAGE_ID = \"language\";\n\n@Component({\n tag: \"gx-ide-current-user-info\",\n styleUrl: \"current-user-info.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/current-user-info\"]\n})\nexport class GxIdeNewEnvironment {\n #componentLocale: any;\n #initials: string = \"\";\n // #mode: Mode;\n #menuDropdownModel: ActionMenuModel;\n\n @Element() el: HTMLGxIdeCurrentUserInfoElement;\n #userLoginButton: HTMLButtonElement;\n\n @State() showMenu: boolean = false;\n\n /**\n * User data\n */\n @Prop() readonly userInfo: UserInfo;\n\n /**\n * Callback executed when the user click \"My Account\" link\n */\n @Prop() readonly myAccountCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"change team\" link\n */\n @Prop() readonly changeTeamCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"Language\" link\n */\n @Prop() readonly changeLanguageCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user switch the \"Mode\" status\n */\n @Prop() readonly changeModeCallback!: (mode: Mode) => Promise<void>;\n\n /**\n * Defines the menu block and inline alignment\n */\n @Prop() readonly menuAlign: MenuAlign;\n\n /**\n * Callback executed when the user click \"Sign Out\" link\n */\n @Prop() readonly signOutCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"privacy policy\" link\n */\n @Prop() readonly privacyCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#initials = getInitialsFromName(this.userInfo.name);\n this.#menuDropdownModel = [\n // {\n // id: MY_ACCOUNT_ID,\n // caption: this.#componentLocale.myAccountLabel,\n // showSeparator: false\n // },\n {\n id: CHANGE_TEAM_ID,\n caption: this.#componentLocale.changeTeamLabel\n },\n {\n id: SIGN_OUT_ID,\n caption: this.#componentLocale.signOutLabel\n },\n {\n type: \"separator\"\n },\n {\n type: \"slot\",\n id: \"agreement\"\n }\n ];\n }\n\n // #handleModeSwitch = () => {\n // this.#mode = this.#mode === \"dark\" ? \"light\" : \"dark\";\n // if (this.changeModeCallback) {\n // this.changeModeCallback(this.#mode);\n // }\n // };\n\n #dropDownitemClickHandler = (\n event: ChActionMenuRenderCustomEvent<ActionMenuItemActionableModel>\n ): void => {\n const id = event.detail.id;\n if (id === MY_ACCOUNT_ID) {\n // this.myAccountCallback();\n } else if (id === CHANGE_TEAM_ID) {\n this.changeTeamCallback();\n } else if (id === SIGN_OUT_ID) {\n this.signOutCallback();\n } else if (id === LANGUAGE_ID) {\n this.changeLanguageCallback();\n }\n };\n\n render() {\n const userName = limitFullName(this.userInfo?.name);\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-action-menu-render\n class=\"dropdown user-login__button\"\n model={this.#menuDropdownModel}\n inlineAlign=\"inside-end\"\n blockAlign=\"outside-end\"\n onButtonClick={this.#dropDownitemClickHandler}\n >\n <div class=\"user-login__details\">\n {userName ? <span class=\"user-login__name\">{userName}</span> : null}\n {this.userInfo?.team ? (\n <span class=\"user-login__organization\">{this.userInfo.team}</span>\n ) : null}\n </div>\n <div class=\"user-login__avatar\">{this.#initials}</div>\n <ch-image\n src={CHEVRON_DOWN_ICON}\n class=\"icon-md\"\n containerRef={this.#userLoginButton}\n ></ch-image>\n <div class=\"user-login__footer footer-slot\" slot=\"agreement\">\n <button\n class=\"body-regular-s agreement-link\"\n onClick={this.termsCallback}\n >\n {this.#componentLocale.termsAndConditionsCaption}\n </button>\n <button\n class=\"body-regular-s\tagreement-link\"\n onClick={this.privacyCallback}\n >\n {this.#componentLocale.privacyPolicyCaption}\n </button>\n </div>\n </ch-action-menu-render>\n </Host>\n );\n }\n}\n\nexport type MenuAlign = {\n blockAlign: ChPopoverAlign;\n inlineAlign: ChPopoverAlign;\n};\n\nexport type UserInfo = {\n name: string;\n team: string;\n};\n\nexport type Mode = \"dark\" | \"light\";\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-current-user-info.entry.cjs.js","mappings":"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","names":["getIconPath","Locale","h","Host"],"sources":["src/components/current-user-info/helpers.tsx","src/components/current-user-info/current-user-info.scss?tag=gx-ide-current-user-info&encapsulation=shadow","src/components/current-user-info/current-user-info.tsx"],"sourcesContent":["/**\n * Returns initials from the first two words of a name. Returns \"X\" for invalid input.\n *\n * @param name - The full name string.\n * @returns Initials of the first two words, or \"X\" if invalid.\n *\n * Example:\n * getInitialsFromName(\"John Doe\") -> \"JD\"\n * getInitialsFromName(\"Jane\") -> \"J\"\n * getInitialsFromName(\"\") -> \"X\"\n */\nexport const getInitialsFromName = (name: string): string | null => {\n if (typeof name !== \"string\" || name.trim() === \"\") {\n return \"X\";\n }\n\n const nameData = name.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (nameData.length === 1) {\n return nameData[0][0].toUpperCase();\n } else {\n return `${nameData[0][0].toUpperCase()}${nameData[1][0].toUpperCase()}`;\n }\n};\n\n/**\n * Limits the full name to the first two words. Returns null for invalid input.\n *\n * @param fullName - The full name string to be limited.\n * @returns The first two words of the full name, or null if invalid.\n *\n * Example:\n * limitFullName(\"John Doe Smith\") -> \"John Doe\"\n * limitFullName(\"Jane\") -> \"Jane\"\n * limitFullName(\"\") -> null\n */\nexport const limitFullName = (fullName: string): string | null => {\n if (typeof fullName !== \"string\" || fullName.trim() === \"\") {\n return null;\n }\n\n const fullNameData = fullName.split(\" \").filter(Boolean); // Remove any empty strings from splitting\n if (fullNameData.length === 1) {\n return fullNameData[0];\n } else {\n return `${fullNameData[0]} ${fullNameData[1]}`;\n }\n};\n","@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: inline-grid;\n justify-items: end;\n block-size: 100%;\n}\n\n.dropdown::part(expandable-button) {\n display: grid;\n grid-template-columns: max-content max-content max-content;\n align-items: center;\n gap: var(--mer-spacing--sm);\n block-size: auto;\n cursor: pointer;\n}\n.user-login {\n &__details {\n display: grid;\n grid-template-rows: max-content max-content;\n gap: var(--mer-spacing--3xs);\n justify-items: end;\n }\n &__name {\n font-weight: var(--mer-font__weight--medium);\n font-size: var(--mer-font__size--3xs);\n color: var(--mer-text__on-elevation);\n }\n &__organization {\n font-weight: var(--mer-font__weight--light);\n font-size: var(--mer-font__size--4xs);\n color: var(--mer-text__neutral);\n }\n &__name,\n &__organization {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-inline-size: 120px;\n display: inline-block;\n }\n &__avatar {\n font-size: 9px;\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n block-size: var(--mer-spacing--lg);\n inline-size: var(--mer-spacing--lg);\n color: var(--mer-text__on-elevation);\n border-radius: 50%;\n background-color: var(--mer-color__tinted-primary--10);\n border: var(--mer-border__width--sm) solid var(--mer-color__primary--200);\n }\n\n &__footer {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n @include button-reset();\n\n .agreement-link {\n text-decoration: underline;\n cursor: pointer; /* Ensure it still looks clickable */\n }\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Element, Host, Prop, State, h } from \"@stencil/core\";\n\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { getInitialsFromName, limitFullName } from \"./helpers\";\nimport {\n ActionMenuItemActionableModel,\n ActionMenuModel,\n ChActionMenuRenderCustomEvent,\n ChPopoverAlign\n} from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n // TODO: review if \"utils/form--full\" is required.\n \"resets/box-sizing\",\n \"components/tooltip\",\n \"components/switch\",\n \"components/icon\",\n \"components/dropdown\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst CHEVRON_DOWN_ICON = getIconPath({\n category: \"navigation\",\n name: \"chevron-down\",\n colorType: \"neutral\"\n});\n\nconst MY_ACCOUNT_ID = \"my-account\";\nconst CHANGE_TEAM_ID = \"change-team\";\nconst SIGN_OUT_ID = \"sign-out\";\nconst LANGUAGE_ID = \"language\";\n\n@Component({\n tag: \"gx-ide-current-user-info\",\n styleUrl: \"current-user-info.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/current-user-info\"]\n})\nexport class GxIdeNewEnvironment {\n #componentLocale: any;\n #initials: string = \"\";\n // #mode: Mode;\n #menuDropdownModel: ActionMenuModel;\n\n @Element() el: HTMLGxIdeCurrentUserInfoElement;\n #userLoginButton: HTMLButtonElement;\n\n @State() showMenu: boolean = false;\n\n /**\n * User data\n */\n @Prop() readonly userInfo: UserInfo;\n\n /**\n * Callback executed when the user click \"My Account\" link\n */\n @Prop() readonly myAccountCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"change team\" link\n */\n @Prop() readonly changeTeamCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user click \"Language\" link\n */\n @Prop() readonly changeLanguageCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user switch the \"Mode\" status\n */\n @Prop() readonly changeModeCallback!: (mode: Mode) => Promise<void>;\n\n /**\n * Defines the menu block and inline alignment\n */\n @Prop() readonly menuAlign: MenuAlign;\n\n /**\n * Callback executed when the user click \"Sign Out\" link\n */\n @Prop() readonly signOutCallback!: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"term and conditions\" link\n */\n @Prop() readonly termsCallback: () => Promise<void>;\n\n /**\n * Callback executed when the user clicks on the \"privacy policy\" link\n */\n @Prop() readonly privacyCallback: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#initials = getInitialsFromName(this.userInfo.name);\n this.#menuDropdownModel = [\n // {\n // id: MY_ACCOUNT_ID,\n // caption: this.#componentLocale.myAccountLabel,\n // showSeparator: false\n // },\n {\n id: CHANGE_TEAM_ID,\n caption: this.#componentLocale.changeTeamLabel\n },\n {\n id: SIGN_OUT_ID,\n caption: this.#componentLocale.signOutLabel\n },\n {\n type: \"separator\"\n },\n {\n type: \"slot\",\n id: \"agreement\"\n }\n ];\n }\n\n // #handleModeSwitch = () => {\n // this.#mode = this.#mode === \"dark\" ? \"light\" : \"dark\";\n // if (this.changeModeCallback) {\n // this.changeModeCallback(this.#mode);\n // }\n // };\n\n #dropDownitemClickHandler = (\n event: ChActionMenuRenderCustomEvent<ActionMenuItemActionableModel>\n ): void => {\n const id = event.detail.id;\n if (id === MY_ACCOUNT_ID) {\n // this.myAccountCallback();\n } else if (id === CHANGE_TEAM_ID) {\n this.changeTeamCallback();\n } else if (id === SIGN_OUT_ID) {\n this.signOutCallback();\n } else if (id === LANGUAGE_ID) {\n this.changeLanguageCallback();\n }\n };\n\n render() {\n const userName = limitFullName(this.userInfo?.name);\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <ch-action-menu-render\n class=\"dropdown user-login__button\"\n model={this.#menuDropdownModel}\n inlineAlign=\"inside-end\"\n blockAlign=\"outside-end\"\n onButtonClick={this.#dropDownitemClickHandler}\n >\n <div class=\"user-login__details\">\n {userName ? <span class=\"user-login__name\">{userName}</span> : null}\n {this.userInfo?.team ? (\n <span class=\"user-login__organization\">{this.userInfo.team}</span>\n ) : null}\n </div>\n <div class=\"user-login__avatar\">{this.#initials}</div>\n <ch-image\n src={CHEVRON_DOWN_ICON}\n class=\"icon-md\"\n containerRef={this.#userLoginButton}\n ></ch-image>\n <div class=\"user-login__footer footer-slot\" slot=\"agreement\">\n <button\n class=\"body-regular-s agreement-link\"\n onClick={this.termsCallback}\n >\n {this.#componentLocale.termsAndConditionsCaption}\n </button>\n <button\n class=\"body-regular-s\tagreement-link\"\n onClick={this.privacyCallback}\n >\n {this.#componentLocale.privacyPolicyCaption}\n </button>\n </div>\n </ch-action-menu-render>\n </Host>\n );\n }\n}\n\nexport type MenuAlign = {\n blockAlign: ChPopoverAlign;\n inlineAlign: ChPopoverAlign;\n};\n\nexport type UserInfo = {\n name: string;\n team: string;\n};\n\nexport type Mode = \"dark\" | \"light\";\n"],"version":3}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
const index = require('./index-e227aefb.js');
|
|
6
|
-
const
|
|
7
|
-
require('./MERCURY_ASSETS-6bbcc011.js');
|
|
6
|
+
const MERCURY_ASSETS = require('./MERCURY_ASSETS-972bf7f4.js');
|
|
8
7
|
const locale = require('./locale-ff30a5f3.js');
|
|
9
8
|
const helpers = require('./helpers-30f109a4.js');
|
|
10
9
|
|
|
@@ -37,7 +36,7 @@ const GxIdeDashboardHome = class {
|
|
|
37
36
|
index.registerInstance(this, hostRef);
|
|
38
37
|
this.componentDidRenderFirstTime = index.createEvent(this, "componentDidRenderFirstTime", 7);
|
|
39
38
|
this.renderedFirstTime = false;
|
|
40
|
-
_GxIdeDashboardHome_folderIcon.set(this,
|
|
39
|
+
_GxIdeDashboardHome_folderIcon.set(this, MERCURY_ASSETS.getIconPath({
|
|
41
40
|
category: "system",
|
|
42
41
|
name: "folder",
|
|
43
42
|
colorType: "on-elevation"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-dashboard-home.entry.cjs.js","mappings":"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","names":["getIconPath","h","Locale","formatDate","Host"],"sources":["src/components/dashboard-home/dashboard-home.scss?tag=gx-ide-dashboard-home&encapsulation=shadow","src/components/dashboard-home/dashboard-home.tsx"],"sourcesContent":["@import \"../../../node_modules/@genexus/gemini/dist/gemini/globals/mixins.scss\";\n@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n height: 100%;\n overflow: auto;\n margin: var(--mer-spacing--lg);\n}\n\n// Manage height and overflow\n:host,\n.gx-ide-main-wrapper,\n.grid--basic,\n.project,\n.recent-objects {\n height: 100%;\n overflow: auto;\n}\n\n.gx-ide-main-wrapper {\n container-name: dashboard-main-wrapper;\n container-type: inline-size;\n}\n\n.kb {\n grid-area: kb;\n align-self: center;\n .version-pill {\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n .kb-detail {\n display: flex;\n flex-direction: column;\n align-items: start;\n flex-wrap: wrap;\n margin-block-start: var(--mer-spacing--md);\n gap: var(--mer-spacing--md);\n .display-inline {\n @include line-clamp;\n font-style: italic;\n opacity: 0.5;\n }\n }\n}\n\n.environment {\n grid-area: environment;\n &__environments {\n padding-block-end: var(--gx-ide-grid-column-gap);\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n @include gxg-scrollbar;\n overflow-x: auto;\n .environment-card {\n min-width: 180px;\n flex-grow: 1;\n }\n .environment-container {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-cards-vertical-spacing);\n }\n .environment-item {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--2xs);\n }\n }\n}\n.environment-title {\n margin-block-end: var(--mer-spacing--xs);\n display: block;\n}\n\n.project {\n grid-area: project;\n .project-buttons {\n margin-block-start: var(--mer-spacing--md);\n gap: var(--mer-spacing--md);\n }\n .project-description {\n > *:first-child {\n margin-block-start: 0;\n }\n > *:last-child {\n margin-block-end: 0;\n }\n }\n}\n\n.recent-objects {\n grid-area: recent-objects;\n &__container {\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-cards-vertical-spacing);\n }\n &__object {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--gx-ide-cards-horizontal-spacing);\n .obj-name {\n color: var(--gray-06);\n }\n .col {\n display: flex;\n gap: var(--gx-ide-cards-horizontal-spacing);\n }\n }\n &__empty-state {\n height: 100%;\n }\n}\n\n.grid--basic {\n flex-grow: 1;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n gap: var(--mer-spacing--xl);\n grid-template-areas:\n \"kb environment\"\n \"project recent-objects\";\n grid-template-rows: auto 1fr;\n}\n@container (width < 768px) {\n .grid--basic {\n grid-template-rows: auto auto auto;\n grid-template-areas:\n \"kb environment\"\n \"project project\"\n \"recent-objects recent-objects\";\n }\n}\n\ngxg-title-editable {\n width: 100%;\n}\n\ngx-ide-card {\n height: 100%;\n}\n\ngxg-ide-loader::part(loader-wrapper) {\n border: var(--mer-elevation__border-01);\n border-radius: var(--gxg-card-section_border-radius);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { getIconPath } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { formatDate } from \"../../common/helpers\";\n\nconst mapStatusToIcons: {\n [key in RecentObjectStatus]: StatusIcons;\n} = {\n \"new\": \"gx-server/new\",\n \"modified\": \"patterns-default-associated/modified\",\n \"conflicted\": \"patterns-default-associated/synchronized\",\n \"unmodified\": null,\n \"not-connected\": null\n};\n\nconst mapStatusToLocale: {\n [key in RecentObjectStatus]: string;\n} = {\n \"new\": \"new\",\n \"modified\": \"modified\",\n \"conflicted\": \"conflicted\",\n \"unmodified\": \"unmodified\",\n \"not-connected\": \"notConnected\"\n};\n\n@Component({\n tag: \"gx-ide-dashboard-home\",\n styleUrl: \"dashboard-home.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/dashboard-home\"]\n})\nexport class GxIdeDashboardHome {\n // 1.Own Properties\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n #folderIcon = getIconPath({\n category: \"system\",\n name: \"folder\",\n colorType: \"on-elevation\"\n });\n\n // 2.Reference To Elements\n\n @Element() el: HTMLGxIdeDashboardHomeElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private kbNameEl!: HTMLGxgTitleEditableElement;\n private envNameEl!: HTMLGxgTitleEditableElement;\n private recentObjectsContainerEl!: HTMLGxgCardElement;\n /* private projectDescriptionEl!: HTMLGxgFormTextareaElement;*/\n\n // 3.State\n\n /**\n * The editing state for the environment name.\n */\n @State() editingEnvName = false;\n\n /**\n * The editing state for the project details.\n */\n @State() editingProjectDescription = false;\n\n // 4.Public Property API\n\n /**\n * The KB basic properties.\n */\n @Prop() readonly kb: KBData;\n\n /**\n * This allows the kb to be editable by the user.\n */\n @Prop() readonly enableEditKBName: boolean = false;\n\n /**\n * Information of the current environment.\n */\n @Prop() readonly environment: EnvironmentData;\n\n /**\n * This allows the environment name to be editable by the user.\n */\n @Prop() readonly enableEditEnvironmentName: boolean = false;\n\n /**\n * Project Detail description.\n */\n @Prop() readonly projectDescription: string;\n\n /**\n * This allows the project description to be modified by the user.\n */\n @Prop() readonly enableEditDescription: boolean = false;\n\n /**\n * Recently edited objects.\n */\n @Prop() readonly recentObjects: recentObjectData[];\n @Watch(\"recentObjects\")\n recentObjectsHandler(newRecentObjects: recentObjectData[]) {\n if (newRecentObjects) {\n this.loaderEl.show = false;\n }\n }\n\n /**\n * Callback invoked when user tries to rename the KB.\n * Receives the new name as a parameter\n * and returns a promise with the result of the operation.\n */\n @Prop() readonly renameKBCallback: (name: string) => Promise<EditResult>;\n\n /**\n * Callback invoked when user tries to rename the KB environment.\n * Receives the new name as a parameter\n * and returns a promise with the result of the operation.\n */\n @Prop() readonly renameEnvironmentCallback: (\n name: string\n ) => Promise<EditResult>;\n\n /**\n * Callback invoked when user tries to edit the Project Description.\n * The edition is resolved by the host.\n */\n @Prop() readonly editDescriptionCallback: () => Promise<void>;\n\n /**\n * Callback invoked when user tries to open one of the listed Recent Objects\n * Receives the internal ID of the object\n */\n @Prop() readonly openObjectCallback: (id: string) => Promise<void>;\n\n // 5.Events\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.Component Lifecycle Events\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.evaluateLoader();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.Listeners\n\n // 8.Public Methods API\n\n // 9.Local Methods\n\n private evaluateLoader = () => {\n if (this.recentObjects === undefined) {\n this.loaderEl.container = this.recentObjectsContainerEl;\n this.loaderEl.show = true;\n }\n };\n\n // Kb Name\n\n private handleKbNameChange = async (updatedTitle: CustomEvent<string>) => {\n const updatedKbName = updatedTitle.detail;\n if (this.renameKBCallback) {\n const response = this.renameKBCallback(updatedKbName);\n response.then((result: EditResult) => {\n if (result.success) {\n this.kb.name = updatedKbName;\n }\n this.editValidation(result, this.kbNameEl);\n });\n }\n };\n\n // Environment Name\n private handleEnvNameChange = async () => {\n if (this.renameEnvironmentCallback) {\n const response = this.renameEnvironmentCallback(this.envNameEl.value);\n response.then((result: EditResult) => {\n if (result.success) {\n this.environment.name = this.envNameEl.value;\n }\n this.editValidation(result, this.envNameEl);\n });\n }\n };\n\n private handleDescriptionChange = async () => {\n if (this.editDescriptionCallback) {\n await this.editDescriptionCallback();\n }\n };\n\n // Recent Objects\n\n private openObject = (id: string) => {\n this.openObjectCallback(id);\n };\n\n // Validation\n\n private editValidation = (\n result: EditResult,\n el: HTMLGxgTitleEditableElement\n ) => {\n if (!result.success) {\n el.validationStatus = \"error\";\n el.validationMessage = result.errorMessage;\n } else {\n el.validationStatus = \"indeterminate\";\n el.validationMessage = \"\";\n }\n };\n\n // 10.Render Function\n\n private renderProjectContent = (): Element => {\n return this.projectDescription ? (\n <div class=\"project-description\" innerHTML={this.projectDescription}>\n {this.enableEditDescription ? (\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"gemini-tools/edit\"\n onClick={this.handleDescriptionChange}\n >\n {this._componentLocale.edit}\n </gxg-button>\n ) : null}\n </div>\n ) : null;\n };\n\n private renderFrontEndTitle() {\n return this.environment.frontEnd.length <= 1\n ? this._componentLocale.environment.frontEndLang\n : this._componentLocale.environment.frontEndLangs;\n }\n\n private renderKbDates() {\n return this.kb.created || this.kb.lastBuild ? (\n <gxg-text class=\"display-inline\" type=\"text-gray\" padding=\"s\">\n {\n /* created*/\n this.kb.created\n ? `${this._componentLocale.created}: ${formatDate(\n this.kb.created,\n \"date-time-short\"\n )}`\n : null\n }\n {this.kb.created && this.kb.lastBuild ? \" - \" : null}\n {\n /* last build date */\n this.kb.lastBuild\n ? `${this._componentLocale.lastBuild}: ${formatDate(\n this.kb.lastBuild,\n \"date-time-short\"\n )}`\n : null\n }\n </gxg-text>\n ) : null;\n }\n\n // 11.RENDER() MAIN FUNCTION //\n\n render() {\n return (\n <Host>\n <div class=\"gx-ide-main-wrapper\">\n <div class=\"grid grid--basic\">\n <div class=\"kb gxi-overflow-auto\">\n <gxg-title-editable\n value={this.kb.name}\n disable-edition={!this.enableEditKBName}\n click-to-edit={true}\n fluid\n onValueChanged={this.handleKbNameChange}\n focusType=\"text\"\n debounce\n ref={el => (this.kbNameEl = el as HTMLGxgTitleEditableElement)}\n ></gxg-title-editable>\n <div class=\"align-center kb-detail\">\n <gxg-pill id=\"pill\" type=\"static\" icon=\"objects/procedure\">\n {this._componentLocale.version}: {this.kb.currentVersion}\n </gxg-pill>\n\n {this.renderKbDates()}\n </div>\n </div>\n\n <div class=\"environment\">\n <gxg-title-editable\n class=\"environment-title\"\n value={this.environment.name}\n disable-edition={!this.enableEditEnvironmentName}\n click-to-edit={true}\n title-type=\"h3\"\n ref={el => (this.envNameEl = el as HTMLGxgTitleEditableElement)}\n onValueChanged={this.handleEnvNameChange}\n focusType=\"text\"\n debounce\n ></gxg-title-editable>\n <div class=\"environment__environments\">\n <gxg-card\n cardType=\"mini\"\n class=\"environment-card\"\n cardTitle={this.renderFrontEndTitle()}\n >\n <div class=\"environment-container\">\n {this.environment?.frontEnd?.map(\n (obj: EnvironmentItemData) => (\n <div class=\"environment-item\">\n <gxg-icon\n type={obj.icon}\n color=\"onbackground\"\n style={{\n \"--mer-text__on-surface\": \"var(--gray-05);\"\n }}\n ></gxg-icon>\n {obj.name}\n </div>\n )\n )}\n </div>\n </gxg-card>\n <gxg-card\n cardType=\"mini\"\n class=\"environment-card\"\n cardTitle={this._componentLocale.environment.backEnd}\n >\n <div class=\"environment-container\">\n <div class=\"environment-item\">\n <gxg-icon\n type={this.environment.backEnd.icon}\n color=\"onbackground\"\n style={{\n \"--mer-text__on-surface\": \"var(--gray-05);\"\n }}\n ></gxg-icon>\n {this.environment.backEnd.name}\n </div>\n </div>\n </gxg-card>\n\n <gxg-card\n cardType=\"mini\"\n class=\"environment-card\"\n cardTitle={this._componentLocale.environment.dataStore}\n >\n <div class=\"environment-container\">\n <div class=\"environment-item\">\n <gxg-icon\n type={this.environment.dataStore.icon}\n color=\"onbackground\"\n style={{\n \"--mer-text__on-surface\": \"var(--gray-05);\"\n }}\n ></gxg-icon>\n {this.environment.dataStore.name}\n </div>\n </div>\n </gxg-card>\n </div>\n </div>\n\n <gxg-card\n editableTitle={false}\n cardTitle={this._componentLocale.project.title}\n class=\"project\"\n >\n {/* <gxg-tabs height=\"auto\" minWidth=\"100%\">\n <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.project.tabs.description}\n tab=\"description\"\n is-selected\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.project.tabs.lookFeel}\n tab=\"lookFeel\"\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.project.tabs.architecture}\n tab=\"architecture\"\n ></gxg-tab-button>\n </gxg-tab-bar>\n <gxg-tab noPadding tab=\"description\" flexContainer>\n {this.renderProjectContent()}\n </gxg-tab>\n <gxg-tab noPadding tab=\"lookFeel\" flexContainer></gxg-tab>\n <gxg-tab noPadding tab=\"architecture\" flexContainer></gxg-tab>\n </gxg-tabs> */}\n {this.renderProjectContent()}\n </gxg-card>\n\n <gxg-card\n editableTitle={false}\n cardTitle={this._componentLocale.recentObjects.title}\n class=\"recent-objects\"\n cardType=\"section\"\n noPaddingTop\n ref={el =>\n (this.recentObjectsContainerEl = el as HTMLGxgCardElement)\n }\n >\n <div class=\"recent-objects__container\">\n {this.recentObjects?.length === 0 ? (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIconSrc={this.#folderIcon}\n stateTitle={\n this._componentLocale.recentObjects.emptyState.title\n }\n stateDescription={\n this._componentLocale.recentObjects.emptyState.description\n }\n ></gx-ide-empty-state>\n ) : (\n this.recentObjects?.map((obj: recentObjectData) => {\n const statusLocale = mapStatusToLocale[obj.status];\n const statusDescription =\n this._componentLocale.recentObjects.status[statusLocale];\n return (\n <gxg-card\n background=\"gray-01\"\n padding=\"m\"\n cardType=\"article\"\n class=\"recent-objects__card\"\n actionable\n onClick={() => this.openObject(obj.id)}\n >\n <div class=\"recent-objects__object\">\n <div class=\"col col-left\">\n <gxg-icon\n type={obj.typeIcon}\n color=\"auto\"\n ></gxg-icon>\n <gxg-text type=\"text-regular\" class=\"obj-name\">\n {obj.name}\n </gxg-text>\n </div>\n <div class=\"col col-right\">\n <gxg-text italic>\n {statusDescription}\n {obj.status === \"modified\"\n ? formatDate(obj.modificationDate, \"date\")\n : null}\n </gxg-text>\n {obj.status !== \"unmodified\" &&\n obj.status !== \"not-connected\" ? (\n <gxg-icon\n type={mapStatusToIcons[obj.status]}\n color=\"auto\"\n ></gxg-icon>\n ) : null}\n </div>\n </div>\n </gxg-card>\n );\n })\n )}\n </div>\n </gxg-card>\n </div>\n </div>\n <gxg-ide-loader\n loaderTitle={this._componentLocale.loader.title}\n description={this._componentLocale.loader.description}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n ></gxg-ide-loader>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n name: string;\n currentVersion: string;\n created: Date;\n lastBuild?: Date;\n};\n\nexport type EnvironmentData = {\n name: string;\n frontEnd: EnvironmentItemData[];\n backEnd: EnvironmentItemData;\n dataStore: EnvironmentItemData;\n};\n\nexport type EnvironmentItemData = {\n icon: string;\n name: string;\n};\n\nexport type recentObjectData = {\n id: string;\n typeIcon: string;\n name: string;\n modificationDate: Date;\n status: RecentObjectStatus;\n};\n\nexport type RecentObjectStatus =\n | \"new\"\n | \"modified\"\n | \"conflicted\"\n | \"unmodified\"\n | \"not-connected\";\n\nexport type StatusIcons =\n // toDo: Add proper icons!!\n | \"gx-server/new\"\n | \"patterns-default-associated/modified\"\n | \"patterns-default-associated/synchronized\"\n | \"gx-server/delete\";\n\nexport type EditResult = {\n success: boolean;\n errorMessage: string;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-dashboard-home.entry.cjs.js","mappings":"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","names":["getIconPath","h","Locale","formatDate","Host"],"sources":["src/components/dashboard-home/dashboard-home.scss?tag=gx-ide-dashboard-home&encapsulation=shadow","src/components/dashboard-home/dashboard-home.tsx"],"sourcesContent":["@import \"../../../node_modules/@genexus/gemini/dist/gemini/globals/mixins.scss\";\n@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n height: 100%;\n overflow: auto;\n margin: var(--mer-spacing--lg);\n}\n\n// Manage height and overflow\n:host,\n.gx-ide-main-wrapper,\n.grid--basic,\n.project,\n.recent-objects {\n height: 100%;\n overflow: auto;\n}\n\n.gx-ide-main-wrapper {\n container-name: dashboard-main-wrapper;\n container-type: inline-size;\n}\n\n.kb {\n grid-area: kb;\n align-self: center;\n .version-pill {\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n .kb-detail {\n display: flex;\n flex-direction: column;\n align-items: start;\n flex-wrap: wrap;\n margin-block-start: var(--mer-spacing--md);\n gap: var(--mer-spacing--md);\n .display-inline {\n @include line-clamp;\n font-style: italic;\n opacity: 0.5;\n }\n }\n}\n\n.environment {\n grid-area: environment;\n &__environments {\n padding-block-end: var(--gx-ide-grid-column-gap);\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n @include gxg-scrollbar;\n overflow-x: auto;\n .environment-card {\n min-width: 180px;\n flex-grow: 1;\n }\n .environment-container {\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-cards-vertical-spacing);\n }\n .environment-item {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--2xs);\n }\n }\n}\n.environment-title {\n margin-block-end: var(--mer-spacing--xs);\n display: block;\n}\n\n.project {\n grid-area: project;\n .project-buttons {\n margin-block-start: var(--mer-spacing--md);\n gap: var(--mer-spacing--md);\n }\n .project-description {\n > *:first-child {\n margin-block-start: 0;\n }\n > *:last-child {\n margin-block-end: 0;\n }\n }\n}\n\n.recent-objects {\n grid-area: recent-objects;\n &__container {\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: var(--gx-ide-cards-vertical-spacing);\n }\n &__object {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--gx-ide-cards-horizontal-spacing);\n .obj-name {\n color: var(--gray-06);\n }\n .col {\n display: flex;\n gap: var(--gx-ide-cards-horizontal-spacing);\n }\n }\n &__empty-state {\n height: 100%;\n }\n}\n\n.grid--basic {\n flex-grow: 1;\n grid-template-columns: repeat(auto-fit, minmax(0, 1fr));\n gap: var(--mer-spacing--xl);\n grid-template-areas:\n \"kb environment\"\n \"project recent-objects\";\n grid-template-rows: auto 1fr;\n}\n@container (width < 768px) {\n .grid--basic {\n grid-template-rows: auto auto auto;\n grid-template-areas:\n \"kb environment\"\n \"project project\"\n \"recent-objects recent-objects\";\n }\n}\n\ngxg-title-editable {\n width: 100%;\n}\n\ngx-ide-card {\n height: 100%;\n}\n\ngxg-ide-loader::part(loader-wrapper) {\n border: var(--mer-elevation__border-01);\n border-radius: var(--gxg-card-section_border-radius);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n State,\n Element,\n Event,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { getIconPath } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { formatDate } from \"../../common/helpers\";\n\nconst mapStatusToIcons: {\n [key in RecentObjectStatus]: StatusIcons;\n} = {\n \"new\": \"gx-server/new\",\n \"modified\": \"patterns-default-associated/modified\",\n \"conflicted\": \"patterns-default-associated/synchronized\",\n \"unmodified\": null,\n \"not-connected\": null\n};\n\nconst mapStatusToLocale: {\n [key in RecentObjectStatus]: string;\n} = {\n \"new\": \"new\",\n \"modified\": \"modified\",\n \"conflicted\": \"conflicted\",\n \"unmodified\": \"unmodified\",\n \"not-connected\": \"notConnected\"\n};\n\n@Component({\n tag: \"gx-ide-dashboard-home\",\n styleUrl: \"dashboard-home.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/dashboard-home\"]\n})\nexport class GxIdeDashboardHome {\n // 1.Own Properties\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n #folderIcon = getIconPath({\n category: \"system\",\n name: \"folder\",\n colorType: \"on-elevation\"\n });\n\n // 2.Reference To Elements\n\n @Element() el: HTMLGxIdeDashboardHomeElement;\n private loaderEl!: HTMLGxgIdeLoaderElement;\n private kbNameEl!: HTMLGxgTitleEditableElement;\n private envNameEl!: HTMLGxgTitleEditableElement;\n private recentObjectsContainerEl!: HTMLGxgCardElement;\n /* private projectDescriptionEl!: HTMLGxgFormTextareaElement;*/\n\n // 3.State\n\n /**\n * The editing state for the environment name.\n */\n @State() editingEnvName = false;\n\n /**\n * The editing state for the project details.\n */\n @State() editingProjectDescription = false;\n\n // 4.Public Property API\n\n /**\n * The KB basic properties.\n */\n @Prop() readonly kb: KBData;\n\n /**\n * This allows the kb to be editable by the user.\n */\n @Prop() readonly enableEditKBName: boolean = false;\n\n /**\n * Information of the current environment.\n */\n @Prop() readonly environment: EnvironmentData;\n\n /**\n * This allows the environment name to be editable by the user.\n */\n @Prop() readonly enableEditEnvironmentName: boolean = false;\n\n /**\n * Project Detail description.\n */\n @Prop() readonly projectDescription: string;\n\n /**\n * This allows the project description to be modified by the user.\n */\n @Prop() readonly enableEditDescription: boolean = false;\n\n /**\n * Recently edited objects.\n */\n @Prop() readonly recentObjects: recentObjectData[];\n @Watch(\"recentObjects\")\n recentObjectsHandler(newRecentObjects: recentObjectData[]) {\n if (newRecentObjects) {\n this.loaderEl.show = false;\n }\n }\n\n /**\n * Callback invoked when user tries to rename the KB.\n * Receives the new name as a parameter\n * and returns a promise with the result of the operation.\n */\n @Prop() readonly renameKBCallback: (name: string) => Promise<EditResult>;\n\n /**\n * Callback invoked when user tries to rename the KB environment.\n * Receives the new name as a parameter\n * and returns a promise with the result of the operation.\n */\n @Prop() readonly renameEnvironmentCallback: (\n name: string\n ) => Promise<EditResult>;\n\n /**\n * Callback invoked when user tries to edit the Project Description.\n * The edition is resolved by the host.\n */\n @Prop() readonly editDescriptionCallback: () => Promise<void>;\n\n /**\n * Callback invoked when user tries to open one of the listed Recent Objects\n * Receives the internal ID of the object\n */\n @Prop() readonly openObjectCallback: (id: string) => Promise<void>;\n\n // 5.Events\n\n /**\n * @description Gets fired when the component has rendered for the first time.\n */\n @Event() componentDidRenderFirstTime: EventEmitter<string>;\n\n // 6.Component Lifecycle Events\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.evaluateLoader();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.Listeners\n\n // 8.Public Methods API\n\n // 9.Local Methods\n\n private evaluateLoader = () => {\n if (this.recentObjects === undefined) {\n this.loaderEl.container = this.recentObjectsContainerEl;\n this.loaderEl.show = true;\n }\n };\n\n // Kb Name\n\n private handleKbNameChange = async (updatedTitle: CustomEvent<string>) => {\n const updatedKbName = updatedTitle.detail;\n if (this.renameKBCallback) {\n const response = this.renameKBCallback(updatedKbName);\n response.then((result: EditResult) => {\n if (result.success) {\n this.kb.name = updatedKbName;\n }\n this.editValidation(result, this.kbNameEl);\n });\n }\n };\n\n // Environment Name\n private handleEnvNameChange = async () => {\n if (this.renameEnvironmentCallback) {\n const response = this.renameEnvironmentCallback(this.envNameEl.value);\n response.then((result: EditResult) => {\n if (result.success) {\n this.environment.name = this.envNameEl.value;\n }\n this.editValidation(result, this.envNameEl);\n });\n }\n };\n\n private handleDescriptionChange = async () => {\n if (this.editDescriptionCallback) {\n await this.editDescriptionCallback();\n }\n };\n\n // Recent Objects\n\n private openObject = (id: string) => {\n this.openObjectCallback(id);\n };\n\n // Validation\n\n private editValidation = (\n result: EditResult,\n el: HTMLGxgTitleEditableElement\n ) => {\n if (!result.success) {\n el.validationStatus = \"error\";\n el.validationMessage = result.errorMessage;\n } else {\n el.validationStatus = \"indeterminate\";\n el.validationMessage = \"\";\n }\n };\n\n // 10.Render Function\n\n private renderProjectContent = (): Element => {\n return this.projectDescription ? (\n <div class=\"project-description\" innerHTML={this.projectDescription}>\n {this.enableEditDescription ? (\n <gxg-button\n type=\"secondary-text-icon\"\n icon=\"gemini-tools/edit\"\n onClick={this.handleDescriptionChange}\n >\n {this._componentLocale.edit}\n </gxg-button>\n ) : null}\n </div>\n ) : null;\n };\n\n private renderFrontEndTitle() {\n return this.environment.frontEnd.length <= 1\n ? this._componentLocale.environment.frontEndLang\n : this._componentLocale.environment.frontEndLangs;\n }\n\n private renderKbDates() {\n return this.kb.created || this.kb.lastBuild ? (\n <gxg-text class=\"display-inline\" type=\"text-gray\" padding=\"s\">\n {\n /* created*/\n this.kb.created\n ? `${this._componentLocale.created}: ${formatDate(\n this.kb.created,\n \"date-time-short\"\n )}`\n : null\n }\n {this.kb.created && this.kb.lastBuild ? \" - \" : null}\n {\n /* last build date */\n this.kb.lastBuild\n ? `${this._componentLocale.lastBuild}: ${formatDate(\n this.kb.lastBuild,\n \"date-time-short\"\n )}`\n : null\n }\n </gxg-text>\n ) : null;\n }\n\n // 11.RENDER() MAIN FUNCTION //\n\n render() {\n return (\n <Host>\n <div class=\"gx-ide-main-wrapper\">\n <div class=\"grid grid--basic\">\n <div class=\"kb gxi-overflow-auto\">\n <gxg-title-editable\n value={this.kb.name}\n disable-edition={!this.enableEditKBName}\n click-to-edit={true}\n fluid\n onValueChanged={this.handleKbNameChange}\n focusType=\"text\"\n debounce\n ref={el => (this.kbNameEl = el as HTMLGxgTitleEditableElement)}\n ></gxg-title-editable>\n <div class=\"align-center kb-detail\">\n <gxg-pill id=\"pill\" type=\"static\" icon=\"objects/procedure\">\n {this._componentLocale.version}: {this.kb.currentVersion}\n </gxg-pill>\n\n {this.renderKbDates()}\n </div>\n </div>\n\n <div class=\"environment\">\n <gxg-title-editable\n class=\"environment-title\"\n value={this.environment.name}\n disable-edition={!this.enableEditEnvironmentName}\n click-to-edit={true}\n title-type=\"h3\"\n ref={el => (this.envNameEl = el as HTMLGxgTitleEditableElement)}\n onValueChanged={this.handleEnvNameChange}\n focusType=\"text\"\n debounce\n ></gxg-title-editable>\n <div class=\"environment__environments\">\n <gxg-card\n cardType=\"mini\"\n class=\"environment-card\"\n cardTitle={this.renderFrontEndTitle()}\n >\n <div class=\"environment-container\">\n {this.environment?.frontEnd?.map(\n (obj: EnvironmentItemData) => (\n <div class=\"environment-item\">\n <gxg-icon\n type={obj.icon}\n color=\"onbackground\"\n style={{\n \"--mer-text__on-surface\": \"var(--gray-05);\"\n }}\n ></gxg-icon>\n {obj.name}\n </div>\n )\n )}\n </div>\n </gxg-card>\n <gxg-card\n cardType=\"mini\"\n class=\"environment-card\"\n cardTitle={this._componentLocale.environment.backEnd}\n >\n <div class=\"environment-container\">\n <div class=\"environment-item\">\n <gxg-icon\n type={this.environment.backEnd.icon}\n color=\"onbackground\"\n style={{\n \"--mer-text__on-surface\": \"var(--gray-05);\"\n }}\n ></gxg-icon>\n {this.environment.backEnd.name}\n </div>\n </div>\n </gxg-card>\n\n <gxg-card\n cardType=\"mini\"\n class=\"environment-card\"\n cardTitle={this._componentLocale.environment.dataStore}\n >\n <div class=\"environment-container\">\n <div class=\"environment-item\">\n <gxg-icon\n type={this.environment.dataStore.icon}\n color=\"onbackground\"\n style={{\n \"--mer-text__on-surface\": \"var(--gray-05);\"\n }}\n ></gxg-icon>\n {this.environment.dataStore.name}\n </div>\n </div>\n </gxg-card>\n </div>\n </div>\n\n <gxg-card\n editableTitle={false}\n cardTitle={this._componentLocale.project.title}\n class=\"project\"\n >\n {/* <gxg-tabs height=\"auto\" minWidth=\"100%\">\n <gxg-tab-bar slot=\"tab-bar-container\" displayBorder>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.project.tabs.description}\n tab=\"description\"\n is-selected\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.project.tabs.lookFeel}\n tab=\"lookFeel\"\n ></gxg-tab-button>\n <gxg-tab-button\n slot=\"tab-bar\"\n tab-label={this._componentLocale.project.tabs.architecture}\n tab=\"architecture\"\n ></gxg-tab-button>\n </gxg-tab-bar>\n <gxg-tab noPadding tab=\"description\" flexContainer>\n {this.renderProjectContent()}\n </gxg-tab>\n <gxg-tab noPadding tab=\"lookFeel\" flexContainer></gxg-tab>\n <gxg-tab noPadding tab=\"architecture\" flexContainer></gxg-tab>\n </gxg-tabs> */}\n {this.renderProjectContent()}\n </gxg-card>\n\n <gxg-card\n editableTitle={false}\n cardTitle={this._componentLocale.recentObjects.title}\n class=\"recent-objects\"\n cardType=\"section\"\n noPaddingTop\n ref={el =>\n (this.recentObjectsContainerEl = el as HTMLGxgCardElement)\n }\n >\n <div class=\"recent-objects__container\">\n {this.recentObjects?.length === 0 ? (\n <gx-ide-empty-state\n class=\"recent-objects__empty-state\"\n stateIconSrc={this.#folderIcon}\n stateTitle={\n this._componentLocale.recentObjects.emptyState.title\n }\n stateDescription={\n this._componentLocale.recentObjects.emptyState.description\n }\n ></gx-ide-empty-state>\n ) : (\n this.recentObjects?.map((obj: recentObjectData) => {\n const statusLocale = mapStatusToLocale[obj.status];\n const statusDescription =\n this._componentLocale.recentObjects.status[statusLocale];\n return (\n <gxg-card\n background=\"gray-01\"\n padding=\"m\"\n cardType=\"article\"\n class=\"recent-objects__card\"\n actionable\n onClick={() => this.openObject(obj.id)}\n >\n <div class=\"recent-objects__object\">\n <div class=\"col col-left\">\n <gxg-icon\n type={obj.typeIcon}\n color=\"auto\"\n ></gxg-icon>\n <gxg-text type=\"text-regular\" class=\"obj-name\">\n {obj.name}\n </gxg-text>\n </div>\n <div class=\"col col-right\">\n <gxg-text italic>\n {statusDescription}\n {obj.status === \"modified\"\n ? formatDate(obj.modificationDate, \"date\")\n : null}\n </gxg-text>\n {obj.status !== \"unmodified\" &&\n obj.status !== \"not-connected\" ? (\n <gxg-icon\n type={mapStatusToIcons[obj.status]}\n color=\"auto\"\n ></gxg-icon>\n ) : null}\n </div>\n </div>\n </gxg-card>\n );\n })\n )}\n </div>\n </gxg-card>\n </div>\n </div>\n <gxg-ide-loader\n loaderTitle={this._componentLocale.loader.title}\n description={this._componentLocale.loader.description}\n ref={el => (this.loaderEl = el as HTMLGxgIdeLoaderElement)}\n ></gxg-ide-loader>\n </Host>\n );\n }\n}\n\nexport type KBData = {\n name: string;\n currentVersion: string;\n created: Date;\n lastBuild?: Date;\n};\n\nexport type EnvironmentData = {\n name: string;\n frontEnd: EnvironmentItemData[];\n backEnd: EnvironmentItemData;\n dataStore: EnvironmentItemData;\n};\n\nexport type EnvironmentItemData = {\n icon: string;\n name: string;\n};\n\nexport type recentObjectData = {\n id: string;\n typeIcon: string;\n name: string;\n modificationDate: Date;\n status: RecentObjectStatus;\n};\n\nexport type RecentObjectStatus =\n | \"new\"\n | \"modified\"\n | \"conflicted\"\n | \"unmodified\"\n | \"not-connected\";\n\nexport type StatusIcons =\n // toDo: Add proper icons!!\n | \"gx-server/new\"\n | \"patterns-default-associated/modified\"\n | \"patterns-default-associated/synchronized\"\n | \"gx-server/delete\";\n\nexport type EditResult = {\n success: boolean;\n errorMessage: string;\n};\n"],"version":3}
|
|
@@ -5,10 +5,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
const index = require('./index-e227aefb.js');
|
|
6
6
|
const locale = require('./locale-ff30a5f3.js');
|
|
7
7
|
const config = require('./config-6a768514.js');
|
|
8
|
-
const
|
|
9
|
-
require('./MERCURY_ASSETS-6bbcc011.js');
|
|
8
|
+
const MERCURY_ASSETS = require('./MERCURY_ASSETS-972bf7f4.js');
|
|
10
9
|
|
|
11
|
-
const dataSelectorCss = ":host{display:grid;grid-template-rows:max-content 1fr max-content;overflow:auto;block-size:100%}.section{display:contents}.header__field-group{display:grid;grid-template-columns:1fr 1fr}.tabular-grid{contain:size}.data ch-tabular-grid-cell:is(:nth-child(2),:nth-child(3),:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}ch-tabular-grid.empty-result::part(main){overflow:hidden}ch-tabular-grid-rowset-empty{position:relative}";
|
|
10
|
+
const dataSelectorCss = ":host{display:grid;grid-template-rows:max-content 1fr max-content;overflow:auto;block-size:100%}.section{display:contents}.header__field-group{display:grid;grid-template-columns:1fr 1fr}.tabular-grid{contain:size}.data ch-tabular-grid-cell:is(:nth-child(2),:nth-child(3),:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}ch-tabular-grid.empty-result::part(main){overflow:hidden}ch-tabular-grid-rowset-empty{position:relative}";
|
|
12
11
|
|
|
13
12
|
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
14
13
|
if (kind === "a" && !f)
|
|
@@ -39,7 +38,7 @@ const CSS_BUNDLES = [
|
|
|
39
38
|
"utils/spacing",
|
|
40
39
|
"chameleon/scrollbar"
|
|
41
40
|
];
|
|
42
|
-
const FILTER_ICON =
|
|
41
|
+
const FILTER_ICON = MERCURY_ASSETS.getIconPath({
|
|
43
42
|
category: "window-tools",
|
|
44
43
|
name: "filter",
|
|
45
44
|
colorType: "on-elevation"
|