@genexus/genexus-ide-ui 0.0.30 → 0.0.32

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 (108) hide show
  1. package/dist/cjs/ch-action-group_2.cjs.entry.js +2 -9
  2. package/dist/cjs/ch-checkbox.cjs.entry.js +1 -1
  3. package/dist/cjs/ch-dropdown-item.cjs.entry.js +8 -8
  4. package/dist/cjs/ch-dropdown.cjs.entry.js +11 -10
  5. package/dist/cjs/ch-suggest_4.cjs.entry.js +1 -0
  6. package/dist/cjs/ch-test-action-group.cjs.entry.js +2 -2
  7. package/dist/cjs/ch-test-tree-x.cjs.entry.js +150 -80
  8. package/dist/cjs/ch-tree-x_3.cjs.entry.js +211 -132
  9. package/dist/cjs/ch-window_2.cjs.entry.js +28 -12
  10. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  11. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
  12. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +17 -32
  13. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +16 -1
  14. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +33 -31
  15. package/dist/cjs/gxg-combo-box_6.cjs.entry.js +10 -4
  16. package/dist/cjs/gxg-date-picker.cjs.entry.js +4 -4
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/collection/components/team-dev-commit/team-dev-commit.js +12 -18
  19. package/dist/collection/components/team-dev-update/team-dev-update.js +75 -35
  20. package/dist/collection/components/team-dev-update-partial-selection/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.en.json +4 -2
  21. package/dist/collection/components/team-dev-update-partial-selection/team-dev-update-partial-selection.css +1 -0
  22. package/dist/collection/components/team-dev-update-partial-selection/team-dev-update-partial-selection.js +22 -46
  23. package/dist/collection/components/team-dev-update-to-revision/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.en.json +1 -1
  24. package/dist/collection/components/team-dev-update-to-revision/team-dev-update-to-revision.js +33 -1
  25. package/dist/components/action-group-item.js +1 -9
  26. package/dist/components/action-group.js +1 -1
  27. package/dist/components/ch-suggest2.js +1 -0
  28. package/dist/components/ch-test-action-group.js +2 -2
  29. package/dist/components/ch-test-tree-x.js +157 -83
  30. package/dist/components/ch-window2.js +31 -13
  31. package/dist/components/checkbox.js +1 -1
  32. package/dist/components/combo-box-item.js +2 -2
  33. package/dist/components/combo-box.js +8 -2
  34. package/dist/components/dropdown-item.js +8 -8
  35. package/dist/components/dropdown.js +11 -10
  36. package/dist/components/gx-ide-team-dev-commit.js +4 -4
  37. package/dist/components/gx-ide-team-dev-update-partial-selection.js +18 -33
  38. package/dist/components/gx-ide-team-dev-update-to-revision.js +17 -1
  39. package/dist/components/gx-ide-team-dev-update.js +36 -32
  40. package/dist/components/gxg-date-picker.js +4 -4
  41. package/dist/components/tree-x-list-item.js +31 -17
  42. package/dist/components/tree-x-list.js +9 -4
  43. package/dist/components/tree-x.js +182 -117
  44. package/dist/esm/ch-action-group_2.entry.js +2 -9
  45. package/dist/esm/ch-checkbox.entry.js +1 -1
  46. package/dist/esm/ch-dropdown-item.entry.js +8 -8
  47. package/dist/esm/ch-dropdown.entry.js +11 -10
  48. package/dist/esm/ch-suggest_4.entry.js +1 -0
  49. package/dist/esm/ch-test-action-group.entry.js +2 -2
  50. package/dist/esm/ch-test-tree-x.entry.js +150 -80
  51. package/dist/esm/ch-tree-x_3.entry.js +211 -132
  52. package/dist/esm/ch-window_2.entry.js +28 -12
  53. package/dist/esm/genexus-ide-ui.js +1 -1
  54. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  55. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +17 -32
  56. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +16 -1
  57. package/dist/esm/gx-ide-team-dev-update.entry.js +33 -31
  58. package/dist/esm/gxg-combo-box_6.entry.js +10 -4
  59. package/dist/esm/gxg-date-picker.entry.js +4 -4
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
  62. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  63. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-partial-selection/langs/team-dev-update-partial-selection.lang.en.json +4 -2
  64. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-update-to-revision/langs/team-dev-update-to-revision.lang.en.json +1 -1
  65. package/dist/genexus-ide-ui/p-1b6b11e1.entry.js +1 -0
  66. package/dist/genexus-ide-ui/p-1fe05a05.entry.js +1 -0
  67. package/dist/genexus-ide-ui/p-24f47ee2.entry.js +1 -0
  68. package/dist/genexus-ide-ui/{p-54bab171.entry.js → p-28d0afda.entry.js} +1 -1
  69. package/dist/genexus-ide-ui/{p-6050cdba.entry.js → p-48412811.entry.js} +1 -1
  70. package/dist/genexus-ide-ui/p-714bd8ea.entry.js +1 -0
  71. package/dist/genexus-ide-ui/p-8592f072.entry.js +1 -0
  72. package/dist/genexus-ide-ui/p-8c2ab053.entry.js +1 -0
  73. package/dist/genexus-ide-ui/p-976e8118.entry.js +1 -0
  74. package/dist/genexus-ide-ui/p-a5463fc9.entry.js +1 -0
  75. package/dist/genexus-ide-ui/p-b2923298.entry.js +1 -0
  76. package/dist/genexus-ide-ui/p-bb1809cb.entry.js +1 -0
  77. package/dist/genexus-ide-ui/p-cf41f154.entry.js +1 -0
  78. package/dist/genexus-ide-ui/p-e8a21ed7.entry.js +1 -0
  79. package/dist/genexus-ide-ui/p-f794dc13.entry.js +1 -0
  80. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/action-group-item/action-group-item.css +0 -1
  81. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/checkbox/checkbox.css +5 -3
  82. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown/dropdown.css +15 -33
  83. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown-item/dropdown-item.css +0 -4
  84. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +0 -10
  85. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x/tree-x.css +20 -3
  86. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list-item/tree-x-list-item.css +25 -8
  87. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/window/ch-window.css +51 -2
  88. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box-item/combo-box-item.css +1 -1
  89. package/dist/types/common/types.d.ts +9 -0
  90. package/dist/types/components/team-dev-commit/team-dev-commit.d.ts +8 -15
  91. package/dist/types/components/team-dev-update/team-dev-update.d.ts +16 -13
  92. package/dist/types/components/team-dev-update-partial-selection/team-dev-update-partial-selection.d.ts +11 -14
  93. package/dist/types/components/team-dev-update-to-revision/team-dev-update-to-revision.d.ts +8 -0
  94. package/dist/types/components.d.ts +39 -19
  95. package/package.json +3 -3
  96. package/dist/genexus-ide-ui/p-097a3eeb.entry.js +0 -1
  97. package/dist/genexus-ide-ui/p-32b8abf6.entry.js +0 -1
  98. package/dist/genexus-ide-ui/p-3d9a4ede.entry.js +0 -1
  99. package/dist/genexus-ide-ui/p-4bbe1c18.entry.js +0 -1
  100. package/dist/genexus-ide-ui/p-53d36ef7.entry.js +0 -1
  101. package/dist/genexus-ide-ui/p-5c64c57f.entry.js +0 -1
  102. package/dist/genexus-ide-ui/p-5ff04ebe.entry.js +0 -1
  103. package/dist/genexus-ide-ui/p-6e80380b.entry.js +0 -1
  104. package/dist/genexus-ide-ui/p-757f8567.entry.js +0 -1
  105. package/dist/genexus-ide-ui/p-8d46f8d8.entry.js +0 -1
  106. package/dist/genexus-ide-ui/p-a0e85c2a.entry.js +0 -1
  107. package/dist/genexus-ide-ui/p-cda1623a.entry.js +0 -1
  108. package/dist/genexus-ide-ui/p-f8561da6.entry.js +0 -1
