@genexus/genexus-ide-ui 1.1.39 → 1.1.41

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 (140) hide show
  1. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  2. package/dist/cjs/gx-ide-server-selector.cjs.entry.js +12 -28
  3. package/dist/cjs/gx-ide-server-selector.cjs.entry.js.map +1 -1
  4. package/dist/cjs/{gx-ide-status-message.cjs.entry.js → gx-ide-sign-in-result.cjs.entry.js} +10 -9
  5. package/dist/cjs/gx-ide-sign-in-result.cjs.entry.js.map +1 -0
  6. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +20 -4
  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 +99 -238
  9. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +9 -7
  11. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +60 -10
  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/cjs/tabular-grid-column-sort-5ca06dc1.js +43 -0
  16. package/dist/cjs/tabular-grid-column-sort-5ca06dc1.js.map +1 -0
  17. package/dist/cjs/tabular-grid-render-4350dbaf.js +223 -0
  18. package/dist/cjs/tabular-grid-render-4350dbaf.js.map +1 -0
  19. package/dist/cjs/uncheck-ignored-77ca69fe.js +43 -0
  20. package/dist/cjs/uncheck-ignored-77ca69fe.js.map +1 -0
  21. package/dist/collection/collection-manifest.json +1 -1
  22. package/dist/collection/common/chameleon/tabular-grid-column-sort.js +39 -0
  23. package/dist/collection/common/chameleon/tabular-grid-column-sort.js.map +1 -0
  24. package/dist/collection/components/{status-message/status-message.css → sign-in-result/sign-in-result.css} +2 -0
  25. package/dist/collection/components/{status-message/status-message.js → sign-in-result/sign-in-result.js} +10 -9
  26. package/dist/collection/components/sign-in-result/sign-in-result.js.map +1 -0
  27. package/dist/collection/components/team-dev/bring-changes/bring-changes.js +18 -4
  28. package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
  29. package/dist/collection/components/team-dev/history/history.js +10 -8
  30. package/dist/collection/components/team-dev/history/history.js.map +1 -1
  31. package/dist/collection/components/team-dev/server-selector/server-selector.css +18 -14
  32. package/dist/collection/components/team-dev/server-selector/server-selector.js +11 -27
  33. package/dist/collection/components/team-dev/server-selector/server-selector.js.map +1 -1
  34. package/dist/collection/components/team-dev/update/update.css +1 -0
  35. package/dist/collection/components/team-dev/update/update.js +62 -9
  36. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  37. package/dist/collection/components/team-dev/version-control/commit/commit.css +1 -0
  38. package/dist/collection/components/team-dev/version-control/commit/commit.js +79 -20
  39. package/dist/collection/components/team-dev/version-control/commit/commit.js.map +1 -1
  40. package/dist/collection/components/team-dev/version-control/common/are-sets-equal.js +21 -0
  41. package/dist/collection/components/team-dev/version-control/common/are-sets-equal.js.map +1 -0
  42. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js +13 -3
  43. package/dist/collection/components/team-dev/version-control/common/tabular-grid-render.js.map +1 -1
  44. package/dist/collection/components/team-dev/version-control/common/uncheck-ignored.js +18 -0
  45. package/dist/collection/components/team-dev/version-control/common/uncheck-ignored.js.map +1 -0
  46. package/dist/collection/testing/locale.e2e.js +1 -1
  47. package/dist/collection/testing/locale.e2e.js.map +1 -1
  48. package/dist/components/gx-ide-server-selector.js +12 -28
  49. package/dist/components/gx-ide-server-selector.js.map +1 -1
  50. package/dist/components/{gx-ide-status-message.d.ts → gx-ide-sign-in-result.d.ts} +4 -4
  51. package/dist/components/{gx-ide-status-message.js → gx-ide-sign-in-result.js} +15 -14
  52. package/dist/components/gx-ide-sign-in-result.js.map +1 -0
  53. package/dist/components/gx-ide-team-dev-bring-changes.js +18 -4
  54. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  55. package/dist/components/gx-ide-team-dev-commit.js +78 -221
  56. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  57. package/dist/components/gx-ide-team-dev-history.js +9 -7
  58. package/dist/components/gx-ide-team-dev-history.js.map +1 -1
  59. package/dist/components/gx-ide-team-dev-update.js +61 -10
  60. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  61. package/dist/components/tabular-grid-column-sort.js +41 -0
  62. package/dist/components/tabular-grid-column-sort.js.map +1 -0
  63. package/dist/components/tabular-grid-render.js +216 -0
  64. package/dist/components/tabular-grid-render.js.map +1 -0
  65. package/dist/components/uncheck-ignored.js +40 -0
  66. package/dist/components/uncheck-ignored.js.map +1 -0
  67. package/dist/esm/genexus-ide-ui.js +1 -1
  68. package/dist/esm/gx-ide-server-selector.entry.js +12 -28
  69. package/dist/esm/gx-ide-server-selector.entry.js.map +1 -1
  70. package/dist/esm/{gx-ide-status-message.entry.js → gx-ide-sign-in-result.entry.js} +10 -9
  71. package/dist/esm/gx-ide-sign-in-result.entry.js.map +1 -0
  72. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +20 -4
  73. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  74. package/dist/esm/gx-ide-team-dev-commit.entry.js +81 -220
  75. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  76. package/dist/esm/gx-ide-team-dev-history.entry.js +9 -7
  77. package/dist/esm/gx-ide-team-dev-history.entry.js.map +1 -1
  78. package/dist/esm/gx-ide-team-dev-update.entry.js +60 -10
  79. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  80. package/dist/esm/loader.js +1 -1
  81. package/dist/esm/tabular-grid-column-sort-1d503b27.js +41 -0
  82. package/dist/esm/tabular-grid-column-sort-1d503b27.js.map +1 -0
  83. package/dist/esm/tabular-grid-render-f7eb612b.js +216 -0
  84. package/dist/esm/tabular-grid-render-f7eb612b.js.map +1 -0
  85. package/dist/esm/uncheck-ignored-4ba48c9e.js +40 -0
  86. package/dist/esm/uncheck-ignored-4ba48c9e.js.map +1 -0
  87. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  88. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  89. package/dist/genexus-ide-ui/p-02fb496a.js +36 -0
  90. package/dist/genexus-ide-ui/p-02fb496a.js.map +1 -0
  91. package/dist/genexus-ide-ui/p-06e8d9d6.entry.js +63 -0
  92. package/dist/genexus-ide-ui/p-06e8d9d6.entry.js.map +1 -0
  93. package/dist/genexus-ide-ui/{p-585fac4a.entry.js → p-2b38e18e.entry.js} +15 -13
  94. package/dist/genexus-ide-ui/p-2b38e18e.entry.js.map +1 -0
  95. package/dist/genexus-ide-ui/{p-970e89ac.entry.js → p-4b06b578.entry.js} +100 -115
  96. package/dist/genexus-ide-ui/p-4b06b578.entry.js.map +1 -0
  97. package/dist/genexus-ide-ui/{p-34447b77.entry.js → p-4e3ad78d.entry.js} +261 -234
  98. package/dist/genexus-ide-ui/p-4e3ad78d.entry.js.map +1 -0
  99. package/dist/genexus-ide-ui/p-77c2e69d.js +314 -0
  100. package/dist/genexus-ide-ui/p-77c2e69d.js.map +1 -0
  101. package/dist/genexus-ide-ui/p-a7883e6b.entry.js +691 -0
  102. package/dist/genexus-ide-ui/p-a7883e6b.entry.js.map +1 -0
  103. package/dist/genexus-ide-ui/p-c9b9e260.js +36 -0
  104. package/dist/genexus-ide-ui/p-c9b9e260.js.map +1 -0
  105. package/dist/genexus-ide-ui/{p-42f37527.entry.js → p-e1a2550e.entry.js} +351 -289
  106. package/dist/genexus-ide-ui/p-e1a2550e.entry.js.map +1 -0
  107. package/dist/types/common/chameleon/tabular-grid-column-sort.d.ts +4 -0
  108. package/dist/types/components/{status-message/status-message.d.ts → sign-in-result/sign-in-result.d.ts} +2 -2
  109. package/dist/types/components/team-dev/history/history.d.ts +2 -2
  110. package/dist/types/components/team-dev/update/update.d.ts +6 -0
  111. package/dist/types/components/team-dev/version-control/commit/commit.d.ts +15 -13
  112. package/dist/types/components/team-dev/version-control/common/are-sets-equal.d.ts +12 -0
  113. package/dist/types/components/team-dev/version-control/common/tabular-grid-render.d.ts +13 -1
  114. package/dist/types/components/team-dev/version-control/common/uncheck-ignored.d.ts +13 -0
  115. package/dist/types/components.d.ts +13 -13
  116. package/package.json +1 -1
  117. package/dist/cjs/gx-ide-status-message.cjs.entry.js.map +0 -1
  118. package/dist/collection/components/status-message/status-message.js.map +0 -1
  119. package/dist/components/gx-ide-status-message.js.map +0 -1
  120. package/dist/esm/gx-ide-status-message.entry.js.map +0 -1
  121. package/dist/genexus-ide-ui/p-34447b77.entry.js.map +0 -1
  122. package/dist/genexus-ide-ui/p-42f37527.entry.js.map +0 -1
  123. package/dist/genexus-ide-ui/p-50253b96.entry.js +0 -61
  124. package/dist/genexus-ide-ui/p-50253b96.entry.js.map +0 -1
  125. package/dist/genexus-ide-ui/p-585fac4a.entry.js.map +0 -1
  126. package/dist/genexus-ide-ui/p-723d25ae.entry.js +0 -912
  127. package/dist/genexus-ide-ui/p-723d25ae.entry.js.map +0 -1
  128. package/dist/genexus-ide-ui/p-970e89ac.entry.js.map +0 -1
  129. /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/genexus-next-logo.svg +0 -0
  130. /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/left-side-illustration.svg +0 -0
  131. /package/dist/collection/components/{status-message/gx-ide-assets/status-message → sign-in-result/gx-ide-assets/sign-in-result}/images/right-side-illustration.svg +0 -0
  132. /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.en.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.en.json} +0 -0
  133. /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.ja.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.ja.json} +0 -0
  134. /package/dist/collection/components/{status-message/gx-ide-assets/status-message/langs/status-message.lang.zh.json → sign-in-result/gx-ide-assets/sign-in-result/langs/sign-in-result.lang.zh.json} +0 -0
  135. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/genexus-next-logo.svg +0 -0
  136. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/left-side-illustration.svg +0 -0
  137. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message → sign-in-result}/images/right-side-illustration.svg +0 -0
  138. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.en.json → sign-in-result/langs/sign-in-result.lang.en.json} +0 -0
  139. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.ja.json → sign-in-result/langs/sign-in-result.lang.ja.json} +0 -0
  140. /package/dist/genexus-ide-ui/gx-ide-assets/{status-message/langs/status-message.lang.zh.json → sign-in-result/langs/sign-in-result.lang.zh.json} +0 -0
