@genexus/genexus-ide-ui 1.0.2 → 1.0.3
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-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-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 +4 -3
- 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/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/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 +3 -2
- 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/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 +4 -3
- 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/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-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-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 +4 -3
- 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-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-8050e61d.entry.js → p-bbb30314.entry.js} +18 -18
- package/dist/genexus-ide-ui/p-bbb30314.entry.js.map +1 -0
- 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-b984f974.entry.js → p-e4db9c34.entry.js} +46 -46
- 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 +3 -3
- 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-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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["mapObjectTypeToComboBoxItemModel","objectTypeModel","map","objectType","value","id","caption","name","mapCategoryToComboBoxItemModel","categoryModel","category","label","objectSelectorCss","CSS_BUNDLES","FILTER_ICON","getIconPath","colorType","USER_ICON","MODIFIED_ACCORDION_MODEL","expanded","TODAY","GxIdeObjectSelector","_GxIdeObjectSelector_componentLocale","set","this","_GxIdeObjectSelector_shortcutsSrc","getAssetPath","_GxIdeObjectSelector_afterModel","_GxIdeObjectSelector_patternInput","_GxIdeObjectSelector_typeComboBox","_GxIdeObjectSelector_categoryComboBox","_GxIdeObjectSelector_moduleEntitySelector","_GxIdeObjectSelector_afterTypeComboBox","_GxIdeObjectSelector_userInput","_GxIdeObjectSelector_modifiedDateInput","_GxIdeObjectSelector_objectsGrid","_GxIdeObjectSelector_shortcutsEl","_GxIdeObjectSelector_cancelCallbackHandler","cancelCallback","_GxIdeObjectSelector_chGridKeyDownHandler","e","key","__classPrivateFieldGet","_GxIdeObjectSelector_openSelectionCallbackHandler","call","_GxIdeObjectSelector_deselectAll","selectAllRows","_GxIdeObjectSelector_evaluateObjectsCount","type","locale","selectedObjectsIdsArray","length","objCount","selected","none","one","many","objects","matching","_GxIdeObjectSelector_getToday","now","Date","date","toISOString","split","time","slice","_GxIdeObjectSelector_handleAfterValueChange","event","modifiedAfterValue","detail","FILTER_AFTER","DATE_TIME","_GxIdeObjectSelector_refreshUIWithNewConfiguration","_GxIdeObjectSelector_handleObjectsSelectionChange","rowsId","_GxIdeObjectSelector_hostKeyPressHandler","stopPropagation","_GxIdeObjectSelector_newObjectCallbackHandler","newObjectCallback","openSelectionCallback","modifiedAfter","user","_b","_a","trim","filters","pattern","_c","module","_e","_d","modifiedBy","modifiedDate","_f","loading","loadCallback","then","_GxIdeObjectSelector_sortObjectsByName","_GxIdeObjectSelector_renderFilter","h","class","htmlFor","filter","accessibleName","debounce","config","inputDebounce","part","patternValue","mode","ref","el","__classPrivateFieldSet","onInput","disabled","types","defaultType","model","categories","defaultCategory","defaultModule","defaultValue","selectEntityCallback","selectModuleCallback","onValueChanged","labelPosition","slot","after","startImgSrc","dateTime","max","_GxIdeObjectSelector_renderFooter","onClick","undefined","footer","btnNew","btnCancel","btnConfirm","multiSelection","_GxIdeObjectSelector_selectAll","btnSelectAll","_GxIdeObjectSelector_renderObjects","rowSelectionMode","onKeyDown","onSelectionChanged","onDblClick","settingable","size","tabularGrid","colSize","maxContent","tableHead","description","commonDouble","importDate","obj","rowid","src","icon","formatDate","loader","loaderTitle","title","show","stateIconSrc","stateTitle","emptyState","_GxIdeObjectSelector_setAfterDefaultValue","NONE","_GxIdeObjectSelector_setAfterOptions","afterNone","IMPORT","LAST_BUILD","sort","a","b","nameA","toLowerCase","nameB","connectedCallback","componentWillLoad","Locale","getComponentStrings","componentDidLoad","focus","componentDidRender","suspendShortcuts","suspend","validate","isValid","render","Host","onKeyPress"],"sources":["src/components/object-selector/helpers.ts","src/components/object-selector/object-selector.scss?tag=gx-ide-object-selector&encapsulation=shadow","src/components/object-selector/object-selector.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../common/types\";\n// - - - - - - - - - - - -\n// Data Mappings\n// - - - - - - - - - - - -\n\n// ch-combo-box-render\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name\n }));\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n","@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n@import \"../../../node_modules/@genexus/mercury/dist/mercury.scss\";\n\n:host {\n block-size: 100%;\n display: grid;\n grid-template-rows: auto 1fr auto;\n overflow: auto;\n}\n\n/* Filters */\n.filter-layout {\n grid-template:\n \"pattern type\"\n \"category module\"\n \"modified modified\";\n grid-template-columns: 1fr 1fr;\n}\n.pattern {\n grid-area: pattern;\n}\n.type {\n grid-area: type;\n}\n.category {\n grid-area: category;\n}\n.module {\n grid-area: module;\n}\n.modified-accordion {\n grid-area: modified;\n display: flex;\n flex-direction: column;\n}\n.field-group-modified {\n grid-template-columns: 1fr 1fr 1fr;\n}\n\ngx-ide-container::part(content) {\n // only apply display grid when the loader is being displayed, to stretch the container.\n display: grid;\n}\n\n/*tabular grid*/\nch-tabular-grid {\n overflow: auto;\n max-width: 100%;\n}\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid-object-selector\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n\n/* Objects Table */\n.objects-count {\n display: grid;\n grid-template-columns: 1fr 1fr;\n border-block-start: var(--mer-border__width--sm) solid\n var(--mer-color__elevation--04);\n}\n.objects-selected {\n text-align: start;\n}\n.objects-matching {\n text-align: end;\n}\n.objects-selected,\n.objects-matching {\n padding: var(--mer-spacing--xs) var(--mer-spacing--md);\n}\ndiv.buttons-footer {\n justify-content: space-between;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\nch-tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\ninput::-webkit-datetime-edit-fields-wrapper {\n // WA remove padding to force this input block-size to be the same as other\n // mercury controls block size.\n padding: none;\n}\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n getAssetPath\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport {\n AccordionModel,\n ComboBoxModel,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { EntityData, GxOption, ObjectType } from \"../../common/types\";\nimport { formatDate } from \"../../common/helpers\";\nimport {\n mapObjectTypeToComboBoxItemModel,\n mapCategoryToComboBoxItemModel\n} from \"./helpers\";\nimport { FILTER_AFTER, FilterAfterValue } from \"../../common/constants\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"components/accordion\",\n \"components/tabular-grid\",\n \"utils/typography\",\n \"utils/layout\"\n];\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst USER_ICON = getIconPath({\n category: \"system\",\n name: \"user\",\n colorType: \"on-elevation\"\n});\n\nconst MODIFIED_ACCORDION_MODEL: AccordionModel = [\n {\n id: \"modified\",\n caption: \"Modified\",\n expanded: false\n }\n];\n\nlet TODAY: string = null;\n\n@Component({\n tag: \"gx-ide-object-selector\",\n styleUrl: \"object-selector.scss\",\n shadow: { delegatesFocus: true },\n assetsDirs: [\"gx-ide-assets/object-selector\"]\n})\nexport class GxIdeObjectSelector {\n #componentLocale: any;\n #shortcutsSrc = getAssetPath(\n `./gx-ide-assets/object-selector/shortcuts.json`\n );\n\n #afterModel: ComboBoxModel = null;\n\n @Element() el: HTMLGxIdeObjectSelectorElement;\n\n /* References needed to collect data */\n #patternInput!: HTMLChEditElement;\n #typeComboBox!: HTMLChComboBoxRenderElement;\n #categoryComboBox!: HTMLChComboBoxRenderElement;\n #moduleEntitySelector!: HTMLGxIdeEntitySelectorElement;\n #afterTypeComboBox!: HTMLChComboBoxRenderElement;\n #userInput!: HTMLChEditElement;\n #modifiedDateInput!: HTMLInputElement;\n #objectsGrid!: HTMLChTabularGridElement;\n #shortcutsEl: HTMLChShortcutsElement;\n\n /**\n * For show or hide the filters relative to modifiers\n */\n @State() filterModified = false;\n\n /**\n * True if loadCallback has been called and has not been resolved yet.\n */\n @State() loading: boolean = false;\n\n /**\n * The \"modified after\" value\n */\n @State() modifiedAfterValue: FilterAfterValue;\n\n /**\n * The objects rendered in the table\n */\n @State() objects: ObjectData[] = [];\n\n /**\n * The selected objects in the table of objects\n */\n @State() selectedObjectsIdsArray: string[] = [];\n\n /**\n * Callback invoked when the user wishes to cancel the selection of objects.\n */\n @Prop() readonly cancelCallback!: CancelCallback;\n\n /**\n * The categories render in the filter category selector\n */\n @Prop() readonly categories!: GxOption[];\n\n /**\n * The default id value for the category filter\n */\n @Prop() readonly defaultCategory: string;\n\n /**\n * The default value for the module/folder filter\n */\n @Prop() readonly defaultModule: EntityData;\n\n /**\n * The default value for the type filter\n */\n @Prop() readonly defaultType: string;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly loader = false;\n\n /**\n * Callback invoked when the component needs to reload the list of attributes.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * True if multiple object selection is allowed. Default is 'True'\n */\n @Prop() readonly multiSelection: boolean = false;\n\n /**\n * Callback invoked when the user presses the 'New' button.\n */\n @Prop() readonly newObjectCallback!: NewObjectCallback;\n\n /**\n * This is a function provided by the developer for expanded the data of object that is double-clicked or entered.\n */\n @Prop() readonly openSelectionCallback!: OpenSelectionCallback;\n\n /**\n * Current value of the input pattern. It is also used to set the default value when initializing the component\n */\n @Prop() readonly patternValue: string;\n\n /**\n * Callback invoked when the action is executed in the Module/Folder filter. It returns the information of the selected object (id and name) or 'undefined' if it was canceled.\n */\n @Prop() readonly selectModuleCallback: SelectModuleCallback;\n\n /**\n * The types render in the filter type selector\n */\n @Prop() readonly types!: ObjectType[];\n\n async connectedCallback() {\n TODAY = this.#getToday();\n }\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#setAfterOptions();\n this.#setAfterDefaultValue();\n }\n\n componentDidLoad() {\n this.#refreshUIWithNewConfiguration();\n this.#patternInput.focus();\n }\n\n componentDidRender() {}\n\n /**\n * Suspends or reactivates the shortcuts\n */\n @Method()\n async suspendShortcuts(suspendShortcuts: boolean) {\n if (suspendShortcuts) {\n this.#shortcutsEl.suspend = true;\n } else {\n this.#shortcutsEl.suspend = false;\n }\n }\n\n /**\n * Validate necessary data input\n */\n @Method()\n async validate(): Promise<boolean> {\n const isValid = true;\n return isValid;\n }\n\n #cancelCallbackHandler = (): void => {\n this.cancelCallback();\n };\n\n #chGridKeyDownHandler = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n this.#openSelectionCallbackHandler(e);\n }\n };\n\n #deselectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows(false);\n };\n\n #evaluateObjectsCount = (type: \"selected\" | \"matching\"): string => {\n const locale = this.#componentLocale;\n\n if (type === \"selected\") {\n if (this.selectedObjectsIdsArray.length === 0) {\n return locale.objCount.selected.none;\n }\n if (this.selectedObjectsIdsArray.length === 1) {\n return `1 ${locale.objCount.selected.one}`;\n }\n return `${this.selectedObjectsIdsArray.length} ${locale.objCount.selected.many}`;\n }\n\n // type === \"matching\"\n if (this.objects.length === 0) {\n return locale.objCount.matching.none;\n }\n if (this.objects.length === 1) {\n return `1 ${locale.objCount.matching.one}`;\n }\n return `${this.objects.length} ${locale.objCount.matching.many}`;\n };\n\n #getToday = (): string => {\n const now = new Date();\n const date = now.toISOString().split(\"T\")[0];\n const time = now.toISOString().split(\"T\")[1].slice(0, 5); // Only take 'HH:MM' part\n return `${date}T${time}`;\n };\n\n #handleAfterValueChange = (event: CustomEvent<string> | InputEvent) => {\n this.modifiedAfterValue = event.detail as FilterAfterValue;\n if (\n this.modifiedAfterValue !== FILTER_AFTER.DATE_TIME ||\n (this.modifiedAfterValue === FILTER_AFTER.DATE_TIME &&\n this.#modifiedDateInput.value)\n ) {\n // if \"modified\" is \"after date/time\" only refresh ui if date/time is valid.\n this.#refreshUIWithNewConfiguration();\n }\n };\n\n #handleObjectsSelectionChange = (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n this.selectedObjectsIdsArray = event.detail.rowsId;\n };\n\n #hostKeyPressHandler = (e: KeyboardEvent) => {\n // just prevent keypress propagation\n if (e.key === \"Enter\") {\n e.stopPropagation();\n }\n };\n\n #newObjectCallbackHandler = (): void => {\n this.newObjectCallback();\n };\n\n #openSelectionCallbackHandler = (e: MouseEvent | KeyboardEvent): void => {\n e.stopPropagation();\n this.openSelectionCallback(this.selectedObjectsIdsArray);\n };\n\n #refreshUIWithNewConfiguration = (): void => {\n /* 'modified' checkbox, should only be considered if 'date' || 'user' */\n const modifiedAfter = this.#afterTypeComboBox.value;\n const user = this.#userInput?.value?.trim();\n const filters: ObjectFiltersData = {\n pattern: this.#patternInput?.value,\n type: this.#typeComboBox.value,\n category: this.#categoryComboBox.value,\n module: this.#moduleEntitySelector?.value?.id,\n modifiedAfter: modifiedAfter ? modifiedAfter : null,\n modifiedBy: user ? user : null,\n modifiedDate:\n modifiedAfter === FILTER_AFTER.DATE_TIME\n ? new Date(this.#modifiedDateInput?.value)\n : null\n };\n this.loading = true;\n this.objects = [];\n this.loadCallback(filters).then((objects: ObjectData[]) => {\n if (objects) {\n this.objects = this.#sortObjectsByName(objects);\n }\n this.selectedObjectsIdsArray = [];\n this.#deselectAll();\n this.loading = false;\n });\n };\n\n #renderFilter = (): Element => {\n return (\n <form class=\"field-group filter-layout spacing-body\">\n {/* #pattern */}\n <div class=\"field field-block pattern\">\n <label class=\"label\" htmlFor=\"pattern\">\n {this.#componentLocale.filter.pattern}\n </label>\n\n <ch-edit\n accessibleName={this.#componentLocale.filter.pattern}\n debounce={config.inputDebounce}\n class=\"form-input\"\n part=\"filter-pattern\"\n id=\"pattern\"\n name=\"pattern\"\n value={this.patternValue}\n mode=\"text\"\n ref={(el: HTMLChEditElement) =>\n (this.#patternInput = el as HTMLChEditElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n {/* #type */}\n <div class=\"field field-block type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#componentLocale.filter.type}\n </label>\n <ch-combo-box-render\n accessibleName={this.#componentLocale.filter.type}\n class=\"combo-box\"\n disabled={!this.types}\n value={this.defaultType}\n part=\"filter-type\"\n id=\"type\"\n model={mapObjectTypeToComboBoxItemModel(this.types)}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typeComboBox = el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-combo-box-render>\n </div>\n\n {/* #category */}\n <div class=\"field field-block category\">\n <label class=\"label\" htmlFor=\"category\">\n {this.#componentLocale.filter.category}\n </label>\n <ch-combo-box-render\n id=\"category\"\n class=\"combo-box\"\n accessibleName={this.#componentLocale.filter.category}\n disabled={!this.categories}\n model={mapCategoryToComboBoxItemModel(this.categories)}\n value={this.defaultCategory}\n part=\"filter-category\"\n onInput={this.categories && this.#refreshUIWithNewConfiguration}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#categoryComboBox = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n {/* #module */}\n <gx-ide-entity-selector\n value={this.defaultModule}\n defaultValue={this.defaultModule}\n selectEntityCallback={this.selectModuleCallback}\n ref={(el: HTMLGxIdeEntitySelectorElement) =>\n (this.#moduleEntitySelector = el as HTMLGxIdeEntitySelectorElement)\n }\n class=\"module\"\n id=\"module\"\n onValueChanged={this.#refreshUIWithNewConfiguration}\n labelPosition=\"block-start\"\n ></gx-ide-entity-selector>\n\n {/* #modified */}\n <ch-accordion-render\n class=\"accordion-outlined modified-accordion\"\n model={MODIFIED_ACCORDION_MODEL}\n >\n <div slot=\"modified\" class=\"spacing-body\">\n <div class=\"field-group field-group-modified\">\n <div class=\"field field-block after\">\n {/* #after */}\n <label class=\"label\" htmlFor=\"after-type\">\n {this.#componentLocale.filter.after}\n </label>\n <ch-combo-box-render\n class=\"combo-box\"\n value={this.modifiedAfterValue}\n part=\"filter-after-type\"\n id=\"after-type\"\n model={this.#afterModel}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#afterTypeComboBox =\n el as HTMLChComboBoxRenderElement)\n }\n onInput={this.#handleAfterValueChange}\n ></ch-combo-box-render>\n </div>\n\n {/* #user */}\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"user-name\">\n {this.#componentLocale.filter.user}\n </label>\n <ch-edit\n class=\"form-input\"\n part=\"filter-user\"\n value={this.patternValue}\n ref={(el: HTMLChEditElement) =>\n (this.#userInput = el as HTMLChEditElement)\n }\n id=\"user-name\"\n name=\"userName\"\n startImgSrc={USER_ICON}\n onInput={this.#refreshUIWithNewConfiguration}\n ></ch-edit>\n </div>\n\n {/* #date */}\n <div class=\"field field-block\">\n <label\n class={{\n \"label\": true,\n \"label--disabled\":\n this.modifiedAfterValue !== \"afterDateTime\"\n }}\n htmlFor=\"modified-date\"\n >\n {this.#componentLocale.filter.dateTime}\n </label>\n\n <input\n type=\"datetime-local\"\n class=\"form-input input-date-time\"\n id=\"modified-date\"\n name=\"modifiedDate\"\n part=\"filter-pattern\"\n value={this.patternValue}\n max={TODAY}\n ref={(el: HTMLInputElement) =>\n (this.#modifiedDateInput = el as HTMLInputElement)\n }\n disabled={this.modifiedAfterValue !== \"afterDateTime\"}\n onInput={this.#refreshUIWithNewConfiguration}\n ></input>\n </div>\n </div>\n </div>\n </ch-accordion-render>\n </form>\n );\n };\n\n #renderFooter = (): Element => {\n return (\n <footer>\n <div class=\"objects-count\" slot=\"footer-above\">\n <p\n class=\"text-body-regular-s objects-selected\"\n part=\"objects-selected\"\n >\n {this.#evaluateObjectsCount(\"selected\")}\n </p>\n <p\n class=\"text-body-regular-s objects-matching\"\n part=\"objects-matching\"\n >\n {this.#evaluateObjectsCount(\"matching\")}\n </p>\n </div>\n\n <div class=\"buttons-footer control-footer-with-border\">\n {/* button new object */}\n <button\n class=\"button-secondary\"\n part=\"button button-new\"\n onClick={!this.loading ? this.#newObjectCallbackHandler : undefined}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnNew}\n </button>\n <div class=\"end buttons-container\">\n {/* button cancel */}\n <button\n class=\"button-secondary\"\n part=\"button button-cancel\"\n onClick={this.#cancelCallbackHandler}\n >\n {this.#componentLocale.footer.btnCancel}\n </button>\n {/* button confirm */}\n <button\n class=\"button-primary\"\n part=\"button button-confirm\"\n onClick={this.#openSelectionCallbackHandler}\n disabled={this.loading}\n >\n {this.#componentLocale.footer.btnConfirm}\n </button>\n {this.multiSelection ? (\n <button\n class=\"button-secondary\"\n onClick={this.#selectAll}\n part=\"button button-select-all\"\n >\n {this.#componentLocale.footer.btnSelectAll}\n </button>\n ) : null}\n </div>\n </div>\n </footer>\n );\n };\n\n #renderObjects = (): Element => {\n return (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"tabular-grid-object-selector\": true,\n \"empty-result\": this.objects.length === 0\n }}\n rowSelectionMode={this.multiSelection ? \"multiple\" : \"single\"}\n ref={(el: HTMLChTabularGridElement) => (this.#objectsGrid = el)}\n part=\"ch-grid-objects\"\n onKeyDown={this.#chGridKeyDownHandler}\n onSelectionChanged={this.#handleObjectsSelectionChange}\n onDblClick={this.#openSelectionCallbackHandler}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.name}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.type}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.module}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.description}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.commonDouble}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.modifiedDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#componentLocale.tableHead.importDate}\n column-name-position=\"text\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n class=\"tabular-grid-column\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n\n {this.objects.length ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: ObjectData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n <ch-image src={obj.icon} class=\"icon-md\"></ch-image>\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.type}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.module}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.modifiedDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.importDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n {this.loader && this.loading ? (\n <gx-ide-loader\n loaderTitle={this.#componentLocale.loader.title}\n show\n ></gx-ide-loader>\n ) : (\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#componentLocale.emptyState.title}\n ></gx-ide-empty-state>\n )}\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #selectAll = (): void => {\n (this.#objectsGrid as any).selectAllRows();\n };\n\n #setAfterDefaultValue = (): void => {\n this.modifiedAfterValue = FILTER_AFTER.NONE;\n };\n\n #setAfterOptions = (): void => {\n this.#afterModel = [\n {\n caption: this.#componentLocale.filter.afterNone,\n value: FILTER_AFTER.NONE\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.DATE_TIME],\n value: FILTER_AFTER.DATE_TIME\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.IMPORT],\n value: FILTER_AFTER.IMPORT\n },\n {\n caption: this.#componentLocale.filter[FILTER_AFTER.LAST_BUILD],\n value: FILTER_AFTER.LAST_BUILD\n }\n ];\n };\n\n #sortObjectsByName = (objects: ObjectData[]): ObjectData[] => {\n return objects.sort((a, b) => {\n const nameA = a.name.toLowerCase(),\n nameB = b.name.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n };\n\n render(): void {\n return (\n <Host onKeyPress={this.#hostKeyPressHandler}>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.#renderFilter()}\n {this.#renderObjects()}\n {this.#renderFooter()}\n <ch-shortcuts\n src={this.#shortcutsSrc}\n ref={(el: HTMLChShortcutsElement) =>\n (this.#shortcutsEl = el as HTMLChShortcutsElement)\n }\n ></ch-shortcuts>\n </Host>\n );\n }\n}\n\nexport type NewObjectCallback = () => Promise<void>;\n\nexport type CancelCallback = () => Promise<void>;\n\nexport type SelectModuleCallback = () => Promise<EntityData | undefined>;\n\nexport type OpenSelectionCallback = (ids: string[]) => Promise<void>;\n\nexport type LoadCallback = (\n filters: ObjectFiltersData\n) => Promise<ObjectData[]>;\n\nexport type ObjectFiltersData = {\n pattern?: string;\n type: string;\n category?: string;\n module?: string;\n modifiedAfter?: string;\n modifiedBy?: string;\n modifiedDate?: Date;\n};\n\nexport type ObjectData = {\n id: string;\n icon: string;\n name: string;\n type: string;\n description: string;\n module: string;\n modifiedDate?: Date;\n importDate?: Date;\n};\n"],"mappings":"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"}
|
|
@@ -1,318 +0,0 @@
|
|
|
1
|
-
import { r as t, c as r, h as e, H as a, g as o } from "./p-aaed592c.js";
|
|
2
|
-
|
|
3
|
-
import { L as i } from "./p-74d59062.js";
|
|
4
|
-
|
|
5
|
-
const s = ":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)}:root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{font-family:var(--mer-font-family--primary);display:block;height:100%;flex-basis:286px;flex-shrink:0;height:100%;overflow-y:auto}.gx-ide-main-wrapper{padding:0 10px 52px 10px;background-color:var(--mer-color__neutral-gray--1000);height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:var(--mer-spacing--sm)}.header{padding-block-start:var(--mer-spacing--sm);display:flex;flex-direction:column}.header__actions-wrapper{display:flex;gap:var(--ai-assistant-header-actions-gap);margin-inline-start:auto}.header__first-row{display:flex;gap:var(--mer-spacing--xs);align-items:center;justify-content:space-between}.header__filter{margin-block-start:var(--mer-spacing--xs)}.header__second-row{transition:100ms grid-template-rows;display:grid;grid-template-rows:0fr}.header__second-row--visible{grid-template-rows:1fr}.header .filter-inner-wrapper{overflow:hidden}.messages-wrapper{position:relative;overflow:auto;display:flex;flex-direction:column;scroll-behavior:smooth;}.messages-wrapper::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.messages-wrapper::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.messages-wrapper::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.messages-wrapper::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.messages-wrapper::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.messages{display:flex;flex-direction:column;list-style-type:none;padding:0;margin:0}.prompt{position:relative;margin-top:auto}.prompt__textarea::part(textarea-wrapper){border:none;background-color:var(--mer-color__neutral-gray--1100)}.prompt__textarea::part(textarea){border:none}.prompt__shortcuts{position:absolute;display:flex;align-items:center;gap:var(--mer-spacing--2xs);padding-inline-end:var(--mer-spacing--xs);right:0;top:0;height:100%}.prompt__shortcut{color:var(--mer-color__neutral-gray--400);font-size:var(--mer-font__size--2xs);padding:var(--mer-spacing--3xs) var(--mer-spacing--xs);background-color:var(--mer-color__neutral-gray--700);border-radius:var(--mer-border__radius--xs)}";
|
|
6
|
-
|
|
7
|
-
const l = class {
|
|
8
|
-
constructor(a) {
|
|
9
|
-
t(this, a);
|
|
10
|
-
this.componentDidRenderFirstTime = r(this, "componentDidRenderFirstTime", 7);
|
|
11
|
-
this.renderedFirstTime = false;
|
|
12
|
-
this.setFocus = true;
|
|
13
|
-
this.scrollToBottomFlag = true;
|
|
14
|
-
// 9.LOCAL METHODS //
|
|
15
|
-
this.evaluateAiInProgress = () => {
|
|
16
|
-
var t;
|
|
17
|
-
if (((t = this.messages) === null || t === void 0 ? void 0 : t.length) > 0 && this.messages[this.messages.length - 1].type === "assistant-in-progress") {
|
|
18
|
-
this.aIInProgress = true;
|
|
19
|
-
} else {
|
|
20
|
-
this.aIInProgress = false;
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
this.evaluateAiStatus = () => {
|
|
24
|
-
var t;
|
|
25
|
-
if (((t = this.messages) === null || t === void 0 ? void 0 : t.length) === 0) {
|
|
26
|
-
this.assistantStatus = "indeterminate";
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
if (this.messages[this.messages.length - 1].type === "assistant-in-progress" || this.messages[this.messages.length - 1].type === "user") {
|
|
30
|
-
this.assistantStatus = "indeterminate";
|
|
31
|
-
} else if (this.messages[this.messages.length - 1].type === "assistant-error") {
|
|
32
|
-
this.assistantStatus = "error";
|
|
33
|
-
} else {
|
|
34
|
-
this.assistantStatus = "success";
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
this.renderMessage = (t, r) => {
|
|
38
|
-
if (t.text.length > 0) {
|
|
39
|
-
return e("gx-ide-ai-message", {
|
|
40
|
-
message: t.text,
|
|
41
|
-
messageType: t.type,
|
|
42
|
-
hidden: t.hidden,
|
|
43
|
-
filterValue: this.filterValue,
|
|
44
|
-
key: `${r.toString()}-${t.type}`,
|
|
45
|
-
translations: this._componentLocale.aiMessage
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
this.textAreaInputHandler = () => {
|
|
50
|
-
this.userHasTyped = true;
|
|
51
|
-
this.showFilter = false;
|
|
52
|
-
this.filterEl.value = "";
|
|
53
|
-
this.filterValue = "";
|
|
54
|
-
this.scrollToBottomFlag = true;
|
|
55
|
-
};
|
|
56
|
-
this.promptEnterHandler = async t => {
|
|
57
|
-
/* First remove double spaces */
|
|
58
|
-
const r = t.detail.replace(/\s+/g, " ");
|
|
59
|
-
/* Update textarea value to get the proper height */ this.textAreaEl.value = r;
|
|
60
|
-
setTimeout((() => {
|
|
61
|
-
/* Then save the actual height (setTimeOut required) */
|
|
62
|
-
this.lastUserMessageHeight = this.textAreaEl.offsetHeight;
|
|
63
|
-
}), 0);
|
|
64
|
-
/* The clear the textarea */ this.textAreaEl.value = "";
|
|
65
|
-
/* Insert the user message */ this.addMessage({
|
|
66
|
-
type: "user",
|
|
67
|
-
text: r
|
|
68
|
-
});
|
|
69
|
-
/* Call the callback */ if (this.userMessageCallback && !this.aIInProgress) {
|
|
70
|
-
this.aIInProgress = true;
|
|
71
|
-
this.userMessageCallback(r).then((() => {
|
|
72
|
-
this.aIInProgress = false;
|
|
73
|
-
}));
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
this.filterMessagesHandler = t => {
|
|
77
|
-
this.scrollToBottomFlag = false;
|
|
78
|
-
this.filterValue = t.detail.toLowerCase();
|
|
79
|
-
const r = [ ...this.messages ];
|
|
80
|
-
r.forEach((t => {
|
|
81
|
-
if (t.text.toLowerCase().includes(this.filterValue)) {
|
|
82
|
-
t.hidden = false;
|
|
83
|
-
} else {
|
|
84
|
-
t.hidden = true;
|
|
85
|
-
}
|
|
86
|
-
}));
|
|
87
|
-
this.messages = r;
|
|
88
|
-
};
|
|
89
|
-
this.clearMessages = () => {
|
|
90
|
-
this.messages = [];
|
|
91
|
-
this.textAreaEl.focus();
|
|
92
|
-
if (this.clearCallback) {
|
|
93
|
-
this.clearCallback();
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
this.attachShortcuts = () => {
|
|
97
|
-
var t;
|
|
98
|
-
if (((t = this.focusShortcuts) === null || t === void 0 ? void 0 : t.length) > 0) {
|
|
99
|
-
const t = this.focusShortcuts.findIndex((t => t.toLocaleLowerCase() === "ctrl"));
|
|
100
|
-
const r = this.focusShortcuts.findIndex((t => t.toLocaleLowerCase() === "shift"));
|
|
101
|
-
const e = this.focusShortcuts.findIndex((t => t.toLocaleLowerCase() === "cmd"));
|
|
102
|
-
const a = this.focusShortcuts.find((t => t.toLocaleLowerCase() !== "ctrl" && t.toLocaleLowerCase() !== "shift" && t.toLocaleLowerCase() !== "cmd")).toLowerCase();
|
|
103
|
-
document.addEventListener("keydown", (o => {
|
|
104
|
-
if (o.key === a && t !== -1 && o.ctrlKey) {
|
|
105
|
-
this.textAreaEl.focus();
|
|
106
|
-
this.userHasTyped = true;
|
|
107
|
-
} else if (o.key === a && r !== -1 && o.shiftKey) {
|
|
108
|
-
this.textAreaEl.focus();
|
|
109
|
-
this.userHasTyped = true;
|
|
110
|
-
} else if (o.key === a && e !== -1 && o.metaKey) {
|
|
111
|
-
this.textAreaEl.focus();
|
|
112
|
-
this.userHasTyped = true;
|
|
113
|
-
}
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
this.promptArrowUpHandler = () => {
|
|
118
|
-
var t;
|
|
119
|
-
this.userHasTyped = true;
|
|
120
|
-
const r = (t = this.messages) === null || t === void 0 ? void 0 : t.find((t => t.type === "user"));
|
|
121
|
-
if (r) {
|
|
122
|
-
if (this.lastUserMessageHeight) {
|
|
123
|
-
this.textareaShadowPart.style.height = `${this.lastUserMessageHeight}px`;
|
|
124
|
-
}
|
|
125
|
-
this.textAreaEl.value = r.text;
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
this.toggleFilterHandler = () => {
|
|
129
|
-
this.showFilter = !this.showFilter;
|
|
130
|
-
if (this.showFilter) {
|
|
131
|
-
this.filterEl.focus();
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
this.promptFocusHandler = () => {
|
|
135
|
-
this.promptHasFocus = true;
|
|
136
|
-
};
|
|
137
|
-
this.promptBlurHandler = () => {
|
|
138
|
-
this.promptHasFocus = false;
|
|
139
|
-
};
|
|
140
|
-
this.scrollToBottom = () => {
|
|
141
|
-
if (this.scrollToBottomFlag) {
|
|
142
|
-
this.messagesWrapperEl.scrollTo(0, this.messagesWrapperEl.scrollHeight);
|
|
143
|
-
this.messagesWrapperEl.scrollTop = this.messagesWrapperEl.scrollHeight - this.messagesWrapperEl.clientHeight;
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
this.userHasTyped = false;
|
|
147
|
-
this.aIInProgress = false;
|
|
148
|
-
this.showFilter = false;
|
|
149
|
-
this.promptHasFocus = false;
|
|
150
|
-
this.filterValue = undefined;
|
|
151
|
-
this.messages = [];
|
|
152
|
-
this.promptMaxHeight = "128px";
|
|
153
|
-
this.assistantStatus = "indeterminate";
|
|
154
|
-
this.focusShortcuts = undefined;
|
|
155
|
-
this.userMessageCallback = undefined;
|
|
156
|
-
this.clearCallback = undefined;
|
|
157
|
-
this.promptValue = undefined;
|
|
158
|
-
this.filter = true;
|
|
159
|
-
}
|
|
160
|
-
watchAIInProgressHandler(t) {
|
|
161
|
-
if (!t) {
|
|
162
|
-
this.setFocus = true;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
watchMessagesHandler() {
|
|
166
|
-
this.evaluateAiInProgress();
|
|
167
|
-
this.evaluateAiStatus();
|
|
168
|
-
}
|
|
169
|
-
// 6.COMPONENT LIFECYCLE METHODS //
|
|
170
|
-
async componentWillLoad() {
|
|
171
|
-
this._componentLocale = await i.getComponentStrings(this.el);
|
|
172
|
-
this.evaluateAiInProgress();
|
|
173
|
-
this.evaluateAiStatus();
|
|
174
|
-
this.attachShortcuts();
|
|
175
|
-
}
|
|
176
|
-
componentDidLoad() {
|
|
177
|
-
this.textareaShadowPart = this.textAreaEl.shadowRoot.querySelector("textarea");
|
|
178
|
-
}
|
|
179
|
-
componentDidRender() {
|
|
180
|
-
if (!this.renderedFirstTime) {
|
|
181
|
-
this.componentDidRenderFirstTime.emit(this._componentLocale.componentName);
|
|
182
|
-
this.renderedFirstTime = true;
|
|
183
|
-
}
|
|
184
|
-
if (this.setFocus) {
|
|
185
|
-
setTimeout((() => {
|
|
186
|
-
/* Doesn't seems to work without the setTimeout */
|
|
187
|
-
this.textAreaEl.focus();
|
|
188
|
-
this.setFocus = false;
|
|
189
|
-
}), 0);
|
|
190
|
-
}
|
|
191
|
-
setTimeout((() => {
|
|
192
|
-
this.scrollToBottom();
|
|
193
|
-
}), 200);
|
|
194
|
-
}
|
|
195
|
-
// 7.LISTENERS //
|
|
196
|
-
handleFocus(t) {
|
|
197
|
-
if (this.textAreaEl) {
|
|
198
|
-
t.preventDefault();
|
|
199
|
-
this.textAreaEl.focus();
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
// 8.PUBLIC METHODS API //
|
|
203
|
-
/**
|
|
204
|
-
* Clear the list of messages
|
|
205
|
-
*/
|
|
206
|
-
async clear() {
|
|
207
|
-
this.messages = [];
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Add a message. This method will be used by the host to add messages from the assistant
|
|
211
|
-
*/ async addMessage(t) {
|
|
212
|
-
var r;
|
|
213
|
-
if (((r = t.text) === null || r === void 0 ? void 0 : r.length) > 0) {
|
|
214
|
-
const r = [ ...this.messages ];
|
|
215
|
-
const e = (r === null || r === void 0 ? void 0 : r.length) > 0 && r[r.length - 1].type === "assistant-in-progress";
|
|
216
|
-
if (e) {
|
|
217
|
-
r.pop();
|
|
218
|
-
}
|
|
219
|
-
r.push(t);
|
|
220
|
-
this.messages = r;
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
// 10.RENDER() FUNCTION //
|
|
224
|
-
render() {
|
|
225
|
-
var t, r;
|
|
226
|
-
return e(a, {
|
|
227
|
-
class: {
|
|
228
|
-
[`assistant--${this.assistantStatus}`]: true,
|
|
229
|
-
"assistant--in-progress": this.aIInProgress
|
|
230
|
-
}
|
|
231
|
-
}, e("div", {
|
|
232
|
-
class: "gx-ide-main-wrapper"
|
|
233
|
-
}, e("header", {
|
|
234
|
-
class: "header"
|
|
235
|
-
}, e("div", {
|
|
236
|
-
class: "header__first-row"
|
|
237
|
-
}, e("gxg-title", {
|
|
238
|
-
type: "title-02"
|
|
239
|
-
}, this._componentLocale.componentName), e("div", {
|
|
240
|
-
class: "header__actions-wrapper"
|
|
241
|
-
}, this.filter ? e("gxg-button", {
|
|
242
|
-
class: "header__filter-button",
|
|
243
|
-
type: "tertiary",
|
|
244
|
-
icon: "menus/find",
|
|
245
|
-
onClick: this.toggleFilterHandler,
|
|
246
|
-
disabled: this.messages.length === 0
|
|
247
|
-
}) : null, e("gxg-button", {
|
|
248
|
-
class: "header__clear-button",
|
|
249
|
-
type: "tertiary",
|
|
250
|
-
icon: "bpm/delete",
|
|
251
|
-
onClick: this.clearMessages,
|
|
252
|
-
disabled: this.messages.length === 0
|
|
253
|
-
}))), this.filter ? e("div", {
|
|
254
|
-
class: {
|
|
255
|
-
"header__second-row": true,
|
|
256
|
-
"header__second-row--visible": this.showFilter
|
|
257
|
-
}
|
|
258
|
-
}, e("div", {
|
|
259
|
-
class: "filter-inner-wrapper"
|
|
260
|
-
}, e("gxg-form-text", {
|
|
261
|
-
class: "header__filter",
|
|
262
|
-
onInput: this.filterMessagesHandler,
|
|
263
|
-
ref: t => this.filterEl = t
|
|
264
|
-
}))) : null), e("div", {
|
|
265
|
-
class: {
|
|
266
|
-
"messages-wrapper": true
|
|
267
|
-
},
|
|
268
|
-
ref: t => this.messagesWrapperEl = t
|
|
269
|
-
}, ((t = this.messages) === null || t === void 0 ? void 0 : t.length) ? e("ol", {
|
|
270
|
-
class: {
|
|
271
|
-
messages: true
|
|
272
|
-
}
|
|
273
|
-
}, this.messages.map(((t, r) => this.renderMessage(t, r)))) : null), e("div", {
|
|
274
|
-
class: {
|
|
275
|
-
prompt: true
|
|
276
|
-
}
|
|
277
|
-
}, e("gxg-form-textarea", {
|
|
278
|
-
ai: true,
|
|
279
|
-
class: "prompt__textarea",
|
|
280
|
-
value: this.promptValue,
|
|
281
|
-
maxHeight: this.promptMaxHeight,
|
|
282
|
-
placeholder: this.aIInProgress ? this._componentLocale.processingQueryPlaceholder : this._componentLocale.promptPlaceholder,
|
|
283
|
-
onInput: this.textAreaInputHandler,
|
|
284
|
-
onEnter: this.promptEnterHandler,
|
|
285
|
-
onArrowUpPressed: this.promptArrowUpHandler,
|
|
286
|
-
onBlur: this.promptBlurHandler,
|
|
287
|
-
onFocus: this.promptFocusHandler,
|
|
288
|
-
disabled: this.aIInProgress,
|
|
289
|
-
ref: t => this.textAreaEl = t
|
|
290
|
-
}), !this.userHasTyped && !this.aIInProgress && !this.promptHasFocus && ((r = this.focusShortcuts) === null || r === void 0 ? void 0 : r.length) > 0 ? e("div", {
|
|
291
|
-
class: {
|
|
292
|
-
prompt__shortcuts: true
|
|
293
|
-
}
|
|
294
|
-
}, this.focusShortcuts.map(((t, r) => r <= 2 ? e("span", {
|
|
295
|
-
class: "prompt__shortcut"
|
|
296
|
-
}, t) : null))) : null)));
|
|
297
|
-
}
|
|
298
|
-
static get delegatesFocus() {
|
|
299
|
-
return true;
|
|
300
|
-
}
|
|
301
|
-
static get assetsDirs() {
|
|
302
|
-
return [ "gx-ide-assets/ai-assistant" ];
|
|
303
|
-
}
|
|
304
|
-
get el() {
|
|
305
|
-
return o(this);
|
|
306
|
-
}
|
|
307
|
-
static get watchers() {
|
|
308
|
-
return {
|
|
309
|
-
aIInProgress: [ "watchAIInProgressHandler" ],
|
|
310
|
-
messages: [ "watchMessagesHandler" ]
|
|
311
|
-
};
|
|
312
|
-
}
|
|
313
|
-
};
|
|
314
|
-
|
|
315
|
-
l.style = s;
|
|
316
|
-
|
|
317
|
-
export { l as gx_ide_ai_assistant };
|
|
318
|
-
//# sourceMappingURL=p-537dfb63.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["entitySelectorCss","CSS_BUNDLES","SELECT_DEFAULT_ICON","getIconPath","category","name","colorType","CLEAR_ICON","GxIdeEntitySelector","_GxIdeEntitySelector_componentLocale","set","this","_GxIdeEntitySelector_btnClearClickHandler","value","defaultValue","_GxIdeEntitySelector_btnSelectClickHandler","selectEntityCallback","then","result","_GxIdeEntitySelector_buttonFocusHandler","e","type","buttonHasFocus","_GxIdeEntitySelector_renderControl","h","part","class","accessibleName","labelPosition","__classPrivateFieldGet","entitySelectorInputAccessibleName","startImgSrc","iconSrc","_a","_b","id","clearButtonLabel","title","onClick","onFocus","undefined","onBlur","src","selectButtonLabel","disabled","_GxIdeEntitySelector_updateIconSrc","valueChangedHandler","valueChanged","emit","call","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","connectedCallback","render","Host","model","field","htmlFor"],"sources":["src/components/_helpers/entity-selector/entity-selector.scss?tag=gx-ide-entity-selector&encapsulation=shadow","src/components/_helpers/entity-selector/entity-selector.tsx"],"sourcesContent":["/*wrapper*/\n.wrapper {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--mer-spacing--xs);\n border-radius: var(--control__border-radius);\n border: var(--control__border-width) var(--control__border-style)\n var(--control__border-color);\n padding: var(--control__padding-block) var(--control__padding-inline);\n\n &:hover {\n --control__border-color: var(--control__border-color--hover);\n }\n &:focus {\n }\n}\n/*form-input*/\n.form-input {\n --control__padding-block: 0;\n --control__padding-inline: 0;\n // Remove control border. We want to simulate a form-input that includes two buttons at the end.\n --control__border-width: 0;\n --focus__outline-width: 0;\n}\n:host(:focus-within) {\n .wrapper {\n --control__border-color: var(--focus__outline-color);\n }\n}\n:host(.entity-selector--button-has-focus) {\n .wrapper {\n outline: none;\n }\n}\n/*custom button icon*/\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../../common/locale\";\nimport { LabelPosition } from \"../../../common/types\";\nimport { EntityData } from \"../../../common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/edit\",\n \"components/button\",\n \"components/icon\",\n \"utils/form\"\n];\nconst SELECT_DEFAULT_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"show-more-horizontal\",\n colorType: \"primary\"\n});\nconst CLEAR_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-entity-selector\",\n styleUrl: \"entity-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/entity-selector\"]\n})\nexport class GxIdeEntitySelector {\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeEntitySelectorElement;\n\n /**\n * Adds/removes a CSS class on the host. It removes focus-within styles when\n * focus is on a button.\n */\n @State() buttonHasFocus = false;\n\n @State() iconSrc: string = null;\n\n /**\n * Default value for the component. Used when the 'X' button is pressed.\n */\n @Prop() readonly defaultValue?: EntityData | null | undefined;\n\n /**\n * The label position\n */\n @Prop({ reflect: true }) readonly labelPosition: LabelPosition =\n \"block-start\";\n\n /**\n * Callback invoked when the action button is pressed. Returns the new value.\n */\n @Prop() readonly selectEntityCallback!: () => Promise<EntityData>;\n\n /**\n * Value currently assigned.\n */\n @Prop({ mutable: true }) value: EntityData | null | undefined;\n @Watch(\"value\")\n valueChangedHandler() {\n this.valueChanged.emit(this.value);\n this.#updateIconSrc();\n }\n\n /**\n * Emits the input value every time it changes\n */\n @Event() valueChanged: EventEmitter<EntityData>;\n\n // 6.Component Lifecycle Events\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n connectedCallback() {\n this.#updateIconSrc();\n }\n\n #btnClearClickHandler = () => {\n this.value = this.defaultValue;\n };\n\n #btnSelectClickHandler = () => {\n this.selectEntityCallback().then(result => {\n this.value = result;\n });\n };\n\n #buttonFocusHandler = (e: FocusEvent) => {\n if (e.type === \"focus\") {\n this.buttonHasFocus = true;\n } else if (e.type === \"blur\") {\n this.buttonHasFocus = false;\n }\n };\n\n #renderControl = (): HTMLDivElement => {\n return (\n <div part=\"wrapper\" class=\"wrapper\">\n <ch-edit\n accessibleName={\n this.labelPosition === \"none\" &&\n this.#componentLocale.entitySelectorInputAccessibleName\n }\n class=\"form-input\"\n name=\"entitySelector\"\n startImgSrc={this.iconSrc}\n value={this.value?.name || this.defaultValue?.name}\n id=\"entity-input\"\n ></ch-edit>\n\n <button\n part=\"button-clear\"\n class=\"icon-button\"\n aria-label={this.#componentLocale.clearButtonLabel}\n title={this.#componentLocale.clearButtonLabel}\n onClick={this.#btnClearClickHandler}\n onFocus={this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n onBlur={!this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n >\n <ch-image class=\"icon-md\" src={CLEAR_ICON}></ch-image>\n </button>\n\n <button\n class=\"icon-button\"\n aria-label={this.#componentLocale.selectButtonLabel}\n title={this.#componentLocale.selectButtonLabel}\n disabled={!this.selectEntityCallback}\n onClick={this.#btnSelectClickHandler}\n onBlur={!this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n onFocus={this.buttonHasFocus ? this.#buttonFocusHandler : undefined}\n >\n <ch-image class=\"icon-md\" src={SELECT_DEFAULT_ICON}></ch-image>\n </button>\n </div>\n );\n };\n\n #updateIconSrc = () => {\n if (this.value && this.value.iconSrc) {\n this.iconSrc = this.value.iconSrc;\n }\n };\n\n render() {\n return (\n <Host\n class={{\n \"entity-selector--button-has-focus\": this.buttonHasFocus\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.labelPosition !== \"none\" ? (\n <div\n class={{\n \"field\": true,\n \"field-block\": this.labelPosition === \"block-start\",\n \"field-inline\": this.labelPosition === \"inline-start\"\n }}\n >\n <label class=\"label\" htmlFor=\"entity-input\">\n {this.#componentLocale.entitySelectorInputAccessibleName}\n </label>\n {this.#renderControl()}\n </div>\n ) : (\n this.#renderControl()\n )}\n </Host>\n );\n }\n}\n\nexport type EntitySelectorLabels = {\n buttonClearLabel: string;\n buttonSelectLabel: string;\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["startPageCss","CSS_BUNDLES","KB_ICON","getIconPath","category","name","FOLDER_ICON","colorType","GxIdeStartPage","_GxIdeStartPage_recentKbsFilter","set","this","_GxIdeStartPage_kbsFilterValue","_GxIdeStartPage_evaluateRenderKbs","_a","kbs","length","__classPrivateFieldGet","_GxIdeStartPage_renderKbs","call","h","class","stateIconSrc","stateTitle","_componentLocale","emptyState","title","stateDescription","description","_GxIdeStartPage_filterKbs","filteredKbs","filter","kb","toLowerCase","includes","_GxIdeStartPage_getNewsCallbackRecentNews","async","Promise","resolve","news","getNewsCallback","_GxIdeStartPage_openKbHandler","e","kbId","target","id","openKbCallback","_GxIdeStartPage_renderKb","formattedDate","formatDate","lastOpenedDate","dateCaption","recentKbs","lastOpened","toLocaleLowerCase","_b","key","type","onClick","src","config","headingsClasses","cardSmall","hiChar","map","noKbsFiltered","_GxIdeStartPage_searchKbsInputHandler","event","__classPrivateFieldSet","value","_GxIdeStartPage_searchNewsInputHandler","newsFilterValue","watchNews","newsFilterThreshold","displayNewsFilter","kbsChanged","loadingKbs","kbsFilterThreshold","displayKbsFilter","componentWillLoad","Locale","getComponentStrings","el","componentDidLoad","focus","render","Host","model","cardRegular","placeholder","onInput","ref","disabled","loaderTitle","loader","show","recentNews","inputPlaceholder","_c","openNewsCallback","filterValue"],"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"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["recentNewsCss","NEWS_ICON","getIconPath","category","name","colorType","CSS_BUNDLES","GxIdeRecentNews","_GxIdeRecentNews_NEWS_ITEM_CLASS_SELECTOR","set","this","_GxIdeRecentNews_newsRendered","_GxIdeRecentNews_setTimeOutNewsDelay","_GxIdeRecentNews_newsContainerEl","_GxIdeRecentNews_displayNews","__classPrivateFieldGet","undefined","news","Array","from","querySelectorAll","forEach","setTimeout","classList","add","__classPrivateFieldSet","_GxIdeRecentNews_evaluateNewsDisplay","length","call","_GxIdeRecentNews_evaluateNewsRender","newsLoadFailed","h","stateIconSrc","stateTitle","_componentLocale","recentNews","newsNotFetched","title","class","onClick","_GxIdeRecentNews_getNews","tryAgainButtonLabel","href","onlineNewsURL","target","readThemOnline","noNewsToDisplay","_a","filteredNews","noNewsFiltered","_GxIdeRecentNews_renderNewsList","async","loadingNews","newsResult","getNewsCallback","_GxIdeRecentNews_openNewsHandler","newsId","openNewsCallback","_GxIdeRecentNews_refreshFilteredNews","filterValue","filter","singleNews","toLowerCase","includes","_b","body","_GxIdeRecentNews_renderNewsItem","id","visible","key","type","src","config","headingsClasses","cardSmall","hiChar","ref","el","map","newsChanged","watchNews","newFilterValue","componentWillLoad","Locale","getComponentStrings","componentDidRender","componentDidLoad","render","Host","empty","model","abortTime","loaderTitle","loader","description","show"],"sources":["src/components/start-page/recent-news.scss?tag=gx-ide-recent-news&encapsulation=shadow","src/components/start-page/recent-news.tsx"],"sourcesContent":["@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n@include hiChar();\n\n:host(.empty) {\n overflow: hidden !important; // WA to avoid scrollbar \"flickering\"\n}\n.news-container {\n display: grid;\n gap: var(--mer-spacing--xs);\n grid-auto-rows: max-content;\n // padding-inline-end: var(--mer-spacing--xs);\n}\n.news-item {\n opacity: 0;\n transition: 150ms opacity;\n\n &.visible {\n opacity: 1;\n }\n}\n.card-news {\n display: flex;\n flex-direction: column;\n align-items: start;\n gap: var(--mer-spacing--xs);\n\n &__header {\n display: flex;\n gap: var(--mer-spacing--sm);\n align-items: center;\n }\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.text-link {\n color: var(--mer-accent__primary);\n\n &:hover {\n text-decoration: underline;\n }\n}\n","import { Component, Host, h, Prop, Element, State, Watch } from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport { hiChar } from \"../../common/helpers\";\nimport { NewsData, GetNewsCallback, OpenNewsCallback } from \"./start-page\";\n\nconst NEWS_ICON = getIconPath({\n category: \"system\",\n name: \"news\",\n colorType: \"on-surface\"\n});\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/button\",\n \"components/icon\",\n \"utils/typography\",\n \"utils/layout\"\n];\n@Component({\n tag: \"gx-ide-recent-news\",\n styleUrl: \"recent-news.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/recent-news\"]\n})\nexport class GxIdeRecentNews {\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n\n #NEWS_ITEM_CLASS_SELECTOR = \"news-item\";\n #newsRendered = false;\n #setTimeOutNewsDelay = 75;\n\n @Element() el: HTMLGxIdeRecentNewsElement;\n\n #newsContainerEl: HTMLDivElement;\n\n /**\n * The list of news after the filter\n */\n @State() filteredNews: NewsData[] = [];\n\n /**\n * True if news are being requested\n */\n @State() loadingNews = true;\n\n /**\n * The list of news\n */\n @State() news: NewsData[] = [];\n @Watch(\"news\")\n newsChanged(news: NewsData[]) {\n this.#refreshFilteredNews(this.filterValue, news);\n this.#displayNews();\n }\n\n /**\n * True if news couldn't be loaded\n */\n @State() newsLoadFailed = false;\n\n /**\n * Callback invoked to load the news feed (right panel \"Recent News\").\n */\n @Prop() readonly getNewsCallback!: GetNewsCallback;\n\n /**\n * Callback invoked to open a news article.\n */\n @Prop() readonly openNewsCallback!: OpenNewsCallback;\n\n /**\n * The news filter value inserted by the user on the news input filter\n */\n @Prop() readonly filterValue: string = \"\";\n @Watch(\"filterValue\")\n watchNews(newFilterValue: string) {\n this.#refreshFilteredNews(newFilterValue, this.news);\n }\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n this.#evaluateNewsDisplay();\n }\n\n componentDidLoad() {\n this.#getNews();\n }\n\n #displayNews = () => {\n if (this.#newsContainerEl !== undefined) {\n const news = Array.from(\n this.#newsContainerEl.querySelectorAll(\n `.${this.#NEWS_ITEM_CLASS_SELECTOR}`\n )\n );\n news.forEach(news => {\n // display news with a cascade effect\n setTimeout(() => {\n news.classList.add(\"visible\");\n }, this.#setTimeOutNewsDelay);\n this.#setTimeOutNewsDelay += 45;\n });\n }\n };\n\n #evaluateNewsDisplay = () => {\n if (\n !this.#newsRendered &&\n this.news.length > 0 &&\n this.#newsContainerEl !== undefined\n ) {\n this.#displayNews();\n this.#newsRendered = true;\n }\n };\n\n #evaluateNewsRender = (): HTMLElement => {\n if (this.newsLoadFailed) {\n return (\n <gx-ide-empty-state\n stateIconSrc={NEWS_ICON}\n stateTitle={this._componentLocale.recentNews.newsNotFetched.title}\n >\n <button\n class=\"empty-state__button button-primary\"\n onClick={this.#getNews}\n >\n {\n this._componentLocale.recentNews.newsNotFetched\n .tryAgainButtonLabel\n }\n </button>\n <a\n class=\"text-link text-body-regular-s\"\n href={this._componentLocale.recentNews.newsNotFetched.onlineNewsURL}\n target=\"_blank\"\n >\n {this._componentLocale.recentNews.newsNotFetched.readThemOnline}\n </a>\n </gx-ide-empty-state>\n );\n }\n if (this.news.length === 0) {\n return (\n <gx-ide-empty-state\n stateIconSrc={NEWS_ICON}\n stateTitle={this._componentLocale.recentNews.noNewsToDisplay.title}\n >\n <a\n class=\"empty-state__link text-body-regular-s\"\n href={this._componentLocale.recentNews.onlineNewsURL}\n target=\"_blank\"\n >\n {this._componentLocale.recentNews.readThemOnline}\n </a>\n </gx-ide-empty-state>\n );\n }\n if (this.filteredNews?.length === 0) {\n return (\n <gx-ide-empty-state\n class=\"news-empty-state\"\n stateIconSrc={NEWS_ICON}\n stateTitle={this._componentLocale.recentNews.noNewsFiltered.title}\n ></gx-ide-empty-state>\n );\n }\n return this.#renderNewsList();\n };\n\n #getNews = async () => {\n this.loadingNews = true;\n const newsResult = await this.getNewsCallback();\n this.loadingNews = false;\n if (newsResult && newsResult.length > 0) {\n this.news = newsResult;\n this.newsLoadFailed = false;\n } else {\n this.newsLoadFailed = true;\n }\n };\n\n #openNewsHandler = (newsId: string) => async () => {\n await this.openNewsCallback(newsId);\n };\n\n #refreshFilteredNews = (filterValue: string, news: NewsData[]) => {\n this.filteredNews = news.filter(\n singleNews =>\n singleNews.title?.toLowerCase().includes(filterValue) ||\n singleNews.body?.toLowerCase().includes(filterValue)\n );\n };\n\n #renderNewsItem = (news: NewsData): HTMLGxgCardElement | null => {\n if (news.id && news.title) {\n return (\n <article>\n <button\n class={{\n \"card-small\": true,\n \"card-small--actionable\": true,\n \"card-news\": true,\n [this.#NEWS_ITEM_CLASS_SELECTOR]: true,\n \"visible\": this.#newsRendered\n }}\n id={news.id}\n key={news.id}\n type=\"button\"\n onClick={this.#openNewsHandler(news.id)}\n >\n <header class=\"card-news__header\">\n <ch-image src={NEWS_ICON} class=\"icon-md\"></ch-image>\n <h2 class={config.headingsClasses.cardSmall}>\n {hiChar(news.title, this.filterValue)}\n </h2>\n </header>\n {news.body && (\n <p class=\"text-body-regular-s\">\n {hiChar(news.body, this.filterValue)}\n </p>\n )}\n </button>\n </article>\n );\n }\n return null;\n };\n\n #renderNewsList = (): HTMLElement => (\n <div\n class=\"news-container\"\n ref={el => (this.#newsContainerEl = el as HTMLDivElement)}\n >\n {this.filteredNews?.map(this.#renderNewsItem)}\n </div>\n );\n\n render() {\n return (\n <Host\n // Improve accessibility by announcing live changes\n aria-live=\"polite\"\n // Wait until all changes are made to prevents assistive\n // technologies from announcing changes before updates are done\n aria-busy={this.loadingNews ? \"true\" : \"false\"}\n class={{ empty: this.filteredNews.length === 0 }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n {this.loadingNews ? (\n <gx-ide-loader\n abortTime={8000}\n loaderTitle={this._componentLocale.loader.title}\n description={this._componentLocale.loader.description}\n show={true}\n ></gx-ide-loader>\n ) : (\n this.#evaluateNewsRender()\n )}\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAgB;;;;;;;;;;;;;;;;;ACStB,MAAMC,IAAYC,EAAY;EAC5BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;AAGb,MAAMC,IAA8B,EAClC,qBACA,qBACA,mBACA,oBACA;;MAQWC,IAAe;;;IAM1BC,EAAAC,IAAAC,MAA4B;IAC5BC,EAAAF,IAAAC,MAAgB;IAChBE,EAAAH,IAAAC,MAAuB;IAIvBG,EAAAJ,IAAAC,WAAA;IA0DAI,EAAAL,IAAAC,OAAe;MACb,IAAIK,EAAAL,MAAIG,GAAA,SAAsBG,WAAW;QACvC,MAAMC,IAAOC,MAAMC,KACjBJ,EAAAL,MAAIG,GAAA,KAAkBO,iBACpB,IAAIL,EAAAL,MAAIF,GAAA;QAGZS,EAAKI,SAAQJ;;UAEXK,YAAW;YACTL,EAAKM,UAAUC,IAAI;AAAU,cAC5BT,EAAAL,MAAIE,GAAA;UACPa,EAAAf,MAAAE,GAAAG,EAAAL,MAAAE,GAAA,OAA6B,IAAE;AAAA;;;IAKrCc,EAAAjB,IAAAC,OAAuB;MACrB,KACGK,EAAAL,MAAIC,GAAA,QACLD,KAAKO,KAAKU,SAAS,KACnBZ,EAAAL,MAAIG,GAAA,SAAsBG,WAC1B;QACAD,EAAAL,MAAII,GAAA,KAAac,KAAjBlB;QACAe,EAAAf,MAAIC,GAAiB,MAAI;;;IAI7BkB,EAAApB,IAAAC,OAAsB;;MACpB,IAAIA,KAAKoB,gBAAgB;QACvB,OACEC,EAAA;UACEC,cAAc/B;UACdgC,YAAYvB,KAAKwB,iBAAiBC,WAAWC,eAAeC;WAE5DN,EAAA;UACEO,OAAM;UACNC,SAASxB,EAAAL,MAAI8B,GAAA;WAGX9B,KAAKwB,iBAAiBC,WAAWC,eAC9BK,sBAGPV,EAAA;UACEO,OAAM;UACNI,MAAMhC,KAAKwB,iBAAiBC,WAAWC,eAAeO;UACtDC,QAAO;WAENlC,KAAKwB,iBAAiBC,WAAWC,eAAeS;;MAKzD,IAAInC,KAAKO,KAAKU,WAAW,GAAG;QAC1B,OACEI,EAAA;UACEC,cAAc/B;UACdgC,YAAYvB,KAAKwB,iBAAiBC,WAAWW,gBAAgBT;WAE7DN,EAAA;UACEO,OAAM;UACNI,MAAMhC,KAAKwB,iBAAiBC,WAAWQ;UACvCC,QAAO;WAENlC,KAAKwB,iBAAiBC,WAAWU;;MAK1C,MAAIE,IAAArC,KAAKsC,kBAAY,QAAAD,WAAA,aAAAA,EAAEpB,YAAW,GAAG;QACnC,OACEI,EAAA;UACEO,OAAM;UACNN,cAAc/B;UACdgC,YAAYvB,KAAKwB,iBAAiBC,WAAWc,eAAeZ;;;MAIlE,OAAOtB,EAAAL,MAAIwC,GAAA,KAAgBtB,KAApBlB;AAAsB;IAG/B8B,EAAA/B,IAAAC,OAAWyC;MACTzC,KAAK0C,cAAc;MACnB,MAAMC,UAAmB3C,KAAK4C;MAC9B5C,KAAK0C,cAAc;MACnB,IAAIC,KAAcA,EAAW1B,SAAS,GAAG;QACvCjB,KAAKO,OAAOoC;QACZ3C,KAAKoB,iBAAiB;aACjB;QACLpB,KAAKoB,iBAAiB;;;IAI1ByB,EAAA9C,IAAAC,OAAoB8C,KAAmBL;YAC/BzC,KAAK+C,iBAAiBD;AAAO;IAGrCE,EAAAjD,IAAAC,OAAuB,CAACiD,GAAqB1C;MAC3CP,KAAKsC,eAAe/B,EAAK2C,QACvBC;;QACE,SAAAd,IAAAc,EAAWxB,WAAK,QAAAU,WAAA,aAAAA,EAAEe,cAAcC,SAASJ,SACzCK,IAAAH,EAAWI,UAAI,QAAAD,WAAA,aAAAA,EAAEF,cAAcC,SAASJ;AAAY;AACvD;IAGHO,EAAAzD,IAAAC,OAAmBO;MACjB,IAAIA,EAAKkD,MAAMlD,EAAKoB,OAAO;QACzB,OACEN,EAAA,iBACEA,EAAA;UACEO,OAAO;YACL,cAAc;YACd,0BAA0B;YAC1B,aAAa;YACb,CAACvB,EAAAL,MAAIF,GAAA,OAA6B;YAClC4D,SAAWrD,EAAAL,MAAIC,GAAA;;UAEjBwD,IAAIlD,EAAKkD;UACTE,KAAKpD,EAAKkD;UACVG,MAAK;UACL/B,SAASxB,EAAAL,MAAI6C,GAAA,KAAiB3B,KAArBlB,MAAsBO,EAAKkD;WAEpCpC,EAAA;UAAQO,OAAM;WACZP,EAAA;UAAUwC,KAAKtE;UAAWqC,OAAM;YAChCP,EAAA;UAAIO,OAAOkC,EAAOC,gBAAgBC;WAC/BC,EAAO1D,EAAKoB,OAAO3B,KAAKiD,gBAG5B1C,EAAKgD,QACJlC,EAAA;UAAGO,OAAM;WACNqC,EAAO1D,EAAKgD,MAAMvD,KAAKiD;;MAOpC,OAAO;AAAI;IAGbT,EAAAzC,IAAAC,OAAkB;;MAAmB,OACnCqB,EAAA;QACEO,OAAM;QACNsC,KAAKC,KAAOpD,EAAAf,MAAIG,GAAoBgE,GAAoB;UAEvD9B,IAAArC,KAAKsC,kBAAY,QAAAD,WAAA,aAAAA,EAAE+B,IAAI/D,EAAAL,MAAIwD,GAAA;AACxB;wBAxM4B;uBAKb;gBAKK;0BAUF;;;uBAea;;EAvBvC,WAAAa,CAAY9D;IACVF,EAAAL,MAAIgD,GAAA,KAAqB9B,KAAzBlB,MAA0BA,KAAKiD,aAAa1C;IAC5CF,EAAAL,MAAII,GAAA,KAAac,KAAjBlB;;EAuBF,SAAAsE,CAAUC;IACRlE,EAAAL,MAAIgD,GAAA,KAAqB9B,KAAzBlB,MAA0BuE,GAAgBvE,KAAKO;;EAGjD,uBAAMiE;IACJxE,KAAKwB,yBAAyBiD,EAAOC,oBAAoB1E,KAAKmE;;EAGhE,kBAAAQ;IACEtE,EAAAL,MAAIgB,GAAA,KAAqBE,KAAzBlB;;EAGF,gBAAA4E;IACEvE,EAAAL,MAAI8B,GAAA,KAASZ,KAAblB;;EAyJF,MAAA6E;IACE,OACExD,EAACyD,G;mBAEW;MAAQ,aAGP9E,KAAK0C,cAAc,SAAS;MACvCd,OAAO;QAAEmD,OAAO/E,KAAKsC,aAAarB,WAAW;;OAE7CI,EAAA;MAAU2D,OAAOpF;QAChBI,KAAK0C,cACJrB,EAAA;MACE4D,WAAW;MACXC,aAAalF,KAAKwB,iBAAiB2D,OAAOxD;MAC1CyD,aAAapF,KAAKwB,iBAAiB2D,OAAOC;MAC1CC,MAAM;SAGRhF,EAAAL,MAAImB,GAAA,KAAoBD,KAAxBlB"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|