@@ -93,7 +93,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
93
93
  if (this.chGridPendingCommitsEl) {
94
94
  const addedRowsIds = e.detail.addedRowsId;
95
95
  const removedRowsId = e.detail.removedRowsId;
96
- const pendingItemCheckedResult = await this.pendingItemCheckedCallback({
96
+ const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({
97
97
  itemsChecked: addedRowsIds,
98
98
  itemsUnchecked: removedRowsId
99
99
  });
@@ -185,7 +185,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
185
185
  this.loadCallback = undefined;
186
186
  this.commitCallback = undefined;
187
187
  this.selectCallback = undefined;
188
- this.pendingItemCheckedCallback = undefined;
188
+ this.pendingItemsCheckedCallback = undefined;
189
189
  this.objectsContextMenuCallback = undefined;
190
190
  }
191
191
  // 6.COMPONENT LIFECYCLE METHODS //
@@ -217,7 +217,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
217
217
  // 10.RENDER() FUNCTION //
218
218
  render() {
219
219
  return (h(Host, { class: "gx-ide-component" }, h("div", { class: "gx-ide-main-wrapper gx-ide-overflow" }, h("gxg-container", null, h("header", { class: "header grid" }, h("gxg-form-textarea", { id: "gxg-textarea", height: "100px", label: this._componentLocale.topMenu.commentLabel, value: this.comment, ref: (el) => (this.commitComment = el), placeholder: this._componentLocale.topMenu.commentPlaceholder, part: "comment" }), h("gxg-button", { class: "header-button", type: "outlined", part: "location", onClick: this.getRecentCommentHandler }, this._componentLocale.topMenu.recentCommentsButton))), h("main", { class: "main" }, h("gxg-container", { fieldset: true, noContentPadding: !!this.filtersHidden }, h("div", { class: "grid second-grid" }, h("div", { class: "actions-row grid" }, h("gxg-form-text", { class: this.filtersHidden ? "hidden" : null, "disable-filter": true, label: this._componentLocale.filtersMenu.patternLabel, labelPosition: "start", value: "", ref: (el) => (this.patternEl = el), "display-validation-styles": true, "display-validation-message": true, part: "pattern", onInput: this.loadData }), h("div", { class: "action-buttons", slot: "tab-bar" }, h("gxg-button", { onClick: this.toggleFiltersHandler, type: "secondary-icon-only", icon: "patterns/filters", part: "gxg-button gxg-button--show-filter" }), h("gxg-button", { type: "secondary-icon-only", icon: "gemini-tools/reset", onClick: this.loadData, part: "gxg-button gxg-button--reload" }))), h("div", { class: "filters-grid grid " +
220
- (this.filtersHidden ? "hidden" : null) }, h("div", { class: "first-row grid" }, h("gxg-combo-box", { labelPosition: "start", "disable-filter": true, label: this._componentLocale.filtersMenu.changesetLabel, value: this.changeSet[0]["id"], ref: (el) => (this.changeSetEl = el), part: "change-set", "display-validation-styles": true, "display-validation-message": true, onValueChanged: this.loadData }, renderComboItems(this.changeSet)), h("gxg-combo-box", { labelPosition: "start", "disable-filter": true, label: this._componentLocale.filtersMenu.typeLabel, value: this.types[0]["id"], ref: (el) => (this.typesEl = el), part: "type", onValueChanged: this.loadData }, renderComboItems(this.types))), h("div", { class: "second-row grid" }, h("gxg-combo-box", { labelPosition: "start", "disable-filter": true, label: this._componentLocale.filtersMenu.folderLabel, value: this.folders[0]["id"], ref: (el) => (this.foldersEl = el), part: "folder", "display-validation-styles": true, "display-validation-message": true, onValueChanged: this.loadData }, renderComboItems(this.folders)), h("gxg-combo-box", { labelPosition: "start", "disable-filter": true, label: this._componentLocale.filtersMenu.categoryLabel, value: this.categories[0]["id"], ref: (el) => (this.categoriesEl = el), part: "categories", onValueChanged: this.loadData }, renderComboItems(this.categories)))))), h("gxg-container", null, h("gxg-tabs", { height: "100%", position: "top", class: "gxg-tabs" }, h("gxg-tab-bar", { slot: "tab-bar-container" }, h("gxg-tab-button", { slot: "tab-bar", "tab-label": `${this._componentLocale.tabs.pendingCommits} (${this.pendingCommits.length})`, tab: "pending-commits", "is-selected": true }), h("gxg-tab-button", { slot: "tab-bar", "tab-label": `${this._componentLocale.tabs.ignoredObjects} (${this.ignoredObjects.length})`, tab: "ignored-objects" })), h("gxg-tab", { tab: "pending-commits", "no-padding": true }, this.renderPendingCommitsGrid()), h("gxg-tab", { tab: "ignored-objects", "no-padding": true }, this.renderIgnoredObjectsGrid())), h("gxg-button", { slot: "footer", type: "primary-text-only", onClick: this.commitCallbackHandler, part: "commit-button" }, this._componentLocale.footer.commitButton))))));
220
+ (this.filtersHidden ? "hidden" : null) }, h("div", { class: "first-row grid" }, h("gxg-combo-box", { labelPosition: "start", label: this._componentLocale.filtersMenu.changesetLabel, value: this.changeSet[0]["id"], ref: (el) => (this.changeSetEl = el), part: "change-set", "display-validation-styles": true, "display-validation-message": true, onValueChanged: this.loadData }, renderComboItems(this.changeSet)), h("gxg-combo-box", { labelPosition: "start", label: this._componentLocale.filtersMenu.typeLabel, value: this.types[0]["id"], ref: (el) => (this.typesEl = el), part: "type", onValueChanged: this.loadData }, renderComboItems(this.types))), h("div", { class: "second-row grid" }, h("gxg-combo-box", { labelPosition: "start", label: this._componentLocale.filtersMenu.folderLabel, value: this.folders[0]["id"], ref: (el) => (this.foldersEl = el), part: "folder", "display-validation-styles": true, "display-validation-message": true, onValueChanged: this.loadData }, renderComboItems(this.folders)), h("gxg-combo-box", { labelPosition: "start", label: this._componentLocale.filtersMenu.categoryLabel, value: this.categories[0]["id"], ref: (el) => (this.categoriesEl = el), part: "categories", onValueChanged: this.loadData }, renderComboItems(this.categories)))))), h("gxg-container", null, h("gxg-tabs", { height: "100%", position: "top", class: "gxg-tabs" }, h("gxg-tab-bar", { slot: "tab-bar-container" }, h("gxg-tab-button", { slot: "tab-bar", "tab-label": `${this._componentLocale.tabs.pendingCommits} (${this.pendingCommits.length})`, tab: "pending-commits", "is-selected": true }), h("gxg-tab-button", { slot: "tab-bar", "tab-label": `${this._componentLocale.tabs.ignoredObjects} (${this.ignoredObjects.length})`, tab: "ignored-objects" })), h("gxg-tab", { tab: "pending-commits", "no-padding": true }, this.renderPendingCommitsGrid()), h("gxg-tab", { tab: "ignored-objects", "no-padding": true }, this.renderIgnoredObjectsGrid())), h("gxg-button", { slot: "footer", type: "primary-text-only", onClick: this.commitCallbackHandler, part: "commit-button" }, this._componentLocale.footer.commitButton))))));
221
221
  }
222
222
  static get assetsDirs() { return ["gx-ide-assets/team-dev-commit"]; }
223
223
  get el() { return this; }
@@ -231,7 +231,7 @@ const GxIdeTeamDevCommit$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
231
231
  "loadCallback": [16],
232
232
  "commitCallback": [16],