@@ -1 +1 @@
1
- {"file":"gx-ide-team-dev-history.entry.cjs.js","mappings":"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","names":["getIconPath","h","formatDate","config","renderObjectTypeWithIcon","renderObjectStateWithIcon","Locale","Host"],"sources":["src/components/team-dev/history/helpers.ts","src/components/team-dev/history/history.scss?tag=gx-ide-team-dev-history&encapsulation=shadow","src/components/team-dev/history/history.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxItemModel[] =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n\nconst hasActiveNode = (node: any): boolean => {\n if (node.active) {\n return true;\n }\n if (Array.isArray(node.nodes)) {\n return node.nodes.some(hasActiveNode);\n }\n return false;\n};\n\nexport const hasActiveVersionInList = (versionsList: ItemNode[]): boolean => {\n return versionsList.some(hasActiveNode);\n};\n","@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n// TODO: this should be a class on Mercury.\n// Not sure if applying \".field-group\" is the right thing to do.\n$commonRowGap: var(--mer-spacing--sm);\n\n:host {\n display: grid;\n grid-template-columns: max-content 1fr;\n block-size: 100%;\n overflow: auto;\n}\n\n.sidebar {\n background-color: transparent !important; // TODO: Apply elevation classes on Mercury.\n border-inline-end: var(--section-common-border);\n}\n\n.sidebar::part(expand-button) {\n border-radius: var(--control__border-radius);\n}\n\ngx-ide-select-kb-items {\n --search-input-max-inline-size: 300px;\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\ngx-ide-select-kb-items.sidebar-expanded {\n opacity: 1;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.main {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-row-gap: $commonRowGap;\n overflow: auto;\n}\n.main__header {\n display: grid;\n}\n.main__content {\n position: relative;\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content 2fr;\n grid-row-gap: $commonRowGap;\n}\n\n.tabular-grid {\n overflow: auto;\n}\n\n/*SECOND GRID*/\n.search-filter {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--gx-ide-grid-column-gap);\n}\n\n.action-buttons {\n justify-self: flex-end;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n grid-template-areas:\n \"from from to to type type\"\n \"user user user revision revision revision\";\n grid-gap: var(--gx-ide-grid-column-gap);\n padding-block-start: $commonRowGap;\n}\n\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n\n.filters-container > div {\n overflow: hidden;\n}\n\n.field-from {\n grid-area: from;\n}\n\n.field-to {\n grid-area: to;\n}\n.field-type {\n grid-area: type;\n}\n.field-user {\n grid-area: user;\n}\n.field-revision {\n grid-area: revision;\n}\n\n// commits grid \"comment\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".commits-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// affected objects grid \"description\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".affected-objects-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","/* STENCIL IMPORTS */\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../../common/config\";\nimport { formatDate } from \"../../../common/helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../components\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\nimport {\n hasActiveVersionInList,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\nimport { ObjectState } from \"../version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\",\n \"components/accordion\",\n \"components/sidebar\"\n];\n\nconst FILTER_ICON_PRIMARY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-history\",\n styleUrl: \"history.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-history\"]\n})\nexport class GxIdeTeamDevHistory {\n #_componentLocale: any;\n\n #types: ComboBoxItemModel[] = [];\n\n @Element() el: HTMLGxIdeTeamDevHistoryElement;\n\n #fromEl?: HTMLChEditElement;\n #revisionEl?: HTMLChEditElement;\n #searchEl: HTMLChEditElement;\n #toEl?: HTMLChEditElement;\n #typesEl?: HTMLChComboBoxRenderElement;\n #userEl?: HTMLChEditElement;\n #sidebarEl: HTMLChSidebarElement;\n #revisionsGridEl: HTMLChTabularGridElement;\n\n @State() historyDetail: RevisionDetailData;\n\n /**\n * The files rendered in the table\n */\n @State() objects: RevisionData[] = [];\n\n /**\n * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.\n */\n @State() isFirstLoad: boolean = true;\n\n /**\n * Used to hide the select-kb-items when collapsed\n */\n @State() sidebarExpanded: boolean = true;\n\n /**\n * Used to show or hide the filters section\n */\n @State() filtersHidden = true;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * The Id of the selected revision in the revisions grid\n */\n @State() selectedRevisionId: string;\n\n /**\n * Used to customize the select-kb-items \"header\" part grid layout\n */\n @State() hasActiveVersion: boolean = false; // TODO:\n\n /**\n * Possible values of type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly gridContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * The Id of the selected version in the select-kb-items component\n */\n @Prop({ mutable: true }) selectedVersionId: string;\n @Watch(\"selectedVersionId\")\n async selectedVersionIdChanged(newSelectedVersionId: string) {\n this.selectedVersionId = newSelectedVersionId;\n\n // Reset filters\n this.#searchEl.value = null;\n this.#fromEl.value = null;\n this.#toEl.value = null;\n this.#revisionEl.value = null;\n this.#userEl.value = null;\n this.#typesEl.value = this.#types[0]?.value;\n\n await this.#getObjectsFromVersion(newSelectedVersionId);\n }\n\n /**\n * List of versions to show in the versions tree\n */\n @Prop({ mutable: true }) versions: ItemNode[] = [];\n @Watch(\"versions\")\n async versionsListChanged(newVersionsList: ItemNode[]) {\n this.versions = newVersionsList;\n this.hasActiveVersion = hasActiveVersionInList(newVersionsList);\n\n if (\n newVersionsList.length > 0 &&\n this.selectedVersionId &&\n this.isFirstLoad\n ) {\n await this.#getObjectsFromVersion(this.selectedVersionId);\n this.isFirstLoad = false;\n }\n }\n\n /**\n * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.\n\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id\n */\n @Prop() readonly loadDetailCallback: LoadDetailCallback;\n\n /**\n * Callback invoked when the selected version changes. As parameter receive the selected version id\n */\n @Prop() readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#types = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n this.#sidebarEl.addEventListener(\n \"expandedChange\",\n (e: CustomEvent<boolean>) => {\n this.sidebarExpanded = e.detail;\n }\n );\n }\n\n #getObjectsFromVersion = async (versionId: string): Promise<void> => {\n this.loading = true;\n\n const filters: FiltersData = {\n search: this.#searchEl.value ? this.#searchEl.value : \"\",\n from: this.#fromEl.value ? new Date(this.#fromEl.value) : null,\n to: this.#toEl.value ? new Date(this.#toEl.value) : null,\n revision: this.#revisionEl.value ? this.#revisionEl.value : \"\",\n user: this.#userEl.value ? this.#userEl.value : \"\",\n type: this.#typesEl.value === \"all\" ? \"\" : this.#typesEl.value\n };\n\n this.objects = await this.loadCallback(filters, versionId);\n await this.#getSelectedRevision(this.objects[0]?.id);\n this.loading = false;\n };\n\n #getSelectedRevision = async (revisionId: string) => {\n if (revisionId) {\n this.historyDetail = await this.loadDetailCallback(revisionId);\n this.historyDetail.title = this.#formatHistoryDetailDate(\n this.historyDetail.title\n );\n this.selectedRevisionId = revisionId;\n } else {\n this.historyDetail = null;\n }\n };\n\n #registerGridContextMenuListener = (): void => {\n if (this.#revisionsGridEl) {\n this.#revisionsGridEl.addEventListener(\n \"contextmenu\",\n (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#gridContextMenuCallbackHandler(ev);\n }\n );\n }\n };\n\n #gridContextMenuCallbackHandler = async (ev: MouseEvent): Promise<void> => {\n this.gridContextMenuCallback({\n selection: [this.selectedRevisionId],\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #renderCommitsGrid = (): Element => {\n const tabularGridEmpty = this.objects?.length === 0 || !this.objects;\n return (\n <ch-tabular-grid\n class={{\n \"commits-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n onSelectionChanged={(ev: any) => {\n this.objects.length > 0 &&\n this.#getSelectedRevision(ev.detail.rowsId[0]);\n }}\n ref={(el: HTMLChTabularGridElement) => {\n if (el && this.#revisionsGridEl !== el) {\n this.#revisionsGridEl = el as HTMLChTabularGridElement;\n\n this.#registerGridContextMenuListener();\n\n if (this.objects.length > 0) {\n this.#revisionsGridEl.selectRow(this.objects[0]?.id, true);\n }\n }\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.id}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.comment}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"1fr\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.user}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.commitDate}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: RevisionData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.id}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.comment}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.commitDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateTitle={this.#_componentLocale.emptyRevisionsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderAffectedObjectsGrid = (): Element => {\n const iterable = this.historyDetail ? this.historyDetail.objects : [];\n const tabularGridEmpty =\n this.historyDetail?.objects.length === 0 || !this.historyDetail;\n return (\n <ch-tabular-grid\n class={{\n \"affected-objects-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.name\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.types\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.description\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.action\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.historyDetail && this.historyDetail.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {iterable.map((obj: ObjectData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(obj.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectStateWithIcon(obj.state)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyHistoryDetailText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderLoader = (): Element => {\n return (\n this.loading && (\n <div class=\"main__content scrollable\">\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n description={this.#_componentLocale.loader.description}\n ></gx-ide-loader>\n </div>\n )\n );\n };\n\n #formatHistoryDetailDate = (title: string): string => {\n const parts = title.split(\" - \");\n const datePart = new Date(parts[1]);\n const formattedDate = formatDate(datePart, \"date-time\");\n return `${parts[0]} - ${formattedDate} - ${parts[2]}`;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-sidebar\n ref={(el: HTMLChSidebarElement) =>\n (this.#sidebarEl = el as HTMLChSidebarElement)\n }\n class=\"sidebar\"\n expanded={this.sidebarExpanded}\n expandButtonCollapseAccessibleName={\n this.#_componentLocale.sidebar.collapseAriaLabel\n }\n expandButtonExpandAccessibleName={\n this.#_componentLocale.sidebar.expandAriaLabel\n }\n showExpandButton\n >\n <gx-ide-select-kb-items\n class={{\n \"sidebar-expanded\": this.sidebarExpanded,\n \"has-active-version\": this.hasActiveVersion\n }}\n checkboxType=\"none\"\n itemsList={this.versions}\n expandOnClick={false}\n selectionChanged={this.selectedVersionChangeCallback}\n itemContextMenuCallback={this.itemContextMenuCallback}\n ></gx-ide-select-kb-items>\n </ch-sidebar>\n\n <main class=\"main spacing-body-block-start spacing-body-inline\">\n <div class=\"main__header\">\n <div class=\"search-filter\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"search\">\n {this.#_componentLocale.filters.search}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n startImgSrc={SEARCH_ICON}\n part=\"search\"\n id=\"search\"\n ref={(el: HTMLChEditElement) =>\n (this.#searchEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={() => this.#toggleFiltersHandler()}\n >\n <ch-image class=\"icon-md\" src={FILTER_ICON_PRIMARY}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.reloadAriaLabel}\n onClick={() =>\n this.#getObjectsFromVersion(this.selectedVersionId)\n }\n part={this.#_componentLocale.searchFilter.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\n </div>\n\n <div\n id=\"filters-container\"\n aria-labelledby=\"filter-toggle-button\"\n class={{\n \"filters-container-visible\": !this.filtersHidden,\n \"filters-container\": true\n }}\n inert={this.filtersHidden}\n hidden={this.filtersHidden}\n >\n <div>\n <div class=\"filters-grid\">\n <div class=\"field field-block field-from\">\n <label class=\"label\" htmlFor=\"from\">\n {this.#_componentLocale.filters.from}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n part=\"from\"\n id=\"from\"\n ref={(el: HTMLChEditElement) =>\n (this.#fromEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-to\">\n <label class=\"label\" htmlFor=\"to\">\n {this.#_componentLocale.filters.to}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n id=\"to\"\n ref={(el: HTMLChEditElement) =>\n (this.#toEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filters.type}\n </label>\n\n <ch-combo-box-render\n accessibleName=\"types\"\n class=\"combo-box\"\n part=\"type\"\n model={this.#types}\n value={this.#types[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block field-user\">\n <label class=\"label\" htmlFor=\"user\">\n {this.#_componentLocale.filters.user}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"user\"\n class=\"input\"\n id=\"user\"\n ref={(el: HTMLChEditElement) =>\n (this.#userEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-revision\">\n <label class=\"label\" htmlFor=\"revision\">\n {this.#_componentLocale.filters.revision}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"revision\"\n class=\"input\"\n id=\"revision\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this.#renderLoader()}\n\n {!this.loading && (\n <div class=\"main__content scrollable\">\n {this.#renderCommitsGrid()}\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"comment-area\">\n {this.historyDetail ? this.historyDetail.title : null}\n </label>\n <ch-edit\n class=\"input comment-text-area\"\n value={this.historyDetail ? this.historyDetail.comment : null}\n multiline\n autoGrow\n readonly={true}\n part=\"comment-area\"\n id=\"comment-area\"\n ></ch-edit>\n </div>\n\n {this.#renderAffectedObjectsGrid()}\n </div>\n )}\n </main>\n </Host>\n );\n }\n}\n\n// Types\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type FiltersData = {\n search: string;\n from?: Date;\n to?: Date;\n user?: string;\n revision?: string;\n type?: string;\n};\nexport type RevisionData = {\n id: string;\n comment: string;\n user: string;\n commitDate: Date;\n};\n\nexport type RevisionDetailData = {\n title: string;\n comment: string;\n objects: ObjectData[];\n};\nexport type ObjectData = {\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: ObjectType;\n description: string;\n action: string;\n};\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string\n) => Promise<RevisionData[]>;\n\nexport type LoadDetailCallback = (\n revision: string\n) => Promise<RevisionDetailData>;\n\nexport type SelectedVersionChangeCallback = (\n selectedVersion: string[]\n) => Promise<void>;\n"],"version":3}
1
+ {"file":"gx-ide-team-dev-history.entry.cjs.js","mappings":"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","names":["getIconPath","h","formatDate","config","renderObjectTypeWithIcon","renderObjectStateWithIcon","Locale","Host"],"sources":["src/components/team-dev/history/helpers.ts","src/components/team-dev/history/history.scss?tag=gx-ide-team-dev-history&encapsulation=shadow","src/components/team-dev/history/history.tsx"],"sourcesContent":["import { ComboBoxModel } from \"@genexus/chameleon-controls-library\";\nimport { ObjectType, GxOption } from \"../../../common/types\";\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\n\nexport const mapObjectTypeToComboBoxItemModel = (\n objectTypeModel: ObjectType[]\n): ComboBoxItemModel[] =>\n objectTypeModel.map(objectType => ({\n value: objectType.id,\n caption: objectType.name,\n startImgSrc: objectType.icon\n }));\n\nexport const mapCategoryToComboBoxItemModel = (\n categoryModel: GxOption[]\n): ComboBoxModel =>\n categoryModel.map(category => ({\n value: category.id,\n caption: category.label\n }));\n\nconst hasActiveNode = (node: any): boolean => {\n if (node.active) {\n return true;\n }\n if (Array.isArray(node.nodes)) {\n return node.nodes.some(hasActiveNode);\n }\n return false;\n};\n\nexport const hasActiveVersionInList = (versionsList: ItemNode[]): boolean => {\n return versionsList.some(hasActiveNode);\n};\n","@import \"../../../../node_modules/@genexus/mercury/dist/assets/scss/helpers.scss\";\n@import \"../common/styles.scss\";\n\n// TODO: this should be a class on Mercury.\n// Not sure if applying \".field-group\" is the right thing to do.\n$commonRowGap: var(--mer-spacing--sm);\n\n:host {\n display: grid;\n grid-template-columns: max-content 1fr;\n block-size: 100%;\n overflow: auto;\n}\n\n.sidebar {\n background-color: transparent !important; // TODO: Apply elevation classes on Mercury.\n border-inline-end: var(--section-common-border);\n}\n\n.sidebar::part(expand-button) {\n border-radius: var(--control__border-radius);\n}\n\ngx-ide-select-kb-items {\n --search-input-max-inline-size: 300px;\n opacity: 0;\n transition: opacity var(--mer-timing--fast);\n}\ngx-ide-select-kb-items.sidebar-expanded {\n opacity: 1;\n}\n\nch-tabular-grid.tabular-grid--empty::part(main) {\n // WA to avoid scrollbar flickering when displaying the empty-state message\n overflow: hidden;\n}\n\nch-tabular-grid-rowset-empty {\n position: relative; // makes this the bounder element for the loader\n}\n\n.main {\n display: grid;\n grid-template-rows: max-content 1fr;\n grid-row-gap: $commonRowGap;\n overflow: auto;\n}\n.main__header {\n display: grid;\n}\n.main__content {\n position: relative;\n overflow: auto;\n display: grid;\n grid-template-rows: 1fr max-content 2fr;\n grid-row-gap: $commonRowGap;\n}\n\n.tabular-grid {\n overflow: auto;\n}\n\n/*SECOND GRID*/\n.search-filter {\n display: grid;\n grid-template-columns: 1fr max-content max-content;\n gap: var(--gx-ide-grid-column-gap);\n}\n\n.action-buttons {\n justify-self: flex-end;\n}\n\n.filters-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n grid-template-areas:\n \"from from to to type type\"\n \"user user user revision revision revision\";\n grid-gap: var(--gx-ide-grid-column-gap);\n padding-block-start: $commonRowGap;\n}\n\n.filters-container {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--mer-timing--fast);\n}\n\n.filters-container-visible {\n grid-template-rows: 1fr;\n}\n\n.filters-container > div {\n overflow: hidden;\n}\n\n.field-from {\n grid-area: from;\n}\n\n.field-to {\n grid-area: to;\n}\n.field-type {\n grid-area: type;\n}\n.field-user {\n grid-area: user;\n}\n.field-revision {\n grid-area: revision;\n}\n\n// commits grid \"comment\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".commits-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 2\n )\n);\n\n// affected objects grid \"description\" column\n@include tabular-grid-cell-layout(\n $tabular-grid-selector: \".affected-objects-grid\",\n $tabular-grid-cell-node-type: \"text\",\n $tabular-grid-cell-min-inline-size: 200px,\n $tabular-grid-affected-columns-nth-list: (\n 5\n )\n);\n","/* STENCIL IMPORTS */\nimport { Component, Element, h, Host, Prop, State, Watch } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { ComboBoxItemModel } from \"@genexus/chameleon-controls-library/dist/types/components/combo-box/types\";\nimport { getIconPath, MercuryBundles } from \"@genexus/mercury\";\nimport { config } from \"../../../common/config\";\nimport { formatDate } from \"../../../common/helpers\";\nimport { Locale } from \"../../../common/locale\";\nimport { ContextMenuInfo } from \"../../../components\";\nimport { ItemNode } from \"../../select-kb-items/select-kb-items\";\nimport {\n hasActiveVersionInList,\n mapObjectTypeToComboBoxItemModel\n} from \"./helpers\";\nimport {\n renderObjectStateWithIcon,\n renderObjectTypeWithIcon\n} from \"../common/utilities\";\nimport { ObjectState } from \"../version-control/common/types\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/form--full\",\n \"utils/layout\",\n \"utils/spacing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/tabular-grid\",\n \"components/accordion\",\n \"components/sidebar\"\n];\n\nconst FILTER_ICON_PRIMARY = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"primary\"\n});\n\nconst FILTER_ICON = getIconPath({\n category: \"window-tools\",\n name: \"filter\",\n colorType: \"on-surface\"\n});\n\nconst RESET_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"reset\",\n colorType: \"primary\"\n});\n\nconst SEARCH_ICON = getIconPath({\n category: \"gemini-tools\",\n name: \"search\",\n colorType: \"on-surface\"\n});\n\n@Component({\n tag: \"gx-ide-team-dev-history\",\n styleUrl: \"history.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/team-dev-history\"]\n})\nexport class GxIdeTeamDevHistory {\n #_componentLocale: any;\n\n #types: ComboBoxItemModel[] = [];\n\n @Element() el: HTMLGxIdeTeamDevHistoryElement;\n\n #fromEl?: HTMLChEditElement;\n #revisionEl?: HTMLChEditElement;\n #searchEl: HTMLChEditElement;\n #toEl?: HTMLChEditElement;\n #typesEl?: HTMLChComboBoxRenderElement;\n #userEl?: HTMLChEditElement;\n #sidebarEl: HTMLChSidebarElement;\n #revisionsGridEl: HTMLChTabularGridElement;\n\n @State() historyDetail: RevisionDetailData;\n\n /**\n * The files rendered in the table\n */\n @State() objects: RevisionData[] = [];\n\n /**\n * Used to call getObjectsFromVersion from the versionsChanged method only once after receiving the versions for the first time.\n */\n @State() isFirstLoad: boolean = true;\n\n /**\n * Used to hide the select-kb-items when collapsed\n */\n @State() sidebarExpanded: boolean = true;\n\n /**\n * Used to show or hide the filters section\n */\n @State() filtersHidden = true;\n\n /**\n * To show a loader when the component is loading\n */\n @State() loading: boolean = true;\n\n /**\n * The Id of the selected revision in the revisions grid\n */\n @State() selectedRevisionId: string;\n\n /**\n * Used to customize the select-kb-items \"header\" part grid layout\n */\n @State() hasActiveVersion: boolean = false; // TODO:\n\n /**\n * Possible values of type filter\n */\n @Prop() readonly types: ObjectType[];\n\n /**\n * Callback emitted when the user right click on an item\n */\n @Prop() readonly itemContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * Callback invoked when user right-clicks on the grid\n */\n @Prop() readonly gridContextMenuCallback: (\n info: ContextMenuInfo\n ) => Promise<void>;\n\n /**\n * The Id of the selected version in the select-kb-items component\n */\n @Prop({ mutable: true }) selectedVersionId: string;\n @Watch(\"selectedVersionId\")\n async selectedVersionIdChanged(\n newSelectedVersionId: string,\n oldSelectedVersionId?: string\n ) {\n if (newSelectedVersionId === oldSelectedVersionId) {\n return;\n }\n\n // Reset filters\n this.#searchEl.value = null;\n this.#fromEl.value = null;\n this.#toEl.value = null;\n this.#revisionEl.value = null;\n this.#userEl.value = null;\n this.#typesEl.value = this.#types[0]?.value;\n\n await this.#getObjectsFromVersion(newSelectedVersionId, false);\n }\n\n /**\n * List of versions to show in the versions tree\n */\n @Prop({ mutable: true }) versions: ItemNode[] = [];\n @Watch(\"versions\")\n async versionsListChanged(newVersionsList: ItemNode[]) {\n this.versions = newVersionsList;\n this.hasActiveVersion = hasActiveVersionInList(newVersionsList);\n\n if (\n newVersionsList.length > 0 &&\n this.selectedVersionId &&\n this.isFirstLoad\n ) {\n await this.#getObjectsFromVersion(this.selectedVersionId, false);\n this.isFirstLoad = false;\n }\n }\n\n /**\n * Callback invoked when is necessary to reload the history info. Receive the filters as parameters and only returns the info corresponding to the master grid.\n\n */\n @Prop() readonly loadCallback: LoadCallback;\n\n /**\n * Callback invoked to obtain detailed info from a revision. As parameter receive internal revision id\n */\n @Prop() readonly loadDetailCallback: LoadDetailCallback;\n\n /**\n * Callback invoked when the selected version changes. As parameter receive the selected version id\n */\n @Prop() readonly selectedVersionChangeCallback: SelectedVersionChangeCallback;\n\n async componentWillLoad() {\n this.#_componentLocale = await Locale.getComponentStrings(this.el);\n this.#types = mapObjectTypeToComboBoxItemModel(this.types);\n }\n\n async componentDidLoad() {\n this.#sidebarEl.addEventListener(\n \"expandedChange\",\n (e: CustomEvent<boolean>) => {\n this.sidebarExpanded = e.detail;\n }\n );\n }\n\n #getObjectsFromVersion = async (\n versionId: string,\n isRefresh: boolean\n ): Promise<void> => {\n this.loading = true;\n\n const filters: FiltersData = {\n search: this.#searchEl.value ? this.#searchEl.value : \"\",\n from: this.#fromEl.value ? new Date(this.#fromEl.value) : null,\n to: this.#toEl.value ? new Date(this.#toEl.value) : null,\n revision: this.#revisionEl.value ? this.#revisionEl.value : \"\",\n user: this.#userEl.value ? this.#userEl.value : \"\",\n type: this.#typesEl.value === \"all\" ? \"\" : this.#typesEl.value\n };\n\n this.objects = await this.loadCallback(filters, versionId, isRefresh);\n await this.#getSelectedRevision(this.objects[0]?.id);\n this.loading = false;\n };\n\n #getSelectedRevision = async (revisionId: string) => {\n if (revisionId) {\n this.historyDetail = await this.loadDetailCallback(revisionId);\n this.historyDetail.title = this.#formatHistoryDetailDate(\n this.historyDetail.title\n );\n this.selectedRevisionId = revisionId;\n } else {\n this.historyDetail = null;\n }\n };\n\n #registerGridContextMenuListener = (): void => {\n if (this.#revisionsGridEl) {\n this.#revisionsGridEl.addEventListener(\n \"contextmenu\",\n (ev: MouseEvent): void => {\n ev.preventDefault();\n ev.stopPropagation();\n this.#gridContextMenuCallbackHandler(ev);\n }\n );\n }\n };\n\n #gridContextMenuCallbackHandler = async (ev: MouseEvent): Promise<void> => {\n this.gridContextMenuCallback({\n selection: [this.selectedRevisionId],\n clientX: ev.clientX,\n clientY: ev.clientY\n });\n };\n\n #toggleFiltersHandler = () => {\n this.filtersHidden = !this.filtersHidden;\n };\n\n #renderCommitsGrid = (): Element => {\n const tabularGridEmpty = this.objects?.length === 0 || !this.objects;\n return (\n <ch-tabular-grid\n class={{\n \"commits-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n onSelectionChanged={(ev: any) => {\n this.objects.length > 0 &&\n this.#getSelectedRevision(ev.detail.rowsId[0]);\n }}\n ref={(el: HTMLChTabularGridElement) => {\n if (el && this.#revisionsGridEl !== el) {\n this.#revisionsGridEl = el as HTMLChTabularGridElement;\n\n this.#registerGridContextMenuListener();\n\n if (this.objects.length > 0) {\n this.#revisionsGridEl.selectRow(this.objects[0]?.id, true);\n }\n }\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.id}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.comment}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"1fr\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.user}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={this.#_componentLocale.mainGrid.columns.commitDate}\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size=\"max-content\"\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {this.objects.map((obj: RevisionData) => (\n <ch-tabular-grid-row\n rowid={obj.id}\n key={obj.id}\n class=\"tabular-grid-row\"\n >\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.id}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.comment}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.user}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {`${formatDate(obj.commitDate, \"date-time\")}`}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateTitle={this.#_componentLocale.emptyRevisionsText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderAffectedObjectsGrid = (): Element => {\n const iterable = this.historyDetail ? this.historyDetail.objects : [];\n const tabularGridEmpty =\n this.historyDetail?.objects.length === 0 || !this.historyDetail;\n return (\n <ch-tabular-grid\n class={{\n \"affected-objects-grid\": true,\n \"tabular-grid\": true,\n \"tabular-grid--empty\": tabularGridEmpty\n }}\n >\n <ch-tabular-grid-columnset class=\"tabular-grid-column-set\">\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.name\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.types\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.description\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.auto}\n ></ch-tabular-grid-column>\n <ch-tabular-grid-column\n column-name={\n this.#_componentLocale.affectedObjectsGrid.columns.action\n }\n column-name-position=\"text\"\n class=\"tabular-grid-column\"\n settingable={false}\n size={config.tabularGrid.colSize.maxContent}\n ></ch-tabular-grid-column>\n </ch-tabular-grid-columnset>\n {this.historyDetail && this.historyDetail.objects.length > 0 ? (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n {iterable.map((obj: ObjectData) => (\n <ch-tabular-grid-row class=\"tabular-grid-row\">\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.name}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectTypeWithIcon(obj.type)}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {obj.description}\n </ch-tabular-grid-cell>\n <ch-tabular-grid-cell class=\"tabular-grid-cell\">\n {renderObjectStateWithIcon(obj.state)}\n </ch-tabular-grid-cell>\n </ch-tabular-grid-row>\n ))}\n </ch-tabular-grid-rowset>\n ) : (\n <ch-tabular-grid-rowset class=\"tabular-grid-rowset\">\n <ch-tabular-grid-rowset-empty>\n <gx-ide-empty-state\n stateIconSrc={FILTER_ICON}\n stateTitle={this.#_componentLocale.emptyHistoryDetailText}\n isAnimated={true}\n ></gx-ide-empty-state>\n </ch-tabular-grid-rowset-empty>\n </ch-tabular-grid-rowset>\n )}\n\n <ch-tabular-grid-row class=\"tabular-grid-row\"></ch-tabular-grid-row>\n </ch-tabular-grid>\n );\n };\n\n #renderLoader = (): Element => {\n return (\n this.loading && (\n <div class=\"main__content scrollable\">\n <gx-ide-loader\n loaderTitle={this.#_componentLocale.loader.title}\n show\n description={this.#_componentLocale.loader.description}\n ></gx-ide-loader>\n </div>\n )\n );\n };\n\n #formatHistoryDetailDate = (title: string): string => {\n const parts = title.split(\" - \");\n const datePart = new Date(parts[1]);\n const formattedDate = formatDate(datePart, \"date-time\");\n return `${parts[0]} - ${formattedDate} - ${parts[2]}`;\n };\n\n render() {\n return (\n <Host class=\"widget\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n\n <ch-sidebar\n ref={(el: HTMLChSidebarElement) =>\n (this.#sidebarEl = el as HTMLChSidebarElement)\n }\n class=\"sidebar\"\n expanded={this.sidebarExpanded}\n expandButtonCollapseAccessibleName={\n this.#_componentLocale.sidebar.collapseAriaLabel\n }\n expandButtonExpandAccessibleName={\n this.#_componentLocale.sidebar.expandAriaLabel\n }\n showExpandButton\n >\n <gx-ide-select-kb-items\n class={{\n \"sidebar-expanded\": this.sidebarExpanded,\n \"has-active-version\": this.hasActiveVersion\n }}\n checkboxType=\"none\"\n itemsList={this.versions}\n expandOnClick={false}\n selectionChanged={this.selectedVersionChangeCallback}\n itemContextMenuCallback={this.itemContextMenuCallback}\n ></gx-ide-select-kb-items>\n </ch-sidebar>\n\n <main class=\"main spacing-body-block-start spacing-body-inline\">\n <div class=\"main__header\">\n <div class=\"search-filter\">\n <div class=\"field field-inline\">\n <label class=\"label\" htmlFor=\"search\">\n {this.#_componentLocale.filters.search}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n startImgSrc={SEARCH_ICON}\n part=\"search\"\n id=\"search\"\n ref={(el: HTMLChEditElement) =>\n (this.#searchEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <button\n id=\"filter-toggle-button\"\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.filterAriaLabel}\n aria-expanded={this.filtersHidden ? \"false\" : \"true\"}\n aria-controls=\"filters-container\"\n onClick={() => this.#toggleFiltersHandler()}\n >\n <ch-image class=\"icon-md\" src={FILTER_ICON_PRIMARY}></ch-image>\n </button>\n\n <button\n class=\"button-teritary button-icon-only\"\n aria-label={this.#_componentLocale.searchFilter.reloadAriaLabel}\n onClick={() =>\n this.#getObjectsFromVersion(this.selectedVersionId, true)\n }\n part={this.#_componentLocale.searchFilter.reloadAriaLabel}\n >\n <ch-image class=\"icon-md\" src={RESET_ICON}></ch-image>\n </button>\n </div>\n\n <div\n id=\"filters-container\"\n aria-labelledby=\"filter-toggle-button\"\n class={{\n \"filters-container-visible\": !this.filtersHidden,\n \"filters-container\": true\n }}\n inert={this.filtersHidden}\n hidden={this.filtersHidden}\n >\n <div>\n <div class=\"filters-grid\">\n <div class=\"field field-block field-from\">\n <label class=\"label\" htmlFor=\"from\">\n {this.#_componentLocale.filters.from}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n part=\"from\"\n id=\"from\"\n ref={(el: HTMLChEditElement) =>\n (this.#fromEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-to\">\n <label class=\"label\" htmlFor=\"to\">\n {this.#_componentLocale.filters.to}\n </label>\n <ch-edit\n value=\"\"\n class=\"input\"\n type=\"date\"\n id=\"to\"\n ref={(el: HTMLChEditElement) =>\n (this.#toEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-type\">\n <label class=\"label\" htmlFor=\"type\">\n {this.#_componentLocale.filters.type}\n </label>\n\n <ch-combo-box-render\n accessibleName=\"types\"\n class=\"combo-box\"\n part=\"type\"\n model={this.#types}\n value={this.#types[0]?.value}\n ref={(el: HTMLChComboBoxRenderElement) =>\n (this.#typesEl = el as HTMLChComboBoxRenderElement)\n }\n ></ch-combo-box-render>\n </div>\n\n <div class=\"field field-block field-user\">\n <label class=\"label\" htmlFor=\"user\">\n {this.#_componentLocale.filters.user}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"user\"\n class=\"input\"\n id=\"user\"\n ref={(el: HTMLChEditElement) =>\n (this.#userEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n\n <div class=\"field field-block field-revision\">\n <label class=\"label\" htmlFor=\"revision\">\n {this.#_componentLocale.filters.revision}\n </label>\n\n <ch-edit\n value=\"\"\n part=\"revision\"\n class=\"input\"\n id=\"revision\"\n ref={(el: HTMLChEditElement) =>\n (this.#revisionEl = el as HTMLChEditElement)\n }\n ></ch-edit>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {this.#renderLoader()}\n\n {!this.loading && (\n <div class=\"main__content scrollable\">\n {this.#renderCommitsGrid()}\n\n <div class=\"field field-block\">\n <label class=\"label\" htmlFor=\"comment-area\">\n {this.historyDetail ? this.historyDetail.title : null}\n </label>\n <ch-edit\n class=\"input comment-text-area\"\n value={this.historyDetail ? this.historyDetail.comment : null}\n multiline\n autoGrow\n readonly={true}\n part=\"comment-area\"\n id=\"comment-area\"\n ></ch-edit>\n </div>\n\n {this.#renderAffectedObjectsGrid()}\n </div>\n )}\n </main>\n </Host>\n );\n }\n}\n\n// Types\nexport type ObjectType = {\n id: string;\n name: string;\n icon?: string;\n};\n\nexport type FiltersData = {\n search: string;\n from?: Date;\n to?: Date;\n user?: string;\n revision?: string;\n type?: string;\n};\nexport type RevisionData = {\n id: string;\n comment: string;\n user: string;\n commitDate: Date;\n};\n\nexport type RevisionDetailData = {\n title: string;\n comment: string;\n objects: ObjectData[];\n};\nexport type ObjectData = {\n typeIcon: string;\n state: ObjectState;\n name: string;\n type: ObjectType;\n description: string;\n action: string;\n};\n\nexport type LoadCallback = (\n filters: FiltersData,\n versionId: string,\n isRefresh: boolean\n) => Promise<RevisionData[]>;\n\nexport type LoadDetailCallback = (\n revision: string\n) => Promise<RevisionDetailData>;\n\nexport type SelectedVersionChangeCallback = (\n selectedVersion: string[]\n) => Promise<void>;\n"],"version":3}
@@ -5,9 +5,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-2f1471c9.js');
6
6
  const MERCURY_ASSETS = require('./MERCURY_ASSETS-f14e91ff.js');
7
7
  const locale = require('./locale-ff30a5f3.js');
8
+ const uncheckIgnored = require('./uncheck-ignored-77ca69fe.js');
8
9
  const utilities = require('./utilities-0e316b39.js');
9
10
  const helpers = require('./helpers-21c9cd02.js');
10
11
  const config = require('./config-df6ba4e9.js');
12
+ const tabularGridRender = require('./tabular-grid-render-4350dbaf.js');
13
+ const tabularGridColumnSort = require('./tabular-grid-column-sort-5ca06dc1.js');
14
+ require('./helpers-8fb178a2.js');
11
15
 
12
16
  const mapObjectTypeToComboBoxItemModel = (objectTypeModel) => objectTypeModel.map(objectType => ({
13
17
  value: objectType.id,
@@ -15,7 +19,7 @@ const mapObjectTypeToComboBoxItemModel = (objectTypeModel) => objectTypeModel.ma
15
19
  startImgSrc: objectType.icon
16
20
  }));
17
21
 
18
- const updateCss = ".custom-icon-text-wrapper {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\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 display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content max-content 1fr;\n}\n\n.detail__version, .detail__knowledge-base {\n padding-inline: 24px;\n border-inline-end: 1px solid var(--mer-border-color__on-elevation--01);\n}\n\n.detail__genexus-server {\n padding-inline-end: 24px;\n border-inline-end: 1px solid var(--mer-border-color__on-elevation--01);\n}\n\n.detail__last-full-update {\n padding-inline-start: 24px;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n display: grid;\n grid-template-columns: 1fr max-content;\n}\n\n.header__detail {\n display: grid;\n row-gap: var(--mer-spacing--md);\n grid-auto-columns: max-content;\n grid-auto-rows: max-content;\n grid-template-areas: \"detail-heading-gx . . .\" \"detail-genexus-server detail-knowledge-base detail-version detail-last-full-update\";\n}\n\n.detail__label {\n color: var(--mer-color__neutral-gray--400);\n}\n\n.detail__heading-genexus-server {\n grid-area: detail-heading-gx;\n}\n\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n}\n.detail__genexus-server > 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}\n.detail__link:hover {\n color: var(--mer-text__primary--hover);\n}\n.detail__link:active {\n color: var(--mer-text__primary--active);\n}\n\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n}\n\n.detail__version {\n grid-area: detail-version;\n}\n\n.detail__last-full-update {\n grid-area: detail-last-full-update;\n}\n\n.filter-container {\n container-type: inline-size;\n box-sizing: border-box;\n}\n\n.filter {\n display: grid;\n margin-block-start: var(--mer-spacing--lg);\n grid-template-areas: \"filter-search filter-types filter-actions filter-kb-properties filter-buttons\";\n grid-template-columns: 200px 200px 200px max-content 1fr;\n gap: 12px;\n}\n\n@container (max-width: 1100px) {\n .filter-container > .filter {\n grid-template-columns: 200px 200px 200px 1fr;\n grid-template-areas: \"filter-search filter-types filter-actions filter-buttons\" \"filter-kb-properties . . .\";\n grid-auto-rows: max-content;\n }\n}\n@container (max-width: 900px) {\n .filter-container > .filter {\n grid-template-columns: 1fr 1fr 1fr;\n grid-template-areas: \"filter-search filter-types filter-actions\" \"filter-kb-properties filter-buttons filter-buttons\";\n grid-auto-rows: max-content;\n }\n}\n.filter__search {\n grid-area: filter-search;\n}\n\n.filter__types {\n grid-area: filter-types;\n}\n\n.filter__actions {\n grid-area: filter-actions;\n}\n\n.filter__kb-properties {\n grid-area: filter-kb-properties;\n}\n\n.filter__buttons {\n margin-inline-start: auto;\n grid-area: filter-buttons;\n}\n\n.main {\n position: relative;\n display: grid;\n overflow: auto;\n}\n\n.loader {\n position: relative;\n inline-size: 100%;\n block-size: 100%;\n inset-block-start: 0;\n}\n\n.tabular-grid {\n border-radius: 4px;\n overflow: hidden;\n}\n\n.empty-state {\n block-size: 100%;\n}\n\n.loader {\n --elevation-background-color: var(--mer-surface__elevation--01);\n}\n\n.messages-list {\n margin: 0;\n padding: 0;\n list-style: none;\n max-inline-size: 800px;\n padding: 8px 0;\n list-style-type: none;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--3xs);\n}\n\n.message-description {\n line-height: 1.5;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.message-icon {\n flex-shrink: 0;\n}\n\n.tabular-grid.empty-result::part(main) {\n overflow: hidden;\n}\n\n.input-comments-container {\n position: relative;\n}\n\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: 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;\n}\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;\n margin-inline-end: 0;\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--enabled);\n cursor: pointer;\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--hover);\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--active);\n}\n\n.tabular-grid-row-actions::part(main),\n.property-grid-row-actions::part(main) {\n gap: 0 !important;\n}\n\n.tabular-grid-row-actions > button {\n justify-content: start;\n}\n\n.pill {\n --pill-background-color: transparent;\n --pill-color: transparent;\n --pill-border-color: transparent;\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.pill--update, .pill--pending {\n --pill-background-color: var();\n --pill-color: var(--mer-color__neutral-gray--400);\n --pill-border-color: var();\n}\n.pill--to-merge-marked {\n --pill-background-color: var();\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var();\n}\n.pill--ignored {\n --pill-background-color: var(--mer-surface__elevation--02);\n --pill-color: var(--mer-text__on-disabled);\n --pill-border-color: var(--mer-border-color__primary--disabled);\n}\n.pill--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.pill--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.pill--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.pill--updated {\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.pill--transitioning {\n --pill-color: transparent;\n}\n\n.updating-spinner-caption {\n display: flex;\n align-items: center;\n gap: 6px;\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}\n.updating-spinner-caption::before {\n display: inline-block;\n content: \"\";\n width: 14px;\n height: 14px;\n border: calc(14px / 7) solid var(--mer-color__tinted-primary--50);\n border-top: calc(14px / 7) solid var(--mer-color__primary--300);\n border-radius: 50%;\n animation: spin var(--mer-timing--regular) linear infinite;\n}\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\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\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\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\n.tabular-grid-cell::part(actions-icon) {\n padding-block: 6px;\n}\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: 200px;\n}";
22
+ const updateCss = ".custom-icon-text-wrapper {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n/*Gx Ide*/\n/*@container queries*/\n/* hiChar styles\nFound on /common/helpers.tsx hiChar function is used to add a span/class to every character that matches a search value. It is used to help the user see why the filter results are filtered. The span/class on the characters are useless without proper styling.\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 display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content max-content 1fr;\n}\n\n.detail__version, .detail__knowledge-base {\n padding-inline: 24px;\n border-inline-end: 1px solid var(--mer-border-color__on-elevation--01);\n}\n\n.detail__genexus-server {\n padding-inline-end: 24px;\n border-inline-end: 1px solid var(--mer-border-color__on-elevation--01);\n}\n\n.detail__last-full-update {\n padding-inline-start: 24px;\n}\n\n.section {\n display: contents;\n}\n\n.header {\n display: grid;\n grid-template-columns: 1fr max-content;\n}\n\n.header__detail {\n display: grid;\n row-gap: var(--mer-spacing--md);\n grid-auto-columns: max-content;\n grid-auto-rows: max-content;\n grid-template-areas: \"detail-heading-gx . . .\" \"detail-genexus-server detail-knowledge-base detail-version detail-last-full-update\";\n}\n\n.detail__label {\n color: var(--mer-color__neutral-gray--400);\n}\n\n.detail__heading-genexus-server {\n grid-area: detail-heading-gx;\n}\n\n.detail__genexus-server {\n grid-area: detail-genexus-server;\n}\n.detail__genexus-server > 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}\n.detail__link:hover {\n color: var(--mer-text__primary--hover);\n}\n.detail__link:active {\n color: var(--mer-text__primary--active);\n}\n\n.detail__knowledge-base {\n grid-area: detail-knowledge-base;\n}\n\n.detail__version {\n grid-area: detail-version;\n}\n\n.detail__last-full-update {\n grid-area: detail-last-full-update;\n}\n\n.filter-container {\n container-type: inline-size;\n box-sizing: border-box;\n}\n\n.filter {\n display: grid;\n margin-block-start: var(--mer-spacing--lg);\n grid-template-areas: \"filter-search filter-types filter-actions filter-kb-properties filter-buttons\";\n grid-template-columns: 200px 200px 200px max-content 1fr;\n gap: 12px;\n}\n\n@container (max-width: 1100px) {\n .filter-container > .filter {\n grid-template-columns: 200px 200px 200px 1fr;\n grid-template-areas: \"filter-search filter-types filter-actions filter-buttons\" \"filter-kb-properties . . .\";\n grid-auto-rows: max-content;\n }\n}\n@container (max-width: 900px) {\n .filter-container > .filter {\n grid-template-columns: 1fr 1fr 1fr;\n grid-template-areas: \"filter-search filter-types filter-actions\" \"filter-kb-properties filter-buttons filter-buttons\";\n grid-auto-rows: max-content;\n }\n}\n.filter__search {\n grid-area: filter-search;\n}\n\n.filter__types {\n grid-area: filter-types;\n}\n\n.filter__actions {\n grid-area: filter-actions;\n}\n\n.filter__kb-properties {\n grid-area: filter-kb-properties;\n}\n\n.filter__buttons {\n margin-inline-start: auto;\n grid-area: filter-buttons;\n}\n\n.main {\n position: relative;\n display: grid;\n overflow: auto;\n}\n\n.loader {\n position: relative;\n inline-size: 100%;\n block-size: 100%;\n inset-block-start: 0;\n}\n\n.tabular-grid {\n border-radius: 4px;\n overflow: hidden;\n}\n\n.empty-state {\n block-size: 100%;\n}\n\n.loader {\n --elevation-background-color: var(--mer-surface__elevation--01);\n}\n\n.messages-list {\n margin: 0;\n padding: 0;\n list-style: none;\n max-inline-size: 800px;\n padding: 8px 0;\n list-style-type: none;\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--3xs);\n}\n\n.message-description {\n line-height: 1.5;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.message-icon {\n flex-shrink: 0;\n}\n\n.tabular-grid.empty-result::part(main) {\n overflow: hidden;\n}\n\n.input-comments-container {\n position: relative;\n}\n\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: 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;\n}\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;\n margin-inline-end: 0;\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--enabled);\n cursor: pointer;\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):hover {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--hover);\n}\nch-tabular-grid-cell.tabular-grid-cell::part(actions-icon):active {\n --icon-path: var(--icon__gemini-tools_show-more-vertical_neutral--active);\n}\n\n.tabular-grid-row-actions::part(main),\n.property-grid-row-actions::part(main) {\n gap: 0 !important;\n}\n\n.tabular-grid-row-actions > button {\n justify-content: start;\n}\n\n.pill {\n --pill-background-color: transparent;\n --pill-color: transparent;\n --pill-border-color: transparent;\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.pill--update, .pill--pending {\n --pill-background-color: var();\n --pill-color: var(--mer-color__neutral-gray--400);\n --pill-border-color: var();\n}\n.pill--to-merge-marked {\n --pill-background-color: var();\n --pill-color: var(--mer-border-color__primary);\n --pill-border-color: var();\n}\n.pill--ignored {\n --pill-background-color: var(--mer-surface__elevation--02);\n --pill-color: var(--mer-text__on-disabled);\n --pill-border-color: var(--mer-border-color__primary--disabled);\n}\n.pill--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.pill--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.pill--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.pill--updated {\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.pill--transitioning {\n --pill-color: transparent;\n}\n\n.updating-spinner-caption {\n display: flex;\n align-items: center;\n gap: 6px;\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}\n.updating-spinner-caption::before {\n display: inline-block;\n content: \"\";\n width: 14px;\n height: 14px;\n border: calc(14px / 7) solid var(--mer-color__tinted-primary--50);\n border-top: calc(14px / 7) solid var(--mer-color__primary--300);\n border-radius: 50%;\n animation: spin var(--mer-timing--regular) linear infinite;\n}\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\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\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\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\n.tabular-grid-cell::part(actions-icon) {\n padding-block: 6px;\n}\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 pointer-events: none;\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: 200px;\n}";
19
23
 
20
24
  var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
21
25
  if (kind === "a" && !f)
@@ -33,7 +37,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
33
37
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
34
38
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
35
39
  };
36
- var _GxIdeTeamDevUpdate_componentLocale, _GxIdeTeamDevUpdate_actionsComboBoxModel, _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, _GxIdeTeamDevUpdate_updateCheckedClickedHandler, _GxIdeTeamDevUpdate_reloadClickedHandler, _GxIdeTeamDevUpdate_updateObjectsHandler, _GxIdeTeamDevUpdate_renderActionCellContent, _GxIdeTeamDevUpdate_updateSingleObject, _GxIdeTeamDevUpdate_renderObjectStatus, _GxIdeTeamDevUpdate_renderRows, _GxIdeTeamDevUpdate_rowMarkingChangedHandler, _GxIdeTeamDevUpdate_updatePendingCheckedItems, _GxIdeTeamDevUpdate_searchInputHandler, _GxIdeTeamDevUpdate_actionChangedHandler, _GxIdeTeamDevUpdate_typeChangedHandler, _GxIdeTeamDevUpdate_setInitialObjectsStatus, _GxIdeTeamDevUpdate_loadData, _GxIdeTeamDevUpdate_markPendingObjects, _GxIdeTeamDevUpdate_applyClientFilter, _GxIdeTeamDevUpdate_onRowContextMenuHandler, _GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes, _GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes, _GxIdeTeamDevUpdate_kbPropertiesChangedHandler;
40
+ var _GxIdeTeamDevUpdate_componentLocale, _GxIdeTeamDevUpdate_actionsComboBoxModel, _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, _GxIdeTeamDevUpdate_updateCheckedClickedHandler, _GxIdeTeamDevUpdate_reloadClickedHandler, _GxIdeTeamDevUpdate_updateObjectsHandler, _GxIdeTeamDevUpdate_renderActionCellContent, _GxIdeTeamDevUpdate_updateSingleObject, _GxIdeTeamDevUpdate_renderObjectStatus, _GxIdeTeamDevUpdate_renderRows, _GxIdeTeamDevUpdate_rowMarkingChangedHandler, _GxIdeTeamDevUpdate_updatePendingCheckedItems, _GxIdeTeamDevUpdate_searchInputHandler, _GxIdeTeamDevUpdate_actionChangedHandler, _GxIdeTeamDevUpdate_typeChangedHandler, _GxIdeTeamDevUpdate_setInitialObjectsStatus, _GxIdeTeamDevUpdate_loadData, _GxIdeTeamDevUpdate_markPendingObjects, _GxIdeTeamDevUpdate_applyClientFilter, _GxIdeTeamDevUpdate_onRowContextMenuHandler, _GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes, _GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes, _GxIdeTeamDevUpdate_kbPropertiesChangedHandler, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, _GxIdeTeamDevUpdate_columnSelectorClickedCallback;
37
41
  const CSS_BUNDLES = [
38
42
  "resets/box-sizing",
39
43
  "components/tabular-grid",
@@ -136,7 +140,7 @@ const GxIdeTeamDevUpdate = class {
136
140
  this.objectsMessagesDataMap.delete(objectResult.id);
137
141
  }
138
142
  if (objectResult.result === "updated") {
139
- this.alreadyUpdatedObjectsIdsSet.add(objectResult.id);
143
+ this.alreadyUpdatedObjectsIdsSet = new Set(this.alreadyUpdatedObjectsIdsSet).add(objectResult.id);
140
144
  this.objectsStatusMap.set(objectResult.id, "updated");
141
145
  await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").markRow(objectResult.id, false);
142
146
  }
@@ -414,6 +418,39 @@ const GxIdeTeamDevUpdate = class {
414
418
  this.kbPropertiesChecked = event.detail === CHECKBOX_CHECKED_VALUE;
415
419
  __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
416
420
  });
421
+ _GxIdeTeamDevUpdate_sortTabularGridColumnCallback.set(this, (e) => {
422
+ const columnId = e.detail.columnId;
423
+ let objectProperty;
424
+ let dateType = "string";
425
+ if (columnId === tabularGridRender.COLUMNS_IDS.modifiedOn ||
426
+ columnId === tabularGridRender.COLUMNS_IDS.lastSynchronized) {
427
+ dateType = "dateString";
428
+ }
429
+ this.pendingObjectsAfterActionFilter = [
430
+ ...tabularGridColumnSort.sortTabularGridColumn(e, this.pendingObjectsAfterActionFilter, dateType, objectProperty)
431
+ ];
432
+ this.ignoredObjectsAfterActionFilter = [
433
+ ...tabularGridColumnSort.sortTabularGridColumn(e, this.ignoredObjectsAfterActionFilter, dateType, objectProperty)
434
+ ];
435
+ });
436
+ /**
437
+ * WA: Ignored objects must always remain unchecked.
438
+ * Because `tabular-grid` selects all rows when the checkbox column is toggled,
439
+ * we need to manually unselect the ignored IDs. // TODO: Move this function
440
+ * to common
441
+ */
442
+ _GxIdeTeamDevUpdate_columnSelectorClickedCallback.set(this, async (e) => {
443
+ const allRowsChecked = e.detail;
444
+ if (allRowsChecked) {
445
+ const markedRowsIds = await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f").getMarkedRows();
446
+ const ignoredMarkedRowsIds = markedRowsIds.filter(rowId => {
447
+ return this.ignoredIdsSet.has(rowId);
448
+ });
449
+ if (ignoredMarkedRowsIds.length) {
450
+ uncheckIgnored.uncheckIgnoredObjects(ignoredMarkedRowsIds, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, "f"));
451
+ }
452
+ }
453
+ });
417
454
  this.atLeastOneObjectIsChecked = false;
