@genexus/genexus-ide-ui 1.0.2 → 1.0.4
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/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-bpm-assign-roles.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-timer-duration.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-connect-gx-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-container_2.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 +1 -1
- 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-design-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +3 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.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-loader.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
- 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-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 +2 -2
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js +4 -3
- package/dist/cjs/gx-ide-recent-news.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 +5 -4
- 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-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-wf-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-wf-settings.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/loader.cjs.js +1 -1
- package/dist/collection/components/_helpers/card/card.css +0 -40
- package/dist/collection/components/_helpers/container/container.js.map +1 -1
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +0 -40
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js +20 -1
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
- package/dist/collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.en.json +1 -1
- package/dist/collection/components/_helpers/ide-loader/ide-loader.css +1 -0
- package/dist/collection/components/_helpers/list-selector/list-selector.css +0 -40
- package/dist/collection/components/_starting-template/template.css +0 -40
- package/dist/collection/components/ai-assistant/ai-assistant.css +0 -40
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +0 -80
- package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +0 -40
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +0 -40
- package/dist/collection/components/bpm/import-files/bpm-import-files.css +0 -40
- package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +0 -40
- package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +0 -40
- package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +0 -40
- package/dist/collection/components/connect-gx-server/connect-gx-server.css +0 -40
- package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +0 -40
- package/dist/collection/components/dashboard-home/dashboard-home.css +0 -40
- package/dist/collection/components/data-selector/data-selector.css +0 -40
- package/dist/collection/components/design-import/design-import.css +0 -40
- package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +0 -40
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +0 -40
- package/dist/collection/components/kb-manager-import/kb-manager-import.css +0 -80
- package/dist/collection/components/modules/edit-module-server/edit-module-server.css +0 -40
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +0 -40
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +0 -40
- package/dist/collection/components/new-environment/new-environment.css +0 -40
- package/dist/collection/components/new-kb/new-kb.css +0 -40
- package/dist/collection/components/new-object/new-object.css +0 -40
- package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +0 -2
- package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +1 -1
- package/dist/collection/components/object-selector/object-selector.css +0 -80
- package/dist/collection/components/object-selector/object-selector.js +1 -1
- package/dist/collection/components/object-selector/object-selector.js.map +1 -1
- package/dist/collection/components/references/references.css +0 -40
- package/dist/collection/components/share-kb/share-kb.css +0 -40
- package/dist/collection/components/start-page/recent-news.css +0 -40
- package/dist/collection/components/start-page/recent-news.js +3 -2
- package/dist/collection/components/start-page/recent-news.js.map +1 -1
- package/dist/collection/components/start-page/start-page.css +0 -40
- package/dist/collection/components/start-page/start-page.js +4 -3
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/collection/components/team-dev/commit/commit.css +0 -80
- package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +0 -40
- package/dist/collection/components/team-dev/update/update.css +0 -80
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +0 -40
- package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +0 -40
- package/dist/collection/components/wf-settings/wf-settings.css +0 -40
- package/dist/collection/components/ww-images/ww-images.css +0 -80
- package/dist/components/bpm-objects-selector.js +1 -1
- package/dist/components/bpm-objects-selector.js.map +1 -1
- package/dist/components/container.js.map +1 -1
- package/dist/components/entity-selector.js +4 -1
- package/dist/components/entity-selector.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-bpm-assign-roles.js +1 -1
- package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
- package/dist/components/gx-ide-bpm-export-xpdl.js +1 -1
- package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
- package/dist/components/gx-ide-bpm-import-files.js +1 -1
- package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
- package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
- package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
- package/dist/components/gx-ide-bpm-timer-duration.js +1 -1
- package/dist/components/gx-ide-bpm-timer-duration.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-connect-gx-server.js +1 -1
- package/dist/components/gx-ide-connect-gx-server.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 +1 -1
- 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-design-import.js +1 -1
- package/dist/components/gx-ide-design-import.js.map +1 -1
- package/dist/components/gx-ide-edit-module-server.js +1 -1
- package/dist/components/gx-ide-edit-module-server.js.map +1 -1
- package/dist/components/gx-ide-empty-state2.js +1 -1
- package/dist/components/gx-ide-empty-state2.js.map +1 -1
- package/dist/components/gx-ide-gam-installation-settings.js +1 -1
- package/dist/components/gx-ide-gam-installation-settings.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-manage-module-references-v2.js +1 -1
- package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
- package/dist/components/gx-ide-manage-module-references.js +1 -1
- package/dist/components/gx-ide-manage-module-references.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 +2 -2
- 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 +5 -4
- 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-wf-settings.js +1 -1
- package/dist/components/gx-ide-wf-settings.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/ide-loader.js +1 -1
- package/dist/components/ide-loader.js.map +1 -1
- package/dist/components/list-selector.js +1 -1
- package/dist/components/list-selector.js.map +1 -1
- package/dist/components/recent-news.js +4 -3
- package/dist/components/recent-news.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-bpm-assign-roles.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.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-connect-gx-server.entry.js +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-container_2.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 +1 -1
- 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-design-import.entry.js +1 -1
- package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-edit-module-server.entry.js +1 -1
- package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +3 -1
- package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.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-loader.entry.js +1 -1
- package/dist/esm/gx-ide-loader.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
- 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-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 +2 -2
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-recent-news.entry.js +4 -3
- package/dist/esm/gx-ide-recent-news.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 +5 -4
- 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-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-wf-settings.entry.js +1 -1
- package/dist/esm/gx-ide-wf-settings.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/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/entity-selector/langs/entity-selector.lang.en.json +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +0 -2
- package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +1 -1
- package/dist/genexus-ide-ui/{p-4a0e3c34.entry.js → p-032bdefc.entry.js} +72 -72
- package/dist/genexus-ide-ui/{p-ed72073c.entry.js → p-04421676.entry.js} +40 -40
- package/dist/genexus-ide-ui/{p-33434d7d.entry.js → p-0ac125fc.entry.js} +169 -169
- package/dist/genexus-ide-ui/{p-03b4b814.entry.js → p-0bb18689.entry.js} +168 -168
- package/dist/genexus-ide-ui/{p-969e4799.entry.js → p-0be068bf.entry.js} +65 -65
- package/dist/genexus-ide-ui/{p-02c7b423.entry.js → p-19789aa2.entry.js} +72 -72
- package/dist/genexus-ide-ui/{p-92e46b5d.entry.js → p-27fcaad7.entry.js} +30 -30
- package/dist/genexus-ide-ui/{p-2073deab.entry.js → p-2fd83e6c.entry.js} +29 -29
- package/dist/genexus-ide-ui/{p-a88e14f8.entry.js → p-33c1ddd9.entry.js} +154 -154
- package/dist/genexus-ide-ui/{p-82649b9b.entry.js → p-38f61bea.entry.js} +46 -46
- package/dist/genexus-ide-ui/{p-28456a97.entry.js → p-3e48e2f6.entry.js} +16 -16
- package/dist/genexus-ide-ui/{p-51771269.entry.js → p-54ee665f.entry.js} +27 -27
- package/dist/genexus-ide-ui/{p-43cfd06b.entry.js → p-638befbe.entry.js} +35 -35
- package/dist/genexus-ide-ui/{p-77239013.entry.js → p-68810397.entry.js} +20 -20
- package/dist/genexus-ide-ui/{p-941cdab8.entry.js → p-69edc29c.entry.js} +52 -52
- package/dist/genexus-ide-ui/{p-7ca8ed4b.entry.js → p-6da8bf60.entry.js} +53 -53
- package/dist/genexus-ide-ui/p-7ac25fc3.entry.js.map +1 -1
- package/dist/genexus-ide-ui/{p-73afc989.entry.js → p-7b8e41dd.entry.js} +12 -12
- package/dist/genexus-ide-ui/{p-60b5aa38.entry.js → p-8da18e59.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-2238f5b3.entry.js → p-929dd336.entry.js} +9 -9
- package/dist/genexus-ide-ui/{p-a1f28f2b.entry.js → p-980f96c5.entry.js} +44 -44
- package/dist/genexus-ide-ui/{p-8ee27085.entry.js → p-a04d556d.entry.js} +39 -39
- package/dist/genexus-ide-ui/{p-04875060.entry.js → p-a3daa189.entry.js} +97 -97
- package/dist/genexus-ide-ui/{p-54f34df2.entry.js → p-a587e7ca.entry.js} +3 -2
- package/dist/genexus-ide-ui/p-a587e7ca.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-ad92d701.entry.js +318 -0
- package/dist/genexus-ide-ui/{p-d0f99e7f.entry.js → p-b3baa3d2.entry.js} +35 -35
- package/dist/genexus-ide-ui/{p-44a2f835.entry.js → p-b7384b06.entry.js} +133 -132
- package/dist/genexus-ide-ui/p-b7384b06.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-48723dcd.entry.js → p-bb1d0ab8.entry.js} +8 -8
- package/dist/genexus-ide-ui/p-c64a4398.entry.js +683 -0
- package/dist/genexus-ide-ui/{p-0f7b7541.entry.js → p-cd7100fa.entry.js} +44 -44
- package/dist/genexus-ide-ui/{p-ee3161f8.entry.js → p-d178da38.entry.js} +19 -19
- package/dist/genexus-ide-ui/{p-f9aafa8f.entry.js → p-d541640a.entry.js} +24 -24
- package/dist/genexus-ide-ui/{p-73a98f20.entry.js → p-d9f7d2c3.entry.js} +41 -41
- package/dist/genexus-ide-ui/{p-cb0e11db.entry.js → p-dd07e68a.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-dd07e68a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-b984f974.entry.js → p-e4db9c34.entry.js} +46 -46
- package/dist/genexus-ide-ui/{p-8050e61d.entry.js → p-eb49e4f1.entry.js} +19 -19
- package/dist/genexus-ide-ui/p-eb49e4f1.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-f1f6b028.entry.js → p-eb52d685.entry.js} +31 -31
- package/dist/genexus-ide-ui/{p-d40d8792.entry.js → p-f220c75a.entry.js} +7 -7
- package/dist/genexus-ide-ui/{p-51ea74a5.entry.js → p-f5c02654.entry.js} +39 -39
- package/dist/genexus-ide-ui/{p-0bddf199.entry.js → p-f69df17d.entry.js} +29 -29
- package/dist/genexus-ide-ui/{p-957341c7.entry.js → p-f924f02a.entry.js} +84 -83
- package/dist/genexus-ide-ui/p-f924f02a.entry.js.map +1 -0
- package/dist/types/components/_helpers/entity-selector/entity-selector.d.ts +5 -0
- package/dist/types/components.d.ts +8 -0
- package/package.json +5 -8
- package/dist/genexus-ide-ui/p-15ab148b.entry.js +0 -683
- package/dist/genexus-ide-ui/p-44a2f835.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-537dfb63.entry.js +0 -318
- package/dist/genexus-ide-ui/p-54f34df2.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-8050e61d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-957341c7.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-cb0e11db.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-4a0e3c34.entry.js.map → p-032bdefc.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ed72073c.entry.js.map → p-04421676.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-33434d7d.entry.js.map → p-0ac125fc.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-03b4b814.entry.js.map → p-0bb18689.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-969e4799.entry.js.map → p-0be068bf.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-02c7b423.entry.js.map → p-19789aa2.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-92e46b5d.entry.js.map → p-27fcaad7.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2073deab.entry.js.map → p-2fd83e6c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a88e14f8.entry.js.map → p-33c1ddd9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-82649b9b.entry.js.map → p-38f61bea.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-28456a97.entry.js.map → p-3e48e2f6.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-51771269.entry.js.map → p-54ee665f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-43cfd06b.entry.js.map → p-638befbe.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-77239013.entry.js.map → p-68810397.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-941cdab8.entry.js.map → p-69edc29c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7ca8ed4b.entry.js.map → p-6da8bf60.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-73afc989.entry.js.map → p-7b8e41dd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-60b5aa38.entry.js.map → p-8da18e59.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2238f5b3.entry.js.map → p-929dd336.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a1f28f2b.entry.js.map → p-980f96c5.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-8ee27085.entry.js.map → p-a04d556d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-04875060.entry.js.map → p-a3daa189.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-537dfb63.entry.js.map → p-ad92d701.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d0f99e7f.entry.js.map → p-b3baa3d2.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-48723dcd.entry.js.map → p-bb1d0ab8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-15ab148b.entry.js.map → p-c64a4398.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0f7b7541.entry.js.map → p-cd7100fa.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ee3161f8.entry.js.map → p-d178da38.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f9aafa8f.entry.js.map → p-d541640a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-73a98f20.entry.js.map → p-d9f7d2c3.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-b984f974.entry.js.map → p-e4db9c34.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f1f6b028.entry.js.map → p-eb52d685.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d40d8792.entry.js.map → p-f220c75a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-51ea74a5.entry.js.map → p-f5c02654.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0bddf199.entry.js.map → p-f69df17d.entry.js.map} +0 -0
|
@@ -57,7 +57,7 @@ const convertReferenceDataToTreeViewData = (referenceData) => {
|
|
|
57
57
|
return treeData;
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
const referencesCss = ":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)}.button-primary-destructive{--control__border-color:var(--button-primary__border-color--destructive);background-color:var(--button-primary__bg-color--destructive);color:var(--button-primary__color--destructive)}.button-primary-destructive:hover{--control__border-color:var(\n --button-primary__bg-color--destructive-hover\n );background-color:var(--button-primary__bg-color--destructive-hover);color:var(--button-primary__color--destructive)}.button-primary-destructive:active{--control__border-color:var(\n --button-primary__bg-color--destructive-active\n );background-color:var(--button-primary__bg-color--destructive-active);color:var(--button-primary__color--destructive)}.button-secondary-destructive{--control__border-color:var(--button-secondary__border-color--destructive);background-color:var(--button-secondary__bg-color--destructive);color:var(--button-secondary__color--destructive)}.button-secondary-destructive:hover{--control__border-color:var(\n --button-secondary__bg-color--destructive-hover\n );background-color:var(--button-secondary__bg-color--destructive-hover);color:var(--button-secondary__color--destructive)}.button-secondary-destructive:active{--control__border-color:var(\n --button-secondary__bg-color--destructive-active\n );background-color:var(--button-secondary__bg-color--destructive-active);color:var(--button-secondary__color--destructive)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.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:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block}.header{}.header__top{grid-template-columns:min-content auto 1fr min-content;grid-template-rows:1fr;grid-template-areas:\"hide-bar-button suggest-label gxg-suggest selector-dialog-button\"}.header__top .hide-bar-button{grid-area:hide-bar-button}.header__top .suggest-label{grid-area:suggest-label}.header__top gxg-suggest{grid-area:gxg-suggest}.header__top .selector-dialog-button{grid-area:selector-dialog-button}.header__bottom{display:grid;grid-template-rows:1fr;transition:var(--mer-timing--super-fast-ms) grid-template-rows}.header__bottom--hidden{grid-template-rows:0fr}.header__bottom .outer-wrapper{overflow:hidden}.header__bottom .inner-wrapper{padding-top:var(--gx-ide-grid-row-gap);display:flex;flex-direction:row;align-items:center;justify-content:space-between}.header__bottom .inner-wrapper__left{display:flex;align-items:center;gap:var(--gx-ide-grid-row-gap)}.header-hidden .first-row{grid-template-columns:auto 1fr auto}.header-hidden .first-row>:nth-child(3){align-self:end}.header-hidden .second-row{display:none}.main{display:flex;height:100%}.main>*{flex:1}.main .reference-container{padding:var(--tree-container-padding);display:grid;height:100%}.main .reference-container--no-references{display:flex;align-items:center;justify-content:center}.main .gx-ide-message{padding:50px 0}";
|
|
60
|
+
const referencesCss = ":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{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.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:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block}.header{}.header__top{grid-template-columns:min-content auto 1fr min-content;grid-template-rows:1fr;grid-template-areas:\"hide-bar-button suggest-label gxg-suggest selector-dialog-button\"}.header__top .hide-bar-button{grid-area:hide-bar-button}.header__top .suggest-label{grid-area:suggest-label}.header__top gxg-suggest{grid-area:gxg-suggest}.header__top .selector-dialog-button{grid-area:selector-dialog-button}.header__bottom{display:grid;grid-template-rows:1fr;transition:var(--mer-timing--super-fast-ms) grid-template-rows}.header__bottom--hidden{grid-template-rows:0fr}.header__bottom .outer-wrapper{overflow:hidden}.header__bottom .inner-wrapper{padding-top:var(--gx-ide-grid-row-gap);display:flex;flex-direction:row;align-items:center;justify-content:space-between}.header__bottom .inner-wrapper__left{display:flex;align-items:center;gap:var(--gx-ide-grid-row-gap)}.header-hidden .first-row{grid-template-columns:auto 1fr auto}.header-hidden .first-row>:nth-child(3){align-self:end}.header-hidden .second-row{display:none}.main{display:flex;height:100%}.main>*{flex:1}.main .reference-container{padding:var(--tree-container-padding);display:grid;height:100%}.main .reference-container--no-references{display:flex;align-items:center;justify-content:center}.main .gx-ide-message{padding:50px 0}";
|
|
61
61
|
|
|
62
62
|
const CSS_BUNDLES = [
|
|
63
63
|
"resets/box-sizing",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-references.js","mappings":"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","names":["GxIdeReferences"],"sources":["src/components/references/helpers.ts","src/components/references/references.scss?tag=gx-ide-references&encapsulation=shadow","src/components/references/references.tsx"],"sourcesContent":["/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\n\n/* References Types*/\nimport { SelectorCategoryData } from \"./references\";\nimport { ObjectData } from \"./references\";\nimport { ReferenceData } from \"./references\";\n\n/**\n * @description This function converts SelectorCategoryData[] SuggestData\n */\nexport const convertObjectDataToSuggestData = (\n selectorCategoriesData: SelectorCategoryData[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (selectorCategoriesData.length) {\n selectorCategoriesData.forEach(selectorCategory => {\n const suggestList: SuggestListData = {\n label: selectorCategory.name,\n items: []\n };\n selectorCategory.items.forEach((objectData: ObjectData) => {\n const suggestItem: SuggestItemData = {\n value: objectData.id,\n description: objectData.description,\n icon: objectData.icon\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n });\n }\n return suggestData;\n};\n\nconst convertToTreeItem = (item: ReferenceData): TreeViewItemModel => ({\n caption: item.name,\n id: item.id,\n items: (item.items ?? []).map(convertToTreeItem),\n lazy: item.hasChildren && (item.items == null || item.items.length === 0),\n leaf: item.hasChildren === false,\n startImgSrc: item.icon\n});\n\n/**\n * @description This function converts ReferenceData[] data to TreeItemData[]\n */\nexport const convertReferenceDataToTreeViewData = (\n referenceData: ReferenceData[] | undefined\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!referenceData) {\n return treeData;\n }\n\n referenceData.forEach(item => {\n treeData.push(convertToTreeItem(item));\n });\n return treeData;\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n/*HEADER*/\n.header {\n /*Top*/\n &__top {\n grid-template-columns: min-content auto 1fr min-content;\n grid-template-rows: 1fr;\n grid-template-areas: \"hide-bar-button suggest-label gxg-suggest selector-dialog-button\";\n\n .hide-bar-button {\n grid-area: hide-bar-button;\n }\n .suggest-label {\n grid-area: suggest-label;\n }\n gxg-suggest {\n grid-area: gxg-suggest;\n }\n .selector-dialog-button {\n grid-area: selector-dialog-button;\n }\n }\n /*Bottom*/\n &__bottom {\n display: grid;\n grid-template-rows: 1fr;\n transition: var(--mer-timing--super-fast-ms) grid-template-rows;\n &--hidden {\n grid-template-rows: 0fr;\n }\n .outer-wrapper {\n overflow: hidden;\n }\n .inner-wrapper {\n padding-top: var(--gx-ide-grid-row-gap);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &__left {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-row-gap);\n }\n }\n }\n}\n/*Header hidable*/\n.header-hidden {\n .first-row {\n grid-template-columns: auto 1fr auto;\n > :nth-child(3) {\n align-self: end;\n }\n }\n\n .second-row {\n display: none;\n }\n}\n/*MAIN*/\n.main {\n display: flex;\n height: 100%;\n > * {\n flex: 1;\n }\n .reference-container {\n padding: var(--tree-container-padding);\n display: grid;\n height: 100%;\n &--no-references {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n @include gx-ide-message(\"short\");\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { SuggestItemSelectedEvent } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../common/render-suggest\";\nimport {\n convertObjectDataToSuggestData,\n convertReferenceDataToTreeViewData\n} from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\"\n];\n\n@Component({\n tag: \"gx-ide-references\",\n styleUrl: \"references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/references\"]\n})\nexport class GxIdeReferences {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/references/shortcuts.json`\n );\n\n /**\n * The last SelectorCategoryData[] returned by selectorSourceCallback\n */\n private selectorCategoryData: SelectorCategoryData[] = [];\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeReferencesElement;\n private selectObjectSuggestEl!: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n @State() referencedByTreeData: TreeViewItemModel[];\n @State() referencesToTreeData: TreeViewItemModel[];\n\n /**\n * Displays or hides the header-bottom section\n */\n @State() barHidden = false;\n\n /**\n * The objects suggestions that will appear on the suggest\n */\n @State() objectsSuggestions: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Currently selected object\n */\n @Prop({ mutable: true }) selectedObject?: ObjectData;\n @Watch(\"selectedObject\")\n selectedObjectHandler(newSelectedObject: ObjectData) {\n if (newSelectedObject.id) {\n /* update \"is referenced by*/\n this.loadReferencesHandler(newSelectedObject.id, false);\n /* update \"has references to*/\n this.loadReferencesHandler(newSelectedObject.id, true);\n }\n }\n\n /**\n * Callback invoked when user writes on object selector input, return possible options to show in autocomplete list\n */\n @Prop() readonly selectorSourceCallback?: SelectorSourceCallback;\n\n /**\n * Callback invoked when a node is expanded in any of the references panels\n */\n @Prop() readonly loadReferencesCallback?: LoadReferencesCallback;\n\n /**\n * Callback invoked when user wants to open an object\n */\n @Prop() readonly openObjectCallback?: OpenObjectCallback;\n\n /**\n * Callback invoked when user wants to show object selection dialog\n */\n @Prop() readonly openSelectorDialogCallback?: OpenSelectorDialogCallback;\n\n /**\n * Callback invoked when any item from the references panels is selected\n */\n @Prop() readonly selectReferenceCallback?: SelectReferenceCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * 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 this.evaluateInitialReferenceData();\n }\n\n componentDidLoad() {\n this.selectObjectSuggestEl.focus();\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 /**\n * It attaches on the ch-suggest, the \"itemSelected\" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.\n */\n private selectObjectSelectionChanged = (\n e: CustomEvent<SuggestItemSelectedEvent>\n ) => {\n const categoryIndex = e.detail.indexes.listIndex;\n const itemIndex = e.detail.indexes.itemIndex;\n this.selectedObject =\n this.selectorCategoryData[categoryIndex].items[itemIndex];\n };\n\n /**\n * This handler gets fired every time the value of the 'Select Object' ch-suggest changes.\n */\n private selectObjectValueChangedHandler = async (e: CustomEvent<string>) => {\n const value = e.detail;\n this.selectorSourceCallback(value)\n .then(result => {\n this.selectorCategoryData = result;\n /* show suggestions*/\n this.objectsSuggestions = convertObjectDataToSuggestData(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private openObjectCallbackHandler = async () => {\n this.openObjectCallback(this.selectedObject.id);\n /* Returns an empty Promise*/\n };\n\n /**\n * handler that gets fired when the use clicks on the ch-suggest button (...)\n */\n private openSelectorDialogCallbackHandler = async () => {\n this.openSelectorDialogCallback()\n .then(result => {\n this.selectedObject = result;\n })\n .catch(() => {\n /* to do */\n });\n };\n\n /**\n * It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.\n */\n private evaluateInitialReferenceData = () => {\n if (this.selectedObject) {\n this.selectedObjectHandler(this.selectedObject);\n }\n };\n\n /**\n * This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels. The second parameter \"to\" indicates if loadReferencesCallback callback should be called for \"has references to\" or \"is references by\"\n */\n private loadReferencesHandler = async (id: string, to = false) => {\n if (this.loadReferencesCallback) {\n this.loadReferencesCallback(id, to).then(result => {\n if (to) {\n this.referencesToTreeData =\n convertReferenceDataToTreeViewData(result);\n } else {\n this.referencedByTreeData =\n convertReferenceDataToTreeViewData(result);\n }\n });\n }\n };\n\n /**\n * It hides/show the bar (The header bottom section).\n */\n private hideBarButtonClickedHandler = () => {\n this.barHidden = !this.barHidden;\n };\n\n private referencesLazyLoadCallbackHandler =\n (ref: \"references-to\" | \"referenced-by\") =>\n async (treeItemId: string): Promise<TreeViewItemModel[]> => {\n if (this.loadReferencesCallback) {\n const to = ref === \"references-to\";\n const referencesLazyChildren = await this.loadReferencesCallback(\n treeItemId,\n to\n );\n const treeLazyChildren = convertReferenceDataToTreeViewData(\n referencesLazyChildren\n );\n return new Promise(resolve => {\n resolve(treeLazyChildren);\n });\n }\n return new Promise(resolve => {\n resolve([]);\n });\n };\n\n private referenceSelectedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (this.selectReferenceCallback) {\n const selectedItems: string[] = event.detail.map(item => item.item.id);\n this.selectReferenceCallback(selectedItems[0]);\n // returns void\n }\n };\n\n private referencesItemOpenReferenceCallback = (\n itemOpened: CustomEvent<{ id: string; leaf: boolean; metadata: string }>\n ) => {\n const itemId = itemOpened.detail.id;\n if (this.openObjectCallback) {\n this.openObjectCallback(itemId);\n // returns void\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n displayBorderBottom\n noContentPadding\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header class=\"header\" slot=\"header\">\n <div class=\"header__top grid\">\n {/* select object */}\n <gxg-button\n icon=\"navigation/arrow-down\"\n type=\"secondary-icon-only\"\n class=\"hide-bar-button\"\n onClick={this.hideBarButtonClickedHandler}\n part=\"toggle-bar-button\"\n ></gxg-button>\n <gxg-label\n labelPosition=\"start\"\n class=\"suggest-label\"\n part=\"select-object-label\"\n >\n {this._componentLocale.header.selectObject}\n </gxg-label>\n <gxg-suggest>\n <ch-suggest\n value={this.selectedObject.name}\n onValueChanged={this.selectObjectValueChangedHandler}\n onSelectionChanged={this.selectObjectSelectionChanged}\n part=\"object-selector-suggest\"\n exportparts=\"dropdown:select-object-dropdown\"\n ref={el =>\n (this.selectObjectSuggestEl = el as HTMLChSuggestElement)\n }\n >\n {renderSuggestLists(this.objectsSuggestions)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.openSelectorDialogCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n </div>\n <div\n class={{\n \"header__bottom\": true,\n \"header__bottom--hidden\": this.barHidden\n }}\n >\n <div class=\"outer-wrapper\">\n <div class=\"inner-wrapper\">\n <div class=\"inner-wrapper__left\">\n <gxg-icon\n type={this.selectedObject.icon}\n color=\"auto\"\n ></gxg-icon>\n <gxg-text\n padding=\"s\"\n type=\"text-link\"\n part=\"open-object-text-link\"\n onClick={this.openObjectCallbackHandler}\n >\n {`${this.selectedObject.name} : ${this.selectedObject.description}`}\n </gxg-text>\n </div>\n <div class=\"inner-wrapper__right gxi-hidden\">\n <gxg-form-checkbox\n id=\"references-by-type\"\n label=\"Group references by type\"\n required\n display-validation-styles\n part=\"references-type-checkbox\"\n ></gxg-form-checkbox>\n </div>\n </div>\n </div>\n </div>\n </header>\n\n <main class=\"main\">\n <gx-ide-container\n containerTitle={this._componentLocale.main.isReferencedBy}\n noContentPadding\n part=\"referenced-by-container\"\n contentBorderEnd\n titleType=\"secondary\"\n >\n {/* is referenced by*/}\n <div\n class={{\n \"reference-container\": true,\n \"reference-container--no-references\":\n !this.referencedByTreeData?.length\n }}\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencedByTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-by-tree\"\n model={this.referencedByTreeData}\n lazyLoadTreeItemsCallback={this.referencesLazyLoadCallbackHandler(\n \"referenced-by\"\n )}\n onSelectedItemsChange={this.referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencedByTreeData?.length && (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"referenced-by-text\"\n class=\"gx-ide-message\"\n >\n {this.referencedByTreeData?.length === 0\n ? this._componentLocale.main.isReferencedByEmpty\n : this._componentLocale.main.isReferencedByError}\n </gxg-text>\n )}\n </div>\n </gx-ide-container>\n <gx-ide-container\n noContentPadding\n containerTitle={this._componentLocale.main.hasReferencesTo}\n part=\"references-to-container\"\n titleType=\"secondary\"\n >\n {/* has references to*/}\n <div\n class={{\n \"reference-container\": true,\n \"reference-container--no-references\":\n !this.referencesToTreeData?.length\n }}\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencesToTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-to-tree\"\n model={this.referencesToTreeData}\n lazyLoadTreeItemsCallback={this.referencesLazyLoadCallbackHandler(\n \"references-to\"\n )}\n onSelectedItemsChange={this.referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencesToTreeData?.length && (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"references-to-text\"\n class=\"gx-ide-message\"\n >\n {this.referencesToTreeData?.length === 0\n ? this._componentLocale.main.hasReferencesEmpty\n : this._componentLocale.main.hasReferencesToError}\n </gxg-text>\n )}\n </div>\n </gx-ide-container>\n </main>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type SelectorCategoryData = {\n name: string;\n items: ObjectData[];\n};\n\nexport type ObjectData = {\n id: string;\n typeName: string;\n icon: string;\n name: string;\n description?: string;\n};\n\nexport type ReferenceData = ObjectData & {\n hasChildren: boolean;\n items?: ReferenceData[];\n};\n\nexport type SelectorSourceCallback = (\n prefix: string\n) => Promise<SelectorCategoryData[]>;\n\nexport type LoadReferencesCallback = (\n id: string,\n to: boolean\n) => Promise<ReferenceData[]>;\n\nexport type OpenObjectCallback = (id: string) => Promise<void>;\nexport type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;\nexport type SelectReferenceCallback = (id: string) => Promise<void>;\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-references.js","mappings":"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","names":["GxIdeReferences"],"sources":["src/components/references/helpers.ts","src/components/references/references.scss?tag=gx-ide-references&encapsulation=shadow","src/components/references/references.tsx"],"sourcesContent":["/* Ch Suggest*/\nimport { SuggestItemData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestListData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list/ch-suggest-list\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\n/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\n\n/* References Types*/\nimport { SelectorCategoryData } from \"./references\";\nimport { ObjectData } from \"./references\";\nimport { ReferenceData } from \"./references\";\n\n/**\n * @description This function converts SelectorCategoryData[] SuggestData\n */\nexport const convertObjectDataToSuggestData = (\n selectorCategoriesData: SelectorCategoryData[]\n): SuggestData => {\n const suggestData: SuggestData = {\n suggestItems: null,\n suggestLists: []\n };\n if (selectorCategoriesData.length) {\n selectorCategoriesData.forEach(selectorCategory => {\n const suggestList: SuggestListData = {\n label: selectorCategory.name,\n items: []\n };\n selectorCategory.items.forEach((objectData: ObjectData) => {\n const suggestItem: SuggestItemData = {\n value: objectData.id,\n description: objectData.description,\n icon: objectData.icon\n };\n suggestList.items.push(suggestItem);\n });\n suggestData.suggestLists.push(suggestList);\n });\n }\n return suggestData;\n};\n\nconst convertToTreeItem = (item: ReferenceData): TreeViewItemModel => ({\n caption: item.name,\n id: item.id,\n items: (item.items ?? []).map(convertToTreeItem),\n lazy: item.hasChildren && (item.items == null || item.items.length === 0),\n leaf: item.hasChildren === false,\n startImgSrc: item.icon\n});\n\n/**\n * @description This function converts ReferenceData[] data to TreeItemData[]\n */\nexport const convertReferenceDataToTreeViewData = (\n referenceData: ReferenceData[] | undefined\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!referenceData) {\n return treeData;\n }\n\n referenceData.forEach(item => {\n treeData.push(convertToTreeItem(item));\n });\n return treeData;\n};\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n/*HEADER*/\n.header {\n /*Top*/\n &__top {\n grid-template-columns: min-content auto 1fr min-content;\n grid-template-rows: 1fr;\n grid-template-areas: \"hide-bar-button suggest-label gxg-suggest selector-dialog-button\";\n\n .hide-bar-button {\n grid-area: hide-bar-button;\n }\n .suggest-label {\n grid-area: suggest-label;\n }\n gxg-suggest {\n grid-area: gxg-suggest;\n }\n .selector-dialog-button {\n grid-area: selector-dialog-button;\n }\n }\n /*Bottom*/\n &__bottom {\n display: grid;\n grid-template-rows: 1fr;\n transition: var(--mer-timing--super-fast-ms) grid-template-rows;\n &--hidden {\n grid-template-rows: 0fr;\n }\n .outer-wrapper {\n overflow: hidden;\n }\n .inner-wrapper {\n padding-top: var(--gx-ide-grid-row-gap);\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n\n &__left {\n display: flex;\n align-items: center;\n gap: var(--gx-ide-grid-row-gap);\n }\n }\n }\n}\n/*Header hidable*/\n.header-hidden {\n .first-row {\n grid-template-columns: auto 1fr auto;\n > :nth-child(3) {\n align-self: end;\n }\n }\n\n .second-row {\n display: none;\n }\n}\n/*MAIN*/\n.main {\n display: flex;\n height: 100%;\n > * {\n flex: 1;\n }\n .reference-container {\n padding: var(--tree-container-padding);\n display: grid;\n height: 100%;\n &--no-references {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n }\n @include gx-ide-message(\"short\");\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n State,\n Watch,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { SuggestItemSelectedEvent } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/suggest-list-item/ch-suggest-list-item\";\nimport { SuggestData } from \"@genexus/chameleon-controls-library/dist/types/deprecated-components/suggest/ch-suggest\";\nimport { renderSuggestLists } from \"../../common/render-suggest\";\nimport {\n convertObjectDataToSuggestData,\n convertReferenceDataToTreeViewData\n} from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\"\n];\n\n@Component({\n tag: \"gx-ide-references\",\n styleUrl: \"references.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/references\"]\n})\nexport class GxIdeReferences {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/references/shortcuts.json`\n );\n\n /**\n * The last SelectorCategoryData[] returned by selectorSourceCallback\n */\n private selectorCategoryData: SelectorCategoryData[] = [];\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeReferencesElement;\n private selectObjectSuggestEl!: HTMLChSuggestElement;\n\n // 3.STATE() VARIABLES //\n\n @State() referencedByTreeData: TreeViewItemModel[];\n @State() referencesToTreeData: TreeViewItemModel[];\n\n /**\n * Displays or hides the header-bottom section\n */\n @State() barHidden = false;\n\n /**\n * The objects suggestions that will appear on the suggest\n */\n @State() objectsSuggestions: SuggestData;\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * Currently selected object\n */\n @Prop({ mutable: true }) selectedObject?: ObjectData;\n @Watch(\"selectedObject\")\n selectedObjectHandler(newSelectedObject: ObjectData) {\n if (newSelectedObject.id) {\n /* update \"is referenced by*/\n this.loadReferencesHandler(newSelectedObject.id, false);\n /* update \"has references to*/\n this.loadReferencesHandler(newSelectedObject.id, true);\n }\n }\n\n /**\n * Callback invoked when user writes on object selector input, return possible options to show in autocomplete list\n */\n @Prop() readonly selectorSourceCallback?: SelectorSourceCallback;\n\n /**\n * Callback invoked when a node is expanded in any of the references panels\n */\n @Prop() readonly loadReferencesCallback?: LoadReferencesCallback;\n\n /**\n * Callback invoked when user wants to open an object\n */\n @Prop() readonly openObjectCallback?: OpenObjectCallback;\n\n /**\n * Callback invoked when user wants to show object selection dialog\n */\n @Prop() readonly openSelectorDialogCallback?: OpenSelectorDialogCallback;\n\n /**\n * Callback invoked when any item from the references panels is selected\n */\n @Prop() readonly selectReferenceCallback?: SelectReferenceCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * 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 this.evaluateInitialReferenceData();\n }\n\n componentDidLoad() {\n this.selectObjectSuggestEl.focus();\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 /**\n * It attaches on the ch-suggest, the \"itemSelected\" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.\n */\n private selectObjectSelectionChanged = (\n e: CustomEvent<SuggestItemSelectedEvent>\n ) => {\n const categoryIndex = e.detail.indexes.listIndex;\n const itemIndex = e.detail.indexes.itemIndex;\n this.selectedObject =\n this.selectorCategoryData[categoryIndex].items[itemIndex];\n };\n\n /**\n * This handler gets fired every time the value of the 'Select Object' ch-suggest changes.\n */\n private selectObjectValueChangedHandler = async (e: CustomEvent<string>) => {\n const value = e.detail;\n this.selectorSourceCallback(value)\n .then(result => {\n this.selectorCategoryData = result;\n /* show suggestions*/\n this.objectsSuggestions = convertObjectDataToSuggestData(result);\n })\n .catch(() => {\n // to do\n });\n };\n\n private openObjectCallbackHandler = async () => {\n this.openObjectCallback(this.selectedObject.id);\n /* Returns an empty Promise*/\n };\n\n /**\n * handler that gets fired when the use clicks on the ch-suggest button (...)\n */\n private openSelectorDialogCallbackHandler = async () => {\n this.openSelectorDialogCallback()\n .then(result => {\n this.selectedObject = result;\n })\n .catch(() => {\n /* to do */\n });\n };\n\n /**\n * It evaluates if loadReferencesCallback should be called, depending wether there is or not an actual selected object.\n */\n private evaluateInitialReferenceData = () => {\n if (this.selectedObject) {\n this.selectedObjectHandler(this.selectedObject);\n }\n };\n\n /**\n * This method invokes 'loadReferencesCallback' callback for 'Is Referenced By' and 'Has References To' panels. The second parameter \"to\" indicates if loadReferencesCallback callback should be called for \"has references to\" or \"is references by\"\n */\n private loadReferencesHandler = async (id: string, to = false) => {\n if (this.loadReferencesCallback) {\n this.loadReferencesCallback(id, to).then(result => {\n if (to) {\n this.referencesToTreeData =\n convertReferenceDataToTreeViewData(result);\n } else {\n this.referencedByTreeData =\n convertReferenceDataToTreeViewData(result);\n }\n });\n }\n };\n\n /**\n * It hides/show the bar (The header bottom section).\n */\n private hideBarButtonClickedHandler = () => {\n this.barHidden = !this.barHidden;\n };\n\n private referencesLazyLoadCallbackHandler =\n (ref: \"references-to\" | \"referenced-by\") =>\n async (treeItemId: string): Promise<TreeViewItemModel[]> => {\n if (this.loadReferencesCallback) {\n const to = ref === \"references-to\";\n const referencesLazyChildren = await this.loadReferencesCallback(\n treeItemId,\n to\n );\n const treeLazyChildren = convertReferenceDataToTreeViewData(\n referencesLazyChildren\n );\n return new Promise(resolve => {\n resolve(treeLazyChildren);\n });\n }\n return new Promise(resolve => {\n resolve([]);\n });\n };\n\n private referenceSelectedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n if (this.selectReferenceCallback) {\n const selectedItems: string[] = event.detail.map(item => item.item.id);\n this.selectReferenceCallback(selectedItems[0]);\n // returns void\n }\n };\n\n private referencesItemOpenReferenceCallback = (\n itemOpened: CustomEvent<{ id: string; leaf: boolean; metadata: string }>\n ) => {\n const itemId = itemOpened.detail.id;\n if (this.openObjectCallback) {\n this.openObjectCallback(itemId);\n // returns void\n }\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n displayBorderBottom\n noContentPadding\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n <header class=\"header\" slot=\"header\">\n <div class=\"header__top grid\">\n {/* select object */}\n <gxg-button\n icon=\"navigation/arrow-down\"\n type=\"secondary-icon-only\"\n class=\"hide-bar-button\"\n onClick={this.hideBarButtonClickedHandler}\n part=\"toggle-bar-button\"\n ></gxg-button>\n <gxg-label\n labelPosition=\"start\"\n class=\"suggest-label\"\n part=\"select-object-label\"\n >\n {this._componentLocale.header.selectObject}\n </gxg-label>\n <gxg-suggest>\n <ch-suggest\n value={this.selectedObject.name}\n onValueChanged={this.selectObjectValueChangedHandler}\n onSelectionChanged={this.selectObjectSelectionChanged}\n part=\"object-selector-suggest\"\n exportparts=\"dropdown:select-object-dropdown\"\n ref={el =>\n (this.selectObjectSuggestEl = el as HTMLChSuggestElement)\n }\n >\n {renderSuggestLists(this.objectsSuggestions)}\n </ch-suggest>\n </gxg-suggest>\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/show-more-horizontal\"\n onClick={this.openSelectorDialogCallbackHandler}\n class=\"selector-dialog-button\"\n part=\"open-selector-dialog-button\"\n ></gxg-button>\n </div>\n <div\n class={{\n \"header__bottom\": true,\n \"header__bottom--hidden\": this.barHidden\n }}\n >\n <div class=\"outer-wrapper\">\n <div class=\"inner-wrapper\">\n <div class=\"inner-wrapper__left\">\n <gxg-icon\n type={this.selectedObject.icon}\n color=\"auto\"\n ></gxg-icon>\n <gxg-text\n padding=\"s\"\n type=\"text-link\"\n part=\"open-object-text-link\"\n onClick={this.openObjectCallbackHandler}\n >\n {`${this.selectedObject.name} : ${this.selectedObject.description}`}\n </gxg-text>\n </div>\n <div class=\"inner-wrapper__right gxi-hidden\">\n <gxg-form-checkbox\n id=\"references-by-type\"\n label=\"Group references by type\"\n required\n display-validation-styles\n part=\"references-type-checkbox\"\n ></gxg-form-checkbox>\n </div>\n </div>\n </div>\n </div>\n </header>\n\n <main class=\"main\">\n <gx-ide-container\n containerTitle={this._componentLocale.main.isReferencedBy}\n noContentPadding\n part=\"referenced-by-container\"\n contentBorderEnd\n titleType=\"secondary\"\n >\n {/* is referenced by*/}\n <div\n class={{\n \"reference-container\": true,\n \"reference-container--no-references\":\n !this.referencedByTreeData?.length\n }}\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencedByTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-by-tree\"\n model={this.referencedByTreeData}\n lazyLoadTreeItemsCallback={this.referencesLazyLoadCallbackHandler(\n \"referenced-by\"\n )}\n onSelectedItemsChange={this.referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencedByTreeData?.length && (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"referenced-by-text\"\n class=\"gx-ide-message\"\n >\n {this.referencedByTreeData?.length === 0\n ? this._componentLocale.main.isReferencedByEmpty\n : this._componentLocale.main.isReferencedByError}\n </gxg-text>\n )}\n </div>\n </gx-ide-container>\n <gx-ide-container\n noContentPadding\n containerTitle={this._componentLocale.main.hasReferencesTo}\n part=\"references-to-container\"\n titleType=\"secondary\"\n >\n {/* has references to*/}\n <div\n class={{\n \"reference-container\": true,\n \"reference-container--no-references\":\n !this.referencesToTreeData?.length\n }}\n >\n <ch-tree-view-render\n class={{\n \"gxi-hidden\": !this.referencesToTreeData?.length,\n \"tree-view\": true\n }}\n part=\"referenced-to-tree\"\n model={this.referencesToTreeData}\n lazyLoadTreeItemsCallback={this.referencesLazyLoadCallbackHandler(\n \"references-to\"\n )}\n onSelectedItemsChange={this.referenceSelectedHandler}\n dragDisabled={true}\n dropDisabled={true}\n onItemOpenReference={\n this.referencesItemOpenReferenceCallback\n }\n showLines=\"last\"\n ></ch-tree-view-render>\n {!this.referencesToTreeData?.length && (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"references-to-text\"\n class=\"gx-ide-message\"\n >\n {this.referencesToTreeData?.length === 0\n ? this._componentLocale.main.hasReferencesEmpty\n : this._componentLocale.main.hasReferencesToError}\n </gxg-text>\n )}\n </div>\n </gx-ide-container>\n </main>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type SelectorCategoryData = {\n name: string;\n items: ObjectData[];\n};\n\nexport type ObjectData = {\n id: string;\n typeName: string;\n icon: string;\n name: string;\n description?: string;\n};\n\nexport type ReferenceData = ObjectData & {\n hasChildren: boolean;\n items?: ReferenceData[];\n};\n\nexport type SelectorSourceCallback = (\n prefix: string\n) => Promise<SelectorCategoryData[]>;\n\nexport type LoadReferencesCallback = (\n id: string,\n to: boolean\n) => Promise<ReferenceData[]>;\n\nexport type OpenObjectCallback = (id: string) => Promise<void>;\nexport type OpenSelectorDialogCallback = () => Promise<ObjectData | undefined>;\nexport type SelectReferenceCallback = (id: string) => Promise<void>;\n"],"version":3}
|
|
@@ -6,7 +6,7 @@ import { r as renderFormItems } from './common.js';
|
|
|
6
6
|
import { d as defineCustomElement$3 } from './container.js';
|
|
7
7
|
import { d as defineCustomElement$2 } from './title.js';
|
|
8
8
|
|
|
9
|
-
const shareKbCss = ":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)}.button-primary-destructive{--control__border-color:var(--button-primary__border-color--destructive);background-color:var(--button-primary__bg-color--destructive);color:var(--button-primary__color--destructive)}.button-primary-destructive:hover{--control__border-color:var(\n --button-primary__bg-color--destructive-hover\n );background-color:var(--button-primary__bg-color--destructive-hover);color:var(--button-primary__color--destructive)}.button-primary-destructive:active{--control__border-color:var(\n --button-primary__bg-color--destructive-active\n );background-color:var(--button-primary__bg-color--destructive-active);color:var(--button-primary__color--destructive)}.button-secondary-destructive{--control__border-color:var(--button-secondary__border-color--destructive);background-color:var(--button-secondary__bg-color--destructive);color:var(--button-secondary__color--destructive)}.button-secondary-destructive:hover{--control__border-color:var(\n --button-secondary__bg-color--destructive-hover\n );background-color:var(--button-secondary__bg-color--destructive-hover);color:var(--button-secondary__color--destructive)}.button-secondary-destructive:active{--control__border-color:var(\n --button-secondary__bg-color--destructive-active\n );background-color:var(--button-secondary__bg-color--destructive-active);color:var(--button-secondary__color--destructive)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.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:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block}.main{display:grid;column-gap:var(--gx-ide-grid-column-gap);row-gap:var(--gx-ide-grid-row-gap);grid-template-columns:auto 1fr;grid-template-areas:\"kb-label kb-input \" \"server-label server-input\" \"auth-type-label auth-type-input\" \"user-name-label user-name-input\" \"password-label password-input\"}.main .kb-name-label{grid-area:kb-label}.main .kb-input{grid-area:kb-input}.main .server-url-label{grid-area:server-label}.main .server-url-input{grid-area:server-input}.main .auth-type-label{grid-area:auth-type-label}.main .auth-type-input{grid-area:auth-type-input}.main .user-name-label{grid-area:user-name-label}.main .user-name-input{grid-area:user-name-input}.main .password-label{grid-area:password-label}.main .password-input{grid-area:password-input}";
|
|
9
|
+
const shareKbCss = ":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{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.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:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}:host{display:block}.main{display:grid;column-gap:var(--gx-ide-grid-column-gap);row-gap:var(--gx-ide-grid-row-gap);grid-template-columns:auto 1fr;grid-template-areas:\"kb-label kb-input \" \"server-label server-input\" \"auth-type-label auth-type-input\" \"user-name-label user-name-input\" \"password-label password-input\"}.main .kb-name-label{grid-area:kb-label}.main .kb-input{grid-area:kb-input}.main .server-url-label{grid-area:server-label}.main .server-url-input{grid-area:server-input}.main .auth-type-label{grid-area:auth-type-label}.main .auth-type-input{grid-area:auth-type-input}.main .user-name-label{grid-area:user-name-label}.main .user-name-input{grid-area:user-name-input}.main .password-label{grid-area:password-label}.main .password-input{grid-area:password-input}";
|
|
10
10
|
|
|
11
11
|
// Define your constants
|
|
12
12
|
const AUTHENTICATION_TYPE = ["GeneXus Account", "Local"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-share-kb.js","mappings":"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","names":["GxIdeShareKb"],"sources":["src/components/share-kb/share-kb.scss?tag=gx-ide-share-kb&encapsulation=shadow","src/components/share-kb/share-kb.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n\n.main {\n display: grid;\n column-gap: var(--gx-ide-grid-column-gap);\n row-gap: var(--gx-ide-grid-row-gap);\n grid-template-columns: auto 1fr;\n grid-template-areas:\n \"kb-label kb-input \"\n \"server-label server-input\"\n \"auth-type-label auth-type-input\"\n \"user-name-label user-name-input\"\n \"password-label password-input\";\n\n .kb-name-label {\n grid-area: kb-label;\n }\n .kb-input {\n grid-area: kb-input;\n }\n .server-url-label {\n grid-area: server-label;\n }\n .server-url-input {\n grid-area: server-input;\n }\n .auth-type-label {\n grid-area: auth-type-label;\n }\n .auth-type-input {\n grid-area: auth-type-input;\n }\n .user-name-label {\n grid-area: user-name-label;\n }\n .user-name-input {\n grid-area: user-name-input;\n }\n .password-label {\n grid-area: password-label;\n }\n .password-input {\n grid-area: password-input;\n }\n}\n","// Define your constants\nconst AUTHENTICATION_TYPE = [\"GeneXus Account\", \"Local\"];\n\n/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport {\n FormSubmitResult,\n GxServerAuthenticationType\n} from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { formSubmitValidation } from \"../../common/helpers\";\nimport { renderFormItems } from \"../../common/common\";\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\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\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/share-kb/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeShareKbElement;\n private kbNameEl: HTMLGxgFormTextElement;\n private serverUrlEl: HTMLGxgComboBoxElement;\n private authTypeEl: HTMLGxgComboBoxElement;\n private userNameEl: HTMLGxgFormTextElement;\n private passwordEl: HTMLGxgFormTextElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * The name of the kb\n */\n @Prop() readonly kbName!: string;\n\n /**\n * Urls array of cataloged servers to be shown on combo\n */\n @Prop() readonly serverUrls!: string[];\n\n /**\n * True if user can introduce server url manually\n */\n @Prop() readonly enableCustomServer: boolean = true;\n\n /**\n * Callback invoked when Share button is pressed\n */\n @Prop() readonly createKBCallback!: CreateKBCallback;\n\n // 5.EVENTS (EMIT) //\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 METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.kbNameEl.focus();\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 private createKBCallbackHandler = async () => {\n const kbData: ShareKBData = {\n name: this.kbNameEl.value,\n serverUrl: this.serverUrlEl.value,\n authenticationType: this.authTypeEl.value,\n user: this.userNameEl.value,\n password: this.passwordEl.value\n };\n const createCallbackPromise = this.createKBCallback(kbData);\n createCallbackPromise.then(formSubmitResult => {\n formSubmitValidation(formSubmitResult, this);\n });\n };\n\n // 9.LOCAL METHODS //\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <main class=\"main\">\n {/* #kb name */}\n <gxg-label labelPosition=\"start\" class=\"kb-label\" noMargin>\n {this._componentLocale.main.kbName}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n placeholder=\"SalesInventory\"\n max-width=\"100%\"\n value={this.kbName}\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.kbNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"kb-name\"\n class=\"kb-input\"\n ></gxg-form-text>\n\n {/* #server url */}\n <gxg-label\n labelPosition=\"start\"\n class=\"server-url-label\"\n noMargin\n >\n {this._componentLocale.main.serverUrl}\n </gxg-label>\n <gxg-combo-box\n disableFilter={!this.enableCustomServer}\n labelPosition=\"start\"\n placeholder=\"https://myexampleserver.com\"\n strict\n toolTip={config.tooltip}\n value={this.serverUrls[0]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.serverUrlEl = el as HTMLGxgComboBoxElement)\n }\n part=\"server-url\"\n class=\"server-url-input\"\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n this.serverUrls.map((item: string) => ({\n id: item,\n label: item\n })),\n \"server-url\"\n )}\n </gxg-combo-box>\n\n {/* #authentication type */}\n <gxg-label labelPosition=\"start\" class=\"auth-type-label\" noMargin>\n {this._componentLocale.main.authentication}\n </gxg-label>\n <gxg-combo-box\n labelPosition=\"start\"\n placeholder=\"https://myexampleserver.com\"\n max-width=\"100%\"\n value={AUTHENTICATION_TYPE[0]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.authTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"auth-type\"\n class=\"auth-type-input\"\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n AUTHENTICATION_TYPE.map((item: string) => ({\n id: item,\n label: item\n })),\n \"auth-type\"\n )}\n </gxg-combo-box>\n\n {/* #user name */}\n <gxg-label labelPosition=\"start\" class=\"user-name-label\" noMargin>\n {this._componentLocale.main.userName}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n placeholder=\"My User\"\n max-width=\"100%\"\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.userNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"user-name\"\n class=\"user-name-input\"\n ></gxg-form-text>\n\n {/* #password */}\n <gxg-label labelPosition=\"start\" class=\"password-label\" noMargin>\n {this._componentLocale.main.password}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n password\n toolTip={config.tooltip}\n max-width=\"100%\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.passwordEl = el as HTMLGxgFormTextElement)\n }\n part=\"password\"\n class=\"password-input\"\n ></gxg-form-text>\n </main>\n <gxg-button\n slot=\"footer-end\"\n type=\"primary-text-icon\"\n icon=\"gemini-tools/share\"\n onClick={this.createKBCallbackHandler}\n part=\"share-kb\"\n >\n {this._componentLocale.footer.shareBtn}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type CreateKBCallback = (data: ShareKBData) => Promise<FormSubmitResult>;\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n authenticationType: GxServerAuthenticationType;\n user: string;\n password: string;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-share-kb.js","mappings":"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","names":["GxIdeShareKb"],"sources":["src/components/share-kb/share-kb.scss?tag=gx-ide-share-kb&encapsulation=shadow","src/components/share-kb/share-kb.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n\n.main {\n display: grid;\n column-gap: var(--gx-ide-grid-column-gap);\n row-gap: var(--gx-ide-grid-row-gap);\n grid-template-columns: auto 1fr;\n grid-template-areas:\n \"kb-label kb-input \"\n \"server-label server-input\"\n \"auth-type-label auth-type-input\"\n \"user-name-label user-name-input\"\n \"password-label password-input\";\n\n .kb-name-label {\n grid-area: kb-label;\n }\n .kb-input {\n grid-area: kb-input;\n }\n .server-url-label {\n grid-area: server-label;\n }\n .server-url-input {\n grid-area: server-input;\n }\n .auth-type-label {\n grid-area: auth-type-label;\n }\n .auth-type-input {\n grid-area: auth-type-input;\n }\n .user-name-label {\n grid-area: user-name-label;\n }\n .user-name-input {\n grid-area: user-name-input;\n }\n .password-label {\n grid-area: password-label;\n }\n .password-input {\n grid-area: password-input;\n }\n}\n","// Define your constants\nconst AUTHENTICATION_TYPE = [\"GeneXus Account\", \"Local\"];\n\n/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n EventEmitter,\n getAssetPath\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport {\n FormSubmitResult,\n GxServerAuthenticationType\n} from \"../../common/types\";\nimport { config } from \"../../common/config\";\nimport { formSubmitValidation } from \"../../common/helpers\";\nimport { renderFormItems } from \"../../common/common\";\n\n@Component({\n tag: \"gx-ide-share-kb\",\n styleUrl: \"share-kb.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/share-kb\"]\n})\nexport class GxIdeShareKb {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\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\n private _componentLocale: any;\n private renderedFirstTime = false;\n private shortcutsSrc = getAssetPath(\n `./gx-ide-assets/share-kb/shortcuts.json`\n );\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeShareKbElement;\n private kbNameEl: HTMLGxgFormTextElement;\n private serverUrlEl: HTMLGxgComboBoxElement;\n private authTypeEl: HTMLGxgComboBoxElement;\n private userNameEl: HTMLGxgFormTextElement;\n private passwordEl: HTMLGxgFormTextElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * The name of the kb\n */\n @Prop() readonly kbName!: string;\n\n /**\n * Urls array of cataloged servers to be shown on combo\n */\n @Prop() readonly serverUrls!: string[];\n\n /**\n * True if user can introduce server url manually\n */\n @Prop() readonly enableCustomServer: boolean = true;\n\n /**\n * Callback invoked when Share button is pressed\n */\n @Prop() readonly createKBCallback!: CreateKBCallback;\n\n // 5.EVENTS (EMIT) //\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 METHODS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.kbNameEl.focus();\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 private createKBCallbackHandler = async () => {\n const kbData: ShareKBData = {\n name: this.kbNameEl.value,\n serverUrl: this.serverUrlEl.value,\n authenticationType: this.authTypeEl.value,\n user: this.userNameEl.value,\n password: this.passwordEl.value\n };\n const createCallbackPromise = this.createKBCallback(kbData);\n createCallbackPromise.then(formSubmitResult => {\n formSubmitValidation(formSubmitResult, this);\n });\n };\n\n // 9.LOCAL METHODS //\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n slimmerFooter={config.gxIdeContainer.slimmerFooter}\n >\n <main class=\"main\">\n {/* #kb name */}\n <gxg-label labelPosition=\"start\" class=\"kb-label\" noMargin>\n {this._componentLocale.main.kbName}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n placeholder=\"SalesInventory\"\n max-width=\"100%\"\n value={this.kbName}\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.kbNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"kb-name\"\n class=\"kb-input\"\n ></gxg-form-text>\n\n {/* #server url */}\n <gxg-label\n labelPosition=\"start\"\n class=\"server-url-label\"\n noMargin\n >\n {this._componentLocale.main.serverUrl}\n </gxg-label>\n <gxg-combo-box\n disableFilter={!this.enableCustomServer}\n labelPosition=\"start\"\n placeholder=\"https://myexampleserver.com\"\n strict\n toolTip={config.tooltip}\n value={this.serverUrls[0]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.serverUrlEl = el as HTMLGxgComboBoxElement)\n }\n part=\"server-url\"\n class=\"server-url-input\"\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n this.serverUrls.map((item: string) => ({\n id: item,\n label: item\n })),\n \"server-url\"\n )}\n </gxg-combo-box>\n\n {/* #authentication type */}\n <gxg-label labelPosition=\"start\" class=\"auth-type-label\" noMargin>\n {this._componentLocale.main.authentication}\n </gxg-label>\n <gxg-combo-box\n labelPosition=\"start\"\n placeholder=\"https://myexampleserver.com\"\n max-width=\"100%\"\n value={AUTHENTICATION_TYPE[0]}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.authTypeEl = el as HTMLGxgComboBoxElement)\n }\n part=\"auth-type\"\n class=\"auth-type-input\"\n >\n {renderFormItems(\n \"gxg-combo-box-item\",\n AUTHENTICATION_TYPE.map((item: string) => ({\n id: item,\n label: item\n })),\n \"auth-type\"\n )}\n </gxg-combo-box>\n\n {/* #user name */}\n <gxg-label labelPosition=\"start\" class=\"user-name-label\" noMargin>\n {this._componentLocale.main.userName}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n placeholder=\"My User\"\n max-width=\"100%\"\n toolTip={config.tooltip}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.userNameEl = el as HTMLGxgFormTextElement)\n }\n part=\"user-name\"\n class=\"user-name-input\"\n ></gxg-form-text>\n\n {/* #password */}\n <gxg-label labelPosition=\"start\" class=\"password-label\" noMargin>\n {this._componentLocale.main.password}\n </gxg-label>\n <gxg-form-text\n labelPosition=\"start\"\n password\n toolTip={config.tooltip}\n max-width=\"100%\"\n ref={(el: HTMLGxgFormTextElement) =>\n (this.passwordEl = el as HTMLGxgFormTextElement)\n }\n part=\"password\"\n class=\"password-input\"\n ></gxg-form-text>\n </main>\n <gxg-button\n slot=\"footer-end\"\n type=\"primary-text-icon\"\n icon=\"gemini-tools/share\"\n onClick={this.createKBCallbackHandler}\n part=\"share-kb\"\n >\n {this._componentLocale.footer.shareBtn}\n </gxg-button>\n </gx-ide-container>\n </div>\n <gxg-shortcuts src={this.shortcutsSrc}></gxg-shortcuts>\n </Host>\n );\n }\n}\n\nexport type CreateKBCallback = (data: ShareKBData) => Promise<FormSubmitResult>;\nexport type ShareKBData = {\n name: string;\n serverUrl: string;\n authenticationType: GxServerAuthenticationType;\n user: string;\n password: string;\n};\n"],"version":3}
|
|
@@ -7,7 +7,7 @@ import { d as defineCustomElement$4 } from './gx-ide-empty-state2.js';
|
|
|
7
7
|
import { d as defineCustomElement$3 } from './ide-loader.js';
|
|
8
8
|
import { d as defineCustomElement$2 } from './recent-news.js';
|
|
9
9
|
|
|
10
|
-
const startPageCss = ":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n.button-primary-destructive {\n --control__border-color: var(--button-primary__border-color--destructive);\n background-color: var(--button-primary__bg-color--destructive);\n color: var(--button-primary__color--destructive);\n}\n.button-primary-destructive:hover {\n --control__border-color: var(\n --button-primary__bg-color--destructive-hover\n );\n background-color: var(--button-primary__bg-color--destructive-hover);\n color: var(--button-primary__color--destructive);\n}\n.button-primary-destructive:active {\n --control__border-color: var(\n --button-primary__bg-color--destructive-active\n );\n background-color: var(--button-primary__bg-color--destructive-active);\n color: var(--button-primary__color--destructive);\n}\n\n.button-secondary-destructive {\n --control__border-color: var(--button-secondary__border-color--destructive);\n background-color: var(--button-secondary__bg-color--destructive);\n color: var(--button-secondary__color--destructive);\n}\n.button-secondary-destructive:hover {\n --control__border-color: var(\n --button-secondary__bg-color--destructive-hover\n );\n background-color: var(--button-secondary__bg-color--destructive-hover);\n color: var(--button-secondary__color--destructive);\n}\n.button-secondary-destructive:active {\n --control__border-color: var(\n --button-secondary__bg-color--destructive-active\n );\n background-color: var(--button-secondary__bg-color--destructive-active);\n color: var(--button-secondary__color--destructive);\n}\n\n/* - - - - - - - - - - - - - - - - -\nNew classes for Chameleon + Mercury\n- - - - - - - - - - - - - - - - - */\n:host {\n display: grid;\n block-size: 100%;\n}\n\n.card-regular {\n background-color: var(--mer-surface__elevation--01);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n padding: var(--mer-spacing--md) var(--mer-spacing--md);\n display: grid;\n}\n\n.card-small {\n background-color: var(--mer-surface__elevation--02);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n}\n.card-small--actionable:hover {\n background-color: var(--mer-color__neutral-gray--600);\n}\n.card-small--actionable:active {\n background-color: var(--mer-color__neutral-gray--650);\n}\n.card-small:focus-visible {\n outline: var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);\n outline-offset: var(--focus__outline-offset);\n}\n\n.empty-state {\n block-size: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n text-align: center;\n}\n.empty-state__title, .empty-state__button, .empty-state__link {\n max-inline-size: 300px;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-1 {\n opacity: 1;\n}\n\n.display-contents {\n display: contents;\n}\n\n/* - - - - - - - - - - - - - - - - - - - \nOld classes (Gemini) to be removed soon\n- - - - - - - - - - - - - - - - - - - */\n/* Helper Classes */\n.gxi-hidden {\n display: none !important;\n}\n\n.gxi-full-height {\n height: 100%;\n}\n\n.gxi-overflow-auto {\n overflow: auto;\n}\n\n.gxi-display-flex {\n display: flex;\n}\n\n.align-start {\n display: flex;\n align-items: start;\n}\n\n.align-center {\n display: flex;\n align-items: center;\n}\n\n.align-end {\n display: flex;\n align-items: end;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.justify-start {\n display: flex;\n justify-content: start;\n}\n\n.justify-center {\n display: flex;\n justify-content: center;\n}\n\n.justify-end {\n display: flex;\n justify-content: end;\n}\n\n/* Grids */\n.grid {\n display: grid;\n grid-row-gap: var(--gx-ide-grid-row-gap);\n grid-column-gap: var(--gx-ide-grid-column-gap);\n grid-template-rows: auto;\n}\n\nch-grid-cell {\n display: flex;\n}\n\nch-grid {\n overflow: auto;\n height: 100%;\n}\n\nch-grid-column {\n /*to be removed when this works inside a component with shadow: true*/\n z-index: 99;\n border-bottom: 1px solid var(--mer-color__neutral-gray--800);\n}\n\nch-grid-column:first-child {\n padding-inline-start: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-column:last-child {\n padding-inline-end: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-cell {\n --mer-spacing--xs: var(--gx-ide-container__padding);\n}\n\n/*--- Layout ---*/\n.layout {\n display: grid;\n gap: var(--mer-spacing--lg);\n box-sizing: border-box;\n}\n.layout--two-cols {\n grid-template-columns: 1fr 1fr;\n}\n.layout--space-above {\n padding-block-start: var(--mer-spacing--lg);\n}\n\n/*Gxg Tabs*/\ngxg-tabs {\n box-shadow: none;\n}\n\n/*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/\n:host(.gx-ide-component) {\n height: 100% !important;\n display: flex !important;\n flex-direction: column !important;\n}\n\n/*stylize the top bar*/\n:host(:focus-within) gx-ide-top-bar::part(wrapper) {\n background-color: var(--color-secondary-enabled);\n}\n\n/* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */\n.gx-ide-main-wrapper {\n color: var(--gx-ide-component-text-color);\n font-weight: var(--mer-font__weight--regular);\n font-size: var(--mer-font__size--xs);\n font-family: var(--mer-font-family--primary);\n height: 100%;\n background-color: var(--gx-ide-component-background-color);\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n box-sizing: border-box;\n}\n\n/*This is the main element. This is the one that take the remaining vertical space*/\n.gx-ide-main {\n flex-grow: 1;\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-main::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-main::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-main::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.gx-ide-overflow {\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-overflow::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-overflow::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-overflow::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.tree-view-primary {\n font-size: var(--mer-font__size--2xs);\n}\n\np {\n margin: 0;\n font-size: var(--mer-font__size--xxs);\n}\n\n/* - - - - - - - - - - - - - - - - - -\nNew : For Mercury\n- - - - - - - - - - - - - - - - - - */\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--xs);\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n.hiChar {\n color: var(--mer-color__primary-blue--200);\n filter: brightness(1.3);\n}\n\n:host {\n overflow: auto;\n container-type: inline-size;\n container-name: host;\n}\n\n.layout-main,\n.layout__panel {\n block-size: 100%;\n overflow: auto;\n}\n\n@container host (max-width: 768px) {\n .layout.layout-main {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr 1fr;\n }\n}\n.panel-recent-kbs {\n position: relative;\n}\n\n.recent-kbs,\n.recent-news {\n display: grid;\n grid-template-rows: auto 1fr;\n gap: var(--mer-spacing--md);\n overflow: auto;\n}\n.recent-kbs__header,\n.recent-news__header {\n display: grid;\n gap: var(--mer-spacing--md);\n}\n\n.kbs-container {\n display: grid;\n gap: var(--mer-spacing--xs);\n overflow: auto;\n grid-auto-rows: max-content;\n container-type: inline-size;\n container-name: kb-container;\n animation: fadeIn var(--mer-timing--super-fast) forwards linear;\n}\n\n.card-kb {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mer-spacing--lg);\n container-type: inline-size;\n container-name: card-kb;\n}\n.card-kb__left-col {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n}\n\n@container kb-container (max-width: 360px) {\n .card-kb {\n align-items: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n justify-content: start;\n }\n}\ngx-ide-recent-news {\n overflow: auto;\n}\n\n.panel-recent-news {\n position: relative;\n}\n\n@keyframes exactMatchBright {\n 100% {\n filter: brightness(1.25);\n }\n}\n.exact-match-bright {\n animation: exactMatchBright var(--mer-timing--super-fast) ease-in-out 4 alternate;\n}\n\ngx-ide-loader::part(loader-wrapper) {\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n}";
|
|
10
|
+
const startPageCss = ":root {\n --ui-animaton-speed: 0.2s;\n}\n\n/*ALIGNMENT*/\n/*Ellipsis*/\n/*****************************************************\nTYPOGRAPHY\n*****************************************************/\n/*Title 01 (Positive)*/\n.gxg-title-01 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n/*Title 01 (Negative)*/\n.gxg-title-01--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-01-font-weight);\n font-size: var(--ds-title-01-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 02 (Positive)*/\n.gxg-title-02 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-02--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-02-font-weight);\n font-size: var(--ds-title-02-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--color-on-primary);\n}\n\n/*Title 03*/\n.gxg-title-03 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-03--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-03-font-weight);\n font-size: var(--ds-title-03-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n text-transform: uppercase;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 04*/\n.gxg-title-04 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-04--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-04-font-weight);\n font-size: var(--ds-title-04-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--comfortable);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Title 05*/\n.gxg-title-05 {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-title-05--negative {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--ds-title-05-font-weight);\n font-size: var(--ds-title-05-font-size);\n letter-spacing: var(--ds-base-font-letter-spacing--regular);\n color: var(--ds-base-font-color);\n text-align: start;\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n/*Text*/\n.gxg-text {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n}\n\n.gxg-text--negative {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--negative);\n}\n\n.gxg-text--gray {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--dimmed);\n}\n\n/*Quote*/\n.gxg-quote {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n font-style: italic;\n}\n\n.gxg-quote--negative {\n color: var(--ds-base-font-color--negative);\n}\n\n/*Link*/\n.gxg-link {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n}\n.gxg-link:hover {\n color: var(--ds-base-font-color--link-hover);\n}\n.gxg-link:active {\n color: var(--ds-base-font-color--link-active);\n}\n\n.gxg-link-gray {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n}\n.gxg-link-gray:hover {\n line-height: unset;\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--link);\n text-decoration: underline;\n cursor: pointer;\n display: inline-block;\n color: var(--ds-base-font-color--dimmed);\n filter: brightness(1.4);\n}\n\n/*Alerts*/\n.gxg-alert-error {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--error);\n display: inline-block;\n}\n\n.gxg-alert-warning {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--warning);\n display: inline-block;\n}\n\n.gxg-alert-success {\n font-family: var(--ds-base-font-family-primary);\n font-size: var(--ds-base-font-size);\n color: var(--ds-base-font-size-color);\n font-weight: var(--ds-base-font-size-weight);\n line-height: var(--ds-base-font-line-height--comfortable);\n color: var(--ds-base-font-color--success);\n display: inline-block;\n}\n\n/*Tab*/\n.gxg-tab--disabled {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n.gxg-tab--disabled[disabled] {\n color: var(--color-primary-disabled);\n pointer-events: none;\n}\n\n/*Label*/\n.gxg-label {\n font-family: var(--ds-base-font-family-primary);\n font-weight: var(--gxg-label-font-weight);\n font-size: var(--gxg-label-font-size);\n color: var(--gxg-label-color);\n text-align: center;\n line-height: 1.455em;\n display: flex;\n align-items: center;\n}\n.gxg-label:hover {\n color: var(--color-primary-hover);\n}\n.gxg-label:focus {\n color: var(--color-primary-active);\n}\n.gxg-label:active {\n color: var(--color-primary-active);\n}\n.gxg-label[disabled] {\n color: var(--color-primary-disabled);\n}\n\n.gxg-label--negative {\n color: var(--color-on-primary);\n}\n.gxg-label--negative[disabled] {\n color: var(--color-on-disabled);\n}\n\n/*****************************************************\nGXG-BUTTON and GXG-BUTTON-GROUP COMMON STYLES\n*****************************************************/\n/*****************************************************\nFORM ELEMENTS\n*****************************************************/\n.gxg-scrollbar {\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gxg-scrollbar::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gxg-scrollbar::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gxg-scrollbar::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gxg-scrollbar::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n/* - - - - - - - - - - - - - - - - -\nNew classes for Chameleon + Mercury\n- - - - - - - - - - - - - - - - - */\n:host {\n display: grid;\n block-size: 100%;\n}\n\n.card-regular {\n background-color: var(--mer-surface__elevation--01);\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n padding: var(--mer-spacing--md) var(--mer-spacing--md);\n display: grid;\n}\n\n.card-small {\n background-color: var(--mer-surface__elevation--02);\n border-radius: var(--mer-border__radius--sm);\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n}\n.card-small--actionable:hover {\n background-color: var(--mer-color__neutral-gray--600);\n}\n.card-small--actionable:active {\n background-color: var(--mer-color__neutral-gray--650);\n}\n.card-small:focus-visible {\n outline: var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);\n outline-offset: var(--focus__outline-offset);\n}\n\n.empty-state {\n block-size: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n text-align: center;\n}\n.empty-state__title, .empty-state__button, .empty-state__link {\n max-inline-size: 300px;\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-1 {\n opacity: 1;\n}\n\n.display-contents {\n display: contents;\n}\n\n/* - - - - - - - - - - - - - - - - - - - \nOld classes (Gemini) to be removed soon\n- - - - - - - - - - - - - - - - - - - */\n/* Helper Classes */\n.gxi-hidden {\n display: none !important;\n}\n\n.gxi-full-height {\n height: 100%;\n}\n\n.gxi-overflow-auto {\n overflow: auto;\n}\n\n.gxi-display-flex {\n display: flex;\n}\n\n.align-start {\n display: flex;\n align-items: start;\n}\n\n.align-center {\n display: flex;\n align-items: center;\n}\n\n.align-end {\n display: flex;\n align-items: end;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.justify-start {\n display: flex;\n justify-content: start;\n}\n\n.justify-center {\n display: flex;\n justify-content: center;\n}\n\n.justify-end {\n display: flex;\n justify-content: end;\n}\n\n/* Grids */\n.grid {\n display: grid;\n grid-row-gap: var(--gx-ide-grid-row-gap);\n grid-column-gap: var(--gx-ide-grid-column-gap);\n grid-template-rows: auto;\n}\n\nch-grid-cell {\n display: flex;\n}\n\nch-grid {\n overflow: auto;\n height: 100%;\n}\n\nch-grid-column {\n /*to be removed when this works inside a component with shadow: true*/\n z-index: 99;\n border-bottom: 1px solid var(--mer-color__neutral-gray--800);\n}\n\nch-grid-column:first-child {\n padding-inline-start: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-column:last-child {\n padding-inline-end: var(--gx-ide-container__padding) !important;\n}\n\nch-grid-cell {\n --mer-spacing--xs: var(--gx-ide-container__padding);\n}\n\n/*--- Layout ---*/\n.layout {\n display: grid;\n gap: var(--mer-spacing--lg);\n box-sizing: border-box;\n}\n.layout--two-cols {\n grid-template-columns: 1fr 1fr;\n}\n.layout--space-above {\n padding-block-start: var(--mer-spacing--lg);\n}\n\n/*Gxg Tabs*/\ngxg-tabs {\n box-shadow: none;\n}\n\n/*All components Host should have this class set. !important is set on every rule, since this styles could be overridden by the host user, since they are applied on the host component*/\n:host(.gx-ide-component) {\n height: 100% !important;\n display: flex !important;\n flex-direction: column !important;\n}\n\n/*stylize the top bar*/\n:host(:focus-within) gx-ide-top-bar::part(wrapper) {\n background-color: var(--color-secondary-enabled);\n}\n\n/* Main wrapper (should be the first element inside the host. Everything should be inside .gx-ide-main-wrapper) */\n.gx-ide-main-wrapper {\n color: var(--gx-ide-component-text-color);\n font-weight: var(--mer-font__weight--regular);\n font-size: var(--mer-font__size--xs);\n font-family: var(--mer-font-family--primary);\n height: 100%;\n background-color: var(--gx-ide-component-background-color);\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n box-sizing: border-box;\n}\n\n/*This is the main element. This is the one that take the remaining vertical space*/\n.gx-ide-main {\n flex-grow: 1;\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-main::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-main::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-main::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-main::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.gx-ide-overflow {\n overflow-y: auto;\n /* Track */\n /* Handle */\n /* Handle on hover */\n}\n.gx-ide-overflow::-webkit-scrollbar {\n width: var(--gxg-scrollbar-width);\n height: var(--gxg-scrollbar-width);\n}\n.gx-ide-overflow::-webkit-scrollbar-track {\n background-color: var(--gxg-scrollbar-track-background);\n border-radius: var(--gxg-scrollbar-track-border-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb {\n background-color: var(--gxg-scrollbar-track-thumb-background);\n border-radius: var(--gxg-scrollbar-track-thumb-radius);\n}\n.gx-ide-overflow::-webkit-scrollbar-thumb:hover {\n background-color: var(--gxg-scrollbar-track-thumb-hover-background);\n}\n.gx-ide-overflow::-webkit-scrollbar-corner {\n background: rgba(0, 0, 0, 0);\n}\n\n.tree-view-primary {\n font-size: var(--mer-font__size--2xs);\n}\n\np {\n margin: 0;\n font-size: var(--mer-font__size--xxs);\n}\n\n/* - - - - - - - - - - - - - - - - - -\nNew : For Mercury\n- - - - - - - - - - - - - - - - - - */\n.buttons-container {\n display: flex;\n gap: var(--mer-spacing--xs);\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\n*/\n.hiChar {\n color: var(--mer-color__primary-blue--200);\n filter: brightness(1.3);\n}\n\n:host {\n overflow: auto;\n container-type: inline-size;\n container-name: host;\n}\n\n.layout-main,\n.layout__panel {\n block-size: 100%;\n overflow: auto;\n}\n\n@container host (max-width: 768px) {\n .layout.layout-main {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr 1fr;\n }\n}\n.panel-recent-kbs {\n position: relative;\n}\n\n.recent-kbs,\n.recent-news {\n display: grid;\n grid-template-rows: auto 1fr;\n gap: var(--mer-spacing--md);\n overflow: auto;\n}\n.recent-kbs__header,\n.recent-news__header {\n display: grid;\n gap: var(--mer-spacing--md);\n}\n\n.kbs-container {\n display: grid;\n gap: var(--mer-spacing--xs);\n overflow: auto;\n grid-auto-rows: max-content;\n container-type: inline-size;\n container-name: kb-container;\n animation: fadeIn var(--mer-timing--super-fast) forwards linear;\n}\n\n.card-kb {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mer-spacing--lg);\n container-type: inline-size;\n container-name: card-kb;\n}\n.card-kb__left-col {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n}\n\n@container kb-container (max-width: 360px) {\n .card-kb {\n align-items: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n justify-content: start;\n }\n}\ngx-ide-recent-news {\n overflow: auto;\n}\n\n.panel-recent-news {\n position: relative;\n}\n\n@keyframes exactMatchBright {\n 100% {\n filter: brightness(1.25);\n }\n}\n.exact-match-bright {\n animation: exactMatchBright var(--mer-timing--super-fast) ease-in-out 4 alternate;\n}\n\ngx-ide-loader::part(loader-wrapper) {\n border: var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n}";
|
|
11
11
|
|
|
12
12
|
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
13
13
|
if (kind === "a" && !f)
|
|
@@ -32,7 +32,8 @@ const CSS_BUNDLES = [
|
|
|
32
32
|
"utils/layout",
|
|
33
33
|
"components/edit",
|
|
34
34
|
"components/icon",
|
|
35
|
-
"components/button"
|
|
35
|
+
"components/button",
|
|
36
|
+
"chameleon/scrollbar"
|
|
36
37
|
];
|
|
37
38
|
const KB_ICON = getIconPath({
|
|
38
39
|
category: "objects",
|
|
@@ -69,7 +70,7 @@ const GxIdeStartPage$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeStartPage e
|
|
|
69
70
|
});
|
|
70
71
|
});
|
|
71
72
|
_GxIdeStartPage_openKbHandler.set(this, async (e) => {
|
|
72
|
-
const kbId = e.
|
|
73
|
+
const kbId = e.currentTarget.id;
|
|
73
74
|
await this.openKbCallback(kbId);
|
|
74
75
|
});
|
|
75
76
|
_GxIdeStartPage_renderKb.set(this, (kb) => {
|
|
@@ -89,7 +90,7 @@ const GxIdeStartPage$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeStartPage e
|
|
|
89
90
|
_GxIdeStartPage_renderKbs.set(this, () => {
|
|
90
91
|
var _a;
|
|
91
92
|
if (this.filteredKbs.length) {
|
|
92
|
-
return (h("div", { class: "kbs-container" }, (_a = this.filteredKbs) === null || _a === void 0 ? void 0 : _a.map(__classPrivateFieldGet(this, _GxIdeStartPage_renderKb, "f"))));
|
|
93
|
+
return (h("div", { class: "kbs-container scrollable" }, (_a = this.filteredKbs) === null || _a === void 0 ? void 0 : _a.map(__classPrivateFieldGet(this, _GxIdeStartPage_renderKb, "f"))));
|
|
93
94
|
}
|
|
94
95
|
return (h("gx-ide-empty-state", { stateIconSrc: KB_ICON, stateTitle: this._componentLocale.recentKbs.noKbsFiltered.title }));
|
|
95
96
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-start-page.js","mappings":"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","names":["GxIdeStartPage"],"sources":["src/components/start-page/start-page.scss?tag=gx-ide-start-page&encapsulation=shadow","src/components/start-page/start-page.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../global/reset.scss\";\n\n@include hiChar();\n\n:host {\n overflow: auto;\n container-type: inline-size;\n container-name: host;\n}\n\n.layout-main,\n.layout__panel {\n block-size: 100%;\n overflow: auto;\n}\n@container host (max-width: 768px) {\n .layout.layout-main {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr 1fr;\n }\n}\n\n// recent kb's\n.panel-recent-kbs {\n position: relative;\n}\n.recent-kbs,\n.recent-news {\n display: grid;\n grid-template-rows: auto 1fr;\n gap: var(--mer-spacing--md);\n overflow: auto;\n\n &__header {\n display: grid;\n gap: var(--mer-spacing--md);\n }\n}\n\n.kbs-container {\n display: grid;\n gap: var(--mer-spacing--xs);\n overflow: auto;\n grid-auto-rows: max-content;\n container-type: inline-size;\n container-name: kb-container;\n animation: fadeIn var(--mer-timing--super-fast) forwards linear;\n}\n\n.card-kb {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mer-spacing--lg);\n container-type: inline-size;\n container-name: card-kb;\n\n &__left-col {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n }\n}\n@container kb-container (max-width: 360px) {\n .card-kb {\n align-items: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n justify-content: start;\n }\n}\n\n// recent news\ngx-ide-recent-news {\n overflow: auto;\n}\n.panel-recent-news {\n position: relative;\n}\n\n@keyframes exactMatchBright {\n 100% {\n filter: brightness(1.25);\n }\n}\n.exact-match-bright {\n animation: exactMatchBright var(--mer-timing--super-fast) ease-in-out 4\n alternate;\n}\n\ngx-ide-loader::part(loader-wrapper) {\n border: var(--mer-border__width--sm) solid\n var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { formatDate, hiChar } from \"../../common/helpers\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/layout\",\n \"components/edit\",\n \"components/icon\",\n \"components/button\"\n];\n\nconst KB_ICON = getIconPath({\n category: \"objects\",\n name: \"knowledge-base\"\n});\nconst FOLDER_ICON = getIconPath({\n category: \"system\",\n name: \"folder\",\n colorType: \"on-elevation\"\n});\n\n@Component({\n tag: \"gx-ide-start-page\",\n styleUrl: \"start-page.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/start-page\"]\n})\nexport class GxIdeStartPage {\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n #recentKbsFilter: HTMLChEditElement;\n #kbsFilterValue: string = \"\";\n\n @Element() el: HTMLGxIdeStartPageElement;\n\n /**\n * The condition required to display the kbs filter\n */\n @State() displayKbsFilter: boolean = true;\n\n /**\n * The condition required to display the news filter\n */\n @State() displayNewsFilter: boolean = false;\n\n /**\n * The filtered KBs after user input\n */\n @State() filteredKbs: RecentKBData[] = [];\n\n /**\n * The filtered news after user input\n */\n @State() filteredNews: NewsData[] = [];\n\n /**\n * True if kbs have been not loaded yet.\n */\n @State() loadingKbs: boolean = true;\n\n /**\n * A list of recent news\n */\n @State() news: NewsData[];\n @Watch(\"news\")\n watchNews(news: NewsData[]) {\n if (news?.length >= this.newsFilterThreshold) {\n this.displayNewsFilter = true;\n } else {\n this.displayNewsFilter = false;\n }\n }\n\n /**\n * The filter value for the recent news set by the user input\n */\n @State() newsFilterValue: string;\n\n /**\n * True if the component has been rendered for the first time.\n */\n @State() renderedFirstTime = false;\n\n /**\n * Callback invoked to load the news feed (right panel \"Recent News\").\n */\n @Prop() readonly getNewsCallback!: GetNewsCallback;\n\n /**\n * Ann array of the user's KB's\n */\n @Prop() readonly kbs: RecentKBData[] = [];\n @Watch(\"kbs\")\n kbsChanged(kbs: RecentKBData[]) {\n this.loadingKbs = false;\n this.#filterKbs();\n if (kbs?.length >= this.kbsFilterThreshold) {\n this.displayKbsFilter = true;\n } else {\n this.displayKbsFilter = false;\n }\n }\n\n /**\n * The minimum number of \"kbs\" that is required to display the kb's filter.\n */\n @Prop() readonly kbsFilterThreshold: number = 6;\n\n /**\n * The minimum number of \"news\" that is required to display the news's filter.\n */\n @Prop() readonly newsFilterThreshold: number = 6;\n\n /**\n * Callback invoked to open a knowledge base when the user clicks on a KB card.\n */\n @Prop() readonly openKbCallback!: OpenKbCallback;\n\n /**\n * Callback invoked to open a news article.\n */\n @Prop() readonly openNewsCallback!: OpenNewsCallback;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.#recentKbsFilter?.focus();\n }\n\n #evaluateRenderKbs = () => {\n if (this.kbs?.length > 0) {\n return this.#renderKbs();\n } else {\n return (\n <gx-ide-empty-state\n class=\"kbs-empty-state\"\n stateIconSrc={FOLDER_ICON}\n stateTitle={this._componentLocale.emptyState.title}\n stateDescription={this._componentLocale.emptyState.description}\n ></gx-ide-empty-state>\n );\n }\n };\n\n #filterKbs = () => {\n this.filteredKbs = this.kbs.filter(kb =>\n kb.name?.toLowerCase().includes(this.#kbsFilterValue)\n );\n };\n\n #getNewsCallbackRecentNews = async (): Promise<NewsData[]> => {\n return new Promise(async resolve => {\n this.news = await this.getNewsCallback();\n resolve(this.news);\n });\n };\n\n #openKbHandler = async (e: MouseEvent) => {\n const kbId = (e.target as HTMLElement).id;\n await this.openKbCallback(kbId);\n };\n\n #renderKb = (kb: RecentKBData): HTMLButtonElement | null => {\n const formattedDate = formatDate(kb.lastOpenedDate, \"pretty\");\n const dateCaption = formattedDate\n ? `${this._componentLocale.recentKbs.lastOpened} ${formattedDate}`\n : null;\n return (\n <article class=\"display-contents\">\n <button\n class={{\n \"card-small\": true,\n \"card-small--actionable\": true,\n \"card-kb\": true,\n \"exact-match-bright\":\n kb.name?.toLocaleLowerCase() ===\n this.#kbsFilterValue?.toLowerCase()\n }}\n id={kb.id}\n key={kb.id}\n type=\"button\"\n onClick={this.#openKbHandler}\n >\n <div class=\"card-kb__left-col\">\n <ch-image src={KB_ICON} class=\"icon-md\"></ch-image>\n <h2 class={config.headingsClasses.cardSmall}>\n {hiChar(kb.name, this.#kbsFilterValue)}\n </h2>\n </div>\n {dateCaption && <div class=\"card-kb__right-col\">{dateCaption}</div>}\n </button>\n </article>\n );\n };\n\n #renderKbs = () => {\n if (this.filteredKbs.length) {\n return (\n <div class=\"kbs-container\">{this.filteredKbs?.map(this.#renderKb)}</div>\n );\n }\n return (\n <gx-ide-empty-state\n stateIconSrc={KB_ICON}\n stateTitle={this._componentLocale.recentKbs.noKbsFiltered.title}\n ></gx-ide-empty-state>\n );\n };\n\n #searchKbsInputHandler = (event: Event | ChEditCustomEvent<InputEvent>) => {\n this.#kbsFilterValue = (\n event as ChEditCustomEvent<InputEvent>\n ).target.value.toLowerCase();\n this.#filterKbs();\n };\n\n #searchNewsInputHandler = (event: Event | ChEditCustomEvent<InputEvent>) => {\n this.newsFilterValue = (\n event as ChEditCustomEvent<InputEvent>\n ).target.value.toLowerCase();\n };\n\n render() {\n return (\n <Host class=\"start-page-host\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"layout layout-main layout--cols-2\">\n <div class=\"layout__panel panel-recent-kbs\">\n <section class=\"card-regular recent-kbs\">\n <header class=\"recent-kbs__header\">\n <h2\n class={{\n [config.headingsClasses.cardRegular]: true,\n \"recent-kbs__title\": true\n }}\n >\n {this._componentLocale.recentKbs.title}\n </h2>\n {this.displayKbsFilter && (\n <ch-edit\n type=\"text\"\n class=\"form-input recent-kbs__name-filter\"\n placeholder={this._componentLocale.recentKbs.placeholder}\n onInput={this.#searchKbsInputHandler}\n ref={el =>\n (this.#recentKbsFilter = el as HTMLChEditElement)\n }\n disabled={!(this.kbs?.length > 0)}\n ></ch-edit>\n )}\n </header>\n\n {this.loadingKbs ? (\n <gx-ide-loader\n loaderTitle={this._componentLocale.recentKbs.loader.title}\n description={\n this._componentLocale.recentKbs.loader.description\n }\n show={true}\n ></gx-ide-loader>\n ) : (\n this.#evaluateRenderKbs()\n )}\n </section>\n </div>\n\n <div class=\"layout__panel panel-recent-news\">\n <section class=\"card-regular recent-news\">\n <header class=\"recent-news__header\">\n <h2 class={config.headingsClasses.cardRegular}>\n {this._componentLocale.recentNews.title}\n </h2>\n {this.displayNewsFilter && (\n <ch-edit\n type=\"text\"\n class=\"form-input recent-news__filter\"\n placeholder={\n this._componentLocale.recentNews.inputPlaceholder\n }\n onInput={\n this.news?.length > 0\n ? this.#searchNewsInputHandler\n : null\n }\n disabled={!(this.news?.length > 0)}\n ></ch-edit>\n )}\n </header>\n\n <gx-ide-recent-news\n getNewsCallback={this.#getNewsCallbackRecentNews}\n openNewsCallback={this.openNewsCallback}\n filterValue={this.newsFilterValue}\n ></gx-ide-recent-news>\n </section>\n </div>\n </div>\n </Host>\n );\n }\n}\n\nexport type OpenKbCallback = (id: string) => Promise<void>;\nexport type GetNewsCallback = () => Promise<NewsData[]>;\nexport type OpenNewsCallback = (id: string) => Promise<void>;\n\nexport type RecentKBData = {\n id: string;\n name: string;\n lastOpenedDate?: Date;\n};\nexport type NewsData = {\n id: string;\n title: string;\n body: string;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-start-page.js","mappings":"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","names":["GxIdeStartPage"],"sources":["src/components/start-page/start-page.scss?tag=gx-ide-start-page&encapsulation=shadow","src/components/start-page/start-page.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../global/reset.scss\";\n\n@include hiChar();\n\n:host {\n overflow: auto;\n container-type: inline-size;\n container-name: host;\n}\n\n.layout-main,\n.layout__panel {\n block-size: 100%;\n overflow: auto;\n}\n@container host (max-width: 768px) {\n .layout.layout-main {\n grid-template-columns: 1fr;\n grid-template-rows: 1fr 1fr;\n }\n}\n\n// recent kb's\n.panel-recent-kbs {\n position: relative;\n}\n.recent-kbs,\n.recent-news {\n display: grid;\n grid-template-rows: auto 1fr;\n gap: var(--mer-spacing--md);\n overflow: auto;\n\n &__header {\n display: grid;\n gap: var(--mer-spacing--md);\n }\n}\n\n.kbs-container {\n display: grid;\n gap: var(--mer-spacing--xs);\n overflow: auto;\n grid-auto-rows: max-content;\n container-type: inline-size;\n container-name: kb-container;\n animation: fadeIn var(--mer-timing--super-fast) forwards linear;\n}\n\n.card-kb {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mer-spacing--lg);\n container-type: inline-size;\n container-name: card-kb;\n\n &__left-col {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n }\n}\n@container kb-container (max-width: 360px) {\n .card-kb {\n align-items: center;\n flex-direction: column;\n gap: var(--mer-spacing--xs);\n justify-content: start;\n }\n}\n\n// recent news\ngx-ide-recent-news {\n overflow: auto;\n}\n.panel-recent-news {\n position: relative;\n}\n\n@keyframes exactMatchBright {\n 100% {\n filter: brightness(1.25);\n }\n}\n.exact-match-bright {\n animation: exactMatchBright var(--mer-timing--super-fast) ease-in-out 4\n alternate;\n}\n\ngx-ide-loader::part(loader-wrapper) {\n border: var(--mer-border__width--sm) solid\n var(--mer-border-color__on-elevation--01);\n border-radius: var(--mer-border__radius--md);\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n}\n","/* STENCIL IMPORTS */\nimport { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { formatDate, hiChar } from \"../../common/helpers\";\nimport { ChEditCustomEvent } from \"@genexus/chameleon-controls-library\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"utils/layout\",\n \"components/edit\",\n \"components/icon\",\n \"components/button\",\n \"chameleon/scrollbar\"\n];\n\nconst KB_ICON = getIconPath({\n category: \"objects\",\n name: \"knowledge-base\"\n});\nconst FOLDER_ICON = getIconPath({\n category: \"system\",\n name: \"folder\",\n colorType: \"on-elevation\"\n});\n\n@Component({\n tag: \"gx-ide-start-page\",\n styleUrl: \"start-page.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/start-page\"]\n})\nexport class GxIdeStartPage {\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n #recentKbsFilter: HTMLChEditElement;\n #kbsFilterValue: string = \"\";\n\n @Element() el: HTMLGxIdeStartPageElement;\n\n /**\n * The condition required to display the kbs filter\n */\n @State() displayKbsFilter: boolean = true;\n\n /**\n * The condition required to display the news filter\n */\n @State() displayNewsFilter: boolean = false;\n\n /**\n * The filtered KBs after user input\n */\n @State() filteredKbs: RecentKBData[] = [];\n\n /**\n * The filtered news after user input\n */\n @State() filteredNews: NewsData[] = [];\n\n /**\n * True if kbs have been not loaded yet.\n */\n @State() loadingKbs: boolean = true;\n\n /**\n * A list of recent news\n */\n @State() news: NewsData[];\n @Watch(\"news\")\n watchNews(news: NewsData[]) {\n if (news?.length >= this.newsFilterThreshold) {\n this.displayNewsFilter = true;\n } else {\n this.displayNewsFilter = false;\n }\n }\n\n /**\n * The filter value for the recent news set by the user input\n */\n @State() newsFilterValue: string;\n\n /**\n * True if the component has been rendered for the first time.\n */\n @State() renderedFirstTime = false;\n\n /**\n * Callback invoked to load the news feed (right panel \"Recent News\").\n */\n @Prop() readonly getNewsCallback!: GetNewsCallback;\n\n /**\n * Ann array of the user's KB's\n */\n @Prop() readonly kbs: RecentKBData[] = [];\n @Watch(\"kbs\")\n kbsChanged(kbs: RecentKBData[]) {\n this.loadingKbs = false;\n this.#filterKbs();\n if (kbs?.length >= this.kbsFilterThreshold) {\n this.displayKbsFilter = true;\n } else {\n this.displayKbsFilter = false;\n }\n }\n\n /**\n * The minimum number of \"kbs\" that is required to display the kb's filter.\n */\n @Prop() readonly kbsFilterThreshold: number = 6;\n\n /**\n * The minimum number of \"news\" that is required to display the news's filter.\n */\n @Prop() readonly newsFilterThreshold: number = 6;\n\n /**\n * Callback invoked to open a knowledge base when the user clicks on a KB card.\n */\n @Prop() readonly openKbCallback!: OpenKbCallback;\n\n /**\n * Callback invoked to open a news article.\n */\n @Prop() readonly openNewsCallback!: OpenNewsCallback;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidLoad() {\n this.#recentKbsFilter?.focus();\n }\n\n #evaluateRenderKbs = () => {\n if (this.kbs?.length > 0) {\n return this.#renderKbs();\n } else {\n return (\n <gx-ide-empty-state\n class=\"kbs-empty-state\"\n stateIconSrc={FOLDER_ICON}\n stateTitle={this._componentLocale.emptyState.title}\n stateDescription={this._componentLocale.emptyState.description}\n ></gx-ide-empty-state>\n );\n }\n };\n\n #filterKbs = () => {\n this.filteredKbs = this.kbs.filter(kb =>\n kb.name?.toLowerCase().includes(this.#kbsFilterValue)\n );\n };\n\n #getNewsCallbackRecentNews = async (): Promise<NewsData[]> => {\n return new Promise(async resolve => {\n this.news = await this.getNewsCallback();\n resolve(this.news);\n });\n };\n\n #openKbHandler = async (e: MouseEvent) => {\n const kbId = (e.currentTarget as HTMLElement).id;\n await this.openKbCallback(kbId);\n };\n\n #renderKb = (kb: RecentKBData): HTMLButtonElement | null => {\n const formattedDate = formatDate(kb.lastOpenedDate, \"pretty\");\n const dateCaption = formattedDate\n ? `${this._componentLocale.recentKbs.lastOpened} ${formattedDate}`\n : null;\n return (\n <article class=\"display-contents\">\n <button\n class={{\n \"card-small\": true,\n \"card-small--actionable\": true,\n \"card-kb\": true,\n \"exact-match-bright\":\n kb.name?.toLocaleLowerCase() ===\n this.#kbsFilterValue?.toLowerCase()\n }}\n id={kb.id}\n key={kb.id}\n type=\"button\"\n onClick={this.#openKbHandler}\n >\n <div class=\"card-kb__left-col\">\n <ch-image src={KB_ICON} class=\"icon-md\"></ch-image>\n <h2 class={config.headingsClasses.cardSmall}>\n {hiChar(kb.name, this.#kbsFilterValue)}\n </h2>\n </div>\n {dateCaption && <div class=\"card-kb__right-col\">{dateCaption}</div>}\n </button>\n </article>\n );\n };\n\n #renderKbs = () => {\n if (this.filteredKbs.length) {\n return (\n <div class=\"kbs-container scrollable\">\n {this.filteredKbs?.map(this.#renderKb)}\n </div>\n );\n }\n return (\n <gx-ide-empty-state\n stateIconSrc={KB_ICON}\n stateTitle={this._componentLocale.recentKbs.noKbsFiltered.title}\n ></gx-ide-empty-state>\n );\n };\n\n #searchKbsInputHandler = (event: Event | ChEditCustomEvent<InputEvent>) => {\n this.#kbsFilterValue = (\n event as ChEditCustomEvent<InputEvent>\n ).target.value.toLowerCase();\n this.#filterKbs();\n };\n\n #searchNewsInputHandler = (event: Event | ChEditCustomEvent<InputEvent>) => {\n this.newsFilterValue = (\n event as ChEditCustomEvent<InputEvent>\n ).target.value.toLowerCase();\n };\n\n render() {\n return (\n <Host class=\"start-page-host\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"layout layout-main layout--cols-2\">\n <div class=\"layout__panel panel-recent-kbs\">\n <section class=\"card-regular recent-kbs\">\n <header class=\"recent-kbs__header\">\n <h2\n class={{\n [config.headingsClasses.cardRegular]: true,\n \"recent-kbs__title\": true\n }}\n >\n {this._componentLocale.recentKbs.title}\n </h2>\n {this.displayKbsFilter && (\n <ch-edit\n type=\"text\"\n class=\"form-input recent-kbs__name-filter\"\n placeholder={this._componentLocale.recentKbs.placeholder}\n onInput={this.#searchKbsInputHandler}\n ref={el =>\n (this.#recentKbsFilter = el as HTMLChEditElement)\n }\n disabled={!(this.kbs?.length > 0)}\n ></ch-edit>\n )}\n </header>\n\n {this.loadingKbs ? (\n <gx-ide-loader\n loaderTitle={this._componentLocale.recentKbs.loader.title}\n description={\n this._componentLocale.recentKbs.loader.description\n }\n show={true}\n ></gx-ide-loader>\n ) : (\n this.#evaluateRenderKbs()\n )}\n </section>\n </div>\n\n <div class=\"layout__panel panel-recent-news\">\n <section class=\"card-regular recent-news\">\n <header class=\"recent-news__header\">\n <h2 class={config.headingsClasses.cardRegular}>\n {this._componentLocale.recentNews.title}\n </h2>\n {this.displayNewsFilter && (\n <ch-edit\n type=\"text\"\n class=\"form-input recent-news__filter\"\n placeholder={\n this._componentLocale.recentNews.inputPlaceholder\n }\n onInput={\n this.news?.length > 0\n ? this.#searchNewsInputHandler\n : null\n }\n disabled={!(this.news?.length > 0)}\n ></ch-edit>\n )}\n </header>\n\n <gx-ide-recent-news\n getNewsCallback={this.#getNewsCallbackRecentNews}\n openNewsCallback={this.openNewsCallback}\n filterValue={this.newsFilterValue}\n ></gx-ide-recent-news>\n </section>\n </div>\n </div>\n </Host>\n );\n }\n}\n\nexport type OpenKbCallback = (id: string) => Promise<void>;\nexport type GetNewsCallback = () => Promise<NewsData[]>;\nexport type OpenNewsCallback = (id: string) => Promise<void>;\n\nexport type RecentKBData = {\n id: string;\n name: string;\n lastOpenedDate?: Date;\n};\nexport type NewsData = {\n id: string;\n title: string;\n body: string;\n};\n"],"version":3}
|