233
233
  "selectCallback": [16],
234
- "pendingItemCheckedCallback": [16],
234
+ "pendingItemsCheckedCallback": [16],
235
235
  "objectsContextMenuCallback": [16],
236
236
  "filtersHidden": [32],
237
237
  "comment": [32],
@@ -16,7 +16,7 @@ import { d as defineCustomElement$4 } from './gxg-grid2.js';
16
16
  import { d as defineCustomElement$3 } from './icon2.js';
17
17
  import { d as defineCustomElement$2 } from './title.js';
18
18
 
19
- const teamDevUpdatePartialSelectionCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}:host(.gx-ide-component){box-shadow:var(--box-shadow-01) !important;height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-weight-regular);font-size:var(--font-size-lg);line-height:1.6em;height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--color-background)}:host(.gxi-object-selector--shadow){border:none;box-shadow:var(--box-shadow-01)}.top-actions{display:flex;align-items:center;justify-content:flex-end}.actions{grid-template-columns:repeat(2, 1fr)}.actions>*{display:flex;flex-direction:row;gap:var(--gx-ide-grid-row-gap)}.actions>*:nth-child(2){justify-content:flex-end}";
19
+ const teamDevUpdatePartialSelectionCss = ".gxi-hidden{display:none !important}.gxi-full-height{height:100%}.align-start{display:flex;align-items:start}.align-center{display:flex;align-items:center}.align-end{display:flex;align-items:end}.grid{display:grid;grid-row-gap:var(--gx-ide-grid-row-gap);grid-column-gap:var(--gx-ide-grid-column-gap);grid-template-rows:auto}:host(.gx-ide-component){box-shadow:var(--box-shadow-01) !important;height:100% !important;display:flex !important;flex-direction:column !important}:host(:focus-within) gx-ide-top-bar::part(wrapper){background-color:var(--color-secondary-enabled)}.gx-ide-main-wrapper{color:var(--gx-ide-component-text-color);font-weight:var(--font-weight-regular);font-size:var(--font-size-lg);line-height:1.6em;height:100%;background-color:var(--gx-ide-component-background-color);display:flex;flex-direction:column;flex-grow:1}.gx-ide-main{flex-grow:1;overflow-y:auto;}.gx-ide-main::-webkit-scrollbar{width:6px;height:6px}.gx-ide-main::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-main::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-main .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}.gx-ide-overflow{overflow-y:auto;}.gx-ide-overflow::-webkit-scrollbar{width:6px;height:6px}.gx-ide-overflow::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gx-ide-overflow::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}.gx-ide-overflow .gxg-scroll{display:block;overflow-y:auto;padding-inline-end:2px}:host{display:block;border:1px solid var(--gxg-border-color--regular);background-color:var(--color-background)}:host(.gxi-object-selector--shadow){border:none;box-shadow:var(--box-shadow-01)}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--gx-ide-grid-row-gap)}.actions{grid-template-columns:repeat(2, 1fr)}.actions>*{display:flex;flex-direction:row;gap:var(--gx-ide-grid-row-gap)}.actions>*:nth-child(2){justify-content:flex-end}";
20
20
 
21
21
  const GxIdeTeamDevUpdatePartialSelection$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
22
22
  constructor() {
@@ -25,41 +25,36 @@ const GxIdeTeamDevUpdatePartialSelection$1 = /*@__PURE__*/ proxyCustomElement(cl
25
25
  this.__attachShadow();
26
26
  this.componentDidLoadEvent = createEvent(this, "componentDidLoadEvent", 7);
27
27
  // 9.LOCAL METHODS //
28
- this.handleKeyDownEvent = (add) => {
29
- if (add) {
30
- document.addEventListener("keydown", this.keyDownEventHandler);
31
- }
32
- else {
33
- document.removeEventListener("keydown", this.keyDownEventHandler);
34
- }
35
- };
36
- this.keyDownEventHandler = (e) => {
37
- console.log(e.detail);
38
- };
39
28
  this.renderObjects = () => {
40
- return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridEl = el), part: "ch-grid-objects" }, h("ch-grid-columnset", null, h("ch-grid-column", { columnName: "", settingable: false, sortable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.type, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.description, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.modifiedOn, settingable: false })), this.selection.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", null, h("gxg-icon", { type: obj.typeIcon })), h("ch-grid-cell", null, " ", obj.name, " "), h("ch-grid-cell", null, " ", obj.type, " "), h("ch-grid-cell", null, " ", obj.description, " "), h("ch-grid-cell", null, `${obj.modifiedOn.toISOString().slice(0, 10)}`)))))));
29
+ return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridEl = el), part: "ch-grid-objects" }, h("ch-grid-columnset", null, h("ch-grid-column", { columnName: "", settingable: false, sortable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.type, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.description, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.modifiedOn, settingable: false })), this.selection.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", null, h("gxg-icon", { type: obj.typeIcon, color: "auto" })), h("ch-grid-cell", null, " ", obj.name, " "), h("ch-grid-cell", null, " ", obj.type, " "), h("ch-grid-cell", null, " ", obj.description, " "), h("ch-grid-cell", null, `${obj.modifiedOn.toISOString().slice(0, 10)}`)))))));
41
30
  };
