@genexus/genexus-ide-ui 1.1.58 → 1.1.59
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/{config-df6ba4e9.js → config-3bb95f39.js} +3 -2
- package/dist/cjs/config-3bb95f39.js.map +1 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-curl-inspector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-name-picker.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-version.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js +160 -75
- package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-test.cjs.entry.js +14 -65
- package/dist/cjs/gx-ide-test.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-files.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{tabular-grid-render-7cf3815d.js → tabular-grid-render-ce935a84.js} +2 -2
- package/dist/cjs/{tabular-grid-render-7cf3815d.js.map → tabular-grid-render-ce935a84.js.map} +1 -1
- package/dist/collection/common/config.js +2 -1
- package/dist/collection/common/config.js.map +1 -1
- package/dist/collection/components/_helpers/card/card.css +24 -0
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +24 -0
- package/dist/collection/components/_helpers/list-selector/list-selector.css +24 -0
- package/dist/collection/components/_test/test.css +610 -0
- package/dist/collection/components/_test/test.js +10 -64
- package/dist/collection/components/_test/test.js.map +1 -1
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +24 -0
- package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +24 -0
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +24 -0
- package/dist/collection/components/bpm/import-files/bpm-import-files.css +24 -0
- package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +24 -0
- package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +24 -0
- package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +24 -0
- package/dist/collection/components/deployment-tool/deployment-tool.css +24 -0
- package/dist/collection/components/file-uploader/file-uploader.css +24 -0
- package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +24 -0
- package/dist/collection/components/modules/edit-module-server/edit-module-server.css +24 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +24 -0
- package/dist/collection/components/references/references.css +24 -0
- package/dist/collection/components/team-dev/bring-changes/bring-changes.css +13 -13
- package/dist/collection/components/team-dev/history/history.css +13 -0
- package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +24 -0
- package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/langs/server-selector.lang.en.json +7 -0
- package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/langs/server-selector.lang.ja.json +7 -0
- package/dist/collection/components/team-dev/server-selector/gx-ide-assets/server-selector/langs/server-selector.lang.zh.json +7 -0
- package/dist/collection/components/team-dev/server-selector/server-selector.css +82 -18
- package/dist/collection/components/team-dev/server-selector/server-selector.js +229 -86
- package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
- package/dist/collection/components/team-dev/update/update.css +13 -0
- package/dist/collection/components/team-dev/version-control/commit/commit.css +13 -0
- package/dist/collection/components/wf-settings/wf-settings.css +24 -0
- package/dist/collection/components/ww-images/ww-images.css +24 -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 +2 -1
- package/dist/components/config.js.map +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js +1 -1
- package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
- package/dist/components/gx-ide-bpm-assign-roles.js +1 -1
- package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
- package/dist/components/gx-ide-bpm-export-xpdl.js +1 -1
- package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
- package/dist/components/gx-ide-bpm-import-files.js +1 -1
- package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
- package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
- package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
- package/dist/components/gx-ide-bpm-timer-duration.js +1 -1
- package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
- package/dist/components/gx-ide-card.js +1 -1
- package/dist/components/gx-ide-card.js.map +1 -1
- package/dist/components/gx-ide-deployment-tool.js +1 -1
- package/dist/components/gx-ide-deployment-tool.js.map +1 -1
- package/dist/components/gx-ide-edit-module-server.js +1 -1
- package/dist/components/gx-ide-edit-module-server.js.map +1 -1
- package/dist/components/gx-ide-empty-state2.js +1 -1
- package/dist/components/gx-ide-empty-state2.js.map +1 -1
- package/dist/components/gx-ide-file-uploader.js +1 -1
- package/dist/components/gx-ide-file-uploader.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-manage-module-references.js +1 -1
- package/dist/components/gx-ide-manage-module-references.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-server-selector.js +167 -78
- package/dist/components/gx-ide-server-selector.js.map +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
- package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +1 -1
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-history.js +1 -1
- package/dist/components/gx-ide-team-dev-history.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.js +1 -1
- package/dist/components/gx-ide-team-dev-update.js.map +1 -1
- package/dist/components/gx-ide-test.js +13 -65
- package/dist/components/gx-ide-test.js.map +1 -1
- package/dist/components/gx-ide-wf-settings.js +1 -1
- package/dist/components/gx-ide-wf-settings.js.map +1 -1
- package/dist/components/gx-ide-ww-images.js +1 -1
- package/dist/components/gx-ide-ww-images.js.map +1 -1
- package/dist/components/list-selector.js +1 -1
- package/dist/components/list-selector.js.map +1 -1
- package/dist/esm/{config-9eaeb14b.js → config-5a775b7a.js} +3 -2
- package/dist/esm/config-5a775b7a.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js +2 -2
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
- package/dist/esm/gx-ide-card.entry.js +1 -1
- package/dist/esm/gx-ide-card.entry.js.map +1 -1
- package/dist/esm/gx-ide-connect-gx-server.entry.js +1 -1
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -1
- package/dist/esm/gx-ide-curl-inspector.entry.js +1 -1
- package/dist/esm/gx-ide-data-selector.entry.js +1 -1
- package/dist/esm/gx-ide-deployment-tool.entry.js +1 -1
- package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
- package/dist/esm/gx-ide-design-import.entry.js +1 -1
- package/dist/esm/gx-ide-edit-module-server.entry.js +1 -1
- package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js +1 -1
- package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
- package/dist/esm/gx-ide-file-uploader.entry.js +1 -1
- package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.entry.js +1 -1
- package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
- package/dist/esm/gx-ide-json-import.entry.js +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
- package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-name-picker.entry.js +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-new-object.entry.js +1 -1
- package/dist/esm/gx-ide-new-version.entry.js +1 -1
- package/dist/esm/gx-ide-object-selector.entry.js +1 -1
- package/dist/esm/gx-ide-plugin-explorer.entry.js +1 -1
- package/dist/esm/gx-ide-references.entry.js +1 -1
- package/dist/esm/gx-ide-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-server-selector.entry.js +160 -75
- package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-share-kb.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +3 -3
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-history.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +3 -3
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/gx-ide-test.entry.js +14 -65
- package/dist/esm/gx-ide-test.entry.js.map +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js +2 -2
- package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
- package/dist/esm/gx-ide-ww-files.entry.js +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +2 -2
- package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{tabular-grid-render-11f0a55c.js → tabular-grid-render-137bd3dd.js} +2 -2
- package/dist/esm/{tabular-grid-render-11f0a55c.js.map → tabular-grid-render-137bd3dd.js.map} +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/server-selector/langs/server-selector.lang.en.json +7 -0
- package/dist/genexus-ide-ui/gx-ide-assets/server-selector/langs/server-selector.lang.ja.json +7 -0
- package/dist/genexus-ide-ui/gx-ide-assets/server-selector/langs/server-selector.lang.zh.json +7 -0
- package/dist/genexus-ide-ui/{p-bd280758.entry.js → p-086de552.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-61ce9a9f.entry.js → p-0910af1b.entry.js} +71 -71
- package/dist/genexus-ide-ui/{p-d0584c71.entry.js → p-1107bf84.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3673759a.entry.js → p-13ca0217.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-156fa688.entry.js +59 -0
- package/dist/genexus-ide-ui/p-156fa688.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3013895f.entry.js → p-1671c731.entry.js} +6 -6
- package/dist/genexus-ide-ui/{p-6a1431f7.entry.js → p-2c0f10bf.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-cc5feb47.entry.js → p-2d70b76d.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-fb66e72a.entry.js → p-2d989eb1.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ce9ca2dd.entry.js → p-300fcfa1.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-41e1c129.entry.js → p-349f1622.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-ea79f745.entry.js → p-408eac22.entry.js} +24 -24
- package/dist/genexus-ide-ui/{p-22814dfd.entry.js → p-4c9cddc5.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-f8967408.entry.js → p-5308144e.entry.js} +11 -11
- package/dist/genexus-ide-ui/{p-0bb54667.entry.js → p-57c318ba.entry.js} +9 -9
- package/dist/genexus-ide-ui/{p-d0c43abd.entry.js → p-5b8ef529.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-c2ac7757.entry.js → p-6d3a4648.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-86b9dc50.entry.js → p-6eb0d883.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-6e8c3be5.entry.js → p-74c46daf.entry.js} +33 -33
- package/dist/genexus-ide-ui/{p-2fabcb06.entry.js → p-7d779463.entry.js} +12 -12
- package/dist/genexus-ide-ui/{p-6749f088.entry.js → p-85cf50c5.entry.js} +3 -3
- package/dist/genexus-ide-ui/p-91497934.entry.js +542 -0
- package/dist/genexus-ide-ui/p-91497934.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-7f689bcf.entry.js → p-93e79d19.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-46c9eb6a.entry.js → p-94cb4746.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-52ee29d3.entry.js → p-95f8ff9f.entry.js} +4 -4
- package/dist/genexus-ide-ui/p-95f8ff9f.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-3f6709b6.entry.js → p-9adbe860.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-95736f92.entry.js → p-9ffa7afd.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-e00a8dfd.entry.js → p-a105f903.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-66c5217f.js → p-a4b820e5.js} +37 -37
- package/dist/genexus-ide-ui/{p-327f1020.entry.js → p-ad5f63da.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-369e9936.entry.js → p-b0d1b217.entry.js} +85 -85
- package/dist/genexus-ide-ui/{p-f89807b5.entry.js → p-b1bf5be8.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-11f37427.entry.js → p-b7ae21bd.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-9a03ac9f.js → p-c5196b3b.js} +3 -2
- package/dist/genexus-ide-ui/p-c5196b3b.js.map +1 -0
- package/dist/genexus-ide-ui/{p-c71e91f2.entry.js → p-d243ee33.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-c1196cb0.entry.js → p-d41d52f6.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-3942c139.entry.js → p-d71cf7d9.entry.js} +21 -21
- package/dist/genexus-ide-ui/{p-146f22d0.entry.js → p-d7c133da.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-0da40329.entry.js → p-e8e7f960.entry.js} +4 -4
- package/dist/genexus-ide-ui/{p-dcb0849a.entry.js → p-ecba7aa4.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-3265f4c1.entry.js → p-f03930f9.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-87c7e303.entry.js → p-f5734cc7.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-78b1aa91.entry.js → p-f9bde776.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-2a74c476.entry.js → p-fff8902d.entry.js} +192 -192
- package/dist/types/common/config.d.ts +1 -0
- package/dist/types/components/_test/test.d.ts +0 -1
- package/dist/types/components/team-dev/server-selector/server-selector.d.ts +19 -10
- package/dist/types/components.d.ts +32 -8
- package/package.json +1 -1
- package/dist/cjs/config-df6ba4e9.js.map +0 -1
- package/dist/esm/config-9eaeb14b.js.map +0 -1
- package/dist/genexus-ide-ui/p-0d2fb794.entry.js +0 -446
- package/dist/genexus-ide-ui/p-0d2fb794.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-3b808c6f.entry.js +0 -100
- package/dist/genexus-ide-ui/p-3b808c6f.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-52ee29d3.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-9a03ac9f.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-bd280758.entry.js.map → p-086de552.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-61ce9a9f.entry.js.map → p-0910af1b.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d0584c71.entry.js.map → p-1107bf84.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3673759a.entry.js.map → p-13ca0217.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3013895f.entry.js.map → p-1671c731.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6a1431f7.entry.js.map → p-2c0f10bf.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-cc5feb47.entry.js.map → p-2d70b76d.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-fb66e72a.entry.js.map → p-2d989eb1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ce9ca2dd.entry.js.map → p-300fcfa1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-41e1c129.entry.js.map → p-349f1622.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ea79f745.entry.js.map → p-408eac22.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-22814dfd.entry.js.map → p-4c9cddc5.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f8967408.entry.js.map → p-5308144e.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0bb54667.entry.js.map → p-57c318ba.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d0c43abd.entry.js.map → p-5b8ef529.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c2ac7757.entry.js.map → p-6d3a4648.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-86b9dc50.entry.js.map → p-6eb0d883.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6e8c3be5.entry.js.map → p-74c46daf.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2fabcb06.entry.js.map → p-7d779463.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6749f088.entry.js.map → p-85cf50c5.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7f689bcf.entry.js.map → p-93e79d19.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-46c9eb6a.entry.js.map → p-94cb4746.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3f6709b6.entry.js.map → p-9adbe860.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-95736f92.entry.js.map → p-9ffa7afd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-e00a8dfd.entry.js.map → p-a105f903.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-66c5217f.js.map → p-a4b820e5.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-327f1020.entry.js.map → p-ad5f63da.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-369e9936.entry.js.map → p-b0d1b217.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f89807b5.entry.js.map → p-b1bf5be8.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-11f37427.entry.js.map → p-b7ae21bd.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c71e91f2.entry.js.map → p-d243ee33.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-c1196cb0.entry.js.map → p-d41d52f6.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3942c139.entry.js.map → p-d71cf7d9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-146f22d0.entry.js.map → p-d7c133da.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0da40329.entry.js.map → p-e8e7f960.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-dcb0849a.entry.js.map → p-ecba7aa4.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-3265f4c1.entry.js.map → p-f03930f9.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-87c7e303.entry.js.map → p-f5734cc7.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-78b1aa91.entry.js.map → p-f9bde776.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2a74c476.entry.js.map → p-fff8902d.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-server-selector.js","mappings":"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","names":["GxIdeServerSelector"],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n overflow: auto;\n border-inline: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// Recently Used\n\n.tabular-grid-recently-used .tabular-grid-column::part(bar) {\n --grid-cell__padding-block: 0;\n --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.tabular-grid-recently-used {\n border-block-end: 1px solid var(--grid-cell__border-color);\n max-block-size: 100px;\n}\n\n// All Servers\n\n.tabular-grid-all-servers {\n overflow: auto;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n.tabular-grid-all-servers {\n border-block: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n\n// WA: .tabular-grid-wrapper and .border-patch is a WA. See details on Asana task:\n// https://app.asana.com/1/10206720691358/project/1207081021030105/task/1211391456974726?focus=true\n.tabular-grid-wrapper {\n position: relative;\n overflow: auto;\n}\n.border-patch {\n --tabular-grid-border-radius: 4px;\n position: absolute;\n top: 0;\n inline-size: calc(100% - var(--tabular-grid-border-radius) * 2);\n inset-inline-start: var(--tabular-grid-border-radius);\n block-size: 2px;\n background-color: var(--items-container__bg-color);\n z-index: 9999;\n border-block-start: 1px solid var(--mer-border-color__on-surface);\n}\n\n.tooltip {\n position: absolute;\n}\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n clearControlError,\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nimport sortTabularGridColumn from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #chSearchIcon = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n });\n\n #versionsSelect: RadioGroupItemModel[] = [\n { value: \"select\", caption: \"Select a server from the list below\" },\n { value: \"new\", caption: \"Enter a server URL manually\" }\n ];\n\n [key: string]: any;\n\n #_componentLocale: any;\n\n #chGridRecentlyUsedServersEl: HTMLChTabularGridElement;\n #chGridConnectedServersEl: HTMLChTabularGridElement;\n #previousSelectedRowId: string | undefined;\n #selectedRowId: string | undefined;\n #serverUrlEL: HTMLChEditElement;\n #serverFriendlyNameEL: HTMLChEditElement;\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * State to track if this is the first selection made by the user.\n */\n @State() isFirstSelection: boolean = true;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredConnectedServersData: ConnectedGXServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The list of connected GX servers.\n */\n @Prop({ mutable: true }) connectedServersData: ConnectedGXServerData[] = [];\n\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ConnectedGXServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin,\n connectionOption: ConnectionOption\n ) => Promise<FormSubmitResult>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.selectedServerUri = this.connectedServersData[0]?.serverUrl;\n this.userName = this.connectedServersData[0]?.gxServerUsername;\n\n this.filteredConnectedServersData = this.connectedServersData;\n }\n\n componentDidRender() {\n if (\n this.selectedConnectionType === \"new\" &&\n this.#serverUrlEL &&\n this.#serverFriendlyNameEL\n ) {\n this.#initializeValidatableControls();\n }\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void> => {\n let formSubmitResult: FormSubmitResult;\n if (this.selectedConnectionType === \"select\") {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.selectedServerUri,\n name: this.selectedServerName\n },\n this.selectedConnectionType\n );\n } else {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n },\n this.selectedConnectionType\n );\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControls = () => {\n // populate validatableControls with the controls that could have errors.\n const validatableControls: HTMLElement[] = [\n this.#serverUrlEL,\n this.#serverFriendlyNameEL\n ];\n validatableControls.forEach(validatableControl => {\n if (validatableControl.id) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredConnectedServersData = this.connectedServersData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = event.detail as string;\n\n const controlId =\n field === \"serverUrlInputValue\" ? \"server-url\" : \"server-name\";\n clearControlError(this.validatableControls, controlId);\n this.#enableConfirmButton();\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #onConnectedServersRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n this.#selectConnectedServersHandler(event);\n this.#confirmHandler();\n };\n\n #onRecentlyUsedRowDoubleClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => {\n this.#selectRecentlyUsedServersHandler(event);\n this.#confirmHandler();\n };\n\n #selectConnectedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.connectedServersData,\n this.#chGridRecentlyUsedServersEl\n );\n\n #selectRecentlyUsedServersHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) =>\n this.#handleServerSelection(\n event,\n this.recentlyUsedServersData,\n this.#chGridConnectedServersEl\n );\n\n #handleServerSelection = async (\n event: CustomEvent<TabularGridRowClickedEvent>,\n serversData: ConnectedGXServerData[],\n otherGridEl: HTMLChTabularGridElement\n ): Promise<void> => {\n if (!this.isFirstSelection) {\n this.#previousSelectedRowId = this.#selectedRowId;\n }\n this.#selectedRowId = event.detail.rowId;\n if (this.#selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n } else {\n const selectedServer = serversData.find(\n server => server.id === this.#selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.isFirstSelection = false;\n await otherGridEl?.selectRow(this.#previousSelectedRowId, false);\n }\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n this.filteredConnectedServersData = [\n ...sortTabularGridColumn(\n e,\n this.filteredConnectedServersData,\n \"string\",\n undefined\n )\n ];\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n columnName=\"Username\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"status\"\n class=\"tabular-grid-column\"\n columnName=\"Status\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderTabularGridCommonCells = (server: ConnectedGXServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(server.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-name\">\n {server.serverName}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell-server-url\">\n {server.serverUrl}\n {this.#renderTooltip(server.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {server.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell text-neutral-gray-400 body-italic-s\">\n {server.isConnected && \"Connected\"}\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderRecentlyUsedServersGrid = (hideColumnName: boolean): Element => {\n return (\n <ch-tabular-grid\n class={\"tabular-grid-recently-used tabular-grid\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridRecentlyUsedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectRecentlyUsedServersHandler}\n onRowDoubleClicked={this.#onRecentlyUsedRowDoubleClickHandler}\n id=\"recently-used-servers\"\n >\n {this.#renderTabularGridColumnSet(hideColumnName)}\n {this.recentlyUsedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.recentlyUsedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row rowid={server.id} class=\"tabular-grid-row\">\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n );\n };\n\n #renderConnectedServersGrid = (): Element => {\n return (\n <div class=\"tabular-grid-wrapper\">\n <div class=\"border-patch\"></div>\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridConnectedServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#selectConnectedServersHandler}\n onRowDoubleClicked={this.#onConnectedServersRowDoubleClickHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredConnectedServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredConnectedServersData.map(\n (server: ConnectedGXServerData) => (\n <ch-tabular-grid-row\n rowid={server.id}\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(server)}\n </ch-tabular-grid-row>\n )\n )}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n render(): void {\n const connectionTypeClass =\n this.selectedConnectionType === \"new\" && \"new-connection\";\n const recentlyUsedEmptyClass =\n this.recentlyUsedServersData.length === 0 && \"recently-used-empty\";\n return (\n <Host\n class={`widget elevation-1 ${connectionTypeClass} ${recentlyUsedEmptyClass}`}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={this.#chSearchIcon}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n {this.selectedConnectionType === \"select\" && [\n this.recentlyUsedServersData.length > 0 && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n {this.#renderRecentlyUsedServersGrid(true)}\n </div>\n ),\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderConnectedServersGrid()}\n </div>\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class=\"input\"\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverUrlEL)}\n </div>\n\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ref={el =>\n (this.#serverFriendlyNameEL = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverFriendlyNameEL)}\n </div>\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ConnectedGXServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-server-selector.js","mappings":";;;;;;;;;;;AAAA,MAAM,iBAAiB,GAAG,+sGAA+sG;;;;;;;;;;;;;;;;;;;ACyBzuG,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,oBAAoB;IACpB,qBAAqB;IACrB,yBAAyB;CAC1B,CAAC;AAEF,MAAM,SAAS,GAAG,WAAW,CAAC;IAC5B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,aAAa;IACnB,SAAS,EAAE,YAAY;CACxB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,WAAW,CAAC;IAC5B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,YAAY;CACxB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,WAAW,CAAC;IAChC,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,UAAU;IAChB,SAAS,EAAE,YAAY;CACxB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,YAAY;CACxB,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAG,cAAc,CAAC;MAQ7BA,qBAAmB;;;;;QAC9B,wDAAuB;QAEvB,0DAA8C;QAC9C,mDAAgC;QAChC,4DAAyC;QACzC,yDAAuC;QACvC,oDAAwD,IAAI,GAAG,EAAE,EAAC;QAClE,8CAAyC,EAAE,EAAC;QA2I5C,6CAAiB;YACf,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB,EAAC;QAEF,8CAAkB;YAChB,IAAI,gBAAkC,CAAC;YACvC,IAAI,IAAI,CAAC,sBAAsB,KAAK,QAAQ,EAAE;gBAC5C,gBAAgB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD;oBACE,GAAG,EAAE,IAAI,CAAC,iBAAiB;oBAC3B,IAAI,EAAE,IAAI,CAAC,kBAAkB;iBAC9B,EACD,IAAI,CAAC,sBAAsB,CAC5B,CAAC;aACH;iBAAM;gBACL,gBAAgB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD;oBACE,GAAG,EAAE,IAAI,CAAC,mBAAmB;oBAC7B,IAAI,EAAE,IAAI,CAAC,oBAAoB;iBAChC,EACD,IAAI,CAAC,sBAAsB,CAC5B,CAAC;gBACF,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CACzC,gBAAgB,EAChB,IAAI,CAAC,mBAAmB,CACzB,CAAC;aACH;SACF,EAAC;;;QAIF,qDAAyB,CACvB,gBAA6B;;YAE7B,OAAA,CAAA,MAAA,MAAA,IAAI,CAAC,mBAAmB,0CAAE,GAAG,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,EAAE,CAAC,0CAAE,QAAQ;iBAC7D,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,0CAAE,OAAO,CAAA,KACxD,kBACE,KAAK,EAAC,SAAS,EACf,aAAa,EAAE,gBAAgD,EAC/D,UAAU,EAAE,MAAM,CAAC,eAAe,CAAC,UAAU,EAC7C,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,WAAW,EAC/C,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,KAAK,IAElC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,CAC/C,CACd,CAAA;SAAA,EAAC;QAEJ,6DAAiC,CAAC,mBAAkC;YAClE,mBAAmB,CAAC,OAAO,CAAC,kBAAkB;gBAC5C,IACE,kBAAkB,CAAC,EAAE;oBACrB,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC,EACpD;oBACA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,EAAE;wBAClD,SAAS,EAAE,kBAAkB;wBAC7B,QAAQ,EAAE,KAAK;wBACf,OAAO,EAAE,SAAS;qBACnB,CAAC,CAAC;iBACJ;aACF,CAAC,CAAC;SACJ,EAAC;QAEF,yDAA6B,CAC3B,KAA6C;YAE7C,IAAI,CAAC,WAAW,GAAI,KAAK,CAAC,MAAiB,CAAC,WAAW,EAAE,CAAC;YAC1D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,IACrD,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CACzD,CAAC;SACH,EAAC;QAEF,4CAAgB,CACd,KAA6C,EAC7C,KAAqD;YAErD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAgB,CAAC;YAErC,MAAM,SAAS,GACb,KAAK,KAAK,qBAAqB,GAAG,YAAY,GAAG,aAAa,CAAC;YACjE,iBAAiB,CAAC,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACvD,uBAAA,IAAI,gDAAqB,MAAzB,IAAI,CAAuB,CAAC;SAC7B,EAAC;QAEF,2DAA+B,OAAO,MAAkB;;YACtD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,EAAE,CAAC;YACxC,OAAM,MAAA,uBAAA,IAAI,+CAAoB,0CAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC;YACrD,MAAM,uBAAA,IAAI,kDAAuB,MAA3B,IAAI,EAAwB,MAAM,CAAC,EAAE,CAAC,CAAC;SAC9C,EAAC;QAEF,kDAAsB,OAAO,UAAsB;YACjD,IAAI,UAAU,CAAC,WAAW,KAAK,SAAS,EAAE;gBACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAI,MAAM,EAAE;oBACV,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;oBACjC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;iBAClC;aACF;SACF,EAAC;QAEF,iDAAqB,OACnB,KAA6C;YAE7C,uBAAA,IAAI,0CAAsB,KAAK,CAAC,MAAgB,MAAA,CAAC;SAClD,EAAC;QAEF,kDAAsB,OAAO,UAAsB;YACjD,IAAI,MAAM,GAAqB;gBAC7B,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,KAAK;aACf,CAAC;YACF,IACE,UAAU,CAAC,UAAU,KAAK,uBAAA,IAAI,8CAAmB;gBACjD,UAAU,CAAC,WAAW,KAAK,SAAS,EACpC;gBACA,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,iCACnC,UAAU,KACb,UAAU,EAAE,uBAAA,IAAI,8CAAmB,IACnC,CAAC;aACJ;YAED,IAAI,CAAC,mBAAmB,GAAG,gBAAgB,CACzC,MAAM,EACN,IAAI,CAAC,mBAAmB,CACzB,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,IAAI,UAAU,CAAC,UAAU,KAAK,uBAAA,IAAI,8CAAmB,EAAE;gBACvE,IAAI,CAAC,kBAAkB,GAAG,uBAAA,IAAI,8CAAmB,CAAC;gBAClD,iBAAiB,CACf,IAAI,CAAC,mBAAmB,EACxB,GAAG,kBAAkB,GAAG,UAAU,CAAC,EAAE,EAAE,CACxC,CAAC;aACH;SACF,EAAC;QAEF,mDAAuB;YACrB,IACE,IAAI,CAAC,mBAAmB;gBACxB,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC;gBACnC,IAAI,CAAC,oBAAoB;gBACzB,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EACpC;gBACA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;aAClC;SACF,EAAC;QAEF,gEAAoC,CAAC,UAAsB;YACzD,uBAAA,IAAI,kDAAuB,MAA3B,IAAI,EAAwB,UAAU,CAAC,EAAE,CAAC,CAAC;YAC3C,uBAAA,IAAI,2CAAgB,MAApB,IAAI,CAAkB,CAAC;SACxB,EAAC;QAEF,wDAA4B,CAC1B,KAA8C,KAC3C,uBAAA,IAAI,kDAAuB,MAA3B,IAAI,EAAwB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;QAErD,qDAAyB,OAAO,aAAqB;YACnD,IAAI,aAAa,KAAK,SAAS,EAAE;gBAC/B,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;gBACnC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;gBACpC,OAAO;aACR;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAC1C,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,aAAa,CACtC,CAAC;YACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,kBAAkB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,UAAU,CAAC;YACrD,IAAI,CAAC,iBAAiB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,SAAS,CAAC;YACnD,IAAI,CAAC,QAAQ,GAAG,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,gBAAgB,KAAI,EAAE,CAAC;YACvD,IAAI,CAAC,sBAAsB,GAAG,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,EAAE,CAAC;SAClD,EAAC;QAEF,4DAAgC,CAAC,KAA0B;YACzD,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC,MAA0B,CAAC;YAC/D,IAAI,IAAI,CAAC,sBAAsB,KAAK,KAAK,EAAE;gBACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;aAC/B;YACD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;SAClC,EAAC;QAEF,6DAAiC,CAC/B,CAAiD;YAEjD,IAAI,CAAC,mBAAmB,GAAG;gBACzB,GAAG,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,SAAS,CAAC;aAC3E,CAAC;SACH,EAAC;QAEF,0DAA8B,CAC5B,iBAA0B,KAAK;YAE/B,QACE,iCAA2B,KAAK,EAAC,yBAAyB,IACxD,8BACE,QAAQ,EAAC,MAAM,EACf,KAAK,EAAC,8CAA8C,EACpD,UAAU,EAAC,MAAM,EACjB,WAAW,EAAE,KAAK,EAClB,gBAAgB,EAAE,IAAI,EACtB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,KAAK,GACS,EAC1B,8BACE,QAAQ,EAAC,YAAY,EACrB,KAAK,EAAC,qBAAqB,EAC3B,UAAU,EAAC,aAAa,EACxB,WAAW,EAAE,KAAK,EAClB,gBAAgB,EAAE,cAAc,EAChC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,cAAc,EACzB,mBAAmB,EAAE,uBAAA,IAAI,0DAA+B,GAChC,EAC1B,8BACE,QAAQ,EAAC,WAAW,EACpB,KAAK,EAAC,qBAAqB,EAC3B,UAAU,EAAC,YAAY,EACvB,WAAW,EAAE,KAAK,EAClB,gBAAgB,EAAE,cAAc,EAChC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EACrC,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,cAAc,EACzB,mBAAmB,EAAE,uBAAA,IAAI,0DAA+B,GAChC,EAC1B,8BACE,QAAQ,EAAC,UAAU,EACnB,KAAK,EAAC,qBAAqB,EAC3B,UAAU,EAAC,WAAW,EACtB,WAAW,EAAE,KAAK,EAClB,gBAAgB,EAAE,cAAc,EAChC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EACzC,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,CAAC,cAAc,EACzB,mBAAmB,EAAE,uBAAA,IAAI,0DAA+B,GAChC,EAC1B,8BACE,QAAQ,EAAC,QAAQ,EACjB,KAAK,EAAC,8CAA8C,EACpD,UAAU,EAAC,QAAQ,EACnB,WAAW,EAAE,KAAK,EAClB,gBAAgB,EAAE,IAAI,EACtB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAC3C,SAAS,EAAE,KAAK,EAChB,QAAQ,EAAE,KAAK,GACS,CACA,EAC5B;SACH,EAAC;QAEF,6CAAiB,CAAC,IAAY;YAC5B,OAAO,IAAI,KAAK,EAAE,IAChB,kBACE,KAAK,EAAC,SAAS,EACf,aAAa,EAAE,IAAI,EACnB,UAAU,EAAC,aAAa,EACxB,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,WAAW,EAC/C,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,SAAS,IAEtC,IAAI,CACM,IACX,IAAI,CAAC;SACV,EAAC;QAEF,4DAAgC,CAAC,QAAgB;YAC/C,QACE,8BAAwB,KAAK,EAAC,qBAAqB,IACjD,oCAA8B,KAAK,EAAC,2BAA2B,IAC7D,SAAG,KAAK,EAAC,2BAA2B,IAClC,gBACE,KAAK,EAAC,4BAA4B,EAClC,GAAG,EAAE,UAAU,GACL,EACX,QAAQ,CACP,CACyB,CACR,EACzB;SACH,EAAC;QAEF,4DAAgC,CAAC,UAAsB;YACrD,OAAO;gBACL,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,uBAAA,IAAI,uCAAY,MAAhB,IAAI,EAAa,UAAU,CAAC,WAAW,CAAC,CACpB;gBACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,UAAU,CAAC,WAAW,KAAK,SAAS,IACnC,eACE,EAAE,EAAE,GAAG,kBAAkB,GAAG,UAAU,CAAC,EAAE,EAAE,EAC3C,KAAK,EAAE,UAAU,CAAC,UAAU,EAC5B,OAAO,EAAE,uBAAA,IAAI,8CAAmB,EAChC,QAAQ,EAAE,MAAM,uBAAA,IAAI,+CAAoB,MAAxB,IAAI,EAAqB,UAAU,CAAC,EACpD,SAAS,EAAE,EAAE,EACb,GAAG,EAAE,EAAE;wBACL,MAAM,GAAG,GAAG,GAAG,kBAAkB,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC;wBACpD,IAAI,EAAE,EAAE;4BACN,uBAAA,IAAI,iDAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,EAAuB,CAAC,CAAC;yBAC9D;6BAAM;4BACL,uBAAA,IAAI,iDAAsB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;yBACxC;qBACF,GACQ,KAEX,UAAU,CAAC,UAAU,CACtB,CACoB;gBACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,UAAU,CAAC,SAAS,EACpB,uBAAA,IAAI,0CAAe,MAAnB,IAAI,EAAgB,UAAU,CAAC,SAAS,CAAC,CACrB;gBACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,UAAU,CAAC,gBAAgB,CACP;gBACvB,4BACE,KAAK,EAAC,mBAAmB,EACzB,OAAO,EAAE,MAAM,uBAAA,IAAI,+CAAoB,MAAxB,IAAI,EAAqB,UAAU,CAAC,IAEnD,cACE,KAAK,EAAC,kCAAkC,gBAC5B,uBAAA,IAAI,6CAAkB,CAAC,OAAO,CAAC,YAAY,EACvD,QAAQ,EAAE,UAAU,CAAC,WAAW,KAAK,QAAQ,IAE7C,gBACE,QAAQ,EAAE,UAAU,CAAC,WAAW,KAAK,QAAQ,EAC7C,KAAK,EAAC,4BAA4B,EAClC,GAAG,EAAE,WAAW,GACN,CACL,CACY;aACxB,CAAC;SACH,EAAC;QAEF,oDAAwB;YACtB,QACE,WAAK,KAAK,EAAC,sBAAsB,IAC/B,WAAK,KAAK,EAAC,cAAc,GAAO,EAChC,uBACE,KAAK,EAAE,uCAAuC,EAC9C,gBAAgB,EAAC,QAAQ,EACzB,GAAG,EAAE,CAAC,EAA4B,MAC/B,uBAAA,IAAI,2CAAuB,EAAE,MAAA,CAAC,EAEjC,kBAAkB,EAAE,KAAK,EACzB,YAAY,EAAE,uBAAA,IAAI,qDAA0B,EAC5C,EAAE,EAAC,aAAa,IAEf,uBAAA,IAAI,uDAA4B,MAAhC,IAAI,CAA8B,EAClC,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAClC,8BAAwB,KAAK,EAAC,qBAAqB,IAChD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,UAAsB;;gBACnD,MAAM,iBAAiB,GAAG,GAAG,kBAAkB,GAAG,UAAU,CAAC,EAAE,EAAE,CAAC;gBAClE,MAAM,QAAQ,GACZ,CAAA,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,0CAAE,QAAQ;oBACzD,IAAI,CAAC;gBACP,MAAM,QAAQ,GACZ,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,0CAAE,OAAO,CAAC;gBAE3D,QACE,2BACE,KAAK,EAAE,UAAU,CAAC,EAAE,EACpB,KAAK,EAAC,kBAAkB,IAEvB,uBAAA,IAAI,yDAA8B,MAAlC,IAAI,EAA+B,UAAU,CAAC,EAC9C,QAAQ,IAAI,uBAAA,IAAI,yDAA8B,MAAlC,IAAI,EAA+B,QAAQ,CAAC,CACrC,EACtB;aACH,CAAC,CACqB,KAEzB,8BAAwB,KAAK,EAAC,qBAAqB,IACjD,oCAA8B,KAAK,EAAC,2BAA2B,IAC7D,0BACE,YAAY,EAAE,SAAS,EACvB,UAAU,EAAE,uBAAA,IAAI,6CAAkB,CAAC,qBAAqB,EACxD,UAAU,EAAE,IAAI,GACI,CACO,CACR,CAC1B,CACe,CACd,EACN;SACH,EAAC;QAEF,0CAAc,CAAC,WAAmB;YAChC,MAAM,IAAI,GAAG,WAAW,KAAK,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;YACnE,OAAO,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,IAAI,GAAa,CAAC;SACzD,EAAC;QAEF,4CAAgB;YACd,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,KAAK,QAAQ,CAAC;YACjE,QACE,cACE,KAAK,EAAE;oBACL,4BAA4B,EAAE,IAAI;oBAClC,8BAA8B,EAC5B,IAAI,CAAC,sBAAsB,KAAK,QAAQ;oBAC1C,eAAe,EAAE,eAAe;oBAChC,qBAAqB,EAAE,IAAI;oBAC3B,oBAAoB,EAAE,IAAI;iBAC3B,IAEA,eAAe,KACd,SAAG,KAAK,EAAC,eAAe,kBAAY,IAAI,CAAC,kBAAkB,CAAK,CACjE,EACD,WAAK,KAAK,EAAC,gBAAgB,IACzB;;gBAEE,KAAK,EAAC,kBAAkB,EACxB,OAAO,EAAE,uBAAA,IAAI,0CAAe;eAE3B,uBAAA,IAAI,6CAAkB,CAAC,MAAM,CAAC,MAAM,CAC9B,EAET;;gBAEE,KAAK,EAAC,gBAAgB,EACtB,OAAO,EAAE,IAAI,CAAC,mBAAmB,IAAI,uBAAA,IAAI,2CAAgB,EACzD,QAAQ,EAAE,CAAC,IAAI,CAAC,mBAAmB;eAElC,uBAAA,IAAI,6CAAkB,CAAC,MAAM,CAAC,OAAO,CAC/B,CACL,CACC,EACT;SACH,EAAC;QAEF,kDAAsB;YACpB,MAAM,kBAAkB,GACtB,IAAI,CAAC,sBAAsB,KAAK,QAAQ;gBACxC,IAAI,CAAC,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1C,QACE,kBAAkB,KAChB,WAAK,KAAK,EAAC,uCAAuC,IAChD,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,uBAAuB,IACjD,uBAAA,IAAI,6CAAkB,CAAC,YAAY,CAAC,KAAK,CACpC,EACR,WACE,KAAK,EAAE;oBACL,QAAQ,EAAE,IAAI;oBACd,gBAAgB,EAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,IAAI,CAAC;oBAC1D,gBAAgB,EAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,IAAI,CAAC;iBAC3D,IAEA,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,MAAkB,MACnD,cACE,KAAK,EAAE;oBACL,eAAe,EAAE,IAAI;oBACrB,oBAAoB,EAAE,IAAI;oBAC1B,8BAA8B,EAC5B,IAAI,CAAC,sBAAsB,KAAK,MAAM,CAAC,EAAE;iBAC5C,EACD,OAAO,EAAE,MAAM,uBAAA,IAAI,wDAA6B,MAAjC,IAAI,EAA8B,MAAM,CAAC,EACxD,UAAU,EAAE,MACV,uBAAA,IAAI,6DAAkC,MAAtC,IAAI,EAAmC,MAAM,CAAC,IAGhD,WAAK,KAAK,EAAC,4BAA4B,IACrC,SAAG,KAAK,EAAC,sCAAsC,IAC5C,MAAM,CAAC,UAAU,CAChB,EACJ,SAAG,KAAK,EAAC,qEAAqE,IAC3E,MAAM,CAAC,SAAS,CACf,CACA,EACL,uBAAA,IAAI,0CAAe,MAAnB,IAAI,EAAgB,MAAM,CAAC,SAAS,CAAC,CAC/B,CACV,CAAC,CACE,CACF,CACP,EACD;SACH,EAAC;QAEF,gDAAoB;YAClB,QACE,WAAK,KAAK,EAAC,+DAA+D,IACxE,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,aAAa,IACvC,uBAAA,IAAI,6CAAkB,CAAC,UAAU,CAAC,KAAK,CAClC,EACP,uBAAA,IAAI,iDAAsB,MAA1B,IAAI,CAAwB,CACzB,EACN;SACH,EAAC;mCA5mBsC,KAAK;mCAKN,EAAE;oCAKD,EAAE;;kCAUQ,MAAM;;2BAUzB,EAAE;mCAKY,EAAE;mCAEhB,IAAI,GAAG,EAA6B;sCAKf,QAAQ;;2BAUP,EAAE;uCAQE,EAAE;;;;;;IAN3D,kBAAkB,CAAC,QAAsB;QACvC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC;KACrC;IAiCD,MAAM,iBAAiB;;QACrB,uBAAA,IAAI,yCAAqB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;QAEnE,uBAAA,IAAI,uCAAmB;YACrB;gBACE,KAAK,EAAE,QAAQ;gBACf,OAAO,EAAE,uBAAA,IAAI,6CAAkB,CAAC,QAAQ,CAAC,YAAY;aACtD;YACD;gBACE,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,uBAAA,IAAI,6CAAkB,CAAC,QAAQ,CAAC,SAAS;aACnD;SACF,MAAA,CAAC;QAEF,IAAI,CAAC,iBAAiB,GAAG,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,SAAS,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,MAAA,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,0CAAE,gBAAgB,CAAC;QAEtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC;KAC7C;IAED,kBAAkB;QAChB,IACE,IAAI,CAAC,sBAAsB,KAAK,KAAK;YACrC,uBAAA,IAAI,wCAAa;YACjB,uBAAA,IAAI,iDAAsB,EAC1B;YACA,uBAAA,IAAI,0DAA+B,MAAnC,IAAI,EAAgC;gBAClC,uBAAA,IAAI,wCAAa;gBACjB,uBAAA,IAAI,iDAAsB;aAC3B,CAAC,CAAC;YACH,uBAAA,IAAI,iDAAsB,CAAC,KAAK,EAAE,CAAC;SACpC;QAED,IACE,IAAI,CAAC,sBAAsB,KAAK,QAAQ;YACxC,uBAAA,IAAI,iDAAsB,CAAC,IAAI,GAAG,CAAC,EACnC;YACA,uBAAA,IAAI,0DAA+B,MAAnC,IAAI,EAAgC;gBAClC,GAAG,uBAAA,IAAI,iDAAsB,CAAC,MAAM,EAAE;aACvC,CAAC,CAAC;SACJ;KACF;IA4eD,MAAM;QACJ,QACE,EAAC,IAAI,IACH,KAAK,EAAE;gBACL,oBAAoB,EAAE,IAAI;gBAC1B,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,KAAK,KAAK;gBACvD,qBAAqB,EAAE,IAAI,CAAC,uBAAuB,CAAC,MAAM,KAAK,CAAC;aACjE,IAED,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,YAAM,KAAK,EAAC,SAAS,IACnB,cAAQ,KAAK,EAAC,qDAAqD,IACjE,WAAK,KAAK,EAAC,aAAa,IACtB,aAAO,KAAK,EAAC,sCAAsC,IAChD,uBAAA,IAAI,6CAAkB,CAAC,MAAM,CAAC,KAAK,CAC9B,EACR,6BACE,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,uBAAA,IAAI,2CAAgB,EAC3B,QAAQ,EAAE,uBAAA,IAAI,yDAA8B,EAC5C,KAAK,EAAE,uBAAA,IAAI,2CAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,GACb,EAExB,IAAI,CAAC,sBAAsB,KAAK,QAAQ,KACvC,eACE,KAAK,EAAC,qBAAqB,EAC3B,EAAE,EAAC,oBAAoB,EACvB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,uBAAA,IAAI,sDAA2B,EACxC,WAAW,EACT,uBAAA,IAAI,6CAAkB,CAAC,YAAY,CAAC,aAAa,EAEnD,cAAc,EAAC,eAAe,EAC9B,IAAI,EAAC,QAAQ,GACJ,CACZ,CACG,CACC,EAER,IAAI,CAAC,sBAAsB,KAAK,QAAQ,IAAI;YAC3C,uBAAA,IAAI,+CAAoB,MAAxB,IAAI,CAAsB;YAC1B,uBAAA,IAAI,6CAAkB,MAAtB,IAAI,CAAoB;SACzB,EAEA,IAAI,CAAC,sBAAsB,KAAK,KAAK,KACpC,eAAS,KAAK,EAAC,qBAAqB,IAClC,WAAK,KAAK,EAAC,uBAAuB,IAChC,WAAK,KAAK,EAAC,iCAAiC,IAC1C,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,YAAY,IACtC,uBAAA,IAAI,6CAAkB,CAAC,MAAM,CAAC,SAAS,CAClC,EACR;;YAEE,KAAK,EAAC,OAAO,EACb,EAAE,EAAC,YAAY,EACf,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAC/B,OAAO,EAAE,KAAK,IACZ,uBAAA,IAAI,yCAAc,MAAlB,IAAI,EAAe,KAAK,EAAE,qBAAqB,CAAC,EAElD,WAAW,EAAE,uBAAA,IAAI,6CAAkB,CAAC,YAAY,CAAC,SAAS,EAC1D,GAAG,EAAE,EAAE,KAAK,uBAAA,IAAI,oCAAgB,EAAuB,MAAA,CAAC;UAC/C,EACV,uBAAA,IAAI,kDAAuB,MAA3B,IAAI,EAAwB,uBAAA,IAAI,wCAAa,CAAC,CAC3C,EAEN,WAAK,KAAK,EAAC,iCAAiC,IAC1C,aAAO,KAAK,EAAC,OAAO,EAAC,OAAO,EAAC,aAAa,IACvC,uBAAA,IAAI,6CAAkB,CAAC,MAAM,CAAC,UAAU,CACnC,EACR;;YAEE,KAAK,EAAC,OAAO,EACb,EAAE,EAAC,aAAa,EAChB,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAChC,OAAO,EAAE,KAAK,IACZ,uBAAA,IAAI,yCAAc,MAAlB,IAAI,EAAe,KAAK,EAAE,sBAAsB,CAAC,EAEnD,WAAW,EAAE,uBAAA,IAAI,6CAAkB,CAAC,YAAY,CAAC,UAAU,EAC3D,SAAS,EAAE,EAAE,EACb,GAAG,EAAE,EAAE,KACJ,uBAAA,IAAI,6CAAyB,EAAuB,MAAA,CAAC;UAE/C,EACV,uBAAA,IAAI,kDAAuB,MAA3B,IAAI,EAAwB,uBAAA,IAAI,iDAAsB,CAAC,CACpD,CACF,CACE,CACX,EAEA,uBAAA,IAAI,yCAAc,MAAlB,IAAI,CAAgB,CAChB,CACF,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["GxIdeServerSelector"],"sources":["src/components/team-dev/server-selector/server-selector.scss?tag=gx-ide-server-selector&encapsulation=shadow","src/components/team-dev/server-selector/server-selector.tsx"],"sourcesContent":["@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n:host {\n display: grid;\n block-size: 100%;\n grid-template-rows: max-content max-content 1fr max-content;\n row-gap: var(--mer-spacing--md);\n overflow: auto;\n}\n\n:host(.new-connection) {\n grid-template-rows: max-content 1fr;\n}\n\n:host(.recently-used-empty) {\n grid-template-rows: max-content 1fr;\n}\n\n.section {\n display: contents;\n}\n\n// General\n\n.tabular-grid {\n border-radius: var(--mer-border__radius--sm);\n overflow: hidden;\n overflow: auto;\n border-inline: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-rowset-empty {\n border-block-end: 1px solid var(--grid-cell__border-color);\n overflow: hidden;\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-apply-ellipsis: true,\n $tabular-grid-affected-columns-nth-list: (\n 2,\n 3,\n 4\n )\n);\n\n.text-neutral-gray-400,\n.tabular-grid-cell.text-neutral-gray-400 {\n // WA: colors for text should be defined in Mercury\n color: var(--mer-color__neutral-gray--400);\n}\n// Header\n\n.search-server {\n inline-size: 50%;\n}\n\n// All Servers\n\n.tabular-grid {\n overflow: auto;\n border-block: 1px solid var(--grid-cell__border-color);\n}\n\n.tabular-grid-all-servers .tabular-grid-column:first-child::part(bar) {\n --grid-common__gap: 0;\n}\n\n.field-block-all-servers {\n overflow: auto;\n}\n\n// WA: .tabular-grid-wrapper and .border-patch is a WA. See details on Asana task:\n// https://app.asana.com/1/10206720691358/project/1207081021030105/task/1211391456974726?focus=true\n.tabular-grid-wrapper {\n position: relative;\n overflow: auto;\n}\n.border-patch {\n --tabular-grid-border-radius: 4px;\n position: absolute;\n top: 0;\n inline-size: calc(100% - var(--tabular-grid-border-radius) * 2);\n inset-inline-start: var(--tabular-grid-border-radius);\n block-size: 2px;\n background-color: var(--items-container__bg-color);\n z-index: 9999;\n border-block-start: 1px solid var(--mer-border-color__on-surface);\n}\n\n.tooltip {\n position: absolute;\n}\n\n.recently-used-card {\n border: 1px solid var(--grid-cell__border-color);\n border-radius: var(--mer-border__radius--sm);\n cursor: pointer;\n\n &:hover {\n background-color: var(--mer-color__tinted-primary--5);\n }\n\n &:focus-visible {\n @include focus-outline();\n }\n\n &--selected {\n background-color: var(--mer-color__tinted-primary--10);\n border-color: var(--mer-color__tinted-primary--30);\n }\n}\n\n.recently-used-card-content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n padding: 8px;\n gap: 2px;\n overflow: hidden;\n\n .text-decoration-line-underline {\n @include cell-ellipsis();\n max-width: 100%;\n text-decoration: underline;\n }\n}\n\n// All Severs tabular-grid\n\n.delete-server-icon {\n // WA: Getr and apply the marign inline value on the ch-image,\n // so that the button looks squared. This happens because the\n // button is \"tertiary\", which happens to have no padding-inline.\n // TODO: Investigate a solution that works without a WA.\n $cellBlockSize: 30.39px;\n margin-inline: calc((#{$cellBlockSize} - var(--ch-image-size)) / 2);\n}\n\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".tabular-grid\",\n $tabular-grid-cell-node-type: \"element\",\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","// Stencil\nimport { Component, Element, h, Host, Prop, State } from \"@stencil/core\";\n\n// Other Libraries\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\n\n// Custom Imports\nimport {\n ChEditCustomEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowClickedEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { RadioGroupItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/radio-group/types\";\nimport { JSX, Watch } from \"@stencil/core/internal\";\nimport { config } from \"../../../common/config\";\nimport {\n clearControlError,\n ControlValidation,\n validateControls\n} from \"../../../common/form-validation\";\nimport { Locale } from \"../../../common/locale\";\nimport { FormSubmitResult } from \"../../../common/types\";\n\nimport sortTabularGridColumn from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"components/tooltip\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\"\n];\n\nconst INFO_ICON = getIconPath({\n category: \"system\",\n name: \"information\",\n colorType: \"on-surface\"\n});\n\nconst LOCK_ICON = getIconPath({\n category: \"system\",\n name: \"lock\",\n colorType: \"on-surface\"\n});\n\nconst LANGUAGE_ICON = getIconPath({\n category: \"system\",\n name: \"language\",\n colorType: \"on-surface\"\n});\n\nconst DELETE_ICON = getIconPath({\n category: \"system\",\n name: \"delete-outlined\",\n colorType: \"neutral\"\n});\n\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\nconst SERVER_NAME_PREFIX = \"server-name-\";\n\n@Component({\n tag: \"gx-ide-server-selector\",\n styleUrl: \"server-selector.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/server-selector\"]\n})\nexport class GxIdeServerSelector {\n #_componentLocale: any;\n\n #chGridAllServersEl: HTMLChTabularGridElement;\n #serverUrlEL: HTMLChEditElement;\n #serverFriendlyNameEL: HTMLChEditElement;\n #updatedServerName: string | undefined;\n #serverNameEditElsMap: Map<string, HTMLChEditElement> = new Map();\n #versionsSelect: RadioGroupItemModel[] = [];\n\n @Element() el: HTMLGxIdeServerSelectorElement;\n\n /**\n * State to enable/disable confirm button.\n */\n @State() enableConfirmButton: boolean = false;\n\n /**\n * The current server URL input value.\n */\n @State() serverUrlInputValue: string = \"\";\n\n /**\n * The current server URL input value.\n */\n @State() serverNameInputValue: string = \"\";\n\n /**\n * The selected server URI.\n */\n @State() selectedServerUri: string | undefined;\n\n /**\n * The selected server name.\n */\n @State() selectedServerName: string | undefined = \"None\";\n\n /**\n * The user name of the selected server.\n */\n @State() userName: string;\n\n /**\n * State to store the filter input value to filter the list-box\n */\n @State() filterValue: string = \"\";\n\n /**\n * Servers filtered\n */\n @State() filteredServersData: ServerData[] = [];\n\n @State() validatableControls = new Map<string, ControlValidation>();\n\n /**\n * The selected connection type\n */\n @State() selectedConnectionType: ConnectionOption = \"select\";\n\n /**\n * The selected recently used server ID\n */\n @State() selectedRecentlyUsedId: string;\n\n /**\n * The list of all GX servers.\n */\n @Prop({ mutable: true }) serversData: ServerData[] = [];\n @Watch(\"serversData\")\n serversDataChanged(newValue: ServerData[]) {\n this.filteredServersData = newValue;\n }\n /**\n * The list of recently used servers.\n */\n @Prop() readonly recentlyUsedServersData: ServerData[] = [];\n\n /**\n * Callback that is invoked when the dialog is closed\n */\n @Prop() readonly cancelCallback!: () => Promise<void>;\n\n /**\n * Callback that must be invoked when the 'Confirm' button is pressed and the Select Server option is checked.\n */\n @Prop() readonly selectServerCallback!: (\n authenticationSessionOrigin: AuthenticationSessionOrigin,\n connectionOption: ConnectionOption\n ) => Promise<FormSubmitResult>;\n\n /**\n * Invoked to delete a server\n */\n @Prop() readonly deleteServerCallback!: (\n serverData: ServerData\n ) => Promise<boolean>;\n\n /**\n * Invoked to update a server\n */\n @Prop() readonly updateServerCallback!: (\n serverData: ServerData\n ) => Promise<FormSubmitResult>;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n\n this.#versionsSelect = [\n {\n value: \"select\",\n caption: this.#_componentLocale.captions.selectServer\n },\n {\n value: \"new\",\n caption: this.#_componentLocale.captions.addServer\n }\n ];\n\n this.selectedServerUri = this.serversData[0]?.serverUrl;\n this.userName = this.serversData[0]?.gxServerUsername;\n\n this.filteredServersData = this.serversData;\n }\n\n componentDidRender() {\n if (\n this.selectedConnectionType === \"new\" &&\n this.#serverUrlEL &&\n this.#serverFriendlyNameEL\n ) {\n this.#initializeValidatableControls([\n this.#serverUrlEL,\n this.#serverFriendlyNameEL\n ]);\n this.#serverNameEditElsMap.clear();\n }\n\n if (\n this.selectedConnectionType === \"select\" &&\n this.#serverNameEditElsMap.size > 0\n ) {\n this.#initializeValidatableControls([\n ...this.#serverNameEditElsMap.values()\n ]);\n }\n }\n\n #cancelHandler = (): void => {\n this.cancelCallback();\n };\n\n #confirmHandler = async (): Promise<void> => {\n let formSubmitResult: FormSubmitResult;\n if (this.selectedConnectionType === \"select\") {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.selectedServerUri,\n name: this.selectedServerName\n },\n this.selectedConnectionType\n );\n } else {\n formSubmitResult = await this.selectServerCallback(\n {\n uri: this.serverUrlInputValue,\n name: this.serverNameInputValue\n },\n this.selectedConnectionType\n );\n this.validatableControls = validateControls(\n formSubmitResult,\n this.validatableControls\n );\n }\n };\n\n // TODO: evaluate if this should be a global helper function.\n // It is used on other dialogs as well.\n #evaluateTooltipRender = (\n controlReference: HTMLElement\n ): HTMLChTooltipElement =>\n this.validatableControls?.get(controlReference?.id)?.hasError &&\n this.validatableControls.get(controlReference.id)?.message && (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={controlReference as unknown as HTMLButtonElement}\n blockAlign={config.tooltipSettings.blockAlign}\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delay}\n >\n {this.validatableControls.get(controlReference.id).message}\n </ch-tooltip>\n );\n\n #initializeValidatableControls = (validatableControls: HTMLElement[]) => {\n validatableControls.forEach(validatableControl => {\n if (\n validatableControl.id &&\n !this.validatableControls.has(validatableControl.id)\n ) {\n this.validatableControls.set(validatableControl.id, {\n reference: validatableControl,\n hasError: false,\n message: undefined\n });\n }\n });\n };\n\n #filterValueChangedHandler = (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.filterValue = (event.detail as string).toLowerCase();\n this.filteredServersData = this.serversData.filter(item =>\n item.serverName.toLowerCase().includes(this.filterValue)\n );\n };\n\n #inputHandler = (\n event: ChEditCustomEvent<string> | InputEvent,\n field: \"serverUrlInputValue\" | \"serverNameInputValue\"\n ) => {\n this.enableConfirmButton = false;\n this[field] = event.detail as string;\n\n const controlId =\n field === \"serverUrlInputValue\" ? \"server-url\" : \"server-name\";\n clearControlError(this.validatableControls, controlId);\n this.#enableConfirmButton();\n };\n\n #handleRecentlyUsedCardClick = async (server: ServerData) => {\n this.selectedRecentlyUsedId = server.id;\n await this.#chGridAllServersEl?.selectRow(server.id);\n await this.#handleServerSelection(server.id);\n };\n\n #handleDeleteServer = async (serverData: ServerData) => {\n if (serverData.accessLevel === \"private\") {\n const result = await this.deleteServerCallback(serverData);\n if (result) {\n this.selectedServerName = \"None\";\n this.enableConfirmButton = false;\n }\n }\n };\n\n #onServerNameInput = async (\n event: ChEditCustomEvent<string> | InputEvent\n ) => {\n this.#updatedServerName = event.detail as string;\n };\n\n #onServerNameChange = async (serverData: ServerData) => {\n let result: FormSubmitResult = {\n fieldErrors: [],\n success: false\n };\n if (\n serverData.serverName !== this.#updatedServerName &&\n serverData.accessLevel === \"private\"\n ) {\n result = await this.updateServerCallback({\n ...serverData,\n serverName: this.#updatedServerName\n });\n }\n\n this.validatableControls = validateControls(\n result,\n this.validatableControls\n );\n\n if (result.success || serverData.serverName === this.#updatedServerName) {\n this.selectedServerName = this.#updatedServerName;\n clearControlError(\n this.validatableControls,\n `${SERVER_NAME_PREFIX}${serverData.id}`\n );\n }\n };\n\n #enableConfirmButton = () => {\n if (\n this.serverUrlInputValue &&\n this.serverUrlInputValue.length > 0 &&\n this.serverNameInputValue &&\n this.serverNameInputValue.length > 0\n ) {\n this.enableConfirmButton = true;\n } else {\n this.enableConfirmButton = false;\n }\n };\n\n #onRecentlyUsedDoubleClickHandler = (serverData: ServerData) => {\n this.#handleServerSelection(serverData.id);\n this.#confirmHandler();\n };\n\n #onServersRowClickHandler = (\n event: CustomEvent<TabularGridRowClickedEvent>\n ) => this.#handleServerSelection(event.detail.rowId);\n\n #handleServerSelection = async (selectedRowId: string): Promise<void> => {\n if (selectedRowId === undefined) {\n this.enableConfirmButton = false;\n this.selectedServerUri = undefined;\n this.selectedServerName = undefined;\n return;\n }\n\n const selectedServer = this.serversData.find(\n server => server.id === selectedRowId\n );\n this.enableConfirmButton = true;\n this.selectedServerName = selectedServer?.serverName;\n this.selectedServerUri = selectedServer?.serverUrl;\n this.userName = selectedServer?.gxServerUsername || \"\";\n this.selectedRecentlyUsedId = selectedServer?.id;\n };\n\n #connectionTypeChangedHandler = (event: CustomEvent<string>) => {\n this.selectedConnectionType = event.detail as ConnectionOption;\n if (this.selectedConnectionType === \"new\") {\n this.enableConfirmButton = false;\n this.serverUrlInputValue = \"\";\n }\n this.selectedServerName = \"None\";\n };\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n this.filteredServersData = [\n ...sortTabularGridColumn(e, this.filteredServersData, \"string\", undefined)\n ];\n };\n\n #renderTabularGridColumnSet = (\n hideColumnName: boolean = false\n ): HTMLChTabularGridColumnsetElement => {\n return (\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n columnId=\"icon\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Icon\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverName\"\n class=\"tabular-grid-column\"\n columnName=\"Server Name\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.serverName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"serverUrl\"\n class=\"tabular-grid-column\"\n columnName=\"Server Url\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.auto}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"userName\"\n class=\"tabular-grid-column\"\n columnName=\"Connected\"\n settingable={false}\n columnNameHidden={hideColumnName}\n size={config.tabularGrid.colSize.userName}\n resizable={false}\n sortable={!hideColumnName}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n columnId=\"action\"\n class=\"tabular-grid-column tabular-grid-column-icon\"\n columnName=\"Action\"\n settingable={false}\n columnNameHidden={true}\n size={config.tabularGrid.colSize.maxContent}\n resizable={false}\n sortable={false}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n );\n };\n\n #renderTooltip = (text: string): JSX.Element | null => {\n return text !== \"\" ? (\n <ch-tooltip\n class=\"tooltip\"\n actionElement={null}\n blockAlign=\"outside-end\"\n inlineAlign={config.tooltipSettings.inlineAlign}\n delay={config.tooltipSettings.delayLong}\n >\n {text}\n </ch-tooltip>\n ) : null;\n };\n\n #renderServerNameErrorMessage = (errorMsg: string) => {\n return (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <p class=\"warning-error-description\">\n <ch-image\n class=\"icon-md warning-error-icon\"\n src={ERROR_ICON}\n ></ch-image>\n {errorMsg}\n </p>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n );\n };\n\n #renderTabularGridCommonCells = (serverData: ServerData) => {\n return [\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderIcon(serverData.accessLevel)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {serverData.accessLevel === \"private\" ? (\n <ch-edit\n id={`${SERVER_NAME_PREFIX}${serverData.id}`}\n value={serverData.serverName}\n onInput={this.#onServerNameInput}\n onChange={() => this.#onServerNameChange(serverData)}\n maxLength={18}\n ref={el => {\n const key = `${SERVER_NAME_PREFIX}${serverData.id}`;\n if (el) {\n this.#serverNameEditElsMap.set(key, el as HTMLChEditElement);\n } else {\n this.#serverNameEditElsMap.delete(key);\n }\n }}\n ></ch-edit>\n ) : (\n serverData.serverName\n )}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {serverData.serverUrl}\n {this.#renderTooltip(serverData.serverUrl)}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {serverData.gxServerUsername}\n </ch-tabular-grid-cell>,\n <ch-tabular-grid-cell\n class=\"tabular-grid-cell\"\n onClick={() => this.#handleDeleteServer(serverData)}\n >\n <button\n class=\"button-tertiary button-icon-only\"\n aria-label={this.#_componentLocale.actions.deleteServer}\n disabled={serverData.accessLevel === \"public\"}\n >\n <ch-image\n disabled={serverData.accessLevel === \"public\"}\n class=\"icon-md delete-server-icon\"\n src={DELETE_ICON}\n ></ch-image>\n </button>\n </ch-tabular-grid-cell>\n ];\n };\n\n #renderAllServersGrid = (): Element => {\n return (\n <div class=\"tabular-grid-wrapper\">\n <div class=\"border-patch\"></div>\n <ch-tabular-grid\n class={\"tabular-grid tabular-grid-all-servers\"}\n rowSelectionMode=\"single\"\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridAllServersEl = el)\n }\n allowColumnReorder={false}\n onRowClicked={this.#onServersRowClickHandler}\n id=\"all-servers\"\n >\n {this.#renderTabularGridColumnSet()}\n {this.filteredServersData.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.filteredServersData.map((serverData: ServerData) => {\n const serverNameEditKey = `${SERVER_NAME_PREFIX}${serverData.id}`;\n const hasError =\n this.validatableControls.get(serverNameEditKey)?.hasError ===\n true;\n const errorMsg =\n this.validatableControls.get(serverNameEditKey)?.message;\n\n return (\n <ch-tabular-grid-row\n rowid={serverData.id}\n class=\"tabular-grid-row\"\n >\n {this.#renderTabularGridCommonCells(serverData)}\n {hasError && this.#renderServerNameErrorMessage(errorMsg)}\n </ch-tabular-grid-row>\n );\n })}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty class=\"tabular-grid-rowset-empty\">\n <gx-ide-empty-state\n stateIconSrc={INFO_ICON}\n stateTitle={this.#_componentLocale.emptyConnectedServers}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid>\n </div>\n );\n };\n\n #renderIcon = (accessLevel: string): JSX.Element => {\n const icon = accessLevel === \"private\" ? LOCK_ICON : LANGUAGE_ICON;\n return <ch-image class=\"icon-md\" src={icon}></ch-image>;\n };\n\n #renderFooter = () => {\n const isSelectionMode = this.selectedConnectionType === \"select\";\n return (\n <footer\n class={{\n \"control-footer-with-border\": true,\n \"control-footer-space-between\":\n this.selectedConnectionType === \"select\",\n \"space-between\": isSelectionMode,\n \"spacing-body-inline\": true,\n \"spacing-body-block\": true\n }}\n >\n {isSelectionMode && (\n <p class=\"body-italic-m\">Selected: {this.selectedServerName}</p>\n )}\n <div class=\"buttons-spacer\">\n <button\n // cancel button\n class=\"button-secondary\"\n onClick={this.#cancelHandler}\n >\n {this.#_componentLocale.footer.cancel}\n </button>\n\n <button\n // confirm button\n class=\"button-primary\"\n onClick={this.enableConfirmButton && this.#confirmHandler}\n disabled={!this.enableConfirmButton}\n >\n {this.#_componentLocale.footer.confirm}\n </button>\n </div>\n </footer>\n );\n };\n\n #renderRecentlyUsed = () => {\n const renderRecentlyUsed =\n this.selectedConnectionType === \"select\" &&\n this.recentlyUsedServersData.length > 0;\n\n return (\n renderRecentlyUsed && (\n <div class=\"field field-block spacing-body-inline\">\n <label class=\"label\" htmlFor=\"recently-used-servers\">\n {this.#_componentLocale.recentlyUsed.title}\n </label>\n <div\n class={{\n \"layout\": true,\n \"layout--cols-3\": this.recentlyUsedServersData.length >= 3,\n \"layout--cols-2\": this.recentlyUsedServersData.length <= 2\n }}\n >\n {this.recentlyUsedServersData.map((server: ServerData) => (\n <button\n class={{\n \"layout__panel\": true,\n \"recently-used-card\": true,\n \"recently-used-card--selected\":\n this.selectedRecentlyUsedId === server.id\n }}\n onClick={() => this.#handleRecentlyUsedCardClick(server)}\n onDblClick={() =>\n this.#onRecentlyUsedDoubleClickHandler(server)\n }\n >\n <div class=\"recently-used-card-content\">\n <p class=\"body-regular-s text-neutral-gray-400\">\n {server.serverName}\n </p>\n <p class=\"body-regular-s text-neutral-gray-400 text-decoration-line-underline\">\n {server.serverUrl}\n </p>\n </div>\n {this.#renderTooltip(server.serverUrl)}\n </button>\n ))}\n </div>\n </div>\n )\n );\n };\n\n #renderAllServers = () => {\n return (\n <div class=\"field field-block field-block-all-servers spacing-body-inline\">\n <label class=\"label\" htmlFor=\"all-servers\">\n {this.#_componentLocale.allServers.title}\n </label>\n {this.#renderAllServersGrid()}\n </div>\n );\n };\n\n render(): void {\n return (\n <Host\n class={{\n \"widget elevation-1\": true,\n \"new-connection\": this.selectedConnectionType === \"new\",\n \"recently-used-empty\": this.recentlyUsedServersData.length === 0\n }}\n >\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <main class=\"section\">\n <header class=\"header spacing-body-block-start spacing-body-inline\">\n <div class=\"field-group\">\n <label class=\"body-regular-m text-neutral-gray-400\">\n {this.#_componentLocale.header.title}\n </label>\n <ch-radio-group-render\n class=\"radio-group\"\n model={this.#versionsSelect}\n onChange={this.#connectionTypeChangedHandler}\n value={this.#versionsSelect[0].value}\n ></ch-radio-group-render>\n\n {this.selectedConnectionType === \"select\" && (\n <ch-edit\n class=\"input search-server\"\n id=\"server-name-search\"\n startImgSrc={SEARCH_ICON}\n onInput={this.#filterValueChangedHandler}\n placeholder={\n this.#_componentLocale.placeholders.searchServers\n }\n accessibleName=\"search server\"\n type=\"search\"\n ></ch-edit>\n )}\n </div>\n </header>\n\n {this.selectedConnectionType === \"select\" && [\n this.#renderRecentlyUsed(),\n this.#renderAllServers()\n ]}\n\n {this.selectedConnectionType === \"new\" && (\n <section class=\"spacing-body-inline\">\n <div class=\"layout layout--cols-2\">\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-url\">\n {this.#_componentLocale.labels.serverUrl}\n </label>\n <ch-edit\n // server url\n class=\"input\"\n id=\"server-url\"\n value={this.serverUrlInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverUrlInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverUrl}\n ref={el => (this.#serverUrlEL = el as HTMLChEditElement)}\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverUrlEL)}\n </div>\n\n <div class=\"field field-block layout__panel\">\n <label class=\"label\" htmlFor=\"server-name\">\n {this.#_componentLocale.labels.serverName}\n </label>\n <ch-edit\n // server friendly name\n class=\"input\"\n id=\"server-name\"\n value={this.serverNameInputValue}\n onInput={event =>\n this.#inputHandler(event, \"serverNameInputValue\")\n }\n placeholder={this.#_componentLocale.placeholders.serverName}\n maxLength={18}\n ref={el =>\n (this.#serverFriendlyNameEL = el as HTMLChEditElement)\n }\n ></ch-edit>\n {this.#evaluateTooltipRender(this.#serverFriendlyNameEL)}\n </div>\n </div>\n </section>\n )}\n\n {this.#renderFooter()}\n </main>\n </Host>\n );\n }\n}\n\nexport type ConnectionResultData = {\n formResult: FormSubmitResult;\n};\n\nexport type ConnectionOption = \"select\" | \"new\";\n\nexport type ServerAccessLevel = \"public\" | \"private\";\n\nexport type AuthenticationSessionOrigin = {\n uri: string;\n name: string;\n};\n\nexport type ServerData = {\n id: string;\n serverUrl: string;\n accessLevel: ServerAccessLevel;\n masterSessionUsername: string;\n serverName?: string;\n sessionId?: string;\n gxServerUsername: string;\n isConnected: boolean;\n};\n\nexport type NewServerConnectionData = {\n serverUrl: string;\n serverName: string;\n};\n"],"version":3}
|
|
@@ -11,7 +11,7 @@ import { s as sortTabularGridColumn } from './tabular-grid-column-sort.js';
|
|
|
11
11
|
import { d as defineCustomElement$3 } from './gx-ide-empty-state2.js';
|
|
12
12
|
import { d as defineCustomElement$2 } from './ide-loader.js';
|
|
13
13
|
|
|
14
|
-
const bringChangesCss = ".custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}:host{--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s);display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr}.detail__current-version,.detail__knowledge-base{max-inline-size:250px;min-inline-size:180px}.detail__current-version,.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-1,.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-2,.detail__merge-from-version{padding-inline-start:24px}.section{display:contents}.header{display:grid;gap:24px}.header__detail{display:grid;grid-template-areas:\"detail-title detail-title detail-title detail-title\" \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\" \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";row-gap:16px;grid-template-columns:minmax(250px, 350px) repeat(3, minmax(180px, 250px))}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__title{grid-area:detail-title}.detail__commit-name{grid-area:detail-commit-name}.detail__genexus-server{grid-area:detail-genexus-server}.detail__genexus-server>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__current-version{grid-area:detail-current-version}.detail__merge-from-version{grid-area:detail-merge-from-version}.header__information{display:grid;row-gap:10px;grid-template-areas:\"information-title information-title\" \"information-col-1 information-col-2\";grid-template-columns:max-content 1fr;grid-template-rows:max-content 64px}.information__title{grid-area:information-title}.information__col-1{grid-area:information-col-1;display:flex;gap:24px}.information__col-2{display:grid;grid-area:information-col-2}.controls-container{display:grid;margin-block-start:24px}.filter{grid-template-columns:232px 186px 1fr;gap:12px}.button-merge-checked{margin-inline-start:auto}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0}.tabular-grid{border-radius:4px;overflow:hidden}.empty-state{block-size:100%}.loader{--elevation-background-color:var(--mer-surface__elevation--01)}.
|
|
14
|
+
const bringChangesCss = ".custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}.warning-error-description{display:flex;align-items:center;gap:8px;padding:8px;max-inline-size:800px;line-height:1.5}.warning-error-icon{flex-shrink:0}:host{--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s);display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr}.detail__current-version,.detail__knowledge-base{max-inline-size:250px;min-inline-size:180px}.detail__current-version,.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-1,.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-2,.detail__merge-from-version{padding-inline-start:24px}.section{display:contents}.header{display:grid;gap:24px}.header__detail{display:grid;grid-template-areas:\"detail-title detail-title detail-title detail-title\" \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\" \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";row-gap:16px;grid-template-columns:minmax(250px, 350px) repeat(3, minmax(180px, 250px))}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__title{grid-area:detail-title}.detail__commit-name{grid-area:detail-commit-name}.detail__genexus-server{grid-area:detail-genexus-server}.detail__genexus-server>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__current-version{grid-area:detail-current-version}.detail__merge-from-version{grid-area:detail-merge-from-version}.header__information{display:grid;row-gap:10px;grid-template-areas:\"information-title information-title\" \"information-col-1 information-col-2\";grid-template-columns:max-content 1fr;grid-template-rows:max-content 64px}.information__title{grid-area:information-title}.information__col-1{grid-area:information-col-1;display:flex;gap:24px}.information__col-2{display:grid;grid-area:information-col-2}.controls-container{display:grid;margin-block-start:24px}.filter{grid-template-columns:232px 186px 1fr;gap:12px}.button-merge-checked{margin-inline-start:auto}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0}.tabular-grid{border-radius:4px;overflow:hidden}.empty-state{block-size:100%}.loader{--elevation-background-color:var(--mer-surface__elevation--01)}.tabular-grid.empty-result::part(main){overflow:hidden}.input-comments-container{position:relative}.input-comments{--control__border-color:transparent;padding-block:0 !important;padding-inline:0 !important;--line-height-tight:1.4;block-size:100%;background-color:var(--mer-surface);transition:var(--mer-timing--super-fast) block-size, var(--mer-timing--super-fast) background-color, var(--mer-timing--super-fast) padding-block, var(--mer-timing--super-fast) padding-inline}.input-comments:focus{position:absolute;block-size:200px;inline-size:100%;z-index:99;background-color:var(--mer-surface__elevation--01);padding-block:var(--control__padding-block) !important;padding-inline:var(--control__padding-inline) !important}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){background-size:contain;margin-inline-end:0;--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--enabled);cursor:pointer}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--hover)}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--active)}.tabular-grid-row-actions::part(main),.property-grid-row-actions::part(main){gap:0 !important}.tabular-grid-row-actions>button{justify-content:start}.pill{--pill-background-color:transparent;--pill-color:transparent;--pill-border-color:transparent;background-color:var(--pill-background-color);color:var(--pill-color);border:1px solid var(--pill-border-color);inline-size:100%;padding:var(--pill-padding-block) var(--pill-padding-inline);display:flex;align-items:center;justify-content:center;border-radius:var(--pill-border-radius);position:relative;font-weight:var(--font-weight-semi-bold)}.pill--to-merge,.pill--to-revert{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--pending{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--warning{--pill-background-color:var(--mer-color__tinted-yellow--5);--pill-color:var(--mer-border-color__warning);--pill-border-color:var(--mer-color__tinted-yellow--60)}.pill--error{--pill-background-color:var(--mer-color__tinted-red--5);--pill-color:var(--mer-border-color__error);--pill-border-color:var(--mer-color__tinted-red--60)}.pill--merged,.pill--reverted{--pill-background-color:var(--mer-color__tinted-green--5);--pill-color:var(--mer-border-color__success);--pill-border-color:var(--mer-color__tinted-green--60)}.pill--transitioning{--pill-color:transparent}.merging-spinner-caption{display:flex;align-items:center;gap:6px;--status-circle-color:transparent;--status-circle-size:$size;--status-circle-inset-inline-start:14px;--pill-color:var(--mer-border-color__primary)}.merging-spinner-caption::before{display:inline-block;content:\"\";width:14px;height:14px;border:calc(14px / 7) solid var(--mer-color__tinted-primary--50);border-top:calc(14px / 7) solid var(--mer-color__primary--300);border-radius:50%;animation:spin var(--mer-timing--regular) linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.tabular-grid .button-secondary{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon){pointer-events:none;opacity:0.5}.tabular-grid-column--settings-custom-selector,.tabular-grid-cell--settings-custom-selector{--grid-cell__padding-inline:0;--grid-cell__padding-block:0}.tabular-grid-cell::part(actions-icon){padding-block:6px}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){block-size:100%;display:block;background-size:14px;padding-inline:16px}.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden}.tabular-grid-row-actions::part(window){background-color:var(--mer-surface__elevation--02) !important}.tabular-grid-row .tabular-grid-cell:nth-child(3){min-inline-size:400px}";
|
|
15
15
|
|
|
16
16
|
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
17
17
|
if (kind === "a" && !f)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-team-dev-bring-changes.js","mappings":"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","names":["GxIdeTeamDevBringChanges"],"sources":["src/components/team-dev/bring-changes/bring-changes.scss?tag=gx-ide-team-dev-bring-changes&encapsulation=shadow","src/components/team-dev/bring-changes/bring-changes.tsx"],"sourcesContent":["@import \"../common/styles.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n --pill-border-radius: 12px;\n --pill-padding-inline: 8px;\n --pill-padding-block: 2px;\n --pill-font-size: var(--font-size-body-s);\n\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content max-content 1fr;\n}\n$header-item-common-inline-padding: 24px;\n$header-item-common-separator-border: 1px solid\n var(--mer-border-color__on-elevation--01);\n\n%header-item-common-inline-sizes {\n max-inline-size: 250px;\n min-inline-size: 180px;\n}\n%header-item-common {\n padding-inline: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n @extend %header-item-common-inline-sizes;\n}\n%header-item-common-start {\n padding-inline-end: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n}\n%header-item-common-end {\n padding-inline-start: $header-item-common-inline-padding;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n display: grid;\n gap: 24px;\n}\n\n// header detail\n.header__detail {\n display: grid;\n grid-template-areas:\n \"detail-title detail-title detail-title detail-title\"\n \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\"\n \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";\n row-gap: 16px;\n // grid-auto-columns: max-content;\n // grid-template-columns: max-content auto auto auto;\n grid-template-columns: minmax(250px, 350px) repeat(3, minmax(180px, 250px));\n}\n.detail__label {\n color: var(--mer-color__neutral-gray--400);\n}\n.detail__title {\n grid-area: detail-title;\n}\n.detail__commit-name {\n grid-area: detail-commit-name;\n}\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n @extend %header-item-common-start;\n\n > a {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n }\n}\n.detail__link {\n align-items: start;\n color: var(--mer-text__primary);\n text-decoration: underline;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n}\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n @extend %header-item-common;\n}\n.detail__current-version {\n grid-area: detail-current-version;\n @extend %header-item-common;\n}\n.detail__merge-from-version {\n grid-area: detail-merge-from-version;\n @extend %header-item-common-end;\n}\n\n// header information\n.header__information {\n display: grid;\n row-gap: 10px;\n grid-template-areas:\n \"information-title information-title\"\n \"information-col-1 information-col-2\";\n grid-template-columns: max-content 1fr;\n grid-template-rows: max-content 64px;\n}\n.information__title {\n grid-area: information-title;\n}\n.information__col-1 {\n grid-area: information-col-1;\n display: flex;\n gap: 24px;\n @extend %header-item-common-start;\n}\n.information__col-2 {\n display: grid;\n grid-area: information-col-2;\n @extend %header-item-common-end;\n}\n\n// filter / controls-container\n.controls-container {\n display: grid;\n margin-block-start: 24px;\n}\n.filter {\n grid-template-columns: 232px 186px 1fr;\n gap: 12px;\n}\n.button-merge-checked {\n margin-inline-start: auto;\n}\n\n// main\n.main {\n position: relative;\n display: grid;\n overflow: auto;\n}\n.loader {\n position: relative;\n inline-size: 100%;\n block-size: 100%;\n inset-block-start: 0;\n}\n.tabular-grid {\n border-radius: 4px;\n overflow: hidden;\n}\n\n.empty-state {\n block-size: 100%;\n}\n.loader {\n --elevation-background-color: var(--mer-surface__elevation--01);\n}\n\n.warning-error-description {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px;\n max-inline-size: 800px;\n line-height: 1.5; // WA. Line height looks too tight.\n}\n.warning-error-icon {\n flex-shrink: 0;\n}\n\n.tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\n// - - - - - - - - - - - - - -\n// WA (WORK AROUNDS)\n// - - - - - - - - - - - - - -\n\n.input-comments-container {\n position: relative;\n}\n// ch-edit for comments WA's\n// Figma design for this component displays the textarea witout border, and with a little more line-height.\n// The following styles are a temporary WA that should be brouhgt to Mercury DS.\n.input-comments {\n --control__border-color: transparent;\n padding-block: 0 !important;\n padding-inline: 0 !important;\n --line-height-tight: 1.4;\n block-size: 100%;\n background-color: var(--mer-surface);\n transition:\n var(--mer-timing--super-fast) block-size,\n var(--mer-timing--super-fast) background-color,\n var(--mer-timing--super-fast) padding-block,\n var(--mer-timing--super-fast) padding-inline;\n}\n.input-comments:focus {\n position: absolute;\n block-size: 200px;\n inline-size: 100%;\n z-index: 99;\n background-color: var(--mer-surface__elevation--01);\n padding-block: var(--control__padding-block) !important;\n padding-inline: var(--control__padding-inline) !important;\n}\n\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n background-size: contain; //force icon fit container\n margin-inline-end: 0;\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--enabled);\n cursor: pointer;\n &:hover {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--hover);\n }\n &:active {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--active);\n }\n}\n\n.tabular-grid-row-actions::part(main),\n.property-grid-row-actions::part(main) {\n // gap not required since buttons are tertiary.\n // extra space perceived.\n gap: 0 !important;\n}\n\n.tabular-grid-row-actions {\n // Butons are center by default, but design dictates start alignemnt\n > button {\n justify-content: start;\n }\n}\n\n// These static type of pills do not exist on Mercury yet.\n// They should be defined on Mercury. The actual pills on Mercury\n// are combo-boxes. Not what we need for this case.\n\n.pill {\n --pill-background-color: transparent;\n --pill-color: transparent;\n --pill-border-color: transparent;\n\n background-color: var(--pill-background-color);\n color: var(--pill-color);\n border: 1px solid var(--pill-border-color);\n inline-size: 100%;\n padding: var(--pill-padding-block) var(--pill-padding-inline);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--pill-border-radius);\n position: relative;\n font-weight: var(--font-weight-semi-bold);\n\n &--to-merge,\n &--to-revert {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--to-merge-marked {\n --pill-background-color: var();\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var();\n }\n &--pending {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--warning {\n --pill-background-color: var(--mer-color__tinted-yellow--5);\n --pill-color: var(--mer-border-color__warning);\n --pill-border-color: var(--mer-color__tinted-yellow--60);\n }\n &--error {\n --pill-background-color: var(--mer-color__tinted-red--5);\n --pill-color: var(--mer-border-color__error);\n --pill-border-color: var(--mer-color__tinted-red--60);\n }\n &--merged,\n &--reverted {\n --pill-background-color: var(--mer-color__tinted-green--5);\n --pill-color: var(--mer-border-color__success);\n --pill-border-color: var(--mer-color__tinted-green--60);\n }\n &--transitioning {\n // used to hide the text, before updating the caption (smooth transtion)\n --pill-color: transparent;\n }\n}\n.merging-spinner-caption {\n display: flex;\n align-items: center;\n gap: 6px;\n $size: 14px;\n --status-circle-color: transparent;\n --status-circle-size: $size;\n --status-circle-inset-inline-start: 14px;\n --pill-color: var(--mer-border-color__primary);\n &::before {\n display: inline-block;\n content: \"\";\n\n @include spinner(\n $size,\n var(--mer-color__primary--300),\n var(--mer-color__tinted-primary--50)\n );\n }\n}\n.tabular-grid .button-secondary {\n --control__padding-block: var(--pill-padding-block);\n --control__padding-inline: var(--pill-padding-inline);\n font-size: inherit;\n font-weight: inherit;\n /* font-size: var(--pill-font-size); */\n}\n\n.tabular-grid .tabular-grid-cell--for-pill {\n --grid-cell__padding-block: 4px;\n align-items: center;\n justify-content: center;\n\n // --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),\n.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon) {\n pointer-events: none;\n opacity: 0.5;\n}\n.tabular-grid-column--settings-custom-selector,\n.tabular-grid-cell--settings-custom-selector {\n --grid-cell__padding-inline: 0;\n --grid-cell__padding-block: 0;\n}\n.tabular-grid-cell::part(actions-icon) {\n padding-block: 6px;\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n block-size: 100%;\n display: block;\n background-size: 14px;\n padding-inline: 16px;\n}\n\n.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label) {\n visibility: hidden;\n}\n\n.tabular-grid-row-actions::part(window) {\n background-color: var(--mer-surface__elevation--02) !important;\n}\n\n.tabular-grid-row .tabular-grid-cell:nth-child(3) {\n min-inline-size: 400px;\n}\n\n// - - - - - - - - - - - - - -\n// END OF WA\n// - - - - - - - - - - - - - -\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n JSX,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { Locale } from \"../../../common/locale\";\nimport {\n ChEditCustomEvent,\n TabularGridMarkingChangedEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { ObjectType } from \"../../../components\";\n\nimport { config } from \"../../../common/config\";\n\nimport { ContextMenuCallback } from \"../../../components\";\n\nimport { renderObjectTypeWithIcon } from \"../common/utilities\";\n\nimport { COLUMNS_IDS } from \"../version-control/common/tabular-grid-render\";\nimport sortTabularGridColumn, {\n type SortTabularGridColumnDataType\n} from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tabular-grid\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst COMBO_BOX_ALL_VALUE = \"all\";\n\nconst DETAIL_LABEL_CLASSES = \"detail__label body-semi-bold-s\";\n\nconst ADD_ICON = getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"on-elevation\"\n});\nconst EDITED_ICON = getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"on-elevation\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n});\nconst SUBSTRACT_ICON = getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"on-elevation\"\n});\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n});\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-bring-changes\",\n styleUrl: \"bring-changes.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-bring-changes\"]\n})\nexport class GxIdeTeamDevBringChanges {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n #commitLabel: string;\n #comboBoxStatesModel: { caption: string; value: ObjectStateForFilter }[];\n #checkedObjectsIdsArray: string[] = [];\n\n @Element() el: HTMLGxIdeTeamDevBringChangesElement;\n\n private tabularGridEl!: HTMLChTabularGridElement;\n\n /**\n * An array that holds the id's of the objects that have been merged already.\n */\n @State() alreadyMergedObjectsIdsArray: string[] = [];\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() atLeastOneObjectIsChecked: boolean = false;\n\n /**\n * True while commitObjects hasn't been loaded or is empty. Used to display a loader.\n */\n @State() loading: boolean = true;\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() objectsFiltered: CommitObject[] = [];\n\n /**\n * The current search filter value\n */\n @State() searchValue: string = \"\";\n\n /**\n * The current state filter value\n */\n @State() stateFilterValue: ObjectStateForFilter = COMBO_BOX_ALL_VALUE;\n\n /**\n * A set that stores the marked state of each object cell. This is necessary because filtering the grid * causes marked cells to lose their state.\n */\n @State() markedObjectsSet: Set<string> = new Set<string>();\n\n /**\n * A map that holds the current commit objects states (\"pending\" | \"warning\" | \"error\" | \"merged\" | \"reverted\")\n */\n @State() objectsStatesMap: Map<string, ObjectState> = new Map();\n @Watch(\"objectsStatesMap\")\n objectsStatesMapChanged(newCommitObjectsStateMap: Map<string, ObjectState>) {\n const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(\n ([, state]) => state === \"merging\" || state === \"reverting\"\n );\n\n if (!someObjectIsMerging) {\n this.merging = false;\n }\n }\n\n /**\n * A map that holds object messages, if any, for objects that could not be merged (these objects are in a \"warning\" or \"error\" state)\n */\n @State() commitObjectsMessagesMap: Map<string, string> = new Map();\n\n /**\n * Set to true when objects are being mered. This helps disabling controls until all objects are done.\n */\n @State() merging: boolean = false;\n\n /**\n * Detail about the commit\n */\n @Prop() readonly commitDetail: CommitDetail;\n\n /**\n * Commit information\n */\n @Prop() readonly commitInformation: CommitInformation[] = [];\n\n /**\n * Array of commit\n */\n @Prop() readonly commitObjects: CommitObject[] = [];\n @Watch(\"commitObjects\")\n commitObjectsChanged(newCommitObjects: CommitObject[]) {\n if (newCommitObjects.length) {\n // This is the first and only objects asignment\n this.loading = false;\n\n // All commit objects begin as \"pending to merge\"\n newCommitObjects.forEach(commitObject => {\n this.objectsStatesMap.set(\n commitObject.id,\n this.operationType === \"revert\" ? \"to-revert\" : \"to-merge\"\n );\n });\n\n this.objectsFiltered = this.commitObjects;\n }\n }\n\n /**\n * Determines whether the filters are rendered or not.\n */\n @Prop() readonly hideFilters: boolean = false;\n\n /**\n * The type of operation to perform: \"merge\" or \"revert\".\n */\n @Prop() readonly operationType: OperationType = \"merge\";\n\n /**\n * The callback that is triggered when the user wants to merge more than one commit.\n */\n @Prop() readonly mergeObjectsCallback!: MergeObjectsCallback;\n\n /**\n * If true, the \"Action\" column will display a button instead of a pill, only when the action is\n */\n @Prop() readonly revertPillAsButton: boolean = false;\n\n /**\n * Invoked when user activates the context menu on th grid.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#commitLabel =\n this.commitInformation.length > 1\n ? this.#componentLocale.commmits\n : this.#componentLocale.commmit;\n\n // Initiate \"states\" combo box filter\n this.#comboBoxStatesModel = [\n {\n caption: this.#componentLocale.states.all,\n value: COMBO_BOX_ALL_VALUE\n },\n {\n caption:\n this.operationType === \"revert\"\n ? this.#componentLocale.states[\"to-revert\"]\n : this.#componentLocale.states[\"to-merge\"],\n value: this.operationType === \"revert\" ? \"to-revert\" : \"to-merge\"\n },\n {\n caption: this.#componentLocale.states.warning,\n value: \"warning\"\n },\n {\n caption: this.#componentLocale.states.error,\n value: \"error\"\n },\n {\n caption:\n this.operationType === \"revert\"\n ? this.#componentLocale.states.reverted\n : this.#componentLocale.states.merged,\n value: this.operationType === \"revert\" ? \"reverted\" : \"merged\"\n }\n ];\n\n if (this.commitObjects?.length) {\n // if commitObjects already set...\n this.commitObjectsChanged(this.commitObjects);\n }\n }\n\n #formatComments = (): string => {\n if (this.commitInformation.length === 1) {\n // return comment without revison number\n return this.commitInformation[0].comment;\n }\n\n // return comments with revison number\n let mergedComment = \"\";\n this.commitInformation.map((commit, i) => {\n const isLast = i === this.commitInformation.length - 1;\n const afterCommentBreakline = isLast ? \"\" : \"\\n\\n\";\n mergedComment += `Commit ${commit.id}:\\n${commit.comment}${afterCommentBreakline}`;\n });\n\n return mergedComment;\n };\n\n #mergeCheckedClickedHandler = async () => {\n this.merging = true;\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n this.#checkedObjectsIdsArray.forEach(checkedObjectId => {\n newobjectsStatesMap.set(\n checkedObjectId,\n this.operationType === \"revert\" ? \"reverting\" : \"merging\"\n );\n });\n\n this.objectsStatesMap = newobjectsStatesMap;\n await this.mergeObjectsCallback(this.#checkedObjectsIdsArray);\n };\n\n #mergeSingleObject: (objectId: string) => () => void =\n objectId => async () => {\n this.merging = true;\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n newobjectsStatesMap.set(\n objectId,\n this.operationType === \"revert\" ? \"reverting\" : \"merging\"\n );\n this.objectsStatesMap = newobjectsStatesMap;\n await this.mergeObjectsCallback([objectId]);\n };\n\n #renderActionCellContent = (\n actionTaken: ObjectActionTaken\n ): JSX.Element[] => {\n let icon: string;\n let caption: string;\n let iconColor: string;\n\n if (actionTaken === \"Deleted\") {\n icon = SUBSTRACT_ICON;\n caption = this.#componentLocale.objects.actions.delete;\n iconColor = \"--mer-icon__error\";\n } else if (actionTaken === \"Inserted\") {\n icon = ADD_ICON;\n caption = this.#componentLocale.objects.actions.insert;\n iconColor = \"--mer-icon__success\";\n } else {\n // modified\n icon = EDITED_ICON;\n caption = this.#componentLocale.objects.actions.modify;\n iconColor = \"--mer-icon__warning\";\n }\n\n return (\n <span class=\"custom-icon-text-wrapper\">\n <ch-image\n type=\"mask\"\n class=\"icon-md\"\n src={icon}\n style={{ backgroundColor: `var(${iconColor})` }}\n ></ch-image>\n {`${caption}`}\n </span>\n );\n };\n\n #renderCommitsNumbers = (onlyNumbers: boolean = false): string => {\n if (this.commitInformation?.length > 1) {\n // more than one commit\n return onlyNumbers\n ? `${this.commitInformation[0].id} ... ${\n this.commitInformation[this.commitInformation.length - 1].id\n }`\n : `${this.#commitLabel} ${this.commitInformation[0].id} ... ${\n this.commitInformation[this.commitInformation.length - 1].id\n }`;\n } else if (this.commitInformation?.length === 1) {\n // just one commit\n return onlyNumbers\n ? this.commitInformation[0].id\n : `${this.#commitLabel} ${this.commitInformation[0].id}`;\n } else {\n // Probably commits have not been loaded yet (loading state)\n return onlyNumbers\n ? `${this.#componentLocale.loading}`\n : `${this.#commitLabel} ${this.#componentLocale.loading}`;\n }\n };\n\n #renderFormatedDate = (date: Date): string => {\n const dateObject = new Date(date);\n const lang = navigator.languages?.[0] || navigator.language;\n\n return `${dateObject.toLocaleDateString(\n lang\n )} ${dateObject.toLocaleTimeString(lang, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false\n })}`;\n };\n\n #renderObjectStateWithIcon = (\n objectType: ObjectState,\n objectId: string\n ): JSX.Element[] => {\n if (objectType === \"merging\" || objectType === \"reverting\") {\n return (\n <span class=\"merging-spinner-caption\">\n {this.operationType === \"revert\"\n ? this.#componentLocale.states.reverting\n : this.#componentLocale.states.merging}\n </span>\n );\n }\n const classes = `pill pill--${objectType}`;\n if (\n this.revertPillAsButton &&\n (objectType === \"to-merge\" ||\n objectType === \"to-merge-marked\" ||\n objectType === \"to-revert\")\n ) {\n return (\n <button\n class={{ [classes]: true, \"button-secondary\": true }}\n onClick={this.#mergeSingleObject(objectId)}\n >\n {this.#componentLocale.statesForButton[objectType]}\n </button>\n );\n } else {\n return (\n <span class={classes}>{this.#componentLocale.states[objectType]}</span>\n );\n }\n };\n\n #renderObjectsRows = (): JSX.Element[] => {\n return this.objectsFiltered.map(commitObject => {\n const marked = this.markedObjectsSet.has(commitObject.id);\n\n const alreadyMerged = this.alreadyMergedObjectsIdsArray.find(\n checkedObjectId => checkedObjectId === commitObject.id\n );\n const errorOrWarningMessage = this.commitObjectsMessagesMap.get(\n commitObject.id\n );\n const state = this.objectsStatesMap.get(commitObject.id);\n\n let MESSAGE_ICON;\n if (state === \"error\") {\n MESSAGE_ICON = ERROR_ICON;\n } else if (state === \"warning\") {\n MESSAGE_ICON = WARNING_ICON;\n }\n\n return (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n key={commitObject.id}\n rowid={commitObject.id}\n ref={(el: HTMLElement) =>\n marked && el?.setAttribute(\"marked\", \"true\")\n }\n >\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector=\"true\"\n class={{\n \"tabular-grid-cell\": true,\n \"no-checkbox-custom-selector\": alreadyMerged\n }}\n size=\"max-content\"\n >\n {commitObject.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(commitObject.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {commitObject.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderActionCellContent(commitObject.actionTaken)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell--for-pill\">\n {this.#renderObjectStateWithIcon(\n this.objectsStatesMap.get(commitObject.id),\n commitObject.id\n )}\n </ch-tabular-grid-cell>\n {errorOrWarningMessage && (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty\n class={{ \"tabular-grid-rowset-empty\": true, [state]: true }}\n >\n <p class=\"warning-error-description\">\n <ch-image\n class=\"icon-md warning-error-icon\"\n src={MESSAGE_ICON}\n ></ch-image>\n {errorOrWarningMessage}\n </p>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid-row>\n );\n });\n };\n\n #rowContextMenuHandler = async (\n ev: CustomEvent<TabularGridRowContextMenuEvent>\n ) => {\n ev.preventDefault();\n const selectedRowsIds = await this.tabularGridEl.getSelectedRows();\n\n await this.contextMenuCallback({\n selection: selectedRowsIds,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n #rowMarkingChangedHandler = (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n const newobjectsMarkedSet = new Set<string>();\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n const markedRowsIds = event.detail.rowsId;\n const checkedObjectsIgnoringAlreadyMerged = markedRowsIds.filter(\n markedObjectId =>\n !this.alreadyMergedObjectsIdsArray.includes(markedObjectId)\n );\n this.#checkedObjectsIdsArray = [...checkedObjectsIgnoringAlreadyMerged];\n\n // Update markedObjectsSet\n this.#checkedObjectsIdsArray.forEach(checkedObjectId => {\n newobjectsMarkedSet.add(checkedObjectId);\n });\n this.markedObjectsSet = newobjectsMarkedSet;\n\n this.atLeastOneObjectIsChecked = markedRowsIds.length > 0;\n\n newobjectsStatesMap.forEach(objectId => {\n const objectCurrentState = this.objectsStatesMap.get(objectId);\n if (\n objectCurrentState !== \"to-merge\" &&\n objectCurrentState !== \"to-merge-marked\"\n ) {\n return;\n }\n\n const markedRowIndex = markedRowsIds.findIndex(id => id === objectId);\n if (markedRowIndex !== -1) {\n newobjectsStatesMap.set(objectId, \"to-merge-marked\");\n markedRowsIds.splice(markedRowIndex, 1);\n markedRowsIds;\n } else {\n newobjectsStatesMap.set(objectId, \"to-merge\");\n }\n });\n\n this.objectsStatesMap = newobjectsStatesMap;\n };\n\n #searchInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.searchValue = (event.detail as string).toLowerCase();\n this.#updateFilteredObjects();\n };\n\n #stateChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.stateFilterValue = event.detail as ObjectStateForFilter;\n this.#updateFilteredObjects();\n };\n\n #updateFilteredObjects = () => {\n let filteredObjects = [...this.commitObjects];\n\n // filter by state (ch-combo-box-render) ...\n if (this.stateFilterValue !== \"all\") {\n filteredObjects = filteredObjects.filter(object => {\n const objectState = this.objectsStatesMap.get(object.id);\n return objectState === this.stateFilterValue;\n });\n }\n\n // and filter by value (ch-edit) as well\n filteredObjects = filteredObjects.filter(object => {\n const includesName = object.name.toLowerCase().includes(this.searchValue);\n\n const includesType = object.type.name\n .toLowerCase()\n .includes(this.searchValue);\n\n const includesDescription = object.description\n .toLowerCase()\n .includes(this.searchValue);\n\n if (includesName || includesType || includesDescription) {\n return true;\n }\n return false;\n });\n\n this.objectsFiltered = filteredObjects;\n };\n\n /**\n * It allows the host updating an object state, by providing the object id.\n * @param objectId The ID of the object to update.\n * @param newState The new state to set on the object.\n * @param message Optional message explaining the change.\n *\n * @example\n * bringChanges.updateObjectState('obj-24', \"merging\", null);\n * bringChanges.updateObjectState('obj-27', \"error\", \"The server did not respond.\");\n */\n @Method()\n async updateObjectState(\n objectId: string,\n newState: ObjectState,\n message: string\n ) {\n // update object state\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n newobjectsStatesMap.set(objectId, newState);\n this.objectsStatesMap = newobjectsStatesMap;\n\n // add message if state is \"warning\" or \"error\"\n if (message?.length > 0) {\n this.commitObjectsMessagesMap.set(objectId, message);\n }\n\n if (newState === \"merged\" || newState === \"reverted\") {\n // remove from checked\n this.#checkedObjectsIdsArray = this.#checkedObjectsIdsArray.filter(\n checkedObject => checkedObject !== objectId\n );\n\n // add to \"already merged\". This will hide the checkbox\n this.alreadyMergedObjectsIdsArray.push(objectId);\n\n // unmark checkbox:\n this.tabularGridEl.markRow(objectId, false);\n\n // remove message if any\n this.commitObjectsMessagesMap.delete(objectId);\n }\n }\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n const columnId = e.detail.columnId;\n\n let objectProperty;\n let dateType: SortTabularGridColumnDataType = \"string\";\n if (columnId === COLUMNS_IDS.type) {\n objectProperty = \"name\"; // the type name\n dateType = \"object\";\n }\n\n this.objectsFiltered = [\n ...sortTabularGridColumn(\n e,\n this.objectsFiltered,\n dateType,\n objectProperty\n )\n ];\n };\n\n render() {\n const enableRichRowSelector =\n this.alreadyMergedObjectsIdsArray.length !== this.commitObjects.length;\n\n const disableControls = this.merging || this.loading;\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class=\"header spacing-body-inline spacing-body-block-start\">\n <div\n // header details\n class=\"header__detail\"\n >\n <p class=\"detail__title subtitle-semi-bold-xs\">\n {this.operationType === \"revert\"\n ? this.#componentLocale.commitDetail.revertChangesDetail\n : this.#componentLocale.commitDetail.bringChangesDetail}\n </p>\n <p class=\"detail__commit-name subtitle-semi-bold-s\">\n {this.#renderCommitsNumbers()}\n </p>\n <div\n // genexus server\n class=\"detail__genexus-server field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.genexusServer}\n </span>\n <a\n class=\"detail__link body-regular-s\"\n href={this.commitDetail.genexusServer}\n target=\"_blank\"\n >\n {this.commitDetail.genexusServer}\n </a>\n </div>\n\n <div\n // knowledge base\n class=\"detail__knowledge-base field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.knowledgeBase}\n </span>\n <p class=\"body-regular-s\">{this.commitDetail.knowledgeBase}</p>\n </div>\n\n <div\n // current version\n class=\"detail__current-version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.currentVersion}\n </span>\n <a class=\"body-regular-s\">{this.commitDetail.currentVersion}</a>\n </div>\n {this.operationType === \"merge\" && (\n <div\n // merge from version\n class=\"detail__merge-from-version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.mergeFromVersion}\n </span>\n <p class=\"body-regular-s\">\n {this.commitDetail.mergeFromVersion}\n </p>\n </div>\n )}\n </div>\n <div\n // header information\n class=\"header__information\"\n >\n <p class=\"information__title subtitle-semi-bold-xs\">\n {this.#componentLocale.commitInformation.title}\n </p>\n <div\n // header information (col-1)\n class=\"information__col-1\"\n >\n <div\n // IDs\n class=\"field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.commitInformation.length === 1\n ? this.#componentLocale.commitInformation.id\n : this.#componentLocale.commitInformation.ids}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderCommitsNumbers(true)}\n </p>\n </div>\n {this.commitInformation.length === 1 ? (\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.date}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(this.commitInformation[0].date)}\n </p>\n </div>\n ) : (\n [\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.from}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(\n this.commitInformation[0].date\n )}\n </p>\n </div>,\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.to}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(\n this.commitInformation[\n this.commitInformation.length - 1\n ].date\n )}\n </p>\n </div>\n ]\n )}\n </div>\n\n <div\n // header information (col-2)\n class=\"information__col-2\"\n >\n <div\n // To\n class=\"field field-block\"\n >\n <label class={DETAIL_LABEL_CLASSES} htmlFor=\"commit-comments\">\n {this.commitInformation.length > 1\n ? this.#componentLocale.commitInformation.comments\n : this.#componentLocale.commitInformation.comment}\n </label>\n <div class=\"input-comments-container\">\n <ch-edit\n id=\"commit-comments\"\n class=\"input scrollable input-comments body-regular-s\"\n type=\"text\"\n multiline\n readonly\n value={this.#formatComments()}\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </header>\n <div\n class={{\n \"controls-container\": true,\n \"filter\": !this.hideFilters,\n \"spacing-body-inline\": true\n }}\n >\n {!this.hideFilters && [\n <ch-edit\n class=\"input\"\n disabled={disableControls}\n startImgSrc={SEARCH_ICON}\n placeholder={this.#componentLocale.filter.searchPlaceholder}\n type=\"search\"\n onInput={this.#searchInputHandler}\n ></ch-edit>,\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={disableControls}\n model={this.#comboBoxStatesModel}\n value={this.stateFilterValue}\n onInput={this.#stateChangedHandler}\n placeholder={this.#componentLocale.filter.statePlaceholder}\n ></ch-combo-box-render>\n ]}\n\n <button\n class=\"button-primary button-merge-checked\"\n disabled={!this.atLeastOneObjectIsChecked || disableControls}\n onClick={this.#mergeCheckedClickedHandler}\n >\n {this.operationType === \"revert\"\n ? this.#componentLocale.filter.revertSelected\n : this.#componentLocale.filter.mergeSelected}\n </button>\n </div>\n <div class=\"main spacing-body\">\n {this.commitObjects.length ? (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"objects-tabular-grid\": true,\n \"disabled-custom-selector\": this.merging,\n \"empty-result\": this.objectsFiltered.length === 0\n }}\n keyboardNavigationMode=\"focus\"\n rowSelectionMode=\"multiple\"\n onRowMarkingChanged={this.#rowMarkingChangedHandler}\n onRowContextMenu={this.#rowContextMenuHandler}\n ref={(el: HTMLChTabularGridElement) =>\n (this.tabularGridEl = el as HTMLChTabularGridElement)\n }\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.name}\n columnName={this.#componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={enableRichRowSelector}\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.type}\n columnName={this.#componentLocale.objects.type}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.description}\n columnName={this.#componentLocale.objects.description}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size={config.tabularGrid.colSize.description}\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.action}\n columnName={this.#componentLocale.objects.action}\n settingable={false}\n sortable={false}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n // size of this column should the enough for the largest pill, and no more.\n // this prevents layout shifts when pills state changes.\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.status}\n columnName={this.#componentLocale.objects.status}\n settingable={false}\n sortable={false}\n size=\"100px\"\n />\n </ch-tabular-grid-columnset>\n {this.#renderObjectsRows()}\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objectsFiltered.length === 0 && (\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n class=\"empty-state\"\n isAnimated\n stateIconSrc={FILTER_ICON}\n stateTitle=\"No object matched your filter\"\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n )}\n </ch-tabular-grid-rowset>\n </ch-tabular-grid>\n ) : (\n <gx-ide-loader\n cancelLabel={this.#componentLocale.loader.cancelLabel}\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n class=\"loader\"\n ></gx-ide-loader>\n )}\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type OperationType = \"merge\" | \"revert\";\n\nexport type CommitDetail = {\n genexusServer: string;\n knowledgeBase: string;\n currentVersion: string;\n mergeFromVersion: string;\n};\n\nexport type CommitInformation = {\n id: string;\n comment: string;\n date: Date;\n};\n\nexport type CommitObject = {\n id: string;\n date: Date;\n name: string;\n type: ObjectType;\n description: string;\n actionTaken: ObjectActionTaken;\n};\n\nexport type ObjectActionTaken =\n | \"Inserted\"\n | \"Deleted\"\n | \"Modified\"\n | \"Unchanged\"\n | \"Unknown\";\n\nexport type ObjectState =\n | \"to-merge\"\n | \"to-merge-marked\"\n | \"to-revert\"\n | \"merging\"\n | \"pending\"\n | \"warning\"\n | \"error\"\n | \"merged\"\n | \"reverted\"\n | \"reverting\";\n\ntype ObjectStateForFilter =\n | Extract<\n ObjectState,\n \"to-merge\" | \"to-revert\" | \"warning\" | \"error\" | \"merged\" | \"reverted\"\n >\n | \"all\";\n\nexport type MergeObjectsCallback = (objectsIds: string[]) => Promise<void>;\n"],"version":3}
|
|
1
|
+
{"file":"gx-ide-team-dev-bring-changes.js","mappings":";;;;;;;;;;;;;AAAA,MAAM,eAAe,GAAG,owOAAowO;;;;;;;;;;;;;;;;;;;ACiC5xO,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,yBAAyB;IACzB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AAE9D,MAAM,QAAQ,GAAG,WAAW,CAAC;IAC3B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,WAAW,CAAC;IACjC,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,WAAW,CAAC;IAC/B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC;MAQUA,0BAAwB;;;;;;;;;QAKnC,4DAAsB;QACtB,wDAAqB;QACrB,gEAAyE;QACzE,2DAAoC,EAAE,EAAC;QAsKvC,mDAAkB;YAChB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAEvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAC1C;;YAGD,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvD,MAAM,qBAAqB,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;gBACnD,aAAa,IAAI,UAAU,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,OAAO,GAAG,qBAAqB,EAAE,CAAC;aACpF,CAAC,CAAC;YAEH,OAAO,aAAa,CAAC;SACtB,EAAC;QAEF,+DAA8B;YAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3D,uBAAA,IAAI,wDAAwB,CAAC,OAAO,CAAC,eAAe;gBAClD,mBAAmB,CAAC,GAAG,CACrB,eAAe,EACf,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,WAAW,GAAG,SAAS,CAC1D,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;YAC5C,MAAM,IAAI,CAAC,oBAAoB,CAAC,uBAAA,IAAI,wDAAwB,CAAC,CAAC;SAC/D,EAAC;QAEF,sDACE,QAAQ,IAAI;YACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3D,mBAAmB,CAAC,GAAG,CACrB,QAAQ,EACR,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,WAAW,GAAG,SAAS,CAC1D,CAAC;YACF,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;YAC5C,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC7C,EAAC;QAEJ,4DAA2B,CACzB,WAA8B;YAE9B,IAAI,IAAY,CAAC;YACjB,IAAI,OAAe,CAAC;YACpB,IAAI,SAAiB,CAAC;YAEtB,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,IAAI,GAAG,cAAc,CAAC;gBACtB,OAAO,GAAG,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,SAAS,GAAG,mBAAmB,CAAC;aACjC;iBAAM,IAAI,WAAW,KAAK,UAAU,EAAE;gBACrC,IAAI,GAAG,QAAQ,CAAC;gBAChB,OAAO,GAAG,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,SAAS,GAAG,qBAAqB,CAAC;aACnC;iBAAM;;gBAEL,IAAI,GAAG,WAAW,CAAC;gBACnB,OAAO,GAAG,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,SAAS,GAAG,qBAAqB,CAAC;aACnC;YAED,QACE,YAAM,KAAK,EAAC,0BAA0B,IACpC,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,SAAS,EACf,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,SAAS,GAAG,EAAE,GACrC,EACX,GAAG,OAAO,EAAE,CACR,EACP;SACH,EAAC;QAEF,yDAAwB,CAAC,cAAuB,KAAK;;YACnD,IAAI,CAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,MAAM,IAAG,CAAC,EAAE;;gBAEtC,OAAO,WAAW;sBACd,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,QAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAC5D,EAAE;sBACF,GAAG,uBAAA,IAAI,6CAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,QAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAC5D,EAAE,CAAC;aACR;iBAAM,IAAI,CAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,MAAM,MAAK,CAAC,EAAE;;gBAE/C,OAAO,WAAW;sBACd,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;sBAC5B,GAAG,uBAAA,IAAI,6CAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aAC5D;iBAAM;;gBAEL,OAAO,WAAW;sBACd,GAAG,uBAAA,IAAI,iDAAiB,CAAC,OAAO,EAAE;sBAClC,GAAG,uBAAA,IAAI,6CAAa,IAAI,uBAAA,IAAI,iDAAiB,CAAC,OAAO,EAAE,CAAC;aAC7D;SACF,EAAC;QAEF,uDAAsB,CAAC,IAAU;;YAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAG,CAAC,CAAC,KAAI,SAAS,CAAC,QAAQ,CAAC;YAE5D,OAAO,GAAG,UAAU,CAAC,kBAAkB,CACrC,IAAI,CACL,IAAI,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE;gBACvC,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,KAAK;aACd,CAAC,EAAE,CAAC;SACN,EAAC;QAEF,8DAA6B,CAC3B,UAAuB,EACvB,QAAgB;YAEhB,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,WAAW,EAAE;gBAC1D,QACE,YAAM,KAAK,EAAC,yBAAyB,IAClC,IAAI,CAAC,aAAa,KAAK,QAAQ;sBAC5B,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,SAAS;sBACtC,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,OAAO,CACnC,EACP;aACH;YACD,MAAM,OAAO,GAAG,cAAc,UAAU,EAAE,CAAC;YAC3C,IACE,IAAI,CAAC,kBAAkB;iBACtB,UAAU,KAAK,UAAU;oBACxB,UAAU,KAAK,iBAAiB;oBAChC,UAAU,KAAK,WAAW,CAAC,EAC7B;gBACA,QACE,cACE,KAAK,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EACpD,OAAO,EAAE,uBAAA,IAAI,mDAAmB,MAAvB,IAAI,EAAoB,QAAQ,CAAC,IAEzC,uBAAA,IAAI,iDAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAC3C,EACT;aACH;iBAAM;gBACL,QACE,YAAM,KAAK,EAAE,OAAO,IAAG,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAQ,EACvE;aACH;SACF,EAAC;QAEF,sDAAqB;YACnB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY;gBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAC1D,eAAe,IAAI,eAAe,KAAK,YAAY,CAAC,EAAE,CACvD,CAAC;gBACF,MAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAC7D,YAAY,CAAC,EAAE,CAChB,CAAC;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAEzD,IAAI,YAAY,CAAC;gBACjB,IAAI,KAAK,KAAK,OAAO,EAAE;oBACrB,YAAY,GAAG,UAAU,CAAC;iBAC3B;qBAAM,IAAI,KAAK,KAAK,SAAS,EAAE;oBAC9B,YAAY,GAAG,YAAY,CAAC;iBAC7B;gBAED,QACE,2BACE,KAAK,EAAC,kBAAkB,EACxB,GAAG,EAAE,YAAY,CAAC,EAAE,EACpB,KAAK,EAAE,YAAY,CAAC,EAAE,EACtB,GAAG,EAAE,CAAC,EAAe,KACnB,MAAM,KAAI,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA,IAG9C,yCACY,MAAM,kBACH,MAAM,EACnB,KAAK,EAAE;wBACL,mBAAmB,EAAE,IAAI;wBACzB,6BAA6B,EAAE,aAAa;qBAC7C,EACD,IAAI,EAAC,aAAa,IAEjB,YAAY,CAAC,IAAI,CACG,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,CACvB,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,YAAY,CAAC,WAAW,CACJ,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,uBAAA,IAAI,yDAAyB,MAA7B,IAAI,EAA0B,YAAY,CAAC,WAAW,CAAC,CACnC,EACvB,4BAAsB,KAAK,EAAC,+CAA+C,IACxE,uBAAA,IAAI,2DAA2B,MAA/B,IAAI,EACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,EAC1C,YAAY,CAAC,EAAE,CAChB,CACoB,EACtB,qBAAqB,KACpB,8BAAwB,KAAK,EAAC,qBAAqB,IACjD,oCACE,KAAK,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,IAE3D,SAAG,KAAK,EAAC,2BAA2B,IAClC,gBACE,KAAK,EAAC,4BAA4B,EAClC,GAAG,EAAE,YAAY,GACP,EACX,qBAAqB,CACpB,CACyB,CACR,CAC1B,CACmB,EACtB;aACH,CAAC,CAAC;SACJ,EAAC;QAEF,0DAAyB,OACvB,EAA+C;YAE/C,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YAEnE,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;gBAC1B,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;aAC3B,CAAC,CAAC;SACJ,EAAC;QAEF,6DAA4B,CAC1B,KAAkD;YAElD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC9C,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1C,MAAM,mCAAmC,GAAG,aAAa,CAAC,MAAM,CAC9D,cAAc,IACZ,CAAC,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,cAAc,CAAC,CAC9D,CAAC;YACF,uBAAA,IAAI,oDAA2B,CAAC,GAAG,mCAAmC,CAAC,MAAA,CAAC;;YAGxE,uBAAA,IAAI,wDAAwB,CAAC,OAAO,CAAC,eAAe;gBAClD,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;YAE5C,IAAI,CAAC,yBAAyB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1D,mBAAmB,CAAC,OAAO,CAAC,QAAQ;gBAClC,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC/D,IACE,kBAAkB,KAAK,UAAU;oBACjC,kBAAkB,KAAK,iBAAiB,EACxC;oBACA,OAAO;iBACR;gBAED,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;gBACtE,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;oBACzB,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oBACrD,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;iBAEzC;qBAAM;oBACL,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;iBAC/C;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;SAC7C,EAAC;QAEF,uDAAsB,CAAC,KAA6C;YAClE,IAAI,CAAC,WAAW,GAAI,KAAK,CAAC,MAAiB,CAAC,WAAW,EAAE,CAAC;YAC1D,uBAAA,IAAI,uDAAuB,MAA3B,IAAI,CAAyB,CAAC;SAC/B,EAAC;QAEF,wDAAuB,CAAC,KAAuC;YAC7D,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAA8B,CAAC;YAC7D,uBAAA,IAAI,uDAAuB,MAA3B,IAAI,CAAyB,CAAC;SAC/B,EAAC;QAEF,0DAAyB;YACvB,IAAI,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;;YAG9C,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;gBACnC,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM;oBAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACzD,OAAO,WAAW,KAAK,IAAI,CAAC,gBAAgB,CAAC;iBAC9C,CAAC,CAAC;aACJ;;YAGD,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM;gBAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE1E,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI;qBAClC,WAAW,EAAE;qBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE9B,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW;qBAC3C,WAAW,EAAE;qBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE9B,IAAI,YAAY,IAAI,YAAY,IAAI,mBAAmB,EAAE;oBACvD,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC,EAAC;QA6CF,kEAAiC,CAC/B,CAAiD;YAEjD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAEnC,IAAI,cAAc,CAAC;YACnB,IAAI,QAAQ,GAAkC,QAAQ,CAAC;YACvD,IAAI,QAAQ,KAAK,WAAW,CAAC,IAAI,EAAE;gBACjC,cAAc,GAAG,MAAM,CAAC;gBACxB,QAAQ,GAAG,QAAQ,CAAC;aACrB;YAED,IAAI,CAAC,eAAe,GAAG;gBACrB,GAAG,qBAAqB,CACtB,CAAC,EACD,IAAI,CAAC,eAAe,EACpB,QAAQ,EACR,cAAc,CACf;aACF,CAAC;SACH,EAAC;4CA5hBgD,EAAE;yCAKN,KAAK;uBAKvB,IAAI;+BAKW,EAAE;2BAKd,EAAE;gCAKiB,mBAAmB;gCAK5B,IAAI,GAAG,EAAU;gCAKJ,IAAI,GAAG,EAAE;wCAeN,IAAI,GAAG,EAAE;uBAKtC,KAAK;;iCAUyB,EAAE;6BAKX,EAAE;2BAsBX,KAAK;6BAKG,OAAO;;kCAUR,KAAK;;;IAtEpD,uBAAuB,CAAC,wBAAkD;QACxE,MAAM,mBAAmB,GAAG,CAAC,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACtE,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW,CAC5D,CAAC;QAEF,IAAI,CAAC,mBAAmB,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;KACF;IA2BD,oBAAoB,CAAC,gBAAgC;QACnD,IAAI,gBAAgB,CAAC,MAAM,EAAE;;YAE3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;YAGrB,gBAAgB,CAAC,OAAO,CAAC,YAAY;gBACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACvB,YAAY,CAAC,EAAE,EACf,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,WAAW,GAAG,UAAU,CAC3D,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;SAC3C;KACF;IA2BD,MAAM,iBAAiB;;QACrB,uBAAA,IAAI,6CAAoB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;QAClE,uBAAA,IAAI,yCACF,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;cAC7B,uBAAA,IAAI,iDAAiB,CAAC,QAAQ;cAC9B,uBAAA,IAAI,iDAAiB,CAAC,OAAO,MAAA,CAAC;;QAGpC,uBAAA,IAAI,iDAAwB;YAC1B;gBACE,OAAO,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,GAAG;gBACzC,KAAK,EAAE,mBAAmB;aAC3B;YACD;gBACE,OAAO,EACL,IAAI,CAAC,aAAa,KAAK,QAAQ;sBAC3B,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,WAAW,CAAC;sBACzC,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9C,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,WAAW,GAAG,UAAU;aAClE;YACD;gBACE,OAAO,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,OAAO;gBAC7C,KAAK,EAAE,SAAS;aACjB;YACD;gBACE,OAAO,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,KAAK;gBAC3C,KAAK,EAAE,OAAO;aACf;YACD;gBACE,OAAO,EACL,IAAI,CAAC,aAAa,KAAK,QAAQ;sBAC3B,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,QAAQ;sBACrC,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,MAAM;gBACzC,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,UAAU,GAAG,QAAQ;aAC/D;SACF,MAAA,CAAC;QAEF,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,EAAE;;YAE9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC/C;KACF;;;;;;;;;;;IA6UD,MAAM,iBAAiB,CACrB,QAAgB,EAChB,QAAqB,EACrB,OAAe;;QAGf,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;;QAG5C,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,IAAG,CAAC,EAAE;YACvB,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACtD;QAED,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE;;YAEpD,uBAAA,IAAI,oDAA2B,uBAAA,IAAI,wDAAwB,CAAC,MAAM,CAChE,aAAa,IAAI,aAAa,KAAK,QAAQ,CAC5C,MAAA,CAAC;;YAGF,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAGjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;;YAG5C,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAChD;KACF;IAwBD,MAAM;QACJ,MAAM,qBAAqB,GACzB,IAAI,CAAC,4BAA4B,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAEzE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QACrD,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAClB,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,eAAS,KAAK,EAAC,SAAS,IACtB,cAAQ,KAAK,EAAC,qDAAqD,IACjE;;YAEE,KAAK,EAAC,gBAAgB;WAEtB,SAAG,KAAK,EAAC,qCAAqC,IAC3C,IAAI,CAAC,aAAa,KAAK,QAAQ;cAC5B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,mBAAmB;cACtD,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,kBAAkB,CACvD,EACJ,SAAG,KAAK,EAAC,0CAA0C,IAChD,uBAAA,IAAI,sDAAsB,MAA1B,IAAI,CAAwB,CAC3B,EACJ;;YAEE,KAAK,EAAC,0CAA0C;WAEhD,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,aAAa,CAC5C,EACP,SACE,KAAK,EAAC,6BAA6B,EACnC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EACrC,MAAM,EAAC,QAAQ,IAEd,IAAI,CAAC,YAAY,CAAC,aAAa,CAC9B,CACA,EAEN;;YAEE,KAAK,EAAC,0CAA0C;WAEhD,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,aAAa,CAC5C,EACP,SAAG,KAAK,EAAC,gBAAgB,IAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAK,CAC3D,EAEN;;YAEE,KAAK,EAAC,2CAA2C;WAEjD,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,cAAc,CAC7C,EACP,SAAG,KAAK,EAAC,gBAAgB,IAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAK,CAC5D,EACL,IAAI,CAAC,aAAa,KAAK,OAAO,KAC7B;;YAEE,KAAK,EAAC,8CAA8C;WAEpD,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,gBAAgB,CAC/C,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACjC,CACA,CACP,CACG,EACN;;YAEE,KAAK,EAAC,qBAAqB;WAE3B,SAAG,KAAK,EAAC,0CAA0C,IAChD,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,KAAK,CAC5C,EACJ;;YAEE,KAAK,EAAC,oBAAoB;WAE1B;;YAEE,KAAK,EAAC,mBAAmB;WAEzB,YAAM,KAAK,EAAE,oBAAoB,IAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;cAChC,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,EAAE;cAC1C,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,GAAG,CAC1C,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,uBAAA,IAAI,sDAAsB,MAA1B,IAAI,EAAuB,IAAI,CAAC,CAC/B,CACA,EACL,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAClC,WAAK,KAAK,EAAC,mBAAmB,IAC5B,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,IAAI,CACxC,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,uBAAA,IAAI,oDAAoB,MAAxB,IAAI,EAAqB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACvD,CACA,KAEN;YACE,WAAK,KAAK,EAAC,mBAAmB,IAC5B,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,IAAI,CACxC,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,uBAAA,IAAI,oDAAoB,MAAxB,IAAI,EACH,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/B,CACC,CACA;YACN,WAAK,KAAK,EAAC,mBAAmB,IAC5B,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,EAAE,CACtC,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,uBAAA,IAAI,oDAAoB,MAAxB,IAAI,EACH,IAAI,CAAC,iBAAiB,CACpB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAClC,CAAC,IAAI,CACP,CACC,CACA;SACP,CACF,CACG,EAEN;;YAEE,KAAK,EAAC,oBAAoB;WAE1B;;YAEE,KAAK,EAAC,mBAAmB;WAEzB,aAAO,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAC,iBAAiB,IAC1D,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;cAC9B,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,QAAQ;cAChD,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,OAAO,CAC7C,EACR,WAAK,KAAK,EAAC,0BAA0B,IACnC,eACE,EAAE,EAAC,iBAAiB,EACpB,KAAK,EAAC,gDAAgD,EACtD,IAAI,EAAC,MAAM,EACX,SAAS,QACT,QAAQ,QACR,KAAK,EAAE,uBAAA,IAAI,gDAAgB,MAApB,IAAI,CAAkB,GACpB,CACP,CACF,CACF,CACF,CACC,EACT,WACE,KAAK,EAAE;gBACL,oBAAoB,EAAE,IAAI;gBAC1B,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW;gBAC3B,qBAAqB,EAAE,IAAI;aAC5B,IAEA,CAAC,IAAI,CAAC,WAAW,IAAI;YACpB,eACE,KAAK,EAAC,OAAO,EACb,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,iBAAiB,EAC3D,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,uBAAA,IAAI,oDAAoB,GACxB;YACX,2BACE,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,uBAAA,IAAI,qDAAqB,EAChC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAC5B,OAAO,EAAE,uBAAA,IAAI,qDAAqB,EAClC,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,gBAAgB,GACrC;SACxB,EAED,cACE,KAAK,EAAC,qCAAqC,EAC3C,QAAQ,EAAE,CAAC,IAAI,CAAC,yBAAyB,IAAI,eAAe,EAC5D,OAAO,EAAE,uBAAA,IAAI,4DAA4B,IAExC,IAAI,CAAC,aAAa,KAAK,QAAQ;cAC5B,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,cAAc;cAC3C,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,aAAa,CACvC,CACL,EACN,WAAK,KAAK,EAAC,mBAAmB,IAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,IACxB,uBACE,KAAK,EAAE;gBACL,cAAc,EAAE,IAAI;gBACpB,sBAAsB,EAAE,IAAI;gBAC5B,0BAA0B,EAAE,IAAI,CAAC,OAAO;gBACxC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;aAClD,EACD,sBAAsB,EAAC,OAAO,EAC9B,gBAAgB,EAAC,UAAU,EAC3B,mBAAmB,EAAE,uBAAA,IAAI,0DAA0B,EACnD,gBAAgB,EAAE,uBAAA,IAAI,uDAAuB,EAC7C,GAAG,EAAE,CAAC,EAA4B,MAC/B,IAAI,CAAC,aAAa,GAAG,EAA8B,CAAC,IAGvD,iCAA2B,KAAK,EAAC,yBAAyB,IACxD,8BACE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,IAAI,EAC1B,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,IAAI,EAC9C,UAAU,EAAC,MAAM,EACjB,eAAe,EAAE,qBAAqB,EACtC,mBAAmB,EAAC,MAAM,EAC1B,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,IAAI,EACd,mBAAmB,EAAE,uBAAA,IAAI,+DAA+B,EACxD,IAAI,EAAC,aAAa,GAClB,EACF,8BACE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,IAAI,EAC1B,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,IAAI,EAC9C,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,IAAI,EACd,mBAAmB,EAAE,uBAAA,IAAI,+DAA+B,EACxD,IAAI,EAAC,aAAa,GAClB,EACF,8BACE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,WAAW,EACjC,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,WAAW,EACrD,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,IAAI,EACd,mBAAmB,EAAE,uBAAA,IAAI,+DAA+B,EACxD,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,GAC5C,EACF,8BACE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAC5B,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,MAAM,EAChD,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,KAAK,EACf,IAAI,EAAC,aAAa,GAClB,EACF;;;YAGE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAC5B,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,MAAM,EAChD,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,KAAK,EACf,IAAI,EAAC,OAAO;UACZ,CACwB,EAC3B,uBAAA,IAAI,mDAAmB,MAAvB,IAAI,CAAqB,EAE1B,8BAAwB,KAAK,EAAC,qBAAqB,IAChD,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,KAChC,wCACE,0BACE,KAAK,EAAC,aAAa,EACnB,UAAU,QACV,YAAY,EAAE,WAAW,EACzB,UAAU,EAAC,+BAA+B,GACtB,CACO,CAChC,CACsB,CACT,KAElB,qBACE,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,WAAW,EACrD,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,KAAK,EAC/C,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,WAAW,EACrD,IAAI,QACJ,KAAK,EAAC,QAAQ,GACC,CAClB,CACG,CACE,CACL,EACP;KACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["GxIdeTeamDevBringChanges"],"sources":["src/components/team-dev/bring-changes/bring-changes.scss?tag=gx-ide-team-dev-bring-changes&encapsulation=shadow","src/components/team-dev/bring-changes/bring-changes.tsx"],"sourcesContent":["@import \"../common/styles.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n --pill-border-radius: 12px;\n --pill-padding-inline: 8px;\n --pill-padding-block: 2px;\n --pill-font-size: var(--font-size-body-s);\n\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content max-content 1fr;\n}\n$header-item-common-inline-padding: 24px;\n$header-item-common-separator-border: 1px solid\n var(--mer-border-color__on-elevation--01);\n\n%header-item-common-inline-sizes {\n max-inline-size: 250px;\n min-inline-size: 180px;\n}\n%header-item-common {\n padding-inline: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n @extend %header-item-common-inline-sizes;\n}\n%header-item-common-start {\n padding-inline-end: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n}\n%header-item-common-end {\n padding-inline-start: $header-item-common-inline-padding;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n display: grid;\n gap: 24px;\n}\n\n// header detail\n.header__detail {\n display: grid;\n grid-template-areas:\n \"detail-title detail-title detail-title detail-title\"\n \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\"\n \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";\n row-gap: 16px;\n // grid-auto-columns: max-content;\n // grid-template-columns: max-content auto auto auto;\n grid-template-columns: minmax(250px, 350px) repeat(3, minmax(180px, 250px));\n}\n.detail__label {\n color: var(--mer-color__neutral-gray--400);\n}\n.detail__title {\n grid-area: detail-title;\n}\n.detail__commit-name {\n grid-area: detail-commit-name;\n}\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n @extend %header-item-common-start;\n\n > a {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n }\n}\n.detail__link {\n align-items: start;\n color: var(--mer-text__primary);\n text-decoration: underline;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n}\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n @extend %header-item-common;\n}\n.detail__current-version {\n grid-area: detail-current-version;\n @extend %header-item-common;\n}\n.detail__merge-from-version {\n grid-area: detail-merge-from-version;\n @extend %header-item-common-end;\n}\n\n// header information\n.header__information {\n display: grid;\n row-gap: 10px;\n grid-template-areas:\n \"information-title information-title\"\n \"information-col-1 information-col-2\";\n grid-template-columns: max-content 1fr;\n grid-template-rows: max-content 64px;\n}\n.information__title {\n grid-area: information-title;\n}\n.information__col-1 {\n grid-area: information-col-1;\n display: flex;\n gap: 24px;\n @extend %header-item-common-start;\n}\n.information__col-2 {\n display: grid;\n grid-area: information-col-2;\n @extend %header-item-common-end;\n}\n\n// filter / controls-container\n.controls-container {\n display: grid;\n margin-block-start: 24px;\n}\n.filter {\n grid-template-columns: 232px 186px 1fr;\n gap: 12px;\n}\n.button-merge-checked {\n margin-inline-start: auto;\n}\n\n// main\n.main {\n position: relative;\n display: grid;\n overflow: auto;\n}\n.loader {\n position: relative;\n inline-size: 100%;\n block-size: 100%;\n inset-block-start: 0;\n}\n.tabular-grid {\n border-radius: 4px;\n overflow: hidden;\n}\n\n.empty-state {\n block-size: 100%;\n}\n.loader {\n --elevation-background-color: var(--mer-surface__elevation--01);\n}\n\n.tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\n// - - - - - - - - - - - - - -\n// WA (WORK AROUNDS)\n// - - - - - - - - - - - - - -\n\n.input-comments-container {\n position: relative;\n}\n// ch-edit for comments WA's\n// Figma design for this component displays the textarea witout border, and with a little more line-height.\n// The following styles are a temporary WA that should be brouhgt to Mercury DS.\n.input-comments {\n --control__border-color: transparent;\n padding-block: 0 !important;\n padding-inline: 0 !important;\n --line-height-tight: 1.4;\n block-size: 100%;\n background-color: var(--mer-surface);\n transition:\n var(--mer-timing--super-fast) block-size,\n var(--mer-timing--super-fast) background-color,\n var(--mer-timing--super-fast) padding-block,\n var(--mer-timing--super-fast) padding-inline;\n}\n.input-comments:focus {\n position: absolute;\n block-size: 200px;\n inline-size: 100%;\n z-index: 99;\n background-color: var(--mer-surface__elevation--01);\n padding-block: var(--control__padding-block) !important;\n padding-inline: var(--control__padding-inline) !important;\n}\n\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n background-size: contain; //force icon fit container\n margin-inline-end: 0;\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--enabled);\n cursor: pointer;\n &:hover {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--hover);\n }\n &:active {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--active);\n }\n}\n\n.tabular-grid-row-actions::part(main),\n.property-grid-row-actions::part(main) {\n // gap not required since buttons are tertiary.\n // extra space perceived.\n gap: 0 !important;\n}\n\n.tabular-grid-row-actions {\n // Butons are center by default, but design dictates start alignemnt\n > button {\n justify-content: start;\n }\n}\n\n// These static type of pills do not exist on Mercury yet.\n// They should be defined on Mercury. The actual pills on Mercury\n// are combo-boxes. Not what we need for this case.\n\n.pill {\n --pill-background-color: transparent;\n --pill-color: transparent;\n --pill-border-color: transparent;\n\n background-color: var(--pill-background-color);\n color: var(--pill-color);\n border: 1px solid var(--pill-border-color);\n inline-size: 100%;\n padding: var(--pill-padding-block) var(--pill-padding-inline);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--pill-border-radius);\n position: relative;\n font-weight: var(--font-weight-semi-bold);\n\n &--to-merge,\n &--to-revert {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--to-merge-marked {\n --pill-background-color: var();\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var();\n }\n &--pending {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--warning {\n --pill-background-color: var(--mer-color__tinted-yellow--5);\n --pill-color: var(--mer-border-color__warning);\n --pill-border-color: var(--mer-color__tinted-yellow--60);\n }\n &--error {\n --pill-background-color: var(--mer-color__tinted-red--5);\n --pill-color: var(--mer-border-color__error);\n --pill-border-color: var(--mer-color__tinted-red--60);\n }\n &--merged,\n &--reverted {\n --pill-background-color: var(--mer-color__tinted-green--5);\n --pill-color: var(--mer-border-color__success);\n --pill-border-color: var(--mer-color__tinted-green--60);\n }\n &--transitioning {\n // used to hide the text, before updating the caption (smooth transtion)\n --pill-color: transparent;\n }\n}\n.merging-spinner-caption {\n display: flex;\n align-items: center;\n gap: 6px;\n $size: 14px;\n --status-circle-color: transparent;\n --status-circle-size: $size;\n --status-circle-inset-inline-start: 14px;\n --pill-color: var(--mer-border-color__primary);\n &::before {\n display: inline-block;\n content: \"\";\n\n @include spinner(\n $size,\n var(--mer-color__primary--300),\n var(--mer-color__tinted-primary--50)\n );\n }\n}\n.tabular-grid .button-secondary {\n --control__padding-block: var(--pill-padding-block);\n --control__padding-inline: var(--pill-padding-inline);\n font-size: inherit;\n font-weight: inherit;\n /* font-size: var(--pill-font-size); */\n}\n\n.tabular-grid .tabular-grid-cell--for-pill {\n --grid-cell__padding-block: 4px;\n align-items: center;\n justify-content: center;\n\n // --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),\n.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon) {\n pointer-events: none;\n opacity: 0.5;\n}\n.tabular-grid-column--settings-custom-selector,\n.tabular-grid-cell--settings-custom-selector {\n --grid-cell__padding-inline: 0;\n --grid-cell__padding-block: 0;\n}\n.tabular-grid-cell::part(actions-icon) {\n padding-block: 6px;\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n block-size: 100%;\n display: block;\n background-size: 14px;\n padding-inline: 16px;\n}\n\n.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label) {\n visibility: hidden;\n}\n\n.tabular-grid-row-actions::part(window) {\n background-color: var(--mer-surface__elevation--02) !important;\n}\n\n.tabular-grid-row .tabular-grid-cell:nth-child(3) {\n min-inline-size: 400px;\n}\n\n// - - - - - - - - - - - - - -\n// END OF WA\n// - - - - - - - - - - - - - -\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n JSX,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { Locale } from \"../../../common/locale\";\nimport {\n ChEditCustomEvent,\n TabularGridMarkingChangedEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { ObjectType } from \"../../../components\";\n\nimport { config } from \"../../../common/config\";\n\nimport { ContextMenuCallback } from \"../../../components\";\n\nimport { renderObjectTypeWithIcon } from \"../common/utilities\";\n\nimport { COLUMNS_IDS } from \"../version-control/common/tabular-grid-render\";\nimport sortTabularGridColumn, {\n type SortTabularGridColumnDataType\n} from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tabular-grid\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst COMBO_BOX_ALL_VALUE = \"all\";\n\nconst DETAIL_LABEL_CLASSES = \"detail__label body-semi-bold-s\";\n\nconst ADD_ICON = getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"on-elevation\"\n});\nconst EDITED_ICON = getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"on-elevation\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n});\nconst SUBSTRACT_ICON = getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"on-elevation\"\n});\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n});\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-bring-changes\",\n styleUrl: \"bring-changes.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-bring-changes\"]\n})\nexport class GxIdeTeamDevBringChanges {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n #commitLabel: string;\n #comboBoxStatesModel: { caption: string; value: ObjectStateForFilter }[];\n #checkedObjectsIdsArray: string[] = [];\n\n @Element() el: HTMLGxIdeTeamDevBringChangesElement;\n\n private tabularGridEl!: HTMLChTabularGridElement;\n\n /**\n * An array that holds the id's of the objects that have been merged already.\n */\n @State() alreadyMergedObjectsIdsArray: string[] = [];\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() atLeastOneObjectIsChecked: boolean = false;\n\n /**\n * True while commitObjects hasn't been loaded or is empty. Used to display a loader.\n */\n @State() loading: boolean = true;\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() objectsFiltered: CommitObject[] = [];\n\n /**\n * The current search filter value\n */\n @State() searchValue: string = \"\";\n\n /**\n * The current state filter value\n */\n @State() stateFilterValue: ObjectStateForFilter = COMBO_BOX_ALL_VALUE;\n\n /**\n * A set that stores the marked state of each object cell. This is necessary because filtering the grid * causes marked cells to lose their state.\n */\n @State() markedObjectsSet: Set<string> = new Set<string>();\n\n /**\n * A map that holds the current commit objects states (\"pending\" | \"warning\" | \"error\" | \"merged\" | \"reverted\")\n */\n @State() objectsStatesMap: Map<string, ObjectState> = new Map();\n @Watch(\"objectsStatesMap\")\n objectsStatesMapChanged(newCommitObjectsStateMap: Map<string, ObjectState>) {\n const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(\n ([, state]) => state === \"merging\" || state === \"reverting\"\n );\n\n if (!someObjectIsMerging) {\n this.merging = false;\n }\n }\n\n /**\n * A map that holds object messages, if any, for objects that could not be merged (these objects are in a \"warning\" or \"error\" state)\n */\n @State() commitObjectsMessagesMap: Map<string, string> = new Map();\n\n /**\n * Set to true when objects are being mered. This helps disabling controls until all objects are done.\n */\n @State() merging: boolean = false;\n\n /**\n * Detail about the commit\n */\n @Prop() readonly commitDetail: CommitDetail;\n\n /**\n * Commit information\n */\n @Prop() readonly commitInformation: CommitInformation[] = [];\n\n /**\n * Array of commit\n */\n @Prop() readonly commitObjects: CommitObject[] = [];\n @Watch(\"commitObjects\")\n commitObjectsChanged(newCommitObjects: CommitObject[]) {\n if (newCommitObjects.length) {\n // This is the first and only objects asignment\n this.loading = false;\n\n // All commit objects begin as \"pending to merge\"\n newCommitObjects.forEach(commitObject => {\n this.objectsStatesMap.set(\n commitObject.id,\n this.operationType === \"revert\" ? \"to-revert\" : \"to-merge\"\n );\n });\n\n this.objectsFiltered = this.commitObjects;\n }\n }\n\n /**\n * Determines whether the filters are rendered or not.\n */\n @Prop() readonly hideFilters: boolean = false;\n\n /**\n * The type of operation to perform: \"merge\" or \"revert\".\n */\n @Prop() readonly operationType: OperationType = \"merge\";\n\n /**\n * The callback that is triggered when the user wants to merge more than one commit.\n */\n @Prop() readonly mergeObjectsCallback!: MergeObjectsCallback;\n\n /**\n * If true, the \"Action\" column will display a button instead of a pill, only when the action is\n */\n @Prop() readonly revertPillAsButton: boolean = false;\n\n /**\n * Invoked when user activates the context menu on th grid.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#commitLabel =\n this.commitInformation.length > 1\n ? this.#componentLocale.commmits\n : this.#componentLocale.commmit;\n\n // Initiate \"states\" combo box filter\n this.#comboBoxStatesModel = [\n {\n caption: this.#componentLocale.states.all,\n value: COMBO_BOX_ALL_VALUE\n },\n {\n caption:\n this.operationType === \"revert\"\n ? this.#componentLocale.states[\"to-revert\"]\n : this.#componentLocale.states[\"to-merge\"],\n value: this.operationType === \"revert\" ? \"to-revert\" : \"to-merge\"\n },\n {\n caption: this.#componentLocale.states.warning,\n value: \"warning\"\n },\n {\n caption: this.#componentLocale.states.error,\n value: \"error\"\n },\n {\n caption:\n this.operationType === \"revert\"\n ? this.#componentLocale.states.reverted\n : this.#componentLocale.states.merged,\n value: this.operationType === \"revert\" ? \"reverted\" : \"merged\"\n }\n ];\n\n if (this.commitObjects?.length) {\n // if commitObjects already set...\n this.commitObjectsChanged(this.commitObjects);\n }\n }\n\n #formatComments = (): string => {\n if (this.commitInformation.length === 1) {\n // return comment without revison number\n return this.commitInformation[0].comment;\n }\n\n // return comments with revison number\n let mergedComment = \"\";\n this.commitInformation.map((commit, i) => {\n const isLast = i === this.commitInformation.length - 1;\n const afterCommentBreakline = isLast ? \"\" : \"\\n\\n\";\n mergedComment += `Commit ${commit.id}:\\n${commit.comment}${afterCommentBreakline}`;\n });\n\n return mergedComment;\n };\n\n #mergeCheckedClickedHandler = async () => {\n this.merging = true;\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n this.#checkedObjectsIdsArray.forEach(checkedObjectId => {\n newobjectsStatesMap.set(\n checkedObjectId,\n this.operationType === \"revert\" ? \"reverting\" : \"merging\"\n );\n });\n\n this.objectsStatesMap = newobjectsStatesMap;\n await this.mergeObjectsCallback(this.#checkedObjectsIdsArray);\n };\n\n #mergeSingleObject: (objectId: string) => () => void =\n objectId => async () => {\n this.merging = true;\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n newobjectsStatesMap.set(\n objectId,\n this.operationType === \"revert\" ? \"reverting\" : \"merging\"\n );\n this.objectsStatesMap = newobjectsStatesMap;\n await this.mergeObjectsCallback([objectId]);\n };\n\n #renderActionCellContent = (\n actionTaken: ObjectActionTaken\n ): JSX.Element[] => {\n let icon: string;\n let caption: string;\n let iconColor: string;\n\n if (actionTaken === \"Deleted\") {\n icon = SUBSTRACT_ICON;\n caption = this.#componentLocale.objects.actions.delete;\n iconColor = \"--mer-icon__error\";\n } else if (actionTaken === \"Inserted\") {\n icon = ADD_ICON;\n caption = this.#componentLocale.objects.actions.insert;\n iconColor = \"--mer-icon__success\";\n } else {\n // modified\n icon = EDITED_ICON;\n caption = this.#componentLocale.objects.actions.modify;\n iconColor = \"--mer-icon__warning\";\n }\n\n return (\n <span class=\"custom-icon-text-wrapper\">\n <ch-image\n type=\"mask\"\n class=\"icon-md\"\n src={icon}\n style={{ backgroundColor: `var(${iconColor})` }}\n ></ch-image>\n {`${caption}`}\n </span>\n );\n };\n\n #renderCommitsNumbers = (onlyNumbers: boolean = false): string => {\n if (this.commitInformation?.length > 1) {\n // more than one commit\n return onlyNumbers\n ? `${this.commitInformation[0].id} ... ${\n this.commitInformation[this.commitInformation.length - 1].id\n }`\n : `${this.#commitLabel} ${this.commitInformation[0].id} ... ${\n this.commitInformation[this.commitInformation.length - 1].id\n }`;\n } else if (this.commitInformation?.length === 1) {\n // just one commit\n return onlyNumbers\n ? this.commitInformation[0].id\n : `${this.#commitLabel} ${this.commitInformation[0].id}`;\n } else {\n // Probably commits have not been loaded yet (loading state)\n return onlyNumbers\n ? `${this.#componentLocale.loading}`\n : `${this.#commitLabel} ${this.#componentLocale.loading}`;\n }\n };\n\n #renderFormatedDate = (date: Date): string => {\n const dateObject = new Date(date);\n const lang = navigator.languages?.[0] || navigator.language;\n\n return `${dateObject.toLocaleDateString(\n lang\n )} ${dateObject.toLocaleTimeString(lang, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false\n })}`;\n };\n\n #renderObjectStateWithIcon = (\n objectType: ObjectState,\n objectId: string\n ): JSX.Element[] => {\n if (objectType === \"merging\" || objectType === \"reverting\") {\n return (\n <span class=\"merging-spinner-caption\">\n {this.operationType === \"revert\"\n ? this.#componentLocale.states.reverting\n : this.#componentLocale.states.merging}\n </span>\n );\n }\n const classes = `pill pill--${objectType}`;\n if (\n this.revertPillAsButton &&\n (objectType === \"to-merge\" ||\n objectType === \"to-merge-marked\" ||\n objectType === \"to-revert\")\n ) {\n return (\n <button\n class={{ [classes]: true, \"button-secondary\": true }}\n onClick={this.#mergeSingleObject(objectId)}\n >\n {this.#componentLocale.statesForButton[objectType]}\n </button>\n );\n } else {\n return (\n <span class={classes}>{this.#componentLocale.states[objectType]}</span>\n );\n }\n };\n\n #renderObjectsRows = (): JSX.Element[] => {\n return this.objectsFiltered.map(commitObject => {\n const marked = this.markedObjectsSet.has(commitObject.id);\n\n const alreadyMerged = this.alreadyMergedObjectsIdsArray.find(\n checkedObjectId => checkedObjectId === commitObject.id\n );\n const errorOrWarningMessage = this.commitObjectsMessagesMap.get(\n commitObject.id\n );\n const state = this.objectsStatesMap.get(commitObject.id);\n\n let MESSAGE_ICON;\n if (state === \"error\") {\n MESSAGE_ICON = ERROR_ICON;\n } else if (state === \"warning\") {\n MESSAGE_ICON = WARNING_ICON;\n }\n\n return (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n key={commitObject.id}\n rowid={commitObject.id}\n ref={(el: HTMLElement) =>\n marked && el?.setAttribute(\"marked\", \"true\")\n }\n >\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector=\"true\"\n class={{\n \"tabular-grid-cell\": true,\n \"no-checkbox-custom-selector\": alreadyMerged\n }}\n size=\"max-content\"\n >\n {commitObject.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(commitObject.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {commitObject.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderActionCellContent(commitObject.actionTaken)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell--for-pill\">\n {this.#renderObjectStateWithIcon(\n this.objectsStatesMap.get(commitObject.id),\n commitObject.id\n )}\n </ch-tabular-grid-cell>\n {errorOrWarningMessage && (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty\n class={{ \"tabular-grid-rowset-empty\": true, [state]: true }}\n >\n <p class=\"warning-error-description\">\n <ch-image\n class=\"icon-md warning-error-icon\"\n src={MESSAGE_ICON}\n ></ch-image>\n {errorOrWarningMessage}\n </p>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid-row>\n );\n });\n };\n\n #rowContextMenuHandler = async (\n ev: CustomEvent<TabularGridRowContextMenuEvent>\n ) => {\n ev.preventDefault();\n const selectedRowsIds = await this.tabularGridEl.getSelectedRows();\n\n await this.contextMenuCallback({\n selection: selectedRowsIds,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n #rowMarkingChangedHandler = (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n const newobjectsMarkedSet = new Set<string>();\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n const markedRowsIds = event.detail.rowsId;\n const checkedObjectsIgnoringAlreadyMerged = markedRowsIds.filter(\n markedObjectId =>\n !this.alreadyMergedObjectsIdsArray.includes(markedObjectId)\n );\n this.#checkedObjectsIdsArray = [...checkedObjectsIgnoringAlreadyMerged];\n\n // Update markedObjectsSet\n this.#checkedObjectsIdsArray.forEach(checkedObjectId => {\n newobjectsMarkedSet.add(checkedObjectId);\n });\n this.markedObjectsSet = newobjectsMarkedSet;\n\n this.atLeastOneObjectIsChecked = markedRowsIds.length > 0;\n\n newobjectsStatesMap.forEach(objectId => {\n const objectCurrentState = this.objectsStatesMap.get(objectId);\n if (\n objectCurrentState !== \"to-merge\" &&\n objectCurrentState !== \"to-merge-marked\"\n ) {\n return;\n }\n\n const markedRowIndex = markedRowsIds.findIndex(id => id === objectId);\n if (markedRowIndex !== -1) {\n newobjectsStatesMap.set(objectId, \"to-merge-marked\");\n markedRowsIds.splice(markedRowIndex, 1);\n markedRowsIds;\n } else {\n newobjectsStatesMap.set(objectId, \"to-merge\");\n }\n });\n\n this.objectsStatesMap = newobjectsStatesMap;\n };\n\n #searchInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.searchValue = (event.detail as string).toLowerCase();\n this.#updateFilteredObjects();\n };\n\n #stateChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.stateFilterValue = event.detail as ObjectStateForFilter;\n this.#updateFilteredObjects();\n };\n\n #updateFilteredObjects = () => {\n let filteredObjects = [...this.commitObjects];\n\n // filter by state (ch-combo-box-render) ...\n if (this.stateFilterValue !== \"all\") {\n filteredObjects = filteredObjects.filter(object => {\n const objectState = this.objectsStatesMap.get(object.id);\n return objectState === this.stateFilterValue;\n });\n }\n\n // and filter by value (ch-edit) as well\n filteredObjects = filteredObjects.filter(object => {\n const includesName = object.name.toLowerCase().includes(this.searchValue);\n\n const includesType = object.type.name\n .toLowerCase()\n .includes(this.searchValue);\n\n const includesDescription = object.description\n .toLowerCase()\n .includes(this.searchValue);\n\n if (includesName || includesType || includesDescription) {\n return true;\n }\n return false;\n });\n\n this.objectsFiltered = filteredObjects;\n };\n\n /**\n * It allows the host updating an object state, by providing the object id.\n * @param objectId The ID of the object to update.\n * @param newState The new state to set on the object.\n * @param message Optional message explaining the change.\n *\n * @example\n * bringChanges.updateObjectState('obj-24', \"merging\", null);\n * bringChanges.updateObjectState('obj-27', \"error\", \"The server did not respond.\");\n */\n @Method()\n async updateObjectState(\n objectId: string,\n newState: ObjectState,\n message: string\n ) {\n // update object state\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n newobjectsStatesMap.set(objectId, newState);\n this.objectsStatesMap = newobjectsStatesMap;\n\n // add message if state is \"warning\" or \"error\"\n if (message?.length > 0) {\n this.commitObjectsMessagesMap.set(objectId, message);\n }\n\n if (newState === \"merged\" || newState === \"reverted\") {\n // remove from checked\n this.#checkedObjectsIdsArray = this.#checkedObjectsIdsArray.filter(\n checkedObject => checkedObject !== objectId\n );\n\n // add to \"already merged\". This will hide the checkbox\n this.alreadyMergedObjectsIdsArray.push(objectId);\n\n // unmark checkbox:\n this.tabularGridEl.markRow(objectId, false);\n\n // remove message if any\n this.commitObjectsMessagesMap.delete(objectId);\n }\n }\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n const columnId = e.detail.columnId;\n\n let objectProperty;\n let dateType: SortTabularGridColumnDataType = \"string\";\n if (columnId === COLUMNS_IDS.type) {\n objectProperty = \"name\"; // the type name\n dateType = \"object\";\n }\n\n this.objectsFiltered = [\n ...sortTabularGridColumn(\n e,\n this.objectsFiltered,\n dateType,\n objectProperty\n )\n ];\n };\n\n render() {\n const enableRichRowSelector =\n this.alreadyMergedObjectsIdsArray.length !== this.commitObjects.length;\n\n const disableControls = this.merging || this.loading;\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class=\"header spacing-body-inline spacing-body-block-start\">\n <div\n // header details\n class=\"header__detail\"\n >\n <p class=\"detail__title subtitle-semi-bold-xs\">\n {this.operationType === \"revert\"\n ? this.#componentLocale.commitDetail.revertChangesDetail\n : this.#componentLocale.commitDetail.bringChangesDetail}\n </p>\n <p class=\"detail__commit-name subtitle-semi-bold-s\">\n {this.#renderCommitsNumbers()}\n </p>\n <div\n // genexus server\n class=\"detail__genexus-server field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.genexusServer}\n </span>\n <a\n class=\"detail__link body-regular-s\"\n href={this.commitDetail.genexusServer}\n target=\"_blank\"\n >\n {this.commitDetail.genexusServer}\n </a>\n </div>\n\n <div\n // knowledge base\n class=\"detail__knowledge-base field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.knowledgeBase}\n </span>\n <p class=\"body-regular-s\">{this.commitDetail.knowledgeBase}</p>\n </div>\n\n <div\n // current version\n class=\"detail__current-version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.currentVersion}\n </span>\n <a class=\"body-regular-s\">{this.commitDetail.currentVersion}</a>\n </div>\n {this.operationType === \"merge\" && (\n <div\n // merge from version\n class=\"detail__merge-from-version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.mergeFromVersion}\n </span>\n <p class=\"body-regular-s\">\n {this.commitDetail.mergeFromVersion}\n </p>\n </div>\n )}\n </div>\n <div\n // header information\n class=\"header__information\"\n >\n <p class=\"information__title subtitle-semi-bold-xs\">\n {this.#componentLocale.commitInformation.title}\n </p>\n <div\n // header information (col-1)\n class=\"information__col-1\"\n >\n <div\n // IDs\n class=\"field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.commitInformation.length === 1\n ? this.#componentLocale.commitInformation.id\n : this.#componentLocale.commitInformation.ids}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderCommitsNumbers(true)}\n </p>\n </div>\n {this.commitInformation.length === 1 ? (\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.date}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(this.commitInformation[0].date)}\n </p>\n </div>\n ) : (\n [\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.from}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(\n this.commitInformation[0].date\n )}\n </p>\n </div>,\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.to}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(\n this.commitInformation[\n this.commitInformation.length - 1\n ].date\n )}\n </p>\n </div>\n ]\n )}\n </div>\n\n <div\n // header information (col-2)\n class=\"information__col-2\"\n >\n <div\n // To\n class=\"field field-block\"\n >\n <label class={DETAIL_LABEL_CLASSES} htmlFor=\"commit-comments\">\n {this.commitInformation.length > 1\n ? this.#componentLocale.commitInformation.comments\n : this.#componentLocale.commitInformation.comment}\n </label>\n <div class=\"input-comments-container\">\n <ch-edit\n id=\"commit-comments\"\n class=\"input scrollable input-comments body-regular-s\"\n type=\"text\"\n multiline\n readonly\n value={this.#formatComments()}\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </header>\n <div\n class={{\n \"controls-container\": true,\n \"filter\": !this.hideFilters,\n \"spacing-body-inline\": true\n }}\n >\n {!this.hideFilters && [\n <ch-edit\n class=\"input\"\n disabled={disableControls}\n startImgSrc={SEARCH_ICON}\n placeholder={this.#componentLocale.filter.searchPlaceholder}\n type=\"search\"\n onInput={this.#searchInputHandler}\n ></ch-edit>,\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={disableControls}\n model={this.#comboBoxStatesModel}\n value={this.stateFilterValue}\n onInput={this.#stateChangedHandler}\n placeholder={this.#componentLocale.filter.statePlaceholder}\n ></ch-combo-box-render>\n ]}\n\n <button\n class=\"button-primary button-merge-checked\"\n disabled={!this.atLeastOneObjectIsChecked || disableControls}\n onClick={this.#mergeCheckedClickedHandler}\n >\n {this.operationType === \"revert\"\n ? this.#componentLocale.filter.revertSelected\n : this.#componentLocale.filter.mergeSelected}\n </button>\n </div>\n <div class=\"main spacing-body\">\n {this.commitObjects.length ? (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"objects-tabular-grid\": true,\n \"disabled-custom-selector\": this.merging,\n \"empty-result\": this.objectsFiltered.length === 0\n }}\n keyboardNavigationMode=\"focus\"\n rowSelectionMode=\"multiple\"\n onRowMarkingChanged={this.#rowMarkingChangedHandler}\n onRowContextMenu={this.#rowContextMenuHandler}\n ref={(el: HTMLChTabularGridElement) =>\n (this.tabularGridEl = el as HTMLChTabularGridElement)\n }\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.name}\n columnName={this.#componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={enableRichRowSelector}\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.type}\n columnName={this.#componentLocale.objects.type}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.description}\n columnName={this.#componentLocale.objects.description}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size={config.tabularGrid.colSize.description}\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.action}\n columnName={this.#componentLocale.objects.action}\n settingable={false}\n sortable={false}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n // size of this column should the enough for the largest pill, and no more.\n // this prevents layout shifts when pills state changes.\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.status}\n columnName={this.#componentLocale.objects.status}\n settingable={false}\n sortable={false}\n size=\"100px\"\n />\n </ch-tabular-grid-columnset>\n {this.#renderObjectsRows()}\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objectsFiltered.length === 0 && (\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n class=\"empty-state\"\n isAnimated\n stateIconSrc={FILTER_ICON}\n stateTitle=\"No object matched your filter\"\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n )}\n </ch-tabular-grid-rowset>\n </ch-tabular-grid>\n ) : (\n <gx-ide-loader\n cancelLabel={this.#componentLocale.loader.cancelLabel}\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n class=\"loader\"\n ></gx-ide-loader>\n )}\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type OperationType = \"merge\" | \"revert\";\n\nexport type CommitDetail = {\n genexusServer: string;\n knowledgeBase: string;\n currentVersion: string;\n mergeFromVersion: string;\n};\n\nexport type CommitInformation = {\n id: string;\n comment: string;\n date: Date;\n};\n\nexport type CommitObject = {\n id: string;\n date: Date;\n name: string;\n type: ObjectType;\n description: string;\n actionTaken: ObjectActionTaken;\n};\n\nexport type ObjectActionTaken =\n | \"Inserted\"\n | \"Deleted\"\n | \"Modified\"\n | \"Unchanged\"\n | \"Unknown\";\n\nexport type ObjectState =\n | \"to-merge\"\n | \"to-merge-marked\"\n | \"to-revert\"\n | \"merging\"\n | \"pending\"\n | \"warning\"\n | \"error\"\n | \"merged\"\n | \"reverted\"\n | \"reverting\";\n\ntype ObjectStateForFilter =\n | Extract<\n ObjectState,\n \"to-merge\" | \"to-revert\" | \"warning\" | \"error\" | \"merged\" | \"reverted\"\n >\n | \"all\";\n\nexport type MergeObjectsCallback = (objectsIds: string[]) => Promise<void>;\n"],"version":3}
|