@genexus/genexus-ide-ui 1.1.65 → 1.1.67

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.
Files changed (107) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-comments-viewer.cjs.entry.js +66 -0
  3. package/dist/cjs/gx-ide-comments-viewer.cjs.entry.js.map +1 -0
  4. package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js +210 -0
  5. package/dist/cjs/gx-ide-team-dev-bring-all-changes-selector.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +29 -28
  7. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +10 -2
  9. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js +34 -20
  11. package/dist/cjs/gx-ide-team-dev-preview.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +9 -2
  13. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +2 -0
  16. package/dist/collection/components/_helpers/comments-viewer/comments-viewer.css +41 -0
  17. package/dist/collection/components/_helpers/comments-viewer/comments-viewer.js +112 -0
  18. package/dist/collection/components/_helpers/comments-viewer/comments-viewer.js.map +1 -0
  19. package/dist/collection/components/_helpers/comments-viewer/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.en.json +5 -0
  20. package/dist/collection/components/_helpers/comments-viewer/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.ja.json +5 -0
  21. package/dist/collection/components/_helpers/comments-viewer/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.zh.json +5 -0
  22. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.css +27 -0
  23. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js +273 -0
  24. package/dist/collection/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.js.map +1 -0
  25. package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.en.json +22 -0
  26. package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.ja.json +22 -0
  27. package/dist/collection/components/team-dev/bring-all-changes-selector/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.zh.json +22 -0
  28. package/dist/collection/components/team-dev/bring-changes/bring-changes.css +22 -8
  29. package/dist/collection/components/team-dev/bring-changes/bring-changes.js +69 -28
  30. package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
  31. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +6 -0
  32. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +6 -0
  33. package/dist/collection/components/team-dev/bring-changes/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +6 -0
  34. package/dist/collection/components/team-dev/preview/team-dev-preview.css +15 -0
  35. package/dist/collection/components/team-dev/preview/team-dev-preview.js +56 -20
  36. package/dist/collection/components/team-dev/preview/team-dev-preview.js.map +1 -1
  37. package/dist/collection/components/team-dev/update/update.js +31 -2
  38. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  39. package/dist/collection/components/team-dev/version-control/commit/commit.js +33 -3
  40. package/dist/collection/components/team-dev/version-control/commit/commit.js.map +1 -1
  41. package/dist/collection/components/team-dev/version-control/common/types.js.map +1 -1
  42. package/dist/collection/testing/locale.e2e.js +3 -1
  43. package/dist/collection/testing/locale.e2e.js.map +1 -1
  44. package/dist/components/gx-ide-comments-viewer.d.ts +11 -0
  45. package/dist/components/gx-ide-comments-viewer.js +83 -0
  46. package/dist/components/gx-ide-comments-viewer.js.map +1 -0
  47. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.d.ts +11 -0
  48. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js +232 -0
  49. package/dist/components/gx-ide-team-dev-bring-all-changes-selector.js.map +1 -0
  50. package/dist/components/gx-ide-team-dev-bring-changes.js +31 -28
  51. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  52. package/dist/components/gx-ide-team-dev-commit.js +13 -3
  53. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  54. package/dist/components/gx-ide-team-dev-preview.js +37 -21
  55. package/dist/components/gx-ide-team-dev-preview.js.map +1 -1
  56. package/dist/components/gx-ide-team-dev-update.js +12 -3
  57. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  58. package/dist/esm/genexus-ide-ui.js +1 -1
  59. package/dist/esm/gx-ide-comments-viewer.entry.js +62 -0
  60. package/dist/esm/gx-ide-comments-viewer.entry.js.map +1 -0
  61. package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js +206 -0
  62. package/dist/esm/gx-ide-team-dev-bring-all-changes-selector.entry.js.map +1 -0
  63. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +29 -28
  64. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  65. package/dist/esm/gx-ide-team-dev-commit.entry.js +10 -2
  66. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  67. package/dist/esm/gx-ide-team-dev-preview.entry.js +34 -20
  68. package/dist/esm/gx-ide-team-dev-preview.entry.js.map +1 -1
  69. package/dist/esm/gx-ide-team-dev-update.entry.js +9 -2
  70. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  71. package/dist/esm/loader.js +1 -1
  72. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  73. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  74. package/dist/genexus-ide-ui/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.en.json +5 -0
  75. package/dist/genexus-ide-ui/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.ja.json +5 -0
  76. package/dist/genexus-ide-ui/gx-ide-assets/comments-viewer/langs/comments-viewer.lang.zh.json +5 -0
  77. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.en.json +22 -0
  78. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.ja.json +22 -0
  79. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-all-changes-selector/langs/team-dev-bring-all-changes-selector.lang.zh.json +22 -0
  80. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.en.json +6 -0
  81. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.ja.json +6 -0
  82. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-bring-changes/langs/team-dev-bring-changes.lang.zh.json +6 -0
  83. package/dist/genexus-ide-ui/p-0488759f.entry.js +82 -0
  84. package/dist/genexus-ide-ui/p-0488759f.entry.js.map +1 -0
  85. package/dist/genexus-ide-ui/p-09693b80.entry.js +274 -0
  86. package/dist/genexus-ide-ui/p-09693b80.entry.js.map +1 -0
  87. package/dist/genexus-ide-ui/{p-ab8aee7d.entry.js → p-1890d374.entry.js} +209 -181
  88. package/dist/genexus-ide-ui/p-1890d374.entry.js.map +1 -0
  89. package/dist/genexus-ide-ui/{p-3d71b287.entry.js → p-9285b6db.entry.js} +34 -28
  90. package/dist/genexus-ide-ui/p-9285b6db.entry.js.map +1 -0
  91. package/dist/genexus-ide-ui/{p-73c3f9ec.entry.js → p-c8b0004e.entry.js} +15 -9
  92. package/dist/genexus-ide-ui/p-c8b0004e.entry.js.map +1 -0
  93. package/dist/genexus-ide-ui/{p-eeae4b37.entry.js → p-e2fd2c24.entry.js} +135 -128
  94. package/dist/genexus-ide-ui/p-e2fd2c24.entry.js.map +1 -0
  95. package/dist/types/components/_helpers/comments-viewer/comments-viewer.d.ts +19 -0
  96. package/dist/types/components/team-dev/bring-all-changes-selector/bring-all-changes-selector.d.ts +45 -0
  97. package/dist/types/components/team-dev/bring-changes/bring-changes.d.ts +9 -1
  98. package/dist/types/components/team-dev/preview/team-dev-preview.d.ts +8 -0
  99. package/dist/types/components/team-dev/update/update.d.ts +8 -0
  100. package/dist/types/components/team-dev/version-control/commit/commit.d.ts +8 -0
  101. package/dist/types/components/team-dev/version-control/common/types.d.ts +1 -0
  102. package/dist/types/components.d.ts +94 -0
  103. package/package.json +1 -1
  104. package/dist/genexus-ide-ui/p-3d71b287.entry.js.map +0 -1
  105. package/dist/genexus-ide-ui/p-73c3f9ec.entry.js.map +0 -1
  106. package/dist/genexus-ide-ui/p-ab8aee7d.entry.js.map +0 -1
  107. package/dist/genexus-ide-ui/p-eeae4b37.entry.js.map +0 -1
@@ -12,7 +12,7 @@ import { s as sortTabularGridColumn } from './tabular-grid-column-sort-1d503b27.
12
12
  import './helpers-7800bea2.js';
13
13
  import './helpers-102277ef.js';
14
14
 
15
- const bringChangesCss = ".custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}.warning-error-description{display:flex;align-items:center;gap:8px;padding:8px;max-inline-size:800px;line-height:1.5}.warning-error-icon{flex-shrink:0}:host{--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s);display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr}.detail__current-version,.detail__knowledge-base{max-inline-size:250px;min-inline-size:180px}.detail__current-version,.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-1,.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-2,.detail__merge-from-version{padding-inline-start:24px}.section{display:contents}.header{display:grid;gap:24px}.header__detail{display:grid;grid-template-areas:\"detail-title detail-title detail-title detail-title\" \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\" \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";row-gap:16px;grid-template-columns:minmax(250px, 350px) repeat(3, minmax(180px, 250px))}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__title{grid-area:detail-title}.detail__commit-name{grid-area:detail-commit-name}.detail__genexus-server{grid-area:detail-genexus-server}.detail__genexus-server>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__current-version{grid-area:detail-current-version}.detail__merge-from-version{grid-area:detail-merge-from-version}.header__information{display:grid;row-gap:10px;grid-template-areas:\"information-title information-title\" \"information-col-1 information-col-2\";grid-template-columns:max-content 1fr;grid-template-rows:max-content 64px}.information__title{grid-area:information-title}.information__col-1{grid-area:information-col-1;display:flex;gap:24px}.information__col-2{display:grid;grid-area:information-col-2}.controls-container{display:grid;margin-block-start:24px}.filter{grid-template-columns:232px 186px 1fr;gap:12px}.button-merge-checked{margin-inline-start:auto}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0}.tabular-grid{border-radius:4px;overflow:hidden}.empty-state{block-size:100%}.loader{--elevation-background-color:var(--mer-surface__elevation--01)}.tabular-grid.empty-result::part(main){overflow:hidden}.input-comments-container{position:relative}.input-comments{--control__border-color:transparent;padding-block:0 !important;padding-inline:0 !important;--line-height-tight:1.4;block-size:100%;background-color:var(--mer-surface);transition:var(--mer-timing--super-fast) block-size, var(--mer-timing--super-fast) background-color, var(--mer-timing--super-fast) padding-block, var(--mer-timing--super-fast) padding-inline}.input-comments:focus{position:absolute;block-size:200px;inline-size:100%;z-index:99;background-color:var(--mer-surface__elevation--01);padding-block:var(--control__padding-block) !important;padding-inline:var(--control__padding-inline) !important}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){background-size:contain;margin-inline-end:0;--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--enabled);cursor:pointer}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--hover)}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--active)}.tabular-grid-row-actions::part(main),.property-grid-row-actions::part(main){gap:0 !important}.tabular-grid-row-actions>button{justify-content:start}.pill{--pill-background-color:transparent;--pill-color:transparent;--pill-border-color:transparent;background-color:var(--pill-background-color);color:var(--pill-color);border:1px solid var(--pill-border-color);inline-size:100%;padding:var(--pill-padding-block) var(--pill-padding-inline);display:flex;align-items:center;justify-content:center;border-radius:var(--pill-border-radius);position:relative;font-weight:var(--font-weight-semi-bold)}.pill--to-merge,.pill--to-revert{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--pending{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--warning{--pill-background-color:var(--mer-color__tinted-yellow--5);--pill-color:var(--mer-border-color__warning);--pill-border-color:var(--mer-color__tinted-yellow--60)}.pill--error{--pill-background-color:var(--mer-color__tinted-red--5);--pill-color:var(--mer-border-color__error);--pill-border-color:var(--mer-color__tinted-red--60)}.pill--merged,.pill--reverted{--pill-background-color:var(--mer-color__tinted-green--5);--pill-color:var(--mer-border-color__success);--pill-border-color:var(--mer-color__tinted-green--60)}.pill--transitioning{--pill-color:transparent}.merging-spinner-caption{display:flex;align-items:center;gap:6px;--status-circle-color:transparent;--status-circle-size:$size;--status-circle-inset-inline-start:14px;--pill-color:var(--mer-border-color__primary)}.merging-spinner-caption::before{display:inline-block;content:\"\";width:14px;height:14px;border:calc(14px / 7) solid var(--mer-color__tinted-primary--50);border-top:calc(14px / 7) solid var(--mer-color__primary--300);border-radius:50%;animation:spin var(--mer-timing--regular) linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.tabular-grid .button-secondary{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon){pointer-events:none;opacity:0.5}.tabular-grid-column--settings-custom-selector,.tabular-grid-cell--settings-custom-selector{--grid-cell__padding-inline:0;--grid-cell__padding-block:0}.tabular-grid-cell::part(actions-icon){padding-block:6px}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){block-size:100%;display:block;background-size:14px;padding-inline:16px}.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden}.tabular-grid-row-actions::part(window){background-color:var(--mer-surface__elevation--02) !important}.tabular-grid-row .tabular-grid-cell:nth-child(3){min-inline-size:400px}";
15
+ const bringChangesCss = ".custom-icon-text-wrapper{display:flex;align-items:center;gap:10px}.warning-error-description{display:flex;align-items:center;gap:8px;padding:8px;max-inline-size:800px;line-height:1.5}.warning-error-icon{flex-shrink:0}:host{--pill-border-radius:12px;--pill-padding-inline:8px;--pill-padding-block:2px;--pill-font-size:var(--font-size-body-s);display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content max-content 1fr}.detail__current-version,.detail__knowledge-base{max-inline-size:250px;min-inline-size:180px}.detail__current-version,.detail__knowledge-base{padding-inline:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.information__col-1.divider,.detail__genexus-server{padding-inline-end:24px;border-inline-end:1px solid var(--mer-border-color__on-elevation--01)}.detail__merge-from-version{padding-inline-start:24px}.section{display:contents}.header{display:grid;gap:24px}.header__detail{display:grid;grid-template-areas:\"detail-title detail-title detail-title detail-title\" \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";row-gap:16px;grid-auto-columns:max-content}.detail__label{color:var(--mer-color__neutral-gray--400)}.detail__title{grid-area:detail-title}.detail__commit-name{grid-area:detail-commit-name}.detail__genexus-server{grid-area:detail-genexus-server}.detail__genexus-server>a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.detail__link{align-items:start;color:var(--mer-text__primary);text-decoration:underline}.detail__link:hover{color:var(--mer-text__primary--hover)}.detail__link:active{color:var(--mer-text__primary--active)}.detail__knowledge-base{grid-area:detail-knowledge-base}.detail__current-version{grid-area:detail-current-version}.detail__merge-from-version{grid-area:detail-merge-from-version}.header__information{display:grid;row-gap:10px;grid-template-areas:\"information-title information-title\" \"information-col-1 information-col-2\";grid-template-columns:max-content 1fr;grid-template-rows:max-content max-content}.information__title{grid-area:information-title}.information__col-1{grid-area:information-col-1;display:flex;gap:24px}.header__comments .layout__panel{justify-items:start;text-align:left}.controls-container{display:grid}.controls-container.margin-block-start{margin-block-start:24px}.filter{grid-template-columns:232px 186px 1fr;gap:12px}.button-merge-checked{margin-inline-start:auto}.main{position:relative;display:grid;overflow:auto}.loader{position:relative;inline-size:100%;block-size:100%;inset-block-start:0}.tabular-grid{border-radius:4px;overflow:hidden}.empty-state{block-size:100%}.loader{--elevation-background-color:var(--mer-surface__elevation--01)}.tabular-grid.empty-result::part(main){overflow:hidden}.comments-container{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.button-tertiary.edit-range-button{padding-block:0;align-content:flex-end}.input-comments-container{position:relative}.input-comments{--control__border-color:transparent;padding-block:0 !important;padding-inline:0 !important;--line-height-tight:1.4;block-size:100%;background-color:var(--mer-surface);transition:var(--mer-timing--super-fast) block-size, var(--mer-timing--super-fast) background-color, var(--mer-timing--super-fast) padding-block, var(--mer-timing--super-fast) padding-inline}.input-comments:focus{position:absolute;block-size:200px;inline-size:100%;z-index:99;background-color:var(--mer-surface__elevation--01);padding-block:var(--control__padding-block) !important;padding-inline:var(--control__padding-inline) !important}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){background-size:contain;margin-inline-end:0;--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--enabled);cursor:pointer}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--hover)}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active{--icon-path:var(--icon__gemini-tools_show-more-vertical_neutral--active)}.tabular-grid-row-actions::part(main),.property-grid-row-actions::part(main){gap:0 !important}.tabular-grid-row-actions>button{justify-content:start}.pill{--pill-background-color:transparent;--pill-color:transparent;--pill-border-color:transparent;background-color:var(--pill-background-color);color:var(--pill-color);border:1px solid var(--pill-border-color);inline-size:100%;padding:var(--pill-padding-block) var(--pill-padding-inline);display:flex;align-items:center;justify-content:center;border-radius:var(--pill-border-radius);position:relative;font-weight:var(--font-weight-semi-bold)}.pill--to-merge,.pill--to-revert{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--to-merge-marked{--pill-background-color:var();--pill-color:var(--mer-border-color__primary);--pill-border-color:var()}.pill--pending{--pill-background-color:var(--mer-color__tinted-primary--8);--pill-color:var(--mer-border-color__primary);--pill-border-color:var(--mer-color__tinted-primary--50)}.pill--warning{--pill-background-color:var(--mer-color__tinted-yellow--5);--pill-color:var(--mer-border-color__warning);--pill-border-color:var(--mer-color__tinted-yellow--60)}.pill--error{--pill-background-color:var(--mer-color__tinted-red--5);--pill-color:var(--mer-border-color__error);--pill-border-color:var(--mer-color__tinted-red--60)}.pill--merged,.pill--reverted{--pill-background-color:var(--mer-color__tinted-green--5);--pill-color:var(--mer-border-color__success);--pill-border-color:var(--mer-color__tinted-green--60)}.pill--transitioning{--pill-color:transparent}.merging-spinner-caption{display:flex;align-items:center;gap:6px;--status-circle-color:transparent;--status-circle-size:$size;--status-circle-inset-inline-start:14px;--pill-color:var(--mer-border-color__primary)}.merging-spinner-caption::before{display:inline-block;content:\"\";width:14px;height:14px;border:calc(14px / 7) solid var(--mer-color__tinted-primary--50);border-top:calc(14px / 7) solid var(--mer-color__primary--300);border-radius:50%;animation:spin var(--mer-timing--regular) linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.tabular-grid .button-secondary{--control__padding-block:var(--pill-padding-block);--control__padding-inline:var(--pill-padding-inline);font-size:inherit;font-weight:inherit;}.tabular-grid .tabular-grid-cell--for-pill{--grid-cell__padding-block:4px;align-items:center;justify-content:center}.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon){pointer-events:none;opacity:0.5}.tabular-grid-column--settings-custom-selector,.tabular-grid-cell--settings-custom-selector{--grid-cell__padding-inline:0;--grid-cell__padding-block:0}.tabular-grid-cell::part(actions-icon){padding-block:6px}ch-tabular-grid-cell.tabular-grid-cell::part(actions-icon){block-size:100%;display:block;background-size:14px;padding-inline:16px}.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label){visibility:hidden}.tabular-grid-row-actions::part(window){background-color:var(--mer-surface__elevation--02) !important}.tabular-grid-row .tabular-grid-cell:nth-child(3){min-inline-size:400px}";
16
16
 
17
17
  var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
18
18
  if (kind === "a" && !f)
@@ -30,7 +30,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
30
30
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
31
31
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
32
32
  };