418
455
  this.loading = true;
419
456
  this.menuContextAction = undefined;
@@ -425,6 +462,7 @@ const GxIdeTeamDevUpdate = class {
425
462
  this.ignoredIdsSet = new Set([]);
426
463
  this.objectsMessagesDataMap = new Map();
427
464
  this.updating = false;
465
+ this.allPendingAreUpdated = false;
428
466
  this.kbPropertiesChecked = false;
429
467
  this.typesComboBoxModel = undefined;
430
468
  this.selectedType = undefined;
@@ -447,6 +485,11 @@ const GxIdeTeamDevUpdate = class {
447
485
  markedObjectsSetChanged(newMarkedObjectsSet) {
448
486
  this.atLeastOneObjectIsChecked = newMarkedObjectsSet.size > 0;
449
487
  }
488
+ alreadyUpdatedObjectsIdsSetChanged(newUpdatedObjectsIdsSet) {
489
+ const pendingIdsSetAndUpdatedIdsSetAreEqual = uncheckIgnored.areSetsEqual(newUpdatedObjectsIdsSet, this.pendingIdsSet);
490
+ this.allPendingAreUpdated =
491
+ pendingIdsSetAndUpdatedIdsSetAreEqual && this.pendingIdsSet.size > 0;
492
+ }
450
493
  objectsStatusMapChanged(newObjectsStatusMap) {
451
494
  const someObjectIsUpdating = [...newObjectsStatusMap.entries()].find(([, state]) => state === "updating");
452
495
  if (!someObjectIsUpdating) {
@@ -454,15 +497,20 @@ const GxIdeTeamDevUpdate = class {
454
497
  }
455
498
  }
456
499
  pendingAndIgnoredChanged() {
457
- __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_applyClientFilter, "f").call(this);
458
- this.pendingIdsSet.clear();
500
+ this.pendingIdsSet.clear(); // before pendingIdsSet.add
501
+ this.ignoredIdsSet.clear(); // before pendingIdsSet.add
502
+ this.objectsMessagesDataMap = new Map();
503
+ this.alreadyUpdatedObjectsIdsSet = new Set();
504
+ this.markedObjectsSet = new Set(); // before #markPendingObjects
459
505
  this.pendingAndIgnored.pendingForUpdate.forEach(pending => {
460
506
  this.pendingIdsSet.add(pending.id);
461
507
  });
462
- this.ignoredIdsSet.clear();
463
508
  this.pendingAndIgnored.ignoredObjects.forEach(ignored => {
464
509
  this.ignoredIdsSet.add(ignored.id);
465
510
  });
511
+ __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_markPendingObjects, "f").call(this); // after pendingIdsSet.add and ignoredIdsSet.add
512
+ __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_setInitialObjectsStatus, "f").call(this); // after pendingIdsSet.add and ignoredIdsSet.add
513
+ __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_applyClientFilter, "f").call(this);
466
514
  }
