@genexus/genexus-ide-ui 0.0.99 → 0.0.101
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/ch-icon_5.cjs.entry.js +3 -2
- package/dist/cjs/ch-icon_5.cjs.entry.js.map +1 -1
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +16 -14
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js +175 -0
- package/dist/cjs/gx-ide-empty-state_2.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-import-from-design.cjs.entry.js +3 -10
- package/dist/cjs/gx-ide-import-from-design.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -5
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +41 -27
- package/dist/cjs/gx-ide-status-buttons_2.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-select-recent-comment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update-to-revision.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-template.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-template.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-card_2.cjs.entry.js +10 -5
- package/dist/cjs/gxg-card_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-combo-box_2.cjs.entry.js +62 -24
- package/dist/cjs/gxg-combo-box_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-list-box_2.cjs.entry.js +28 -3
- package/dist/cjs/gxg-list-box_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-pill.cjs.entry.js +5 -5
- package/dist/cjs/gxg-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-pills.cjs.entry.js +1 -1
- package/dist/cjs/gxg-pills.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-tab_4.cjs.entry.js +97 -17
- package/dist/cjs/gxg-tab_4.cjs.entry.js.map +1 -1
- package/dist/cjs/gxg-window-v2.cjs.entry.js +28 -0
- package/dist/cjs/gxg-window-v2.cjs.entry.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -1
- package/dist/collection/components/_helpers/card/card.css +333 -26
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +40 -0
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +180 -0
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -0
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.css +0 -1
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector.css +519 -13
- package/dist/collection/components/_helpers/list-selector/list-selector.js +1 -1
- package/dist/collection/components/_starting-template/template.css +333 -26
- package/dist/collection/components/ai-assistant/ai-assistant.css +333 -26
- package/dist/collection/components/ai-assistant/ai-message.css +0 -1
- package/dist/collection/components/bpm-application-declaration/bpm-app-declaration.css +333 -26
- package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +333 -26
- package/dist/collection/components/dashboard-home/dashboard-home.css +711 -41
- package/dist/collection/components/dashboard-home/dashboard-home.js +51 -14
- package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
- package/dist/collection/components/data-selector/data-selector.css +333 -26
- package/dist/collection/components/import-from-design/import-from-design.css +333 -26
- package/dist/collection/components/import-from-design/import-from-design.js +3 -12
- package/dist/collection/components/import-from-design/import-from-design.js.map +1 -1
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +333 -26
- package/dist/collection/components/kb-manager-import/kb-manager-import.css +333 -26
- package/dist/collection/components/new-environment/new-environment.css +333 -26
- package/dist/collection/components/new-kb/new-kb.css +333 -26
- package/dist/collection/components/new-object/new-object.css +333 -26
- package/dist/collection/components/object-selector/object-selector.css +333 -26
- package/dist/collection/components/references/references.css +333 -26
- package/dist/collection/components/share-kb/share-kb.css +333 -26
- package/dist/collection/components/start-page/recent-news.css +334 -27
- package/dist/collection/components/start-page/start-page.css +337 -26
- package/dist/collection/components/start-page/start-page.js +8 -4
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/collection/components/team-dev/commit/commit.css +333 -26
- package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +333 -26
- package/dist/collection/components/team-dev/update/update.css +333 -26
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +333 -26
- package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +333 -26
- package/dist/collection/components/ww-images/ww-images.css +333 -26
- package/dist/collection/pages/assets/common.js +1 -1
- package/dist/components/card.js +11 -5
- package/dist/components/card.js.map +1 -1
- package/dist/components/combo-box.js +62 -24
- package/dist/components/combo-box.js.map +1 -1
- package/dist/components/gx-ide-ai-assistant.js +1 -1
- package/dist/components/gx-ide-ai-assistant.js.map +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
- package/dist/components/gx-ide-card.js +1 -1
- package/dist/components/gx-ide-card.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-dashboard-home.js +32 -47
- package/dist/components/gx-ide-dashboard-home.js.map +1 -1
- package/dist/components/gx-ide-data-selector.js +1 -1
- package/dist/components/gx-ide-data-selector.js.map +1 -1
- package/dist/components/gx-ide-empty-state.d.ts +11 -0
- package/dist/components/gx-ide-empty-state.js +8 -0
- package/dist/components/gx-ide-empty-state.js.map +1 -0
- package/dist/components/gx-ide-empty-state2.js +126 -0
- package/dist/components/gx-ide-empty-state2.js.map +1 -0
- package/dist/components/gx-ide-import-from-design.js +4 -12
- package/dist/components/gx-ide-import-from-design.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-export.js +1 -1
- package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
- package/dist/components/gx-ide-kb-manager-import.js +1 -1
- package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
- package/dist/components/gx-ide-new-environment.js +1 -1
- package/dist/components/gx-ide-new-environment.js.map +1 -1
- package/dist/components/gx-ide-new-kb.js +1 -1
- package/dist/components/gx-ide-new-kb.js.map +1 -1
- package/dist/components/gx-ide-new-object.js +1 -1
- package/dist/components/gx-ide-new-object.js.map +1 -1
- package/dist/components/gx-ide-object-selector.js +1 -1
- package/dist/components/gx-ide-object-selector.js.map +1 -1
- package/dist/components/gx-ide-references.js +1 -1
- package/dist/components/gx-ide-references.js.map +1 -1
- package/dist/components/gx-ide-share-kb.js +1 -1
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +21 -11
- 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-select-recent-comment.js +1 -1
- package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update-partial-selection.js +1 -1
- package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
- package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
- package/dist/components/gx-ide-team-dev-update-to-revision.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-template.js +1 -1
- package/dist/components/gx-ide-template.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/gxg-menu-item.js +1 -1
- package/dist/components/gxg-menu-item.js.map +1 -1
- package/dist/components/gxg-pills.js +1 -1
- package/dist/components/gxg-pills.js.map +1 -1
- package/dist/components/gxg-top-state-bar2.js +46 -30
- package/dist/components/gxg-top-state-bar2.js.map +1 -1
- package/dist/components/gxg-window-v2.js +44 -0
- package/dist/components/gxg-window-v2.js.map +1 -0
- package/dist/components/icon2.js +3 -2
- package/dist/components/icon2.js.map +1 -1
- package/dist/components/list-box.js +27 -1
- package/dist/components/list-box.js.map +1 -1
- package/dist/components/list-selector.js +1 -1
- package/dist/components/list-selector.js.map +1 -1
- package/dist/components/pill.js +5 -5
- package/dist/components/pill.js.map +1 -1
- package/dist/components/recent-news.js +1 -1
- package/dist/components/recent-news.js.map +1 -1
- package/dist/components/tab-bar.js +17 -9
- package/dist/components/tab-bar.js.map +1 -1
- package/dist/components/tab-button.js +11 -4
- package/dist/components/tab-button.js.map +1 -1
- package/dist/components/tab.js +6 -3
- package/dist/components/tab.js.map +1 -1
- package/dist/components/tabs.js +73 -4
- package/dist/components/tabs.js.map +1 -1
- package/dist/esm/ch-icon_5.entry.js +3 -2
- package/dist/esm/ch-icon_5.entry.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-ai-assistant.entry.js +1 -1
- package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-card.entry.js +1 -1
- package/dist/esm/gx-ide-card.entry.js.map +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +16 -14
- package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-empty-state_2.entry.js +170 -0
- package/dist/esm/gx-ide-empty-state_2.entry.js.map +1 -0
- package/dist/esm/gx-ide-import-from-design.entry.js +3 -10
- package/dist/esm/gx-ide-import-from-design.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-object.entry.js +1 -1
- package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-references.entry.js +1 -1
- package/dist/esm/gx-ide-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +9 -5
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-status-buttons_2.entry.js +41 -27
- package/dist/esm/gx-ide-status-buttons_2.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-select-recent-comment.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update-to-revision.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-template.entry.js +1 -1
- package/dist/esm/gx-ide-template.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
- package/dist/esm/gxg-card_2.entry.js +10 -5
- package/dist/esm/gxg-card_2.entry.js.map +1 -1
- package/dist/esm/gxg-combo-box_2.entry.js +62 -24
- package/dist/esm/gxg-combo-box_2.entry.js.map +1 -1
- package/dist/esm/gxg-list-box_2.entry.js +27 -2
- package/dist/esm/gxg-list-box_2.entry.js.map +1 -1
- package/dist/esm/gxg-menu-item.entry.js +1 -1
- package/dist/esm/gxg-menu-item.entry.js.map +1 -1
- package/dist/esm/gxg-pill.entry.js +5 -5
- package/dist/esm/gxg-pill.entry.js.map +1 -1
- package/dist/esm/gxg-pills.entry.js +1 -1
- package/dist/esm/gxg-pills.entry.js.map +1 -1
- package/dist/esm/gxg-tab_4.entry.js +97 -17
- package/dist/esm/gxg-tab_4.entry.js.map +1 -1
- package/dist/esm/gxg-window-v2.entry.js +24 -0
- package/dist/esm/gxg-window-v2.entry.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +74 -7
- 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/icon-assets/mercury/tests/balanza-path.svg +3 -0
- package/dist/genexus-ide-ui/icon-assets/mercury/tests/balanza-stroke.svg +9 -0
- package/dist/genexus-ide-ui/icon-assets/mercury/tests/folder-2.svg +3 -0
- package/dist/genexus-ide-ui/p-05bc4d77.entry.js +598 -0
- package/dist/genexus-ide-ui/p-1346991a.entry.js +232 -0
- package/dist/genexus-ide-ui/p-1346991a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-b8fc93f4.entry.js → p-2c8afaa6.entry.js} +147 -112
- package/dist/genexus-ide-ui/p-2c8afaa6.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-2e6da0ef.entry.js +236 -0
- package/dist/genexus-ide-ui/p-2e6da0ef.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-8bdaef96.entry.js → p-336ee17f.entry.js} +74 -74
- package/dist/genexus-ide-ui/p-336ee17f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-382fe6fa.entry.js +331 -0
- package/dist/genexus-ide-ui/p-40d52b2f.entry.js +487 -0
- package/dist/genexus-ide-ui/p-4a5ad686.entry.js +293 -0
- package/dist/genexus-ide-ui/p-4a706d20.entry.js +583 -0
- package/dist/genexus-ide-ui/p-4bd869d3.entry.js +702 -0
- package/dist/genexus-ide-ui/p-4bd869d3.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5ca84a03.entry.js → p-4e155cd5.entry.js} +27 -4
- package/dist/genexus-ide-ui/p-4e155cd5.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-4fc6d6a7.entry.js +24 -0
- package/dist/genexus-ide-ui/p-4fc6d6a7.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-54e4b362.entry.js +270 -0
- package/dist/genexus-ide-ui/p-54e4b362.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-5507f11d.entry.js +571 -0
- package/dist/genexus-ide-ui/p-5ac58299.entry.js +238 -0
- package/dist/genexus-ide-ui/p-5bce420c.entry.js +187 -0
- package/dist/genexus-ide-ui/p-5ed3968f.entry.js +183 -0
- package/dist/genexus-ide-ui/p-5ed3968f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-73aa4e69.entry.js → p-71f8aba2.entry.js} +13 -13
- package/dist/genexus-ide-ui/{p-73aa4e69.entry.js.map → p-71f8aba2.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/p-725fe015.entry.js +273 -0
- package/dist/genexus-ide-ui/p-72e5a0db.entry.js +111 -0
- package/dist/genexus-ide-ui/p-784d3d82.entry.js +119 -0
- package/dist/genexus-ide-ui/{p-545291ad.entry.js → p-7dc3a137.entry.js} +4 -3
- package/dist/genexus-ide-ui/{p-545291ad.entry.js.map → p-7dc3a137.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-f186adfd.entry.js → p-85639fa5.entry.js} +100 -22
- package/dist/genexus-ide-ui/p-85639fa5.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-921fc4d4.entry.js +344 -0
- package/dist/genexus-ide-ui/p-9a333c79.entry.js +158 -0
- package/dist/genexus-ide-ui/p-a0180ad9.entry.js +614 -0
- package/dist/genexus-ide-ui/p-b0e539fe.entry.js +41 -0
- package/dist/genexus-ide-ui/p-b0e539fe.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-b25c9d3c.entry.js +472 -0
- package/dist/genexus-ide-ui/p-bddc1a7b.entry.js +305 -0
- package/dist/genexus-ide-ui/p-bf16cfca.entry.js +62 -0
- package/dist/genexus-ide-ui/{p-a439149b.entry.js → p-bff2603a.entry.js} +8 -3
- package/dist/genexus-ide-ui/p-bff2603a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-d648668d.entry.js +436 -0
- package/dist/genexus-ide-ui/p-e0704caf.entry.js +44 -0
- package/dist/genexus-ide-ui/p-e0d9ab03.entry.js +257 -0
- package/dist/genexus-ide-ui/{p-e585f550.entry.js → p-e3925761.entry.js} +4 -5
- package/dist/genexus-ide-ui/{p-e585f550.entry.js.map → p-e3925761.entry.js.map} +1 -1
- package/dist/node_modules/@genexus/gemini/dist/collection/components/card/card.css +13 -1
- package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pill.css +16 -51
- package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pills.css +1 -8
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab/tab.css +7 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-bar/tab-bar.css +18 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.css +17 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css +64 -13
- package/dist/node_modules/@genexus/gemini/dist/collection/components/top-state-bar/gxg-top-state-bar.css +120 -43
- package/dist/node_modules/@genexus/gemini/dist/collection/components/window-v2/window.css +3 -0
- package/dist/types/components/_helpers/empty-state/gx-ide-empty-state.d.ts +34 -0
- package/dist/types/components/dashboard-home/dashboard-home.d.ts +8 -5
- package/dist/types/components/import-from-design/import-from-design.d.ts +1 -3
- package/dist/types/components.d.ts +77 -0
- package/package.json +3 -3
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js +0 -113
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +0 -1
- package/dist/cjs/reposition-scroll-86d8fac5.js +0 -33
- package/dist/cjs/reposition-scroll-86d8fac5.js.map +0 -1
- package/dist/components/reposition-scroll.js +0 -31
- package/dist/components/reposition-scroll.js.map +0 -1
- package/dist/esm/gx-ide-recent-news.entry.js +0 -109
- package/dist/esm/gx-ide-recent-news.entry.js.map +0 -1
- package/dist/esm/reposition-scroll-cfff7017.js +0 -31
- package/dist/esm/reposition-scroll-cfff7017.js.map +0 -1
- package/dist/genexus-ide-ui/p-007a3368.entry.js +0 -158
- package/dist/genexus-ide-ui/p-050bc199.entry.js +0 -146
- package/dist/genexus-ide-ui/p-050bc199.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-148ec5e4.entry.js +0 -293
- package/dist/genexus-ide-ui/p-30365c44.entry.js +0 -241
- package/dist/genexus-ide-ui/p-30365c44.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-317e4ff6.entry.js +0 -62
- package/dist/genexus-ide-ui/p-3e87257c.entry.js +0 -41
- package/dist/genexus-ide-ui/p-3e87257c.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-420a2b62.entry.js +0 -598
- package/dist/genexus-ide-ui/p-587f3ba5.entry.js +0 -344
- package/dist/genexus-ide-ui/p-58cad79d.entry.js +0 -712
- package/dist/genexus-ide-ui/p-58cad79d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-5ba47216.entry.js +0 -305
- package/dist/genexus-ide-ui/p-5ca84a03.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6397feb4.entry.js +0 -472
- package/dist/genexus-ide-ui/p-66b88b9b.entry.js +0 -614
- package/dist/genexus-ide-ui/p-75f0ba9d.entry.js +0 -273
- package/dist/genexus-ide-ui/p-7d719234.entry.js +0 -187
- package/dist/genexus-ide-ui/p-7fe9374d.entry.js +0 -238
- package/dist/genexus-ide-ui/p-8bdaef96.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-906845cd.entry.js +0 -571
- package/dist/genexus-ide-ui/p-9c6c5a61.entry.js +0 -178
- package/dist/genexus-ide-ui/p-9c6c5a61.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9e7ea8be.entry.js +0 -44
- package/dist/genexus-ide-ui/p-a2805229.entry.js +0 -331
- package/dist/genexus-ide-ui/p-a3368c79.entry.js +0 -111
- package/dist/genexus-ide-ui/p-a439149b.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-b8fc93f4.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ca86fe87.entry.js +0 -583
- package/dist/genexus-ide-ui/p-cd0c26a2.entry.js +0 -487
- package/dist/genexus-ide-ui/p-d4d72da2.entry.js +0 -436
- package/dist/genexus-ide-ui/p-e4b63012.entry.js +0 -119
- package/dist/genexus-ide-ui/p-efa273d7.js +0 -27
- package/dist/genexus-ide-ui/p-efa273d7.js.map +0 -1
- package/dist/genexus-ide-ui/p-f186adfd.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f5034221.entry.js +0 -258
- package/dist/genexus-ide-ui/p-f5034221.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ff794656.entry.js +0 -257
- /package/dist/genexus-ide-ui/{p-420a2b62.entry.js.map → p-05bc4d77.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a2805229.entry.js.map → p-382fe6fa.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-cd0c26a2.entry.js.map → p-40d52b2f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-148ec5e4.entry.js.map → p-4a5ad686.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ca86fe87.entry.js.map → p-4a706d20.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-906845cd.entry.js.map → p-5507f11d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7fe9374d.entry.js.map → p-5ac58299.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7d719234.entry.js.map → p-5bce420c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-75f0ba9d.entry.js.map → p-725fe015.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a3368c79.entry.js.map → p-72e5a0db.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e4b63012.entry.js.map → p-784d3d82.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-587f3ba5.entry.js.map → p-921fc4d4.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-007a3368.entry.js.map → p-9a333c79.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-66b88b9b.entry.js.map → p-a0180ad9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6397feb4.entry.js.map → p-b25c9d3c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5ba47216.entry.js.map → p-bddc1a7b.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-317e4ff6.entry.js.map → p-bf16cfca.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d4d72da2.entry.js.map → p-d648668d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-9e7ea8be.entry.js.map → p-e0704caf.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ff794656.entry.js.map → p-e0d9ab03.entry.js.map} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["importFromDesignCss","DESIGN_DATA_TYPE_PANELS","DESIGN_DATA_TYPE_STENCILS","DESIGN_DATA_TYPE_IMAGES","DESIGN_DATA_TYPE_DESIGN_SYSTEM","DESIGN_DATA_TYPE_FONTS","GxIdeImportFromDesign","this","renderedFirstTime","loadedItems","Map","panelsSelected","stencilsSelected","fontsSelected","attachTreeMouseListeners","treeDataEl","addEventListener","treeMouseEnter","treeMouseLeave","removeTreeMouseListeners","removeEventListener","shrunkenTree","messageType","message","type","objectsTreeSelectedItemsChangedHandler","async","event","detail","length","item","_a","itemComposedId","id","idList","split","itemId","itemDesignType","selectedDesignType","loadedItem","getLoadedItem","designDataDetail","getDesignDataDetail","set","designType","selectedDesignItem","getCodeFactory","renderDetailDataTree","get","objectsTreeCheckedItemsChangedHandler","items","Array","from","values","currentParentId","result","startsWith","checked","parentId","push","fonts","panels","stencils","selectFile","optionPathEl","openFile","pathOnInputHandler","e","path","pathOnFileSelected","selectedFile","fileName","name","evaluateAccessToken","showAccessToken","requiresAccessTokenCallback","value","loadData","isLoading","source","token","accessTokenEl","undefined","designData","loadCallback","messageCallback","then","messages","map","loadFn","loadImageCallback","loadDesignSystemCallback","loadFontCallback","loadPanelDataCallback","returnedData","data","confirm","confirmCallback","moduleId","_b","filterModuleEl","styleName","optionStyleEl","importAsWebPanels","optionImportAsEl","cancel","cancelCallback","fitImagesHandler","fitImages","shrinkTreeHandler","shrinkTree","renderOptions","h","class","_componentLocale","options","onInput","onFileSelected","onBlur","ref","el","part","disabled","acceptFile","extensions","placeholder","pathPlaceholder","onClick","btnLoad","accessToken","style","styles","renderFormItems","module","defaultModule","defaultValue","selectEntityCallback","selectModuleCallback","label","importAs","designDataTreeDataModel","onChange","toggleTree","renderMessages","messagesList","text","renderMain","main","renderDesignTree","renderDesignTabs","renderNoDesignData","textAlign","config","gxgMessage","common","padding","maxWidth","noDesignSelected","selectDesign","treeModel","dragDisabled","dropDisabled","toggleCheckboxes","checkbox","onCheckedItemsChange","onSelectedItemsChange","renderFooter","slot","footer","btnOk","btnCancel","renderPanelTab","renderControlsTree","detailTreeModel","composition","preview","src","alt","renderImageTab","counter","noPadding","buttonsBorderAbove","tabsEl","hidden","tabs","tokens","tab","key","code","tokensFactoryRenderEl","stylesFactoryRenderEl","codeFactoryRenderEl","watchDesignDataHandler","newDesignData","leaf","caption","tree","leftImgSrc","expanded","images","designSystem","watchCounterHandler","setFirstActiveTab","watchShrinkTreeHandler","shrink","componentWillLoad","Locale","getComponentStrings","componentDidRender","componentDidRenderFirstTime","emit","componentName","disconnectedCallback","watchMessagesHandler","newValue","oldValue","scrollTop","scrollHeight","validate","isValid","loadTreeItemCompositionModel","controls","modelList","control","model","Object","assign","textEditorFactoryCallback","render","Host","noContentPadding","noContentGap","displayBorderBottom","slimmerFooter","gxIdeContainer","containerTitle","displayTitle"],"sources":["src/components/import-from-design/import-from-design.scss?tag=gx-ide-import-from-design&encapsulation=shadow","src/components/import-from-design/import-from-design.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n@import \"~@genexus/gemini/dist/collection/globals/mixins.scss\";\n\n:host {\n}\n\n/*--- Options ---*/\n.options {\n padding: var(--gx-ide-container__padding);\n border-block-end: 1px solid var(--gx-ide-container-border-color);\n grid-template-columns: auto 1fr;\n grid-template-areas:\n \"path-url-label path-url-wrapper\"\n \"access-token-label access-token\"\n \"style-label style\"\n \"module-label module\"\n \"checkboxes-options checkboxes-options\";\n\n .path-url-label {\n grid-area: path-url-label;\n }\n .path-url-wrapper {\n grid-area: path-url-wrapper;\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-row-gap);\n\n &__buttons-container {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-container-elements-spacing);\n }\n }\n .access-token-label {\n grid-area: access-token-label;\n }\n .access-token {\n grid-area: access-token;\n }\n .style-label {\n grid-area: style-label;\n }\n .style {\n grid-area: style;\n }\n .module-label {\n grid-area: module-label;\n }\n .module {\n grid-area: module;\n }\n .checkboxes-options {\n grid-area: checkboxes-options;\n }\n\n &--hide-access-token {\n grid-template-areas:\n \"path-url-label path-url-wrapper\"\n \"style-label style\"\n \"module-label module\"\n \"checkboxes-options checkboxes-options\";\n }\n\n .checkboxes-options {\n display: flex;\n justify-content: space-between;\n gap: var(--gx-ide-grid-row-gap);\n\n &__col-right {\n display: flex;\n opacity: 1;\n transition: opacity 200ms;\n gap: var(--gx-ide-grid-row-gap);\n &--hidden {\n opacity: 0;\n }\n }\n }\n}\n\n/*--- Messages Grid ---*/\n.messages-container {\n padding: var(--gx-ide-container__padding);\n height: 100%;\n overflow-y: auto;\n @include gxg-scrollbar;\n}\n\n/*--- Main ---*/\n.main {\n display: flex;\n height: 100%;\n justify-content: center;\n overflow: auto;\n .design-tree,\n .design-tabs {\n transition: flex 200ms;\n }\n .tree-container {\n flex: 1;\n }\n .design-tabs {\n flex: 2;\n\n &--fit-images {\n img {\n object-fit: contain;\n width: 100%;\n height: 100%;\n }\n }\n img {\n display: block;\n }\n }\n &--shrunken-tree {\n .tree-container {\n flex: 0.5;\n }\n .design-tabs {\n flex: 2.5;\n }\n }\n}\n.panel-tab {\n height: 100%;\n display: grid;\n grid-template-columns: 1fr 1fr;\n\n .panel-item {\n width: 100%;\n height: 100%;\n overflow: auto;\n @include gxg-scrollbar;\n font-size: var(--mer-font__size--xxs);\n line-height: normal;\n }\n}\n\n/*--- Tabs ---*/\n.tab--hidden {\n display: none;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Method,\n Watch\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/tree-view/tree-view/types\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library/dist/types/components/renders/tree-view/types\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { renderFormItems } from \"../../common/common\";\nimport { EntityData, GxOption } from \"../../common/types\";\nimport { CheckboxInfo } from \"@genexus/gemini\";\n\nconst DESIGN_DATA_TYPE_PANELS = \"panels\";\nconst DESIGN_DATA_TYPE_STENCILS = \"stencils\";\nconst DESIGN_DATA_TYPE_IMAGES = \"images\";\nconst DESIGN_DATA_TYPE_DESIGN_SYSTEM = \"design_system\";\nconst DESIGN_DATA_TYPE_FONTS = \"fonts\";\n\n@Component({\n tag: \"gx-ide-import-from-design\",\n styleUrl: \"import-from-design.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/import-from-design\"]\n})\nexport class GxIdeImportFromDesign {\n /*\nINDEX:\n1.OWN PROPERTIES\n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE EVENTS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /**\n * An array that keeps track of the tree items id's (design system data type + item id) along with the content, that will be used to save and retrieve items information, in order to avoid using a callback to get items information that was already get. loadedItemsArray will be reset every time a new design is loaded.\n */\n private loadedItems: Map<string, ItemLoadedInfo> = new Map();\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeImportFromDesignElement;\n\n /* References needed to collect data */\n private optionPathEl!: HTMLGxgFormTextElement;\n private accessTokenEl!: HTMLGxgFormTextElement;\n private optionStyleEl!: HTMLGxgComboBoxElement;\n private optionImportAsEl!: HTMLGxgFormCheckboxElement;\n private filterModuleEl!: HTMLGxIdeEntitySelectorElement;\n private messagesList: HTMLElement;\n private panelsSelected: string[] = [];\n private stencilsSelected: string[] = [];\n // private imagesSelected: string[] = [];\n // private designSystemSelected: string[] = [];\n private fontsSelected: string[] = [];\n private codeFactoryRenderEl!: HTMLElement;\n private tokensFactoryRenderEl!: HTMLElement;\n private stylesFactoryRenderEl!: HTMLElement;\n private treeDataEl!: HTMLGxgTreeViewElement;\n private tabsEl!: HTMLGxgTabsElement;\n\n // 3.STATE() VARIABLES //\n\n /**\n * The design data loaded from file\n */\n @State() designData: DesignData = null;\n @Watch(\"designData\")\n watchDesignDataHandler(newDesignData: DesignData) {\n if (newDesignData) {\n this.designDataTreeDataModel = [\n {\n id: `parent@${DESIGN_DATA_TYPE_PANELS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.panels,\n leftImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.panels.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_PANELS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n leftImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.stencils,\n leftImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.stencils.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_STENCILS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n leftImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.images,\n leftImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.images.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_IMAGES}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n leftImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.designSystem,\n leftImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.designSystem.map(item => ({\n class: \"object tree-view-item\",\n leaf: true,\n id: `${item.id}@${DESIGN_DATA_TYPE_DESIGN_SYSTEM}`,\n caption: item.name,\n leftImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n },\n {\n id: `parent@${DESIGN_DATA_TYPE_FONTS}`,\n class: \"category tree-view-item\",\n leaf: false,\n caption: this._componentLocale.tree.fonts,\n leftImgSrc: \"general/knowledge-base\",\n checkbox: true,\n checked: true,\n expanded: true,\n items: this.designData.fonts.map(item => ({\n id: `${item.id}@${DESIGN_DATA_TYPE_FONTS}`,\n class: \"object tree-view-item\",\n leaf: true,\n caption: item.name,\n leftImgSrc: \"general/generator\",\n checkbox: true,\n checked: true\n }))\n }\n ];\n }\n }\n\n /**\n * The model data loaded into the detail tree\n */\n @State() detailTreeModel: TreeViewItemModel[] = [];\n\n /**\n * If the design data is loading or not, for disabled actions\n */\n @State() isLoading = false;\n\n /**\n * The messages receive when the file is loading\n */\n @State() messages: MessageData[] = [];\n\n /**\n * The path/URL for load the design data\n */\n @State() path = \"\";\n\n /**\n * The file selected for load the design data\n */\n @State() selectedFile: File;\n\n /**\n * The type of the design data selected for show it visual tabs\n */\n @State() selectedDesignType: DesignType;\n\n /**\n * The item of the design data selected for show its contents on visual tabs\n */\n @State() selectedDesignItem: any;\n\n /**\n * When show or not the acces token input field\n */\n @State() showAccessToken: any;\n\n /**\n * the design data tree view data model\n */\n @State() designDataTreeDataModel: TreeViewItemModel[] = [];\n\n /**\n * Used to trigger a re-render after an item has been selected on renderDesignTree, in order to set the first tab as the active tab (setFirstActiveTab()), since calling this method inside objectsTreeSelectedItemsChangedHandler does not always work without a setTimeOut.\n */\n @State() counter = 0;\n @Watch(\"counter\")\n watchCounterHandler() {\n if (this.tabsEl) {\n this.tabsEl.setFirstActiveTab();\n }\n }\n\n /**\n * If true, images will be fitted in the container\n */\n @State() fitImages = false;\n\n /**\n * If true, the left tree will be shrink and expanded to allow more space for the content\n */\n @State() shrinkTree = false;\n @Watch(\"shrinkTree\")\n watchShrinkTreeHandler(shrink: boolean) {\n if (shrink) {\n this.attachTreeMouseListeners();\n } else {\n this.removeTreeMouseListeners();\n }\n }\n\n /**\n * If true the left tree will be shrunken\n */\n @State() shrunkenTree = false;\n\n @State() treeSh = false;\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * The valid extensions for the files that will be loaded in Path/URL (ie.: \".fig, .sketch\")\n */\n @Prop() readonly extensions!: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * This is a function provided by the developer that cancel the load operation.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * This is a function provided by the developer that init the process of import a design.\n */\n @Prop() readonly confirmCallback!: ConfirmCallback;\n\n /**\n * This is a function provided by the developer that return the list of types of data loaded from file or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Design System type of data.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly loadDesignSystemCallback!: LoadDesignSystemCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Font type of data.\n */\n @Prop() readonly loadFontCallback!: LoadFontCallback;\n\n /**\n * This is a function provided by the developer that return the information of an Image System type of data.\n */\n @Prop() readonly loadImageCallback!: LoadImageCallback;\n\n /**\n * This is a function provided by the developer that return the information of a Panel type of data.\n */\n @Prop() readonly loadPanelDataCallback!: LoadPanelDataCallback;\n\n /**\n * Callback invoked to determinate if accessing to a design requires an authentication token\n */\n @Prop() readonly requiresAccessTokenCallback!: RequiresAccessTokenCallback;\n\n /**\n * Applies a shadow all around\n */\n @Prop() readonly shadow = false;\n\n /**\n * The styles render in the option style selector\n */\n @Prop() readonly styles!: GxOption[];\n\n /**\n * This is a function provided by the developer for create an instance of a text editor.\n */\n // eslint-disable-next-line prettier/prettier\n @Prop() readonly textEditorFactoryCallback!: TextEditorFactoryCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\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 disconnectedCallback() {\n this.removeTreeMouseListeners();\n }\n\n // 7.LISTENERS //\n\n @Watch(\"messages\")\n watchMessagesHandler(newValue: boolean, oldValue: boolean) {\n if (newValue !== oldValue) {\n if (this.messagesList) {\n this.messagesList.scrollTop = this.messagesList.scrollHeight;\n }\n }\n }\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n // 9.LOCAL METHODS //\n\n private attachTreeMouseListeners = () => {\n this.treeDataEl.addEventListener(\"mouseenter\", this.treeMouseEnter);\n this.treeDataEl.addEventListener(\"mouseleave\", this.treeMouseLeave);\n };\n private removeTreeMouseListeners = () => {\n this.treeDataEl.removeEventListener(\"mouseenter\", this.treeMouseEnter);\n this.treeDataEl.removeEventListener(\"mouseleave\", this.treeMouseLeave);\n };\n private treeMouseEnter = () => {\n this.shrunkenTree = false;\n };\n private treeMouseLeave = () => {\n this.shrunkenTree = true;\n };\n\n private messageType = (message: MessageData): TextType => {\n if (message.type === \"error\") {\n return \"text-alert-error\";\n } else if (message.type === \"warning\") {\n return \"text-alert-warning\";\n } else {\n return \"text-gray\";\n }\n };\n\n private loadTreeItemCompositionModel(\n controls: DesignPanelControlData[]\n ): TreeViewItemModel[] {\n const modelList: TreeViewItemModel[] = [];\n for (const control of controls) {\n let model: TreeViewItemModel = {\n id: control.name,\n caption: control.name,\n leftImgSrc: control.type,\n checkbox: false,\n expanded: true,\n leaf: control.leaf\n };\n if (control.controls) {\n model = {\n ...model,\n items: this.loadTreeItemCompositionModel(control.controls)\n };\n }\n modelList.push(model);\n }\n return modelList;\n }\n\n private objectsTreeSelectedItemsChangedHandler = async (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (event.detail.length) {\n const item = event.detail[0]?.item;\n const itemComposedId = item.id;\n const idList = itemComposedId.split(\"@\");\n const itemId = idList[0];\n const itemDesignType: DesignType = idList[1] as DesignType;\n if (itemId && itemId !== \"parent\") {\n this.selectedDesignType = itemDesignType;\n const loadedItem = this.getLoadedItem(itemComposedId);\n if (!loadedItem) {\n const designDataDetail: DesignItemDataDetail =\n await this.getDesignDataDetail(itemId, this.selectedDesignType);\n this.loadedItems.set(itemComposedId, {\n designType: this.selectedDesignType,\n designDataDetail: designDataDetail\n });\n } else {\n /* Item has been queried already. The item content exists already. */\n this.selectedDesignType = loadedItem.designType;\n this.selectedDesignItem = loadedItem.designDataDetail;\n this.getCodeFactory(loadedItem.designType);\n this.renderDetailDataTree(loadedItem.designType);\n }\n }\n }\n };\n\n private getLoadedItem = (id: string): ItemLoadedInfo | undefined => {\n return this.loadedItems?.get(id);\n };\n\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n const items = Array.from(event.detail.values());\n let currentParentId = null;\n const result: { [key: string]: string[] } = {};\n\n for (const item of items) {\n if (item.item.id.startsWith(\"parent@\")) {\n currentParentId = item.item.id.split(\"@\")[1];\n result[currentParentId] = [];\n } else if (item.item.checked && currentParentId) {\n const parentId = item.item.id.split(\"@\")[1];\n if (parentId === currentParentId) {\n const id = item.item.id.split(\"@\")[0];\n result[currentParentId].push(id);\n }\n }\n }\n // const { designSystem, fonts, images, panels, stencils } = result;\n const { fonts, panels, stencils } = result;\n\n // this.designSystemSelected = designSystem;\n this.fontsSelected = fonts;\n // this.imagesSelected = images;\n this.panelsSelected = panels;\n this.stencilsSelected = stencils;\n };\n\n private selectFile = (): void => {\n this.optionPathEl.openFile();\n };\n\n private pathOnInputHandler = (e: any) => {\n this.path = e.detail;\n };\n\n private pathOnFileSelected = (e: any) => {\n this.selectedFile = e.detail[0];\n const fileName = e.detail[0].name;\n this.path = fileName;\n\n this.evaluateAccessToken();\n };\n\n private evaluateAccessToken = async () => {\n this.showAccessToken = await this.requiresAccessTokenCallback(\n this.optionPathEl.value\n );\n };\n\n private loadData = async (): Promise<void> => {\n this.isLoading = true;\n const source = this.selectedFile ? this.selectedFile : this.path;\n const token = this.accessTokenEl ? this.accessTokenEl.value : undefined;\n this.designData = null;\n await this.loadCallback(source, token, this.messageCallback).then(\n (designData: DesignData) => {\n // this.isLoading = false;\n this.messages = [];\n this.designData = designData;\n if (this.designData) {\n this.panelsSelected = [\n ...this.designData.panels.map(item => item.id)\n ];\n this.stencilsSelected = [\n ...this.designData.stencils.map(item => item.id)\n ];\n // this.imagesSelected = [\n // ...this.designData.images.map(item => item.id)\n // ];\n // this.designSystemSelected = [\n // ...this.designData.designSystem.map(item => item.id)\n // ];\n this.fontsSelected = [...this.designData.fonts.map(item => item.id)];\n } else {\n // There was probably an error\n this.panelsSelected = [];\n this.stencilsSelected = [];\n // this.imagesSelected = [];\n // this.designSystemSelected = [];\n this.fontsSelected = [];\n }\n }\n );\n this.isLoading = false;\n };\n\n private messageCallback: LoadMessageCallback = message => {\n this.messages = [...this.messages, message];\n };\n\n private getDesignDataDetail = async (\n id: string,\n designType: DesignType\n ): Promise<DesignItemDataDetail> => {\n let loadFn:\n | LoadPanelDataCallback\n | LoadImageCallback\n | LoadFontCallback\n | LoadDesignSystemCallback;\n\n switch (designType) {\n case DESIGN_DATA_TYPE_IMAGES:\n loadFn = this.loadImageCallback;\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n loadFn = this.loadDesignSystemCallback;\n break;\n case DESIGN_DATA_TYPE_FONTS:\n loadFn = this.loadFontCallback;\n break;\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n loadFn = this.loadPanelDataCallback;\n break;\n }\n\n let returnedData: DesignItemDataDetail;\n await loadFn(id).then((data: DesignItemDataDetail) => {\n this.selectedDesignType = designType;\n this.selectedDesignItem = data;\n this.getCodeFactory(designType);\n this.renderDetailDataTree(designType);\n returnedData = data;\n });\n\n return returnedData;\n };\n\n private getCodeFactory(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.textEditorFactoryCallback(\n \"html\",\n this.codeFactoryRenderEl,\n this.selectedDesignItem.code\n );\n break;\n case DESIGN_DATA_TYPE_DESIGN_SYSTEM:\n this.textEditorFactoryCallback(\n \"tokens\",\n this.tokensFactoryRenderEl,\n this.selectedDesignItem.tokens\n );\n this.textEditorFactoryCallback(\n \"styles\",\n this.stylesFactoryRenderEl,\n this.selectedDesignItem.styles\n );\n break;\n }\n }\n\n private confirm = (): void => {\n this.confirmCallback({\n panels: this.panelsSelected,\n stencils: this.stencilsSelected,\n fonts: this.fontsSelected,\n /* images: this.imagesSelected, */\n moduleId: this.filterModuleEl?.value?.id,\n styleName: this.optionStyleEl.value,\n importAsWebPanels: this.optionImportAsEl.checked\n });\n };\n\n private cancel = (): void => {\n this.cancelCallback();\n this.isLoading = false;\n };\n\n private fitImagesHandler = (e: CustomEvent<CheckboxInfo>) => {\n this.fitImages = e.detail.value;\n };\n\n private shrinkTreeHandler = (e: CustomEvent<CheckboxInfo>) => {\n const checked = e.detail.value;\n this.shrinkTree = checked;\n if (checked) {\n this.shrunkenTree = true;\n } else {\n this.shrunkenTree = false;\n }\n };\n\n // 9.LOCAL METHODS -> RENDERS //\n\n private renderOptions = (): Element => {\n return (\n <div\n class={{\n \"options grid\": true,\n \"options--hide-access-token\": !this.showAccessToken\n }}\n >\n {/* #path/url label*/}\n <gxg-label class=\"path-url-label\">\n {this._componentLocale.options.path}\n </gxg-label>\n\n <div class=\"path-url-wrapper\">\n {/* #path/url input*/}\n <gxg-form-text\n value={this.path}\n onInput={this.pathOnInputHandler}\n onFileSelected={this.pathOnFileSelected}\n onBlur={this.evaluateAccessToken}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.optionPathEl = el as HTMLGxgFormTextElement)\n }\n part=\"option-path\"\n disabled={this.isLoading}\n type=\"file\"\n acceptFile={this.extensions}\n class=\"path-url\"\n placeholder={this._componentLocale.options.pathPlaceholder}\n ></gxg-form-text>\n\n <div class=\"path-url-wrapper__buttons-container\">\n {/* #select file button*/}\n <gxg-button\n id=\"button-select-file\"\n type=\"primary-text-only\"\n onClick={this.selectFile}\n part=\"gxg-button gxg-button--select-file\"\n disabled={this.isLoading}\n class=\"select-file\"\n >\n ...\n </gxg-button>\n\n {/* #load file button*/}\n <gxg-button\n id=\"button-load\"\n type=\"primary-text-only\"\n onClick={this.loadData}\n part=\"gxg-button gxg-button--load\"\n disabled={this.path.length === 0 || this.isLoading}\n class=\"load-file\"\n >\n {this._componentLocale.options.btnLoad}\n </gxg-button>\n </div>\n </div>\n\n {/* #access token*/}\n {this.showAccessToken\n ? [\n <gxg-label class={{ \"access-token-label\": true }}>\n {this._componentLocale.options.accessToken}\n </gxg-label>,\n <gxg-form-text\n class={{ \"access-token\": true }}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.accessTokenEl = el as HTMLGxgFormTextElement)\n }\n part=\"access-token\"\n disabled={this.isLoading}\n ></gxg-form-text>\n ]\n : null}\n\n {/* #style label*/}\n <gxg-label class=\"style-label\">\n {this._componentLocale.options.style}\n </gxg-label>\n\n {/* #style*/}\n <gxg-combo-box\n disabled={!this.styles || this.isLoading}\n display-validation-styles\n display-validation-message\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.optionStyleEl = el as HTMLGxgComboBoxElement)\n }\n part=\"option-style\"\n class=\"style\"\n >\n {renderFormItems(\"gxg-combo-box-item\", this.styles ?? [])}\n </gxg-combo-box>\n\n {/* #module label*/}\n <gxg-label class=\"module-label\">\n {this._componentLocale.options.module}\n </gxg-label>\n\n {/* #module*/}\n <gx-ide-entity-selector\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.filterModuleEl = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module\"\n ></gx-ide-entity-selector>\n <div class=\"checkboxes-options\">\n {/* # import as web panels*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.importAs}\n class=\"import-as-web-panels\"\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.optionImportAsEl = el as HTMLGxgFormCheckboxElement)\n }\n part=\"option-import-as-web-panels\"\n disabled={this.isLoading}\n ></gxg-form-checkbox>\n\n <div\n class={{\n \"checkboxes-options__col-right\": true,\n \"checkboxes-options__col-right--hidden\":\n !this.designDataTreeDataModel.length\n }}\n >\n {/* # fit images*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.fitImages}\n part=\"fit-images-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onChange={this.fitImagesHandler}\n ></gxg-form-checkbox>\n\n {/* # shrink tree*/}\n <gxg-form-checkbox\n label={this._componentLocale.options.toggleTree}\n part=\"shrink-tree-checkbox\"\n disabled={this.isLoading || !this.designDataTreeDataModel.length}\n onChange={this.shrinkTreeHandler}\n ></gxg-form-checkbox>\n </div>\n </div>\n </div>\n );\n };\n\n private renderMessages = (): Element => {\n return this.messages.length > 0 ? (\n <div\n class=\"messages-container\"\n ref={(el: HTMLElement) => (this.messagesList = el as HTMLElement)}\n >\n {this.messages.map(message => (\n <gxg-text type={this.messageType(message)}>\n {message.type}: {message.text}\n </gxg-text>\n ))}\n </div>\n ) : null;\n };\n\n private renderDetailDataTree(designType: string) {\n switch (designType) {\n case DESIGN_DATA_TYPE_PANELS:\n case DESIGN_DATA_TYPE_STENCILS:\n this.detailTreeModel = this.loadTreeItemCompositionModel(\n this.selectedDesignItem.composition.controls\n );\n break;\n }\n }\n\n private renderMain = () => {\n if (this.designData) {\n return (\n /* #main*/\n <main\n class={{ \"main\": true, \"main--shrunken-tree\": this.shrunkenTree }}\n >\n {[this.renderDesignTree(), this.renderDesignTabs()]}\n </main>\n );\n } else if (!this.isLoading) {\n return <main class=\"main\">{this.renderNoDesignData()}</main>;\n } else {\n return this.renderMessages();\n }\n };\n\n private renderNoDesignData = () => {\n if (!this.isLoading) {\n return (\n <gxg-text\n textAlign={config.gxgMessage.common.textAlign as TextAlign}\n padding={config.gxgMessage.common.textAlign as TextPadding}\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"no-design-selected\"\n >\n {this._componentLocale.messages.noDesignSelected} <br />\n <gxg-text\n type=\"text-link-no-line\"\n onClick={this.selectFile}\n part=\"begin-by-loading-one\"\n >\n {this._componentLocale.messages.selectDesign}\n </gxg-text>\n </gxg-text>\n );\n }\n };\n\n private renderDesignTree = (): HTMLGxgTreeViewElement => {\n return (\n <div class=\"tree-container\">\n <gxg-tree-view\n part=\"data-tree\"\n class=\"design-tree\"\n id=\"data-tree\"\n treeModel={this.designDataTreeDataModel}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={this.objectsTreeCheckedItemsChangedHandler}\n onSelectedItemsChange={this.objectsTreeSelectedItemsChangedHandler}\n ref={el => (this.treeDataEl = el as HTMLGxgTreeViewElement)}\n ></gxg-tree-view>\n </div>\n );\n };\n\n private renderFooter = () => {\n return [\n <gxg-button\n id=\"button-ok\"\n type=\"primary-text-only\"\n onClick={this.confirm}\n part=\"gxg-button gxg-button--ok\"\n disabled={this.isLoading}\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnOk}\n </gxg-button>,\n <gxg-button\n id=\"button-cancel\"\n type=\"outlined\"\n onClick={this.cancel}\n part=\"gxg-button gxg-button--cancel\"\n slot=\"footer-end\"\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n ];\n };\n\n private renderPanelTab = (): Element => {\n const renderControlsTree =\n (this.selectedDesignType === DESIGN_DATA_TYPE_PANELS ||\n this.selectedDesignType === DESIGN_DATA_TYPE_STENCILS) &&\n this.detailTreeModel.length > 0;\n\n return (\n <div\n class={{\n \"panel-tab\": true,\n \"panel-tab--controls-tree\": renderControlsTree\n }}\n part=\"data-panel-composition-container\"\n >\n {this.selectedDesignItem &&\n this.selectedDesignItem.composition &&\n this.selectedDesignItem.composition.preview ? (\n <div part=\"data-panel-composition-preview\" class=\"panel-item\">\n <img\n src={\n this.selectedDesignItem && this.selectedDesignItem.composition\n ? this.selectedDesignItem.composition.preview\n : undefined\n }\n alt=\"Preview\"\n />\n </div>\n ) : null}\n\n {renderControlsTree ? (\n <gxg-tree-view\n part=\"data-panel-composition-tree\"\n class=\"panel-item\"\n id=\"gxg-tree-panel-data\"\n treeModel={this.detailTreeModel}\n dragDisabled={true}\n dropDisabled={true}\n ></gxg-tree-view>\n ) : null}\n </div>\n );\n };\n\n private renderImageTab = () => {\n return (\n <div part=\"data-panel-composition-preview\" class=\"data-preview\">\n <img\n src={this.selectedDesignItem ? this.selectedDesignItem : undefined}\n alt=\"Preview\"\n />\n </div>\n );\n };\n\n private renderDesignTabs = (): Element => {\n this.counter++;\n return (\n <gxg-tabs\n class={{\n \"design-tabs\": true,\n \"design-tabs--fit-images\": this.fitImages\n }}\n part=\"data-tabs\"\n no-border\n noPadding\n buttonsBorderAbove\n ref={(el: HTMLGxgTabsElement) =>\n (this.tabsEl = el as HTMLGxgTabsElement)\n }\n >\n <gxg-tab-bar slot=\"tab-bar-container\">\n {/* tokens*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.tokens}\n tab=\"tokens\"\n key=\"tokens\"\n is-selected\n ></gxg-tab-button>\n {/* styles*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType !== DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.styles}\n tab=\"styles\"\n key=\"styles\"\n ></gxg-tab-button>\n {/* composition*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n this.selectedDesignType === DESIGN_DATA_TYPE_DESIGN_SYSTEM\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.composition}\n tab=\"composition\"\n key=\"composition\"\n is-selected\n ></gxg-tab-button>\n {/* code*/}\n <gxg-tab-button\n hidden={\n !this.selectedDesignType ||\n (this.selectedDesignType !== DESIGN_DATA_TYPE_PANELS &&\n this.selectedDesignType !== DESIGN_DATA_TYPE_STENCILS)\n }\n slot=\"tab-bar\"\n tab-label={this._componentLocale.tabs.code}\n tab=\"code\"\n key=\"code\"\n ></gxg-tab-button>\n </gxg-tab-bar>\n {/* tokens */}\n <gxg-tab tab=\"tokens\" key=\"tokens\">\n <div\n ref={(el: HTMLElement) =>\n (this.tokensFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n {/* styles */}\n <gxg-tab tab=\"styles\" key=\"styles\">\n <div\n ref={(el: HTMLElement) =>\n (this.stylesFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n {/* composition */}\n <gxg-tab tab=\"composition\" key=\"composition\">\n {this.selectedDesignType === DESIGN_DATA_TYPE_IMAGES ||\n this.selectedDesignType === DESIGN_DATA_TYPE_FONTS\n ? this.renderImageTab()\n : this.renderPanelTab()}\n </gxg-tab>\n {/* code */}\n <gxg-tab tab=\"code\" key=\"code\">\n <div\n ref={(el: HTMLElement) =>\n (this.codeFactoryRenderEl = el as HTMLElement)\n }\n ></div>\n </gxg-tab>\n </gxg-tabs>\n );\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noContentGap\n displayBorderBottom\n part=\"options-container\"\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {this.renderOptions()}\n {this.renderMain()}\n {this.renderFooter()}\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadMessageCallback = (message: MessageData) => void;\nexport type LoadCallback = (\n source: string | File,\n token: string | undefined,\n onMessage: LoadMessageCallback\n) => Promise<DesignData | undefined>;\nexport type LoadPanelDataCallback = (id: string) => Promise<DesignPanelData>;\nexport type LoadImageCallback = (id: string) => Promise<string>;\nexport type LoadFontCallback = (id: string) => Promise<string>;\nexport type LoadDesignSystemCallback = (\n id: string\n) => Promise<DesignSystemData>;\nexport type TextEditorFactoryCallback = (\n type: TextEditorType,\n parent: HTMLElement,\n text: string\n) => Promise<void>;\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type RequiresAccessTokenCallback = (source: string) => Promise<boolean>;\nexport type ConfirmCallback = (data: DesignImportData) => Promise<boolean>;\nexport type CancelCallback = () => Promise<void>;\n\nexport interface MessageData {\n type: \"error\" | \"warning\" | \"info\";\n text: string;\n}\n\nexport interface DesignData {\n panels: DesignItemData[];\n stencils: DesignItemData[];\n images: DesignItemData[];\n designSystem: DesignItemData[];\n fonts: DesignItemData[];\n}\n\nexport interface DesignItemData {\n id: string;\n name: string;\n}\n\nexport interface DesignPanelData {\n composition: DesignPanelCompositionData;\n code?: string;\n}\n\nexport interface DesignPanelCompositionData {\n preview?: string;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignPanelControlData {\n name: string;\n type: string;\n leaf?: boolean;\n controls: DesignPanelControlData[];\n}\n\nexport interface DesignSystemData {\n tokens: string;\n styles: string;\n}\n\ntype DesignItemDataDetail = DesignPanelData | DesignSystemData | string;\n\nexport interface DesignImportData {\n panels: string[];\n stencils: string[];\n fonts: string[];\n moduleId: string;\n /* images: string[]; */\n styleName: string;\n importAsWebPanels: boolean;\n}\n\nexport type DesignType =\n | typeof DESIGN_DATA_TYPE_PANELS\n | typeof DESIGN_DATA_TYPE_STENCILS\n | typeof DESIGN_DATA_TYPE_IMAGES\n | typeof DESIGN_DATA_TYPE_DESIGN_SYSTEM\n | typeof DESIGN_DATA_TYPE_FONTS;\n\nexport type ItemLoadedInfo = {\n designType: DesignType;\n designDataDetail: DesignItemDataDetail;\n};\n\ntype TextEditorType = \"html\" | \"styles\" | \"tokens\";\n"],"mappings":"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"}
|
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
import { r as t, c as e, h as r, H as i, g as a } from "./p-2776d2f9.js";
|
|
2
|
-
|
|
3
|
-
import { L as s } from "./p-74d59062.js";
|
|
4
|
-
|
|
5
|
-
const o = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.tree-container{display:flex;height:100%;width:100%;box-sizing:border-box}:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{font-family:var(--mer-font-family--primary);display:block;height:100%;flex-basis:286px;flex-shrink:0;height:100%;overflow-y:auto}.gx-ide-main-wrapper{padding:0 10px 52px 10px;background-color:var(--mer-color__neutral-gray--1000);height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:var(--mer-spacing--sm)}.header{padding-block-start:var(--mer-spacing--sm);display:flex;flex-direction:column}.header__actions-wrapper{display:flex;gap:var(--ai-assistant-header-actions-gap);margin-inline-start:auto}.header__first-row{display:flex;gap:var(--mer-spacing--xs);align-items:center;justify-content:space-between}.header__filter{margin-block-start:var(--mer-spacing--xs)}.header__second-row{transition:100ms grid-template-rows;display:grid;grid-template-rows:0fr}.header__second-row--visible{grid-template-rows:1fr}.header .filter-inner-wrapper{overflow:hidden}.messages-wrapper{position:relative;overflow:auto;display:flex;flex-direction:column;scroll-behavior:smooth;}.messages-wrapper::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.messages-wrapper::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.messages-wrapper::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.messages-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.messages-wrapper::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.messages{display:flex;flex-direction:column;list-style-type:none;padding:0;margin:0}.prompt{position:relative;margin-top:auto}.prompt__textarea::part(textarea-wrapper){border:none;background-color:var(--mer-color__neutral-gray--1100)}.prompt__textarea::part(textarea){border:none}.prompt__shortcuts{position:absolute;display:flex;align-items:center;gap:var(--mer-spacing--xxs);padding-inline-end:var(--mer-spacing--xs);right:0;top:0;height:100%}.prompt__shortcut{color:var(--mer-color__neutral-gray--400);font-size:var(--mer-font__size--xxs);padding:var(--mer-spacing--xxxs) var(--mer-spacing--xs);background-color:var(--mer-color__neutral-gray--700);border-radius:var(--mer-border__radius--xs)}";
|
|
6
|
-
|
|
7
|
-
const l = class {
|
|
8
|
-
constructor(i) {
|
|
9
|
-
t(this, i);
|
|
10
|
-
this.componentDidRenderFirstTime = e(this, "componentDidRenderFirstTime", 7);
|
|
11
|
-
this.renderedFirstTime = false;
|
|
12
|
-
this.setFocus = true;
|
|
13
|
-
this.scrollToBottomFlag = true;
|
|
14
|
-
// 9.LOCAL METHODS //
|
|
15
|
-
this.evaluateAiInProgress = () => {
|
|
16
|
-
var t;
|
|
17
|
-
if (((t = this.messages) === null || t === void 0 ? void 0 : t.length) > 0 && this.messages[this.messages.length - 1].type === "assistant-in-progress") {
|
|
18
|
-
this.aIInProgress = true;
|
|
19
|
-
} else {
|
|
20
|
-
this.aIInProgress = false;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
this.evaluateAiStatus = () => {
|
|
24
|
-
var t;
|
|
25
|
-
if (((t = this.messages) === null || t === void 0 ? void 0 : t.length) === 0) {
|
|
26
|
-
this.assistantStatus = "indeterminate";
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (this.messages[this.messages.length - 1].type === "assistant-in-progress" || this.messages[this.messages.length - 1].type === "user") {
|
|
30
|
-
this.assistantStatus = "indeterminate";
|
|
31
|
-
} else if (this.messages[this.messages.length - 1].type === "assistant-error") {
|
|
32
|
-
this.assistantStatus = "error";
|
|
33
|
-
} else {
|
|
34
|
-
this.assistantStatus = "success";
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
this.renderMessage = (t, e) => {
|
|
38
|
-
if (t.text.length > 0) {
|
|
39
|
-
return r("gx-ide-ai-message", {
|
|
40
|
-
message: t.text,
|
|
41
|
-
messageType: t.type,
|
|
42
|
-
hidden: t.hidden,
|
|
43
|
-
filterValue: this.filterValue,
|
|
44
|
-
key: `${e.toString()}-${t.type}`,
|
|
45
|
-
translations: this._componentLocale.aiMessage
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
this.textAreaInputHandler = () => {
|
|
50
|
-
this.userHasTyped = true;
|
|
51
|
-
this.showFilter = false;
|
|
52
|
-
this.filterEl.value = "";
|
|
53
|
-
this.filterValue = "";
|
|
54
|
-
this.scrollToBottomFlag = true;
|
|
55
|
-
};
|
|
56
|
-
this.promptEnterHandler = async t => {
|
|
57
|
-
/* First remove double spaces */
|
|
58
|
-
const e = t.detail.replace(/\s+/g, " ");
|
|
59
|
-
/* Update textarea value to get the proper height */ this.textAreaEl.value = e;
|
|
60
|
-
setTimeout((() => {
|
|
61
|
-
/* Then save the actual height (setTimeOut required) */
|
|
62
|
-
this.lastUserMessageHeight = this.textAreaEl.offsetHeight;
|
|
63
|
-
}), 0);
|
|
64
|
-
/* The clear the textarea */ this.textAreaEl.value = "";
|
|
65
|
-
/* Insert the user message */ this.addMessage({
|
|
66
|
-
type: "user",
|
|
67
|
-
text: e
|
|
68
|
-
});
|
|
69
|
-
/* Call the callback */ if (this.userMessageCallback && !this.aIInProgress) {
|
|
70
|
-
this.aIInProgress = true;
|
|
71
|
-
this.userMessageCallback(e).then((() => {
|
|
72
|
-
this.aIInProgress = false;
|
|
73
|
-
}));
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
this.filterMessagesHandler = t => {
|
|
77
|
-
this.scrollToBottomFlag = false;
|
|
78
|
-
this.filterValue = t.detail.toLowerCase();
|
|
79
|
-
const e = [ ...this.messages ];
|
|
80
|
-
e.forEach((t => {
|
|
81
|
-
if (t.text.toLowerCase().includes(this.filterValue)) {
|
|
82
|
-
t.hidden = false;
|
|
83
|
-
} else {
|
|
84
|
-
t.hidden = true;
|
|
85
|
-
}
|
|
86
|
-
}));
|
|
87
|
-
this.messages = e;
|
|
88
|
-
};
|
|
89
|
-
this.clearMessages = () => {
|
|
90
|
-
this.messages = [];
|
|
91
|
-
this.textAreaEl.focus();
|
|
92
|
-
};
|
|
93
|
-
this.attachShortcuts = () => {
|
|
94
|
-
var t;
|
|
95
|
-
if (((t = this.focusShortcuts) === null || t === void 0 ? void 0 : t.length) > 0) {
|
|
96
|
-
const t = this.focusShortcuts.findIndex((t => t.toLocaleLowerCase() === "ctrl"));
|
|
97
|
-
const e = this.focusShortcuts.findIndex((t => t.toLocaleLowerCase() === "shift"));
|
|
98
|
-
const r = this.focusShortcuts.findIndex((t => t.toLocaleLowerCase() === "cmd"));
|
|
99
|
-
const i = this.focusShortcuts.find((t => t.toLocaleLowerCase() !== "ctrl" && t.toLocaleLowerCase() !== "shift" && t.toLocaleLowerCase() !== "cmd")).toLowerCase();
|
|
100
|
-
document.addEventListener("keydown", (a => {
|
|
101
|
-
if (a.key === i && t !== -1 && a.ctrlKey) {
|
|
102
|
-
this.textAreaEl.focus();
|
|
103
|
-
this.userHasTyped = true;
|
|
104
|
-
} else if (a.key === i && e !== -1 && a.shiftKey) {
|
|
105
|
-
this.textAreaEl.focus();
|
|
106
|
-
this.userHasTyped = true;
|
|
107
|
-
} else if (a.key === i && r !== -1 && a.metaKey) {
|
|
108
|
-
this.textAreaEl.focus();
|
|
109
|
-
this.userHasTyped = true;
|
|
110
|
-
}
|
|
111
|
-
}));
|
|
112
|
-
}
|
|
113
|
-
};
|
|
114
|
-
this.promptArrowUpHandler = () => {
|
|
115
|
-
var t;
|
|
116
|
-
this.userHasTyped = true;
|
|
117
|
-
const e = (t = this.messages) === null || t === void 0 ? void 0 : t.find((t => t.type === "user"));
|
|
118
|
-
if (e) {
|
|
119
|
-
if (this.lastUserMessageHeight) {
|
|
120
|
-
this.textareaShadowPart.style.height = `${this.lastUserMessageHeight}px`;
|
|
121
|
-
}
|
|
122
|
-
this.textAreaEl.value = e.text;
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
this.toggleFilterHandler = () => {
|
|
126
|
-
this.showFilter = !this.showFilter;
|
|
127
|
-
if (this.showFilter) {
|
|
128
|
-
this.filterEl.focus();
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
this.promptFocusHandler = () => {
|
|
132
|
-
this.promptHasFocus = true;
|
|
133
|
-
};
|
|
134
|
-
this.promptBlurHandler = () => {
|
|
135
|
-
this.promptHasFocus = false;
|
|
136
|
-
};
|
|
137
|
-
this.scrollToBottom = () => {
|
|
138
|
-
if (this.scrollToBottomFlag) {
|
|
139
|
-
this.messagesWrapperEl.scrollTo(0, this.messagesWrapperEl.scrollHeight);
|
|
140
|
-
this.messagesWrapperEl.scrollTop = this.messagesWrapperEl.scrollHeight - this.messagesWrapperEl.clientHeight;
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
this.userHasTyped = false;
|
|
144
|
-
this.aIInProgress = false;
|
|
145
|
-
this.showFilter = false;
|
|
146
|
-
this.promptHasFocus = false;
|
|
147
|
-
this.filterValue = undefined;
|
|
148
|
-
this.messages = [];
|
|
149
|
-
this.promptMaxHeight = "128px";
|
|
150
|
-
this.assistantStatus = "indeterminate";
|
|
151
|
-
this.focusShortcuts = undefined;
|
|
152
|
-
this.userMessageCallback = undefined;
|
|
153
|
-
this.promptValue = undefined;
|
|
154
|
-
this.filter = true;
|
|
155
|
-
}
|
|
156
|
-
watchAIInProgressHandler(t) {
|
|
157
|
-
if (!t) {
|
|
158
|
-
this.setFocus = true;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
watchMessagesHandler() {
|
|
162
|
-
this.evaluateAiInProgress();
|
|
163
|
-
this.evaluateAiStatus();
|
|
164
|
-
}
|
|
165
|
-
// 6.COMPONENT LIFECYCLE METHODS //
|
|
166
|
-
async componentWillLoad() {
|
|
167
|
-
this._componentLocale = await s.getComponentStrings(this.el);
|
|
168
|
-
this.evaluateAiInProgress();
|
|
169
|
-
this.evaluateAiStatus();
|
|
170
|
-
this.attachShortcuts();
|
|
171
|
-
}
|
|
172
|
-
componentDidLoad() {
|
|
173
|
-
this.textareaShadowPart = this.textAreaEl.shadowRoot.querySelector("textarea");
|
|
174
|
-
}
|
|
175
|
-
componentDidRender() {
|
|
176
|
-
if (!this.renderedFirstTime) {
|
|
177
|
-
this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
|
|
178
|
-
this.renderedFirstTime = true;
|
|
179
|
-
}
|
|
180
|
-
if (this.setFocus) {
|
|
181
|
-
setTimeout((() => {
|
|
182
|
-
/* Doesn't seems to work without the setTimeout */
|
|
183
|
-
this.textAreaEl.focus();
|
|
184
|
-
this.setFocus = false;
|
|
185
|
-
}), 0);
|
|
186
|
-
}
|
|
187
|
-
setTimeout((() => {
|
|
188
|
-
this.scrollToBottom();
|
|
189
|
-
}), 200);
|
|
190
|
-
}
|
|
191
|
-
// 7.LISTENERS //
|
|
192
|
-
// 8.PUBLIC METHODS API //
|
|
193
|
-
/**
|
|
194
|
-
* Clear the list of messages
|
|
195
|
-
*/
|
|
196
|
-
async clear() {
|
|
197
|
-
this.messages = [];
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Add a message. This method will be used by the host to add messages from the assistant
|
|
201
|
-
*/ async addMessage(t) {
|
|
202
|
-
var e;
|
|
203
|
-
if (((e = t.text) === null || e === void 0 ? void 0 : e.length) > 0) {
|
|
204
|
-
const e = [ ...this.messages ];
|
|
205
|
-
const r = (e === null || e === void 0 ? void 0 : e.length) > 0 && e[e.length - 1].type === "assistant-in-progress";
|
|
206
|
-
if (r) {
|
|
207
|
-
e.pop();
|
|
208
|
-
}
|
|
209
|
-
e.push(t);
|
|
210
|
-
this.messages = e;
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
// 10.RENDER() FUNCTION //
|
|
214
|
-
render() {
|
|
215
|
-
var t, e;
|
|
216
|
-
return r(i, {
|
|
217
|
-
class: {
|
|
218
|
-
[`assistant--${this.assistantStatus}`]: true,
|
|
219
|
-
"assistant--in-progress": this.aIInProgress
|
|
220
|
-
}
|
|
221
|
-
}, r("div", {
|
|
222
|
-
class: "gx-ide-main-wrapper"
|
|
223
|
-
}, r("header", {
|
|
224
|
-
class: "header"
|
|
225
|
-
}, r("div", {
|
|
226
|
-
class: "header__first-row"
|
|
227
|
-
}, r("gxg-title", {
|
|
228
|
-
type: "title-02"
|
|
229
|
-
}, this._componentLocale.componentName), r("div", {
|
|
230
|
-
class: "header__actions-wrapper"
|
|
231
|
-
}, this.filter ? r("gxg-button", {
|
|
232
|
-
class: "header__filter-button",
|
|
233
|
-
type: "tertiary",
|
|
234
|
-
icon: "menus/find",
|
|
235
|
-
onClick: this.toggleFilterHandler,
|
|
236
|
-
disabled: this.messages.length === 0
|
|
237
|
-
}) : null, r("gxg-button", {
|
|
238
|
-
class: "header__clear-button",
|
|
239
|
-
type: "tertiary",
|
|
240
|
-
icon: "bpm/delete",
|
|
241
|
-
onClick: this.clearMessages,
|
|
242
|
-
disabled: this.messages.length === 0
|
|
243
|
-
}))), this.filter ? r("div", {
|
|
244
|
-
class: {
|
|
245
|
-
"header__second-row": true,
|
|
246
|
-
"header__second-row--visible": this.showFilter
|
|
247
|
-
}
|
|
248
|
-
}, r("div", {
|
|
249
|
-
class: "filter-inner-wrapper"
|
|
250
|
-
}, r("gxg-form-text", {
|
|
251
|
-
class: "header__filter",
|
|
252
|
-
onInput: this.filterMessagesHandler,
|
|
253
|
-
ref: t => this.filterEl = t
|
|
254
|
-
}))) : null), r("div", {
|
|
255
|
-
class: {
|
|
256
|
-
"messages-wrapper": true
|
|
257
|
-
},
|
|
258
|
-
ref: t => this.messagesWrapperEl = t
|
|
259
|
-
}, ((t = this.messages) === null || t === void 0 ? void 0 : t.length) ? r("ol", {
|
|
260
|
-
class: {
|
|
261
|
-
messages: true
|
|
262
|
-
}
|
|
263
|
-
}, this.messages.map(((t, e) => this.renderMessage(t, e)))) : null), r("div", {
|
|
264
|
-
class: {
|
|
265
|
-
prompt: true
|
|
266
|
-
}
|
|
267
|
-
}, r("gxg-form-textarea", {
|
|
268
|
-
ai: true,
|
|
269
|
-
class: "prompt__textarea",
|
|
270
|
-
value: this.promptValue,
|
|
271
|
-
maxHeight: this.promptMaxHeight,
|
|
272
|
-
placeholder: this.aIInProgress ? this._componentLocale.processingQueryPlaceholder : this._componentLocale.promptPlaceholder,
|
|
273
|
-
onInput: this.textAreaInputHandler,
|
|
274
|
-
onEnter: this.promptEnterHandler,
|
|
275
|
-
onArrowUpPressed: this.promptArrowUpHandler,
|
|
276
|
-
onBlur: this.promptBlurHandler,
|
|
277
|
-
onFocus: this.promptFocusHandler,
|
|
278
|
-
disabled: this.aIInProgress,
|
|
279
|
-
ref: t => this.textAreaEl = t
|
|
280
|
-
}), !this.userHasTyped && !this.aIInProgress && !this.promptHasFocus && ((e = this.focusShortcuts) === null || e === void 0 ? void 0 : e.length) > 0 ? r("div", {
|
|
281
|
-
class: {
|
|
282
|
-
prompt__shortcuts: true
|
|
283
|
-
}
|
|
284
|
-
}, this.focusShortcuts.map(((t, e) => e <= 2 ? r("span", {
|
|
285
|
-
class: "prompt__shortcut"
|
|
286
|
-
}, t) : null))) : null)));
|
|
287
|
-
}
|
|
288
|
-
static get assetsDirs() {
|
|
289
|
-
return [ "gx-ide-assets/ai-assistant" ];
|
|
290
|
-
}
|
|
291
|
-
get el() {
|
|
292
|
-
return a(this);
|
|
293
|
-
}
|
|
294
|
-
static get watchers() {
|
|
295
|
-
return {
|
|
296
|
-
aIInProgress: [ "watchAIInProgressHandler" ],
|
|
297
|
-
messages: [ "watchMessagesHandler" ]
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
};
|
|
301
|
-
|
|
302
|
-
l.style = o;
|
|
303
|
-
|
|
304
|
-
export { l as gx_ide_ai_assistant };
|
|
305
|
-
//# sourceMappingURL=p-5ba47216.entry.js.map
|