33
- var _GxIdeTeamDevBringChanges_componentLocale, _GxIdeTeamDevBringChanges_commitLabel, _GxIdeTeamDevBringChanges_comboBoxStatesModel, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, _GxIdeTeamDevBringChanges_formatComments, _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler, _GxIdeTeamDevBringChanges_mergeSingleObject, _GxIdeTeamDevBringChanges_renderActionCellContent, _GxIdeTeamDevBringChanges_renderCommitsNumbers, _GxIdeTeamDevBringChanges_renderFormatedDate, _GxIdeTeamDevBringChanges_renderObjectStateWithIcon, _GxIdeTeamDevBringChanges_renderObjectsRows, _GxIdeTeamDevBringChanges_rowContextMenuHandler, _GxIdeTeamDevBringChanges_rowMarkingChangedHandler, _GxIdeTeamDevBringChanges_searchInputHandler, _GxIdeTeamDevBringChanges_stateChangedHandler, _GxIdeTeamDevBringChanges_updateFilteredObjects, _GxIdeTeamDevBringChanges_sortTabularGridColumnCallback;
33
+ var _GxIdeTeamDevBringChanges_componentLocale, _GxIdeTeamDevBringChanges_commitLabel, _GxIdeTeamDevBringChanges_comboBoxStatesModel, _GxIdeTeamDevBringChanges_checkedObjectsIdsArray, _GxIdeTeamDevBringChanges_formatComments, _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler, _GxIdeTeamDevBringChanges_mergeSingleObject, _GxIdeTeamDevBringChanges_renderActionCellContent, _GxIdeTeamDevBringChanges_renderCommitsNumbers, _GxIdeTeamDevBringChanges_renderFormatedDate, _GxIdeTeamDevBringChanges_renderObjectStateWithIcon, _GxIdeTeamDevBringChanges_renderObjectsRows, _GxIdeTeamDevBringChanges_rowContextMenuHandler, _GxIdeTeamDevBringChanges_rowMarkingChangedHandler, _GxIdeTeamDevBringChanges_searchInputHandler, _GxIdeTeamDevBringChanges_stateChangedHandler, _GxIdeTeamDevBringChanges_updateFilteredObjects, _GxIdeTeamDevBringChanges_sortTabularGridColumnCallback, _GxIdeTeamDevBringChanges_viewAllCommentsHandler, _GxIdeTeamDevBringChanges_editRangeHandler;
34
34
  const CSS_BUNDLES = [
35
35
  "resets/box-sizing",
36
36
  "components/tabular-grid",
@@ -38,7 +38,8 @@ const CSS_BUNDLES = [
38
38
  "utils/layout",
39
39
  "utils/typography",
40
40
  "utils/spacing",
41
- "chameleon/scrollbar"
41
+ "chameleon/scrollbar",
42
+ "components/tooltip"
42
43
  ];
43
44
  const COMBO_BOX_ALL_VALUE = "all";
44
45
  const DETAIL_LABEL_CLASSES = "detail__label body-semi-bold-s";
@@ -90,17 +91,10 @@ const GxIdeTeamDevBringChanges = class {
90
91
  _GxIdeTeamDevBringChanges_checkedObjectsIdsArray.set(this, []);
91
92
  _GxIdeTeamDevBringChanges_formatComments.set(this, () => {
92
93
  if (this.commitInformation.length === 1) {
93
- // return comment without revison number
94
- return this.commitInformation[0].comment;
94
+ return h("span", null, this.commitInformation[0].comment);
95
95
  }
96
- // return comments with revison number
97
- let mergedComment = "";
98
- this.commitInformation.map((commit, i) => {
99
- const isLast = i === this.commitInformation.length - 1;
100
- const afterCommentBreakline = isLast ? "" : "\n\n";
101
- mergedComment += `Commit ${commit.id}:\n${commit.comment}${afterCommentBreakline}`;
102
- });
103
- return mergedComment;
96
+ const firstComment = this.commitInformation[this.commitInformation.length - 1].comment;
97
+ return h("span", null, `${__classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").latest}: ${firstComment}...`);
104
98
  });
105
99
  _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler.set(this, async () => {
106
100
  this.merging = true;
@@ -290,6 +284,12 @@ const GxIdeTeamDevBringChanges = class {
290
284
  ...sortTabularGridColumn(e, this.objectsFiltered, dateType, objectProperty)
291
285
  ];
292
286
  });
287
+ _GxIdeTeamDevBringChanges_viewAllCommentsHandler.set(this, async () => {
288
+ await this.viewAllCommentsCallback();
289
+ });
290
+ _GxIdeTeamDevBringChanges_editRangeHandler.set(this, async () => {
291
+ await this.editRangeCallback();
292
+ });
293
293
  this.alreadyMergedObjectsIdsArray = [];
294
294
  this.atLeastOneObjectIsChecked = false;
295
295
  this.loading = true;
@@ -308,6 +308,8 @@ const GxIdeTeamDevBringChanges = class {
308
308
  this.mergeObjectsCallback = undefined;
309
309
  this.revertPillAsButton = false;
310
310
  this.contextMenuCallback = undefined;
311
+ this.viewAllCommentsCallback = undefined;
312
+ this.editRangeCallback = undefined;
311
313
  }
312
314
  objectsStatesMapChanged(newCommitObjectsStateMap) {
313
315
  const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(([, state]) => state === "merging" || state === "reverting");
@@ -316,6 +318,7 @@ const GxIdeTeamDevBringChanges = class {
316
318
  }
317
319
  }
318
320
  commitObjectsChanged(newCommitObjects) {
321
+ this.loading = true;
319
322
  if (newCommitObjects.length) {
320
323
  // This is the first and only objects asignment
321
324
  this.loading = false;
@@ -397,12 +400,12 @@ const GxIdeTeamDevBringChanges = class {
397
400
  render() {
398
401
  const enableRichRowSelector = this.alreadyMergedObjectsIdsArray.length !== this.commitObjects.length;
399
402
  const disableControls = this.merging || this.loading;
400
- return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: "header spacing-body-inline spacing-body-block-start" }, h("div", {
403
+ return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: "header spacing-body" }, h("div", {
401
404
  // header details
402
405
  class: "header__detail"
403
- }, h("p", { class: "detail__title subtitle-semi-bold-xs" }, this.operationType === "revert"
406
+ }, h("p", { class: "detail__title subtitle-semi-bold-s" }, this.operationType === "revert"
404
407
  ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.revertChangesDetail
405
- : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.bringChangesDetail), h("p", { class: "detail__commit-name subtitle-semi-bold-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderCommitsNumbers, "f").call(this)), h("div", {
408
+ : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.bringChangesDetail), h("div", {
406
409
  // genexus server
407
410
  class: "detail__genexus-server field field-block"
408
411
  }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.genexusServer), h("a", { class: "detail__link body-regular-s", href: this.commitDetail.genexusServer, target: "_blank" }, this.commitDetail.genexusServer)), h("div", {
@@ -411,7 +414,8 @@ const GxIdeTeamDevBringChanges = class {
411
414
  }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.knowledgeBase), h("p", { class: "body-regular-s" }, this.commitDetail.knowledgeBase)), h("div", {
412
415
  // current version
413
416
  class: "detail__current-version field field-block"
414
- }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.currentVersion), h("a", { class: "body-regular-s" }, this.commitDetail.currentVersion)), this.operationType === "merge" && (h("div", {
417
+ }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.currentVersion), h("a", { class: "body-regular-s" }, this.commitDetail.currentVersion)), (this.operationType === "merge" ||
418
+ this.operationType === "merge-all") && (h("div", {
415
419
  // merge from version
416
420
  class: "detail__merge-from-version field field-block"
417
421
  }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitDetail.mergeFromVersion), h("p", { class: "body-regular-s" }, this.commitDetail.mergeFromVersion)))), h("div", {
@@ -427,16 +431,13 @@ const GxIdeTeamDevBringChanges = class {
427
431
  ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.id
428
432
  : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.ids), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderCommitsNumbers, "f").call(this, true))), this.commitInformation.length === 1 ? (h("div", { class: "field field-block" }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.date), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderFormatedDate, "f").call(this, this.commitInformation[0].date)))) : ([
429
433
  h("div", { class: "field field-block" }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.from), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderFormatedDate, "f").call(this, this.commitInformation[0].date))),