42
- this.getObjects = () => {
31
+ this.getObjectsHandler = () => {
43
32
  this.addCallback().then((items) => {
44
33
  if ((items === null || items === void 0 ? void 0 : items.length) > 0) {
45
34
  this.selection = [...this.selection, ...items];
46
35
  this.selectedObjectsIds = [];
47
- this.deselectAll();
36
+ this.deselectAllHandler();
48
37
  }
49
38
  });
50
39
  };
51
- this.removeObjects = () => {
40
+ this.removeObjectsHandler = () => {
52
41
  this.selection = this.selection.filter(item => !this.selectedObjectsIds.includes(item.id));
53
42
  this.selectedObjectsIds = [];
54
- this.deselectAll();
43
+ this.deselectAllHandler();
55
44
  };
56
- this.confirm = () => {
57
- this.confirmCallback(this.selectedObjectsIds);
45
+ this.confirmHandler = () => {
46
+ if (this.confirmCallback) {
47
+ const allRowsIds = [];
48
+ this.selection.forEach(row => {
49
+ allRowsIds.push(row.id);
50
+ });
51
+ this.confirmCallback(allRowsIds);
52
+ }
58
53
  };
59
- this.cancel = () => {
54
+ this.cancelHandler = () => {
60
55
  this.cancelCallback();
61
56
  };
62
- this.deselectAll = () => {
57
+ this.deselectAllHandler = () => {
63
58
  this.chGridEl.selectAllRows(false);
64
59
  };
65
60
  this.listenChanges = () => {
@@ -78,21 +73,11 @@ const GxIdeTeamDevUpdatePartialSelection$1 = /*@__PURE__*/ proxyCustomElement(cl
78
73
  async componentWillLoad() {
79
74
  this._componentLocale = await Locale.getComponentStrings(this.el);
80
75
  this.componentDidLoadEvent.emit(true);
81
- this.handleKeyDownEvent(true);
82
76
  }
83
77
  componentDidLoad() {
84
78
  this.listenChanges();
85
79
  }
86
80
  // 7.LISTENERS //
87
- keyDownHandler(eventInfo) {
88
- if (document.activeElement === this.el) {
89
- switch (eventInfo.key) {
90
- case "Delete":
91
- this.removeObjects();
92
- break;
93
- }
94
- }
95
- }
96
81
  // 8.PUBLIC METHODS API //
97
82
  /**
98
83
  * Validate necessary data input
@@ -105,7 +90,7 @@ const GxIdeTeamDevUpdatePartialSelection$1 = /*@__PURE__*/ proxyCustomElement(cl
105
90
  render() {
106
91
  return (h(Host, { class: {
107
92
  "gxi-team-dev-update-partial-selection": true
108
- } }, h("div", { class: `main-wrapper` }, h("gxg-container", { containerTitle: this._componentLocale.title }, h("div", { class: "top-actions" }, h("gxg-button", { id: "button-add", type: "secondary-icon-only", icon: "gemini-tools/add-circle", onClick: this.getObjects, part: "gxg-button gxg-button--add" }), h("gxg-button", { id: "button-remove", type: "secondary-icon-only", icon: "gemini-tools/minus-circle", onClick: this.removeObjects, part: "gxg-button gxg-button--remove" })), this.renderObjects(), h("gxg-container", { displayBorderTop: true }, h("div", { class: "grid actions" }, h("div", null, h("gxg-button", { id: "button-clear", type: "primary-text-only", onClick: this.deselectAll, part: "gxg-button gxg-button--clear" }, this._componentLocale.footer.btnClear)), h("div", null, h("gxg-button", { id: "button-ok", type: "primary-text-only", onClick: this.confirm, part: "gxg-button gxg-button--ok" }, this._componentLocale.footer.btnOk), h("gxg-button", { id: "button-cancel", type: "outlined", onClick: this.cancel, part: "gxg-button gxg-button--cancel" }, this._componentLocale.footer.btnCancel))))))));
93
+ } }, h("div", { class: `main-wrapper` }, h("gxg-container", { containerTitle: this._componentLocale.title }, h("div", { class: "top-actions" }, h("gxg-button", { id: "button-add", type: "outlined", onClick: this.getObjectsHandler, part: "add" }, this._componentLocale.addObject), h("gxg-button", { id: "button-remove", type: "outlined", onClick: this.removeObjectsHandler, part: "remove", disabled: !(this.selectedObjectsIds.length > 0) }, this._componentLocale.removeObject)), this.renderObjects(), h("gxg-container", { displayBorderTop: true }, h("div", { class: "grid actions" }, h("div", null, h("gxg-button", { id: "button-clear", type: "outlined", onClick: this.deselectAllHandler, part: "clear", disabled: !(this.selectedObjectsIds.length > 0) }, this._componentLocale.footer.btnDeselectAll)), h("div", null, h("gxg-button", { id: "button-ok", type: "primary-text-only", onClick: this.confirmHandler, part: "confirm" }, this._componentLocale.footer.btnConfirm), h("gxg-button", { id: "button-cancel", type: "outlined", onClick: this.cancelHandler, part: "cancel" }, this._componentLocale.footer.btnCancel))))))));
109
94
  }
110
95
  static get assetsDirs() { return ["gx-ide-assets/team-dev-update-partial-selection"]; }
111
96
  get el() { return this; }
@@ -117,7 +102,7 @@ const GxIdeTeamDevUpdatePartialSelection$1 = /*@__PURE__*/ proxyCustomElement(cl
117
102
  "selection": [1040],
118
103
  "selectedObjectsIds": [32],
119
104
  "validate": [64]
120
- }, [[1, "keydown", "keyDownHandler"]]]);
105
+ }]);
121
106
  function defineCustomElement$1() {
122
107
  if (typeof customElements === "undefined") {
123
108
  return;
@@ -20,6 +20,14 @@ const GxIdeTeamDevUpdateToRevision$1 = /*@__PURE__*/ proxyCustomElement(class ex
20
20
  this.__attachShadow();
21
21
  this.componentDidLoadEvent = createEvent(this, "componentDidLoadEvent", 7);
22
22
  // 9.LOCAL METHODS //
23
+ this.setInitialCheckedRadio = () => {
24
+ if (this.currentRevision === undefined) {
25
+ this.updateToLatestEl.checked = true;
26
+ }
27
+ else {
28
+ this.updateToRevisionEl.checked = true;
29
+ }
30
+ };
23
31
  this.confirm = () => {
24
32
  let revision = undefined;
25
33
  if (this.updateToRevisionEl.checked) {
@@ -30,13 +38,20 @@ const GxIdeTeamDevUpdateToRevision$1 = /*@__PURE__*/ proxyCustomElement(class ex
30
38
  this.cancel = () => {
31
39
  this.cancelCallback();
32
40
  };
41
+ this.updateToRevisionOnFocusHandler = () => {
42
+ this.updateToRevisionEl.checked = true;
43
+ };
33
44
  this.cancelCallback = undefined;
34
45
  this.confirmCallback = undefined;
46
+ this.currentRevision = undefined;
35
47
  }
36
48
  // 6.COMPONENT LIFECYCLE EVENTS //
37
49
  async componentWillLoad() {
38
50
  this._componentLocale = await Locale.getComponentStrings(this.el);
51
+ }
52
+ componentDidLoad() {
39
53
  this.componentDidLoadEvent.emit(true);
54
+ this.setInitialCheckedRadio();
40
55
  }
41
56
  // 7.LISTENERS //
42
57
  // 8.PUBLIC METHODS API //
@@ -51,7 +66,7 @@ const GxIdeTeamDevUpdateToRevision$1 = /*@__PURE__*/ proxyCustomElement(class ex
51
66
  render() {
52
67
  return (h(Host, { class: {
53
68
  "gxi-team-dev-update-to-revision": true
54
- } }, h("div", { class: `main-wrapper` }, h("gxg-container", null, h("gxg-form-radio-group", null, h("gxg-form-radio", { label: this._componentLocale.options.updateToLatest, value: "updateToLatest", part: "radio-to-latest" }), h("div", { class: "revision-number" }, h("gxg-form-radio", { label: this._componentLocale.options.updateToRevision, value: "updateToRevision", ref: (el) => (this.updateToRevisionEl = el), part: "radio-to-revision" }), h("gxg-form-text", { ref: (el) => (this.revisionNumberEl = el), part: "revision-number" })))), h("gxg-container", { displayBorderTop: true }, h("div", { class: "actions" }, h("gxg-button", { id: "button-ok", type: "primary-text-only", onClick: this.confirm, part: "gxg-button gxg-button--ok" }, this._componentLocale.footer.btnOk), h("gxg-button", { id: "button-cancel", type: "outlined", onClick: this.cancel, part: "gxg-button gxg-button--cancel" }, this._componentLocale.footer.btnCancel))))));
69
+ } }, h("div", { class: `main-wrapper` }, h("gxg-container", null, h("gxg-form-radio-group", null, h("gxg-form-radio", { label: this._componentLocale.options.updateToLatest, value: "updateToLatest", ref: (el) => (this.updateToLatestEl = el), part: "radio-to-latest" }), h("div", { class: "revision-number" }, h("gxg-form-radio", { label: this._componentLocale.options.updateToRevision, value: "updateToRevision", ref: (el) => (this.updateToRevisionEl = el), part: "radio-to-revision" }), h("gxg-form-text", { ref: (el) => (this.revisionNumberEl = el), onFocus: this.updateToRevisionOnFocusHandler, value: this.currentRevision, part: "revision-number" })))), h("gxg-container", { displayBorderTop: true }, h("div", { class: "actions" }, h("gxg-button", { id: "button-ok", type: "primary-text-only", onClick: this.confirm, part: "update" }, this._componentLocale.footer.btnUpdate), h("gxg-button", { id: "button-cancel", type: "outlined", onClick: this.cancel, part: "cancel" }, this._componentLocale.footer.btnCancel))))));
55
70
  }
56
71
  static get assetsDirs() { return ["gx-ide-assets/team-dev-update-to-revision"]; }
57
72
  get el() { return this; }
@@ -59,6 +74,7 @@ const GxIdeTeamDevUpdateToRevision$1 = /*@__PURE__*/ proxyCustomElement(class ex
59
74
  }, [1, "gx-ide-team-dev-update-to-revision", {
60
75
  "cancelCallback": [16],
61
76
  "confirmCallback": [16],
77
+ "currentRevision": [1, "current-revision"],
62
78
  "validate": [64]
63
79
  }]);
64
80
  function defineCustomElement$1() {
@@ -39,9 +39,35 @@ const GxIdeTeamDevUpdate$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
39
39
  this.componentDidLoadEvent = createEvent(this, "componentDidLoadEvent", 7);
40
40
  this.loadDataCalledFirstTime = false; // pending for update grid checkboxes, should be checked, after loadData has loaded objects for the first time.
41
41
  // 9.LOCAL METHODS //
42
+ this.onRowContextMenuHandler = (grid) => async (ev) => {
43
+ if (this.objectsContextMenuCallback) {
44
+ ev.preventDefault();
45
+ ev.stopPropagation();
46
+ let selection = [];
47
+ if (grid === "pending") {
48
+ selection = await this.chGridPendingForUpdateEl.getSelectedRows();
49
+ }
50
+ else if (grid === "ignored") {
51
+ selection = await this.chGridIgnoredObjectsEl.getSelectedRows();
52
+ }
53
+ else if (grid === "results") {
54
+ selection = await this.chGridResultsEl.getSelectedRows();
55
+ }
56
+ await this.objectsContextMenuCallback(grid, {
57
+ selection: selection,
58
+ clientX: ev.detail.clientX,
59
+ clientY: ev.detail.clientY
60
+ });
61
+ }
62
+ };
42
63
  this.markAllPendingToUpdateRows = () => {
43
64
  this.chGridPendingForUpdateEl.markAllRows();
44
65
  };
66
+ this.gridOnSelectionChangedCallbackHandler = (grid) => async (ev) => {
67
+ if (this.selectCallback) {
68
+ await this.selectCallback(grid, ev.detail.rowsId);
69
+ }
70
+ };
45
71
  this.renderOptions = () => {
46
72
  return (h("gxg-container", { part: "options-container" }, h("div", { class: "grid options-grid" }, h("gxg-container", { displayBorder: true, part: "options-update-from", containerTitle: this._componentLocale.options.updateFrom }, h("div", { class: "grid options-update-from-grid" }, h("gxg-text", { type: "text-regular" }, this._componentLocale.options.updateFrom, ":"), h("gxg-text", { type: "text-link", onClick: this.openServerCallback }, this.updateFrom ? this.updateFrom.serverUrl : ""), h("gxg-text", { type: "text-regular" }, this._componentLocale.options.knowledgeBase, ":"), h("gxg-text", { type: "text-regular" }, this.updateFrom ? this.updateFrom.kbName : ""), h("gxg-text", { type: "text-regular" }, this._componentLocale.options.version, ":"), h("gxg-text", { type: "text-regular" }, this.updateFrom ? this.updateFrom.versionName : ""), h("gxg-text", { type: "text-regular" }, this._componentLocale.options.lastFullUpdate, ":"), h("gxg-text", { type: "text-regular" }, this.updateFrom
47
73
  ? formatDate(this.updateFrom.lastFullUpdate)
@@ -60,13 +86,13 @@ const GxIdeTeamDevUpdate$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
60
86
  return (h("gxg-container", { part: "data-container" }, h("gxg-tabs", { id: "dataTabs", part: "data-tabs" }, h("gxg-tab-bar", { slot: "tab-bar-container" }, h("gxg-tab-button", { slot: "tab-bar", "tab-label": this._componentLocale.tabs.pendingForUpdate, tab: "pendingForUpdate", key: "pendingForUpdate", isSelected: true }), h("gxg-tab-button", { slot: "tab-bar", "tab-label": this._componentLocale.tabs.ignoredObjects, tab: "ignoredObjects", key: "ignoredObjects" }), h("gxg-tab-button", { slot: "tab-bar", "tab-label": this._componentLocale.tabs.results, tab: "results", key: "results", ref: (el) => (this.gxgTabButtonResultsEl = el) })), h("gxg-tab", { tab: "pendingForUpdate", key: "pendingForUpdate", isSelected: true }, this.renderPendingForUpdate()), h("gxg-tab", { tab: "ignoredObjects", key: "ignoredObjects" }, this.renderIgnoredObjects()), h("gxg-tab", { tab: "results", key: "results" }, this.renderResults()))));
61
87
  };
62
88
  this.renderPendingForUpdate = () => {
63
- return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "none", ref: (el) => (this.chGridPendingForUpdateEl = el), part: "ch-grid-pending-for-updates", class: "no-border" }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, sortable: false, "column-type": "rich", richRowSelector: true, richRowSelectorMode: "mark" }), h("ch-grid-column", { settingable: false, sortable: false }), h("ch-grid-column", { settingable: false, sortable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.type, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.description, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.modifiedOn, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.status, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.action, settingable: false })), this.updateData.pendingForUpdate.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), h("ch-grid-cell", null, h("gxg-icon", { type: obj.typeIcon })), h("ch-grid-cell", null, " ", this.renderIconState(obj.state), " "), h("ch-grid-cell", null, " ", obj.name, " "), h("ch-grid-cell", null, " ", obj.type, " "), h("ch-grid-cell", null, " ", obj.description, " "), h("ch-grid-cell", null, `${formatDate(obj.modifiedOn)}`), h("ch-grid-cell", null, " ", obj.status, " "), h("ch-grid-cell", null, " ", obj.action, " ")))))));
89
+ return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridPendingForUpdateEl = el), part: "ch-grid-pending-for-updates", class: "no-border", onRowContextMenu: this.onRowContextMenuHandler("pending"), onSelectionChanged: this.gridOnSelectionChangedCallbackHandler("pending") }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, sortable: false, "column-type": "rich", richRowSelector: true, richRowSelectorMode: "mark" }), h("ch-grid-column", { settingable: false, sortable: false }), h("ch-grid-column", { settingable: false, sortable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.type, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.description, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.modifiedOn, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.status, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.action, settingable: false })), this.updateData.pendingForUpdate.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", { "cell-type": "rich", "row-selector": true }), h("ch-grid-cell", null, h("gxg-icon", { type: obj.typeIcon, color: "auto" })), h("ch-grid-cell", null, " ", this.renderIconState(obj.state), " "), h("ch-grid-cell", null, " ", obj.name, " "), h("ch-grid-cell", null, " ", obj.type, " "), h("ch-grid-cell", null, " ", obj.description, " "), h("ch-grid-cell", null, `${formatDate(obj.modifiedOn)}`), h("ch-grid-cell", null, " ", obj.status, " "), h("ch-grid-cell", null, " ", obj.action, " ")))))));
64
90
  };