467
515
  async componentWillLoad() {
468
516
  var _a;
@@ -496,6 +544,8 @@ const GxIdeTeamDevUpdate = class {
496
544
  }
497
545
  async componentDidLoad() {
498
546
  await __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
547
+ // initialize "allPendingAreUpdated"
548
+ this.alreadyUpdatedObjectsIdsSetChanged(this.alreadyUpdatedObjectsIdsSet);
499
549
  }
500
550
  /**
501
551
  * Used by the host to instruct the component to force a data reload in the grids.
@@ -504,7 +554,6 @@ const GxIdeTeamDevUpdate = class {
504
554
  __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_loadData, "f").call(this, true);
505
555
  }
506
556
  render() {
507
- const enableRichRowSelector = true;
508
557
  const disableControls = this.updating || this.loading;
509
558
  const gridIsEmpty = this.pendingObjectsAfterActionFilter.length === 0 &&
510
559
  this.ignoredObjectsAfterActionFilter.length === 0;
@@ -546,10 +595,10 @@ const GxIdeTeamDevUpdate = class {
546
595
  "objects-tabular-grid": true,
547
596
  "disabled-custom-selector": this.updating,
548
597
  "empty-result": gridIsEmpty
549
- }, keyboardNavigationMode: "focus", rowSelectionMode: "multiple", onRowMarkingChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_rowMarkingChangedHandler, "f"), onRowContextMenu: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_onRowContextMenuHandler, "f").call(this), ref: (el) => (__classPrivateFieldSet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, el, "f")) }, index.h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: "name", columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.name, columnType: "rich", richRowSelector: enableRichRowSelector, richRowSelectorMode: "mark", settingable: false, size: "max-content" }), index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: "type", columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.type, settingable: false, size: "max-content" }), index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: "description", columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.description, settingable: false, size: config.config.tabularGrid.colSize.description }), index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: "modified-on", columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.modifiedOn, settingable: false, size: "max-content" }), index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: "action", columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.action, settingable: false, size: "max-content" }), index.h("ch-tabular-grid-column", {
598
+ }, keyboardNavigationMode: "focus", rowSelectionMode: "multiple", onRowMarkingChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_rowMarkingChangedHandler, "f"), onRowContextMenu: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_onRowContextMenuHandler, "f").call(this), ref: (el) => (__classPrivateFieldSet(this, _GxIdeTeamDevUpdate_chGridPendingForUpdateEl, el, "f")) }, index.h("ch-tabular-grid-columnset", { class: "tabular-grid-column-set" }, index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: tabularGridRender.COLUMNS_IDS.name, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.name, columnType: "rich", richRowSelector: !this.allPendingAreUpdated, richRowSelectorMode: "mark", settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, "f"), onColumnSelectorClicked: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_columnSelectorClickedCallback, "f"), size: "max-content" }), index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: tabularGridRender.COLUMNS_IDS.type, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.type, settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, "f"), size: "max-content" }), index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: tabularGridRender.COLUMNS_IDS.description, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.description, settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, "f"), size: config.config.tabularGrid.colSize.description }), index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: tabularGridRender.COLUMNS_IDS.modifiedOn, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.modifiedOn, settingable: false, sortable: true, onColumnSortChanged: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_sortTabularGridColumnCallback, "f"), size: "max-content" }), index.h("ch-tabular-grid-column", { class: "tabular-grid-column", columnId: tabularGridRender.COLUMNS_IDS.action, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.action, settingable: false, sortable: false, size: "max-content" }), index.h("ch-tabular-grid-column", {
550
599
  // size of this column should the enough for the largest pill, and no more.
551
600
  // this prevents layout shifts when pills state changes.
552
- class: "tabular-grid-column", columnId: "status", columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.status, settingable: false, size: "100px"
601
+ class: "tabular-grid-column", columnId: tabularGridRender.COLUMNS_IDS.status, columnName: __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.status, settingable: false, sortable: false, size: "100px"
553
602
  })), !gridIsEmpty
554
603
  ? [
555
604
  index.h("ch-tabular-grid-rowset", { class: "tabular-grid-rowset" }, index.h("ch-tabular-grid-rowset-legend", { class: "tabular-grid-rowset-legend" }, __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_componentLocale, "f").objects.pending), __classPrivateFieldGet(this, _GxIdeTeamDevUpdate_renderRows, "f").call(this, "pending")),
@@ -561,11 +610,12 @@ const GxIdeTeamDevUpdate = class {
561
610
  get el() { return index.getElement(this); }
562
611
  static get watchers() { return {
563
612
  "markedObjectsSet": ["markedObjectsSetChanged"],
613
+ "alreadyUpdatedObjectsIdsSet": ["alreadyUpdatedObjectsIdsSetChanged"],
564
614
  "objectsStatusMap": ["objectsStatusMapChanged"],
565
615
  "pendingAndIgnored": ["pendingAndIgnoredChanged"]
566
616
  }; }
567
617
  };
568
- _GxIdeTeamDevUpdate_componentLocale = new WeakMap(), _GxIdeTeamDevUpdate_actionsComboBoxModel = new WeakMap(), _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser = new WeakMap(), _GxIdeTeamDevUpdate_chGridPendingForUpdateEl = new WeakMap(), _GxIdeTeamDevUpdate_updateCheckedClickedHandler = new WeakMap(), _GxIdeTeamDevUpdate_reloadClickedHandler = new WeakMap(), _GxIdeTeamDevUpdate_updateObjectsHandler = new WeakMap(), _GxIdeTeamDevUpdate_renderActionCellContent = new WeakMap(), _GxIdeTeamDevUpdate_updateSingleObject = new WeakMap(), _GxIdeTeamDevUpdate_renderObjectStatus = new WeakMap(), _GxIdeTeamDevUpdate_renderRows = new WeakMap(), _GxIdeTeamDevUpdate_rowMarkingChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_updatePendingCheckedItems = new WeakMap(), _GxIdeTeamDevUpdate_searchInputHandler = new WeakMap(), _GxIdeTeamDevUpdate_actionChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_typeChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_setInitialObjectsStatus = new WeakMap(), _GxIdeTeamDevUpdate_loadData = new WeakMap(), _GxIdeTeamDevUpdate_markPendingObjects = new WeakMap(), _GxIdeTeamDevUpdate_applyClientFilter = new WeakMap(), _GxIdeTeamDevUpdate_onRowContextMenuHandler = new WeakMap(), _GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes = new WeakMap(), _GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes = new WeakMap(), _GxIdeTeamDevUpdate_kbPropertiesChangedHandler = new WeakMap();
618
+ _GxIdeTeamDevUpdate_componentLocale = new WeakMap(), _GxIdeTeamDevUpdate_actionsComboBoxModel = new WeakMap(), _GxIdeTeamDevUpdate_rowCheckedChangedByTheUser = new WeakMap(), _GxIdeTeamDevUpdate_chGridPendingForUpdateEl = new WeakMap(), _GxIdeTeamDevUpdate_updateCheckedClickedHandler = new WeakMap(), _GxIdeTeamDevUpdate_reloadClickedHandler = new WeakMap(), _GxIdeTeamDevUpdate_updateObjectsHandler = new WeakMap(), _GxIdeTeamDevUpdate_renderActionCellContent = new WeakMap(), _GxIdeTeamDevUpdate_updateSingleObject = new WeakMap(), _GxIdeTeamDevUpdate_renderObjectStatus = new WeakMap(), _GxIdeTeamDevUpdate_renderRows = new WeakMap(), _GxIdeTeamDevUpdate_rowMarkingChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_updatePendingCheckedItems = new WeakMap(), _GxIdeTeamDevUpdate_searchInputHandler = new WeakMap(), _GxIdeTeamDevUpdate_actionChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_typeChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_setInitialObjectsStatus = new WeakMap(), _GxIdeTeamDevUpdate_loadData = new WeakMap(), _GxIdeTeamDevUpdate_markPendingObjects = new WeakMap(), _GxIdeTeamDevUpdate_applyClientFilter = new WeakMap(), _GxIdeTeamDevUpdate_onRowContextMenuHandler = new WeakMap(), _GxIdeTeamDevUpdate_revertPendingCommitsCheckboxes = new WeakMap(), _GxIdeTeamDevUpdate_togglePendingCommitsCheckboxes = new WeakMap(), _GxIdeTeamDevUpdate_kbPropertiesChangedHandler = new WeakMap(), _GxIdeTeamDevUpdate_sortTabularGridColumnCallback = new WeakMap(), _GxIdeTeamDevUpdate_columnSelectorClickedCallback = new WeakMap();
569
619
  GxIdeTeamDevUpdate.style = updateCss;
570
620
 
571
621
  exports.gx_ide_team_dev_update = GxIdeTeamDevUpdate;