430
- h("div", { class: "field field-block" }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.to), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderFormatedDate, "f").call(this, this.commitInformation[this.commitInformation.length - 1].date)))
431
- ])), h("div", {
432
- // header information (col-2)
433
- class: "information__col-2"
434
- }, h("div", {
435
- // To
436
- class: "field field-block"
437
- }, h("label", { class: DETAIL_LABEL_CLASSES, htmlFor: "commit-comments" }, this.commitInformation.length > 1
438
- ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.comments
439
- : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.comment), h("div", { class: "input-comments-container" }, h("ch-edit", { id: "commit-comments", class: "input scrollable input-comments body-regular-s", type: "text", multiline: true, readonly: true, value: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_formatComments, "f").call(this) })))))), h("div", { class: {
434
+ h("div", { class: "field field-block" }, h("span", { class: DETAIL_LABEL_CLASSES }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.to), h("p", { class: "body-regular-s" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_renderFormatedDate, "f").call(this, this.commitInformation[this.commitInformation.length - 1].date))),
435
+ this.operationType === "merge-all" && (h("button", { class: "button-tertiary button-icon-and-text body-semi-bold-s edit-range-button", type: "button", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_editRangeHandler, "f") }, h("ch-image", { class: "icon-md", src: EDITED_ICON, type: "mask" }), __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").buttons.editRange))
436
+ ]))), h("div", { class: "header__comments" }, h("div", { class: "layout layout--cols-2-1" }, h("div", { class: "layout__panel" }, h("div", { class: "field field-block" }, h("label", { class: DETAIL_LABEL_CLASSES, htmlFor: "commit-comments" }, this.commitInformation.length > 1
437
+ ? `${__classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.comments} (${this.commitInformation.length})`
438
+ : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").commitInformation.comment), h("p", { class: "body-regular-s comments-container" }, __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_formatComments, "f").call(this))), h("button", { class: "button-tertiary body-semi-bold-s", type: "button", onClick: __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_viewAllCommentsHandler, "f") }, this.commitInformation.length > 1
439
+ ? __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").buttons.viewAllComments.replace("{{commentsCount}}", this.commitInformation.length.toString())
440
+ : __classPrivateFieldGet(this, _GxIdeTeamDevBringChanges_componentLocale, "f").buttons.viewComment))))), h("div", { class: {
440
441
  "controls-container": true,
441
442
  "filter": !this.hideFilters,
442
443
  "spacing-body-inline": true
@@ -463,7 +464,7 @@ const GxIdeTeamDevBringChanges = class {
463
464
  "commitObjects": ["commitObjectsChanged"]
464
465
  }; }
465
466
  };
466
- _GxIdeTeamDevBringChanges_componentLocale = new WeakMap(), _GxIdeTeamDevBringChanges_commitLabel = new WeakMap(), _GxIdeTeamDevBringChanges_comboBoxStatesModel = new WeakMap(), _GxIdeTeamDevBringChanges_checkedObjectsIdsArray = new WeakMap(), _GxIdeTeamDevBringChanges_formatComments = new WeakMap(), _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler = new WeakMap(), _GxIdeTeamDevBringChanges_mergeSingleObject = new WeakMap(), _GxIdeTeamDevBringChanges_renderActionCellContent = new WeakMap(), _GxIdeTeamDevBringChanges_renderCommitsNumbers = new WeakMap(), _GxIdeTeamDevBringChanges_renderFormatedDate = new WeakMap(), _GxIdeTeamDevBringChanges_renderObjectStateWithIcon = new WeakMap(), _GxIdeTeamDevBringChanges_renderObjectsRows = new WeakMap(), _GxIdeTeamDevBringChanges_rowContextMenuHandler = new WeakMap(), _GxIdeTeamDevBringChanges_rowMarkingChangedHandler = new WeakMap(), _GxIdeTeamDevBringChanges_searchInputHandler = new WeakMap(), _GxIdeTeamDevBringChanges_stateChangedHandler = new WeakMap(), _GxIdeTeamDevBringChanges_updateFilteredObjects = new WeakMap(), _GxIdeTeamDevBringChanges_sortTabularGridColumnCallback = new WeakMap();
467
+ _GxIdeTeamDevBringChanges_componentLocale = new WeakMap(), _GxIdeTeamDevBringChanges_commitLabel = new WeakMap(), _GxIdeTeamDevBringChanges_comboBoxStatesModel = new WeakMap(), _GxIdeTeamDevBringChanges_checkedObjectsIdsArray = new WeakMap(), _GxIdeTeamDevBringChanges_formatComments = new WeakMap(), _GxIdeTeamDevBringChanges_mergeCheckedClickedHandler = new WeakMap(), _GxIdeTeamDevBringChanges_mergeSingleObject = new WeakMap(), _GxIdeTeamDevBringChanges_renderActionCellContent = new WeakMap(), _GxIdeTeamDevBringChanges_renderCommitsNumbers = new WeakMap(), _GxIdeTeamDevBringChanges_renderFormatedDate = new WeakMap(), _GxIdeTeamDevBringChanges_renderObjectStateWithIcon = new WeakMap(), _GxIdeTeamDevBringChanges_renderObjectsRows = new WeakMap(), _GxIdeTeamDevBringChanges_rowContextMenuHandler = new WeakMap(), _GxIdeTeamDevBringChanges_rowMarkingChangedHandler = new WeakMap(), _GxIdeTeamDevBringChanges_searchInputHandler = new WeakMap(), _GxIdeTeamDevBringChanges_stateChangedHandler = new WeakMap(), _GxIdeTeamDevBringChanges_updateFilteredObjects = new WeakMap(), _GxIdeTeamDevBringChanges_sortTabularGridColumnCallback = new WeakMap(), _GxIdeTeamDevBringChanges_viewAllCommentsHandler = new WeakMap(), _GxIdeTeamDevBringChanges_editRangeHandler = new WeakMap();
467
468
  GxIdeTeamDevBringChanges.style = bringChangesCss;
468
469
 
469
470
  export { GxIdeTeamDevBringChanges as gx_ide_team_dev_bring_changes };
@@ -1 +1 @@
1
- {"file":"gx-ide-team-dev-bring-changes.entry.js","mappings":";;;;;;;;;;;;;;AAAA,MAAM,eAAe,GAAG,owOAAowO;;;;;;;;;;;;;;;;;;;ACiC5xO,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,yBAAyB;IACzB,kBAAkB;IAClB,cAAc;IACd,kBAAkB;IAClB,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;AAE9D,MAAM,QAAQ,GAAG,WAAW,CAAC;IAC3B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,cAAc;IACxB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,QAAQ;IACd,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,cAAc,GAAG,WAAW,CAAC;IACjC,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,cAAc;CAC1B,CAAC,CAAC;AACH,MAAM,YAAY,GAAG,WAAW,CAAC;IAC/B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,SAAS;IACf,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,WAAW,CAAC;IAC7B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC;MAQU,wBAAwB;;;;;;;QAKnC,4DAAsB;QACtB,wDAAqB;QACrB,gEAAyE;QACzE,2DAAoC,EAAE,EAAC;QAsKvC,mDAAkB;YAChB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAEvC,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;aAC1C;;YAGD,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnC,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvD,MAAM,qBAAqB,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC;gBACnD,aAAa,IAAI,UAAU,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC,OAAO,GAAG,qBAAqB,EAAE,CAAC;aACpF,CAAC,CAAC;YAEH,OAAO,aAAa,CAAC;SACtB,EAAC;QAEF,+DAA8B;YAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3D,uBAAA,IAAI,wDAAwB,CAAC,OAAO,CAAC,eAAe;gBAClD,mBAAmB,CAAC,GAAG,CACrB,eAAe,EACf,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,WAAW,GAAG,SAAS,CAC1D,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;YAC5C,MAAM,IAAI,CAAC,oBAAoB,CAAC,uBAAA,IAAI,wDAAwB,CAAC,CAAC;SAC/D,EAAC;QAEF,sDACE,QAAQ,IAAI;YACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3D,mBAAmB,CAAC,GAAG,CACrB,QAAQ,EACR,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,WAAW,GAAG,SAAS,CAC1D,CAAC;YACF,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;YAC5C,MAAM,IAAI,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;SAC7C,EAAC;QAEJ,4DAA2B,CACzB,WAA8B;YAE9B,IAAI,IAAY,CAAC;YACjB,IAAI,OAAe,CAAC;YACpB,IAAI,SAAiB,CAAC;YAEtB,IAAI,WAAW,KAAK,SAAS,EAAE;gBAC7B,IAAI,GAAG,cAAc,CAAC;gBACtB,OAAO,GAAG,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,SAAS,GAAG,mBAAmB,CAAC;aACjC;iBAAM,IAAI,WAAW,KAAK,UAAU,EAAE;gBACrC,IAAI,GAAG,QAAQ,CAAC;gBAChB,OAAO,GAAG,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,SAAS,GAAG,qBAAqB,CAAC;aACnC;iBAAM;;gBAEL,IAAI,GAAG,WAAW,CAAC;gBACnB,OAAO,GAAG,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;gBACvD,SAAS,GAAG,qBAAqB,CAAC;aACnC;YAED,QACE,YAAM,KAAK,EAAC,0BAA0B,IACpC,gBACE,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,SAAS,EACf,GAAG,EAAE,IAAI,EACT,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,SAAS,GAAG,EAAE,GACrC,EACX,GAAG,OAAO,EAAE,CACR,EACP;SACH,EAAC;QAEF,yDAAwB,CAAC,cAAuB,KAAK;;YACnD,IAAI,CAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,MAAM,IAAG,CAAC,EAAE;;gBAEtC,OAAO,WAAW;sBACd,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,QAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAC5D,EAAE;sBACF,GAAG,uBAAA,IAAI,6CAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,QAClD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAC5D,EAAE,CAAC;aACR;iBAAM,IAAI,CAAA,MAAA,IAAI,CAAC,iBAAiB,0CAAE,MAAM,MAAK,CAAC,EAAE;;gBAE/C,OAAO,WAAW;sBACd,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE;sBAC5B,GAAG,uBAAA,IAAI,6CAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aAC5D;iBAAM;;gBAEL,OAAO,WAAW;sBACd,GAAG,uBAAA,IAAI,iDAAiB,CAAC,OAAO,EAAE;sBAClC,GAAG,uBAAA,IAAI,6CAAa,IAAI,uBAAA,IAAI,iDAAiB,CAAC,OAAO,EAAE,CAAC;aAC7D;SACF,EAAC;QAEF,uDAAsB,CAAC,IAAU;;YAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,CAAA,MAAA,SAAS,CAAC,SAAS,0CAAG,CAAC,CAAC,KAAI,SAAS,CAAC,QAAQ,CAAC;YAE5D,OAAO,GAAG,UAAU,CAAC,kBAAkB,CACrC,IAAI,CACL,IAAI,UAAU,CAAC,kBAAkB,CAAC,IAAI,EAAE;gBACvC,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,KAAK;aACd,CAAC,EAAE,CAAC;SACN,EAAC;QAEF,8DAA6B,CAC3B,UAAuB,EACvB,QAAgB;YAEhB,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,WAAW,EAAE;gBAC1D,QACE,YAAM,KAAK,EAAC,yBAAyB,IAClC,IAAI,CAAC,aAAa,KAAK,QAAQ;sBAC5B,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,SAAS;sBACtC,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,OAAO,CACnC,EACP;aACH;YACD,MAAM,OAAO,GAAG,cAAc,UAAU,EAAE,CAAC;YAC3C,IACE,IAAI,CAAC,kBAAkB;iBACtB,UAAU,KAAK,UAAU;oBACxB,UAAU,KAAK,iBAAiB;oBAChC,UAAU,KAAK,WAAW,CAAC,EAC7B;gBACA,QACE,cACE,KAAK,EAAE,EAAE,CAAC,OAAO,GAAG,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EACpD,OAAO,EAAE,uBAAA,IAAI,mDAAmB,MAAvB,IAAI,EAAoB,QAAQ,CAAC,IAEzC,uBAAA,IAAI,iDAAiB,CAAC,eAAe,CAAC,UAAU,CAAC,CAC3C,EACT;aACH;iBAAM;gBACL,QACE,YAAM,KAAK,EAAE,OAAO,IAAG,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAQ,EACvE;aACH;SACF,EAAC;QAEF,sDAAqB;YACnB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY;gBAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAC1D,eAAe,IAAI,eAAe,KAAK,YAAY,CAAC,EAAE,CACvD,CAAC;gBACF,MAAM,qBAAqB,GAAG,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAC7D,YAAY,CAAC,EAAE,CAChB,CAAC;gBACF,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;gBAEzD,IAAI,YAAY,CAAC;gBACjB,IAAI,KAAK,KAAK,OAAO,EAAE;oBACrB,YAAY,GAAG,UAAU,CAAC;iBAC3B;qBAAM,IAAI,KAAK,KAAK,SAAS,EAAE;oBAC9B,YAAY,GAAG,YAAY,CAAC;iBAC7B;gBAED,QACE,2BACE,KAAK,EAAC,kBAAkB,EACxB,GAAG,EAAE,YAAY,CAAC,EAAE,EACpB,KAAK,EAAE,YAAY,CAAC,EAAE,EACtB,GAAG,EAAE,CAAC,EAAe,KACnB,MAAM,KAAI,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA,IAG9C,yCACY,MAAM,kBACH,MAAM,EACnB,KAAK,EAAE;wBACL,mBAAmB,EAAE,IAAI;wBACzB,6BAA6B,EAAE,aAAa;qBAC7C,EACD,IAAI,EAAC,aAAa,IAEjB,YAAY,CAAC,IAAI,CACG,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,wBAAwB,CAAC,YAAY,CAAC,IAAI,CAAC,CACvB,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,YAAY,CAAC,WAAW,CACJ,EACvB,4BAAsB,KAAK,EAAC,mBAAmB,IAC5C,uBAAA,IAAI,yDAAyB,MAA7B,IAAI,EAA0B,YAAY,CAAC,WAAW,CAAC,CACnC,EACvB,4BAAsB,KAAK,EAAC,+CAA+C,IACxE,uBAAA,IAAI,2DAA2B,MAA/B,IAAI,EACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,EAC1C,YAAY,CAAC,EAAE,CAChB,CACoB,EACtB,qBAAqB,KACpB,8BAAwB,KAAK,EAAC,qBAAqB,IACjD,oCACE,KAAK,EAAE,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,IAE3D,SAAG,KAAK,EAAC,2BAA2B,IAClC,gBACE,KAAK,EAAC,4BAA4B,EAClC,GAAG,EAAE,YAAY,GACP,EACX,qBAAqB,CACpB,CACyB,CACR,CAC1B,CACmB,EACtB;aACH,CAAC,CAAC;SACJ,EAAC;QAEF,0DAAyB,OACvB,EAA+C;YAE/C,EAAE,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YAEnE,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC7B,SAAS,EAAE,eAAe;gBAC1B,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;gBAC1B,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;aAC3B,CAAC,CAAC;SACJ,EAAC;QAEF,6DAA4B,CAC1B,KAAkD;YAElD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC9C,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;YAC1C,MAAM,mCAAmC,GAAG,aAAa,CAAC,MAAM,CAC9D,cAAc,IACZ,CAAC,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,cAAc,CAAC,CAC9D,CAAC;YACF,uBAAA,IAAI,oDAA2B,CAAC,GAAG,mCAAmC,CAAC,MAAA,CAAC;;YAGxE,uBAAA,IAAI,wDAAwB,CAAC,OAAO,CAAC,eAAe;gBAClD,mBAAmB,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;YAE5C,IAAI,CAAC,yBAAyB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1D,mBAAmB,CAAC,OAAO,CAAC,QAAQ;gBAClC,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC/D,IACE,kBAAkB,KAAK,UAAU;oBACjC,kBAAkB,KAAK,iBAAiB,EACxC;oBACA,OAAO;iBACR;gBAED,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,QAAQ,CAAC,CAAC;gBACtE,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;oBACzB,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;oBACrD,aAAa,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;iBAEzC;qBAAM;oBACL,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;iBAC/C;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;SAC7C,EAAC;QAEF,uDAAsB,CAAC,KAA6C;YAClE,IAAI,CAAC,WAAW,GAAI,KAAK,CAAC,MAAiB,CAAC,WAAW,EAAE,CAAC;YAC1D,uBAAA,IAAI,uDAAuB,MAA3B,IAAI,CAAyB,CAAC;SAC/B,EAAC;QAEF,wDAAuB,CAAC,KAAuC;YAC7D,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,MAA8B,CAAC;YAC7D,uBAAA,IAAI,uDAAuB,MAA3B,IAAI,CAAyB,CAAC;SAC/B,EAAC;QAEF,0DAAyB;YACvB,IAAI,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;;YAG9C,IAAI,IAAI,CAAC,gBAAgB,KAAK,KAAK,EAAE;gBACnC,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM;oBAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACzD,OAAO,WAAW,KAAK,IAAI,CAAC,gBAAgB,CAAC;iBAC9C,CAAC,CAAC;aACJ;;YAGD,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM;gBAC7C,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE1E,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI;qBAClC,WAAW,EAAE;qBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE9B,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW;qBAC3C,WAAW,EAAE;qBACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAE9B,IAAI,YAAY,IAAI,YAAY,IAAI,mBAAmB,EAAE;oBACvD,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SACxC,EAAC;QA6CF,kEAAiC,CAC/B,CAAiD;YAEjD,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAEnC,IAAI,cAAc,CAAC;YACnB,IAAI,QAAQ,GAAkC,QAAQ,CAAC;YACvD,IAAI,QAAQ,KAAK,WAAW,CAAC,IAAI,EAAE;gBACjC,cAAc,GAAG,MAAM,CAAC;gBACxB,QAAQ,GAAG,QAAQ,CAAC;aACrB;YAED,IAAI,CAAC,eAAe,GAAG;gBACrB,GAAG,qBAAqB,CACtB,CAAC,EACD,IAAI,CAAC,eAAe,EACpB,QAAQ,EACR,cAAc,CACf;aACF,CAAC;SACH,EAAC;4CA5hBgD,EAAE;yCAKN,KAAK;uBAKvB,IAAI;+BAKW,EAAE;2BAKd,EAAE;gCAKiB,mBAAmB;gCAK5B,IAAI,GAAG,EAAU;gCAKJ,IAAI,GAAG,EAAE;wCAeN,IAAI,GAAG,EAAE;uBAKtC,KAAK;;iCAUyB,EAAE;6BAKX,EAAE;2BAsBX,KAAK;6BAKG,OAAO;;kCAUR,KAAK;;;IAtEpD,uBAAuB,CAAC,wBAAkD;QACxE,MAAM,mBAAmB,GAAG,CAAC,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CACtE,CAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,WAAW,CAC5D,CAAC;QAEF,IAAI,CAAC,mBAAmB,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACtB;KACF;IA2BD,oBAAoB,CAAC,gBAAgC;QACnD,IAAI,gBAAgB,CAAC,MAAM,EAAE;;YAE3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;YAGrB,gBAAgB,CAAC,OAAO,CAAC,YAAY;gBACnC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CACvB,YAAY,CAAC,EAAE,EACf,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,WAAW,GAAG,UAAU,CAC3D,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC;SAC3C;KACF;IA2BD,MAAM,iBAAiB;;QACrB,uBAAA,IAAI,6CAAoB,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,MAAA,CAAC;QAClE,uBAAA,IAAI,yCACF,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;cAC7B,uBAAA,IAAI,iDAAiB,CAAC,QAAQ;cAC9B,uBAAA,IAAI,iDAAiB,CAAC,OAAO,MAAA,CAAC;;QAGpC,uBAAA,IAAI,iDAAwB;YAC1B;gBACE,OAAO,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,GAAG;gBACzC,KAAK,EAAE,mBAAmB;aAC3B;YACD;gBACE,OAAO,EACL,IAAI,CAAC,aAAa,KAAK,QAAQ;sBAC3B,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,WAAW,CAAC;sBACzC,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,UAAU,CAAC;gBAC9C,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,WAAW,GAAG,UAAU;aAClE;YACD;gBACE,OAAO,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,OAAO;gBAC7C,KAAK,EAAE,SAAS;aACjB;YACD;gBACE,OAAO,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,KAAK;gBAC3C,KAAK,EAAE,OAAO;aACf;YACD;gBACE,OAAO,EACL,IAAI,CAAC,aAAa,KAAK,QAAQ;sBAC3B,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,QAAQ;sBACrC,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,MAAM;gBACzC,KAAK,EAAE,IAAI,CAAC,aAAa,KAAK,QAAQ,GAAG,UAAU,GAAG,QAAQ;aAC/D;SACF,MAAA,CAAC;QAEF,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,EAAE;;YAE9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC/C;KACF;;;;;;;;;;;IA6UD,MAAM,iBAAiB,CACrB,QAAgB,EAChB,QAAqB,EACrB,OAAe;;QAGf,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC3D,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,CAAC;;QAG5C,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,IAAG,CAAC,EAAE;YACvB,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;SACtD;QAED,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE;;YAEpD,uBAAA,IAAI,oDAA2B,uBAAA,IAAI,wDAAwB,CAAC,MAAM,CAChE,aAAa,IAAI,aAAa,KAAK,QAAQ,CAC5C,MAAA,CAAC;;YAGF,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;YAGjD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;;YAG5C,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SAChD;KACF;IAwBD,MAAM;QACJ,MAAM,qBAAqB,GACzB,IAAI,CAAC,4BAA4B,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAEzE,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QACrD,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,QAAQ,IAClB,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,eAAS,KAAK,EAAC,SAAS,IACtB,cAAQ,KAAK,EAAC,qDAAqD,IACjE;;YAEE,KAAK,EAAC,gBAAgB;WAEtB,SAAG,KAAK,EAAC,qCAAqC,IAC3C,IAAI,CAAC,aAAa,KAAK,QAAQ;cAC5B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,mBAAmB;cACtD,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,kBAAkB,CACvD,EACJ,SAAG,KAAK,EAAC,0CAA0C,IAChD,uBAAA,IAAI,sDAAsB,MAA1B,IAAI,CAAwB,CAC3B,EACJ;;YAEE,KAAK,EAAC,0CAA0C;WAEhD,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,aAAa,CAC5C,EACP,SACE,KAAK,EAAC,6BAA6B,EACnC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EACrC,MAAM,EAAC,QAAQ,IAEd,IAAI,CAAC,YAAY,CAAC,aAAa,CAC9B,CACA,EAEN;;YAEE,KAAK,EAAC,0CAA0C;WAEhD,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,aAAa,CAC5C,EACP,SAAG,KAAK,EAAC,gBAAgB,IAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAK,CAC3D,EAEN;;YAEE,KAAK,EAAC,2CAA2C;WAEjD,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,cAAc,CAC7C,EACP,SAAG,KAAK,EAAC,gBAAgB,IAAE,IAAI,CAAC,YAAY,CAAC,cAAc,CAAK,CAC5D,EACL,IAAI,CAAC,aAAa,KAAK,OAAO,KAC7B;;YAEE,KAAK,EAAC,8CAA8C;WAEpD,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,YAAY,CAAC,gBAAgB,CAC/C,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACjC,CACA,CACP,CACG,EACN;;YAEE,KAAK,EAAC,qBAAqB;WAE3B,SAAG,KAAK,EAAC,0CAA0C,IAChD,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,KAAK,CAC5C,EACJ;;YAEE,KAAK,EAAC,oBAAoB;WAE1B;;YAEE,KAAK,EAAC,mBAAmB;WAEzB,YAAM,KAAK,EAAE,oBAAoB,IAC9B,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC;cAChC,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,EAAE;cAC1C,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,GAAG,CAC1C,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,uBAAA,IAAI,sDAAsB,MAA1B,IAAI,EAAuB,IAAI,CAAC,CAC/B,CACA,EACL,IAAI,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAClC,WAAK,KAAK,EAAC,mBAAmB,IAC5B,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,IAAI,CACxC,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,uBAAA,IAAI,oDAAoB,MAAxB,IAAI,EAAqB,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CACvD,CACA,KAEN;YACE,WAAK,KAAK,EAAC,mBAAmB,IAC5B,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,IAAI,CACxC,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,uBAAA,IAAI,oDAAoB,MAAxB,IAAI,EACH,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAC/B,CACC,CACA;YACN,WAAK,KAAK,EAAC,mBAAmB,IAC5B,YAAM,KAAK,EAAE,oBAAoB,IAC9B,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,EAAE,CACtC,EACP,SAAG,KAAK,EAAC,gBAAgB,IACtB,uBAAA,IAAI,oDAAoB,MAAxB,IAAI,EACH,IAAI,CAAC,iBAAiB,CACpB,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAClC,CAAC,IAAI,CACP,CACC,CACA;SACP,CACF,CACG,EAEN;;YAEE,KAAK,EAAC,oBAAoB;WAE1B;;YAEE,KAAK,EAAC,mBAAmB;WAEzB,aAAO,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAC,iBAAiB,IAC1D,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;cAC9B,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,QAAQ;cAChD,uBAAA,IAAI,iDAAiB,CAAC,iBAAiB,CAAC,OAAO,CAC7C,EACR,WAAK,KAAK,EAAC,0BAA0B,IACnC,eACE,EAAE,EAAC,iBAAiB,EACpB,KAAK,EAAC,gDAAgD,EACtD,IAAI,EAAC,MAAM,EACX,SAAS,QACT,QAAQ,QACR,KAAK,EAAE,uBAAA,IAAI,gDAAgB,MAApB,IAAI,CAAkB,GACpB,CACP,CACF,CACF,CACF,CACC,EACT,WACE,KAAK,EAAE;gBACL,oBAAoB,EAAE,IAAI;gBAC1B,QAAQ,EAAE,CAAC,IAAI,CAAC,WAAW;gBAC3B,qBAAqB,EAAE,IAAI;aAC5B,IAEA,CAAC,IAAI,CAAC,WAAW,IAAI;YACpB,eACE,KAAK,EAAC,OAAO,EACb,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,iBAAiB,EAC3D,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,uBAAA,IAAI,oDAAoB,GACxB;YACX,2BACE,KAAK,EAAC,WAAW,EACjB,QAAQ,EAAE,eAAe,EACzB,KAAK,EAAE,uBAAA,IAAI,qDAAqB,EAChC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAC5B,OAAO,EAAE,uBAAA,IAAI,qDAAqB,EAClC,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,gBAAgB,GACrC;SACxB,EAED,cACE,KAAK,EAAC,qCAAqC,EAC3C,QAAQ,EAAE,CAAC,IAAI,CAAC,yBAAyB,IAAI,eAAe,EAC5D,OAAO,EAAE,uBAAA,IAAI,4DAA4B,IAExC,IAAI,CAAC,aAAa,KAAK,QAAQ;cAC5B,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,cAAc;cAC3C,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,aAAa,CACvC,CACL,EACN,WAAK,KAAK,EAAC,mBAAmB,IAC3B,IAAI,CAAC,aAAa,CAAC,MAAM,IACxB,uBACE,KAAK,EAAE;gBACL,cAAc,EAAE,IAAI;gBACpB,sBAAsB,EAAE,IAAI;gBAC5B,0BAA0B,EAAE,IAAI,CAAC,OAAO;gBACxC,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC;aAClD,EACD,sBAAsB,EAAC,OAAO,EAC9B,gBAAgB,EAAC,UAAU,EAC3B,mBAAmB,EAAE,uBAAA,IAAI,0DAA0B,EACnD,gBAAgB,EAAE,uBAAA,IAAI,uDAAuB,EAC7C,GAAG,EAAE,CAAC,EAA4B,MAC/B,IAAI,CAAC,aAAa,GAAG,EAA8B,CAAC,IAGvD,iCAA2B,KAAK,EAAC,yBAAyB,IACxD,8BACE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,IAAI,EAC1B,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,IAAI,EAC9C,UAAU,EAAC,MAAM,EACjB,eAAe,EAAE,qBAAqB,EACtC,mBAAmB,EAAC,MAAM,EAC1B,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,IAAI,EACd,mBAAmB,EAAE,uBAAA,IAAI,+DAA+B,EACxD,IAAI,EAAC,aAAa,GAClB,EACF,8BACE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,IAAI,EAC1B,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,IAAI,EAC9C,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,IAAI,EACd,mBAAmB,EAAE,uBAAA,IAAI,+DAA+B,EACxD,IAAI,EAAC,aAAa,GAClB,EACF,8BACE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,WAAW,EACjC,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,WAAW,EACrD,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,IAAI,EACd,mBAAmB,EAAE,uBAAA,IAAI,+DAA+B,EACxD,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,GAC5C,EACF,8BACE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAC5B,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,MAAM,EAChD,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,KAAK,EACf,IAAI,EAAC,aAAa,GAClB,EACF;;;YAGE,KAAK,EAAC,qBAAqB,EAC3B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAC5B,UAAU,EAAE,uBAAA,IAAI,iDAAiB,CAAC,OAAO,CAAC,MAAM,EAChD,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,KAAK,EACf,IAAI,EAAC,OAAO;UACZ,CACwB,EAC3B,uBAAA,IAAI,mDAAmB,MAAvB,IAAI,CAAqB,EAE1B,8BAAwB,KAAK,EAAC,qBAAqB,IAChD,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,KAChC,wCACE,0BACE,KAAK,EAAC,aAAa,EACnB,UAAU,QACV,YAAY,EAAE,WAAW,EACzB,UAAU,EAAC,+BAA+B,GACtB,CACO,CAChC,CACsB,CACT,KAElB,qBACE,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,WAAW,EACrD,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,KAAK,EAC/C,WAAW,EAAE,uBAAA,IAAI,iDAAiB,CAAC,MAAM,CAAC,WAAW,EACrD,IAAI,QACJ,KAAK,EAAC,QAAQ,GACC,CAClB,CACG,CACE,CACL,EACP;KACH;;;;;;;;;;;;;","names":[],"sources":["src/components/team-dev/bring-changes/bring-changes.scss?tag=gx-ide-team-dev-bring-changes&encapsulation=shadow","src/components/team-dev/bring-changes/bring-changes.tsx"],"sourcesContent":["@import \"../common/styles.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n --pill-border-radius: 12px;\n --pill-padding-inline: 8px;\n --pill-padding-block: 2px;\n --pill-font-size: var(--font-size-body-s);\n\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content max-content 1fr;\n}\n$header-item-common-inline-padding: 24px;\n$header-item-common-separator-border: 1px solid\n var(--mer-border-color__on-elevation--01);\n\n%header-item-common-inline-sizes {\n max-inline-size: 250px;\n min-inline-size: 180px;\n}\n%header-item-common {\n padding-inline: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n @extend %header-item-common-inline-sizes;\n}\n%header-item-common-start {\n padding-inline-end: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n}\n%header-item-common-end {\n padding-inline-start: $header-item-common-inline-padding;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n display: grid;\n gap: 24px;\n}\n\n// header detail\n.header__detail {\n display: grid;\n grid-template-areas:\n \"detail-title detail-title detail-title detail-title\"\n \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\"\n \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";\n row-gap: 16px;\n // grid-auto-columns: max-content;\n // grid-template-columns: max-content auto auto auto;\n grid-template-columns: minmax(250px, 350px) repeat(3, minmax(180px, 250px));\n}\n.detail__label {\n color: var(--mer-color__neutral-gray--400);\n}\n.detail__title {\n grid-area: detail-title;\n}\n.detail__commit-name {\n grid-area: detail-commit-name;\n}\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n @extend %header-item-common-start;\n\n > a {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n }\n}\n.detail__link {\n align-items: start;\n color: var(--mer-text__primary);\n text-decoration: underline;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n}\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n @extend %header-item-common;\n}\n.detail__current-version {\n grid-area: detail-current-version;\n @extend %header-item-common;\n}\n.detail__merge-from-version {\n grid-area: detail-merge-from-version;\n @extend %header-item-common-end;\n}\n\n// header information\n.header__information {\n display: grid;\n row-gap: 10px;\n grid-template-areas:\n \"information-title information-title\"\n \"information-col-1 information-col-2\";\n grid-template-columns: max-content 1fr;\n grid-template-rows: max-content 64px;\n}\n.information__title {\n grid-area: information-title;\n}\n.information__col-1 {\n grid-area: information-col-1;\n display: flex;\n gap: 24px;\n @extend %header-item-common-start;\n}\n.information__col-2 {\n display: grid;\n grid-area: information-col-2;\n @extend %header-item-common-end;\n}\n\n// filter / controls-container\n.controls-container {\n display: grid;\n margin-block-start: 24px;\n}\n.filter {\n grid-template-columns: 232px 186px 1fr;\n gap: 12px;\n}\n.button-merge-checked {\n margin-inline-start: auto;\n}\n\n// main\n.main {\n position: relative;\n display: grid;\n overflow: auto;\n}\n.loader {\n position: relative;\n inline-size: 100%;\n block-size: 100%;\n inset-block-start: 0;\n}\n.tabular-grid {\n border-radius: 4px;\n overflow: hidden;\n}\n\n.empty-state {\n block-size: 100%;\n}\n.loader {\n --elevation-background-color: var(--mer-surface__elevation--01);\n}\n\n.tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\n// - - - - - - - - - - - - - -\n// WA (WORK AROUNDS)\n// - - - - - - - - - - - - - -\n\n.input-comments-container {\n position: relative;\n}\n// ch-edit for comments WA's\n// Figma design for this component displays the textarea witout border, and with a little more line-height.\n// The following styles are a temporary WA that should be brouhgt to Mercury DS.\n.input-comments {\n --control__border-color: transparent;\n padding-block: 0 !important;\n padding-inline: 0 !important;\n --line-height-tight: 1.4;\n block-size: 100%;\n background-color: var(--mer-surface);\n transition:\n var(--mer-timing--super-fast) block-size,\n var(--mer-timing--super-fast) background-color,\n var(--mer-timing--super-fast) padding-block,\n var(--mer-timing--super-fast) padding-inline;\n}\n.input-comments:focus {\n position: absolute;\n block-size: 200px;\n inline-size: 100%;\n z-index: 99;\n background-color: var(--mer-surface__elevation--01);\n padding-block: var(--control__padding-block) !important;\n padding-inline: var(--control__padding-inline) !important;\n}\n\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n background-size: contain; //force icon fit container\n margin-inline-end: 0;\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--enabled);\n cursor: pointer;\n &:hover {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--hover);\n }\n &:active {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--active);\n }\n}\n\n.tabular-grid-row-actions::part(main),\n.property-grid-row-actions::part(main) {\n // gap not required since buttons are tertiary.\n // extra space perceived.\n gap: 0 !important;\n}\n\n.tabular-grid-row-actions {\n // Butons are center by default, but design dictates start alignemnt\n > button {\n justify-content: start;\n }\n}\n\n// These static type of pills do not exist on Mercury yet.\n// They should be defined on Mercury. The actual pills on Mercury\n// are combo-boxes. Not what we need for this case.\n\n.pill {\n --pill-background-color: transparent;\n --pill-color: transparent;\n --pill-border-color: transparent;\n\n background-color: var(--pill-background-color);\n color: var(--pill-color);\n border: 1px solid var(--pill-border-color);\n inline-size: 100%;\n padding: var(--pill-padding-block) var(--pill-padding-inline);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--pill-border-radius);\n position: relative;\n font-weight: var(--font-weight-semi-bold);\n\n &--to-merge,\n &--to-revert {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--to-merge-marked {\n --pill-background-color: var();\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var();\n }\n &--pending {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--warning {\n --pill-background-color: var(--mer-color__tinted-yellow--5);\n --pill-color: var(--mer-border-color__warning);\n --pill-border-color: var(--mer-color__tinted-yellow--60);\n }\n &--error {\n --pill-background-color: var(--mer-color__tinted-red--5);\n --pill-color: var(--mer-border-color__error);\n --pill-border-color: var(--mer-color__tinted-red--60);\n }\n &--merged,\n &--reverted {\n --pill-background-color: var(--mer-color__tinted-green--5);\n --pill-color: var(--mer-border-color__success);\n --pill-border-color: var(--mer-color__tinted-green--60);\n }\n &--transitioning {\n // used to hide the text, before updating the caption (smooth transtion)\n --pill-color: transparent;\n }\n}\n.merging-spinner-caption {\n display: flex;\n align-items: center;\n gap: 6px;\n $size: 14px;\n --status-circle-color: transparent;\n --status-circle-size: $size;\n --status-circle-inset-inline-start: 14px;\n --pill-color: var(--mer-border-color__primary);\n &::before {\n display: inline-block;\n content: \"\";\n\n @include spinner(\n $size,\n var(--mer-color__primary--300),\n var(--mer-color__tinted-primary--50)\n );\n }\n}\n.tabular-grid .button-secondary {\n --control__padding-block: var(--pill-padding-block);\n --control__padding-inline: var(--pill-padding-inline);\n font-size: inherit;\n font-weight: inherit;\n /* font-size: var(--pill-font-size); */\n}\n\n.tabular-grid .tabular-grid-cell--for-pill {\n --grid-cell__padding-block: 4px;\n align-items: center;\n justify-content: center;\n\n // --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),\n.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon) {\n pointer-events: none;\n opacity: 0.5;\n}\n.tabular-grid-column--settings-custom-selector,\n.tabular-grid-cell--settings-custom-selector {\n --grid-cell__padding-inline: 0;\n --grid-cell__padding-block: 0;\n}\n.tabular-grid-cell::part(actions-icon) {\n padding-block: 6px;\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n block-size: 100%;\n display: block;\n background-size: 14px;\n padding-inline: 16px;\n}\n\n.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label) {\n visibility: hidden;\n}\n\n.tabular-grid-row-actions::part(window) {\n background-color: var(--mer-surface__elevation--02) !important;\n}\n\n.tabular-grid-row .tabular-grid-cell:nth-child(3) {\n min-inline-size: 400px;\n}\n\n// - - - - - - - - - - - - - -\n// END OF WA\n// - - - - - - - - - - - - - -\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n JSX,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { Locale } from \"../../../common/locale\";\nimport {\n ChEditCustomEvent,\n TabularGridMarkingChangedEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { ObjectType } from \"../../../components\";\n\nimport { config } from \"../../../common/config\";\n\nimport { ContextMenuCallback } from \"../../../components\";\n\nimport { renderObjectTypeWithIcon } from \"../common/utilities\";\n\nimport { COLUMNS_IDS } from \"../version-control/common/tabular-grid-render\";\nimport sortTabularGridColumn, {\n type SortTabularGridColumnDataType\n} from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tabular-grid\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\"\n];\n\nconst COMBO_BOX_ALL_VALUE = \"all\";\n\nconst DETAIL_LABEL_CLASSES = \"detail__label body-semi-bold-s\";\n\nconst ADD_ICON = getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"on-elevation\"\n});\nconst EDITED_ICON = getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"on-elevation\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n});\nconst SUBSTRACT_ICON = getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"on-elevation\"\n});\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n});\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-bring-changes\",\n styleUrl: \"bring-changes.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-bring-changes\"]\n})\nexport class GxIdeTeamDevBringChanges {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n #commitLabel: string;\n #comboBoxStatesModel: { caption: string; value: ObjectStateForFilter }[];\n #checkedObjectsIdsArray: string[] = [];\n\n @Element() el: HTMLGxIdeTeamDevBringChangesElement;\n\n private tabularGridEl!: HTMLChTabularGridElement;\n\n /**\n * An array that holds the id's of the objects that have been merged already.\n */\n @State() alreadyMergedObjectsIdsArray: string[] = [];\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() atLeastOneObjectIsChecked: boolean = false;\n\n /**\n * True while commitObjects hasn't been loaded or is empty. Used to display a loader.\n */\n @State() loading: boolean = true;\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() objectsFiltered: CommitObject[] = [];\n\n /**\n * The current search filter value\n */\n @State() searchValue: string = \"\";\n\n /**\n * The current state filter value\n */\n @State() stateFilterValue: ObjectStateForFilter = COMBO_BOX_ALL_VALUE;\n\n /**\n * A set that stores the marked state of each object cell. This is necessary because filtering the grid * causes marked cells to lose their state.\n */\n @State() markedObjectsSet: Set<string> = new Set<string>();\n\n /**\n * A map that holds the current commit objects states (\"pending\" | \"warning\" | \"error\" | \"merged\" | \"reverted\")\n */\n @State() objectsStatesMap: Map<string, ObjectState> = new Map();\n @Watch(\"objectsStatesMap\")\n objectsStatesMapChanged(newCommitObjectsStateMap: Map<string, ObjectState>) {\n const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(\n ([, state]) => state === \"merging\" || state === \"reverting\"\n );\n\n if (!someObjectIsMerging) {\n this.merging = false;\n }\n }\n\n /**\n * A map that holds object messages, if any, for objects that could not be merged (these objects are in a \"warning\" or \"error\" state)\n */\n @State() commitObjectsMessagesMap: Map<string, string> = new Map();\n\n /**\n * Set to true when objects are being mered. This helps disabling controls until all objects are done.\n */\n @State() merging: boolean = false;\n\n /**\n * Detail about the commit\n */\n @Prop() readonly commitDetail: CommitDetail;\n\n /**\n * Commit information\n */\n @Prop() readonly commitInformation: CommitInformation[] = [];\n\n /**\n * Array of commit\n */\n @Prop() readonly commitObjects: CommitObject[] = [];\n @Watch(\"commitObjects\")\n commitObjectsChanged(newCommitObjects: CommitObject[]) {\n if (newCommitObjects.length) {\n // This is the first and only objects asignment\n this.loading = false;\n\n // All commit objects begin as \"pending to merge\"\n newCommitObjects.forEach(commitObject => {\n this.objectsStatesMap.set(\n commitObject.id,\n this.operationType === \"revert\" ? \"to-revert\" : \"to-merge\"\n );\n });\n\n this.objectsFiltered = this.commitObjects;\n }\n }\n\n /**\n * Determines whether the filters are rendered or not.\n */\n @Prop() readonly hideFilters: boolean = false;\n\n /**\n * The type of operation to perform: \"merge\" or \"revert\".\n */\n @Prop() readonly operationType: OperationType = \"merge\";\n\n /**\n * The callback that is triggered when the user wants to merge more than one commit.\n */\n @Prop() readonly mergeObjectsCallback!: MergeObjectsCallback;\n\n /**\n * If true, the \"Action\" column will display a button instead of a pill, only when the action is\n */\n @Prop() readonly revertPillAsButton: boolean = false;\n\n /**\n * Invoked when user activates the context menu on th grid.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#commitLabel =\n this.commitInformation.length > 1\n ? this.#componentLocale.commmits\n : this.#componentLocale.commmit;\n\n // Initiate \"states\" combo box filter\n this.#comboBoxStatesModel = [\n {\n caption: this.#componentLocale.states.all,\n value: COMBO_BOX_ALL_VALUE\n },\n {\n caption:\n this.operationType === \"revert\"\n ? this.#componentLocale.states[\"to-revert\"]\n : this.#componentLocale.states[\"to-merge\"],\n value: this.operationType === \"revert\" ? \"to-revert\" : \"to-merge\"\n },\n {\n caption: this.#componentLocale.states.warning,\n value: \"warning\"\n },\n {\n caption: this.#componentLocale.states.error,\n value: \"error\"\n },\n {\n caption:\n this.operationType === \"revert\"\n ? this.#componentLocale.states.reverted\n : this.#componentLocale.states.merged,\n value: this.operationType === \"revert\" ? \"reverted\" : \"merged\"\n }\n ];\n\n if (this.commitObjects?.length) {\n // if commitObjects already set...\n this.commitObjectsChanged(this.commitObjects);\n }\n }\n\n #formatComments = (): string => {\n if (this.commitInformation.length === 1) {\n // return comment without revison number\n return this.commitInformation[0].comment;\n }\n\n // return comments with revison number\n let mergedComment = \"\";\n this.commitInformation.map((commit, i) => {\n const isLast = i === this.commitInformation.length - 1;\n const afterCommentBreakline = isLast ? \"\" : \"\\n\\n\";\n mergedComment += `Commit ${commit.id}:\\n${commit.comment}${afterCommentBreakline}`;\n });\n\n return mergedComment;\n };\n\n #mergeCheckedClickedHandler = async () => {\n this.merging = true;\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n this.#checkedObjectsIdsArray.forEach(checkedObjectId => {\n newobjectsStatesMap.set(\n checkedObjectId,\n this.operationType === \"revert\" ? \"reverting\" : \"merging\"\n );\n });\n\n this.objectsStatesMap = newobjectsStatesMap;\n await this.mergeObjectsCallback(this.#checkedObjectsIdsArray);\n };\n\n #mergeSingleObject: (objectId: string) => () => void =\n objectId => async () => {\n this.merging = true;\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n newobjectsStatesMap.set(\n objectId,\n this.operationType === \"revert\" ? \"reverting\" : \"merging\"\n );\n this.objectsStatesMap = newobjectsStatesMap;\n await this.mergeObjectsCallback([objectId]);\n };\n\n #renderActionCellContent = (\n actionTaken: ObjectActionTaken\n ): JSX.Element[] => {\n let icon: string;\n let caption: string;\n let iconColor: string;\n\n if (actionTaken === \"Deleted\") {\n icon = SUBSTRACT_ICON;\n caption = this.#componentLocale.objects.actions.delete;\n iconColor = \"--mer-icon__error\";\n } else if (actionTaken === \"Inserted\") {\n icon = ADD_ICON;\n caption = this.#componentLocale.objects.actions.insert;\n iconColor = \"--mer-icon__success\";\n } else {\n // modified\n icon = EDITED_ICON;\n caption = this.#componentLocale.objects.actions.modify;\n iconColor = \"--mer-icon__warning\";\n }\n\n return (\n <span class=\"custom-icon-text-wrapper\">\n <ch-image\n type=\"mask\"\n class=\"icon-md\"\n src={icon}\n style={{ backgroundColor: `var(${iconColor})` }}\n ></ch-image>\n {`${caption}`}\n </span>\n );\n };\n\n #renderCommitsNumbers = (onlyNumbers: boolean = false): string => {\n if (this.commitInformation?.length > 1) {\n // more than one commit\n return onlyNumbers\n ? `${this.commitInformation[0].id} ... ${\n this.commitInformation[this.commitInformation.length - 1].id\n }`\n : `${this.#commitLabel} ${this.commitInformation[0].id} ... ${\n this.commitInformation[this.commitInformation.length - 1].id\n }`;\n } else if (this.commitInformation?.length === 1) {\n // just one commit\n return onlyNumbers\n ? this.commitInformation[0].id\n : `${this.#commitLabel} ${this.commitInformation[0].id}`;\n } else {\n // Probably commits have not been loaded yet (loading state)\n return onlyNumbers\n ? `${this.#componentLocale.loading}`\n : `${this.#commitLabel} ${this.#componentLocale.loading}`;\n }\n };\n\n #renderFormatedDate = (date: Date): string => {\n const dateObject = new Date(date);\n const lang = navigator.languages?.[0] || navigator.language;\n\n return `${dateObject.toLocaleDateString(\n lang\n )} ${dateObject.toLocaleTimeString(lang, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false\n })}`;\n };\n\n #renderObjectStateWithIcon = (\n objectType: ObjectState,\n objectId: string\n ): JSX.Element[] => {\n if (objectType === \"merging\" || objectType === \"reverting\") {\n return (\n <span class=\"merging-spinner-caption\">\n {this.operationType === \"revert\"\n ? this.#componentLocale.states.reverting\n : this.#componentLocale.states.merging}\n </span>\n );\n }\n const classes = `pill pill--${objectType}`;\n if (\n this.revertPillAsButton &&\n (objectType === \"to-merge\" ||\n objectType === \"to-merge-marked\" ||\n objectType === \"to-revert\")\n ) {\n return (\n <button\n class={{ [classes]: true, \"button-secondary\": true }}\n onClick={this.#mergeSingleObject(objectId)}\n >\n {this.#componentLocale.statesForButton[objectType]}\n </button>\n );\n } else {\n return (\n <span class={classes}>{this.#componentLocale.states[objectType]}</span>\n );\n }\n };\n\n #renderObjectsRows = (): JSX.Element[] => {\n return this.objectsFiltered.map(commitObject => {\n const marked = this.markedObjectsSet.has(commitObject.id);\n\n const alreadyMerged = this.alreadyMergedObjectsIdsArray.find(\n checkedObjectId => checkedObjectId === commitObject.id\n );\n const errorOrWarningMessage = this.commitObjectsMessagesMap.get(\n commitObject.id\n );\n const state = this.objectsStatesMap.get(commitObject.id);\n\n let MESSAGE_ICON;\n if (state === \"error\") {\n MESSAGE_ICON = ERROR_ICON;\n } else if (state === \"warning\") {\n MESSAGE_ICON = WARNING_ICON;\n }\n\n return (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n key={commitObject.id}\n rowid={commitObject.id}\n ref={(el: HTMLElement) =>\n marked && el?.setAttribute(\"marked\", \"true\")\n }\n >\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector=\"true\"\n class={{\n \"tabular-grid-cell\": true,\n \"no-checkbox-custom-selector\": alreadyMerged\n }}\n size=\"max-content\"\n >\n {commitObject.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(commitObject.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {commitObject.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderActionCellContent(commitObject.actionTaken)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell--for-pill\">\n {this.#renderObjectStateWithIcon(\n this.objectsStatesMap.get(commitObject.id),\n commitObject.id\n )}\n </ch-tabular-grid-cell>\n {errorOrWarningMessage && (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty\n class={{ \"tabular-grid-rowset-empty\": true, [state]: true }}\n >\n <p class=\"warning-error-description\">\n <ch-image\n class=\"icon-md warning-error-icon\"\n src={MESSAGE_ICON}\n ></ch-image>\n {errorOrWarningMessage}\n </p>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid-row>\n );\n });\n };\n\n #rowContextMenuHandler = async (\n ev: CustomEvent<TabularGridRowContextMenuEvent>\n ) => {\n ev.preventDefault();\n const selectedRowsIds = await this.tabularGridEl.getSelectedRows();\n\n await this.contextMenuCallback({\n selection: selectedRowsIds,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n #rowMarkingChangedHandler = (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n const newobjectsMarkedSet = new Set<string>();\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n const markedRowsIds = event.detail.rowsId;\n const checkedObjectsIgnoringAlreadyMerged = markedRowsIds.filter(\n markedObjectId =>\n !this.alreadyMergedObjectsIdsArray.includes(markedObjectId)\n );\n this.#checkedObjectsIdsArray = [...checkedObjectsIgnoringAlreadyMerged];\n\n // Update markedObjectsSet\n this.#checkedObjectsIdsArray.forEach(checkedObjectId => {\n newobjectsMarkedSet.add(checkedObjectId);\n });\n this.markedObjectsSet = newobjectsMarkedSet;\n\n this.atLeastOneObjectIsChecked = markedRowsIds.length > 0;\n\n newobjectsStatesMap.forEach(objectId => {\n const objectCurrentState = this.objectsStatesMap.get(objectId);\n if (\n objectCurrentState !== \"to-merge\" &&\n objectCurrentState !== \"to-merge-marked\"\n ) {\n return;\n }\n\n const markedRowIndex = markedRowsIds.findIndex(id => id === objectId);\n if (markedRowIndex !== -1) {\n newobjectsStatesMap.set(objectId, \"to-merge-marked\");\n markedRowsIds.splice(markedRowIndex, 1);\n markedRowsIds;\n } else {\n newobjectsStatesMap.set(objectId, \"to-merge\");\n }\n });\n\n this.objectsStatesMap = newobjectsStatesMap;\n };\n\n #searchInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.searchValue = (event.detail as string).toLowerCase();\n this.#updateFilteredObjects();\n };\n\n #stateChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.stateFilterValue = event.detail as ObjectStateForFilter;\n this.#updateFilteredObjects();\n };\n\n #updateFilteredObjects = () => {\n let filteredObjects = [...this.commitObjects];\n\n // filter by state (ch-combo-box-render) ...\n if (this.stateFilterValue !== \"all\") {\n filteredObjects = filteredObjects.filter(object => {\n const objectState = this.objectsStatesMap.get(object.id);\n return objectState === this.stateFilterValue;\n });\n }\n\n // and filter by value (ch-edit) as well\n filteredObjects = filteredObjects.filter(object => {\n const includesName = object.name.toLowerCase().includes(this.searchValue);\n\n const includesType = object.type.name\n .toLowerCase()\n .includes(this.searchValue);\n\n const includesDescription = object.description\n .toLowerCase()\n .includes(this.searchValue);\n\n if (includesName || includesType || includesDescription) {\n return true;\n }\n return false;\n });\n\n this.objectsFiltered = filteredObjects;\n };\n\n /**\n * It allows the host updating an object state, by providing the object id.\n * @param objectId The ID of the object to update.\n * @param newState The new state to set on the object.\n * @param message Optional message explaining the change.\n *\n * @example\n * bringChanges.updateObjectState('obj-24', \"merging\", null);\n * bringChanges.updateObjectState('obj-27', \"error\", \"The server did not respond.\");\n */\n @Method()\n async updateObjectState(\n objectId: string,\n newState: ObjectState,\n message: string\n ) {\n // update object state\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n newobjectsStatesMap.set(objectId, newState);\n this.objectsStatesMap = newobjectsStatesMap;\n\n // add message if state is \"warning\" or \"error\"\n if (message?.length > 0) {\n this.commitObjectsMessagesMap.set(objectId, message);\n }\n\n if (newState === \"merged\" || newState === \"reverted\") {\n // remove from checked\n this.#checkedObjectsIdsArray = this.#checkedObjectsIdsArray.filter(\n checkedObject => checkedObject !== objectId\n );\n\n // add to \"already merged\". This will hide the checkbox\n this.alreadyMergedObjectsIdsArray.push(objectId);\n\n // unmark checkbox:\n this.tabularGridEl.markRow(objectId, false);\n\n // remove message if any\n this.commitObjectsMessagesMap.delete(objectId);\n }\n }\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n const columnId = e.detail.columnId;\n\n let objectProperty;\n let dateType: SortTabularGridColumnDataType = \"string\";\n if (columnId === COLUMNS_IDS.type) {\n objectProperty = \"name\"; // the type name\n dateType = \"object\";\n }\n\n this.objectsFiltered = [\n ...sortTabularGridColumn(\n e,\n this.objectsFiltered,\n dateType,\n objectProperty\n )\n ];\n };\n\n render() {\n const enableRichRowSelector =\n this.alreadyMergedObjectsIdsArray.length !== this.commitObjects.length;\n\n const disableControls = this.merging || this.loading;\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class=\"header spacing-body-inline spacing-body-block-start\">\n <div\n // header details\n class=\"header__detail\"\n >\n <p class=\"detail__title subtitle-semi-bold-xs\">\n {this.operationType === \"revert\"\n ? this.#componentLocale.commitDetail.revertChangesDetail\n : this.#componentLocale.commitDetail.bringChangesDetail}\n </p>\n <p class=\"detail__commit-name subtitle-semi-bold-s\">\n {this.#renderCommitsNumbers()}\n </p>\n <div\n // genexus server\n class=\"detail__genexus-server field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.genexusServer}\n </span>\n <a\n class=\"detail__link body-regular-s\"\n href={this.commitDetail.genexusServer}\n target=\"_blank\"\n >\n {this.commitDetail.genexusServer}\n </a>\n </div>\n\n <div\n // knowledge base\n class=\"detail__knowledge-base field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.knowledgeBase}\n </span>\n <p class=\"body-regular-s\">{this.commitDetail.knowledgeBase}</p>\n </div>\n\n <div\n // current version\n class=\"detail__current-version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.currentVersion}\n </span>\n <a class=\"body-regular-s\">{this.commitDetail.currentVersion}</a>\n </div>\n {this.operationType === \"merge\" && (\n <div\n // merge from version\n class=\"detail__merge-from-version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.mergeFromVersion}\n </span>\n <p class=\"body-regular-s\">\n {this.commitDetail.mergeFromVersion}\n </p>\n </div>\n )}\n </div>\n <div\n // header information\n class=\"header__information\"\n >\n <p class=\"information__title subtitle-semi-bold-xs\">\n {this.#componentLocale.commitInformation.title}\n </p>\n <div\n // header information (col-1)\n class=\"information__col-1\"\n >\n <div\n // IDs\n class=\"field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.commitInformation.length === 1\n ? this.#componentLocale.commitInformation.id\n : this.#componentLocale.commitInformation.ids}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderCommitsNumbers(true)}\n </p>\n </div>\n {this.commitInformation.length === 1 ? (\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.date}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(this.commitInformation[0].date)}\n </p>\n </div>\n ) : (\n [\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.from}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(\n this.commitInformation[0].date\n )}\n </p>\n </div>,\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.to}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(\n this.commitInformation[\n this.commitInformation.length - 1\n ].date\n )}\n </p>\n </div>\n ]\n )}\n </div>\n\n <div\n // header information (col-2)\n class=\"information__col-2\"\n >\n <div\n // To\n class=\"field field-block\"\n >\n <label class={DETAIL_LABEL_CLASSES} htmlFor=\"commit-comments\">\n {this.commitInformation.length > 1\n ? this.#componentLocale.commitInformation.comments\n : this.#componentLocale.commitInformation.comment}\n </label>\n <div class=\"input-comments-container\">\n <ch-edit\n id=\"commit-comments\"\n class=\"input scrollable input-comments body-regular-s\"\n type=\"text\"\n multiline\n readonly\n value={this.#formatComments()}\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </header>\n <div\n class={{\n \"controls-container\": true,\n \"filter\": !this.hideFilters,\n \"spacing-body-inline\": true\n }}\n >\n {!this.hideFilters && [\n <ch-edit\n class=\"input\"\n disabled={disableControls}\n startImgSrc={SEARCH_ICON}\n placeholder={this.#componentLocale.filter.searchPlaceholder}\n type=\"search\"\n onInput={this.#searchInputHandler}\n ></ch-edit>,\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={disableControls}\n model={this.#comboBoxStatesModel}\n value={this.stateFilterValue}\n onInput={this.#stateChangedHandler}\n placeholder={this.#componentLocale.filter.statePlaceholder}\n ></ch-combo-box-render>\n ]}\n\n <button\n class=\"button-primary button-merge-checked\"\n disabled={!this.atLeastOneObjectIsChecked || disableControls}\n onClick={this.#mergeCheckedClickedHandler}\n >\n {this.operationType === \"revert\"\n ? this.#componentLocale.filter.revertSelected\n : this.#componentLocale.filter.mergeSelected}\n </button>\n </div>\n <div class=\"main spacing-body\">\n {this.commitObjects.length ? (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"objects-tabular-grid\": true,\n \"disabled-custom-selector\": this.merging,\n \"empty-result\": this.objectsFiltered.length === 0\n }}\n keyboardNavigationMode=\"focus\"\n rowSelectionMode=\"multiple\"\n onRowMarkingChanged={this.#rowMarkingChangedHandler}\n onRowContextMenu={this.#rowContextMenuHandler}\n ref={(el: HTMLChTabularGridElement) =>\n (this.tabularGridEl = el as HTMLChTabularGridElement)\n }\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.name}\n columnName={this.#componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={enableRichRowSelector}\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.type}\n columnName={this.#componentLocale.objects.type}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.description}\n columnName={this.#componentLocale.objects.description}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size={config.tabularGrid.colSize.description}\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.action}\n columnName={this.#componentLocale.objects.action}\n settingable={false}\n sortable={false}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n // size of this column should the enough for the largest pill, and no more.\n // this prevents layout shifts when pills state changes.\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.status}\n columnName={this.#componentLocale.objects.status}\n settingable={false}\n sortable={false}\n size=\"100px\"\n />\n </ch-tabular-grid-columnset>\n {this.#renderObjectsRows()}\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objectsFiltered.length === 0 && (\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n class=\"empty-state\"\n isAnimated\n stateIconSrc={FILTER_ICON}\n stateTitle=\"No object matched your filter\"\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n )}\n </ch-tabular-grid-rowset>\n </ch-tabular-grid>\n ) : (\n <gx-ide-loader\n cancelLabel={this.#componentLocale.loader.cancelLabel}\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n class=\"loader\"\n ></gx-ide-loader>\n )}\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type OperationType = \"merge\" | \"revert\";\n\nexport type CommitDetail = {\n genexusServer: string;\n knowledgeBase: string;\n currentVersion: string;\n mergeFromVersion: string;\n};\n\nexport type CommitInformation = {\n id: string;\n comment: string;\n date: Date;\n};\n\nexport type CommitObject = {\n id: string;\n date: Date;\n name: string;\n type: ObjectType;\n description: string;\n actionTaken: ObjectActionTaken;\n};\n\nexport type ObjectActionTaken =\n | \"Inserted\"\n | \"Deleted\"\n | \"Modified\"\n | \"Unchanged\"\n | \"Unknown\";\n\nexport type ObjectState =\n | \"to-merge\"\n | \"to-merge-marked\"\n | \"to-revert\"\n | \"merging\"\n | \"pending\"\n | \"warning\"\n | \"error\"\n | \"merged\"\n | \"reverted\"\n | \"reverting\";\n\ntype ObjectStateForFilter =\n | Extract<\n ObjectState,\n \"to-merge\" | \"to-revert\" | \"warning\" | \"error\" | \"merged\" | \"reverted\"\n >\n | \"all\";\n\nexport type MergeObjectsCallback = (objectsIds: string[]) => Promise<void>;\n"],"version":3}
1
+ {"file":"gx-ide-team-dev-bring-changes.entry.js","mappings":"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","names":[],"sources":["src/components/team-dev/bring-changes/bring-changes.scss?tag=gx-ide-team-dev-bring-changes&encapsulation=shadow","src/components/team-dev/bring-changes/bring-changes.tsx"],"sourcesContent":["@import \"../common/styles.scss\";\n@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n --pill-border-radius: 12px;\n --pill-padding-inline: 8px;\n --pill-padding-block: 2px;\n --pill-font-size: var(--font-size-body-s);\n\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content max-content 1fr;\n}\n$header-item-common-inline-padding: 24px;\n$header-item-common-separator-border: 1px solid\n var(--mer-border-color__on-elevation--01);\n\n%header-item-common-inline-sizes {\n max-inline-size: 250px;\n min-inline-size: 180px;\n}\n%header-item-common {\n padding-inline: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n @extend %header-item-common-inline-sizes;\n}\n%header-item-common-start {\n padding-inline-end: $header-item-common-inline-padding;\n border-inline-end: $header-item-common-separator-border;\n}\n%header-item-common-end {\n padding-inline-start: $header-item-common-inline-padding;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n display: grid;\n gap: 24px;\n}\n\n// header detail\n.header__detail {\n display: grid;\n grid-template-areas:\n \"detail-title detail-title detail-title detail-title\"\n // \"detail-commit-name detail-commit-name detail-commit-name detail-commit-name\"\n \"detail-genexus-server detail-knowledge-base detail-current-version detail-merge-from-version\";\n row-gap: 16px;\n grid-auto-columns: max-content;\n // grid-template-columns: max-content auto auto auto;\n // grid-template-columns: minmax(250px, 350px) repeat(3, minmax(180px, 250px));\n}\n.detail__label {\n color: var(--mer-color__neutral-gray--400);\n}\n.detail__title {\n grid-area: detail-title;\n}\n.detail__commit-name {\n grid-area: detail-commit-name;\n}\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n @extend %header-item-common-start;\n\n > a {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n }\n}\n.detail__link {\n align-items: start;\n color: var(--mer-text__primary);\n text-decoration: underline;\n &:hover {\n color: var(--mer-text__primary--hover);\n }\n &:active {\n color: var(--mer-text__primary--active);\n }\n}\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n @extend %header-item-common;\n}\n.detail__current-version {\n grid-area: detail-current-version;\n @extend %header-item-common;\n}\n.detail__merge-from-version {\n grid-area: detail-merge-from-version;\n @extend %header-item-common-end;\n}\n\n// header information\n.header__information {\n display: grid;\n row-gap: 10px;\n grid-template-areas:\n \"information-title information-title\"\n \"information-col-1 information-col-2\";\n grid-template-columns: max-content 1fr;\n grid-template-rows: max-content max-content;\n}\n.information__title {\n grid-area: information-title;\n}\n.information__col-1 {\n grid-area: information-col-1;\n display: flex;\n gap: 24px;\n}\n.information__col-1.divider {\n @extend %header-item-common-start;\n}\n\n//header comments\n.header__comments .layout__panel {\n justify-items: start;\n text-align: left;\n}\n\n// filter / controls-container\n.controls-container {\n display: grid;\n}\n\n.controls-container.margin-block-start {\n margin-block-start: 24px;\n}\n.filter {\n grid-template-columns: 232px 186px 1fr;\n gap: 12px;\n}\n.button-merge-checked {\n margin-inline-start: auto;\n}\n\n// main\n.main {\n position: relative;\n display: grid;\n overflow: auto;\n}\n.loader {\n position: relative;\n inline-size: 100%;\n block-size: 100%;\n inset-block-start: 0;\n}\n.tabular-grid {\n border-radius: 4px;\n overflow: hidden;\n}\n\n.empty-state {\n block-size: 100%;\n}\n.loader {\n --elevation-background-color: var(--mer-surface__elevation--01);\n}\n\n.tabular-grid.empty-result::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\n.comments-container {\n @include ellipsis;\n}\n\n.button-tertiary.edit-range-button {\n padding-block: 0;\n align-content: flex-end;\n}\n\n// - - - - - - - - - - - - - -\n// WA (WORK AROUNDS)\n// - - - - - - - - - - - - - -\n\n.input-comments-container {\n position: relative;\n}\n// ch-edit for comments WA's\n// Figma design for this component displays the textarea witout border, and with a little more line-height.\n// The following styles are a temporary WA that should be brouhgt to Mercury DS.\n.input-comments {\n --control__border-color: transparent;\n padding-block: 0 !important;\n padding-inline: 0 !important;\n --line-height-tight: 1.4;\n block-size: 100%;\n background-color: var(--mer-surface);\n transition:\n var(--mer-timing--super-fast) block-size,\n var(--mer-timing--super-fast) background-color,\n var(--mer-timing--super-fast) padding-block,\n var(--mer-timing--super-fast) padding-inline;\n}\n.input-comments:focus {\n position: absolute;\n block-size: 200px;\n inline-size: 100%;\n z-index: 99;\n background-color: var(--mer-surface__elevation--01);\n padding-block: var(--control__padding-block) !important;\n padding-inline: var(--control__padding-inline) !important;\n}\n\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n background-size: contain; //force icon fit container\n margin-inline-end: 0;\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--enabled);\n cursor: pointer;\n &:hover {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--hover);\n }\n &:active {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--active);\n }\n}\n\n.tabular-grid-row-actions::part(main),\n.property-grid-row-actions::part(main) {\n // gap not required since buttons are tertiary.\n // extra space perceived.\n gap: 0 !important;\n}\n\n.tabular-grid-row-actions {\n // Butons are center by default, but design dictates start alignemnt\n > button {\n justify-content: start;\n }\n}\n\n// These static type of pills do not exist on Mercury yet.\n// They should be defined on Mercury. The actual pills on Mercury\n// are combo-boxes. Not what we need for this case.\n\n.pill {\n --pill-background-color: transparent;\n --pill-color: transparent;\n --pill-border-color: transparent;\n\n background-color: var(--pill-background-color);\n color: var(--pill-color);\n border: 1px solid var(--pill-border-color);\n inline-size: 100%;\n padding: var(--pill-padding-block) var(--pill-padding-inline);\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--pill-border-radius);\n position: relative;\n font-weight: var(--font-weight-semi-bold);\n\n &--to-merge,\n &--to-revert {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--to-merge-marked {\n --pill-background-color: var();\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var();\n }\n &--pending {\n --pill-background-color: var(--mer-color__tinted-primary--8);\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var(--mer-color__tinted-primary--50);\n }\n &--warning {\n --pill-background-color: var(--mer-color__tinted-yellow--5);\n --pill-color: var(--mer-border-color__warning);\n --pill-border-color: var(--mer-color__tinted-yellow--60);\n }\n &--error {\n --pill-background-color: var(--mer-color__tinted-red--5);\n --pill-color: var(--mer-border-color__error);\n --pill-border-color: var(--mer-color__tinted-red--60);\n }\n &--merged,\n &--reverted {\n --pill-background-color: var(--mer-color__tinted-green--5);\n --pill-color: var(--mer-border-color__success);\n --pill-border-color: var(--mer-color__tinted-green--60);\n }\n &--transitioning {\n // used to hide the text, before updating the caption (smooth transtion)\n --pill-color: transparent;\n }\n}\n.merging-spinner-caption {\n display: flex;\n align-items: center;\n gap: 6px;\n $size: 14px;\n --status-circle-color: transparent;\n --status-circle-size: $size;\n --status-circle-inset-inline-start: 14px;\n --pill-color: var(--mer-border-color__primary);\n &::before {\n display: inline-block;\n content: \"\";\n\n @include spinner(\n $size,\n var(--mer-color__primary--300),\n var(--mer-color__tinted-primary--50)\n );\n }\n}\n.tabular-grid .button-secondary {\n --control__padding-block: var(--pill-padding-block);\n --control__padding-inline: var(--pill-padding-inline);\n font-size: inherit;\n font-weight: inherit;\n /* font-size: var(--pill-font-size); */\n}\n\n.tabular-grid .tabular-grid-cell--for-pill {\n --grid-cell__padding-block: 4px;\n align-items: center;\n justify-content: center;\n\n // --grid-cell__padding-inline: 0;\n}\n\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(selector-label),\n.tabular-grid.disabled-custom-selector .tabular-grid-column::part(bar-selector),\n.tabular-grid.disabled-custom-selector .tabular-grid-cell::part(actions-icon) {\n pointer-events: none;\n opacity: 0.5;\n}\n.tabular-grid-column--settings-custom-selector,\n.tabular-grid-cell--settings-custom-selector {\n --grid-cell__padding-inline: 0;\n --grid-cell__padding-block: 0;\n}\n.tabular-grid-cell::part(actions-icon) {\n padding-block: 6px;\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon) {\n block-size: 100%;\n display: block;\n background-size: 14px;\n padding-inline: 16px;\n}\n\n.tabular-grid-cell.no-checkbox-custom-selector::part(selector-label) {\n visibility: hidden;\n}\n\n.tabular-grid-row-actions::part(window) {\n background-color: var(--mer-surface__elevation--02) !important;\n}\n\n.tabular-grid-row .tabular-grid-cell:nth-child(3) {\n min-inline-size: 400px;\n}\n\n// - - - - - - - - - - - - - -\n// END OF WA\n// - - - - - - - - - - - - - -\n","import {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n Method,\n JSX,\n Watch\n} from \"@stencil/core\";\n\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\nimport { Locale } from \"../../../common/locale\";\nimport {\n ChEditCustomEvent,\n TabularGridMarkingChangedEvent,\n TabularGridColumnSortChangedEvent,\n TabularGridRowContextMenuEvent\n} from \"@genexus/chameleon-controls-library\";\nimport { ObjectType } from \"../../../components\";\n\nimport { config } from \"../../../common/config\";\n\nimport { ContextMenuCallback } from \"../../../components\";\n\nimport { renderObjectTypeWithIcon } from \"../common/utilities\";\n\nimport { COLUMNS_IDS } from \"../version-control/common/tabular-grid-render\";\nimport sortTabularGridColumn, {\n type SortTabularGridColumnDataType\n} from \"../../../common/chameleon/tabular-grid-column-sort\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"components/tabular-grid\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/typography\",\n \"utils/spacing\",\n \"chameleon/scrollbar\",\n \"components/tooltip\"\n];\n\nconst COMBO_BOX_ALL_VALUE = \"all\";\n\nconst DETAIL_LABEL_CLASSES = \"detail__label body-semi-bold-s\";\n\nconst ADD_ICON = getIconPath({\n category: \"system\",\n name: \"add\",\n colorType: \"on-elevation\"\n});\nconst EDITED_ICON = getIconPath({\n category: \"system\",\n name: \"edit\",\n colorType: \"on-elevation\"\n});\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-elevation\"\n});\nconst SEARCH_ICON = getIconPath({\n category: \"system\",\n name: \"search\",\n colorType: \"on-elevation\"\n});\nconst SUBSTRACT_ICON = getIconPath({\n category: \"system\",\n name: \"substract\",\n colorType: \"on-elevation\"\n});\nconst WARNING_ICON = getIconPath({\n category: \"system\",\n name: \"warning\",\n colorType: \"warning\"\n});\nconst ERROR_ICON = getIconPath({\n category: \"system\",\n name: \"error\",\n colorType: \"error\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-bring-changes\",\n styleUrl: \"bring-changes.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-bring-changes\"]\n})\nexport class GxIdeTeamDevBringChanges {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n #commitLabel: string;\n #comboBoxStatesModel: { caption: string; value: ObjectStateForFilter }[];\n #checkedObjectsIdsArray: string[] = [];\n\n @Element() el: HTMLGxIdeTeamDevBringChangesElement;\n\n private tabularGridEl!: HTMLChTabularGridElement;\n\n /**\n * An array that holds the id's of the objects that have been merged already.\n */\n @State() alreadyMergedObjectsIdsArray: string[] = [];\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() atLeastOneObjectIsChecked: boolean = false;\n\n /**\n * True while commitObjects hasn't been loaded or is empty. Used to display a loader.\n */\n @State() loading: boolean = true;\n\n /**\n * It hols a boolean indicating if at least one object from the tabular-grid is checked, for merging.\n */\n @State() objectsFiltered: CommitObject[] = [];\n\n /**\n * The current search filter value\n */\n @State() searchValue: string = \"\";\n\n /**\n * The current state filter value\n */\n @State() stateFilterValue: ObjectStateForFilter = COMBO_BOX_ALL_VALUE;\n\n /**\n * A set that stores the marked state of each object cell. This is necessary because filtering the grid * causes marked cells to lose their state.\n */\n @State() markedObjectsSet: Set<string> = new Set<string>();\n\n /**\n * A map that holds the current commit objects states (\"pending\" | \"warning\" | \"error\" | \"merged\" | \"reverted\")\n */\n @State() objectsStatesMap: Map<string, ObjectState> = new Map();\n @Watch(\"objectsStatesMap\")\n objectsStatesMapChanged(newCommitObjectsStateMap: Map<string, ObjectState>) {\n const someObjectIsMerging = [...newCommitObjectsStateMap.entries()].find(\n ([, state]) => state === \"merging\" || state === \"reverting\"\n );\n\n if (!someObjectIsMerging) {\n this.merging = false;\n }\n }\n\n /**\n * A map that holds object messages, if any, for objects that could not be merged (these objects are in a \"warning\" or \"error\" state)\n */\n @State() commitObjectsMessagesMap: Map<string, string> = new Map();\n\n /**\n * Set to true when objects are being mered. This helps disabling controls until all objects are done.\n */\n @State() merging: boolean = false;\n\n /**\n * Detail about the commit\n */\n @Prop() readonly commitDetail: CommitDetail;\n\n /**\n * Commit information\n */\n @Prop() readonly commitInformation: CommitInformation[] = [];\n\n /**\n * Array of commit\n */\n @Prop() readonly commitObjects: CommitObject[] = [];\n @Watch(\"commitObjects\")\n commitObjectsChanged(newCommitObjects: CommitObject[]) {\n this.loading = true;\n if (newCommitObjects.length) {\n // This is the first and only objects asignment\n this.loading = false;\n\n // All commit objects begin as \"pending to merge\"\n newCommitObjects.forEach(commitObject => {\n this.objectsStatesMap.set(\n commitObject.id,\n this.operationType === \"revert\" ? \"to-revert\" : \"to-merge\"\n );\n });\n\n this.objectsFiltered = this.commitObjects;\n }\n }\n\n /**\n * Determines whether the filters are rendered or not.\n */\n @Prop() readonly hideFilters: boolean = false;\n\n /**\n * The type of operation to perform: \"merge\" or \"revert\".\n */\n @Prop() readonly operationType: OperationType = \"merge\";\n\n /**\n * The callback that is triggered when the user wants to merge more than one commit.\n */\n @Prop() readonly mergeObjectsCallback!: MergeObjectsCallback;\n\n /**\n * If true, the \"Action\" column will display a button instead of a pill, only when the action is\n */\n @Prop() readonly revertPillAsButton: boolean = false;\n\n /**\n * Invoked when user activates the context menu on th grid.\n */\n @Prop() readonly contextMenuCallback!: ContextMenuCallback;\n\n /**\n * Callback to be executed when the user wants to view all comments.\n */\n @Prop() readonly viewAllCommentsCallback!: () => Promise<void>;\n\n /**\n * Callback to be executed when the user wants to edit the range.\n */\n @Prop() readonly editRangeCallback!: () => Promise<void>;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n this.#commitLabel =\n this.commitInformation.length > 1\n ? this.#componentLocale.commmits\n : this.#componentLocale.commmit;\n\n // Initiate \"states\" combo box filter\n this.#comboBoxStatesModel = [\n {\n caption: this.#componentLocale.states.all,\n value: COMBO_BOX_ALL_VALUE\n },\n {\n caption:\n this.operationType === \"revert\"\n ? this.#componentLocale.states[\"to-revert\"]\n : this.#componentLocale.states[\"to-merge\"],\n value: this.operationType === \"revert\" ? \"to-revert\" : \"to-merge\"\n },\n {\n caption: this.#componentLocale.states.warning,\n value: \"warning\"\n },\n {\n caption: this.#componentLocale.states.error,\n value: \"error\"\n },\n {\n caption:\n this.operationType === \"revert\"\n ? this.#componentLocale.states.reverted\n : this.#componentLocale.states.merged,\n value: this.operationType === \"revert\" ? \"reverted\" : \"merged\"\n }\n ];\n\n if (this.commitObjects?.length) {\n // if commitObjects already set...\n this.commitObjectsChanged(this.commitObjects);\n }\n }\n\n #formatComments = (): JSX.Element => {\n if (this.commitInformation.length === 1) {\n return <span>{this.commitInformation[0].comment}</span>;\n }\n const firstComment =\n this.commitInformation[this.commitInformation.length - 1].comment;\n return <span>{`${this.#componentLocale.latest}: ${firstComment}...`}</span>;\n };\n\n #mergeCheckedClickedHandler = async () => {\n this.merging = true;\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n this.#checkedObjectsIdsArray.forEach(checkedObjectId => {\n newobjectsStatesMap.set(\n checkedObjectId,\n this.operationType === \"revert\" ? \"reverting\" : \"merging\"\n );\n });\n\n this.objectsStatesMap = newobjectsStatesMap;\n await this.mergeObjectsCallback(this.#checkedObjectsIdsArray);\n };\n\n #mergeSingleObject: (objectId: string) => () => void =\n objectId => async () => {\n this.merging = true;\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n newobjectsStatesMap.set(\n objectId,\n this.operationType === \"revert\" ? \"reverting\" : \"merging\"\n );\n this.objectsStatesMap = newobjectsStatesMap;\n await this.mergeObjectsCallback([objectId]);\n };\n\n #renderActionCellContent = (\n actionTaken: ObjectActionTaken\n ): JSX.Element[] => {\n let icon: string;\n let caption: string;\n let iconColor: string;\n\n if (actionTaken === \"Deleted\") {\n icon = SUBSTRACT_ICON;\n caption = this.#componentLocale.objects.actions.delete;\n iconColor = \"--mer-icon__error\";\n } else if (actionTaken === \"Inserted\") {\n icon = ADD_ICON;\n caption = this.#componentLocale.objects.actions.insert;\n iconColor = \"--mer-icon__success\";\n } else {\n // modified\n icon = EDITED_ICON;\n caption = this.#componentLocale.objects.actions.modify;\n iconColor = \"--mer-icon__warning\";\n }\n\n return (\n <span class=\"custom-icon-text-wrapper\">\n <ch-image\n type=\"mask\"\n class=\"icon-md\"\n src={icon}\n style={{ backgroundColor: `var(${iconColor})` }}\n ></ch-image>\n {`${caption}`}\n </span>\n );\n };\n\n #renderCommitsNumbers = (onlyNumbers: boolean = false): string => {\n if (this.commitInformation?.length > 1) {\n // more than one commit\n return onlyNumbers\n ? `${this.commitInformation[0].id} ... ${\n this.commitInformation[this.commitInformation.length - 1].id\n }`\n : `${this.#commitLabel} ${this.commitInformation[0].id} ... ${\n this.commitInformation[this.commitInformation.length - 1].id\n }`;\n } else if (this.commitInformation?.length === 1) {\n // just one commit\n return onlyNumbers\n ? this.commitInformation[0].id\n : `${this.#commitLabel} ${this.commitInformation[0].id}`;\n } else {\n // Probably commits have not been loaded yet (loading state)\n return onlyNumbers\n ? `${this.#componentLocale.loading}`\n : `${this.#commitLabel} ${this.#componentLocale.loading}`;\n }\n };\n\n #renderFormatedDate = (date: Date): string => {\n const dateObject = new Date(date);\n const lang = navigator.languages?.[0] || navigator.language;\n\n return `${dateObject.toLocaleDateString(\n lang\n )} ${dateObject.toLocaleTimeString(lang, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n hour12: false\n })}`;\n };\n\n #renderObjectStateWithIcon = (\n objectType: ObjectState,\n objectId: string\n ): JSX.Element[] => {\n if (objectType === \"merging\" || objectType === \"reverting\") {\n return (\n <span class=\"merging-spinner-caption\">\n {this.operationType === \"revert\"\n ? this.#componentLocale.states.reverting\n : this.#componentLocale.states.merging}\n </span>\n );\n }\n const classes = `pill pill--${objectType}`;\n if (\n this.revertPillAsButton &&\n (objectType === \"to-merge\" ||\n objectType === \"to-merge-marked\" ||\n objectType === \"to-revert\")\n ) {\n return (\n <button\n class={{ [classes]: true, \"button-secondary\": true }}\n onClick={this.#mergeSingleObject(objectId)}\n >\n {this.#componentLocale.statesForButton[objectType]}\n </button>\n );\n } else {\n return (\n <span class={classes}>{this.#componentLocale.states[objectType]}</span>\n );\n }\n };\n\n #renderObjectsRows = (): JSX.Element[] => {\n return this.objectsFiltered.map(commitObject => {\n const marked = this.markedObjectsSet.has(commitObject.id);\n\n const alreadyMerged = this.alreadyMergedObjectsIdsArray.find(\n checkedObjectId => checkedObjectId === commitObject.id\n );\n const errorOrWarningMessage = this.commitObjectsMessagesMap.get(\n commitObject.id\n );\n const state = this.objectsStatesMap.get(commitObject.id);\n\n let MESSAGE_ICON;\n if (state === \"error\") {\n MESSAGE_ICON = ERROR_ICON;\n } else if (state === \"warning\") {\n MESSAGE_ICON = WARNING_ICON;\n }\n\n return (\n <ch-tabular-grid-row\n class=\"tabular-grid-row\"\n key={commitObject.id}\n rowid={commitObject.id}\n ref={(el: HTMLElement) =>\n marked && el?.setAttribute(\"marked\", \"true\")\n }\n >\n <ch-tabular-grid-cell\n cell-type=\"rich\"\n row-selector=\"true\"\n class={{\n \"tabular-grid-cell\": true,\n \"no-checkbox-custom-selector\": alreadyMerged\n }}\n size=\"max-content\"\n >\n {commitObject.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(commitObject.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {commitObject.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {this.#renderActionCellContent(commitObject.actionTaken)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell tabular-grid-cell--for-pill\">\n {this.#renderObjectStateWithIcon(\n this.objectsStatesMap.get(commitObject.id),\n commitObject.id\n )}\n </ch-tabular-grid-cell>\n {errorOrWarningMessage && (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty\n class={{ \"tabular-grid-rowset-empty\": true, [state]: true }}\n >\n <p class=\"warning-error-description\">\n <ch-image\n class=\"icon-md warning-error-icon\"\n src={MESSAGE_ICON}\n ></ch-image>\n {errorOrWarningMessage}\n </p>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n </ch-tabular-grid-row>\n );\n });\n };\n\n #rowContextMenuHandler = async (\n ev: CustomEvent<TabularGridRowContextMenuEvent>\n ) => {\n ev.preventDefault();\n const selectedRowsIds = await this.tabularGridEl.getSelectedRows();\n\n await this.contextMenuCallback({\n selection: selectedRowsIds,\n clientX: ev.detail.clientX,\n clientY: ev.detail.clientY\n });\n };\n\n #rowMarkingChangedHandler = (\n event: CustomEvent<TabularGridMarkingChangedEvent>\n ) => {\n const newobjectsMarkedSet = new Set<string>();\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n const markedRowsIds = event.detail.rowsId;\n const checkedObjectsIgnoringAlreadyMerged = markedRowsIds.filter(\n markedObjectId =>\n !this.alreadyMergedObjectsIdsArray.includes(markedObjectId)\n );\n this.#checkedObjectsIdsArray = [...checkedObjectsIgnoringAlreadyMerged];\n\n // Update markedObjectsSet\n this.#checkedObjectsIdsArray.forEach(checkedObjectId => {\n newobjectsMarkedSet.add(checkedObjectId);\n });\n this.markedObjectsSet = newobjectsMarkedSet;\n\n this.atLeastOneObjectIsChecked = markedRowsIds.length > 0;\n\n newobjectsStatesMap.forEach(objectId => {\n const objectCurrentState = this.objectsStatesMap.get(objectId);\n if (\n objectCurrentState !== \"to-merge\" &&\n objectCurrentState !== \"to-merge-marked\"\n ) {\n return;\n }\n\n const markedRowIndex = markedRowsIds.findIndex(id => id === objectId);\n if (markedRowIndex !== -1) {\n newobjectsStatesMap.set(objectId, \"to-merge-marked\");\n markedRowsIds.splice(markedRowIndex, 1);\n markedRowsIds;\n } else {\n newobjectsStatesMap.set(objectId, \"to-merge\");\n }\n });\n\n this.objectsStatesMap = newobjectsStatesMap;\n };\n\n #searchInputHandler = (event: ChEditCustomEvent<string> | InputEvent) => {\n this.searchValue = (event.detail as string).toLowerCase();\n this.#updateFilteredObjects();\n };\n\n #stateChangedHandler = (event: CustomEvent<string> | InputEvent) => {\n this.stateFilterValue = event.detail as ObjectStateForFilter;\n this.#updateFilteredObjects();\n };\n\n #updateFilteredObjects = () => {\n let filteredObjects = [...this.commitObjects];\n\n // filter by state (ch-combo-box-render) ...\n if (this.stateFilterValue !== \"all\") {\n filteredObjects = filteredObjects.filter(object => {\n const objectState = this.objectsStatesMap.get(object.id);\n return objectState === this.stateFilterValue;\n });\n }\n\n // and filter by value (ch-edit) as well\n filteredObjects = filteredObjects.filter(object => {\n const includesName = object.name.toLowerCase().includes(this.searchValue);\n\n const includesType = object.type.name\n .toLowerCase()\n .includes(this.searchValue);\n\n const includesDescription = object.description\n .toLowerCase()\n .includes(this.searchValue);\n\n if (includesName || includesType || includesDescription) {\n return true;\n }\n return false;\n });\n\n this.objectsFiltered = filteredObjects;\n };\n\n /**\n * It allows the host updating an object state, by providing the object id.\n * @param objectId The ID of the object to update.\n * @param newState The new state to set on the object.\n * @param message Optional message explaining the change.\n *\n * @example\n * bringChanges.updateObjectState('obj-24', \"merging\", null);\n * bringChanges.updateObjectState('obj-27', \"error\", \"The server did not respond.\");\n */\n @Method()\n async updateObjectState(\n objectId: string,\n newState: ObjectState,\n message: string\n ) {\n // update object state\n const newobjectsStatesMap = new Map(this.objectsStatesMap);\n newobjectsStatesMap.set(objectId, newState);\n this.objectsStatesMap = newobjectsStatesMap;\n\n // add message if state is \"warning\" or \"error\"\n if (message?.length > 0) {\n this.commitObjectsMessagesMap.set(objectId, message);\n }\n\n if (newState === \"merged\" || newState === \"reverted\") {\n // remove from checked\n this.#checkedObjectsIdsArray = this.#checkedObjectsIdsArray.filter(\n checkedObject => checkedObject !== objectId\n );\n\n // add to \"already merged\". This will hide the checkbox\n this.alreadyMergedObjectsIdsArray.push(objectId);\n\n // unmark checkbox:\n this.tabularGridEl.markRow(objectId, false);\n\n // remove message if any\n this.commitObjectsMessagesMap.delete(objectId);\n }\n }\n\n #sortTabularGridColumnCallback = (\n e: CustomEvent<TabularGridColumnSortChangedEvent>\n ) => {\n const columnId = e.detail.columnId;\n\n let objectProperty;\n let dateType: SortTabularGridColumnDataType = \"string\";\n if (columnId === COLUMNS_IDS.type) {\n objectProperty = \"name\"; // the type name\n dateType = \"object\";\n }\n\n this.objectsFiltered = [\n ...sortTabularGridColumn(\n e,\n this.objectsFiltered,\n dateType,\n objectProperty\n )\n ];\n };\n\n #viewAllCommentsHandler = async () => {\n await this.viewAllCommentsCallback();\n };\n\n #editRangeHandler = async () => {\n await this.editRangeCallback();\n };\n\n render() {\n const enableRichRowSelector =\n this.alreadyMergedObjectsIdsArray.length !== this.commitObjects.length;\n\n const disableControls = this.merging || this.loading;\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n <header class=\"header spacing-body\">\n <div\n // header details\n class=\"header__detail\"\n >\n <p class=\"detail__title subtitle-semi-bold-s\">\n {this.operationType === \"revert\"\n ? this.#componentLocale.commitDetail.revertChangesDetail\n : this.#componentLocale.commitDetail.bringChangesDetail}\n </p>\n {/* <p class=\"detail__commit-name subtitle-semi-bold-xs\">\n {this.#renderCommitsNumbers()}\n </p> */}\n <div\n // genexus server\n class=\"detail__genexus-server field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.genexusServer}\n </span>\n <a\n class=\"detail__link body-regular-s\"\n href={this.commitDetail.genexusServer}\n target=\"_blank\"\n >\n {this.commitDetail.genexusServer}\n </a>\n </div>\n\n <div\n // knowledge base\n class=\"detail__knowledge-base field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.knowledgeBase}\n </span>\n <p class=\"body-regular-s\">{this.commitDetail.knowledgeBase}</p>\n </div>\n\n <div\n // current version\n class=\"detail__current-version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.currentVersion}\n </span>\n <a class=\"body-regular-s\">{this.commitDetail.currentVersion}</a>\n </div>\n {(this.operationType === \"merge\" ||\n this.operationType === \"merge-all\") && (\n <div\n // merge from version\n class=\"detail__merge-from-version field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitDetail.mergeFromVersion}\n </span>\n <p class=\"body-regular-s\">\n {this.commitDetail.mergeFromVersion}\n </p>\n </div>\n )}\n </div>\n <div\n // header information\n class=\"header__information\"\n >\n <p class=\"information__title subtitle-semi-bold-xs\">\n {this.#componentLocale.commitInformation.title}\n </p>\n <div\n // header information (col-1)\n class=\"information__col-1\"\n >\n <div\n // IDs\n class=\"field field-block\"\n >\n <span class={DETAIL_LABEL_CLASSES}>\n {this.commitInformation.length === 1\n ? this.#componentLocale.commitInformation.id\n : this.#componentLocale.commitInformation.ids}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderCommitsNumbers(true)}\n </p>\n </div>\n {this.commitInformation.length === 1 ? (\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.date}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(this.commitInformation[0].date)}\n </p>\n </div>\n ) : (\n [\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.from}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(\n this.commitInformation[0].date\n )}\n </p>\n </div>,\n <div class=\"field field-block\">\n <span class={DETAIL_LABEL_CLASSES}>\n {this.#componentLocale.commitInformation.to}\n </span>\n <p class=\"body-regular-s\">\n {this.#renderFormatedDate(\n this.commitInformation[\n this.commitInformation.length - 1\n ].date\n )}\n </p>\n </div>,\n this.operationType === \"merge-all\" && (\n <button\n class=\"button-tertiary button-icon-and-text body-semi-bold-s edit-range-button\"\n type=\"button\"\n onClick={this.#editRangeHandler}\n >\n <ch-image\n class=\"icon-md\"\n src={EDITED_ICON}\n type=\"mask\"\n />\n {this.#componentLocale.buttons.editRange}\n </button>\n )\n ]\n )}\n </div>\n </div>\n <div class=\"header__comments\">\n <div class=\"layout layout--cols-2-1\">\n <div class=\"layout__panel\">\n <div class=\"field field-block\">\n <label\n class={DETAIL_LABEL_CLASSES}\n htmlFor=\"commit-comments\"\n >\n {this.commitInformation.length > 1\n ? `${this.#componentLocale.commitInformation.comments} (${this.commitInformation.length})`\n : this.#componentLocale.commitInformation.comment}\n </label>\n <p class=\"body-regular-s comments-container\">\n {this.#formatComments()}\n </p>\n </div>\n <button\n class=\"button-tertiary body-semi-bold-s\"\n type=\"button\"\n onClick={this.#viewAllCommentsHandler}\n >\n {this.commitInformation.length > 1\n ? this.#componentLocale.buttons.viewAllComments.replace(\n \"{{commentsCount}}\",\n this.commitInformation.length.toString()\n )\n : this.#componentLocale.buttons.viewComment}\n </button>\n </div>\n </div>\n </div>\n </header>\n <div\n class={{\n \"controls-container\": true,\n \"filter\": !this.hideFilters,\n \"spacing-body-inline\": true\n }}\n >\n {!this.hideFilters && [\n <ch-edit\n class=\"input\"\n disabled={disableControls}\n startImgSrc={SEARCH_ICON}\n placeholder={this.#componentLocale.filter.searchPlaceholder}\n type=\"search\"\n onInput={this.#searchInputHandler}\n ></ch-edit>,\n <ch-combo-box-render\n class=\"combo-box\"\n disabled={disableControls}\n model={this.#comboBoxStatesModel}\n value={this.stateFilterValue}\n onInput={this.#stateChangedHandler}\n placeholder={this.#componentLocale.filter.statePlaceholder}\n ></ch-combo-box-render>\n ]}\n\n <button\n class=\"button-primary button-merge-checked\"\n disabled={!this.atLeastOneObjectIsChecked || disableControls}\n onClick={this.#mergeCheckedClickedHandler}\n >\n {this.operationType === \"revert\"\n ? this.#componentLocale.filter.revertSelected\n : this.#componentLocale.filter.mergeSelected}\n </button>\n </div>\n <div class=\"main spacing-body\">\n {this.commitObjects.length ? (\n <ch-tabular-grid\n class={{\n \"tabular-grid\": true,\n \"objects-tabular-grid\": true,\n \"disabled-custom-selector\": this.merging,\n \"empty-result\": this.objectsFiltered.length === 0\n }}\n keyboardNavigationMode=\"focus\"\n rowSelectionMode=\"multiple\"\n onRowMarkingChanged={this.#rowMarkingChangedHandler}\n onRowContextMenu={this.#rowContextMenuHandler}\n ref={(el: HTMLChTabularGridElement) =>\n (this.tabularGridEl = el as HTMLChTabularGridElement)\n }\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.name}\n columnName={this.#componentLocale.objects.name}\n columnType=\"rich\"\n richRowSelector={enableRichRowSelector}\n richRowSelectorMode=\"mark\"\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.type}\n columnName={this.#componentLocale.objects.type}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.description}\n columnName={this.#componentLocale.objects.description}\n settingable={false}\n sortable={true}\n onColumnSortChanged={this.#sortTabularGridColumnCallback}\n size={config.tabularGrid.colSize.description}\n />\n <ch-tabular-grid-column\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.action}\n columnName={this.#componentLocale.objects.action}\n settingable={false}\n sortable={false}\n size=\"max-content\"\n />\n <ch-tabular-grid-column\n // size of this column should the enough for the largest pill, and no more.\n // this prevents layout shifts when pills state changes.\n class=\"tabular-grid-column\"\n columnId={COLUMNS_IDS.status}\n columnName={this.#componentLocale.objects.status}\n settingable={false}\n sortable={false}\n size=\"100px\"\n />\n </ch-tabular-grid-columnset>\n {this.#renderObjectsRows()}\n\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objectsFiltered.length === 0 && (\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n class=\"empty-state\"\n isAnimated\n stateIconSrc={FILTER_ICON}\n stateTitle=\"No object matched your filter\"\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n )}\n </ch-tabular-grid-rowset>\n </ch-tabular-grid>\n ) : (\n <gx-ide-loader\n cancelLabel={this.#componentLocale.loader.cancelLabel}\n loaderTitle={this.#componentLocale.loader.title}\n description={this.#componentLocale.loader.description}\n show\n class=\"loader\"\n ></gx-ide-loader>\n )}\n </div>\n </section>\n </Host>\n );\n }\n}\n\nexport type OperationType = \"merge\" | \"revert\" | \"merge-all\";\n\nexport type CommitDetail = {\n genexusServer: string;\n knowledgeBase: string;\n currentVersion: string;\n mergeFromVersion: string;\n};\n\nexport type CommitInformation = {\n id: string;\n comment: string;\n date: Date;\n};\n\nexport type CommitObject = {\n id: string;\n date: Date;\n name: string;\n type: ObjectType;\n description: string;\n actionTaken: ObjectActionTaken;\n};\n\nexport type ObjectActionTaken =\n | \"Inserted\"\n | \"Deleted\"\n | \"Modified\"\n | \"Unchanged\"\n | \"Unknown\";\n\nexport type ObjectState =\n | \"to-merge\"\n | \"to-merge-marked\"\n | \"to-revert\"\n | \"merging\"\n | \"pending\"\n | \"warning\"\n | \"error\"\n | \"merged\"\n | \"reverted\"\n | \"reverting\";\n\ntype ObjectStateForFilter =\n | Extract<\n ObjectState,\n \"to-merge\" | \"to-revert\" | \"warning\" | \"error\" | \"merged\" | \"reverted\"\n >\n | \"all\";\n\nexport type MergeObjectsCallback = (objectsIds: string[]) => Promise<void>;\n"],"version":3}
@@ -432,6 +432,7 @@ const GxIdeTeamDevCommit = class {
432
432
  this.selectedFolder = undefined;
433
433
  this.selectedCategory = undefined;
434
434
  this.foldersComboBoxModel = undefined;
435
+ this.isCommitDisabled = false;
435
436
  this.commitCallback = undefined;
436
437
  this.objectsContextMenuCallback = undefined;
437
438
  this.loadCallback = undefined;
@@ -544,8 +545,14 @@ const GxIdeTeamDevCommit = class {
544
545
  async reload() {
545
546
  await __classPrivateFieldGet(this, _GxIdeTeamDevCommit_loadData, "f").call(this);
546
547
  }
548
+ /**
549
+ * Used by the host to instruct the component to disable the commit button.
550
+ */
551
+ async disableCommit(value) {
552
+ this.isCommitDisabled = value;
553
+ }
547
554
  render() {
548
- const disableControls = this.committing || this.loading;
555
+ const disableControls = this.committing || this.loading || this.isCommitDisabled;
549
556
  const gridIsEmpty = this.pendingObjectsAfterFilter.length === 0 &&
550
557
  this.ignoredObjectsAfterFilter.length === 0;
551
558
  const filterIcon = this.filterSecondaryHasConditions
@@ -553,7 +560,8 @@ const GxIdeTeamDevCommit = class {
553
560
  : ICONS.filter;
554
561
  const commitButtonEnabled = this.atLeastOneObjectIsChecked &&
555
562
  this.commentsValue.length > 0 &&
556
- !this.allPendingAreCommitted;
563
+ !this.allPendingAreCommitted &&
564
+ !this.isCommitDisabled;
557
565
  return (h(Host, { class: "widget" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, h("header", { class: { [CSS_SELECTORS.HEADER]: true } }, h("div", {
558
566
  // header details
559
567
  class: { [CSS_SELECTORS.HEADER_DETAILS]: true }