@genexus/genexus-ide-ui 1.1.60 → 1.1.62
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/{common-f2540d3e.js → common-51d68918.js} +1 -31
- package/dist/cjs/common-51d68918.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 +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-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-edit-module-server.cjs.entry.js +111 -49
- 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-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 +358 -266
- package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-progress-bar.cjs.entry.js +141 -0
- package/dist/cjs/gx-ide-progress-bar.cjs.entry.js.map +1 -0
- 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-select-kb-items.cjs.entry.js +2 -1
- package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +34 -33
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js +527 -0
- package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js.map +1 -0
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-test.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +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-ce935a84.js → tabular-grid-render-c0e0738c.js} +3 -3
- package/dist/cjs/tabular-grid-render-c0e0738c.js.map +1 -0
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/common/common.js +0 -21
- package/dist/collection/common/common.js.map +1 -1
- package/dist/collection/components/_helpers/card/card.css +12 -0
- package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +13 -1
- package/dist/collection/components/_helpers/list-selector/list-selector.css +12 -0
- package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.en.json +5 -0
- package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.ja.json +5 -0
- package/dist/collection/components/_helpers/progress-bar/gx-ide-assets/progress-bar/langs/progress-bar.lang.zh.json +5 -0
- package/dist/collection/components/_helpers/progress-bar/progress-bar.css +210 -0
- package/dist/collection/components/_helpers/progress-bar/progress-bar.js +320 -0
- package/dist/collection/components/_helpers/progress-bar/progress-bar.js.map +1 -0
- package/dist/collection/components/_test/test.css +12 -0
- package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +12 -0
- package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +12 -0
- package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +12 -0
- package/dist/collection/components/bpm/import-files/bpm-import-files.css +12 -0
- package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +12 -0
- package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +12 -0
- package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +12 -0
- package/dist/collection/components/deployment-tool/deployment-tool.css +12 -0
- package/dist/collection/components/file-uploader/file-uploader.css +12 -0
- package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +12 -0
- package/dist/collection/components/modules/edit-module-server/edit-module-server.css +30 -627
- package/dist/collection/components/modules/edit-module-server/edit-module-server.js +179 -110
- package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
- package/dist/collection/components/modules/edit-module-server/gx-ide-assets/edit-module-server/shortcuts.json +15 -0
- package/dist/collection/components/modules/edit-module-server/helpers.js +12 -0
- package/dist/collection/components/modules/edit-module-server/helpers.js.map +1 -0
- package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +6 -2
- package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +6 -2
- package/dist/collection/components/modules/manage-module-references/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +6 -2
- package/dist/collection/components/modules/manage-module-references/helpers.js +32 -0
- package/dist/collection/components/modules/manage-module-references/helpers.js.map +1 -0
- package/dist/collection/components/modules/manage-module-references/manage-module-references.css +116 -777
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js +378 -373
- package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
- package/dist/collection/components/references/references.css +12 -0
- package/dist/collection/components/select-kb-items/helpers.js +2 -1
- package/dist/collection/components/select-kb-items/helpers.js.map +1 -1
- package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
- package/dist/collection/components/team-dev/preview/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.en.json +44 -0
- package/dist/collection/components/team-dev/preview/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.ja.json +44 -0
- package/dist/collection/components/team-dev/preview/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.zh.json +44 -0
- package/dist/collection/components/team-dev/preview/team-dev-preview.css +709 -0
- package/dist/collection/components/team-dev/preview/team-dev-preview.js +782 -0
- package/dist/collection/components/team-dev/preview/team-dev-preview.js.map +1 -0
- package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +12 -0
- package/dist/collection/components/team-dev/update/update.js +9 -9
- package/dist/collection/components/team-dev/update/update.js.map +1 -1
- package/dist/collection/components/team-dev/version-control/commit/commit.css +1 -1
- package/dist/collection/components/team-dev/version-control/commit/commit.js +41 -40
- package/dist/collection/components/team-dev/version-control/commit/commit.js.map +1 -1
- package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +2 -2
- package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +2 -2
- package/dist/collection/components/team-dev/version-control/commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +2 -2
- package/dist/collection/components/team-dev/version-control/common/constants.js +1 -1
- package/dist/collection/components/team-dev/version-control/common/constants.js.map +1 -1
- package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js +1 -1
- package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js.map +1 -1
- package/dist/collection/components/team-dev/version-control/common/types.js.map +1 -1
- package/dist/collection/components/wf-settings/wf-settings.css +12 -0
- package/dist/collection/components/ww-images/ww-images.css +12 -0
- package/dist/collection/testing/locale.e2e.js +2 -0
- package/dist/collection/testing/locale.e2e.js.map +1 -1
- package/dist/components/bpm-objects-selector.js +1 -1
- package/dist/components/bpm-objects-selector.js.map +1 -1
- package/dist/components/common.js +1 -30
- package/dist/components/common.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 +118 -68
- 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 +384 -291
- package/dist/components/gx-ide-manage-module-references.js.map +1 -1
- package/dist/components/gx-ide-progress-bar.d.ts +11 -0
- package/dist/components/gx-ide-progress-bar.js +8 -0
- package/dist/components/gx-ide-progress-bar.js.map +1 -0
- package/dist/components/gx-ide-references.js +1 -1
- package/dist/components/gx-ide-references.js.map +1 -1
- package/dist/components/gx-ide-team-dev-commit.js +37 -36
- package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
- package/dist/components/gx-ide-team-dev-preview.d.ts +11 -0
- package/dist/components/gx-ide-team-dev-preview.js +573 -0
- package/dist/components/gx-ide-team-dev-preview.js.map +1 -0
- 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.map +1 -1
- package/dist/components/gx-ide-test.js +1 -1
- 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 +2 -2
- package/dist/components/gx-ide-ww-images.js.map +1 -1
- package/dist/components/list-selector.js +1 -1
- package/dist/components/list-selector.js.map +1 -1
- package/dist/components/progress-bar.js +166 -0
- package/dist/components/progress-bar.js.map +1 -0
- package/dist/components/select-kb-items.js +2 -1
- package/dist/components/select-kb-items.js.map +1 -1
- package/dist/components/tabular-grid-render.js +2 -2
- package/dist/components/tabular-grid-render.js.map +1 -1
- package/dist/esm/{common-b811a822.js → common-dc966e64.js} +2 -31
- package/dist/esm/common-dc966e64.js.map +1 -0
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
- package/dist/esm/gx-ide-card.entry.js +1 -1
- package/dist/esm/gx-ide-card.entry.js.map +1 -1
- package/dist/esm/gx-ide-deployment-tool.entry.js +1 -1
- package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
- package/dist/esm/gx-ide-edit-module-server.entry.js +112 -50
- 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-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 +359 -267
- package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +1 -1
- package/dist/esm/gx-ide-new-kb.entry.js +1 -1
- package/dist/esm/gx-ide-progress-bar.entry.js +137 -0
- package/dist/esm/gx-ide-progress-bar.entry.js.map +1 -0
- 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-select-kb-items.entry.js +2 -1
- package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
- package/dist/esm/gx-ide-splash.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +34 -33
- package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-preview.entry.js +523 -0
- package/dist/esm/gx-ide-team-dev-preview.entry.js.map +1 -0
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
- package/dist/esm/gx-ide-test.entry.js +1 -1
- package/dist/esm/gx-ide-test.entry.js.map +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js +1 -1
- package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +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-137bd3dd.js → tabular-grid-render-c868fa55.js} +3 -3
- package/dist/esm/tabular-grid-render-c868fa55.js.map +1 -0
- 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/edit-module-server/shortcuts.json +15 -0
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.en.json +6 -2
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.ja.json +6 -2
- package/dist/genexus-ide-ui/gx-ide-assets/manage-module-references/langs/manage-module-references.lang.zh.json +6 -2
- package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.en.json +5 -0
- package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.ja.json +5 -0
- package/dist/genexus-ide-ui/gx-ide-assets/progress-bar/langs/progress-bar.lang.zh.json +5 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +2 -2
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.ja.json +2 -2
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.zh.json +2 -2
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.en.json +44 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.ja.json +44 -0
- package/dist/genexus-ide-ui/gx-ide-assets/team-dev-preview/langs/team-dev-preview.lang.zh.json +44 -0
- package/dist/genexus-ide-ui/{p-74c46daf.entry.js → p-074d2bcf.entry.js} +32 -32
- package/dist/genexus-ide-ui/{p-1671c731.entry.js → p-214ddb11.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-a4b820e5.js → p-22bdcf23.js} +3 -3
- package/dist/genexus-ide-ui/p-22bdcf23.js.map +1 -0
- package/dist/genexus-ide-ui/p-29ac6b13.entry.js +582 -0
- package/dist/genexus-ide-ui/p-29ac6b13.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-156fa688.entry.js → p-2ec8193b.entry.js} +5 -5
- package/dist/genexus-ide-ui/{p-94cb4746.entry.js → p-33aeb361.entry.js} +36 -36
- package/dist/genexus-ide-ui/p-3a22af5d.entry.js +249 -0
- package/dist/genexus-ide-ui/p-3a22af5d.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-e8e7f960.entry.js → p-3d71b287.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-3d71b287.entry.js.map +1 -0
- package/dist/genexus-ide-ui/p-45d9dcbc.entry.js +166 -0
- package/dist/genexus-ide-ui/p-45d9dcbc.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5308144e.entry.js → p-4d272c15.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-b1bf5be8.entry.js → p-5f7de718.entry.js} +5 -5
- package/dist/genexus-ide-ui/{p-b1bf5be8.entry.js.map → p-5f7de718.entry.js.map} +1 -1
- package/dist/genexus-ide-ui/{p-f5734cc7.entry.js → p-630581df.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-6d3a4648.entry.js → p-64c0a07c.entry.js} +7 -7
- package/dist/genexus-ide-ui/{p-0910af1b.entry.js → p-6da03710.entry.js} +54 -54
- package/dist/genexus-ide-ui/{p-d41d52f6.entry.js → p-70038e09.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-fff8902d.entry.js → p-73c3f9ec.entry.js} +207 -205
- package/dist/genexus-ide-ui/p-73c3f9ec.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-5b8ef529.entry.js → p-75925cee.entry.js} +39 -39
- package/dist/genexus-ide-ui/{p-d243ee33.entry.js → p-8b01c337.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-f9bde776.entry.js → p-8f2f8995.entry.js} +3 -3
- package/dist/genexus-ide-ui/{p-d71cf7d9.entry.js → p-94a1f3d1.entry.js} +20 -20
- package/dist/genexus-ide-ui/{p-ae33da9a.entry.js → p-9606ebed.entry.js} +19 -19
- package/dist/genexus-ide-ui/p-97bbd54c.js +132 -0
- package/dist/genexus-ide-ui/p-97bbd54c.js.map +1 -0
- package/dist/genexus-ide-ui/{p-7d779463.entry.js → p-9a6b9a7f.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-2d70b76d.entry.js → p-c777da28.entry.js} +30 -30
- package/dist/genexus-ide-ui/{p-4c9cddc5.entry.js → p-dc2a6f77.entry.js} +16 -16
- package/dist/genexus-ide-ui/{p-9adbe860.entry.js → p-df2c52cb.entry.js} +2 -2
- package/dist/genexus-ide-ui/{p-95f8ff9f.entry.js → p-eeae4b37.entry.js} +2 -2
- package/dist/genexus-ide-ui/p-ef6a6401.entry.js +588 -0
- package/dist/genexus-ide-ui/p-ef6a6401.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-408eac22.entry.js → p-f5bdfa14.entry.js} +24 -24
- package/dist/genexus-ide-ui/{p-5378f926.entry.js → p-f83c415c.entry.js} +3 -2
- package/dist/genexus-ide-ui/p-f83c415c.entry.js.map +1 -0
- package/dist/genexus-ide-ui/{p-ecba7aa4.entry.js → p-f9403b49.entry.js} +29 -29
- package/dist/types/common/common.d.ts +0 -2
- package/dist/types/components/_helpers/progress-bar/progress-bar.d.ts +61 -0
- package/dist/types/components/modules/edit-module-server/edit-module-server.d.ts +15 -30
- package/dist/types/components/modules/edit-module-server/helpers.d.ts +3 -0
- package/dist/types/components/modules/manage-module-references/helpers.d.ts +5 -0
- package/dist/types/components/modules/manage-module-references/manage-module-references.d.ts +43 -88
- package/dist/types/components/select-kb-items/select-kb-items.d.ts +2 -1
- package/dist/types/components/team-dev/preview/team-dev-preview.d.ts +107 -0
- package/dist/types/components/team-dev/update/update.d.ts +4 -35
- package/dist/types/components/team-dev/version-control/commit/commit.d.ts +10 -11
- package/dist/types/components/team-dev/version-control/common/types.d.ts +35 -4
- package/dist/types/components.d.ts +234 -68
- package/package.json +1 -1
- package/dist/cjs/common-f2540d3e.js.map +0 -1
- package/dist/cjs/tabular-grid-render-ce935a84.js.map +0 -1
- package/dist/esm/common-b811a822.js.map +0 -1
- package/dist/esm/tabular-grid-render-137bd3dd.js.map +0 -1
- package/dist/genexus-ide-ui/p-300fcfa1.entry.js +0 -141
- package/dist/genexus-ide-ui/p-300fcfa1.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-5378f926.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-714b37c0.js +0 -159
- package/dist/genexus-ide-ui/p-714b37c0.js.map +0 -1
- package/dist/genexus-ide-ui/p-a4b820e5.js.map +0 -1
- package/dist/genexus-ide-ui/p-b0d1b217.entry.js +0 -498
- package/dist/genexus-ide-ui/p-b0d1b217.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-e8e7f960.entry.js.map +0 -1
- package/dist/genexus-ide-ui/p-fff8902d.entry.js.map +0 -1
- /package/dist/genexus-ide-ui/{p-74c46daf.entry.js.map → p-074d2bcf.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-1671c731.entry.js.map → p-214ddb11.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-156fa688.entry.js.map → p-2ec8193b.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-94cb4746.entry.js.map → p-33aeb361.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5308144e.entry.js.map → p-4d272c15.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f5734cc7.entry.js.map → p-630581df.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-6d3a4648.entry.js.map → p-64c0a07c.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-0910af1b.entry.js.map → p-6da03710.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d41d52f6.entry.js.map → p-70038e09.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-5b8ef529.entry.js.map → p-75925cee.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d243ee33.entry.js.map → p-8b01c337.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-f9bde776.entry.js.map → p-8f2f8995.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-d71cf7d9.entry.js.map → p-94a1f3d1.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ae33da9a.entry.js.map → p-9606ebed.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-7d779463.entry.js.map → p-9a6b9a7f.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-2d70b76d.entry.js.map → p-c777da28.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-4c9cddc5.entry.js.map → p-dc2a6f77.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-9adbe860.entry.js.map → p-df2c52cb.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-95f8ff9f.entry.js.map → p-eeae4b37.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-408eac22.entry.js.map → p-f5bdfa14.entry.js.map} +0 -0
- /package/dist/genexus-ide-ui/{p-ecba7aa4.entry.js.map → p-f9403b49.entry.js.map} +0 -0
|
@@ -73,7 +73,7 @@ const typesToComboBoxItemModel = (objectTypeModel) => objectTypeModel.map(object
|
|
|
73
73
|
startImgSrc: objectType.icon
|
|
74
74
|
}));
|
|
75
75
|
|
|
76
|
-
const commitCss = ".detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.detail__version{padding-inline-start:24px}.filter,.filter-secondary>div{display:grid;gap:12px}:host{display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr;--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s)}.section{display:grid;display:contents}.header__details{display:grid;row-gap:var(--mer-spacing--md);grid-auto-columns:max-content;grid-auto-rows:max-content;margin-block-end:var(--mer-spacing--lg)}.detail__label{color:var(--mer-color__neutral-gray--400)}.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)}.filter__combo{max-block-size:minmax(0, 200px)}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0;--elevation-background-color:var(--mer-surface__elevation--01)}.empty-state{block-size:100%}.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-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden;pointer-events:none}.tabular-grid{border-radius:4px;overflow:hidden}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid .button-action-custom-selector{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid.empty-result::part(main){overflow:hidden}.messages-list{margin:0;padding:0;list-style:none;max-inline-size:800px;padding:8px 0;list-style-type:none;display:flex;flex-direction:column;gap:var(--mer-spacing--3xs)}.message-description{line-height:1.5;display:flex;align-items:center;gap:8px}.message-icon{flex-shrink:0}.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--update,.pill--pending{--pill-background-color:var();--pill-color:var(--mer-color__neutral-gray--400);--pill-border-color:var()}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--ignored{--pill-background-color:var(--mer-surface__elevation--02);--pill-color:var(--mer-text__on-disabled);--pill-border-color:var(--mer-border-color__primary--disabled)}.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--
|
|
76
|
+
const commitCss = ".detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.detail__version{padding-inline-start:24px}.filter,.filter-secondary>div{display:grid;gap:12px}:host{display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr;--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s)}.section{display:grid;display:contents}.header__details{display:grid;row-gap:var(--mer-spacing--md);grid-auto-columns:max-content;grid-auto-rows:max-content;margin-block-end:var(--mer-spacing--lg)}.detail__label{color:var(--mer-color__neutral-gray--400)}.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)}.filter__combo{max-block-size:minmax(0, 200px)}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0;--elevation-background-color:var(--mer-surface__elevation--01)}.empty-state{block-size:100%}.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-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden;pointer-events:none}.tabular-grid{border-radius:4px;overflow:hidden}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid .button-action-custom-selector{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid.empty-result::part(main){overflow:hidden}.messages-list{margin:0;padding:0;list-style:none;max-inline-size:800px;padding:8px 0;list-style-type:none;display:flex;flex-direction:column;gap:var(--mer-spacing--3xs)}.message-description{line-height:1.5;display:flex;align-items:center;gap:8px}.message-icon{flex-shrink:0}.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--update,.pill--pending{--pill-background-color:var();--pill-color:var(--mer-color__neutral-gray--400);--pill-border-color:var()}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--ignored{--pill-background-color:var(--mer-surface__elevation--02);--pill-color:var(--mer-text__on-disabled);--pill-border-color:var(--mer-border-color__primary--disabled)}.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--committed{--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}.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)}.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)}}.hiChar{color:var(--mer-color__primary--200);filter:brightness(1.3)}.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}.header__details{grid-template-areas:\"detail-heading-gx . . .\" \"detail-genexus-server detail-knowledge-base detail-version detail-last-full-update\"}.detail__heading-genexus-server{grid-area:detail-heading-gx}.detail__genexus-server{grid-area:detail-genexus-server}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__version{grid-area:detail-version}.filter-container{container-type:inline-size;box-sizing:border-box;display:grid;column-gap:12px;grid-template-areas:\"filter-primary filter-toggle-button filter-action-buttons\" \"filter-secondary . .\" \"comments comments comments\";grid-template-columns:minmax(0, max-content) max-content 1fr}.filter-primary{grid-area:filter-primary;grid-template-columns:minmax(0, 200px) minmax(0, 200px) minmax(0, 200px)}.filter-container>:nth-child(2){grid-area:filter-toggle-button}.filter-container>:nth-child(3){grid-area:filter-action-buttons;justify-content:end}.filter__toggle-secondary-filter-btn{grid-area:filter-toggle-button}.filter__buttons{grid-area:filter-buttons;margin-inline-start:auto}.filter-secondary{display:grid;grid-template-rows:0fr;grid-area:filter-secondary;transition:grid-template-rows var(--mer-timing--fast)}.filter-secondary--visible{grid-template-rows:1fr}.filter-secondary>div{display:grid;overflow:hidden;font-size:0;grid-template-columns:repeat(3, minmax(0, 200px))}.filter-secondary>div>.combo-box,.comments{margin-block-start:12px}.comments{grid-area:comments}.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:minmax(0, 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}";
|
|
77
77
|
|
|
78
78
|
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
79
79
|
if (kind === "a" && !f)
|
|
@@ -134,7 +134,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
134
134
|
});
|
|
135
135
|
_GxIdeTeamDevCommit_commitSingleObject.set(this, objectId => async () => {
|
|
136
136
|
const newobjectsStatusMap = new Map(this.objectsStatusMap);
|
|
137
|
-
newobjectsStatusMap.set(objectId, "
|
|
137
|
+
newobjectsStatusMap.set(objectId, "committing");
|
|
138
138
|
this.objectsStatusMap = newobjectsStatusMap;
|
|
139
139
|
__classPrivateFieldGet(this, _GxIdeTeamDevCommit_commitObjectsHandler, "f").call(this, [objectId]);
|
|
140
140
|
});
|
|
@@ -145,9 +145,9 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
145
145
|
return;
|
|
146
146
|
}
|
|
147
147
|
this.commentInputHasError = false;
|
|
148
|
-
this.
|
|
148
|
+
this.committing = true;
|
|
149
149
|
selection.forEach(itemToUpdate => {
|
|
150
|
-
this.objectsStatusMap.set(itemToUpdate, "
|
|
150
|
+
this.objectsStatusMap.set(itemToUpdate, "committing");
|
|
151
151
|
});
|
|
152
152
|
const commitResult = await this.commitCallback(selection, this.commentsValue);
|
|
153
153
|
commitResult.forEach(async (objectResult) => {
|
|
@@ -159,25 +159,26 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
159
159
|
// clear messages
|
|
160
160
|
this.objectsMessagesDataMap.delete(objectResult.id);
|
|
161
161
|
}
|
|
162
|
-
if (objectResult.result === "
|
|
163
|
-
// Apply a new Set to "
|
|
164
|
-
this.
|
|
165
|
-
...this.
|
|
162
|
+
if (objectResult.result === "committed") {
|
|
163
|
+
// Apply a new Set to "alreadyCommittedObjectsIdsSet" in order for the Watch to fire.
|
|
164
|
+
this.alreadyCommittedObjectsIdsSet = new Set([
|
|
165
|
+
...this.alreadyCommittedObjectsIdsSet,
|
|
166
166
|
objectResult.id
|
|
167
167
|
]);
|
|
168
|
-
this.objectsStatusMap.set(objectResult.id, "
|
|
168
|
+
this.objectsStatusMap.set(objectResult.id, "committed");
|
|
169
169
|
await __classPrivateFieldGet(this, _GxIdeTeamDevCommit_chGridPendingForUpdateEl, "f").markRow(objectResult.id, false);
|
|
170
170
|
}
|
|
171
171
|
else {
|
|
172
172
|
this.objectsStatusMap.set(objectResult.id, "pending");
|
|
173
173
|
}
|
|
174
174
|
});
|
|
175
|
-
this.
|
|
175
|
+
this.committing = false;
|
|
176
|
+
this.commentsValue = "";
|
|
176
177
|
});
|
|
177
178
|
// handlers
|
|
178
179
|
_GxIdeTeamDevCommit_rowMarkingChangedHandler.set(this, async (event) => {
|
|
179
180
|
const markedRowsIds = event.detail.rowsId;
|
|
180
|
-
this.markedObjectsSet = new Set(markedRowsIds.filter(markedObjectId => !this.
|
|
181
|
+
this.markedObjectsSet = new Set(markedRowsIds.filter(markedObjectId => !this.alreadyCommittedObjectsIdsSet.has(markedObjectId)));
|
|
181
182
|
if (__classPrivateFieldGet(this, _GxIdeTeamDevCommit_rowCheckedChangedByTheUser, "f")) {
|
|
182
183
|
__classPrivateFieldGet(this, _GxIdeTeamDevCommit_updatePendingCheckedItems, "f").call(this, event);
|
|
183
184
|
}
|
|
@@ -330,7 +331,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
330
331
|
**/
|
|
331
332
|
_GxIdeTeamDevCommit_markPendingObjects.set(this, () => {
|
|
332
333
|
for (const pendingId of this.pendingIdsSet) {
|
|
333
|
-
if (!this.
|
|
334
|
+
if (!this.alreadyCommittedObjectsIdsSet.has(pendingId)) {
|
|
334
335
|
this.markedObjectsSet = new Set([...this.markedObjectsSet, pendingId]);
|
|
335
336
|
}
|
|
336
337
|
}
|
|
@@ -397,8 +398,8 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
397
398
|
}
|
|
398
399
|
}
|
|
399
400
|
});
|
|
400
|
-
this.
|
|
401
|
-
this.
|
|
401
|
+
this.allPendingAreCommitted = false;
|
|
402
|
+
this.alreadyCommittedObjectsIdsSet = new Set([]);
|
|
402
403
|
this.ignoredIdsSet = new Set([]);
|
|
403
404
|
this.pendingIdsSet = new Set([]);
|
|
404
405
|
this.markedObjectsSet = new Set([]);
|
|
@@ -406,7 +407,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
406
407
|
this.objectsMessagesDataMap = new Map();
|
|
407
408
|
this.atLeastOneObjectIsChecked = false;
|
|
408
409
|
this.commentInputHasError = false;
|
|
409
|
-
this.
|
|
410
|
+
this.committing = false;
|
|
410
411
|
this.filterSecondaryIsHidden = true;
|
|
411
412
|
this.filterSecondaryHasConditions = false;
|
|
412
413
|
this.loading = true;
|
|
@@ -438,18 +439,18 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
438
439
|
this.updatePillAsButton = false;
|
|
439
440
|
this.serverDetails = undefined;
|
|
440
441
|
}
|
|
441
|
-
|
|
442
|
-
const
|
|
443
|
-
this.
|
|
444
|
-
|
|
442
|
+
alreadyCommittedObjectsIdsSetChanged(newCommittedObjectsIdsSet) {
|
|
443
|
+
const pendingIdsSetAndCommittedIdsSetAreEqual = areSetsEqual(newCommittedObjectsIdsSet, this.pendingIdsSet);
|
|
444
|
+
this.allPendingAreCommitted =
|
|
445
|
+
pendingIdsSetAndCommittedIdsSetAreEqual && this.pendingIdsSet.size > 0;
|
|
445
446
|
}
|
|
446
447
|
markedObjectsSetChanged(newMarkedObjectsSet) {
|
|
447
448
|
this.atLeastOneObjectIsChecked = newMarkedObjectsSet.size > 0;
|
|
448
449
|
}
|
|
449
450
|
objectsStatusMapChanged(newObjectsStatusMap) {
|
|
450
|
-
const someObjectIsUpdating = [...newObjectsStatusMap.entries()].find(([, state]) => state === "
|
|
451
|
+
const someObjectIsUpdating = [...newObjectsStatusMap.entries()].find(([, state]) => state === "committing");
|
|
451
452
|
if (!someObjectIsUpdating) {
|
|
452
|
-
this.
|
|
453
|
+
this.committing = false;
|
|
453
454
|
}
|
|
454
455
|
}
|
|
455
456
|
pendingAndIgnoredChanged(newPendingAndIgnored) {
|
|
@@ -458,7 +459,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
458
459
|
this.pendingIdsSet.clear(); // before pendingIdsSet.add
|
|
459
460
|
this.ignoredIdsSet.clear(); // before ignoredIdsSet.add
|
|
460
461
|
this.objectsMessagesDataMap = new Map();
|
|
461
|
-
this.
|
|
462
|
+
this.alreadyCommittedObjectsIdsSet = new Set();
|
|
462
463
|
this.commentInputHasError = false;
|
|
463
464
|
this.markedObjectsSet = new Set(); // before #markPendingObjects
|
|
464
465
|
(_a = newPendingAndIgnored.pendingForCommit) === null || _a === void 0 ? void 0 : _a.forEach(pending => {
|
|
@@ -529,8 +530,8 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
529
530
|
}
|
|
530
531
|
async componentDidLoad() {
|
|
531
532
|
await __classPrivateFieldGet(this, _GxIdeTeamDevCommit_loadData, "f").call(this);
|
|
532
|
-
// initialize "
|
|
533
|
-
this.
|
|
533
|
+
// initialize "allPendingAreCommitted"
|
|
534
|
+
this.alreadyCommittedObjectsIdsSetChanged(this.alreadyCommittedObjectsIdsSet);
|
|
534
535
|
}
|
|
535
536
|
/**
|
|
536
537
|
* Used by the host to instruct the component to force a data reload in the grids.
|
|
@@ -539,7 +540,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
539
540
|
await __classPrivateFieldGet(this, _GxIdeTeamDevCommit_loadData, "f").call(this);
|
|
540
541
|
}
|
|
541
542
|
render() {
|
|
542
|
-
const disableControls = this.
|
|
543
|
+
const disableControls = this.committing || this.loading;
|
|
543
544
|
const gridIsEmpty = this.pendingObjectsAfterFilter.length === 0 &&
|
|
544
545
|
this.ignoredObjectsAfterFilter.length === 0;
|
|
545
546
|
const filterIcon = this.filterSecondaryHasConditions
|
|
@@ -547,7 +548,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
547
548
|
: ICONS.filter;
|
|
548
549
|
const commitButtonEnabled = this.atLeastOneObjectIsChecked &&
|
|
549
550
|
this.commentsValue.length > 0 &&
|
|
550
|
-
!this.
|
|
551
|
+
!this.allPendingAreCommitted;
|
|
551
552
|
return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: { [CSS_SELECTORS.HEADER]: true } }, h("div", {
|
|
552
553
|
// header details
|
|
553
554
|
class: { [CSS_SELECTORS.HEADER_DETAILS]: true }
|
|
@@ -587,23 +588,23 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
587
588
|
class: "combo-box", disabled: disableControls, model: this.foldersComboBoxModel, value: this.selectedFolder, onInput: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_folderChanged, "f"), accessibleName: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").filter.folderAccesibleName, placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").filter.folderPlaceholder
|
|
588
589
|
}))), h("ch-edit", {
|
|
589
590
|
// commit comments
|
|
590
|
-
class: "input comments", multiline: true, autoGrow: true, placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").commitCommentPlaceholder, onInput: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_commentsInputHandler, "f")
|
|
591
|
+
class: "input comments", multiline: true, autoGrow: true, placeholder: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").commitCommentPlaceholder, onInput: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_commentsInputHandler, "f"), value: this.commentsValue
|
|
591
592
|
})), h("div", { class: CSS_SELECTORS.MAIN }, !this.loading ? (h("ch-tabular-grid", { class: {
|
|
592
593
|
"tabular-grid": true,
|
|
593
594
|
"objects-tabular-grid": true,
|
|
594
|
-
"disabled-custom-selector": this.
|
|
595
|
+
"disabled-custom-selector": this.committing,
|
|
595
596
|
"empty-result": gridIsEmpty
|
|
596
|
-
}, keyboardNavigationMode: "focus", rowSelectionMode: "multiple", onSelectionChanged: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_rowSelectionChangedHandler, "f"), onRowMarkingChanged: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_rowMarkingChangedHandler, "f"), onRowContextMenu: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_onRowContextMenuHandler, "f").call(this), ref: (el) => (__classPrivateFieldSet(this, _GxIdeTeamDevCommit_chGridPendingForUpdateEl, el, "f")) }, renderTabularGridColumns(["action"], gridIsEmpty, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_sortTabularGridColumnCallback, "f"), __classPrivateFieldGet(this, _GxIdeTeamDevCommit_columnSelectorClickedCallback, "f"), __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f"), !this.
|
|
597
|
+
}, keyboardNavigationMode: "focus", rowSelectionMode: "multiple", onSelectionChanged: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_rowSelectionChangedHandler, "f"), onRowMarkingChanged: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_rowMarkingChangedHandler, "f"), onRowContextMenu: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_onRowContextMenuHandler, "f").call(this), ref: (el) => (__classPrivateFieldSet(this, _GxIdeTeamDevCommit_chGridPendingForUpdateEl, el, "f")) }, renderTabularGridColumns(["action"], gridIsEmpty, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_sortTabularGridColumnCallback, "f"), __classPrivateFieldGet(this, _GxIdeTeamDevCommit_columnSelectorClickedCallback, "f"), __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f"), !this.allPendingAreCommitted), !gridIsEmpty
|
|
597
598
|
? [
|
|
598
|
-
h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-legend", { class: "tabular-grid-rowset-legend" }, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").objects.pendingCommits), renderTabularGridRows("pending", this.pendingObjectsAfterFilter, this.ignoredObjectsAfterFilter, this.
|
|
599
|
-
h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-legend", { class: "tabular-grid-rowset-legend" }, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").objects.ignoredObjects), renderTabularGridRows("ignored", this.pendingObjectsAfterFilter, this.ignoredObjectsAfterFilter, this.
|
|
599
|
+
h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-legend", { class: "tabular-grid-rowset-legend" }, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").objects.pendingCommits), renderTabularGridRows("pending", this.pendingObjectsAfterFilter, this.ignoredObjectsAfterFilter, this.alreadyCommittedObjectsIdsSet, this.markedObjectsSet, this.objectsMessagesDataMap, this.updatePillAsButton, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_commitSingleObject, "f"), this.objectsStatusMap, this.searchValue, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f"))),
|
|
600
|
+
h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, h("ch-tabular-grid-rowset-legend", { class: "tabular-grid-rowset-legend" }, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").objects.ignoredObjects), renderTabularGridRows("ignored", this.pendingObjectsAfterFilter, this.ignoredObjectsAfterFilter, this.alreadyCommittedObjectsIdsSet, this.markedObjectsSet, this.objectsMessagesDataMap, this.updatePillAsButton, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_commitSingleObject, "f"), this.objectsStatusMap, this.searchValue, __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f")))
|
|
600
601
|
]
|
|
601
602
|
: null, h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, gridIsEmpty && (h("ch-tabular-grid-rowset-empty", null, h("gx-ide-empty-state", { class: "empty-state", isAnimated: true, stateIconSrc: ICONS.filter, stateTitle: "No object matched your filter" })))))) : (h("gx-ide-loader", { cancelLabel: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").loader.cancelLabel, loaderTitle: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").loader.title, description: __classPrivateFieldGet(this, _GxIdeTeamDevCommit_componentLocale, "f").loader.description, show: true, class: "loader" }))))));
|
|
602
603
|
}
|
|
603
604
|
static get assetsDirs() { return ["gx-ide-assets/team-dev-commit"]; }
|
|
604
605
|
get el() { return this; }
|
|
605
606
|
static get watchers() { return {
|
|
606
|
-
"
|
|
607
|
+
"alreadyCommittedObjectsIdsSet": ["alreadyCommittedObjectsIdsSetChanged"],
|
|
607
608
|
"markedObjectsSet": ["markedObjectsSetChanged"],
|
|
608
609
|
"objectsStatusMap": ["objectsStatusMapChanged"],
|
|
609
610
|
"pendingAndIgnored": ["pendingAndIgnoredChanged"],
|
|
@@ -624,8 +625,8 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
624
625
|
"folders": [16],
|
|
625
626
|
"updatePillAsButton": [4, "update-pill-as-button"],
|
|
626
627
|
"serverDetails": [16],
|
|
627
|
-
"
|
|
628
|
-
"
|
|
628
|
+
"allPendingAreCommitted": [32],
|
|
629
|
+
"alreadyCommittedObjectsIdsSet": [32],
|
|
629
630
|
"ignoredIdsSet": [32],
|
|
630
631
|
"pendingIdsSet": [32],
|
|
631
632
|
"markedObjectsSet": [32],
|
|
@@ -633,7 +634,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
633
634
|
"objectsMessagesDataMap": [32],
|
|
634
635
|
"atLeastOneObjectIsChecked": [32],
|
|
635
636
|
"commentInputHasError": [32],
|
|
636
|
-
"
|
|
637
|
+
"committing": [32],
|
|
637
638
|
"filterSecondaryIsHidden": [32],
|
|
638
639
|
"filterSecondaryHasConditions": [32],
|
|
639
640
|
"loading": [32],
|
|
@@ -652,7 +653,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class GxIdeTeamDev
|
|
|
652
653
|
"foldersComboBoxModel": [32],
|
|
653
654
|
"reload": [64]
|
|
654
655
|
}, undefined, {
|
|
655
|
-
"
|
|
656
|
+
"alreadyCommittedObjectsIdsSet": ["alreadyCommittedObjectsIdsSetChanged"],
|
|
656
657
|
"markedObjectsSet": ["markedObjectsSetChanged"],
|
|
657
658
|
"objectsStatusMap": ["objectsStatusMapChanged"],
|
|
658
659
|
"pendingAndIgnored": ["pendingAndIgnoredChanged"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"gx-ide-team-dev-commit.js","mappings":"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","names":["GxIdeTeamDevCommit","CLASSES"],"sources":["src/components/team-dev/version-control/common/clear-grid-selection.ts","src/components/team-dev/version-control/common/header-renders.tsx","src/components/team-dev/version-control/commit/utilities/changeset-to-combo-box.ts","src/components/team-dev/version-control/commit/utilities/folders-to-combo-box.ts","src/components/team-dev/version-control/commit/utilities/types-to-combo-box.ts","src/components/team-dev/version-control/commit/commit.scss?tag=gx-ide-team-dev-commit&encapsulation=shadow","src/components/team-dev/version-control/commit/commit.tsx"],"sourcesContent":["import { SourceType } from \"./types\";\n\n/**\n * Filters a grid selection to only include rows from the given source (\"pending\" or \"ignored\").\n * Rows from the other category are unselected.\n *\n * @param {SourceType} gridSource - The source category of the selection.\n * @param {string[]} selectedRowsIds - The currently selected row IDs.\n * @returns {string[]} Filtered row IDs belonging to the specified source.\n */\nconst clearGridSelection = (\n gridSource: SourceType,\n selectedRowsIds: string[],\n pendingIdsSet: Set<string>,\n ignoredIdsSet: Set<string>,\n gridReference: HTMLChTabularGridElement\n): string[] => {\n let filteredSelectedRowsIds: string[] = [];\n if (selectedRowsIds.length > 1 && gridSource === \"pending\") {\n selectedRowsIds.forEach(async selectedRowId => {\n if (ignoredIdsSet.has(selectedRowId)) {\n await gridReference.selectRow(selectedRowId, false);\n } else {\n filteredSelectedRowsIds.push(selectedRowId);\n }\n });\n } else if (selectedRowsIds.length > 1 && gridSource === \"ignored\") {\n selectedRowsIds.forEach(async selectedRowId => {\n if (pendingIdsSet.has(selectedRowId)) {\n await gridReference.selectRow(selectedRowId, false);\n } else {\n filteredSelectedRowsIds.push(selectedRowId);\n }\n });\n } else {\n filteredSelectedRowsIds = selectedRowsIds;\n }\n return filteredSelectedRowsIds;\n};\n\nexport default clearGridSelection;\n","import { h, JSX } from \"@stencil/core\";\n\nconst headerDetail = (\n type: \"text\" | \"link\" = \"text\",\n caption: string,\n description: string,\n callback?: () => void,\n cssClass?: string\n): JSX.Element => {\n return (\n <div class={{ [cssClass]: true, \"field field-block\": true }}>\n <span class=\"detail__label body-semi-bold-s\">{caption}</span>\n {type === \"text\" ? (\n <p class=\"body-regular-s\">{description}</p>\n ) : (\n <button class=\"detail__link body-regular-s\" onClick={callback}>\n {description}\n </button>\n )}\n </div>\n );\n};\nexport default headerDetail;\n\nexport const headerTitle = (caption: string, cssClass?: string) => {\n return (\n <h2\n class={{ [cssClass]: true, \"header__title subtitle-semi-bold-s\": true }}\n >\n {caption}\n </h2>\n );\n};\n\nexport const headerSubtitle = (caption: string, cssClass?: string) => {\n return (\n <p\n class={{ [cssClass]: true, \"detail__title subtitle-semi-bold-xs\": true }}\n >\n {caption}\n </p>\n );\n};\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../../../../components\";\n\nexport const changesetToComboBoxModel = (\n changesetModel: GxOption[]\n): ComboBoxModel => {\n if (!changesetModel) return [];\n\n return changesetModel.map(changeset => ({\n value: changeset.id,\n caption:\n changeset.name === \"All\"\n ? \"All Changesets\"\n : changeset.label || changeset.name || \"\"\n }));\n};\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../../../../components\";\n\nexport const foldersToComboBoxModel = (\n foldersModel: GxOption[]\n): ComboBoxModel =>\n foldersModel.map(folder => ({\n value: folder.name,\n caption:\n folder.name === \"All\" ? \"All Modules\" : folder.label || folder.name || \"\"\n }));\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType } from \"../../../../../components\";\n\nexport const typesToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name === \"All\" ? \"All Types\" : objectType.name || \"\",\n startImgSrc: objectType.icon\n }));\n","@use \"../common/common.scss\" as *;\n@import \"../../common/styles.scss\";\n@import \"../../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../../../../global/gx-ide-mixins.scss\";\n\n// header detail\n.header__details {\n grid-template-areas:\n \"detail-heading-gx . . .\"\n \"detail-genexus-server detail-knowledge-base detail-version detail-last-full-update\";\n}\n\n.detail__heading-genexus-server {\n grid-area: detail-heading-gx;\n}\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n @extend %header-detail-start;\n}\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n @extend %header-detail-common;\n}\n.detail__version {\n grid-area: detail-version;\n @extend %header-detail-end;\n}\n\n// filter\n.filter-container {\n container-type: inline-size;\n box-sizing: border-box;\n display: grid;\n column-gap: 12px;\n grid-template-areas:\n \"filter-primary filter-toggle-button filter-action-buttons\"\n \"filter-secondary . .\"\n \"comments comments comments\";\n grid-template-columns: minmax(0, max-content) max-content 1fr;\n}\n.filter {\n @extend %filter;\n}\n.filter-primary {\n grid-area: filter-primary;\n grid-template-columns: $filterControlInlineSize $filterControlInlineSize $filterControlInlineSize;\n}\n.filter-container > :nth-child(2) {\n grid-area: filter-toggle-button;\n}\n.filter-container > :nth-child(3) {\n grid-area: filter-action-buttons;\n justify-content: end;\n}\n.filter__toggle-secondary-filter-btn {\n grid-area: filter-toggle-button;\n}\n\n.filter__buttons {\n grid-area: filter-buttons;\n margin-inline-start: auto;\n}\n\n// secondary filter (hidden by default)\n.filter-secondary {\n display: grid;\n grid-template-rows: 0fr;\n grid-area: filter-secondary;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n.filter-secondary--visible {\n grid-template-rows: 1fr;\n}\n.filter-secondary > div {\n @extend %filter;\n display: grid;\n overflow: hidden;\n font-size: 0; // WA Remove unwanted additional space\n grid-template-columns: repeat(3, $filterControlInlineSize);\n}\n\n.filter-secondary > div > .combo-box,\n.comments {\n margin-block-start: $filterRowGap;\n}\n.comments {\n grid-area: comments;\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: $filterControlInlineSize;\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","// stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n Watch\n} from \"@stencil/core\";\n\n// external libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport {\n ChEditCustomEvent,\n ComboBoxModel,\n TabularGridColumnSelectorClickedEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\n// local\nimport { Locale } from \"../../../../common/locale\";\nimport {\n GxOption,\n ItemsCheckedResult,\n ObjectType\n} from \"../../../../common/types\";\nimport clearGridSelection from \"../common/clear-grid-selection\";\nimport areSetsEqual from \"../common/are-sets-equal\";\nimport uncheckIgnoredObjects from \"../common/uncheck-ignored\";\n\nimport type {\n StateForFilter,\n StatusInternal,\n MessageData,\n ModifiedObjectData,\n CommitData,\n CommitCallback,\n ContextMenuCallback,\n LoadCallback,\n PendingItemsCheckedCallback,\n SelectCallback,\n ServerDetails,\n SourceType\n} from \"../common/types\";\n\nimport headerDetail, { headerTitle } from \"../common/header-renders\";\nimport { changesetToComboBoxModel } from \"./utilities/changeset-to-combo-box\";\nimport { foldersToComboBoxModel } from \"./utilities/folders-to-combo-box\";\nimport { typesToComboBoxItemModel } from \"./utilities/types-to-combo-box\";\nimport renderTabularGridRows, {\n renderTabularGridColumns,\n COLUMNS_IDS\n} from \"../common/tabular-grid-render\";\nimport sortTabularGridColumn, {\n type SortTabularGridColumnDataType\n} from \"../../../../common/chameleon/tabular-grid-column-sort\";\n\nimport { CSS_SELECTORS as CLASSES, ALL_VALUE } from \"../common/constants\";\nimport ICONS from \"../common/constants\";\n\nconst FILTER_SECONDARY_CONTAINER_ID = \"filters-secondary-container\";\nconst FILTER_SECONDARY_BUTTON_ID = \"filter-toggle-button\";\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\n@Component({\n tag: \"gx-ide-team-dev-commit\",\n styleUrl: \"commit.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-commit\"]\n})\nexport class GxIdeTeamDevCommit {\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\n /**\n * The ComboBoxModel for \"Local State\" filter.\n */\n #localStatesComboBoxModel: { caption: string; value: StateForFilter }[];\n\n /**\n * Used to determine if pendingItemsCheckedCallback callback has to be\n * called or not. It should be ignored if the grid checkboxes state is\n * changed programmatically, by setting markRow to false once the object\n * has been successfully updated, for example.\n */\n #rowCheckedChangedByTheUser: boolean = true;\n\n @Element() el: HTMLGxIdeTeamDevCommitElement;\n\n /**\n * A reference to the tablar grid. Used to call methods.\n */\n #chGridPendingForUpdateEl!: HTMLChTabularGridElement;\n\n // sets\n\n /**\n * A boolean that indicates if all the pending objects, have been commited\n * already.\n */\n @State() allPendingAreCommited: boolean = false;\n\n /**\n * A set that holds the id's of the objects that have been commited already.\n */\n @State() alreadyCommitedObjectsIdsSet: Set<string> = new Set<string>([]);\n @Watch(\"alreadyCommitedObjectsIdsSet\")\n alreadyCommitedObjectsIdsSetChanged(newCommitedObjectsIdsSet: Set<string>) {\n const pendingIdsSetAndCommitedIdsSetAreEqual = areSetsEqual(\n newCommitedObjectsIdsSet,\n this.pendingIdsSet\n );\n\n this.allPendingAreCommited =\n pendingIdsSetAndCommitedIdsSetAreEqual && this.pendingIdsSet.size > 0;\n }\n\n /**\n * A set that holds the ids of all the ignored objects. Used to quickly\n * determine if the selected rows belong to \"ignored\" or not. This\n * information is required for the ContextMenuCallback. This set\n * has to be updated on every loadCallback.\n */\n @State() ignoredIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that holds the id's of all the pending objects. Used to quickly\n * determine if the selected rows belong to \"pending\" or \"ignored\". This\n * information is required for the ContextMenuCallback. This set\n * has to be updated after every loadCallback.\n */\n @State() pendingIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that stores the marked state of each row. This is\n * required because filtering the grid causes marked cells to lose\n * their marked state.\n */\n @State() markedObjectsSet: Set<string> = new Set<string>([]);\n @Watch(\"markedObjectsSet\")\n markedObjectsSetChanged(newMarkedObjectsSet: Set<string>) {\n this.atLeastOneObjectIsChecked = newMarkedObjectsSet.size > 0;\n }\n\n // maps\n\n /**\n * A map that holds the current state of every row (\"inserted\" |\n * \"modified\" | \"modified-with-conflicts\" | \"deleted\" | \"updating\" |\n * \"update\")\n */\n @State() objectsStatusMap: Map<string, StatusInternal> = new Map();\n @Watch(\"objectsStatusMap\")\n objectsStatusMapChanged(newObjectsStatusMap: Map<string, StatusInternal>) {\n const someObjectIsUpdating = [...newObjectsStatusMap.entries()].find(\n ([, state]) => state === \"commiting\"\n );\n\n if (!someObjectIsUpdating) {\n this.commiting = false;\n }\n }\n\n /**\n * A map that holds object messages, after trying to commit ('info' |\n * 'success' | 'warning' | 'error')\n */\n @State() objectsMessagesDataMap: Map<string, MessageData[]> = new Map();\n\n // boolean\n\n /**\n * It holds a boolean indicating if at least one object from the\n * tabular-grid is checked, for merging.\n */\n @State() atLeastOneObjectIsChecked: boolean = false;\n\n /**\n * A boolean to indicate if the comments input has error or not.\n */\n @State() commentInputHasError: boolean = false;\n\n /**\n * Set to true when objects are being commited. This helps disabling\n * controls until all objects are done.\n */\n @State() commiting: boolean = false;\n\n /**\n * Hides or shows the filter secondary controls\n */\n @State() filterSecondaryIsHidden = true;\n\n /**\n * Indicates if any of the filter secondary controls have a condition\n * (have a value other than default \"All\"). This changes the filter\n * toggle button icon, from \"filter\" to \"filterWithConditions\".\n */\n @State() filterSecondaryHasConditions = false;\n\n /**\n * Used to display a loader. Set to true when loadCallback is called.\n */\n @State() loading: boolean = true;\n\n // models\n\n /**\n * changeset options as ComboBoxModel\n */\n @State() changesetsComboBoxModel: ComboBoxModel;\n\n /**\n * categories options as ComboBoxModel\n */\n // @State() categoriesComboBoxModel: ComboBoxModel;\n\n /**\n * Pending objects after \"action\" filter\n */\n @State() pendingObjectsAfterFilter: ModifiedObjectData[] = [];\n\n /**\n * Ignored objects after \"action\" filter\n */\n @State() ignoredObjectsAfterFilter: ModifiedObjectData[] = [];\n\n /**\n * The ComboBoxModel for \"Types\" filter.\n */\n @State() typesComboBoxModel: ComboBoxModel = [];\n\n /**\n * All objects (\"pending for update\" and \"ignored objects\") before\n * \"state\" filter\n */\n @State() pendingAndIgnored: CommitData = {\n pendingForCommit: [],\n ignoredObjects: []\n };\n @Watch(\"pendingAndIgnored\")\n pendingAndIgnoredChanged(newPendingAndIgnored: CommitData) {\n // clear previous state\n this.pendingIdsSet.clear(); // before pendingIdsSet.add\n this.ignoredIdsSet.clear(); // before ignoredIdsSet.add\n this.objectsMessagesDataMap = new Map();\n this.alreadyCommitedObjectsIdsSet = new Set();\n this.commentInputHasError = false;\n this.markedObjectsSet = new Set(); // before #markPendingObjects\n\n newPendingAndIgnored.pendingForCommit?.forEach(pending => {\n this.pendingIdsSet.add(pending.id);\n });\n newPendingAndIgnored.ignoredObjects?.forEach(ignored => {\n this.ignoredIdsSet.add(ignored.id);\n });\n\n this.#markPendingObjects(); // after pendingIdsSet.add and ignoredIdsSet.add\n this.#setInitialObjectsStatus(); // after pendingIdsSet.add and ignoredIdsSet.add\n\n this.#applyClientFilter();\n }\n\n // current values\n\n /**\n * Holds the current value for the commit \"comments\"\n */\n @State() commentsValue: string = \"\";\n\n /**\n * The current search filter value.\n */\n @State() searchValue: string = \"\";\n\n /**\n * Holds the current value for the \"type\" filter\n */\n @State() selectedType: string;\n\n /**\n * Holds the current value for the \"local state\" filter\n */\n @State() selectedState: StateForFilter = ALL_VALUE;\n\n /**\n * Holds the current value for the \"changeset\" filter\n */\n @State() selectedChangeset: string;\n\n /**\n * Holds the current value for the \"folder\" filter\n */\n @State() selectedFolder: string;\n\n /**\n * Holds the current value for the \"category\" filter\n */\n @State() selectedCategory: string;\n\n /**\n * folder options as ComboBoxModel\n */\n @State() foldersComboBoxModel: ComboBoxModel;\n\n // callbacks\n\n /**\n * Invoked when user starts the commit process\n */\n @Prop() readonly commitCallback: CommitCallback;\n\n /**\n * Invoked when user activates the context menu on any of the grids.\n */\n @Prop() readonly objectsContextMenuCallback!: ContextMenuCallback;\n\n /**\n * Invoked to return the list of data types loaded from file\n * or url.\n */\n @Prop() readonly loadCallback!: LoadCallback;\n\n /**\n * Invoked when user clicks in server url of Update From group.\n */\n @Prop() readonly openServerCallback!: () => Promise<void>;\n\n /**\n * Invoked to return information of a Font type of data.\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * Invoked when the user selects rows from the grid\n */\n @Prop() readonly selectCallback: SelectCallback;\n\n // models\n\n /**\n * \"types\" options for the filter.\n */\n @Prop() readonly types: ObjectType[];\n @Watch(\"types\")\n typesChanged(newTypes: ObjectType[]) {\n this.typesComboBoxModel = typesToComboBoxItemModel(newTypes);\n }\n\n /**\n * \"changeset\" options for the filter.\n */\n @Prop() readonly changeset: GxOption[];\n @Watch(\"changeset\")\n changesetChanged(newChangesetOptions: GxOption[]) {\n this.changesetsComboBoxModel =\n changesetToComboBoxModel(newChangesetOptions);\n }\n\n /**\n * \"folder\" options for the filter.\n */\n @Prop() readonly folders: GxOption[];\n @Watch(\"folders\")\n folderChanged(newFolderOptions: GxOption[]) {\n this.foldersComboBoxModel = foldersToComboBoxModel(newFolderOptions);\n }\n\n /**\n * \"category\" options for the filter.\n */\n // @Prop() readonly categories: GxOption[];\n // @Watch(\"categories\")\n // categoryChanged(newCategoryOptions: GxOption[]) {\n // this.categoriesComboBoxModel =\n // categoriesToComboBoxModel(newCategoryOptions);\n // }\n\n // boolean\n\n /**\n * If true, the \"Action\" column will display a button instead of a pill,\n * only when the action is\n */\n @Prop() readonly updatePillAsButton: boolean = false;\n\n /**\n * Information to show in Update From group.\n */\n @Prop() readonly serverDetails: ServerDetails;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // Initiate \"actions\" combo box filter\n this.#localStatesComboBoxModel = [\n {\n caption: this.#componentLocale.states.all,\n value: ALL_VALUE\n },\n {\n caption: this.#componentLocale.states.inserted,\n value: \"inserted\"\n },\n {\n caption: this.#componentLocale.states.modified,\n value: \"modified\"\n },\n {\n caption: this.#componentLocale.states.conflicted,\n value: \"conflicted\"\n },\n {\n caption: this.#componentLocale.states.deleted,\n value: \"deleted\"\n }\n ];\n\n // intialize combo-box models\n\n this.typesComboBoxModel = typesToComboBoxItemModel(this.types);\n this.selectedType = this.typesComboBoxModel[0].value;\n\n this.selectedState = this.#localStatesComboBoxModel[0].value;\n\n this.changesetChanged(this.changeset);\n this.selectedChangeset =\n this.changesetsComboBoxModel.length > 0\n ? this.changesetsComboBoxModel[0].value\n : ALL_VALUE;\n\n this.folderChanged(this.folders);\n this.selectedFolder =\n this.foldersComboBoxModel && this.foldersComboBoxModel.length > 0\n ? this.foldersComboBoxModel[0].value\n : ALL_VALUE;\n\n // this.categoryChanged(this.categories);\n // this.selectedCategory =\n // this.categoriesComboBoxModel.length > 0\n // ? this.categoriesComboBoxModel[0].value\n // : ALL_VALUE;\n\n this.#evaluateSecondaryFilterHasConditions();\n }\n\n async componentDidLoad() {\n await this.#loadData();\n\n // initialize \"allPendingAreCommited\"\n this.alreadyCommitedObjectsIdsSetChanged(this.alreadyCommitedObjectsIdsSet);\n }\n\n /**\n * Used by the host to instruct the component to force a data reload in the grids.\n */\n @Method()\n async reload() {\n await this.#loadData();\n }\n\n // commit related\n\n #commitCheckedClickedHandler = () => {\n this.#commitObjectsHandler([...this.markedObjectsSet]);\n };\n\n #commitSingleObject: (objectId: string) => () => void =\n objectId => async () => {\n const newobjectsStatusMap = new Map(this.objectsStatusMap);\n newobjectsStatusMap.set(objectId, \"commiting\");\n this.objectsStatusMap = newobjectsStatusMap;\n this.#commitObjectsHandler([objectId]);\n };\n\n #commitObjectsHandler = async (selection: string[]) => {\n if (this.commentsValue.length === 0) {\n // A comment is required to commit.\n this.commentInputHasError = true;\n return;\n }\n this.commentInputHasError = false;\n this.commiting = true;\n\n selection.forEach(itemToUpdate => {\n this.objectsStatusMap.set(itemToUpdate, \"commiting\");\n });\n\n const commitResult = await this.commitCallback(\n selection,\n this.commentsValue\n );\n\n commitResult.forEach(async objectResult => {\n const messages = objectResult.messages;\n if (messages.length) {\n this.objectsMessagesDataMap.set(objectResult.id, objectResult.messages);\n } else {\n // clear messages\n this.objectsMessagesDataMap.delete(objectResult.id);\n }\n if (objectResult.result === \"commited\") {\n // Apply a new Set to \"alreadyCommitedObjectsIdsSet\" in order for the Watch to fire.\n this.alreadyCommitedObjectsIdsSet = new Set([\n ...this.alreadyCommitedObjectsIdsSet,\n objectResult.id\n ]);\n this.objectsStatusMap.set(objectResult.id, \"commited\");\n await this.#chGridPendingForUpdateEl.markRow(objectResult.id, false);\n } else {\n this.objectsStatusMap.set(objectResult.id, \"pending\");\n }\n });\n\n this.commiting = false;\n };\n\n // handlers\n\n #rowMarkingChangedHandler = async (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n const markedRowsIds = event.detail.rowsId;\n\n this.markedObjectsSet = new Set(\n markedRowsIds.filter(\n markedObjectId => !this.alreadyCommitedObjectsIdsSet.has(markedObjectId)\n )\n );\n\n if (this.#rowCheckedChangedByTheUser) {\n this.#updatePendingCheckedItems(event);\n }\n };\n\n #rowSelectionChangedHandler = async (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n const selectedRowsIds = event.detail.rowsId;\n const firstSelectedRowId = selectedRowsIds[0];\n const gridSource: SourceType = this.pendingIdsSet.has(firstSelectedRowId)\n ? \"pending\"\n : \"ignored\";\n\n const filteredSelectedRowsIds = clearGridSelection(\n gridSource,\n selectedRowsIds,\n this.pendingIdsSet,\n this.ignoredIdsSet,\n this.#chGridPendingForUpdateEl\n );\n\n await this.selectCallback(gridSource, filteredSelectedRowsIds);\n };\n\n #commentsInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.commentsValue = event.detail as string;\n if (this.commentsValue.length && this.commentInputHasError) {\n // remove error style and tooltip\n this.commentInputHasError = false;\n }\n };\n\n // filter related\n\n #applyClientFilter = () => {\n this.pendingObjectsAfterFilter = this.#filteredObjects(\n this.pendingAndIgnored.pendingForCommit\n );\n this.ignoredObjectsAfterFilter = this.#filteredObjects(\n this.pendingAndIgnored.ignoredObjects\n );\n };\n\n #filteredObjects = (objects: ModifiedObjectData[]): ModifiedObjectData[] => {\n let filtered = objects;\n\n // name or description\n if (this.searchValue.length) {\n filtered = filtered.filter(object => {\n const nameFiltered = object.name\n .toLowerCase()\n .includes(this.searchValue.toLowerCase());\n\n const descriptionFiltered = object.description\n .toLowerCase()\n .includes(this.searchValue.toLowerCase());\n\n return nameFiltered || descriptionFiltered;\n });\n }\n\n // status\n if (this.selectedState && this.selectedState !== ALL_VALUE) {\n filtered = filtered.filter(object => object.state === this.selectedState);\n }\n\n return filtered;\n };\n\n #evaluateSecondaryFilterHasConditions = () => {\n if (\n // this.selectedChangeset !== ALL_VALUE ||\n this.selectedFolder !== ALL_VALUE\n // this.selectedCategory !== ALL_VALUE\n ) {\n this.filterSecondaryHasConditions = true;\n } else {\n this.filterSecondaryHasConditions = false;\n }\n };\n\n #toggleFiltersHandler = () => {\n this.filterSecondaryIsHidden = !this.filterSecondaryIsHidden;\n };\n\n #searchInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.searchValue = (event.detail as string).trim();\n this.#applyClientFilter();\n };\n\n #typeChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.selectedType = event.detail as string;\n this.#loadData();\n };\n\n #stateChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.selectedState = event.detail as StateForFilter;\n this.#applyClientFilter();\n };\n\n // changeset is a WIP.\n // #changesetChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n // this.selectedChangeset = event.detail as string;\n // this.#loadData();\n // this.#evaluateSecondaryFilterHasConditions();\n // };\n\n #folderChanged = (event: CustomEvent<string> | InputEvent) => {\n this.selectedFolder = event.detail as string;\n this.#loadData();\n this.#evaluateSecondaryFilterHasConditions();\n };\n\n // #categoryChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n // this.selectedCategory = event.detail as string;\n // this.#loadData();\n // this.#evaluateSecondaryFilterHasConditions();\n // };\n\n #onRowContextMenuHandler =\n () => async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n ev.preventDefault();\n ev.stopPropagation();\n\n const selectedRowsIds =\n await this.#chGridPendingForUpdateEl.getSelectedRows();\n\n const firstSelectedRowId = selectedRowsIds[0];\n const gridSource = this.pendingIdsSet.has(firstSelectedRowId)\n ? \"pending\"\n : \"ignored\";\n\n await this.objectsContextMenuCallback(gridSource, {\n selection: selectedRowsIds,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n // other methods\n\n #updatePendingCheckedItems = async (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n this.#rowCheckedChangedByTheUser = false;\n const addedRowsIds = event.detail.addedRowsId;\n const removedRowsId = event.detail.removedRowsId;\n\n const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({\n itemsChecked: addedRowsIds,\n itemsUnchecked: removedRowsId\n });\n\n if (pendingItemCheckedResult === undefined) {\n // undo check/uncheck\n await this.#revertPendingCommitsCheckboxes(addedRowsIds, removedRowsId);\n } else {\n await this.#togglePendingCommitsCheckboxes(pendingItemCheckedResult);\n }\n this.#rowCheckedChangedByTheUser = true;\n };\n\n #setInitialObjectsStatus = (): void => {\n this.pendingAndIgnored.pendingForCommit.forEach(pendingObject => {\n const status: StatusInternal = \"pending\";\n this.objectsStatusMap.set(pendingObject.id, status);\n });\n this.pendingAndIgnored.ignoredObjects.forEach(ignoredObject => {\n const status: StatusInternal = \"ignored\";\n this.objectsStatusMap.set(ignoredObject.id, status);\n });\n };\n\n #loadData = async (): Promise<void> => {\n this.loading = true;\n\n this.pendingAndIgnored = await this.loadCallback({\n search: this.searchValue,\n type: this.selectedType,\n changeset: this.selectedChangeset,\n folder: this.selectedFolder,\n category: this.selectedCategory\n });\n\n this.loading = false;\n // Is is required to mark/check all objects after loadCallback.\n // this.#markPendingObjects();\n };\n\n /**\n * Marks all pending objects that have not been committed yet.\n *\n * Iterates through all pending object IDs and adds them to the marked objects set\n * if they are not already in the committed objects set. This effectively identifies\n * and marks all the pending objects that still need to be processed.\n **/\n #markPendingObjects = () => {\n for (const pendingId of this.pendingIdsSet) {\n if (!this.alreadyCommitedObjectsIdsSet.has(pendingId)) {\n this.markedObjectsSet = new Set([...this.markedObjectsSet, pendingId]);\n }\n }\n };\n\n // render methods\n\n #revertPendingCommitsCheckboxes = async (\n addedRowsIds: string[],\n removedRowsId: string[]\n ) => {\n if (this.#chGridPendingForUpdateEl) {\n for (const rowId of addedRowsIds) {\n await this.#chGridPendingForUpdateEl.markRow(rowId, false);\n }\n for (const rowId of removedRowsId) {\n await this.#chGridPendingForUpdateEl.markRow(rowId, true);\n }\n }\n };\n\n #togglePendingCommitsCheckboxes = async (\n itemsToToggle: ItemsCheckedResult\n ) => {\n if (this.#chGridPendingForUpdateEl) {\n const itemsToCheck: string[] = itemsToToggle.itemsToCheck;\n const itemsToUncheck: string[] = itemsToToggle.itemsToUncheck;\n // check\n for (const rowId of itemsToCheck) {\n await this.#chGridPendingForUpdateEl.markRow(rowId, true);\n }\n // uncheck\n for (const rowId of itemsToUncheck) {\n await this.#chGridPendingForUpdateEl.markRow(rowId, false);\n }\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 } else if (\n columnId === COLUMNS_IDS.modifiedOn ||\n columnId === COLUMNS_IDS.lastSynchronized\n ) {\n dateType = \"dateString\";\n }\n this.pendingObjectsAfterFilter = [\n ...sortTabularGridColumn(\n e,\n this.pendingObjectsAfterFilter,\n dateType,\n objectProperty\n )\n ];\n this.ignoredObjectsAfterFilter = [\n ...sortTabularGridColumn(\n e,\n this.ignoredObjectsAfterFilter,\n dateType,\n objectProperty\n )\n ];\n };\n\n /**\n * WA: Ignored objects must always remain unchecked.\n * Because `tabular-grid` selects all rows when the checkbox column is toggled,\n * we need to manually unselect the ignored IDs. // TODO: Move this function\n * to common\n */\n #columnSelectorClickedCallback = async (\n e: CustomEvent<TabularGridColumnSelectorClickedEvent>\n ) => {\n const allRowsChecked = e.detail;\n if (allRowsChecked) {\n const markedRowsIds =\n await this.#chGridPendingForUpdateEl.getMarkedRows();\n const ignoredMarkedRowsIds = markedRowsIds.filter(rowId => {\n return this.ignoredIdsSet.has(rowId);\n });\n if (ignoredMarkedRowsIds.length) {\n uncheckIgnoredObjects(\n ignoredMarkedRowsIds,\n this.#chGridPendingForUpdateEl\n );\n }\n }\n };\n\n render() {\n const disableControls = this.commiting || this.loading;\n const gridIsEmpty =\n this.pendingObjectsAfterFilter.length === 0 &&\n this.ignoredObjectsAfterFilter.length === 0;\n\n const filterIcon = this.filterSecondaryHasConditions\n ? ICONS.filterWithConditions\n : ICONS.filter;\n\n const commitButtonEnabled =\n this.atLeastOneObjectIsChecked &&\n this.commentsValue.length > 0 &&\n !this.allPendingAreCommited;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class={{ [CLASSES.HEADER]: true }}>\n <div\n // header details\n class={{ [CLASSES.HEADER_DETAILS]: true }}\n >\n {headerTitle(this.#componentLocale.commitDetail.title)}\n\n {\n // genexus server\n headerDetail(\n \"link\",\n this.#componentLocale.commitDetail.genexusServer,\n this.serverDetails ? this.serverDetails.serverUrl : \"\",\n this.openServerCallback,\n \"detail__genexus-server\"\n )\n }\n\n {\n // knowledge base\n headerDetail(\n \"text\",\n this.#componentLocale.commitDetail.knowledgeBase,\n this.serverDetails ? this.serverDetails.kbName : \"\",\n undefined,\n \"detail__knowledge-base\"\n )\n }\n\n {\n // version\n headerDetail(\n \"text\",\n this.#componentLocale.commitDetail.version,\n this.serverDetails ? this.serverDetails.versionName : \"\",\n undefined,\n \"detail__version\"\n )\n }\n </div>\n </header>\n\n <div class=\"filter-container spacing-body-inline\">\n <div class={{ [CLASSES.FILTER]: true, \"filter-primary\": true }}>\n <ch-edit\n // searchch-edit\n class=\"input filter__combo\"\n disabled={disableControls}\n startImgSrc={ICONS.search}\n accessibleName={\n this.#componentLocale.filter.searchAccessibleName\n }\n placeholder={this.#componentLocale.filter.searchPlaceholder}\n type=\"search\"\n onInput={this.#searchInputHandler}\n ></ch-edit>\n\n <ch-combo-box-render\n // types\n class=\"combo-box filter__combo\"\n disabled={disableControls}\n model={this.typesComboBoxModel}\n value={this.selectedType}\n accessibleName={this.#componentLocale.filter.typeAccesibleName}\n placeholder={this.#componentLocale.filter.typePlaceholder}\n onInput={this.#typeChangedHandler}\n ></ch-combo-box-render>\n\n <ch-combo-box-render\n // local states\n class=\"combo-box filter__combo\"\n disabled={disableControls}\n model={this.#localStatesComboBoxModel}\n value={this.selectedState}\n onInput={this.#stateChangedHandler}\n accessibleName={\n this.#componentLocale.filter.localStateAccesibleName\n }\n placeholder={this.#componentLocale.filter.localStatePlaceholder}\n ></ch-combo-box-render>\n </div>\n\n <button\n // toggle secondary filter button\n id={FILTER_SECONDARY_BUTTON_ID}\n class=\"button-secondary button-icon-only\"\n disabled={disableControls}\n aria-label={this.#componentLocale.filter.secondaryFilterAriaLabel}\n aria-expanded={this.filterSecondaryIsHidden ? \"false\" : \"true\"}\n aria-controls={FILTER_SECONDARY_CONTAINER_ID}\n onClick={this.#toggleFiltersHandler}\n title={this.#componentLocale.filter.secondaryFilterAriaLabel}\n >\n <ch-image class=\"icon-md\" src={filterIcon}></ch-image>\n </button>\n\n <div class=\"buttons-spacer\">\n <button\n // reload button\n class=\"button-secondary button-icon-and-text\"\n disabled={disableControls}\n onClick={this.#loadData}\n >\n <ch-image class=\"icon-md\" src={ICONS.refresh}></ch-image>\n {this.#componentLocale.filter.reload}\n </button>\n\n <button\n // commit button\n class=\"button-primary\"\n disabled={!commitButtonEnabled || disableControls}\n onClick={this.#commitCheckedClickedHandler}\n >\n {this.#componentLocale.filter.commit}\n </button>\n </div>\n\n <div\n // secondary filter\n id={FILTER_SECONDARY_CONTAINER_ID}\n aria-labelledby={FILTER_SECONDARY_BUTTON_ID}\n class={{\n [CLASSES.FILTER]: true,\n \"filter-secondary\": true,\n \"filter-secondary--visible\": !this.filterSecondaryIsHidden\n }}\n inert={this.filterSecondaryIsHidden}\n hidden={this.filterSecondaryIsHidden}\n >\n <div>\n {/* \n // changeset is a WIP.\n <ch-combo-box-render\n // changeset\n class=\"combo-box\"\n disabled={disableControls}\n model={this.changesetsComboBoxModel}\n value={this.selectedChangeset}\n onInput={this.#changesetChangedHandler}\n accessibleName={\n this.#componentLocale.filter.changesetAccesibleName\n }\n placeholder={\n this.#componentLocale.filter.changesetPlaceholder\n }\n ></ch-combo-box-render> */}\n\n <ch-combo-box-render\n // folder\n class=\"combo-box\"\n disabled={disableControls}\n model={this.foldersComboBoxModel}\n value={this.selectedFolder}\n onInput={this.#folderChanged}\n accessibleName={\n this.#componentLocale.filter.folderAccesibleName\n }\n placeholder={this.#componentLocale.filter.folderPlaceholder}\n ></ch-combo-box-render>\n\n {/* <ch-combo-box-render\n // category\n class=\"combo-box\"\n disabled={disableControls}\n model={this.categoriesComboBoxModel}\n value={this.selectedCategory}\n onInput={this.#categoryChangedHandler}\n accessibleName={\n this.#componentLocale.filter.categoryPlaceholder\n }\n placeholder={this.#componentLocale.filter.categoryPlaceholder}\n ></ch-combo-box-render> */}\n </div>\n </div>\n\n <ch-edit\n // commit comments\n class=\"input comments\"\n multiline={true}\n autoGrow={true}\n placeholder={this.#componentLocale.commitCommentPlaceholder}\n onInput={this.#commentsInputHandler}\n ></ch-edit>\n </div>\n\n <div class={CLASSES.MAIN}>\n {!this.loading ? (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"objects-tabular-grid\": true,\n \"disabled-custom-selector\": this.commiting,\n \"empty-result\": gridIsEmpty\n }}\n keyboardNavigationMode=\"focus\"\n rowSelectionMode=\"multiple\"\n onSelectionChanged={this.#rowSelectionChangedHandler}\n onRowMarkingChanged={this.#rowMarkingChangedHandler}\n onRowContextMenu={this.#onRowContextMenuHandler()}\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridPendingForUpdateEl = el)\n }\n >\n {renderTabularGridColumns(\n [\"action\"],\n gridIsEmpty,\n this.#sortTabularGridColumnCallback,\n this.#columnSelectorClickedCallback,\n this.#componentLocale,\n !this.allPendingAreCommited\n )}\n\n {!gridIsEmpty\n ? [\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-legend class=\"tabular-grid-rowset-legend\">\n {this.#componentLocale.objects.pendingCommits}\n </ch-tabular-grid-rowset-legend>\n {renderTabularGridRows(\n \"pending\",\n this.pendingObjectsAfterFilter,\n this.ignoredObjectsAfterFilter,\n this.alreadyCommitedObjectsIdsSet,\n this.markedObjectsSet,\n this.objectsMessagesDataMap,\n this.updatePillAsButton,\n this.#commitSingleObject,\n this.objectsStatusMap,\n this.searchValue,\n this.#componentLocale\n )}\n </ch-tabular-grid-rowset>,\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-legend class=\"tabular-grid-rowset-legend\">\n {this.#componentLocale.objects.ignoredObjects}\n </ch-tabular-grid-rowset-legend>\n {renderTabularGridRows(\n \"ignored\",\n this.pendingObjectsAfterFilter,\n this.ignoredObjectsAfterFilter,\n this.alreadyCommitedObjectsIdsSet,\n this.markedObjectsSet,\n this.objectsMessagesDataMap,\n this.updatePillAsButton,\n this.#commitSingleObject,\n this.objectsStatusMap,\n this.searchValue,\n this.#componentLocale\n )}\n </ch-tabular-grid-rowset>\n ]\n : null}\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {gridIsEmpty && (\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n class=\"empty-state\"\n isAnimated\n stateIconSrc={ICONS.filter}\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"],"version":3}
|
|
1
|
+
{"file":"gx-ide-team-dev-commit.js","mappings":"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","names":["GxIdeTeamDevCommit","CLASSES"],"sources":["src/components/team-dev/version-control/common/clear-grid-selection.ts","src/components/team-dev/version-control/common/header-renders.tsx","src/components/team-dev/version-control/commit/utilities/changeset-to-combo-box.ts","src/components/team-dev/version-control/commit/utilities/folders-to-combo-box.ts","src/components/team-dev/version-control/commit/utilities/types-to-combo-box.ts","src/components/team-dev/version-control/commit/commit.scss?tag=gx-ide-team-dev-commit&encapsulation=shadow","src/components/team-dev/version-control/commit/commit.tsx"],"sourcesContent":["import { SourceType } from \"./types\";\n\n/**\n * Filters a grid selection to only include rows from the given source (\"pending\" or \"ignored\").\n * Rows from the other category are unselected.\n *\n * @param {SourceType} gridSource - The source category of the selection.\n * @param {string[]} selectedRowsIds - The currently selected row IDs.\n * @returns {string[]} Filtered row IDs belonging to the specified source.\n */\nconst clearGridSelection = (\n gridSource: SourceType,\n selectedRowsIds: string[],\n pendingIdsSet: Set<string>,\n ignoredIdsSet: Set<string>,\n gridReference: HTMLChTabularGridElement\n): string[] => {\n let filteredSelectedRowsIds: string[] = [];\n if (selectedRowsIds.length > 1 && gridSource === \"pending\") {\n selectedRowsIds.forEach(async selectedRowId => {\n if (ignoredIdsSet.has(selectedRowId)) {\n await gridReference.selectRow(selectedRowId, false);\n } else {\n filteredSelectedRowsIds.push(selectedRowId);\n }\n });\n } else if (selectedRowsIds.length > 1 && gridSource === \"ignored\") {\n selectedRowsIds.forEach(async selectedRowId => {\n if (pendingIdsSet.has(selectedRowId)) {\n await gridReference.selectRow(selectedRowId, false);\n } else {\n filteredSelectedRowsIds.push(selectedRowId);\n }\n });\n } else {\n filteredSelectedRowsIds = selectedRowsIds;\n }\n return filteredSelectedRowsIds;\n};\n\nexport default clearGridSelection;\n","import { h, JSX } from \"@stencil/core\";\n\nconst headerDetail = (\n type: \"text\" | \"link\" = \"text\",\n caption: string,\n description: string,\n callback?: () => void,\n cssClass?: string\n): JSX.Element => {\n return (\n <div class={{ [cssClass]: true, \"field field-block\": true }}>\n <span class=\"detail__label body-semi-bold-s\">{caption}</span>\n {type === \"text\" ? (\n <p class=\"body-regular-s\">{description}</p>\n ) : (\n <button class=\"detail__link body-regular-s\" onClick={callback}>\n {description}\n </button>\n )}\n </div>\n );\n};\nexport default headerDetail;\n\nexport const headerTitle = (caption: string, cssClass?: string) => {\n return (\n <h2\n class={{ [cssClass]: true, \"header__title subtitle-semi-bold-s\": true }}\n >\n {caption}\n </h2>\n );\n};\n\nexport const headerSubtitle = (caption: string, cssClass?: string) => {\n return (\n <p\n class={{ [cssClass]: true, \"detail__title subtitle-semi-bold-xs\": true }}\n >\n {caption}\n </p>\n );\n};\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../../../../components\";\n\nexport const changesetToComboBoxModel = (\n changesetModel: GxOption[]\n): ComboBoxModel => {\n if (!changesetModel) return [];\n\n return changesetModel.map(changeset => ({\n value: changeset.id,\n caption:\n changeset.name === \"All\"\n ? \"All Changesets\"\n : changeset.label || changeset.name || \"\"\n }));\n};\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { GxOption } from \"../../../../../components\";\n\nexport const foldersToComboBoxModel = (\n foldersModel: GxOption[]\n): ComboBoxModel =>\n foldersModel.map(folder => ({\n value: folder.name,\n caption:\n folder.name === \"All\" ? \"All Modules\" : folder.label || folder.name || \"\"\n }));\n","import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType } from \"../../../../../components\";\n\nexport const typesToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxModel =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name === \"All\" ? \"All Types\" : objectType.name || \"\",\n startImgSrc: objectType.icon\n }));\n","@use \"../common/common.scss\" as *;\n@import \"../../common/styles.scss\";\n@import \"../../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../../../../global/gx-ide-mixins.scss\";\n\n// header detail\n.header__details {\n grid-template-areas:\n \"detail-heading-gx . . .\"\n \"detail-genexus-server detail-knowledge-base detail-version detail-last-full-update\";\n}\n\n.detail__heading-genexus-server {\n grid-area: detail-heading-gx;\n}\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n @extend %header-detail-start;\n}\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n @extend %header-detail-common;\n}\n.detail__version {\n grid-area: detail-version;\n @extend %header-detail-end;\n}\n\n// filter\n.filter-container {\n container-type: inline-size;\n box-sizing: border-box;\n display: grid;\n column-gap: 12px;\n grid-template-areas:\n \"filter-primary filter-toggle-button filter-action-buttons\"\n \"filter-secondary . .\"\n \"comments comments comments\";\n grid-template-columns: minmax(0, max-content) max-content 1fr;\n}\n.filter {\n @extend %filter;\n}\n.filter-primary {\n grid-area: filter-primary;\n grid-template-columns: $filterControlInlineSize $filterControlInlineSize $filterControlInlineSize;\n}\n.filter-container > :nth-child(2) {\n grid-area: filter-toggle-button;\n}\n.filter-container > :nth-child(3) {\n grid-area: filter-action-buttons;\n justify-content: end;\n}\n.filter__toggle-secondary-filter-btn {\n grid-area: filter-toggle-button;\n}\n\n.filter__buttons {\n grid-area: filter-buttons;\n margin-inline-start: auto;\n}\n\n// secondary filter (hidden by default)\n.filter-secondary {\n display: grid;\n grid-template-rows: 0fr;\n grid-area: filter-secondary;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n.filter-secondary--visible {\n grid-template-rows: 1fr;\n}\n.filter-secondary > div {\n @extend %filter;\n display: grid;\n overflow: hidden;\n font-size: 0; // WA Remove unwanted additional space\n grid-template-columns: repeat(3, $filterControlInlineSize);\n}\n\n.filter-secondary > div > .combo-box,\n.comments {\n margin-block-start: $filterRowGap;\n}\n.comments {\n grid-area: comments;\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: $filterControlInlineSize;\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","// stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n Watch\n} from \"@stencil/core\";\n\n// external libraries\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport {\n ChEditCustomEvent,\n ComboBoxModel,\n TabularGridColumnSelectorClickedEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridMarkingChangedEvent,\n TabularGridRowContextMenuEvent,\n TabularGridSelectionChangedEvent\n} from \"@genexus/chameleon-controls-library\";\n\n// local\nimport { Locale } from \"../../../../common/locale\";\nimport {\n GxOption,\n ItemsCheckedResult,\n ObjectType\n} from \"../../../../common/types\";\nimport clearGridSelection from \"../common/clear-grid-selection\";\nimport areSetsEqual from \"../common/are-sets-equal\";\nimport uncheckIgnoredObjects from \"../common/uncheck-ignored\";\n\nimport type {\n StateForFilter,\n StatusInternal,\n MessageData,\n ModifiedObjectData,\n CommitData,\n CommitCallback,\n ContextMenuCallback,\n LoadLocalChangesCallback,\n PendingItemsCheckedCallback,\n SelectCallback,\n ServerDetails,\n SourceType\n} from \"../common/types\";\n\nimport headerDetail, { headerTitle } from \"../common/header-renders\";\nimport { changesetToComboBoxModel } from \"./utilities/changeset-to-combo-box\";\nimport { foldersToComboBoxModel } from \"./utilities/folders-to-combo-box\";\nimport { typesToComboBoxItemModel } from \"./utilities/types-to-combo-box\";\nimport renderTabularGridRows, {\n renderTabularGridColumns,\n COLUMNS_IDS\n} from \"../common/tabular-grid-render\";\nimport sortTabularGridColumn, {\n type SortTabularGridColumnDataType\n} from \"../../../../common/chameleon/tabular-grid-column-sort\";\n\nimport { CSS_SELECTORS as CLASSES, ALL_VALUE } from \"../common/constants\";\nimport ICONS from \"../common/constants\";\n\nconst FILTER_SECONDARY_CONTAINER_ID = \"filters-secondary-container\";\nconst FILTER_SECONDARY_BUTTON_ID = \"filter-toggle-button\";\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\n@Component({\n tag: \"gx-ide-team-dev-commit\",\n styleUrl: \"commit.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-commit\"]\n})\nexport class GxIdeTeamDevCommit {\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\n /**\n * The ComboBoxModel for \"Local State\" filter.\n */\n #localStatesComboBoxModel: { caption: string; value: StateForFilter }[];\n\n /**\n * Used to determine if pendingItemsCheckedCallback callback has to be\n * called or not. It should be ignored if the grid checkboxes state is\n * changed programmatically, by setting markRow to false once the object\n * has been successfully updated, for example.\n */\n #rowCheckedChangedByTheUser: boolean = true;\n\n @Element() el: HTMLGxIdeTeamDevCommitElement;\n\n /**\n * A reference to the tablar grid. Used to call methods.\n */\n #chGridPendingForUpdateEl!: HTMLChTabularGridElement;\n\n // sets\n\n /**\n * A boolean that indicates if all the pending objects, have been committed\n * already.\n */\n @State() allPendingAreCommitted: boolean = false;\n\n /**\n * A set that holds the id's of the objects that have been committed already.\n */\n @State() alreadyCommittedObjectsIdsSet: Set<string> = new Set<string>([]);\n @Watch(\"alreadyCommittedObjectsIdsSet\")\n alreadyCommittedObjectsIdsSetChanged(newCommittedObjectsIdsSet: Set<string>) {\n const pendingIdsSetAndCommittedIdsSetAreEqual = areSetsEqual(\n newCommittedObjectsIdsSet,\n this.pendingIdsSet\n );\n\n this.allPendingAreCommitted =\n pendingIdsSetAndCommittedIdsSetAreEqual && this.pendingIdsSet.size > 0;\n }\n\n /**\n * A set that holds the ids of all the ignored objects. Used to quickly\n * determine if the selected rows belong to \"ignored\" or not. This\n * information is required for the ContextMenuCallback. This set\n * has to be updated on every loadCallback.\n */\n @State() ignoredIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that holds the id's of all the pending objects. Used to quickly\n * determine if the selected rows belong to \"pending\" or \"ignored\". This\n * information is required for the ContextMenuCallback. This set\n * has to be updated after every loadCallback.\n */\n @State() pendingIdsSet: Set<string> = new Set<string>([]);\n\n /**\n * A set that stores the marked state of each row. This is\n * required because filtering the grid causes marked cells to lose\n * their marked state.\n */\n @State() markedObjectsSet: Set<string> = new Set<string>([]);\n @Watch(\"markedObjectsSet\")\n markedObjectsSetChanged(newMarkedObjectsSet: Set<string>) {\n this.atLeastOneObjectIsChecked = newMarkedObjectsSet.size > 0;\n }\n\n // maps\n\n /**\n * A map that holds the current state of every row (\"inserted\" |\n * \"modified\" | \"modified-with-conflicts\" | \"deleted\" | \"updating\" |\n * \"update\")\n */\n @State() objectsStatusMap: Map<string, StatusInternal> = new Map();\n @Watch(\"objectsStatusMap\")\n objectsStatusMapChanged(newObjectsStatusMap: Map<string, StatusInternal>) {\n const someObjectIsUpdating = [...newObjectsStatusMap.entries()].find(\n ([, state]) => state === \"committing\"\n );\n\n if (!someObjectIsUpdating) {\n this.committing = false;\n }\n }\n\n /**\n * A map that holds object messages, after trying to commit ('info' |\n * 'success' | 'warning' | 'error')\n */\n @State() objectsMessagesDataMap: Map<string, MessageData[]> = new Map();\n\n // boolean\n\n /**\n * It holds a boolean indicating if at least one object from the\n * tabular-grid is checked, for merging.\n */\n @State() atLeastOneObjectIsChecked: boolean = false;\n\n /**\n * A boolean to indicate if the comments input has error or not.\n */\n @State() commentInputHasError: boolean = false;\n\n /**\n * Set to true when objects are being committed. This helps disabling\n * controls until all objects are done.\n */\n @State() committing: boolean = false;\n\n /**\n * Hides or shows the filter secondary controls\n */\n @State() filterSecondaryIsHidden = true;\n\n /**\n * Indicates if any of the filter secondary controls have a condition\n * (have a value other than default \"All\"). This changes the filter\n * toggle button icon, from \"filter\" to \"filterWithConditions\".\n */\n @State() filterSecondaryHasConditions = false;\n\n /**\n * Used to display a loader. Set to true when loadCallback is called.\n */\n @State() loading: boolean = true;\n\n // models\n\n /**\n * changeset options as ComboBoxModel\n */\n @State() changesetsComboBoxModel: ComboBoxModel;\n\n /**\n * categories options as ComboBoxModel\n */\n // @State() categoriesComboBoxModel: ComboBoxModel;\n\n /**\n * Pending objects after \"action\" filter\n */\n @State() pendingObjectsAfterFilter: ModifiedObjectData[] = [];\n\n /**\n * Ignored objects after \"action\" filter\n */\n @State() ignoredObjectsAfterFilter: ModifiedObjectData[] = [];\n\n /**\n * The ComboBoxModel for \"Types\" filter.\n */\n @State() typesComboBoxModel: ComboBoxModel = [];\n\n /**\n * All objects (\"pending for update\" and \"ignored objects\") before\n * \"state\" filter\n */\n @State() pendingAndIgnored: CommitData = {\n pendingForCommit: [],\n ignoredObjects: []\n };\n @Watch(\"pendingAndIgnored\")\n pendingAndIgnoredChanged(newPendingAndIgnored: CommitData) {\n // clear previous state\n this.pendingIdsSet.clear(); // before pendingIdsSet.add\n this.ignoredIdsSet.clear(); // before ignoredIdsSet.add\n this.objectsMessagesDataMap = new Map();\n this.alreadyCommittedObjectsIdsSet = new Set();\n this.commentInputHasError = false;\n this.markedObjectsSet = new Set(); // before #markPendingObjects\n\n newPendingAndIgnored.pendingForCommit?.forEach(pending => {\n this.pendingIdsSet.add(pending.id);\n });\n newPendingAndIgnored.ignoredObjects?.forEach(ignored => {\n this.ignoredIdsSet.add(ignored.id);\n });\n\n this.#markPendingObjects(); // after pendingIdsSet.add and ignoredIdsSet.add\n this.#setInitialObjectsStatus(); // after pendingIdsSet.add and ignoredIdsSet.add\n\n this.#applyClientFilter();\n }\n\n // current values\n\n /**\n * Holds the current value for the commit \"comments\"\n */\n @State() commentsValue: string = \"\";\n\n /**\n * The current search filter value.\n */\n @State() searchValue: string = \"\";\n\n /**\n * Holds the current value for the \"type\" filter\n */\n @State() selectedType: string;\n\n /**\n * Holds the current value for the \"local state\" filter\n */\n @State() selectedState: StateForFilter = ALL_VALUE;\n\n /**\n * Holds the current value for the \"changeset\" filter\n */\n @State() selectedChangeset: string;\n\n /**\n * Holds the current value for the \"folder\" filter\n */\n @State() selectedFolder: string;\n\n /**\n * Holds the current value for the \"category\" filter\n */\n @State() selectedCategory: string;\n\n /**\n * folder options as ComboBoxModel\n */\n @State() foldersComboBoxModel: ComboBoxModel;\n\n // callbacks\n\n /**\n * Invoked when user starts the commit process\n */\n @Prop() readonly commitCallback: CommitCallback;\n\n /**\n * Invoked when user activates the context menu on any of the grids.\n */\n @Prop() readonly objectsContextMenuCallback!: ContextMenuCallback;\n\n /**\n * Invoked to return the list of local changes\n */\n @Prop() readonly loadCallback!: LoadLocalChangesCallback;\n\n /**\n * Invoked when user clicks in server url of Update From group.\n */\n @Prop() readonly openServerCallback!: () => Promise<void>;\n\n /**\n * Invoked to return information of a Font type of data.\n */\n @Prop() readonly pendingItemsCheckedCallback!: PendingItemsCheckedCallback;\n\n /**\n * Invoked when the user selects rows from the grid\n */\n @Prop() readonly selectCallback: SelectCallback;\n\n // models\n\n /**\n * \"types\" options for the filter.\n */\n @Prop() readonly types: ObjectType[];\n @Watch(\"types\")\n typesChanged(newTypes: ObjectType[]) {\n this.typesComboBoxModel = typesToComboBoxItemModel(newTypes);\n }\n\n /**\n * \"changeset\" options for the filter.\n */\n @Prop() readonly changeset: GxOption[];\n @Watch(\"changeset\")\n changesetChanged(newChangesetOptions: GxOption[]) {\n this.changesetsComboBoxModel =\n changesetToComboBoxModel(newChangesetOptions);\n }\n\n /**\n * \"folder\" options for the filter.\n */\n @Prop() readonly folders: GxOption[];\n @Watch(\"folders\")\n folderChanged(newFolderOptions: GxOption[]) {\n this.foldersComboBoxModel = foldersToComboBoxModel(newFolderOptions);\n }\n\n /**\n * \"category\" options for the filter.\n */\n // @Prop() readonly categories: GxOption[];\n // @Watch(\"categories\")\n // categoryChanged(newCategoryOptions: GxOption[]) {\n // this.categoriesComboBoxModel =\n // categoriesToComboBoxModel(newCategoryOptions);\n // }\n\n // boolean\n\n /**\n * If true, the \"Action\" column will display a button instead of a pill,\n * only when the action is\n */\n @Prop() readonly updatePillAsButton: boolean = false;\n\n /**\n * Information to show in Update From group.\n */\n @Prop() readonly serverDetails: ServerDetails;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n\n // Initiate \"actions\" combo box filter\n this.#localStatesComboBoxModel = [\n {\n caption: this.#componentLocale.states.all,\n value: ALL_VALUE\n },\n {\n caption: this.#componentLocale.states.inserted,\n value: \"inserted\"\n },\n {\n caption: this.#componentLocale.states.modified,\n value: \"modified\"\n },\n {\n caption: this.#componentLocale.states.conflicted,\n value: \"conflicted\"\n },\n {\n caption: this.#componentLocale.states.deleted,\n value: \"deleted\"\n }\n ];\n\n // intialize combo-box models\n\n this.typesComboBoxModel = typesToComboBoxItemModel(this.types);\n this.selectedType = this.typesComboBoxModel[0].value;\n\n this.selectedState = this.#localStatesComboBoxModel[0].value;\n\n this.changesetChanged(this.changeset);\n this.selectedChangeset =\n this.changesetsComboBoxModel.length > 0\n ? this.changesetsComboBoxModel[0].value\n : ALL_VALUE;\n\n this.folderChanged(this.folders);\n this.selectedFolder =\n this.foldersComboBoxModel && this.foldersComboBoxModel.length > 0\n ? this.foldersComboBoxModel[0].value\n : ALL_VALUE;\n\n // this.categoryChanged(this.categories);\n // this.selectedCategory =\n // this.categoriesComboBoxModel.length > 0\n // ? this.categoriesComboBoxModel[0].value\n // : ALL_VALUE;\n\n this.#evaluateSecondaryFilterHasConditions();\n }\n\n async componentDidLoad() {\n await this.#loadData();\n\n // initialize \"allPendingAreCommitted\"\n this.alreadyCommittedObjectsIdsSetChanged(\n this.alreadyCommittedObjectsIdsSet\n );\n }\n\n /**\n * Used by the host to instruct the component to force a data reload in the grids.\n */\n @Method()\n async reload() {\n await this.#loadData();\n }\n\n // commit related\n\n #commitCheckedClickedHandler = () => {\n this.#commitObjectsHandler([...this.markedObjectsSet]);\n };\n\n #commitSingleObject: (objectId: string) => () => void =\n objectId => async () => {\n const newobjectsStatusMap = new Map(this.objectsStatusMap);\n newobjectsStatusMap.set(objectId, \"committing\");\n this.objectsStatusMap = newobjectsStatusMap;\n this.#commitObjectsHandler([objectId]);\n };\n\n #commitObjectsHandler = async (selection: string[]) => {\n if (this.commentsValue.length === 0) {\n // A comment is required to commit.\n this.commentInputHasError = true;\n return;\n }\n this.commentInputHasError = false;\n this.committing = true;\n\n selection.forEach(itemToUpdate => {\n this.objectsStatusMap.set(itemToUpdate, \"committing\");\n });\n\n const commitResult = await this.commitCallback(\n selection,\n this.commentsValue\n );\n\n commitResult.forEach(async objectResult => {\n const messages = objectResult.messages;\n if (messages.length) {\n this.objectsMessagesDataMap.set(objectResult.id, objectResult.messages);\n } else {\n // clear messages\n this.objectsMessagesDataMap.delete(objectResult.id);\n }\n if (objectResult.result === \"committed\") {\n // Apply a new Set to \"alreadyCommittedObjectsIdsSet\" in order for the Watch to fire.\n this.alreadyCommittedObjectsIdsSet = new Set([\n ...this.alreadyCommittedObjectsIdsSet,\n objectResult.id\n ]);\n this.objectsStatusMap.set(objectResult.id, \"committed\");\n await this.#chGridPendingForUpdateEl.markRow(objectResult.id, false);\n } else {\n this.objectsStatusMap.set(objectResult.id, \"pending\");\n }\n });\n\n this.committing = false;\n this.commentsValue = \"\";\n };\n\n // handlers\n\n #rowMarkingChangedHandler = async (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n const markedRowsIds = event.detail.rowsId;\n\n this.markedObjectsSet = new Set(\n markedRowsIds.filter(\n markedObjectId =>\n !this.alreadyCommittedObjectsIdsSet.has(markedObjectId)\n )\n );\n\n if (this.#rowCheckedChangedByTheUser) {\n this.#updatePendingCheckedItems(event);\n }\n };\n\n #rowSelectionChangedHandler = async (\n event: CustomEvent<TabularGridSelectionChangedEvent>\n ) => {\n const selectedRowsIds = event.detail.rowsId;\n const firstSelectedRowId = selectedRowsIds[0];\n const gridSource: SourceType = this.pendingIdsSet.has(firstSelectedRowId)\n ? \"pending\"\n : \"ignored\";\n\n const filteredSelectedRowsIds = clearGridSelection(\n gridSource,\n selectedRowsIds,\n this.pendingIdsSet,\n this.ignoredIdsSet,\n this.#chGridPendingForUpdateEl\n );\n\n await this.selectCallback(gridSource, filteredSelectedRowsIds);\n };\n\n #commentsInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.commentsValue = event.detail as string;\n if (this.commentsValue.length && this.commentInputHasError) {\n // remove error style and tooltip\n this.commentInputHasError = false;\n }\n };\n\n // filter related\n\n #applyClientFilter = () => {\n this.pendingObjectsAfterFilter = this.#filteredObjects(\n this.pendingAndIgnored.pendingForCommit\n );\n this.ignoredObjectsAfterFilter = this.#filteredObjects(\n this.pendingAndIgnored.ignoredObjects\n );\n };\n\n #filteredObjects = (objects: ModifiedObjectData[]): ModifiedObjectData[] => {\n let filtered = objects;\n\n // name or description\n if (this.searchValue.length) {\n filtered = filtered.filter(object => {\n const nameFiltered = object.name\n .toLowerCase()\n .includes(this.searchValue.toLowerCase());\n\n const descriptionFiltered = object.description\n .toLowerCase()\n .includes(this.searchValue.toLowerCase());\n\n return nameFiltered || descriptionFiltered;\n });\n }\n\n // status\n if (this.selectedState && this.selectedState !== ALL_VALUE) {\n filtered = filtered.filter(object => object.state === this.selectedState);\n }\n\n return filtered;\n };\n\n #evaluateSecondaryFilterHasConditions = () => {\n if (\n // this.selectedChangeset !== ALL_VALUE ||\n this.selectedFolder !== ALL_VALUE\n // this.selectedCategory !== ALL_VALUE\n ) {\n this.filterSecondaryHasConditions = true;\n } else {\n this.filterSecondaryHasConditions = false;\n }\n };\n\n #toggleFiltersHandler = () => {\n this.filterSecondaryIsHidden = !this.filterSecondaryIsHidden;\n };\n\n #searchInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.searchValue = (event.detail as string).trim();\n this.#applyClientFilter();\n };\n\n #typeChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.selectedType = event.detail as string;\n this.#loadData();\n };\n\n #stateChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.selectedState = event.detail as StateForFilter;\n this.#applyClientFilter();\n };\n\n // changeset is a WIP.\n // #changesetChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n // this.selectedChangeset = event.detail as string;\n // this.#loadData();\n // this.#evaluateSecondaryFilterHasConditions();\n // };\n\n #folderChanged = (event: CustomEvent<string> | InputEvent) => {\n this.selectedFolder = event.detail as string;\n this.#loadData();\n this.#evaluateSecondaryFilterHasConditions();\n };\n\n // #categoryChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n // this.selectedCategory = event.detail as string;\n // this.#loadData();\n // this.#evaluateSecondaryFilterHasConditions();\n // };\n\n #onRowContextMenuHandler =\n () => async (ev: CustomEvent<TabularGridRowContextMenuEvent>) => {\n ev.preventDefault();\n ev.stopPropagation();\n\n const selectedRowsIds =\n await this.#chGridPendingForUpdateEl.getSelectedRows();\n\n const firstSelectedRowId = selectedRowsIds[0];\n const gridSource = this.pendingIdsSet.has(firstSelectedRowId)\n ? \"pending\"\n : \"ignored\";\n\n await this.objectsContextMenuCallback(gridSource, {\n selection: selectedRowsIds,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n // other methods\n\n #updatePendingCheckedItems = async (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n this.#rowCheckedChangedByTheUser = false;\n const addedRowsIds = event.detail.addedRowsId;\n const removedRowsId = event.detail.removedRowsId;\n\n const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({\n itemsChecked: addedRowsIds,\n itemsUnchecked: removedRowsId\n });\n\n if (pendingItemCheckedResult === undefined) {\n // undo check/uncheck\n await this.#revertPendingCommitsCheckboxes(addedRowsIds, removedRowsId);\n } else {\n await this.#togglePendingCommitsCheckboxes(pendingItemCheckedResult);\n }\n this.#rowCheckedChangedByTheUser = true;\n };\n\n #setInitialObjectsStatus = (): void => {\n this.pendingAndIgnored.pendingForCommit.forEach(pendingObject => {\n const status: StatusInternal = \"pending\";\n this.objectsStatusMap.set(pendingObject.id, status);\n });\n this.pendingAndIgnored.ignoredObjects.forEach(ignoredObject => {\n const status: StatusInternal = \"ignored\";\n this.objectsStatusMap.set(ignoredObject.id, status);\n });\n };\n\n #loadData = async (): Promise<void> => {\n this.loading = true;\n\n this.pendingAndIgnored = await this.loadCallback({\n search: this.searchValue,\n type: this.selectedType,\n changeset: this.selectedChangeset,\n folder: this.selectedFolder,\n category: this.selectedCategory\n });\n\n this.loading = false;\n // Is is required to mark/check all objects after loadCallback.\n // this.#markPendingObjects();\n };\n\n /**\n * Marks all pending objects that have not been committed yet.\n *\n * Iterates through all pending object IDs and adds them to the marked objects set\n * if they are not already in the committed objects set. This effectively identifies\n * and marks all the pending objects that still need to be processed.\n **/\n #markPendingObjects = () => {\n for (const pendingId of this.pendingIdsSet) {\n if (!this.alreadyCommittedObjectsIdsSet.has(pendingId)) {\n this.markedObjectsSet = new Set([...this.markedObjectsSet, pendingId]);\n }\n }\n };\n\n // render methods\n\n #revertPendingCommitsCheckboxes = async (\n addedRowsIds: string[],\n removedRowsId: string[]\n ) => {\n if (this.#chGridPendingForUpdateEl) {\n for (const rowId of addedRowsIds) {\n await this.#chGridPendingForUpdateEl.markRow(rowId, false);\n }\n for (const rowId of removedRowsId) {\n await this.#chGridPendingForUpdateEl.markRow(rowId, true);\n }\n }\n };\n\n #togglePendingCommitsCheckboxes = async (\n itemsToToggle: ItemsCheckedResult\n ) => {\n if (this.#chGridPendingForUpdateEl) {\n const itemsToCheck: string[] = itemsToToggle.itemsToCheck;\n const itemsToUncheck: string[] = itemsToToggle.itemsToUncheck;\n // check\n for (const rowId of itemsToCheck) {\n await this.#chGridPendingForUpdateEl.markRow(rowId, true);\n }\n // uncheck\n for (const rowId of itemsToUncheck) {\n await this.#chGridPendingForUpdateEl.markRow(rowId, false);\n }\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 } else if (\n columnId === COLUMNS_IDS.modifiedOn ||\n columnId === COLUMNS_IDS.lastSynchronized\n ) {\n dateType = \"dateString\";\n }\n this.pendingObjectsAfterFilter = [\n ...sortTabularGridColumn(\n e,\n this.pendingObjectsAfterFilter,\n dateType,\n objectProperty\n )\n ];\n this.ignoredObjectsAfterFilter = [\n ...sortTabularGridColumn(\n e,\n this.ignoredObjectsAfterFilter,\n dateType,\n objectProperty\n )\n ];\n };\n\n /**\n * WA: Ignored objects must always remain unchecked.\n * Because `tabular-grid` selects all rows when the checkbox column is toggled,\n * we need to manually unselect the ignored IDs. // TODO: Move this function\n * to common\n */\n #columnSelectorClickedCallback = async (\n e: CustomEvent<TabularGridColumnSelectorClickedEvent>\n ) => {\n const allRowsChecked = e.detail;\n if (allRowsChecked) {\n const markedRowsIds =\n await this.#chGridPendingForUpdateEl.getMarkedRows();\n const ignoredMarkedRowsIds = markedRowsIds.filter(rowId => {\n return this.ignoredIdsSet.has(rowId);\n });\n if (ignoredMarkedRowsIds.length) {\n uncheckIgnoredObjects(\n ignoredMarkedRowsIds,\n this.#chGridPendingForUpdateEl\n );\n }\n }\n };\n\n render() {\n const disableControls = this.committing || this.loading;\n const gridIsEmpty =\n this.pendingObjectsAfterFilter.length === 0 &&\n this.ignoredObjectsAfterFilter.length === 0;\n\n const filterIcon = this.filterSecondaryHasConditions\n ? ICONS.filterWithConditions\n : ICONS.filter;\n\n const commitButtonEnabled =\n this.atLeastOneObjectIsChecked &&\n this.commentsValue.length > 0 &&\n !this.allPendingAreCommitted;\n\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class={{ [CLASSES.HEADER]: true }}>\n <div\n // header details\n class={{ [CLASSES.HEADER_DETAILS]: true }}\n >\n {headerTitle(this.#componentLocale.commitDetail.title)}\n\n {\n // genexus server\n headerDetail(\n \"link\",\n this.#componentLocale.commitDetail.genexusServer,\n this.serverDetails ? this.serverDetails.serverUrl : \"\",\n this.openServerCallback,\n \"detail__genexus-server\"\n )\n }\n\n {\n // knowledge base\n headerDetail(\n \"text\",\n this.#componentLocale.commitDetail.knowledgeBase,\n this.serverDetails ? this.serverDetails.kbName : \"\",\n undefined,\n \"detail__knowledge-base\"\n )\n }\n\n {\n // version\n headerDetail(\n \"text\",\n this.#componentLocale.commitDetail.version,\n this.serverDetails ? this.serverDetails.versionName : \"\",\n undefined,\n \"detail__version\"\n )\n }\n </div>\n </header>\n\n <div class=\"filter-container spacing-body-inline\">\n <div class={{ [CLASSES.FILTER]: true, \"filter-primary\": true }}>\n <ch-edit\n // searchch-edit\n class=\"input filter__combo\"\n disabled={disableControls}\n startImgSrc={ICONS.search}\n accessibleName={\n this.#componentLocale.filter.searchAccessibleName\n }\n placeholder={this.#componentLocale.filter.searchPlaceholder}\n type=\"search\"\n onInput={this.#searchInputHandler}\n ></ch-edit>\n\n <ch-combo-box-render\n // types\n class=\"combo-box filter__combo\"\n disabled={disableControls}\n model={this.typesComboBoxModel}\n value={this.selectedType}\n accessibleName={this.#componentLocale.filter.typeAccesibleName}\n placeholder={this.#componentLocale.filter.typePlaceholder}\n onInput={this.#typeChangedHandler}\n ></ch-combo-box-render>\n\n <ch-combo-box-render\n // local states\n class=\"combo-box filter__combo\"\n disabled={disableControls}\n model={this.#localStatesComboBoxModel}\n value={this.selectedState}\n onInput={this.#stateChangedHandler}\n accessibleName={\n this.#componentLocale.filter.localStateAccesibleName\n }\n placeholder={this.#componentLocale.filter.localStatePlaceholder}\n ></ch-combo-box-render>\n </div>\n\n <button\n // toggle secondary filter button\n id={FILTER_SECONDARY_BUTTON_ID}\n class=\"button-secondary button-icon-only\"\n disabled={disableControls}\n aria-label={this.#componentLocale.filter.secondaryFilterAriaLabel}\n aria-expanded={this.filterSecondaryIsHidden ? \"false\" : \"true\"}\n aria-controls={FILTER_SECONDARY_CONTAINER_ID}\n onClick={this.#toggleFiltersHandler}\n title={this.#componentLocale.filter.secondaryFilterAriaLabel}\n >\n <ch-image class=\"icon-md\" src={filterIcon}></ch-image>\n </button>\n\n <div class=\"buttons-spacer\">\n <button\n // reload button\n class=\"button-secondary button-icon-and-text\"\n disabled={disableControls}\n onClick={this.#loadData}\n >\n <ch-image class=\"icon-md\" src={ICONS.refresh}></ch-image>\n {this.#componentLocale.filter.reload}\n </button>\n\n <button\n // commit button\n class=\"button-primary\"\n disabled={!commitButtonEnabled || disableControls}\n onClick={this.#commitCheckedClickedHandler}\n >\n {this.#componentLocale.filter.commit}\n </button>\n </div>\n\n <div\n // secondary filter\n id={FILTER_SECONDARY_CONTAINER_ID}\n aria-labelledby={FILTER_SECONDARY_BUTTON_ID}\n class={{\n [CLASSES.FILTER]: true,\n \"filter-secondary\": true,\n \"filter-secondary--visible\": !this.filterSecondaryIsHidden\n }}\n inert={this.filterSecondaryIsHidden}\n hidden={this.filterSecondaryIsHidden}\n >\n <div>\n {/* \n // changeset is a WIP.\n <ch-combo-box-render\n // changeset\n class=\"combo-box\"\n disabled={disableControls}\n model={this.changesetsComboBoxModel}\n value={this.selectedChangeset}\n onInput={this.#changesetChangedHandler}\n accessibleName={\n this.#componentLocale.filter.changesetAccesibleName\n }\n placeholder={\n this.#componentLocale.filter.changesetPlaceholder\n }\n ></ch-combo-box-render> */}\n\n <ch-combo-box-render\n // folder\n class=\"combo-box\"\n disabled={disableControls}\n model={this.foldersComboBoxModel}\n value={this.selectedFolder}\n onInput={this.#folderChanged}\n accessibleName={\n this.#componentLocale.filter.folderAccesibleName\n }\n placeholder={this.#componentLocale.filter.folderPlaceholder}\n ></ch-combo-box-render>\n\n {/* <ch-combo-box-render\n // category\n class=\"combo-box\"\n disabled={disableControls}\n model={this.categoriesComboBoxModel}\n value={this.selectedCategory}\n onInput={this.#categoryChangedHandler}\n accessibleName={\n this.#componentLocale.filter.categoryPlaceholder\n }\n placeholder={this.#componentLocale.filter.categoryPlaceholder}\n ></ch-combo-box-render> */}\n </div>\n </div>\n\n <ch-edit\n // commit comments\n class=\"input comments\"\n multiline={true}\n autoGrow={true}\n placeholder={this.#componentLocale.commitCommentPlaceholder}\n onInput={this.#commentsInputHandler}\n value={this.commentsValue}\n ></ch-edit>\n </div>\n\n <div class={CLASSES.MAIN}>\n {!this.loading ? (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"objects-tabular-grid\": true,\n \"disabled-custom-selector\": this.committing,\n \"empty-result\": gridIsEmpty\n }}\n keyboardNavigationMode=\"focus\"\n rowSelectionMode=\"multiple\"\n onSelectionChanged={this.#rowSelectionChangedHandler}\n onRowMarkingChanged={this.#rowMarkingChangedHandler}\n onRowContextMenu={this.#onRowContextMenuHandler()}\n ref={(el: HTMLChTabularGridElement) =>\n (this.#chGridPendingForUpdateEl = el)\n }\n >\n {renderTabularGridColumns(\n [\"action\"],\n gridIsEmpty,\n this.#sortTabularGridColumnCallback,\n this.#columnSelectorClickedCallback,\n this.#componentLocale,\n !this.allPendingAreCommitted\n )}\n\n {!gridIsEmpty\n ? [\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-legend class=\"tabular-grid-rowset-legend\">\n {this.#componentLocale.objects.pendingCommits}\n </ch-tabular-grid-rowset-legend>\n {renderTabularGridRows(\n \"pending\",\n this.pendingObjectsAfterFilter,\n this.ignoredObjectsAfterFilter,\n this.alreadyCommittedObjectsIdsSet,\n this.markedObjectsSet,\n this.objectsMessagesDataMap,\n this.updatePillAsButton,\n this.#commitSingleObject,\n this.objectsStatusMap,\n this.searchValue,\n this.#componentLocale\n )}\n </ch-tabular-grid-rowset>,\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-legend class=\"tabular-grid-rowset-legend\">\n {this.#componentLocale.objects.ignoredObjects}\n </ch-tabular-grid-rowset-legend>\n {renderTabularGridRows(\n \"ignored\",\n this.pendingObjectsAfterFilter,\n this.ignoredObjectsAfterFilter,\n this.alreadyCommittedObjectsIdsSet,\n this.markedObjectsSet,\n this.objectsMessagesDataMap,\n this.updatePillAsButton,\n this.#commitSingleObject,\n this.objectsStatusMap,\n this.searchValue,\n this.#componentLocale\n )}\n </ch-tabular-grid-rowset>\n ]\n : null}\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {gridIsEmpty && (\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n class=\"empty-state\"\n isAnimated\n stateIconSrc={ICONS.filter}\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"],"version":3}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface GxIdeTeamDevPreview extends Components.GxIdeTeamDevPreview, HTMLElement {}
|
|
4
|
+
export const GxIdeTeamDevPreview: {
|
|
5
|
+
prototype: GxIdeTeamDevPreview;
|
|
6
|
+
new (): GxIdeTeamDevPreview;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|