65
91
  this.renderIgnoredObjects = () => {
66
- return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridIgnoredObjectsEl = el), part: "ch-grid-ignored-objects", class: "no-border" }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, sortable: false, size: "min-content" }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, settingable: false, size: "1fr" }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.type, settingable: false, size: "1fr" })), this.updateData.ignoredObjects.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", null, h("gxg-icon", { type: obj.typeIcon })), h("ch-grid-cell", null, " ", obj.name, " "), h("ch-grid-cell", null, " ", obj.type, " ")))))));
92
+ return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridIgnoredObjectsEl = el), part: "ch-grid-ignored-objects", class: "no-border", onRowContextMenu: this.onRowContextMenuHandler("ignored"), onSelectionChanged: this.gridOnSelectionChangedCallbackHandler("ignored") }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, sortable: false, size: "min-content" }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, settingable: false, size: "1fr" }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.type, settingable: false, size: "1fr" })), this.updateData.ignoredObjects.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", null, h("gxg-icon", { type: obj.typeIcon, color: "auto" })), h("ch-grid-cell", null, " ", obj.name, " "), h("ch-grid-cell", null, " ", obj.type, " ")))))));
67
93
  };
68
94
  this.renderResults = () => {
69
- return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridResultsEl = el), part: "ch-grid-results", class: "no-border" }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, sortable: false, "column-type": "tree" }), h("ch-grid-column", { settingable: false, sortable: false }), h("ch-grid-column", { settingable: false, sortable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.type, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.description, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.notes, settingable: false })), this.updateResultData.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", null, " ", this.renderIconResult(obj.result), " "), h("ch-grid-cell", null, h("gxg-icon", { type: obj.typeIcon })), h("ch-grid-cell", null, " ", this.renderIconState(obj.state), " "), h("ch-grid-cell", null, " ", obj.name, " "), h("ch-grid-cell", null, " ", obj.type, " "), h("ch-grid-cell", null, " ", obj.description, " "), h("ch-grid-cell", null, " ", obj.notes, " "), h("ch-grid-rowset", null, obj.messages.map(msg => {
95
+ return (h("gxg-grid", null, h("ch-grid", { "row-selection-mode": "multiple", ref: (el) => (this.chGridResultsEl = el), part: "ch-grid-results", class: "no-border", onRowContextMenu: this.onRowContextMenuHandler("results"), onSelectionChanged: this.gridOnSelectionChangedCallbackHandler("results") }, h("ch-grid-columnset", null, h("ch-grid-column", { settingable: false, sortable: false, "column-type": "tree" }), h("ch-grid-column", { settingable: false, sortable: false }), h("ch-grid-column", { settingable: false, sortable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.name, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.type, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.description, settingable: false }), h("ch-grid-column", { columnName: this._componentLocale.tableHead.notes, settingable: false })), this.updateResultData.map((obj) => (h("ch-grid-row", { rowid: obj.id }, h("ch-grid-cell", null, " ", this.renderIconResult(obj.result), " "), h("ch-grid-cell", null, h("gxg-icon", { type: obj.typeIcon, color: "auto" })), h("ch-grid-cell", null, " ", this.renderIconState(obj.state), " "), h("ch-grid-cell", null, " ", obj.name, " "), h("ch-grid-cell", null, " ", obj.type, " "), h("ch-grid-cell", null, " ", obj.description, " "), h("ch-grid-cell", null, " ", obj.notes, " "), h("ch-grid-rowset", null, obj.messages.map(msg => {
70
96
  let msgType;
71
97
  switch (msg.type) {
72
98
  case "info":
@@ -173,38 +199,13 @@ const GxIdeTeamDevUpdate$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
173
199
  });
174
200
  }
175
201
  };
176
- this.addListeners = async () => {
177
- // for pending-for-update grid events
178
- if (this.updateData.pendingForUpdate) {
179
- this.chGridPendingForUpdateEl.addEventListener("contextmenu", async (ev) => {
180
- ev.preventDefault();
181
- ev.stopPropagation();
182
- const pendingForUpdateMarked = await this.chGridPendingForUpdateEl.getMarkedRows();
183
- this.gridContextMenuCallback(pendingForUpdateMarked, "update");
184
- });
185
- }
186
- // for ignored-objects grid events
187
- this.chGridIgnoredObjectsEl.addEventListener("contextmenu", async (ev) => {
188
- ev.preventDefault();
189
- ev.stopPropagation();
190
- const ignoredObjectsSelected = await this.chGridIgnoredObjectsEl.getSelectedRows();
191
- this.gridContextMenuCallback(ignoredObjectsSelected, "ignored");
192
- });
193
- // for results grid events
194
- this.chGridResultsEl.addEventListener("contextmenu", async (ev) => {
195
- ev.preventDefault();
196
- ev.stopPropagation();
197
- const resultsObjectsSelected = await this.chGridResultsEl.getMarkedRows();
198
- this.gridContextMenuCallback(resultsObjectsSelected, "results");
199
- });
200
- };
201
202
  this.pendingForUpdatesRowMarkingChangedHandler = async (e) => {
202
203
  // remove "rowMarkingChanged" until checkboxes have been added/removed on togglePendingCommitsCheckboxes, to prevent loops.
203
204
  this.chGridPendingForUpdateEl.removeEventListener("rowMarkingChanged", this.pendingForUpdatesRowMarkingChangedHandler);
204
205
  if (this.chGridPendingForUpdateEl) {
205
206
  const addedRowsIds = e.detail.addedRowsId;
206
207
  const removedRowsId = e.detail.removedRowsId;
207
- const pendingItemCheckedResult = await this.pendingItemCheckedCallback({
208
+ const pendingItemCheckedResult = await this.pendingItemsCheckedCallback({
208
209
  itemsChecked: addedRowsIds,
209
210
  itemsUnchecked: removedRowsId
210
211
  });
@@ -258,8 +259,10 @@ const GxIdeTeamDevUpdate$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
258
259
  this.loadCallback = undefined;
259
260
  this.objectsScopeCallback = undefined;
260
261
  this.openServerCallback = undefined;
261
- this.pendingItemCheckedCallback = undefined;
262
+ this.pendingItemsCheckedCallback = undefined;
262
263
  this.revisionScopeCallback = undefined;
264
+ this.objectsContextMenuCallback = undefined;
265
+ this.selectCallback = undefined;
263
266
  this.types = undefined;
264
267
  this.updateCallback = undefined;
265
268
  this.updateFrom = undefined;
@@ -271,7 +274,6 @@ const GxIdeTeamDevUpdate$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
271
274
  }
272
275
  async componentDidLoad() {
273
276
  await this.loadData();
274
- this.addListeners();
275
277
  }
276
278
  async componentDidRender() {
277
279
  if (this.loadDataCalledFirstTime) {
@@ -304,8 +306,10 @@ const GxIdeTeamDevUpdate$1 = /*@__PURE__*/ proxyCustomElement(class extends HTML
304
306
  "loadCallback": [16],
305
307
  "objectsScopeCallback": [16],
306
308
  "openServerCallback": [16],
307
- "pendingItemCheckedCallback": [16],
309
+ "pendingItemsCheckedCallback": [16],
308
310
  "revisionScopeCallback": [16],
311
+ "objectsContextMenuCallback": [16],
312
+ "selectCallback": [16],
309
313
  "types": [16],
310
314
  "updateCallback": [16],
311
315
  "updateFrom": [16],
@@ -77,9 +77,9 @@ const GxgDatePicker$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
77
77
  }
78
78
  }
79
79
  //default date
80
- const valueYear = value.getFullYear();
81
- const valueMonth = value.getMonth();
82
- const valueDay = value.getDate();
80
+ value.getFullYear();
81
+ value.getMonth();
82
+ value.getDate();
83
83
  //min date
84
84
  const minDate = this.minDate ? new Date(this.minDate) : undefined;
85
85
  const minDateYear = minDate === null || minDate === void 0 ? void 0 : minDate.getFullYear();
@@ -144,7 +144,7 @@ const GxgDatePicker$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
144
144
  overlayPlaceholder: "Enter a 4-digit year",
145
145
  // Settings.
146
146
  alwaysShow: this.alwaysShow,
147
- dateSelected: new Date(valueYear, valueMonth, valueDay),
147
+ //dateSelected: new Date(valueYear, valueMonth, valueDay),
148
148
  maxDate: maxDate && new Date(maxDateYear, maxDateMonth, maxDateDay),
149
149
  minDate: minDate && new Date(minDateYear, minDateMonth, minDateDay),
150
150
  startDate: this.value,
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h, writeTask, Host } from
2
2
  import { m as mouseEventModifierKey } from './helpers.js';
3
3
  import { d as defineCustomElement$1 } from './checkbox.js';
4
4
 
5
- const treeXListItemCss = ":where(button){all:unset;display:flex;cursor:pointer;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--checkbox-size:1em;--expandable-button-width:12px;--tab-width:calc(\n var(--checkbox-size) + var(--expandable-button-width) +\n (5px * 2)\n );display:grid;grid-template-rows:min-content}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:var(--padding-inline-start)}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--expandable-button-width) + 5px\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(var(--expandable-button-width) / 2)}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(var(--checkbox-size) / 2);--parent-negative-checkbox-offset:calc(var(--checkbox-size) / 2)}.dashed-line{position:absolute;inset-inline-start:var(--inset-inline-start);height:1px;width:calc( var(--tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - 4px );border:0 dashed #a9a9a9;border-block-end-width:1px;pointer-events:none;content-visibility:hidden;contain-intrinsic-size:auto 100px}.last-dashed-line{inset-block-start:0;height:calc(100% - var(--distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px;pointer-events:none}.expandable-button{display:grid;place-items:center;width:var(--expandable-button-width);height:var(--expandable-button-width);margin-inline-end:5px;z-index:1}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc(var(--expandable-button-width) - 2px)}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{margin-inline-end:5px}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em}.left-img{grid-area:left-img;margin-inline-end:6px}.right-img{grid-area:right-img;margin-inline-start:6px}.edit-name{grid-area:text;width:100%;height:100%;background-color:unset;padding:0;margin:0;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-template-rows:0fr;content-visibility:auto;contain-intrinsic-size:auto 100px}.expanded{grid-template-rows:1fr}:not(.expanded) ::slotted([slot=tree]){display:none;overflow:hidden;content-visibility:hidden}";
5
+ const treeXListItemCss = ":where(button){all:unset;display:flex;cursor:pointer;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--checkbox-size:1em;--expandable-button-width:0.75em;--ch-tree-x-list-item-dashed-line--offset:0px;--tab-width:calc(\n var(--checkbox-size) + var(--expandable-button-width) +\n (5px * 2)\n );display:grid;grid-template-rows:min-content;overflow:hidden}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:var(--padding-inline-start)}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--tab-width) - calc(\n var(--expandable-button-width) + 5px\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--expandable-button-width) + 5px\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(var(--expandable-button-width) / 2)}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(var(--checkbox-size) / 2);--parent-negative-checkbox-offset:calc(var(--checkbox-size) / 2)}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-x-list-item-dashed-line--offset) );height:1px;width:calc( var(--tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-x-list-item-dashed-line--offset) - 4px );border:0 dashed #a9a9a9;border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--expandable-button-width);height:var(--expandable-button-width);margin-inline-end:5px;z-index:1;content-visibility:auto;contain-intrinsic-size:auto var(--expandable-button-width)}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc(var(--expandable-button-width) - 2px)}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{margin-inline-end:5px}.checkbox::part(container){width:var(--checkbox-size);height:var(--checkbox-size)}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:5px}.right-img{grid-area:right-img;margin-inline-start:5px}.edit-name{grid-area:text;width:100%;height:100%;background-color:unset;padding:0;margin:0;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-template-rows:0fr;content-visibility:auto;contain-intrinsic-size:auto 100px}.expanded{grid-template-rows:1fr}:not(.expanded) ::slotted([slot=tree]){display:none;overflow:hidden;content-visibility:hidden}";
6
6
 
7
7
  const resetDragImage = new Image();
8
8
  // Selectors
@@ -26,7 +26,6 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
26
26
  this.checkboxChange = createEvent(this, "checkboxChange", 7);
27
27
  this.itemDragStart = createEvent(this, "itemDragStart", 7);
28
28
  this.itemDragEnd = createEvent(this, "itemDragEnd", 7);
29
- this.itemDrop = createEvent(this, "itemDrop", 7);
30
29
  this.loadLazyContent = createEvent(this, "loadLazyContent", 7);
31
30
  this.modifyCaption = createEvent(this, "modifyCaption", 7);
32
31
  this.selectedItemChange = createEvent(this, "selectedItemChange", 7);
@@ -43,6 +42,11 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
43
42
  * Only works if `checkbox = true`
44
43
  */
45
44
  this.checked = false;
45
+ /**
46
+ * Set this attribute if you want to set a custom render for the control, by
47
+ * passing a slot.
48
+ */
49
+ this.customRender = false;
46
50
  /**
47
51
  * This attribute lets you specify if the element is disabled.
48
52
  * If disabled, it will not fire any user interaction related event
@@ -108,7 +112,7 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
108
112
  * `true` to display the relation between tree items and tree lists using
109
113
  * lines.
110
114
  */
111
- this.showLines = true;
115
+ this.showLines = "none";
112
116
  /**
113
117
  * Set this attribute if you want all the children item's checkboxes to be
114
118
  * checked when the parent item checkbox is checked, or to be unchecked when
@@ -165,6 +169,7 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
165
169
  goToReference: false,
166
170
  id: this.el.id,
167
171
  itemRef: this.el,
172
+ metadata: this.metadata,
168
173
  parentId: this.el.parentElement.parentElement.id,
169
174
  selected: true
170
175
  });
@@ -217,14 +222,14 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
217
222
  };
218
223
  this.renderImg = (cssClass, src) => (h("img", { "aria-hidden": "true", class: cssClass, part: cssClass, alt: "", src: src, loading: "lazy" }));
219
224
  this.handleDragStart = (event) => {
220
- event.stopPropagation();
221
225
  // Disallow drag when editing the caption
222
226
  if (this.editing) {
223
227
  event.preventDefault();
224
228
  return;
225
229
  }
230
+ // Remove drag image
226
231
  event.dataTransfer.setDragImage(resetDragImage, 0, 0);
227
- // this.el.style.cursor = "move";
232
+ event.dataTransfer.effectAllowed = "move";
228
233
  this.dragState = "start";
229
234
  this.itemDragStart.emit({
230
235
  elem: this.el,
@@ -237,13 +242,8 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
237
242
  this.dragState = "none";
238
243
  this.itemDragEnd.emit();
239
244
  };
240
- this.handleDrop = (event) => {
241
- event.stopPropagation();
245
+ this.handleDrop = () => {
242
246
  this.dragState = "none";
243
- this.itemDrop.emit({
244
- dropItemId: this.el.id,
245
- dataTransfer: event.dataTransfer
246
- });
247
247
  };
248
248
  }
249
249
  updateChildrenCheckedValue(newValue) {
@@ -446,6 +446,7 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
446
446
  goToReference: false,
447
447
  id: this.el.id,
448
448
  itemRef: this.el,
449
+ metadata: this.metadata,
449
450
  parentId: this.el.parentElement.parentElement.id,
450
451
  selected: selected
451
452
  });
@@ -458,6 +459,7 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
458
459
  goToReference: goToReference,
459
460
  id: this.el.id,
460
461
  itemRef: this.el,
462
+ metadata: this.metadata,
461
463
  parentId: this.el.parentElement.parentElement.id,
462
464
  selected: true
463
465
  });
@@ -508,11 +510,13 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
508
510
  const expandableButtonNotVisible = !this.leaf && !this.showExpandableButton;
509
511
  const acceptDrop = !this.leaf && this.dragState !== "start";
510
512
  const hasContent = !this.leaf && !this.lazyLoad;
513
+ const showAllLines = this.showLines === "all" && this.level !== 0;
514
+ const showLastLine = this.showLines === "last" && this.level !== 0 && this.lastItem;
511
515
  return (h(Host, { role: "treeitem", "aria-selected": this.selected ? "true" : null, class: {
512
516
  [TREE_ITEM_TAG_NAME + "--downloading"]: this.downloading,
513
517
  [TREE_ITEM_TAG_NAME + "--editing"]: this.editing,
514
518
  [TREE_ITEM_TAG_NAME + "--drag-" + this.dragState]: this.dragState !== "none" && this.dragState !== "start",
515
- [TREE_ITEM_TAG_NAME + "--accept-drop"]: acceptDrop
519
+ [TREE_ITEM_TAG_NAME + "--deny-drop"]: this.leaf
516
520
  }, style: { "--level": `${this.level}` },
517
521
  // Drag and drop
518
522
  onDrop: acceptDrop ? this.handleDrop : null }, h("button", { "aria-controls": hasContent ? EXPANDABLE_ID : null, "aria-expanded": hasContent ? this.expanded.toString() : null, class: {
@@ -532,10 +536,18 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
532
536
  "expandable-button": true,
533
537
  "expandable-button--expanded": this.expanded,
534
538
  "expandable-button--collapsed": !this.expanded
535
- }, part: `expandable-button${this.disabled ? " disabled" : ""}${this.expanded ? " expanded" : " collapsed"}`, disabled: this.disabled, onClick: this.toggleExpand })), this.checkbox && (h("ch-checkbox", { accessibleName: this.caption, class: "checkbox", part: `checkbox${this.disabled ? " disabled" : ""}${this.checked ? " checked" : ""}${this.indeterminate ? " indeterminate" : ""}`, checkedValue: "true", disabled: this.disabled, indeterminate: this.indeterminate, unCheckedValue: "false", value: `${this.checked}`, onInput: this.handleCheckedChange })), h("div", { class: {
536
- action: true,
537
- "readonly-mode": !this.editing
538
- }, onDblClick: !this.leaf ? this.handleActionDblClick : null }, this.leftImgSrc && this.renderImg("left-img", this.leftImgSrc), this.editing ? (h("input", { class: "edit-name", part: "edit-name", disabled: this.disabled, type: "text", value: this.caption, onBlur: this.removeEditMode(false), onKeyDown: this.checkIfShouldRemoveEditMode, ref: el => (this.inputRef = el) })) : (this.caption), this.rightImgSrc && this.renderImg("right-img", this.rightImgSrc)), this.showDownloadingSpinner && !this.leaf && this.downloading && (h("div", { class: "downloading", part: "downloading" })), this.showLines && this.level !== 0 && (h("div", { class: { "dashed-line": true, "last-dashed-line": this.lastItem }, part: `dashed-line${this.lastItem ? " last-dashed-line" : ""}` }))), hasContent && (h("div", { "aria-busy": this.downloading.toString(), "aria-live": this.downloading ? "polite" : null, id: EXPANDABLE_ID, class: { expandable: true, expanded: this.expanded }, part: `expandable${this.expanded ? " expanded" : ""}` }, h("slot", { name: "tree" })))));
539
+ }, part: `expandable-button${this.disabled ? " disabled" : ""}${this.expanded ? " expanded" : " collapsed"}`, disabled: this.disabled, onClick: this.toggleExpand })), this.checkbox && (h("ch-checkbox", { accessibleName: this.caption, class: "checkbox", part: `checkbox${this.disabled ? " disabled" : ""}${this.checked ? " checked" : ""}${this.indeterminate ? " indeterminate" : ""}`, checkedValue: "true", disabled: this.disabled, indeterminate: this.indeterminate, unCheckedValue: "false", value: `${this.checked}`, onInput: this.handleCheckedChange })), this.customRender ? (h("slot", { name: "custom-content" })) : ([
540
+ h("div", { class: {
541
+ action: true,
542
+ "readonly-mode": !this.editing
543
+ }, part: `action ${!this.editing ? "readonly-mode" : ""}`, onDblClick: !this.leaf && !this.editing ? this.handleActionDblClick : null }, this.leftImgSrc && this.renderImg("left-img", this.leftImgSrc), this.editing ? (h("input", { class: "edit-name", part: "edit-name", disabled: this.disabled, type: "text", value: this.caption, onBlur: this.removeEditMode(false), onKeyDown: this.checkIfShouldRemoveEditMode, ref: el => (this.inputRef = el) })) : (this.caption), this.rightImgSrc &&
544
+ this.renderImg("right-img", this.rightImgSrc)),
545
+ this.showDownloadingSpinner && !this.leaf && this.downloading && (h("div", { class: "downloading", part: "downloading" }))
546
+ ]), (showAllLines || showLastLine) && (h("div", { class: {
547
+ "dashed-line": true,
548
+ "last-all-line": showAllLines && this.lastItem,
549
+ "last-line": showLastLine
550
+ }, part: `dashed-line${this.lastItem ? " last-all-line" : ""}` }))), hasContent && (h("div", { "aria-busy": this.downloading.toString(), "aria-live": this.downloading ? "polite" : null, id: EXPANDABLE_ID, class: { expandable: true, expanded: this.expanded }, part: `expandable${this.expanded ? " expanded" : ""}` }, h("slot", { name: "tree" })))));
539
551
  }
540
552
  get el() { return this; }
541
553
  static get watchers() { return {
@@ -550,6 +562,7 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
550
562
  "caption": [1],
551
563
  "checkbox": [4],
552
564
  "checked": [1540],
565
+ "customRender": [4, "custom-render"],
553
566
  "disabled": [516],
554
567
  "dragState": [1025, "drag-state"],
555
568
  "downloading": [4],
@@ -561,11 +574,12 @@ const ChTreeXListItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLEleme
561
574
  "leftImgSrc": [1, "left-img-src"],
562
575
  "level": [1026],
563
576
  "indeterminate": [1028],
577
+ "metadata": [1],
564
578
  "rightImgSrc": [1, "right-img-src"],
565
579
  "selected": [1540],
566
580
  "showDownloadingSpinner": [4, "show-downloading-spinner"],
567
581
  "showExpandableButton": [4, "show-expandable-button"],
568
- "showLines": [1028, "show-lines"],
582
+ "showLines": [1025, "show-lines"],
569
583
  "toggleCheckboxes": [4, "toggle-checkboxes"],
570
584
  "focusNextItem": [64],
571
585
  "focusNextSibling": [64],
@@ -19,8 +19,13 @@ const ChTreeListX = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
19
19
  * `true` to display the relation between tree items and tree lists using
20
20
  * lines.
21
21
  */
22
- this.showLines = true;
22
+ this.showLines = "none";
23
23
  this.updateLastItemDashedLine = () => {
24
+ // @todo WA to avoid StencilJS' bug. The showLines Watch is dispatched
25
+ // before the componentDidLoad lifecycle method completes
26
+ if (!this.slotRef) {
27
+ return;
28
+ }
24
29
  const treeItems = this.slotRef.assignedElements();
25
30
  if (treeItems.length === 0) {
26
31
  return;
@@ -34,7 +39,7 @@ const ChTreeListX = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
34
39
  }
35
40
  handleShowLinesChange(newValue) {
36
41
  // Displayed items may have changed since the last time that `showLines === true`
37
- if (newValue) {
42
+ if (newValue !== "none" && this.level !== 0) {
38
43
  this.updateLastItemDashedLine();
39
44
  }
40
45
  }
@@ -51,7 +56,7 @@ const ChTreeListX = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
51
56
  this.showLines = mainTreeRef.showLines;
52
57
  }
53
58
  render() {
54
- return (h(Host, { role: this.level === 0 ? "tree" : "group" }, h("slot", { onSlotchange: this.showLines && this.level !== 0
59
+ return (h(Host, { role: this.level === 0 ? "tree" : "group" }, h("slot", { onSlotchange: this.showLines !== "none" && this.level !== 0
55
60
  ? this.updateLastItemDashedLine
56
61
  : null, ref: el => (this.slotRef = el) })));
57
62
  }
@@ -62,7 +67,7 @@ const ChTreeListX = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
62
67
  static get style() { return treeXListCss; }
63
68
  }, [1, "ch-tree-x-list", {
64
69
  "level": [1026],
65
- "showLines": [1028, "show-lines"]
70
+ "showLines": [1025, "show-lines"]
66
71
  }]);
67
72
  function defineCustomElement() {
68
73
  if (typeof customElements === "undefined") {