@genexus/genexus-ide-ui 1.0.1 → 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/assets-manager-64c42a1e.js +14669 -0
- package/dist/cjs/assets-manager-64c42a1e.js.map +1 -0
- package/dist/cjs/{common-a9c44141.js → common-d21da2fc.js} +2 -2
- package/dist/cjs/{common-a9c44141.js.map → common-d21da2fc.js.map} +1 -1
- package/dist/cjs/{config-8246d533.js → config-7499aff7.js} +21 -1
- package/dist/cjs/config-7499aff7.js.map +1 -0
- package/dist/cjs/constants-96a42315.js.map +1 -1
- package/dist/cjs/genexus-ide-ui.cjs.js +2 -2
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +6 -7
- 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 +3 -3
- 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 +3 -3
- 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 +4 -4
- 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 +3 -3
- 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 +4 -4
- 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 +3 -3
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +5 -5
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-container_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +6 -6
- 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 +24 -9
- package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +4 -5
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +4 -4
- package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js +11 -50
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +80 -53
- package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +3 -3
- 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 +3 -3
- 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 +4 -4
- 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 +2 -2
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-loader.cjs.entry.js +32 -47
- package/dist/cjs/gx-ide-loader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +24 -5
- package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +24 -5
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +6 -7
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +6 -6
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +208 -218
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js +120 -70
- package/dist/cjs/gx-ide-recent-news.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +4 -4
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -6
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-start-page.cjs.entry.js +132 -125
- package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-switch-panel.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-switcher.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +7 -8
- 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 +4 -4
- 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 +4 -5
- 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 +3 -3
- 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 +6 -7
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-template.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-template.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-top-bar.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +7 -8
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
- package/dist/cjs/{helpers-cef3dd1f.js → helpers-be14ea67.js} +34 -5
- package/dist/cjs/helpers-be14ea67.js.map +1 -0
- package/dist/cjs/{index-13ec56b2.js → index-b87e3ee0.js} +10 -4
- package/dist/cjs/index-b87e3ee0.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{render-combo-items-7cf25644.js → render-combo-items-9d83241b.js} +2 -2
- package/dist/cjs/{render-combo-items-7cf25644.js.map → render-combo-items-9d83241b.js.map} +1 -1
- package/dist/cjs/{render-list-item-859d6b85.js → render-list-item-353de5ee.js} +2 -2
- package/dist/cjs/{render-list-item-859d6b85.js.map → render-list-item-353de5ee.js.map} +1 -1
- package/dist/cjs/{render-suggest-5159c128.js → render-suggest-cd69493a.js} +2 -2
- package/dist/cjs/{render-suggest-5159c128.js.map → render-suggest-cd69493a.js.map} +1 -1
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/common/config.js +20 -0
- package/dist/collection/common/config.js.map +1 -1
- package/dist/collection/common/constants.js.map +1 -1
- package/dist/collection/common/helpers.js +31 -3
- package/dist/collection/common/helpers.js.map +1 -1
- package/dist/collection/common/types.js.map +1 -1
- package/dist/collection/components/_helpers/card/card.css +68 -0
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +598 -16
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js +17 -111
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.js.map +1 -1
- package/dist/collection/components/_helpers/entity-selector/entity-selector.css +21 -386
- package/dist/collection/components/_helpers/entity-selector/entity-selector.js +95 -128
- 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 +6 -0
- package/dist/collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.zh.json +0 -0
- package/dist/collection/components/_helpers/ide-loader/ide-loader.css +23 -38
- package/dist/collection/components/_helpers/ide-loader/ide-loader.js +68 -125
- package/dist/collection/components/_helpers/ide-loader/ide-loader.js.map +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector.css +68 -0
- package/dist/collection/components/_starting-template/template.css +68 -0
- package/dist/collection/components/ai-assistant/ai-assistant.css +68 -0
- package/dist/collection/components/ai-assistant/ai-message.css +2 -2
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +68 -0
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js +1 -2
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js.map +1 -1
- package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +68 -0
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +68 -0
- package/dist/collection/components/bpm/import-files/bpm-import-files.css +68 -0
- package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +68 -0
- package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +68 -0
- package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +68 -0
- package/dist/collection/components/connect-gx-server/connect-gx-server.css +68 -0
- package/dist/collection/components/connect-gx-server/connect-gx-server.js +1 -1
- package/dist/collection/components/connect-gx-server/connect-gx-server.js.map +1 -1
- package/dist/collection/components/create-kb-from-server/create-kb-from-server.css +68 -0
- package/dist/collection/components/create-kb-from-server/create-kb-from-server.js +1 -1
- package/dist/collection/components/create-kb-from-server/create-kb-from-server.js.map +1 -1
- package/dist/collection/components/dashboard-home/dashboard-home.css +68 -0
- package/dist/collection/components/dashboard-home/dashboard-home.js +21 -6
- package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
- package/dist/collection/components/data-selector/data-selector.css +68 -0
- package/dist/collection/components/data-selector/data-selector.js +1 -2
- package/dist/collection/components/data-selector/data-selector.js.map +1 -1
- package/dist/collection/components/design-import/design-import.css +68 -0
- package/dist/collection/components/design-import/design-import.js +1 -1
- package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +68 -0
- package/dist/collection/components/kb-manager-export/helpers.js.map +1 -1
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +68 -0
- package/dist/collection/components/kb-manager-export/kb-manager-export.js +3 -3
- package/dist/collection/components/kb-manager-export/kb-manager-export.js.map +1 -1
- package/dist/collection/components/kb-manager-import/kb-manager-import.css +77 -0
- package/dist/collection/components/modules/edit-module-server/edit-module-server.css +68 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +68 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js +21 -2
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +21 -2
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +1 -1
- package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +68 -0
- package/dist/collection/components/new-environment/new-environment.css +68 -0
- package/dist/collection/components/new-environment/new-environment.js +1 -1
- package/dist/collection/components/new-environment/new-environment.js.map +1 -1
- package/dist/collection/components/new-kb/new-kb.css +68 -0
- package/dist/collection/components/new-kb/new-kb.js +1 -1
- package/dist/collection/components/new-kb/new-kb.js.map +1 -1
- package/dist/collection/components/new-object/new-object.css +68 -0
- package/dist/collection/components/new-object/new-object.js +2 -2
- package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +4 -2
- package/dist/collection/components/object-selector/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +5 -2
- package/dist/collection/components/object-selector/gx-ide-assets/object-selector/shortcuts.json +2 -2
- package/dist/collection/components/object-selector/helpers.js +13 -0
- package/dist/collection/components/object-selector/helpers.js.map +1 -0
- package/dist/collection/components/object-selector/object-selector.css +119 -50
- package/dist/collection/components/object-selector/object-selector.js +299 -375
- package/dist/collection/components/object-selector/object-selector.js.map +1 -1
- package/dist/collection/components/references/references.css +68 -0
- package/dist/collection/components/share-kb/share-kb.css +68 -0
- package/dist/collection/components/share-kb/share-kb.js +1 -1
- package/dist/collection/components/share-kb/share-kb.js.map +1 -1
- package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +14 -4
- package/dist/collection/components/start-page/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +15 -5
- package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.en.json +13 -3
- package/dist/collection/components/start-page/gx-ide-assets/start-page/langs/start-page.lang.ja.json +15 -5
- package/dist/collection/components/start-page/recent-news.css +96 -42
- package/dist/collection/components/start-page/recent-news.js +142 -73
- package/dist/collection/components/start-page/recent-news.js.map +1 -1
- package/dist/collection/components/start-page/start-page.css +146 -29
- package/dist/collection/components/start-page/start-page.js +185 -171
- package/dist/collection/components/start-page/start-page.js.map +1 -1
- package/dist/collection/components/team-dev/commit/commit.css +68 -0
- package/dist/collection/components/team-dev/commit/commit.js +2 -3
- package/dist/collection/components/team-dev/commit/commit.js.map +1 -1
- package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +68 -0
- package/dist/collection/components/team-dev/update/update.css +68 -0
- package/dist/collection/components/team-dev/update/update.js +1 -2
- package/dist/collection/components/team-dev/update/update.js.map +1 -1
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +68 -0
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js +1 -2
- package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js.map +1 -1
- package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +68 -0
- package/dist/collection/components/wf-settings/wf-settings.css +68 -0
- package/dist/collection/components/ww-images/ww-images.css +70 -2
- package/dist/collection/components/ww-images/ww-images.js +3 -4
- package/dist/collection/components/ww-images/ww-images.js.map +1 -1
- package/dist/components/ai-message.js +1 -1
- package/dist/components/ai-message.js.map +1 -1
- package/dist/components/assets-manager.js +14667 -0
- package/dist/components/assets-manager.js.map +1 -0
- package/dist/components/bpm-objects-selector.js +1 -1
- package/dist/components/bpm-objects-selector.js.map +1 -1
- package/dist/components/config.js +20 -0
- package/dist/components/config.js.map +1 -1
- package/dist/components/constants.js.map +1 -1
- package/dist/components/entity-selector.js +82 -57
- 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 +2 -3
- 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 +2 -2
- package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
- package/dist/components/gx-ide-create-kb-from-server.js +2 -2
- package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
- package/dist/components/gx-ide-dashboard-home.js +25 -16
- package/dist/components/gx-ide-dashboard-home.js.map +1 -1
- package/dist/components/gx-ide-data-selector.js +2 -3
- package/dist/components/gx-ide-data-selector.js.map +1 -1
- package/dist/components/gx-ide-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 +13 -63
- 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 +22 -3
- package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
- package/dist/components/gx-ide-manage-module-references.js +22 -3
- package/dist/components/gx-ide-manage-module-references.js.map +1 -1
- package/dist/components/gx-ide-new-environment.js +2 -3
- package/dist/components/gx-ide-new-environment.js.map +1 -1
- package/dist/components/gx-ide-new-kb.js +2 -2
- 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 +224 -243
- 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 +2 -2
- package/dist/components/gx-ide-share-kb.js.map +1 -1
- package/dist/components/gx-ide-start-page.js +150 -133
- package/dist/components/gx-ide-start-page.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +4 -5
- 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 +2 -3
- 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 +3 -4
- 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 +4 -5
- package/dist/components/gx-ide-ww-images.js.map +1 -1
- package/dist/components/helpers.js +32 -4
- package/dist/components/helpers.js.map +1 -1
- package/dist/components/ide-loader.js +36 -56
- package/dist/components/ide-loader.js.map +1 -1
- package/dist/components/list-selector.js +1 -1
- package/dist/components/list-selector.js.map +1 -1
- package/dist/components/recent-news.js +133 -73
- package/dist/components/recent-news.js.map +1 -1
- package/dist/esm/assets-manager-120996e9.js +14667 -0
- package/dist/esm/assets-manager-120996e9.js.map +1 -0
- package/dist/esm/{common-8826f536.js → common-31ac2b05.js} +2 -2
- package/dist/esm/{common-8826f536.js.map → common-31ac2b05.js.map} +1 -1
- package/dist/esm/{config-a492e15e.js → config-6cfbb06f.js} +21 -1
- package/dist/esm/config-6cfbb06f.js.map +1 -0
- package/dist/esm/constants-f9193da7.js.map +1 -1
- package/dist/esm/genexus-ide-ui.js +3 -3
- package/dist/esm/gx-ide-ai-assistant.entry.js +2 -2
- package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
- package/dist/esm/gx-ide-ai-message.entry.js +3 -3
- package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +6 -7
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js +3 -3
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +3 -3
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +4 -4
- package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +3 -3
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +4 -4
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js +3 -3
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
- package/dist/esm/gx-ide-card.entry.js +2 -2
- package/dist/esm/gx-ide-card.entry.js.map +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +4 -4
- package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-container_2.entry.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +4 -4
- package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-dashboard-home.entry.js +24 -9
- package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +4 -5
- package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +4 -4
- package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-directory-selector.entry.js +1 -1
- package/dist/esm/gx-ide-edit-module-server.entry.js +2 -2
- package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js +11 -50
- package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
- package/dist/esm/gx-ide-entity-selector.entry.js +80 -53
- package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.entry.js +3 -3
- package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +3 -3
- package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
- package/dist/esm/gx-ide-kb-manager-import.entry.js +4 -4
- package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js +2 -2
- package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
- package/dist/esm/gx-ide-loader.entry.js +32 -47
- package/dist/esm/gx-ide-loader.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js +24 -5
- package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +24 -5
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +5 -6
- package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +5 -5
- package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-object.entry.js +3 -3
- package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +208 -218
- package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-recent-news.entry.js +120 -70
- package/dist/esm/gx-ide-recent-news.entry.js.map +1 -1
- package/dist/esm/gx-ide-references.entry.js +4 -4
- package/dist/esm/gx-ide-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +5 -5
- package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
- package/dist/esm/gx-ide-start-page.entry.js +132 -125
- package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
- package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
- package/dist/esm/gx-ide-switch-panel.entry.js +1 -1
- package/dist/esm/gx-ide-switcher.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +7 -8
- 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 +4 -4
- 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 +4 -5
- 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 +3 -3
- 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 +6 -7
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/gx-ide-template.entry.js +3 -3
- package/dist/esm/gx-ide-template.entry.js.map +1 -1
- package/dist/esm/gx-ide-test.entry.js +1 -1
- package/dist/esm/gx-ide-top-bar.entry.js +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js +3 -3
- package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +7 -8
- package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
- package/dist/esm/{helpers-0a23ab69.js → helpers-05c62775.js} +34 -6
- package/dist/esm/helpers-05c62775.js.map +1 -0
- package/dist/esm/{index-2f305780.js → index-27c691bc.js} +10 -4
- package/dist/esm/index-27c691bc.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{render-combo-items-42fe0712.js → render-combo-items-b5465c1d.js} +2 -2
- package/dist/esm/{render-combo-items-42fe0712.js.map → render-combo-items-b5465c1d.js.map} +1 -1
- package/dist/esm/{render-list-item-ae730365.js → render-list-item-06286d62.js} +2 -2
- package/dist/esm/{render-list-item-ae730365.js.map → render-list-item-06286d62.js.map} +1 -1
- package/dist/esm/{render-suggest-90759f0b.js → render-suggest-3543434c.js} +2 -2
- package/dist/esm/{render-suggest-90759f0b.js.map → render-suggest-3543434c.js.map} +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +3 -3
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.en.json +6 -0
- package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.ja.json +0 -0
- package/dist/genexus-ide-ui/gx-ide-assets/entity-selector/langs/entity-selector.lang.zh.json +0 -0
- package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.en.json +4 -2
- package/dist/genexus-ide-ui/gx-ide-assets/object-selector/langs/object-selector.lang.ja.json +5 -2
- package/dist/genexus-ide-ui/gx-ide-assets/object-selector/shortcuts.json +2 -2
- package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.en.json +14 -4
- package/dist/genexus-ide-ui/gx-ide-assets/recent-news/langs/recent-news.lang.ja.json +15 -5
- package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.en.json +13 -3
- package/dist/genexus-ide-ui/gx-ide-assets/start-page/langs/start-page.lang.ja.json +15 -5
- package/dist/genexus-ide-ui/{p-4f0b6507.entry.js → p-032bdefc.entry.js} +5 -5
- package/dist/genexus-ide-ui/p-032bdefc.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-7fe1ceb9.entry.js → p-03a88768.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-853dacf5.entry.js → p-04421676.entry.js} +6 -6
- package/dist/genexus-ide-ui/p-04421676.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-309544a8.js → p-07b9c2d4.js} +2 -2
- package/dist/genexus-ide-ui/{p-fc6040c7.entry.js → p-09cc20b1.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-df7151fa.entry.js → p-0ac125fc.entry.js} +24 -26
- package/dist/genexus-ide-ui/p-0ac125fc.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c585f865.entry.js → p-0bb18689.entry.js} +156 -158
- package/dist/genexus-ide-ui/p-0bb18689.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-dc02927a.entry.js → p-0be068bf.entry.js} +14 -16
- package/dist/genexus-ide-ui/p-0be068bf.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-13feb5cf.js.map +1 -1
- package/dist/genexus-ide-ui/{p-9265eb8d.js → p-14e6ef41.js} +52 -24
- package/dist/genexus-ide-ui/p-14e6ef41.js.map +1 -0
- package/dist/genexus-ide-ui/{p-52037fb7.entry.js → p-19789aa2.entry.js} +6 -6
- package/dist/genexus-ide-ui/p-19789aa2.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-cad2b413.entry.js → p-27fcaad7.entry.js} +35 -35
- package/dist/genexus-ide-ui/{p-8be06716.entry.js → p-2fd83e6c.entry.js} +27 -27
- package/dist/genexus-ide-ui/{p-6b1fe886.entry.js → p-33c1ddd9.entry.js} +18 -21
- package/dist/genexus-ide-ui/p-33c1ddd9.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-8dfde4d9.entry.js → p-38f61bea.entry.js} +7 -7
- package/dist/genexus-ide-ui/{p-1cbf3ae4.entry.js → p-3b5b6908.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-947149d1.entry.js → p-3e48e2f6.entry.js} +14 -14
- package/dist/genexus-ide-ui/{p-df2e4696.entry.js → p-54ee665f.entry.js} +112 -91
- package/dist/genexus-ide-ui/p-54ee665f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-caa3c8b1.entry.js → p-638befbe.entry.js} +20 -20
- package/dist/genexus-ide-ui/p-638befbe.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c3fbfe7b.entry.js → p-68810397.entry.js} +7 -7
- package/dist/genexus-ide-ui/{p-03c0d269.entry.js → p-69a83248.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c6f0f199.entry.js → p-69edc29c.entry.js} +17 -19
- package/dist/genexus-ide-ui/p-69edc29c.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-357b287c.entry.js → p-6da8bf60.entry.js} +14 -14
- package/dist/genexus-ide-ui/p-6df9fab1.js +14666 -0
- package/dist/genexus-ide-ui/p-6df9fab1.js.map +1 -0
- package/dist/genexus-ide-ui/{p-fc55b26e.entry.js → p-7ac25fc3.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-f744e80f.entry.js → p-7b8e41dd.entry.js} +20 -20
- package/dist/genexus-ide-ui/{p-9c1b4eb9.js → p-8cf892b5.js} +23 -3
- package/dist/genexus-ide-ui/p-8cf892b5.js.map +1 -0
- package/dist/genexus-ide-ui/{p-06cb63b5.entry.js → p-8da18e59.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-14d3afaf.entry.js → p-929dd336.entry.js} +39 -22
- package/dist/genexus-ide-ui/p-929dd336.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-4dbaf435.entry.js → p-980f96c5.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-b01eccc2.entry.js → p-a04d556d.entry.js} +40 -40
- package/dist/genexus-ide-ui/{p-fa07dd86.entry.js → p-a3daa189.entry.js} +23 -23
- package/dist/genexus-ide-ui/p-a587e7ca.entry.js +155 -0
- package/dist/genexus-ide-ui/p-a587e7ca.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c147291f.js → p-aaed592c.js} +12 -5
- package/dist/genexus-ide-ui/p-aaed592c.js.map +1 -0
- package/dist/genexus-ide-ui/{p-a5c15051.entry.js → p-ad92d701.entry.js} +61 -61
- package/dist/genexus-ide-ui/{p-0b854804.js → p-af836892.js} +9 -9
- package/dist/genexus-ide-ui/{p-0c8c6cc3.entry.js → p-b3baa3d2.entry.js} +9 -9
- package/dist/genexus-ide-ui/p-b3baa3d2.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-b7384b06.entry.js +507 -0
- package/dist/genexus-ide-ui/p-b7384b06.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c8f4d24c.entry.js → p-bb1d0ab8.entry.js} +6 -6
- package/dist/genexus-ide-ui/p-bbb30314.entry.js +228 -0
- package/dist/genexus-ide-ui/p-bbb30314.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ca73836a.entry.js → p-c64a4398.entry.js} +17 -17
- package/dist/genexus-ide-ui/{p-c6cf40ab.entry.js → p-c79243c8.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-cb0e11db.entry.js +73 -0
- package/dist/genexus-ide-ui/p-cb0e11db.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ff934271.entry.js → p-cd7100fa.entry.js} +24 -26
- package/dist/genexus-ide-ui/p-cd7100fa.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-7e2ea144.entry.js → p-d178da38.entry.js} +18 -18
- package/dist/genexus-ide-ui/{p-97fba685.entry.js → p-d541640a.entry.js} +6 -6
- package/dist/genexus-ide-ui/{p-6b5adc13.entry.js → p-d9f7d2c3.entry.js} +44 -44
- package/dist/genexus-ide-ui/{p-9e5fa97a.entry.js → p-dbfddffd.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ce59fefc.entry.js → p-e4db9c34.entry.js} +11 -13
- package/dist/genexus-ide-ui/p-e4db9c34.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5bf67436.js → p-e8bdf9dc.js} +2 -2
- package/dist/genexus-ide-ui/{p-3ce32466.entry.js → p-eb52d685.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-01885db6.entry.js → p-edc4f1dc.entry.js} +5 -5
- package/dist/genexus-ide-ui/p-f220c75a.entry.js +40 -0
- package/dist/genexus-ide-ui/p-f220c75a.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-61e2d60e.entry.js → p-f5c02654.entry.js} +35 -35
- package/dist/genexus-ide-ui/{p-328fc42f.entry.js → p-f69df17d.entry.js} +108 -87
- package/dist/genexus-ide-ui/p-f69df17d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-13c68ced.js → p-f831f30b.js} +2 -2
- package/dist/genexus-ide-ui/p-f924f02a.entry.js +211 -0
- package/dist/genexus-ide-ui/p-f924f02a.entry.js.map +1 -0
- package/dist/types/common/config.d.ts +19 -0
- package/dist/types/common/constants.d.ts +5 -4
- package/dist/types/common/helpers.d.ts +9 -0
- package/dist/types/common/types.d.ts +1 -3
- package/dist/types/components/_helpers/empty-state/gx-ide-empty-state.d.ts +4 -22
- package/dist/types/components/_helpers/entity-selector/entity-selector.d.ts +15 -29
- package/dist/types/components/_helpers/ide-loader/ide-loader.d.ts +11 -28
- package/dist/types/components/dashboard-home/dashboard-home.d.ts +1 -0
- package/dist/types/components/kb-manager-export/helpers.d.ts +2 -1
- package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +1 -5
- package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +1 -0
- package/dist/types/components/modules/manage-module-references-v2/manage-module-references-v2.d.ts +1 -0
- package/dist/types/components/object-selector/helpers.d.ts +4 -0
- package/dist/types/components/object-selector/object-selector.d.ts +28 -82
- package/dist/types/components/start-page/recent-news.d.ts +16 -12
- package/dist/types/components/start-page/start-page.d.ts +42 -18
- package/dist/types/components.d.ts +51 -154
- package/package.json +5 -5
- package/dist/cjs/config-8246d533.js.map +0 -1
- package/dist/cjs/form-validation-40aa8527.js +0 -24
- package/dist/cjs/form-validation-40aa8527.js.map +0 -1
- package/dist/cjs/grid-99bca82a.js +0 -16
- package/dist/cjs/grid-99bca82a.js.map +0 -1
- package/dist/cjs/helpers-cef3dd1f.js.map +0 -1
- package/dist/cjs/index-13ec56b2.js.map +0 -1
- package/dist/collection/common/form-validation.js +0 -19
- package/dist/collection/common/form-validation.js.map +0 -1
- package/dist/collection/common/grid.js +0 -11
- package/dist/collection/common/grid.js.map +0 -1
- package/dist/collection/common/interfaces.js +0 -4
- package/dist/collection/common/interfaces.js.map +0 -1
- package/dist/components/form-validation.js +0 -22
- package/dist/components/form-validation.js.map +0 -1
- package/dist/components/grid.js +0 -14
- package/dist/components/grid.js.map +0 -1
- package/dist/esm/config-a492e15e.js.map +0 -1
- package/dist/esm/form-validation-9367af5a.js +0 -22
- package/dist/esm/form-validation-9367af5a.js.map +0 -1
- package/dist/esm/grid-55fe9537.js +0 -14
- package/dist/esm/grid-55fe9537.js.map +0 -1
- package/dist/esm/helpers-0a23ab69.js.map +0 -1
- package/dist/esm/index-2f305780.js.map +0 -1
- package/dist/genexus-ide-ui/p-00095d68.js +0 -20
- package/dist/genexus-ide-ui/p-00095d68.js.map +0 -1
- package/dist/genexus-ide-ui/p-0c8c6cc3.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-14d3afaf.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-328fc42f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-41326e89.entry.js +0 -184
- package/dist/genexus-ide-ui/p-41326e89.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-4c52f542.entry.js +0 -97
- package/dist/genexus-ide-ui/p-4c52f542.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-4f0b6507.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-52037fb7.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6b1fe886.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6d9841c4.entry.js +0 -94
- package/dist/genexus-ide-ui/p-6d9841c4.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-6ecf34b8.entry.js +0 -493
- package/dist/genexus-ide-ui/p-6ecf34b8.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-720702e4.js +0 -13
- package/dist/genexus-ide-ui/p-720702e4.js.map +0 -1
- package/dist/genexus-ide-ui/p-853dacf5.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9265eb8d.js.map +0 -1
- package/dist/genexus-ide-ui/p-9c1b4eb9.js.map +0 -1
- package/dist/genexus-ide-ui/p-c147291f.js.map +0 -1
- package/dist/genexus-ide-ui/p-c585f865.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-c6f0f199.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-caa3c8b1.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ce59fefc.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-dc02927a.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-df2e4696.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-df7151fa.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f66a086d.entry.js +0 -146
- package/dist/genexus-ide-ui/p-f66a086d.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-f9cd47ba.entry.js +0 -121
- package/dist/genexus-ide-ui/p-f9cd47ba.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-ff934271.entry.js.map +0 -1
- package/dist/types/common/form-validation.d.ts +0 -2
- package/dist/types/common/grid.d.ts +0 -10
- /package/dist/{types/common/interfaces.d.ts → collection/components/_helpers/entity-selector/gx-ide-assets/entity-selector/langs/entity-selector.lang.ja.json} +0 -0
- /package/dist/genexus-ide-ui/{p-7fe1ceb9.entry.js.map → p-03a88768.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-309544a8.js.map → p-07b9c2d4.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-fc6040c7.entry.js.map → p-09cc20b1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-cad2b413.entry.js.map → p-27fcaad7.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-8be06716.entry.js.map → p-2fd83e6c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-8dfde4d9.entry.js.map → p-38f61bea.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-1cbf3ae4.entry.js.map → p-3b5b6908.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-947149d1.entry.js.map → p-3e48e2f6.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c3fbfe7b.entry.js.map → p-68810397.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-03c0d269.entry.js.map → p-69a83248.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-357b287c.entry.js.map → p-6da8bf60.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-fc55b26e.entry.js.map → p-7ac25fc3.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f744e80f.entry.js.map → p-7b8e41dd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-06cb63b5.entry.js.map → p-8da18e59.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4dbaf435.entry.js.map → p-980f96c5.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-b01eccc2.entry.js.map → p-a04d556d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-fa07dd86.entry.js.map → p-a3daa189.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-a5c15051.entry.js.map → p-ad92d701.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0b854804.js.map → p-af836892.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c8f4d24c.entry.js.map → p-bb1d0ab8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ca73836a.entry.js.map → p-c64a4398.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c6cf40ab.entry.js.map → p-c79243c8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7e2ea144.entry.js.map → p-d178da38.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-97fba685.entry.js.map → p-d541640a.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6b5adc13.entry.js.map → p-d9f7d2c3.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-9e5fa97a.entry.js.map → p-dbfddffd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5bf67436.js.map → p-e8bdf9dc.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3ce32466.entry.js.map → p-eb52d685.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-01885db6.entry.js.map → p-edc4f1dc.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-61e2d60e.entry.js.map → p-f5c02654.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-13c68ced.js.map → p-f831f30b.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-kb-manager-import.entry.cjs.js","mappings":"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","names":["countTreeItems","Locale","h","Host","config"],"sources":["src/components/kb-manager-import/helpers.ts","src/components/kb-manager-import/kb-manager-import.scss?tag=gx-ide-kb-manager-import&encapsulation=shadow","src/components/kb-manager-import/kb-manager-import.tsx"],"sourcesContent":["/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\n\n/* Kb Manager Import Types*/\nimport { ImportItemData } from \"./kb-manager-import\";\nimport { ImportCategoryData, ImportItemResultData } from \"../../common/types\";\n/* objects in file metadata*/\nexport const KB_OBJECT = \"object\";\nexport const KB_CATEGORY = \"category\";\n\nconst convertImportItemToTreeItem = (\n importCatIcon: string,\n importItems: ImportItemData[]\n) => {\n const importTreeItems: TreeViewItemModel[] = [];\n importItems.forEach(importItem => {\n importTreeItems.push({\n id: importItem.id,\n caption: importItem.name,\n expanded: true,\n leaf: true,\n startImgSrc: importCatIcon,\n metadata: KB_OBJECT\n });\n });\n return importTreeItems;\n};\n\n/**\n * @description This function converts ReferenceData[] data to TreeItemData[]\n */\nexport const convertImportCategoryToTreeView = (\n importCategoryData: ImportCategoryData[]\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!importCategoryData) {\n return treeData;\n }\n importCategoryData.forEach(importCat => {\n const importCategoryTreeItem: TreeViewItemModel = {\n id: importCat.id,\n caption: `${importCat.name} (${importCat.items.length})`,\n expanded: true,\n leaf: false,\n startImgSrc: importCat.icon,\n metadata: KB_CATEGORY,\n items: convertImportItemToTreeItem(importCat.icon, importCat.items)\n };\n treeData.push(importCategoryTreeItem);\n });\n return treeData;\n};\n\nconst createImportResultDataMessages = (\n importItemId: string,\n messagesArray: string[]\n): TreeViewItemModel[] => {\n const messages: TreeViewItemModel[] = [];\n messagesArray.forEach((message, i) => {\n messages.push({\n id: `${importItemId}-message-${i}}]`,\n caption: message,\n startImgSrc: \"gemini-tools/list-view/on-surface\",\n leaf: true\n });\n });\n return messages;\n};\n\nconst updateImportStatusTree = (\n importItemResultFullData: ImportItemResultFullData,\n importTreeActualState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const objectCategoryIndex = importTreeActualState.findIndex(\n objectCategoryItem => {\n return objectCategoryItem.id === importItemResultFullData.categoryId;\n }\n );\n if (objectCategoryIndex === -1) {\n // object category node does not exists. We have to create it, and insert the import result tree node inside.\n const importTreeItem: TreeViewItemModel = {\n id: importItemResultFullData.categoryId,\n // the count is (1), because this is the first item for this category\n caption: `${importItemResultFullData.categoryName} (1)`,\n startImgSrc: importItemResultFullData.categoryIcon,\n expanded: true,\n items: [\n {\n id: importItemResultFullData.id,\n caption: importItemResultFullData.name,\n items: createImportResultDataMessages(\n importItemResultFullData.id,\n importItemResultFullData.messages\n ),\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultFullData.status}`,\n expanded: true,\n leaf: importItemResultFullData.messages.length === 0,\n metadata: importItemResultFullData.status.toString()\n }\n ]\n };\n importTreeActualState.push(importTreeItem);\n } else {\n // Object category node already exists. Just create the import result node, and insert into the parent category node (if it doesn't exists already).\n\n // first search for the importItemResult node...\n const importItemIndex = importTreeActualState[\n objectCategoryIndex\n ].items?.findIndex(importItem => {\n return importItem.id === importItemResultFullData.id;\n });\n\n if (importItemIndex === -1) {\n // ImportItem does not exists already\n const importTreeItem: TreeViewItemModel = {\n id: importItemResultFullData.id,\n caption: importItemResultFullData.name,\n expanded: true,\n items: createImportResultDataMessages(\n importItemResultFullData.id,\n importItemResultFullData.messages\n ),\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultFullData.status}`,\n metadata: importItemResultFullData.status.toString()\n };\n // Insert the import node into the category node\n importTreeActualState[objectCategoryIndex].items.push(importTreeItem);\n // Then, update the category node caption (the name is the same, but the (count) should be the actual items.length, because we have just added a new child import node. )\n importTreeActualState[\n objectCategoryIndex\n ].caption = `${importItemResultFullData.categoryName} (${importTreeActualState[objectCategoryIndex].items.length})`;\n }\n }\n return importTreeActualState;\n};\n\n/**\n * This function takes an ImportItemResultData item, and updates it to a ImportCategoryFullData, which has the same information, plus the category parent needed information, that will be used for creating the \"virtual\" parent category node on the \"Import Status\" section.\n */\nconst createImportResultFullData = (\n importItemResultData: ImportItemResultData,\n importCategoryData: ImportCategoryData[]\n): ImportItemResultFullData => {\n const importCategoryFullData: ImportItemResultFullData = {\n categoryId: undefined,\n categoryName: undefined,\n categoryIcon: undefined,\n ...importItemResultData\n };\n importCategoryDataFor: for (let i = 0; i < importCategoryData.length; i++) {\n const categoryNode = importCategoryData[i];\n for (let j = 0; j < categoryNode.items.length; j++) {\n if (categoryNode.items[j].id === importItemResultData.id) {\n importCategoryFullData.categoryId = categoryNode.id;\n importCategoryFullData.categoryName = categoryNode.name;\n importCategoryFullData.categoryIcon = categoryNode.icon;\n break importCategoryDataFor;\n }\n }\n }\n return importCategoryFullData;\n};\n\n/**\n * @description This function adds an ImportItemResultData item to the \"importTreeState\", and returns the updated tree with the new item added.\n */\nexport const addImportItemResultDataItem = (\n importItemResultData: ImportItemResultData,\n importCategoryData: ImportCategoryData[],\n importTreeActualState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n let updatedImportStatusTree: TreeViewItemModel[] = [...importTreeActualState];\n // first, update importItemResultData with the category data. It will be needed later.\n const importItemResultFullData: ImportItemResultFullData =\n createImportResultFullData(importItemResultData, importCategoryData);\n updatedImportStatusTree = updateImportStatusTree(\n importItemResultFullData,\n updatedImportStatusTree\n );\n return updatedImportStatusTree;\n};\n\ntype ImportItemResultFullData = ImportItemResultData & {\n categoryId: string;\n categoryName: string;\n categoryIcon: string;\n};\n","@import \"tree-icons-list.scss\";\n@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n/*Header*/\n.header {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n\n .select-file {\n flex: 1;\n }\n}\n/*Main*/\n.main {\n //min-height: 250px;\n height: 100%;\n overflow: auto;\n .container-wrapper {\n height: 100%;\n display: grid;\n grid-template-rows: auto 1fr;\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"top-state-bar top-state-bar\"\n \"left-container right-container\";\n\n .top-state-bar {\n grid-area: top-state-bar;\n }\n .left-container {\n grid-area: left-container;\n border-right: 1px solid var(--gx-ide-container-border-color);\n }\n .right-container {\n grid-area: right-container;\n }\n\n @include gx-ide-message(\"short\");\n\n .tree-container {\n padding: var(--mer-spacing--xs) 0 var(--mer-spacing--xs)\n var(--mer-spacing--xs);\n block-size: 100%;\n &--empty {\n align-items: center;\n justify-content: center;\n display: flex;\n }\n /*import status display/hide status (warning, error, success)*/\n &--no-warnings {\n .tree-view-item--warning {\n display: none;\n }\n }\n &--no-errors {\n .tree-view-item--error {\n display: none;\n }\n }\n &--no-successes {\n .tree-view-item--success {\n display: none;\n }\n }\n }\n }\n}\n\n// .tree-view\n.tree-view::part(item__action tree-view-item--status) {\n grid-template: \"first-img left-img text right-img\" / max-content max-content 1fr max-content;\n &::before {\n grid-area: first-img;\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n background-color: var(--gray-03);\n margin-inline-end: var(--mer-spacing--xxs);\n }\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n @include tree-item-status(\"success\");\n}\n.tree-view::part(item__action tree-view-item--warning) {\n @include tree-item-status(\"warning\");\n}\n.tree-view::part(item__action tree-view-item--error) {\n @include tree-item-status(\"error\");\n}\n\n.ghost-element {\n display: block;\n width: 0;\n height: 24px; /*this is the taller element on the \"objects in file container footer (which is the button group, at the time of writing)\"*/\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n State,\n EventEmitter,\n Watch,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { TreeViewItemContextMenu } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport {\n ImportCategoryData,\n ImportItemResultData,\n ContextMenuInfo\n} from \"../../common/types\";\nimport {\n convertImportCategoryToTreeView,\n addImportItemResultDataItem\n} from \"./helpers\";\n// import { CheckboxInfo } from \"@genexus/gemini/dist/types/components/form-checkbox/form-checkbox\";\nimport { countTreeItems } from \"../../common/helpers\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nimport { KB_OBJECT } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\"\n];\n\n@Component({\n tag: \"gx-ide-kb-manager-import\",\n styleUrl: \"kb-manager-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-import\"]\n})\nexport class GxIdeKbManagerImport {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /* ImportCategoryBasicData Holds the original name of category data, and its id. Used to create parent nodes on the imported tree*/\n private importCategoryData: ImportCategoryData[] = [];\n private objectsInFileTotalNodes = 0;\n private selectedObjectsInFileIds: string[] = [];\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeKbManagerImportElement;\n\n private objectsTreeEl!: HTMLChTreeViewRenderElement;\n private fileInputEl!: HTMLGxgFormTextElement;\n private objectsButtonsGroup!: HTMLGxgButtonsContainerElement;\n private toggleObjectsCheckboxEl: HTMLGxgFormCheckboxElement;\n private topStateBarEl!: HTMLGxgTopStateBarElement;\n private errorItemsIds!: string[];\n private warningItemsIds!: string[];\n private successItemsIds!: string[];\n\n // 3.STATE() VARIABLES //\n\n @State() checkedObjectsIds: string[] = [];\n @State() noObjects: boolean;\n @State() showHiddenImportsMessage = false;\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n @State() objectsTreeState: TreeViewItemModel[] = [];\n @Watch(\"objectsTreeState\")\n watchObjectsTreeStateHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !!(newState.length === 0 || !newState);\n this.objectsInFileTotalNodes = countTreeItems(newState);\n }\n\n // import status\n @State() importStatusMessage: string;\n @State() someStatusVisible: boolean;\n @State() noImport: boolean;\n @State() importTreeState: TreeViewItemModel[] = [];\n @Watch(\"importTreeState\")\n watchImportTreeStateHandler() {\n this.evaluateImport();\n if (this.noImport) {\n this.importStatusMessage =\n this._componentLocale.main.importStatus.noImportedFiles;\n } else {\n this.importStatusMessage =\n this._componentLocale.main.importStatus.importedButHidden;\n }\n }\n\n @State() importingIsInProcess = false;\n @Watch(\"importingIsInProcess\")\n watchImportingIsInProcessHandler(isImporting: boolean) {\n if (isImporting && this.topStateBar) {\n this.topStateBarEl.active = true;\n } else if (!isImporting && this.topStateBar) {\n this.topStateBarEl.active = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly topStateBar = true;\n\n /**\n * The name of the imported xml or xps file\n */\n @Prop({ mutable: true }) selectedFile: File;\n @Watch(\"selectedFile\")\n watchSelectedFileHandler(file: File) {\n if (file && file.name && file.size > 0) {\n this.loadFileHandler();\n }\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n /**\n *Callback invoked when the user wants to initiate the import process.\n */\n @Prop() readonly importCallback: ImportCallback;\n\n /**\n *Callback invoked when the user wants to load the xpz information\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked when the user wants to cancel the export process.\n * @returns It returns a boolean indicating whether the process could be canceled or not.\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * It displays the status buttons (errors, warning, succeeded) with the minimal ui (no captions)\n */\n @Prop() readonly statusMinimal = false;\n\n /**\n * It displays the status buttons (errors, warning, succeeded) with the minimal ui (no captions)\n */\n @Prop() readonly objectContextMenuCallback: ObjectContextMenuCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n this.evaluateObjects();\n this.evaluateImport();\n this.importStatusMessage =\n this._componentLocale.main.importStatus.noImportedFiles;\n this.evaluateImportStatusMessage();\n }\n\n componentDidLoad() {\n this.fileInputEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Add the result of importing an item\n */\n @Method()\n async addResultItem(item: ImportItemResultData) {\n this.importTreeState = addImportItemResultDataItem(\n item,\n this.importCategoryData,\n this.importTreeState\n );\n this.statusInfo[item.status].number++;\n this.updateStatusItemsState();\n }\n\n // 9.LOCAL METHODS //\n\n private updateStatusItemsState = () => {\n this.errorItemsIds = [];\n this.warningItemsIds = [];\n this.successItemsIds = [];\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (child.metadata === \"error\") {\n this.errorItemsIds.push(child.id);\n }\n if (child.metadata === \"warning\") {\n this.warningItemsIds.push(child.id);\n }\n if (child.metadata === \"success\") {\n this.successItemsIds.push(child.id);\n }\n });\n });\n };\n\n private evaluateImportStatusMessage = () => {\n this.someStatusVisible =\n this.statusInfo.error.display ||\n this.statusInfo.warning.display ||\n this.statusInfo.success.display;\n };\n\n private evaluateObjects = () => {\n this.noObjects = !!(\n this.objectsTreeState?.length === 0 || !this.objectsTreeState\n );\n };\n\n private evaluateImport = () => {\n this.noImport = !!(\n this.importTreeState?.length === 0 || !this.importTreeState\n );\n };\n\n private selectFileAndLoadHandler = () => {\n this.fileInputEl.openFile();\n };\n\n private loadFileHandler = async () => {\n if (this.loadCallback && this.selectedFile) {\n this.importCategoryData = await this.loadCallback(this.selectedFile);\n const importCategoryTreeData = convertImportCategoryToTreeView(\n this.importCategoryData\n );\n this.objectsTreeState = importCategoryTreeData;\n if (this.importCategoryData.length > 0) {\n // clear input\n this.selectedFile = null;\n }\n }\n };\n\n private fileSelectedHandler = (fileEvent: CustomEvent<FileList>) => {\n this.selectedFile = fileEvent.detail[0];\n };\n\n private importObjectsHandler = async () => {\n if (this.importCallback) {\n /* first clear imported objects (this clears errors/warnings/success counts as well)*/\n this.clearStatusHandler();\n /* then do the import*/\n this.importingIsInProcess = true;\n this.objectsButtonsGroup.selectedButtonId = \"cancel-import-btn\";\n this.importCallback(this.checkedObjectsIds).then(() => {\n this.importingIsInProcess = false;\n });\n }\n };\n\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n /* 1. Begin of evaluate 'select/unselect checkbox' state*/\n if (event.detail == null) {\n this.toggleObjectsCheckboxEl.checked = false;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n return;\n }\n\n const allItemsWithCheckbox = [...event.detail.values()];\n\n if (allItemsWithCheckbox.length === 0) {\n this.toggleObjectsCheckboxEl.checked = false;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n return;\n }\n\n const firstItemCheckedValue = allItemsWithCheckbox[0].item.checked;\n\n const allItemsHaveTheSameCheckedValue = allItemsWithCheckbox.every(\n treeItem => treeItem.item.checked === firstItemCheckedValue\n );\n\n this.toggleObjectsCheckboxEl.checked = firstItemCheckedValue;\n this.toggleObjectsCheckboxEl.indeterminate =\n !allItemsHaveTheSameCheckedValue;\n /* /End of evaluate 'select/unselect checkbox' state*/\n\n /* 2. Begin of checked items evaluation*/\n const checkedItems = allItemsWithCheckbox.filter(node => node.item.checked);\n // objects checked\n const checkedObjects = checkedItems.filter(\n node => node.item.metadata === KB_OBJECT\n );\n\n const checkedObjectsIds: string[] = [];\n if (checkedObjects.length > 0) {\n checkedObjects.forEach(objectChecked => {\n checkedObjectsIds.push(objectChecked.item.id);\n });\n }\n /* /End of checked items evaluation*/\n\n /* 3. Begin of caption update*/\n /* TO DO (when we can differentiate the caption from the number of children)*/\n // const categoryItems = allItemsWithCheckbox.filter(\n // node => node.item.metadata === KB_CATEGORY\n // );\n // categoryItems.forEach(category => {\n // const itemInfo = category.item;\n // // Update the amount of checked values\n // if (itemInfo.leaf !== true) {\n // const totalItems = itemInfo.items.length;\n\n // const totalItemsChecked = itemInfo.items.filter(\n // itemUIModel => itemUIModel.checked\n // ).length;\n\n // const newItemCaption =\n // totalItems !== totalItemsChecked\n // ? `${itemInfo.caption} (${totalItemsChecked}/${totalItems})`\n // : `${itemInfo.caption} (${totalItems})`;\n\n // // Only update the item caption if needed\n // if (newItemCaption !== itemInfo.caption) {\n // this.objectsTreeEl.updateItemsProperties([itemInfo.id], {\n // id: itemInfo.id,\n // caption: newItemCaption\n // });\n // }\n // }\n // });\n\n /* /End of caption update*/\n this.checkedObjectsIds = checkedObjectsIds;\n };\n\n private objectsTreeSelectedItemsChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.selectedObjectsInFileIds = event.detail.map(item => item.item.id);\n };\n\n private objectsTreeContextMenuHandler = (\n event: CustomEvent<TreeViewItemContextMenu>\n ) => {\n if (this.objectContextMenuCallback && event.detail.metadata === KB_OBJECT) {\n this.objectContextMenuCallback(\"imported\", {\n selection: this.selectedObjectsInFileIds,\n clientX: event.detail.contextmenuEvent.screenX,\n clientY: event.detail.contextmenuEvent.screenY\n });\n }\n };\n\n private cancelImportHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback().then(result => {\n if (result) {\n this.topStateBarEl.active = false;\n }\n });\n // returns boolean\n }\n };\n\n private optionsHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns boolean\n }\n };\n\n private clearStatusHandler = () => {\n this.importTreeState = [];\n this.statusInfo.error.number = 0;\n this.statusInfo.warning.number = 0;\n this.statusInfo.success.number = 0;\n };\n\n private toggleSelectionClickHandler = (e: MouseEvent) => {\n if (this.objectsTreeEl) {\n const checked = (e.target as HTMLGxgFormCheckboxElement).checked;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n this.objectsTreeEl.updateAllItemsProperties({ checked: checked });\n }\n };\n\n private statusButtonsSelectionChangedHandler = (\n e: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = e.detail;\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n this.evaluateImportStatusMessage();\n };\n\n private evaluateCheckAllValue = (): boolean => {\n let checked = true;\n const allAreChecked =\n this.objectsInFileTotalNodes === this.checkedObjectsIds.length;\n const conditionToUncheck =\n this.objectsTreeState.length === 0 || !allAreChecked;\n if (conditionToUncheck) {\n checked = false;\n }\n return checked;\n };\n\n private fileClearedHandler = () => {\n this.selectedFile = null;\n };\n\n /**\n * @description Filters the imported items based on the state of the status checkboxes (error, warning, success).\n */\n private filterImportedHandler = () => {\n const filteredItems: string[] = [];\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (\n this.statusInfo.error.display &&\n this.statusInfo.warning.display &&\n this.statusInfo.success.display\n ) {\n // all are checked, return all\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n } else if (\n this.statusInfo.error.display &&\n this.statusInfo.warning.display &&\n !this.statusInfo.success.display\n ) {\n // return error and warning only;\n const foundSuccess = this.successItemsIds.find(\n successItemId => successItemId === child.id\n );\n if (!foundSuccess) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n this.statusInfo.error.display &&\n !this.statusInfo.warning.display &&\n this.statusInfo.success.display\n ) {\n // return error and success only\n const foundWarning = this.warningItemsIds.find(\n warningItemId => warningItemId === child.id\n );\n if (!foundWarning) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n this.statusInfo.error.display &&\n !this.statusInfo.warning.display &&\n !this.statusInfo.success.display\n ) {\n // return error only\n const foundError = this.errorItemsIds.find(\n errorItemId => errorItemId === child.id\n );\n if (foundError) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n !this.statusInfo.error.display &&\n this.statusInfo.warning.display &&\n this.statusInfo.success.display\n ) {\n // return warning and success\n const foundError = this.errorItemsIds.find(\n errorItemId => errorItemId === child.id\n );\n if (!foundError) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n !this.statusInfo.error.display &&\n this.statusInfo.warning.display &&\n !this.statusInfo.success.display\n ) {\n // return warning only\n const foundWarning = this.warningItemsIds.find(\n warningItemId => warningItemId === child.id\n );\n if (foundWarning) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n !this.statusInfo.error.display &&\n !this.statusInfo.warning.display &&\n this.statusInfo.success.display\n ) {\n // return success only\n const foundSuccess = this.successItemsIds.find(\n successItemId => successItemId === child.id\n );\n if (foundSuccess) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n }\n // else do nothing. Al status checkboxes are unchecked.\n });\n });\n return filteredItems;\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noFooterPadding\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {/* header */}\n <header class=\"header\" slot=\"header\">\n {/* select a file */}\n <gxg-form-text\n type=\"file\"\n class=\"select-file\"\n label={this._componentLocale.header.fileNameLabel}\n placeholder={this._componentLocale.header.fileNamePlaceholder}\n part=\"file-name\"\n acceptFile=\".xpz, .xml\"\n clearButton\n iconPosition=\"start\"\n onFileSelected={this.fileSelectedHandler}\n onClearButtonClicked={this.fileClearedHandler}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.fileInputEl = el as HTMLGxgFormTextElement)\n }\n ></gxg-form-text>\n {/* select file button / load button*/}\n <gxg-button\n type=\"primary-text-icon\"\n icon=\"gemini-tools/file\"\n part=\"select-file-load-button\"\n onClick={this.selectFileAndLoadHandler}\n disabled={this.importingIsInProcess}\n >\n {this._componentLocale.header.selectFileButton}\n </gxg-button>\n </header>\n <main class=\"main\">\n {/* main */}\n {/* objects in file*/}\n <div class=\"container-wrapper\">\n {/* top state bar*/}\n {this.topStateBar ? (\n <gxg-top-state-bar\n class=\"top-state-bar\"\n part=\"top-state-bar\"\n caption={this._componentLocale.loader.title}\n ref={el =>\n (this.topStateBarEl = el as HTMLGxgTopStateBarElement)\n }\n ></gxg-top-state-bar>\n ) : null}\n <gx-ide-container\n containerTitle={\n this._componentLocale.main.objectsInFile.title\n }\n noContentPadding\n noBorderFooter\n class=\"left-container\"\n slimmerFooter\n inactiveTitle={this.noObjects}\n titleType=\"secondary\"\n >\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--objects-in-file\": true,\n \"tree-container--empty\": this.noObjects\n }}\n >\n {!this.noObjects ? (\n <ch-tree-view-render\n showLines=\"last\"\n class=\"tree-view\"\n model={this.objectsTreeState}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={\n this.objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={\n this.objectsTreeSelectedItemsChangedHandler\n }\n onItemContextmenu={this.objectsTreeContextMenuHandler}\n ref={el =>\n (this.objectsTreeEl =\n el as HTMLChTreeViewRenderElement)\n }\n ></ch-tree-view-render>\n ) : (\n <div class=\"gx-ide-message\">\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"objects-in-file-empty-status-message\"\n >\n {this._componentLocale.main.objectsInFile.noObjects}\n <gxg-text\n type=\"text-link-no-line\"\n onClick={this.selectFileAndLoadHandler}\n >\n {\n this._componentLocale.main.objectsInFile\n .selectFile\n }\n </gxg-text>\n </gxg-text>\n </div>\n )}\n </div>\n {/* select all / unselect all checkbox*/}\n <gxg-form-checkbox\n label={\n this._componentLocale.main.objectsInFile.selectUnselect\n }\n part=\"select-all-checkbox\"\n slot=\"footer-start\"\n disabled={\n this.importingIsInProcess ||\n this.objectsTreeState.length === 0\n }\n checked={this.evaluateCheckAllValue()}\n onClick={this.toggleSelectionClickHandler}\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.toggleObjectsCheckboxEl =\n el as HTMLGxgFormCheckboxElement)\n }\n ></gxg-form-checkbox>\n {/* import button / cancel button*/}\n <gxg-buttons-container\n reduced\n slot=\"footer-end\"\n ref={(el: HTMLGxgButtonsContainerElement) =>\n (this.objectsButtonsGroup =\n el as HTMLGxgButtonsContainerElement)\n }\n >\n {/* import objects button*/}\n <gxg-button\n id=\"import-btn\"\n part=\"import-button\"\n disabled={\n this.objectsTreeState?.length === 0 ||\n this.importingIsInProcess\n }\n onClick={this.importObjectsHandler}\n selected\n >\n {this._componentLocale.main.objectsInFile.importButton}\n </gxg-button>\n\n {/* cancel-import button*/}\n <gxg-button\n id=\"cancel-import-btn\"\n part=\"cancel-import-button\"\n disabled={!this.importingIsInProcess}\n onClick={this.cancelImportHandler}\n >\n {this._componentLocale.main.objectsInFile.cancelButton}\n </gxg-button>\n </gxg-buttons-container>\n {/* settings/options button*/}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/settings\"\n slot=\"footer-end\"\n part=\"select-kb-btn\"\n onClick={this.optionsHandler}\n >\n {this._componentLocale.header.optionsButton}\n </gxg-button>\n </gx-ide-container>\n {/* import status */}\n <gx-ide-container\n class=\"right-container\"\n containerTitle={this._componentLocale.main.importStatus.title}\n noContentPadding\n noBorderFooter\n slimmerFooter\n inactiveTitle={this.noImport}\n titleType=\"secondary\"\n >\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--import-status\": true,\n \"tree-container--empty\":\n this.noImport || !this.someStatusVisible,\n \"tree-container--no-warnings\":\n !this.statusInfo.warning.display,\n \"tree-container--no-errors\":\n !this.statusInfo.error.display,\n \"tree-container--no-succeeded\":\n !this.statusInfo.success.display\n }}\n >\n {!this.noImport && this.someStatusVisible ? (\n <ch-tree-view-render\n model={this.importTreeState}\n toggleCheckboxes={true}\n showLines=\"last\"\n class=\"tree-view\"\n filterType=\"list\"\n filterList={this.filterImportedHandler()}\n ></ch-tree-view-render>\n ) : (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"objects-in-file-empty-status-message\"\n class=\"gx-ide-message\"\n >\n {this.importStatusMessage}\n </gxg-text>\n )}\n </div>\n {/* clear status button */}\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n part=\"select-kb-btn\"\n onClick={this.clearStatusHandler}\n disabled={this.noImport || this.importingIsInProcess}\n >\n {this._componentLocale.main.importStatus.clearButton}\n </gxg-button>\n {/* ghost element (used to force the container footer heights the same as the \"objects in file\" container tree)*/}\n <span class=\"ghost-element\" slot=\"footer-start\"></span>\n </gx-ide-container>\n </div>\n </main>\n {/* footer */}\n <footer slot=\"footer-start\">\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n minimal={this.statusMinimal}\n onSelectionChanged={this.statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;\n\nexport type ImportCallback = (itemIds: string[]) => Promise<boolean>;\n\nexport type CancelCallback = () => Promise<boolean>;\n\nexport type OptionsCallback = () => Promise<void>;\nexport interface SelectedObject {\n itemId: string;\n subItemsIds: string[];\n}\n\nexport type ImportItemData = {\n id: string;\n name: string;\n};\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type ObjectContextMenuCallback = (\n tree: ObjectsSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ObjectsSourceType = \"in-file\" | \"imported\";\n\nexport type StatusItemsState = {\n error: string[];\n warning: string[];\n success: string[];\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-kb-manager-import.entry.cjs.js","mappings":"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","names":["countTreeItems","Locale","h","Host","config"],"sources":["src/components/kb-manager-import/helpers.ts","src/components/kb-manager-import/kb-manager-import.scss?tag=gx-ide-kb-manager-import&encapsulation=shadow","src/components/kb-manager-import/kb-manager-import.tsx"],"sourcesContent":["/* Tree View */\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\n\n/* Kb Manager Import Types*/\nimport { ImportItemData } from \"./kb-manager-import\";\nimport { ImportCategoryData, ImportItemResultData } from \"../../common/types\";\n/* objects in file metadata*/\nexport const KB_OBJECT = \"object\";\nexport const KB_CATEGORY = \"category\";\n\nconst convertImportItemToTreeItem = (\n importCatIcon: string,\n importItems: ImportItemData[]\n) => {\n const importTreeItems: TreeViewItemModel[] = [];\n importItems.forEach(importItem => {\n importTreeItems.push({\n id: importItem.id,\n caption: importItem.name,\n expanded: true,\n leaf: true,\n startImgSrc: importCatIcon,\n metadata: KB_OBJECT\n });\n });\n return importTreeItems;\n};\n\n/**\n * @description This function converts ReferenceData[] data to TreeItemData[]\n */\nexport const convertImportCategoryToTreeView = (\n importCategoryData: ImportCategoryData[]\n): TreeViewItemModel[] => {\n const treeData: TreeViewItemModel[] = [];\n if (!importCategoryData) {\n return treeData;\n }\n importCategoryData.forEach(importCat => {\n const importCategoryTreeItem: TreeViewItemModel = {\n id: importCat.id,\n caption: `${importCat.name} (${importCat.items.length})`,\n expanded: true,\n leaf: false,\n startImgSrc: importCat.icon,\n metadata: KB_CATEGORY,\n items: convertImportItemToTreeItem(importCat.icon, importCat.items)\n };\n treeData.push(importCategoryTreeItem);\n });\n return treeData;\n};\n\nconst createImportResultDataMessages = (\n importItemId: string,\n messagesArray: string[]\n): TreeViewItemModel[] => {\n const messages: TreeViewItemModel[] = [];\n messagesArray.forEach((message, i) => {\n messages.push({\n id: `${importItemId}-message-${i}}]`,\n caption: message,\n startImgSrc: \"gemini-tools/list-view/on-surface\",\n leaf: true\n });\n });\n return messages;\n};\n\nconst updateImportStatusTree = (\n importItemResultFullData: ImportItemResultFullData,\n importTreeActualState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n const objectCategoryIndex = importTreeActualState.findIndex(\n objectCategoryItem => {\n return objectCategoryItem.id === importItemResultFullData.categoryId;\n }\n );\n if (objectCategoryIndex === -1) {\n // object category node does not exists. We have to create it, and insert the import result tree node inside.\n const importTreeItem: TreeViewItemModel = {\n id: importItemResultFullData.categoryId,\n // the count is (1), because this is the first item for this category\n caption: `${importItemResultFullData.categoryName} (1)`,\n startImgSrc: importItemResultFullData.categoryIcon,\n expanded: true,\n items: [\n {\n id: importItemResultFullData.id,\n caption: importItemResultFullData.name,\n items: createImportResultDataMessages(\n importItemResultFullData.id,\n importItemResultFullData.messages\n ),\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultFullData.status}`,\n expanded: true,\n leaf: importItemResultFullData.messages.length === 0,\n metadata: importItemResultFullData.status.toString()\n }\n ]\n };\n importTreeActualState.push(importTreeItem);\n } else {\n // Object category node already exists. Just create the import result node, and insert into the parent category node (if it doesn't exists already).\n\n // first search for the importItemResult node...\n const importItemIndex = importTreeActualState[\n objectCategoryIndex\n ].items?.findIndex(importItem => {\n return importItem.id === importItemResultFullData.id;\n });\n\n if (importItemIndex === -1) {\n // ImportItem does not exists already\n const importTreeItem: TreeViewItemModel = {\n id: importItemResultFullData.id,\n caption: importItemResultFullData.name,\n expanded: true,\n items: createImportResultDataMessages(\n importItemResultFullData.id,\n importItemResultFullData.messages\n ),\n parts: `tree-view-item tree-view-item--status tree-view-item--${importItemResultFullData.status}`,\n metadata: importItemResultFullData.status.toString()\n };\n // Insert the import node into the category node\n importTreeActualState[objectCategoryIndex].items.push(importTreeItem);\n // Then, update the category node caption (the name is the same, but the (count) should be the actual items.length, because we have just added a new child import node. )\n importTreeActualState[\n objectCategoryIndex\n ].caption = `${importItemResultFullData.categoryName} (${importTreeActualState[objectCategoryIndex].items.length})`;\n }\n }\n return importTreeActualState;\n};\n\n/**\n * This function takes an ImportItemResultData item, and updates it to a ImportCategoryFullData, which has the same information, plus the category parent needed information, that will be used for creating the \"virtual\" parent category node on the \"Import Status\" section.\n */\nconst createImportResultFullData = (\n importItemResultData: ImportItemResultData,\n importCategoryData: ImportCategoryData[]\n): ImportItemResultFullData => {\n const importCategoryFullData: ImportItemResultFullData = {\n categoryId: undefined,\n categoryName: undefined,\n categoryIcon: undefined,\n ...importItemResultData\n };\n importCategoryDataFor: for (let i = 0; i < importCategoryData.length; i++) {\n const categoryNode = importCategoryData[i];\n for (let j = 0; j < categoryNode.items.length; j++) {\n if (categoryNode.items[j].id === importItemResultData.id) {\n importCategoryFullData.categoryId = categoryNode.id;\n importCategoryFullData.categoryName = categoryNode.name;\n importCategoryFullData.categoryIcon = categoryNode.icon;\n break importCategoryDataFor;\n }\n }\n }\n return importCategoryFullData;\n};\n\n/**\n * @description This function adds an ImportItemResultData item to the \"importTreeState\", and returns the updated tree with the new item added.\n */\nexport const addImportItemResultDataItem = (\n importItemResultData: ImportItemResultData,\n importCategoryData: ImportCategoryData[],\n importTreeActualState: TreeViewItemModel[]\n): TreeViewItemModel[] => {\n let updatedImportStatusTree: TreeViewItemModel[] = [...importTreeActualState];\n // first, update importItemResultData with the category data. It will be needed later.\n const importItemResultFullData: ImportItemResultFullData =\n createImportResultFullData(importItemResultData, importCategoryData);\n updatedImportStatusTree = updateImportStatusTree(\n importItemResultFullData,\n updatedImportStatusTree\n );\n return updatedImportStatusTree;\n};\n\ntype ImportItemResultFullData = ImportItemResultData & {\n categoryId: string;\n categoryName: string;\n categoryIcon: string;\n};\n","@import \"tree-icons-list.scss\";\n@import \"../../global/gx-ide-common.scss\";\n@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n/*Header*/\n.header {\n display: flex;\n flex-direction: row;\n gap: var(--gx-ide-grid-column-gap);\n\n .select-file {\n flex: 1;\n }\n}\n/*Main*/\n.main {\n //min-height: 250px;\n height: 100%;\n overflow: auto;\n .container-wrapper {\n height: 100%;\n display: grid;\n grid-template-rows: auto 1fr;\n grid-template-columns: 1fr 1fr;\n grid-template-areas:\n \"top-state-bar top-state-bar\"\n \"left-container right-container\";\n\n .top-state-bar {\n grid-area: top-state-bar;\n }\n .left-container {\n grid-area: left-container;\n border-right: 1px solid var(--gx-ide-container-border-color);\n }\n .right-container {\n grid-area: right-container;\n }\n\n @include gx-ide-message(\"short\");\n\n .tree-container {\n padding: var(--mer-spacing--xs) 0 var(--mer-spacing--xs)\n var(--mer-spacing--xs);\n block-size: 100%;\n &--empty {\n align-items: center;\n justify-content: center;\n display: flex;\n }\n /*import status display/hide status (warning, error, success)*/\n &--no-warnings {\n .tree-view-item--warning {\n display: none;\n }\n }\n &--no-errors {\n .tree-view-item--error {\n display: none;\n }\n }\n &--no-successes {\n .tree-view-item--success {\n display: none;\n }\n }\n }\n }\n}\n\n// .tree-view\n.tree-view::part(item__action tree-view-item--status) {\n grid-template: \"first-img left-img text right-img\" / max-content max-content 1fr max-content;\n &::before {\n grid-area: first-img;\n content: \"\";\n width: var(--mer-spacing--xs);\n height: var(--mer-spacing--xs);\n border-radius: 50%;\n background-color: var(--gray-03);\n margin-inline-end: var(--mer-spacing--xxs);\n }\n}\n\n.tree-view::part(item__action tree-view-item--success) {\n @include tree-item-status(\"success\");\n}\n.tree-view::part(item__action tree-view-item--warning) {\n @include tree-item-status(\"warning\");\n}\n.tree-view::part(item__action tree-view-item--error) {\n @include tree-item-status(\"error\");\n}\n\n.ghost-element {\n display: block;\n width: 0;\n height: 24px; /*this is the taller element on the \"objects in file container footer (which is the button group, at the time of writing)\"*/\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n Element,\n State,\n EventEmitter,\n Watch,\n Method\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { TreeViewItemContextMenu } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModel } from \"@genexus/chameleon-controls-library\";\nimport { TreeViewItemModelExtended } from \"@genexus/chameleon-controls-library\";\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport {\n TextAlign,\n TextPadding,\n TextType\n} from \"@genexus/gemini/dist/types/components/text/text\";\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../common/locale\";\nimport { config } from \"../../common/config\";\nimport {\n ImportCategoryData,\n ImportItemResultData,\n ContextMenuInfo\n} from \"../../common/types\";\nimport {\n convertImportCategoryToTreeView,\n addImportItemResultDataItem\n} from \"./helpers\";\n// import { CheckboxInfo } from \"@genexus/gemini/dist/types/components/form-checkbox/form-checkbox\";\nimport { countTreeItems } from \"../../common/helpers\";\nimport { CheckedItemsInfo } from \"../_helpers/list-selector/list-selector\";\n\nimport { KB_OBJECT } from \"./helpers\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form\",\n \"utils/layout\",\n \"utils/typography\",\n \"components/button\",\n \"components/checkbox\",\n \"components/edit\",\n \"components/tree-view\"\n];\n\n@Component({\n tag: \"gx-ide-kb-manager-import\",\n styleUrl: \"kb-manager-import.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/kb-manager-import\"]\n})\nexport class GxIdeKbManagerImport {\n // 1.OWN PROPERTIES //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n /* ImportCategoryBasicData Holds the original name of category data, and its id. Used to create parent nodes on the imported tree*/\n private importCategoryData: ImportCategoryData[] = [];\n private objectsInFileTotalNodes = 0;\n private selectedObjectsInFileIds: string[] = [];\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeKbManagerImportElement;\n\n private objectsTreeEl!: HTMLChTreeViewRenderElement;\n private fileInputEl!: HTMLGxgFormTextElement;\n private objectsButtonsGroup!: HTMLGxgButtonsContainerElement;\n private toggleObjectsCheckboxEl: HTMLGxgFormCheckboxElement;\n private topStateBarEl!: HTMLGxgTopStateBarElement;\n private errorItemsIds!: string[];\n private warningItemsIds!: string[];\n private successItemsIds!: string[];\n\n // 3.STATE() VARIABLES //\n\n @State() checkedObjectsIds: string[] = [];\n @State() noObjects: boolean;\n @State() showHiddenImportsMessage = false;\n @State() statusInfo: StatusInfo = {\n error: {\n display: true,\n number: 0\n },\n warning: {\n display: true,\n number: 0\n },\n success: {\n display: true,\n number: 0\n }\n };\n @State() objectsTreeState: TreeViewItemModel[] = [];\n @Watch(\"objectsTreeState\")\n watchObjectsTreeStateHandler(newState: TreeViewItemModel[]) {\n this.noObjects = !!(newState.length === 0 || !newState);\n this.objectsInFileTotalNodes = countTreeItems(newState);\n }\n\n // import status\n @State() importStatusMessage: string;\n @State() someStatusVisible: boolean;\n @State() noImport: boolean;\n @State() importTreeState: TreeViewItemModel[] = [];\n @Watch(\"importTreeState\")\n watchImportTreeStateHandler() {\n this.evaluateImport();\n if (this.noImport) {\n this.importStatusMessage =\n this._componentLocale.main.importStatus.noImportedFiles;\n } else {\n this.importStatusMessage =\n this._componentLocale.main.importStatus.importedButHidden;\n }\n }\n\n @State() importingIsInProcess = false;\n @Watch(\"importingIsInProcess\")\n watchImportingIsInProcessHandler(isImporting: boolean) {\n if (isImporting && this.topStateBar) {\n this.topStateBarEl.active = true;\n } else if (!isImporting && this.topStateBar) {\n this.topStateBarEl.active = false;\n }\n }\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * If true it displays the component title on the header\n */\n @Prop() readonly displayTitle = false;\n\n /**\n * If true, it will display a loader when needed.\n */\n @Prop() readonly topStateBar = true;\n\n /**\n * The name of the imported xml or xps file\n */\n @Prop({ mutable: true }) selectedFile: File;\n @Watch(\"selectedFile\")\n watchSelectedFileHandler(file: File) {\n if (file && file.name && file.size > 0) {\n this.loadFileHandler();\n }\n }\n\n /**\n * Callback invoked when the user wants to access the export options.\n */\n @Prop() readonly optionsCallback: OptionsCallback;\n\n /**\n *Callback invoked when the user wants to initiate the import process.\n */\n @Prop() readonly importCallback: ImportCallback;\n\n /**\n *Callback invoked when the user wants to load the xpz information\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked when the user wants to cancel the export process.\n * @returns It returns a boolean indicating whether the process could be canceled or not.\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n /**\n * It displays the status buttons (errors, warning, succeeded) with the minimal ui (no captions)\n */\n @Prop() readonly statusMinimal = false;\n\n /**\n * It displays the status buttons (errors, warning, succeeded) with the minimal ui (no captions)\n */\n @Prop() readonly objectContextMenuCallback: ObjectContextMenuCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs.\n */\n @Event() componentDidLoadEvent: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.componentDidLoadEvent.emit(true);\n this.evaluateObjects();\n this.evaluateImport();\n this.importStatusMessage =\n this._componentLocale.main.importStatus.noImportedFiles;\n this.evaluateImportStatusMessage();\n }\n\n componentDidLoad() {\n this.fileInputEl.focus();\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n /**\n * Add the result of importing an item\n */\n @Method()\n async addResultItem(item: ImportItemResultData) {\n this.importTreeState = addImportItemResultDataItem(\n item,\n this.importCategoryData,\n this.importTreeState\n );\n this.statusInfo[item.status].number++;\n this.updateStatusItemsState();\n }\n\n // 9.LOCAL METHODS //\n\n private updateStatusItemsState = () => {\n this.errorItemsIds = [];\n this.warningItemsIds = [];\n this.successItemsIds = [];\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (child.metadata === \"error\") {\n this.errorItemsIds.push(child.id);\n }\n if (child.metadata === \"warning\") {\n this.warningItemsIds.push(child.id);\n }\n if (child.metadata === \"success\") {\n this.successItemsIds.push(child.id);\n }\n });\n });\n };\n\n private evaluateImportStatusMessage = () => {\n this.someStatusVisible =\n this.statusInfo.error.display ||\n this.statusInfo.warning.display ||\n this.statusInfo.success.display;\n };\n\n private evaluateObjects = () => {\n this.noObjects = !!(\n this.objectsTreeState?.length === 0 || !this.objectsTreeState\n );\n };\n\n private evaluateImport = () => {\n this.noImport = !!(\n this.importTreeState?.length === 0 || !this.importTreeState\n );\n };\n\n private selectFileAndLoadHandler = () => {\n this.fileInputEl.openFile();\n };\n\n private loadFileHandler = async () => {\n if (this.loadCallback && this.selectedFile) {\n this.importCategoryData = await this.loadCallback(this.selectedFile);\n const importCategoryTreeData = convertImportCategoryToTreeView(\n this.importCategoryData\n );\n this.objectsTreeState = importCategoryTreeData;\n if (this.importCategoryData.length > 0) {\n // clear input\n this.selectedFile = null;\n }\n }\n };\n\n private fileSelectedHandler = (fileEvent: CustomEvent<FileList>) => {\n this.selectedFile = fileEvent.detail[0];\n };\n\n private importObjectsHandler = async () => {\n if (this.importCallback) {\n /* first clear imported objects (this clears errors/warnings/success counts as well)*/\n this.clearStatusHandler();\n /* then do the import*/\n this.importingIsInProcess = true;\n this.objectsButtonsGroup.selectedButtonId = \"cancel-import-btn\";\n this.importCallback(this.checkedObjectsIds).then(() => {\n this.importingIsInProcess = false;\n });\n }\n };\n\n private objectsTreeCheckedItemsChangedHandler = (\n event: CustomEvent<Map<string, TreeViewItemModelExtended>>\n ) => {\n /* 1. Begin of evaluate 'select/unselect checkbox' state*/\n if (event.detail == null) {\n this.toggleObjectsCheckboxEl.checked = false;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n return;\n }\n\n const allItemsWithCheckbox = [...event.detail.values()];\n\n if (allItemsWithCheckbox.length === 0) {\n this.toggleObjectsCheckboxEl.checked = false;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n return;\n }\n\n const firstItemCheckedValue = allItemsWithCheckbox[0].item.checked;\n\n const allItemsHaveTheSameCheckedValue = allItemsWithCheckbox.every(\n treeItem => treeItem.item.checked === firstItemCheckedValue\n );\n\n this.toggleObjectsCheckboxEl.checked = firstItemCheckedValue;\n this.toggleObjectsCheckboxEl.indeterminate =\n !allItemsHaveTheSameCheckedValue;\n /* /End of evaluate 'select/unselect checkbox' state*/\n\n /* 2. Begin of checked items evaluation*/\n const checkedItems = allItemsWithCheckbox.filter(node => node.item.checked);\n // objects checked\n const checkedObjects = checkedItems.filter(\n node => node.item.metadata === KB_OBJECT\n );\n\n const checkedObjectsIds: string[] = [];\n if (checkedObjects.length > 0) {\n checkedObjects.forEach(objectChecked => {\n checkedObjectsIds.push(objectChecked.item.id);\n });\n }\n /* /End of checked items evaluation*/\n\n /* 3. Begin of caption update*/\n /* TO DO (when we can differentiate the caption from the number of children)*/\n // const categoryItems = allItemsWithCheckbox.filter(\n // node => node.item.metadata === KB_CATEGORY\n // );\n // categoryItems.forEach(category => {\n // const itemInfo = category.item;\n // // Update the amount of checked values\n // if (itemInfo.leaf !== true) {\n // const totalItems = itemInfo.items.length;\n\n // const totalItemsChecked = itemInfo.items.filter(\n // itemUIModel => itemUIModel.checked\n // ).length;\n\n // const newItemCaption =\n // totalItems !== totalItemsChecked\n // ? `${itemInfo.caption} (${totalItemsChecked}/${totalItems})`\n // : `${itemInfo.caption} (${totalItems})`;\n\n // // Only update the item caption if needed\n // if (newItemCaption !== itemInfo.caption) {\n // this.objectsTreeEl.updateItemsProperties([itemInfo.id], {\n // id: itemInfo.id,\n // caption: newItemCaption\n // });\n // }\n // }\n // });\n\n /* /End of caption update*/\n this.checkedObjectsIds = checkedObjectsIds;\n };\n\n private objectsTreeSelectedItemsChangedHandler = (\n event: CustomEvent<TreeViewItemModelExtended[]>\n ) => {\n this.selectedObjectsInFileIds = event.detail.map(item => item.item.id);\n };\n\n private objectsTreeContextMenuHandler = (\n event: CustomEvent<TreeViewItemContextMenu>\n ) => {\n if (this.objectContextMenuCallback && event.detail.metadata === KB_OBJECT) {\n this.objectContextMenuCallback(\"imported\", {\n selection: this.selectedObjectsInFileIds,\n clientX: event.detail.contextmenuEvent.screenX,\n clientY: event.detail.contextmenuEvent.screenY\n });\n }\n };\n\n private cancelImportHandler = () => {\n if (this.cancelCallback) {\n this.cancelCallback().then(result => {\n if (result) {\n this.topStateBarEl.active = false;\n }\n });\n // returns boolean\n }\n };\n\n private optionsHandler = () => {\n if (this.optionsCallback) {\n this.optionsCallback();\n // returns boolean\n }\n };\n\n private clearStatusHandler = () => {\n this.importTreeState = [];\n this.statusInfo.error.number = 0;\n this.statusInfo.warning.number = 0;\n this.statusInfo.success.number = 0;\n };\n\n private toggleSelectionClickHandler = (e: MouseEvent) => {\n if (this.objectsTreeEl) {\n const checked = (e.target as HTMLGxgFormCheckboxElement).checked;\n this.toggleObjectsCheckboxEl.indeterminate = false;\n this.objectsTreeEl.updateAllItemsProperties({ checked: checked });\n }\n };\n\n private statusButtonsSelectionChangedHandler = (\n e: CustomEvent<CheckedItemsInfo>\n ) => {\n const activeStates = e.detail;\n const errorIndex = activeStates.findIndex(\n state => state.itemId === \"errors\"\n );\n const warningIndex = activeStates.findIndex(\n state => state.itemId === \"warnings\"\n );\n const successIndex = activeStates.findIndex(\n state => state.itemId === \"successes\"\n );\n this.statusInfo = {\n error: {\n display: errorIndex !== -1,\n number: this.statusInfo.error.number\n },\n warning: {\n display: warningIndex !== -1,\n number: this.statusInfo.warning.number\n },\n success: {\n display: successIndex !== -1,\n number: this.statusInfo.success.number\n }\n };\n this.evaluateImportStatusMessage();\n };\n\n private evaluateCheckAllValue = (): boolean => {\n let checked = true;\n const allAreChecked =\n this.objectsInFileTotalNodes === this.checkedObjectsIds.length;\n const conditionToUncheck =\n this.objectsTreeState.length === 0 || !allAreChecked;\n if (conditionToUncheck) {\n checked = false;\n }\n return checked;\n };\n\n private fileClearedHandler = () => {\n this.selectedFile = null;\n };\n\n /**\n * @description Filters the imported items based on the state of the status checkboxes (error, warning, success).\n */\n private filterImportedHandler = () => {\n const filteredItems: string[] = [];\n this.importTreeState.forEach(item => {\n const items = item.items;\n items.forEach(child => {\n if (\n this.statusInfo.error.display &&\n this.statusInfo.warning.display &&\n this.statusInfo.success.display\n ) {\n // all are checked, return all\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n } else if (\n this.statusInfo.error.display &&\n this.statusInfo.warning.display &&\n !this.statusInfo.success.display\n ) {\n // return error and warning only;\n const foundSuccess = this.successItemsIds.find(\n successItemId => successItemId === child.id\n );\n if (!foundSuccess) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n this.statusInfo.error.display &&\n !this.statusInfo.warning.display &&\n this.statusInfo.success.display\n ) {\n // return error and success only\n const foundWarning = this.warningItemsIds.find(\n warningItemId => warningItemId === child.id\n );\n if (!foundWarning) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n this.statusInfo.error.display &&\n !this.statusInfo.warning.display &&\n !this.statusInfo.success.display\n ) {\n // return error only\n const foundError = this.errorItemsIds.find(\n errorItemId => errorItemId === child.id\n );\n if (foundError) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n !this.statusInfo.error.display &&\n this.statusInfo.warning.display &&\n this.statusInfo.success.display\n ) {\n // return warning and success\n const foundError = this.errorItemsIds.find(\n errorItemId => errorItemId === child.id\n );\n if (!foundError) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n !this.statusInfo.error.display &&\n this.statusInfo.warning.display &&\n !this.statusInfo.success.display\n ) {\n // return warning only\n const foundWarning = this.warningItemsIds.find(\n warningItemId => warningItemId === child.id\n );\n if (foundWarning) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n } else if (\n !this.statusInfo.error.display &&\n !this.statusInfo.warning.display &&\n this.statusInfo.success.display\n ) {\n // return success only\n const foundSuccess = this.successItemsIds.find(\n successItemId => successItemId === child.id\n );\n if (foundSuccess) {\n filteredItems.push(child.id);\n child.items.forEach(mesageItem => {\n filteredItems.push(mesageItem.id);\n });\n }\n }\n // else do nothing. Al status checkboxes are unchecked.\n });\n });\n return filteredItems;\n };\n\n // 10.RENDER() FUNCTION //\n\n render(): void {\n return (\n <Host class=\"gx-ide-component\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div class=\"gx-ide-main-wrapper\">\n <gx-ide-container\n noContentPadding\n noFooterPadding\n containerTitle={\n this.displayTitle ? this._componentLocale.componentName : null\n }\n >\n {/* header */}\n <header class=\"header\" slot=\"header\">\n {/* select a file */}\n <gxg-form-text\n type=\"file\"\n class=\"select-file\"\n label={this._componentLocale.header.fileNameLabel}\n placeholder={this._componentLocale.header.fileNamePlaceholder}\n part=\"file-name\"\n acceptFile=\".xpz, .xml\"\n clearButton\n iconPosition=\"start\"\n onFileSelected={this.fileSelectedHandler}\n onClearButtonClicked={this.fileClearedHandler}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.fileInputEl = el as HTMLGxgFormTextElement)\n }\n ></gxg-form-text>\n {/* select file button / load button*/}\n <gxg-button\n type=\"primary-text-icon\"\n icon=\"gemini-tools/file\"\n part=\"select-file-load-button\"\n onClick={this.selectFileAndLoadHandler}\n disabled={this.importingIsInProcess}\n >\n {this._componentLocale.header.selectFileButton}\n </gxg-button>\n </header>\n <main class=\"main\">\n {/* main */}\n {/* objects in file*/}\n <div class=\"container-wrapper\">\n {/* top state bar*/}\n {this.topStateBar ? (\n <gxg-top-state-bar\n class=\"top-state-bar\"\n part=\"top-state-bar\"\n caption={this._componentLocale.loader.title}\n ref={el =>\n (this.topStateBarEl = el as HTMLGxgTopStateBarElement)\n }\n ></gxg-top-state-bar>\n ) : null}\n <gx-ide-container\n containerTitle={\n this._componentLocale.main.objectsInFile.title\n }\n noContentPadding\n noBorderFooter\n class=\"left-container\"\n slimmerFooter\n inactiveTitle={this.noObjects}\n titleType=\"secondary\"\n >\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--objects-in-file\": true,\n \"tree-container--empty\": this.noObjects\n }}\n >\n {!this.noObjects ? (\n <ch-tree-view-render\n showLines=\"last\"\n class=\"tree-view\"\n model={this.objectsTreeState}\n dragDisabled={true}\n dropDisabled={true}\n toggleCheckboxes={true}\n checkbox={true}\n checked={true}\n onCheckedItemsChange={\n this.objectsTreeCheckedItemsChangedHandler\n }\n onSelectedItemsChange={\n this.objectsTreeSelectedItemsChangedHandler\n }\n onItemContextmenu={this.objectsTreeContextMenuHandler}\n ref={el =>\n (this.objectsTreeEl =\n el as HTMLChTreeViewRenderElement)\n }\n ></ch-tree-view-render>\n ) : (\n <div class=\"gx-ide-message\">\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"objects-in-file-empty-status-message\"\n >\n {this._componentLocale.main.objectsInFile.noObjects}\n <gxg-text\n type=\"text-link-no-line\"\n onClick={this.selectFileAndLoadHandler}\n >\n {\n this._componentLocale.main.objectsInFile\n .selectFile\n }\n </gxg-text>\n </gxg-text>\n </div>\n )}\n </div>\n {/* select all / unselect all checkbox*/}\n <gxg-form-checkbox\n label={\n this._componentLocale.main.objectsInFile.selectUnselect\n }\n part=\"select-all-checkbox\"\n slot=\"footer-start\"\n disabled={\n this.importingIsInProcess ||\n this.objectsTreeState.length === 0\n }\n checked={this.evaluateCheckAllValue()}\n onClick={this.toggleSelectionClickHandler}\n ref={(el: HTMLGxgFormCheckboxElement) =>\n (this.toggleObjectsCheckboxEl =\n el as HTMLGxgFormCheckboxElement)\n }\n ></gxg-form-checkbox>\n {/* import button / cancel button*/}\n <gxg-buttons-container\n reduced\n slot=\"footer-end\"\n ref={(el: HTMLGxgButtonsContainerElement) =>\n (this.objectsButtonsGroup =\n el as HTMLGxgButtonsContainerElement)\n }\n >\n {/* import objects button*/}\n <gxg-button\n id=\"import-btn\"\n part=\"import-button\"\n disabled={\n this.objectsTreeState?.length === 0 ||\n this.importingIsInProcess\n }\n onClick={this.importObjectsHandler}\n selected\n >\n {this._componentLocale.main.objectsInFile.importButton}\n </gxg-button>\n\n {/* cancel-import button*/}\n <gxg-button\n id=\"cancel-import-btn\"\n part=\"cancel-import-button\"\n disabled={!this.importingIsInProcess}\n onClick={this.cancelImportHandler}\n >\n {this._componentLocale.main.objectsInFile.cancelButton}\n </gxg-button>\n </gxg-buttons-container>\n {/* settings/options button*/}\n <gxg-button\n type=\"secondary-icon-only\"\n icon=\"gemini-tools/settings\"\n slot=\"footer-end\"\n part=\"select-kb-btn\"\n onClick={this.optionsHandler}\n >\n {this._componentLocale.header.optionsButton}\n </gxg-button>\n </gx-ide-container>\n {/* import status */}\n <gx-ide-container\n class=\"right-container\"\n containerTitle={this._componentLocale.main.importStatus.title}\n noContentPadding\n noBorderFooter\n slimmerFooter\n inactiveTitle={this.noImport}\n titleType=\"secondary\"\n >\n <div\n class={{\n \"tree-container\": true,\n \"tree-container--import-status\": true,\n \"tree-container--empty\":\n this.noImport || !this.someStatusVisible,\n \"tree-container--no-warnings\":\n !this.statusInfo.warning.display,\n \"tree-container--no-errors\":\n !this.statusInfo.error.display,\n \"tree-container--no-succeeded\":\n !this.statusInfo.success.display\n }}\n >\n {!this.noImport && this.someStatusVisible ? (\n <ch-tree-view-render\n model={this.importTreeState}\n toggleCheckboxes={true}\n showLines=\"last\"\n class=\"tree-view\"\n filterType=\"list\"\n filterList={this.filterImportedHandler()}\n ></ch-tree-view-render>\n ) : (\n <gxg-text\n textAlign={\n config.gxgMessage.common.textAlign as TextAlign\n }\n padding={\n config.gxgMessage.common.textAlign as TextPadding\n }\n type={config.gxgMessage.common.type as TextType}\n maxWidth={config.gxgMessage.common.maxWidth}\n part=\"objects-in-file-empty-status-message\"\n class=\"gx-ide-message\"\n >\n {this.importStatusMessage}\n </gxg-text>\n )}\n </div>\n {/* clear status button */}\n <gxg-button\n type=\"secondary-text-only\"\n slot=\"footer-end\"\n part=\"select-kb-btn\"\n onClick={this.clearStatusHandler}\n disabled={this.noImport || this.importingIsInProcess}\n >\n {this._componentLocale.main.importStatus.clearButton}\n </gxg-button>\n {/* ghost element (used to force the container footer heights the same as the \"objects in file\" container tree)*/}\n <span class=\"ghost-element\" slot=\"footer-start\"></span>\n </gx-ide-container>\n </div>\n </main>\n {/* footer */}\n <footer slot=\"footer-start\">\n <gx-ide-status-buttons\n errors={this.statusInfo.error.number}\n warnings={this.statusInfo.warning.number}\n successes={this.statusInfo.success.number}\n hideMessage\n compact\n minimal={this.statusMinimal}\n onSelectionChanged={this.statusButtonsSelectionChangedHandler}\n ></gx-ide-status-buttons>\n </footer>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\n\nexport type LoadCallback = (file: File) => Promise<ImportCategoryData[]>;\n\nexport type ImportCallback = (itemIds: string[]) => Promise<boolean>;\n\nexport type CancelCallback = () => Promise<boolean>;\n\nexport type OptionsCallback = () => Promise<void>;\nexport interface SelectedObject {\n itemId: string;\n subItemsIds: string[];\n}\n\nexport type ImportItemData = {\n id: string;\n name: string;\n};\n\ntype StatusInfo = {\n error: {\n display: boolean;\n number: number;\n };\n warning: {\n display: boolean;\n number: number;\n };\n success: {\n display: boolean;\n number: number;\n };\n};\n\nexport type ObjectContextMenuCallback = (\n tree: ObjectsSourceType,\n contextMenuInfo: ContextMenuInfo\n) => Promise<void>;\n\nexport type ObjectsSourceType = \"in-file\" | \"imported\";\n\nexport type StatusItemsState = {\n error: string[];\n warning: string[];\n success: string[];\n};\n"],"version":3}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-b87e3ee0.js');
|
|
6
6
|
|
|
7
|
-
const listSelectorCss = ":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)}.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)}*,::after,::before{box-sizing:border-box}:host{display:flex;flex-direction:column;max-height:100%;font-family:var(--mer-font-family--primary)}gxg-title{display:block;margin-block-end:var(--gxg-label-margin-vertical)}.list{background-color:unset;border:none;color:inherit;font:inherit;margin:0;padding:0;outline:0;list-style-type:none;margin:0;padding:0;color:var(--gx-ide-component-text-color);background-color:var(--gx-ide-component-background-color);font-size:var(--gx-ide-component-text-size);font-weight:var(--mer-font__weight--regular);display:block;background-color:var(--mer-color__surface);max-height:100%;overflow-y:auto;border:1px solid var(--gx-ide-container-border-color);border-radius:var(--ds-form-control-border-radius)}.list::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.list::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.list::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.list::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.list::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host([no-list-border]) .list{border:none}";
|
|
7
|
+
const listSelectorCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-01--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-01-font-weight);font-size:var(--ds-title-01-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-02{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-02--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-02-font-weight);font-size:var(--ds-title-02-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--color-on-primary)}.gxg-title-03{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-03--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-03-font-weight);font-size:var(--ds-title-03-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;text-transform:uppercase;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-04{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-04--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-04-font-weight);font-size:var(--ds-title-04-font-size);letter-spacing:var(--ds-base-font-letter-spacing--comfortable);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-title-05{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable)}.gxg-title-05--negative{font-family:var(--ds-base-font-family-primary);font-weight:var(--ds-title-05-font-weight);font-size:var(--ds-title-05-font-size);letter-spacing:var(--ds-base-font-letter-spacing--regular);color:var(--ds-base-font-color);text-align:start;line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable)}.gxg-text--negative{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--negative)}.gxg-text--gray{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--dimmed)}.gxg-quote{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);font-style:italic}.gxg-quote--negative{color:var(--ds-base-font-color--negative)}.gxg-link{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--ds-base-font-color--link-hover)}.gxg-link:active{color:var(--ds-base-font-color--link-active)}.gxg-link-gray{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed)}.gxg-link-gray:hover{line-height:unset;font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--link);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--ds-base-font-color--dimmed);filter:brightness(1.4)}.gxg-alert-error{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--error);display:inline-block}.gxg-alert-warning{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--warning);display:inline-block}.gxg-alert-success{font-family:var(--ds-base-font-family-primary);font-size:var(--ds-base-font-size);color:var(--ds-base-font-size-color);font-weight:var(--ds-base-font-size-weight);line-height:var(--ds-base-font-line-height--comfortable);color:var(--ds-base-font-color--success);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--ds-base-font-family-primary);font-weight:var(--gxg-label-font-weight);font-size:var(--gxg-label-font-size);color:var(--gxg-label-color);text-align:center;line-height:1.455em;display:flex;align-items:center}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gxg-scrollbar::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host{display:grid;block-size:100%}.card-regular{background-color:var(--mer-surface__elevation--01);border:var(--mer-border__width--sm) solid var(--mer-border-color__on-elevation--01);border-radius:var(--mer-border__radius--md);padding:var(--mer-spacing--md) var(--mer-spacing--md);display:grid}.card-small{background-color:var(--mer-surface__elevation--02);border-radius:var(--mer-border__radius--sm);padding:var(--mer-spacing--sm) var(--mer-spacing--sm)}.card-small--actionable:hover{background-color:var(--mer-color__neutral-gray--600)}.card-small--actionable:active{background-color:var(--mer-color__neutral-gray--650)}.card-small:focus-visible{outline:var(--focus__outline-width) var(--focus__outline-style) var(--focus__outline-color);outline-offset:var(--focus__outline-offset)}.empty-state{block-size:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--mer-spacing--sm);text-align:center}.empty-state__title,.empty-state__button,.empty-state__link{max-inline-size:300px}.opacity-0{opacity:0}.opacity-1{opacity:1}.display-contents{display:contents}.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.overflow-auto{overflow:auto}.justify-start{display:flex;justify-content:start}.justify-center{display:flex;justify-content:center}.justify-end{display:flex;justify-content:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--mer-color__neutral-gray--800)}ch-grid-column:first-child{padding-inline-start:var(--gx-ide-container__padding) !important}ch-grid-column:last-child{padding-inline-end:var(--gx-ide-container__padding) !important}ch-grid-cell{--mer-spacing--xs:var(--gx-ide-container__padding)}.layout{display:grid;gap:var(--mer-spacing--lg);box-sizing:border-box}.layout--two-cols{grid-template-columns:1fr 1fr}.layout--space-above{padding-block-start:var(--mer-spacing--lg)}gxg-tabs{box-shadow:none}:host(.gx-ide-component){height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--mer-font__weight--regular);font-size:var(--mer-font__size--xs);font-family:var(--mer-font-family--primary);height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1;box-sizing:border-box}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-main::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-main::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-main::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.gx-ide-overflow::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}.tree-view-primary{font-size:var(--mer-font__size--2xs)}p{margin:0;font-size:var(--mer-font__size--xxs)}.buttons-container{display:flex;gap:var(--mer-spacing--xs)}*,::after,::before{box-sizing:border-box}:host{display:flex;flex-direction:column;max-height:100%;font-family:var(--mer-font-family--primary)}gxg-title{display:block;margin-block-end:var(--gxg-label-margin-vertical)}.list{background-color:unset;border:none;color:inherit;font:inherit;margin:0;padding:0;outline:0;list-style-type:none;margin:0;padding:0;color:var(--gx-ide-component-text-color);background-color:var(--gx-ide-component-background-color);font-size:var(--gx-ide-component-text-size);font-weight:var(--mer-font__weight--regular);display:block;background-color:var(--mer-color__surface);max-height:100%;overflow-y:auto;border:1px solid var(--gx-ide-container-border-color);border-radius:var(--ds-form-control-border-radius)}.list::-webkit-scrollbar{width:var(--gxg-scrollbar-width);height:var(--gxg-scrollbar-width)}.list::-webkit-scrollbar-track{background-color:var(--gxg-scrollbar-track-background);border-radius:var(--gxg-scrollbar-track-border-radius)}.list::-webkit-scrollbar-thumb{background-color:var(--gxg-scrollbar-track-thumb-background);border-radius:var(--gxg-scrollbar-track-thumb-radius)}.list::-webkit-scrollbar-thumb:hover{background-color:var(--gxg-scrollbar-track-thumb-hover-background)}.list::-webkit-scrollbar-corner{background:rgba(0, 0, 0, 0)}:host([no-list-border]) .list{border:none}";
|
|
8
8
|
|
|
9
9
|
const GxIdeListSelector = class {
|
|
10
10
|
constructor(hostRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-list-selector.gx-ide-list-selector-item.entry.cjs.js","mappings":"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","names":["h","Host"],"sources":["src/components/_helpers/list-selector/list-selector.scss?tag=gx-ide-list-selector&encapsulation=shadow","src/components/_helpers/list-selector/list-selector.tsx","src/components/_helpers/list-selector/list-selector-item/list-selector-item.scss?tag=gx-ide-list-selector-item","src/components/_helpers/list-selector/list-selector-item/list-selector-item.tsx"],"sourcesContent":["@import \"../../../global/reset.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/gx-ide-common.scss\";\n@include box-sizing;\n\n:host {\n display: flex;\n flex-direction: column;\n max-height: 100%;\n font-family: var(--mer-font-family--primary);\n}\ngxg-title {\n display: block;\n margin-block-end: var(--gxg-label-margin-vertical);\n}\n.list {\n @include reset-defaults;\n @include reset-list;\n @include base-component-styles;\n @include gxg-scrollbar;\n display: block;\n background-color: var(--mer-color__surface);\n max-height: 100%;\n overflow-y: auto;\n border: 1px solid var(--gx-ide-container-border-color);\n border-radius: var(--ds-form-control-border-radius);\n}\n/*no border*/\n:host([no-list-border]) {\n .list {\n border: none;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Listen,\n // Watch,\n Element,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color, Size } from \"@genexus/gemini/dist/types/components/icon/icon\";\n/* CUSTOM IMPORTS */\nimport { ItemData } from \"./list-selector-item/list-selector-item\";\n\n@Component({\n tag: \"gx-ide-list-selector\",\n styleUrl: \"list-selector.scss\",\n shadow: true\n})\nexport class GxIdeListSelector {\n // 1.OWN PROPERTIES | WATCH'S //\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeListSelectorElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * The list title (optional)\n */\n @Prop() readonly listTitle: string;\n\n /**\n * It determines if the list is ordered, or unordered\n */\n @Prop() readonly ordered: boolean = false;\n\n /**\n * Makes the list readonly\n */\n @Prop() readonly readonly: boolean = false;\n\n /**\n * It determines the type of list: single-selection or multi-selection\n */\n @Prop() readonly type: \"single-selection\" | \"multi-selection\" =\n \"single-selection\";\n\n /**\n * Makes the list required\n */\n @Prop() readonly required: boolean = false;\n\n /**\n * The presence of this property will force all the items to not-wrap, and have ellipsis\n */\n @Prop() readonly ellipsis: boolean = false;\n\n /**\n * The value of the initial (or initials) checked list-item/s\n */\n @Prop({ mutable: true }) value: string | string[];\n\n /**\n * Icons color\n */\n @Prop() readonly iconsColor: Color = \"auto\";\n\n /**\n * Icons size\n */\n @Prop() readonly iconsSize: Size = \"small\";\n\n // @Watch(\"value\")\n // valueHandler(newValue: string) {\n // const foundItem = this.getItemByValue(newValue);\n // if (foundItem) {\n // const input = foundItem.querySelector(\"input\");\n // input.checked = true;\n // }\n // }\n\n /**\n * The name of this list. This is a required attribute for the list to work.\n */\n @Prop() readonly listName!: string;\n\n /**\n * Disables the items border\n */\n @Prop() readonly noItemsBorder: boolean = false;\n\n /**\n * Disables the list border\n */\n @Prop({ reflect: true }) readonly noListBorder: boolean = false;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * Emits the actual selection\n */\n @Event() selectionChanged: EventEmitter<CheckedItemsInfo>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n componentWillLoad() {\n this.evaluateChecked();\n this.evaluateInitialValue();\n }\n\n // 7.LISTENERS //\n\n @Listen(\"itemSelectionChanged\", { capture: true })\n itemSelectionChangedHandler(event: CustomEvent<ItemData>) {\n event.stopPropagation();\n const selectedItem = event.detail;\n if (this.type === \"single-selection\") {\n this.clearPrevSelected(selectedItem);\n }\n const checkedItemsInfo: CheckedItemsInfo = [];\n const checkedItems: HTMLGxIdeListSelectorItemElement[] = this.getChecked();\n const newValue: string | string[] = [];\n checkedItems.forEach(item => {\n const value = item.itemValue;\n newValue.push(value);\n checkedItemsInfo.push({\n itemId: item.itemId,\n itemValue: value,\n itemIcon: item.icon,\n itemChecked: true\n });\n });\n /* update this.value*/\n if (this.type === \"single-selection\" && newValue.length > 0) {\n this.value = newValue[0] || undefined;\n } else {\n /* multi-selection*/\n this.value = newValue;\n }\n /* emit selectionChanged*/\n this.selectionChanged.emit(checkedItemsInfo);\n }\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n /**\n * It evaluates the checked items, and checks or unchecks if needed\n */\n private evaluateChecked = () => {\n const allListItems = Array.from(\n this.el.querySelectorAll(\"gx-ide-list-selector-item\")\n );\n const checkedItems = allListItems.filter(item => item.itemChecked);\n /**\n * INDEX\n * 1.required and no one checked\n * 2.single-selection, and more than one checked\n */\n\n /* 1.required and no one checked*/\n if (this.required && checkedItems.length === 0) {\n allListItems[0].itemChecked = true;\n } else if (this.type === \"single-selection\" && checkedItems.length > 1) {\n /* 2.single-selection, and more than one checked*/\n checkedItems.forEach((item, i) => {\n if (i !== 0) {\n item.itemChecked = false;\n }\n });\n }\n };\n\n /**\n * It evaluates the initial value/s\n */\n private evaluateInitialValue = () => {\n const checkedItems = this.getChecked();\n if (this.type === \"single-selection\" && checkedItems.length > 0) {\n this.value = checkedItems[0].itemValue;\n } else if (this.type === \"multi-selection\" && checkedItems.length > 0) {\n const values: string[] = [];\n checkedItems.forEach(checked => {\n values.push(checked.itemValue);\n });\n this.value = values;\n }\n };\n\n private getChecked = (): HTMLGxIdeListSelectorItemElement[] => {\n const checkedItems: HTMLGxIdeListSelectorItemElement[] = [];\n const allItems = this.el.querySelectorAll(\"gx-ide-list-selector-item\");\n allItems.forEach(item => {\n if (item.itemChecked) {\n checkedItems.push(item);\n }\n });\n return checkedItems;\n };\n\n private clearPrevSelected = (currentSelected: ItemData) => {\n const allItems = this.el.querySelectorAll(\"gx-ide-list-selector-item\");\n allItems.forEach(item => {\n if (item.itemChecked && item.itemId !== currentSelected.itemId) {\n item.itemChecked = false;\n }\n });\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host exportparts=\"input:input\">\n {this.listTitle ? (\n <gxg-title type=\"title-04\">{this.listTitle}</gxg-title>\n ) : null}\n {this.ordered ? (\n <ol class=\"list\" part=\"list\">\n <slot></slot>\n </ol>\n ) : (\n <ul class=\"list\" part=\"list\">\n <slot></slot>\n </ul>\n )}\n </Host>\n );\n }\n}\n\nexport type CheckedItemsInfo = ItemData[];\n","@import \"../../../../global/gx-ide-mixins.scss\";\n@import \"../../../../../node_modules/@genexus/gemini/dist/collection/globals/mixins.scss\";\n@include box-sizing;\n\ngx-ide-list-selector-item {\n display: block;\n max-width: 100%;\n display: flex;\n font-size: inherit;\n\n &:hover {\n .label {\n background-color: var(--ds-item-background-color--hover);\n cursor: pointer;\n }\n input:checked + .label {\n background-color: inherit;\n }\n }\n}\ngx-ide-list-selector-item:not(:first-child) {\n border-block-start: var(--gx-ide-list-items-border);\n}\n/*change border color if checked*/\ngx-ide-list-selector-item:not(:first-child):has(input:checked) {\n border-block-color: var(--ds-item-border-color--selected);\n}\n/*readonly*/\ngx-ide-list-selector-item[readonly]:not([readonly=\"false\"]) {\n .label {\n pointer-events: none;\n background-color: transparent;\n }\n}\n/*ellipsis*/\ngx-ide-list-selector-item[ellipsis]:not([ellipsis=\"false\"]) {\n .label {\n &__description {\n @include elipsis;\n }\n }\n}\n\ngx-ide-list-selector-item input {\n width: 0;\n height: 0;\n opacity: 0;\n margin: 0;\n\n &:focus + .label {\n @include form-element-common-styles-focus-type-1();\n outline-offset: var(--gxg-tree-view-item__outline-offset--active);\n }\n &:checked + .label {\n background-color: inherit;\n color: var(--gxg-grid-row-cell__color--selected);\n }\n}\n\n/*label-wrapper*/\ngx-ide-list-selector-item .label {\n width: 100%;\n}\n/*label*/\ngx-ide-list-selector-item .label {\n &__index {\n }\n &__wrapper {\n display: flex;\n min-height: 28px; /*this prevents height difference between items that have icons and items that do not*/\n align-items: center;\n gap: var(--mer-spacing--xs);\n padding: var(--mer-spacing--2xs) var(--mer-spacing--xs);\n width: 100%;\n }\n &__description {\n flex: 1;\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n }\n}\n\n/*no border*/\ngx-ide-list-selector-item[no-border] {\n border-block-start: none;\n}\n\n/*universal slot*/\ngx-ide-list-selector-item .label__universal-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color, Size } from \"@genexus/gemini/dist/types/components/icon/icon\";\n/* CUSTOM IMPORTS */\n@Component({\n tag: \"gx-ide-list-selector-item\",\n styleUrl: \"list-selector-item.scss\",\n shadow: false\n})\nexport class GxIdeListSelectorItem {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES | WATCH'S //\n\n private parentIsListSelector: boolean;\n private parentList: HTMLGxIdeListSelectorElement;\n private checked: boolean;\n private name: string;\n private type: string;\n private hasUniversalSlot = false;\n private index: string = undefined;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeListSelectorItemElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * The item id\n */\n @Prop({ reflect: true }) readonly itemId!: string;\n\n /**\n * The item value, that acts as a label as well\n */\n @Prop() readonly itemValue!: string;\n\n /**\n * This will set the input as checked\n */\n @Prop({ mutable: true }) itemChecked = false;\n\n /**\n * It allows to select the item by clicking on it. It will emit the item-id\n */\n @Prop({ mutable: true, reflect: true }) readonly: boolean;\n\n /**\n * The presence of this property will force the item text to not-wrap, and have ellipsis\n */\n @Prop({ mutable: true, reflect: true }) ellipsis: boolean;\n\n /**\n * The gemini icon name\n */\n @Prop() readonly icon: string;\n\n /**\n * The gemini icon color. If no one provided, it will inherit the value from the list-selector\n */\n @Prop({ mutable: true }) iconColor: Color;\n\n /**\n * The gemini icon size. Inherited from the parent.\n */\n @Prop({ mutable: true }) iconSize: Size;\n\n /**\n * Disables the item border\n */\n @Prop({ mutable: true, reflect: true }) noBorder = false;\n\n /**\n * Displays the universal slot at the end, instead of at the benign\n */\n @Prop({ reflect: true }) readonly universalSlotEnd = false;\n\n // 5.EVENTS (EMIT) //\n\n componentWillLoad() {\n this.evaluateParentIsListSelector();\n this.evaluateType();\n this.evaluateSelectable();\n this.evaluateEllipsis();\n this.evaluateChecked();\n this.evaluateIconColor();\n this.evaluateIconSize();\n this.evaluateBorder();\n this.evaluateUniversalSlot();\n this.assignName();\n this.evaluateOrderedList();\n }\n\n /**\n * Emits the item data\n */\n @Event() itemSelectionChanged: EventEmitter<ItemData>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n /**\n * Checks if this item parentElement is a gx-ide-list-selector, and assigns a reference\n */\n private evaluateParentIsListSelector = () => {\n const parentList = this.el.parentElement as HTMLGxIdeListSelectorElement;\n this.parentIsListSelector = parentList?.nodeName === \"GX-IDE-LIST-SELECTOR\";\n this.parentIsListSelector && (this.parentList = parentList);\n };\n\n /**\n * Determines the type of item, based on the parent list-selector 'type' property value\n */\n private evaluateType = () => {\n const parentList: HTMLGxIdeListSelectorElement = this.el\n .parentElement as HTMLGxIdeListSelectorElement;\n this.type = parentList.type === \"single-selection\" ? \"radio\" : \"checkbox\";\n };\n\n /**\n * Evaluates if is selectable, considering the parent list-selector 'selectable' property value, only if it is undefined on this item\n */\n private evaluateSelectable = () => {\n if (this.readonly === undefined && this.parentIsListSelector) {\n this.readonly = this.parentList.readonly;\n }\n };\n\n /**\n * Evaluates if text should truncate with ellipsis, considering the parent list-selector 'ellipsis' property value, only if it is undefined on this item\n */\n private evaluateEllipsis = () => {\n if (this.ellipsis === undefined && this.parentIsListSelector) {\n this.ellipsis = this.parentList.ellipsis;\n }\n };\n\n /**\n * Evaluates if this item should be initially checked, only if the parent list-selector listValue equals this item value.\n */\n private evaluateChecked = () => {\n if (\n this.checked === undefined &&\n this.parentIsListSelector &&\n this.parentList.value !== undefined &&\n this.parentList.value === this.itemValue\n ) {\n this.checked = true;\n }\n };\n\n private evaluateBorder = () => {\n if (this.parentIsListSelector) {\n this.noBorder = this.parentList.noItemsBorder;\n }\n };\n\n private evaluateUniversalSlot = () => {\n this.hasUniversalSlot = !!this.el.querySelector(\"[slot=universal]\");\n };\n\n /**\n * Gets the listName required value, that is needed for the list selection to properly work\n */\n private assignName = () => {\n this.parentIsListSelector &&\n this.parentList.listName &&\n (this.name = this.parentList.listName);\n };\n\n private evaluateOrderedList = () => {\n if (this.parentIsListSelector && this.parentList.ordered) {\n let index: number | string =\n Array.from(this.parentList.children).indexOf(this.el) + 1;\n if (index < 10) {\n // This will make descriptions to be nicely aligned, between one digit, and two digit indexes items.\n index = `0${index}`;\n } else {\n index = `${index}`;\n }\n this.index = index;\n }\n };\n\n private evaluateIconColor = () => {\n this.parentIsListSelector &&\n this.parentList.iconsColor &&\n this.iconColor === undefined &&\n (this.iconColor = this.parentList.iconsColor);\n };\n\n private evaluateIconSize = () => {\n this.parentIsListSelector &&\n this.parentList.iconsSize &&\n (this.iconSize = this.parentList.iconsSize);\n };\n\n private onChangeHandler = (e: Event) => {\n this.itemChecked = (e.target as HTMLInputElement).checked;\n this.itemSelectionChanged.emit({\n itemId: this.itemId,\n itemValue: this.itemValue,\n itemIcon: this.icon,\n itemChecked: this.itemChecked\n });\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host role=\"listitem\">\n <input\n type={this.type}\n id={this.itemId}\n name={this.name}\n value={this.itemValue}\n checked={this.itemChecked}\n onChange={this.onChangeHandler}\n disabled={this.readonly}\n part=\"input\"\n />\n <label class=\"label\" htmlFor={this.itemId} part=\"label\">\n <div class=\"label__wrapper\">\n {this.index ? (\n <span class=\"label__index\">{this.index}. </span>\n ) : null}\n {this.icon ? (\n <gxg-icon\n class=\"label__icon\"\n type={this.icon}\n size=\"small\"\n color={this.iconColor}\n part=\"icon\"\n ></gxg-icon>\n ) : null}\n {this.hasUniversalSlot ? (\n <span class=\"label__universal-slot\" part=\"universal-slot\">\n <slot name=\"universal\"></slot>\n </span>\n ) : null}\n <span class=\"label__description\" part=\"description\">\n {this.itemValue ? this.itemValue : <slot></slot>}\n </span>\n </div>\n </label>\n </Host>\n );\n }\n}\n\nexport type ItemData = {\n itemId: string;\n itemValue: string;\n itemIcon?: string;\n itemChecked: boolean;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-list-selector.gx-ide-list-selector-item.entry.cjs.js","mappings":"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","names":["h","Host"],"sources":["src/components/_helpers/list-selector/list-selector.scss?tag=gx-ide-list-selector&encapsulation=shadow","src/components/_helpers/list-selector/list-selector.tsx","src/components/_helpers/list-selector/list-selector-item/list-selector-item.scss?tag=gx-ide-list-selector-item","src/components/_helpers/list-selector/list-selector-item/list-selector-item.tsx"],"sourcesContent":["@import \"../../../global/reset.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n@import \"../../../global/gx-ide-common.scss\";\n@include box-sizing;\n\n:host {\n display: flex;\n flex-direction: column;\n max-height: 100%;\n font-family: var(--mer-font-family--primary);\n}\ngxg-title {\n display: block;\n margin-block-end: var(--gxg-label-margin-vertical);\n}\n.list {\n @include reset-defaults;\n @include reset-list;\n @include base-component-styles;\n @include gxg-scrollbar;\n display: block;\n background-color: var(--mer-color__surface);\n max-height: 100%;\n overflow-y: auto;\n border: 1px solid var(--gx-ide-container-border-color);\n border-radius: var(--ds-form-control-border-radius);\n}\n/*no border*/\n:host([no-list-border]) {\n .list {\n border: none;\n }\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Listen,\n // Watch,\n Element,\n Event,\n EventEmitter\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color, Size } from \"@genexus/gemini/dist/types/components/icon/icon\";\n/* CUSTOM IMPORTS */\nimport { ItemData } from \"./list-selector-item/list-selector-item\";\n\n@Component({\n tag: \"gx-ide-list-selector\",\n styleUrl: \"list-selector.scss\",\n shadow: true\n})\nexport class GxIdeListSelector {\n // 1.OWN PROPERTIES | WATCH'S //\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeListSelectorElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * The list title (optional)\n */\n @Prop() readonly listTitle: string;\n\n /**\n * It determines if the list is ordered, or unordered\n */\n @Prop() readonly ordered: boolean = false;\n\n /**\n * Makes the list readonly\n */\n @Prop() readonly readonly: boolean = false;\n\n /**\n * It determines the type of list: single-selection or multi-selection\n */\n @Prop() readonly type: \"single-selection\" | \"multi-selection\" =\n \"single-selection\";\n\n /**\n * Makes the list required\n */\n @Prop() readonly required: boolean = false;\n\n /**\n * The presence of this property will force all the items to not-wrap, and have ellipsis\n */\n @Prop() readonly ellipsis: boolean = false;\n\n /**\n * The value of the initial (or initials) checked list-item/s\n */\n @Prop({ mutable: true }) value: string | string[];\n\n /**\n * Icons color\n */\n @Prop() readonly iconsColor: Color = \"auto\";\n\n /**\n * Icons size\n */\n @Prop() readonly iconsSize: Size = \"small\";\n\n // @Watch(\"value\")\n // valueHandler(newValue: string) {\n // const foundItem = this.getItemByValue(newValue);\n // if (foundItem) {\n // const input = foundItem.querySelector(\"input\");\n // input.checked = true;\n // }\n // }\n\n /**\n * The name of this list. This is a required attribute for the list to work.\n */\n @Prop() readonly listName!: string;\n\n /**\n * Disables the items border\n */\n @Prop() readonly noItemsBorder: boolean = false;\n\n /**\n * Disables the list border\n */\n @Prop({ reflect: true }) readonly noListBorder: boolean = false;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * Emits the actual selection\n */\n @Event() selectionChanged: EventEmitter<CheckedItemsInfo>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n componentWillLoad() {\n this.evaluateChecked();\n this.evaluateInitialValue();\n }\n\n // 7.LISTENERS //\n\n @Listen(\"itemSelectionChanged\", { capture: true })\n itemSelectionChangedHandler(event: CustomEvent<ItemData>) {\n event.stopPropagation();\n const selectedItem = event.detail;\n if (this.type === \"single-selection\") {\n this.clearPrevSelected(selectedItem);\n }\n const checkedItemsInfo: CheckedItemsInfo = [];\n const checkedItems: HTMLGxIdeListSelectorItemElement[] = this.getChecked();\n const newValue: string | string[] = [];\n checkedItems.forEach(item => {\n const value = item.itemValue;\n newValue.push(value);\n checkedItemsInfo.push({\n itemId: item.itemId,\n itemValue: value,\n itemIcon: item.icon,\n itemChecked: true\n });\n });\n /* update this.value*/\n if (this.type === \"single-selection\" && newValue.length > 0) {\n this.value = newValue[0] || undefined;\n } else {\n /* multi-selection*/\n this.value = newValue;\n }\n /* emit selectionChanged*/\n this.selectionChanged.emit(checkedItemsInfo);\n }\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n /**\n * It evaluates the checked items, and checks or unchecks if needed\n */\n private evaluateChecked = () => {\n const allListItems = Array.from(\n this.el.querySelectorAll(\"gx-ide-list-selector-item\")\n );\n const checkedItems = allListItems.filter(item => item.itemChecked);\n /**\n * INDEX\n * 1.required and no one checked\n * 2.single-selection, and more than one checked\n */\n\n /* 1.required and no one checked*/\n if (this.required && checkedItems.length === 0) {\n allListItems[0].itemChecked = true;\n } else if (this.type === \"single-selection\" && checkedItems.length > 1) {\n /* 2.single-selection, and more than one checked*/\n checkedItems.forEach((item, i) => {\n if (i !== 0) {\n item.itemChecked = false;\n }\n });\n }\n };\n\n /**\n * It evaluates the initial value/s\n */\n private evaluateInitialValue = () => {\n const checkedItems = this.getChecked();\n if (this.type === \"single-selection\" && checkedItems.length > 0) {\n this.value = checkedItems[0].itemValue;\n } else if (this.type === \"multi-selection\" && checkedItems.length > 0) {\n const values: string[] = [];\n checkedItems.forEach(checked => {\n values.push(checked.itemValue);\n });\n this.value = values;\n }\n };\n\n private getChecked = (): HTMLGxIdeListSelectorItemElement[] => {\n const checkedItems: HTMLGxIdeListSelectorItemElement[] = [];\n const allItems = this.el.querySelectorAll(\"gx-ide-list-selector-item\");\n allItems.forEach(item => {\n if (item.itemChecked) {\n checkedItems.push(item);\n }\n });\n return checkedItems;\n };\n\n private clearPrevSelected = (currentSelected: ItemData) => {\n const allItems = this.el.querySelectorAll(\"gx-ide-list-selector-item\");\n allItems.forEach(item => {\n if (item.itemChecked && item.itemId !== currentSelected.itemId) {\n item.itemChecked = false;\n }\n });\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host exportparts=\"input:input\">\n {this.listTitle ? (\n <gxg-title type=\"title-04\">{this.listTitle}</gxg-title>\n ) : null}\n {this.ordered ? (\n <ol class=\"list\" part=\"list\">\n <slot></slot>\n </ol>\n ) : (\n <ul class=\"list\" part=\"list\">\n <slot></slot>\n </ul>\n )}\n </Host>\n );\n }\n}\n\nexport type CheckedItemsInfo = ItemData[];\n","@import \"../../../../global/gx-ide-mixins.scss\";\n@import \"../../../../../node_modules/@genexus/gemini/dist/collection/globals/mixins.scss\";\n@include box-sizing;\n\ngx-ide-list-selector-item {\n display: block;\n max-width: 100%;\n display: flex;\n font-size: inherit;\n\n &:hover {\n .label {\n background-color: var(--ds-item-background-color--hover);\n cursor: pointer;\n }\n input:checked + .label {\n background-color: inherit;\n }\n }\n}\ngx-ide-list-selector-item:not(:first-child) {\n border-block-start: var(--gx-ide-list-items-border);\n}\n/*change border color if checked*/\ngx-ide-list-selector-item:not(:first-child):has(input:checked) {\n border-block-color: var(--ds-item-border-color--selected);\n}\n/*readonly*/\ngx-ide-list-selector-item[readonly]:not([readonly=\"false\"]) {\n .label {\n pointer-events: none;\n background-color: transparent;\n }\n}\n/*ellipsis*/\ngx-ide-list-selector-item[ellipsis]:not([ellipsis=\"false\"]) {\n .label {\n &__description {\n @include elipsis;\n }\n }\n}\n\ngx-ide-list-selector-item input {\n width: 0;\n height: 0;\n opacity: 0;\n margin: 0;\n\n &:focus + .label {\n @include form-element-common-styles-focus-type-1();\n outline-offset: var(--gxg-tree-view-item__outline-offset--active);\n }\n &:checked + .label {\n background-color: inherit;\n color: var(--gxg-grid-row-cell__color--selected);\n }\n}\n\n/*label-wrapper*/\ngx-ide-list-selector-item .label {\n width: 100%;\n}\n/*label*/\ngx-ide-list-selector-item .label {\n &__index {\n }\n &__wrapper {\n display: flex;\n min-height: 28px; /*this prevents height difference between items that have icons and items that do not*/\n align-items: center;\n gap: var(--mer-spacing--xs);\n padding: var(--mer-spacing--2xs) var(--mer-spacing--xs);\n width: 100%;\n }\n &__description {\n flex: 1;\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--xs);\n }\n}\n\n/*no border*/\ngx-ide-list-selector-item[no-border] {\n border-block-start: none;\n}\n\n/*universal slot*/\ngx-ide-list-selector-item .label__universal-slot {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Event,\n EventEmitter,\n Element\n} from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\nimport { Color, Size } from \"@genexus/gemini/dist/types/components/icon/icon\";\n/* CUSTOM IMPORTS */\n@Component({\n tag: \"gx-ide-list-selector-item\",\n styleUrl: \"list-selector-item.scss\",\n shadow: false\n})\nexport class GxIdeListSelectorItem {\n /*\nINDEX:\n1.OWN PROPERTIES \n2.REFERENCE TO ELEMENTS\n3.STATE() VARIABLES\n4.PUBLIC PROPERTY API | WATCH'S\n5.EVENTS (EMIT)\n6.COMPONENT LIFECYCLE METHODS\n7.LISTENERS\n8.PUBLIC METHODS API\n9.LOCAL METHODS\n10.RENDER() FUNCTION\n*/\n\n // 1.OWN PROPERTIES | WATCH'S //\n\n private parentIsListSelector: boolean;\n private parentList: HTMLGxIdeListSelectorElement;\n private checked: boolean;\n private name: string;\n private type: string;\n private hasUniversalSlot = false;\n private index: string = undefined;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeListSelectorItemElement;\n\n // 3.STATE() VARIABLES //\n\n // 4.PUBLIC PROPERTY API | WATCH'S //\n\n /**\n * The item id\n */\n @Prop({ reflect: true }) readonly itemId!: string;\n\n /**\n * The item value, that acts as a label as well\n */\n @Prop() readonly itemValue!: string;\n\n /**\n * This will set the input as checked\n */\n @Prop({ mutable: true }) itemChecked = false;\n\n /**\n * It allows to select the item by clicking on it. It will emit the item-id\n */\n @Prop({ mutable: true, reflect: true }) readonly: boolean;\n\n /**\n * The presence of this property will force the item text to not-wrap, and have ellipsis\n */\n @Prop({ mutable: true, reflect: true }) ellipsis: boolean;\n\n /**\n * The gemini icon name\n */\n @Prop() readonly icon: string;\n\n /**\n * The gemini icon color. If no one provided, it will inherit the value from the list-selector\n */\n @Prop({ mutable: true }) iconColor: Color;\n\n /**\n * The gemini icon size. Inherited from the parent.\n */\n @Prop({ mutable: true }) iconSize: Size;\n\n /**\n * Disables the item border\n */\n @Prop({ mutable: true, reflect: true }) noBorder = false;\n\n /**\n * Displays the universal slot at the end, instead of at the benign\n */\n @Prop({ reflect: true }) readonly universalSlotEnd = false;\n\n // 5.EVENTS (EMIT) //\n\n componentWillLoad() {\n this.evaluateParentIsListSelector();\n this.evaluateType();\n this.evaluateSelectable();\n this.evaluateEllipsis();\n this.evaluateChecked();\n this.evaluateIconColor();\n this.evaluateIconSize();\n this.evaluateBorder();\n this.evaluateUniversalSlot();\n this.assignName();\n this.evaluateOrderedList();\n }\n\n /**\n * Emits the item data\n */\n @Event() itemSelectionChanged: EventEmitter<ItemData>;\n\n // 6.COMPONENT LIFECYCLE METHODS //\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n /**\n * Checks if this item parentElement is a gx-ide-list-selector, and assigns a reference\n */\n private evaluateParentIsListSelector = () => {\n const parentList = this.el.parentElement as HTMLGxIdeListSelectorElement;\n this.parentIsListSelector = parentList?.nodeName === \"GX-IDE-LIST-SELECTOR\";\n this.parentIsListSelector && (this.parentList = parentList);\n };\n\n /**\n * Determines the type of item, based on the parent list-selector 'type' property value\n */\n private evaluateType = () => {\n const parentList: HTMLGxIdeListSelectorElement = this.el\n .parentElement as HTMLGxIdeListSelectorElement;\n this.type = parentList.type === \"single-selection\" ? \"radio\" : \"checkbox\";\n };\n\n /**\n * Evaluates if is selectable, considering the parent list-selector 'selectable' property value, only if it is undefined on this item\n */\n private evaluateSelectable = () => {\n if (this.readonly === undefined && this.parentIsListSelector) {\n this.readonly = this.parentList.readonly;\n }\n };\n\n /**\n * Evaluates if text should truncate with ellipsis, considering the parent list-selector 'ellipsis' property value, only if it is undefined on this item\n */\n private evaluateEllipsis = () => {\n if (this.ellipsis === undefined && this.parentIsListSelector) {\n this.ellipsis = this.parentList.ellipsis;\n }\n };\n\n /**\n * Evaluates if this item should be initially checked, only if the parent list-selector listValue equals this item value.\n */\n private evaluateChecked = () => {\n if (\n this.checked === undefined &&\n this.parentIsListSelector &&\n this.parentList.value !== undefined &&\n this.parentList.value === this.itemValue\n ) {\n this.checked = true;\n }\n };\n\n private evaluateBorder = () => {\n if (this.parentIsListSelector) {\n this.noBorder = this.parentList.noItemsBorder;\n }\n };\n\n private evaluateUniversalSlot = () => {\n this.hasUniversalSlot = !!this.el.querySelector(\"[slot=universal]\");\n };\n\n /**\n * Gets the listName required value, that is needed for the list selection to properly work\n */\n private assignName = () => {\n this.parentIsListSelector &&\n this.parentList.listName &&\n (this.name = this.parentList.listName);\n };\n\n private evaluateOrderedList = () => {\n if (this.parentIsListSelector && this.parentList.ordered) {\n let index: number | string =\n Array.from(this.parentList.children).indexOf(this.el) + 1;\n if (index < 10) {\n // This will make descriptions to be nicely aligned, between one digit, and two digit indexes items.\n index = `0${index}`;\n } else {\n index = `${index}`;\n }\n this.index = index;\n }\n };\n\n private evaluateIconColor = () => {\n this.parentIsListSelector &&\n this.parentList.iconsColor &&\n this.iconColor === undefined &&\n (this.iconColor = this.parentList.iconsColor);\n };\n\n private evaluateIconSize = () => {\n this.parentIsListSelector &&\n this.parentList.iconsSize &&\n (this.iconSize = this.parentList.iconsSize);\n };\n\n private onChangeHandler = (e: Event) => {\n this.itemChecked = (e.target as HTMLInputElement).checked;\n this.itemSelectionChanged.emit({\n itemId: this.itemId,\n itemValue: this.itemValue,\n itemIcon: this.icon,\n itemChecked: this.itemChecked\n });\n };\n\n // 10.RENDER() FUNCTION //\n\n render() {\n return (\n <Host role=\"listitem\">\n <input\n type={this.type}\n id={this.itemId}\n name={this.name}\n value={this.itemValue}\n checked={this.itemChecked}\n onChange={this.onChangeHandler}\n disabled={this.readonly}\n part=\"input\"\n />\n <label class=\"label\" htmlFor={this.itemId} part=\"label\">\n <div class=\"label__wrapper\">\n {this.index ? (\n <span class=\"label__index\">{this.index}. </span>\n ) : null}\n {this.icon ? (\n <gxg-icon\n class=\"label__icon\"\n type={this.icon}\n size=\"small\"\n color={this.iconColor}\n part=\"icon\"\n ></gxg-icon>\n ) : null}\n {this.hasUniversalSlot ? (\n <span class=\"label__universal-slot\" part=\"universal-slot\">\n <slot name=\"universal\"></slot>\n </span>\n ) : null}\n <span class=\"label__description\" part=\"description\">\n {this.itemValue ? this.itemValue : <slot></slot>}\n </span>\n </div>\n </label>\n </Host>\n );\n }\n}\n\nexport type ItemData = {\n itemId: string;\n itemValue: string;\n itemIcon?: string;\n itemChecked: boolean;\n};\n"],"version":3}
|