@genexus/genexus-ide-ui 0.0.29 → 0.0.31

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 (82) 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/gxg-combo-box_6.cjs.entry.js +10 -4
  13. package/dist/cjs/gxg-date-picker.cjs.entry.js +4 -4
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/collection/components/team-dev-commit/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +1 -1
  16. package/dist/collection/components/team-dev-commit/team-dev-commit.css +3 -0
  17. package/dist/collection/components/team-dev-commit/team-dev-commit.js +2 -2
  18. package/dist/components/action-group-item.js +1 -9
  19. package/dist/components/action-group.js +1 -1
  20. package/dist/components/ch-suggest2.js +1 -0
  21. package/dist/components/ch-test-action-group.js +2 -2
  22. package/dist/components/ch-test-tree-x.js +157 -83
  23. package/dist/components/ch-window2.js +31 -13
  24. package/dist/components/checkbox.js +1 -1
  25. package/dist/components/combo-box-item.js +2 -2
  26. package/dist/components/combo-box.js +8 -2
  27. package/dist/components/dropdown-item.js +8 -8
  28. package/dist/components/dropdown.js +11 -10
  29. package/dist/components/gx-ide-team-dev-commit.js +3 -3
  30. package/dist/components/gxg-date-picker.js +4 -4
  31. package/dist/components/tree-x-list-item.js +31 -17
  32. package/dist/components/tree-x-list.js +9 -4
  33. package/dist/components/tree-x.js +182 -117
  34. package/dist/esm/ch-action-group_2.entry.js +2 -9
  35. package/dist/esm/ch-checkbox.entry.js +1 -1
  36. package/dist/esm/ch-dropdown-item.entry.js +8 -8
  37. package/dist/esm/ch-dropdown.entry.js +11 -10
  38. package/dist/esm/ch-suggest_4.entry.js +1 -0
  39. package/dist/esm/ch-test-action-group.entry.js +2 -2
  40. package/dist/esm/ch-test-tree-x.entry.js +150 -80
  41. package/dist/esm/ch-tree-x_3.entry.js +211 -132
  42. package/dist/esm/ch-window_2.entry.js +28 -12
  43. package/dist/esm/genexus-ide-ui.js +1 -1
  44. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  45. package/dist/esm/gxg-combo-box_6.entry.js +10 -4
  46. package/dist/esm/gxg-date-picker.entry.js +4 -4
  47. package/dist/esm/loader.js +1 -1
  48. package/dist/genexus-ide-ui/genexus-ide-ui.css +1 -1
  49. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  50. package/dist/genexus-ide-ui/gx-ide-assets/team-dev-commit/langs/team-dev-commit.lang.en.json +1 -1
  51. package/dist/genexus-ide-ui/p-1fe05a05.entry.js +1 -0
  52. package/dist/genexus-ide-ui/p-24f47ee2.entry.js +1 -0
  53. package/dist/genexus-ide-ui/{p-54bab171.entry.js → p-28d0afda.entry.js} +1 -1
  54. package/dist/genexus-ide-ui/{p-6050cdba.entry.js → p-48412811.entry.js} +1 -1
  55. package/dist/genexus-ide-ui/p-714bd8ea.entry.js +1 -0
  56. package/dist/genexus-ide-ui/p-8c2ab053.entry.js +1 -0
  57. package/dist/genexus-ide-ui/p-976e8118.entry.js +1 -0
  58. package/dist/genexus-ide-ui/p-a5463fc9.entry.js +1 -0
  59. package/dist/genexus-ide-ui/p-b54f448c.entry.js +1 -0
  60. package/dist/genexus-ide-ui/p-bb1809cb.entry.js +1 -0
  61. package/dist/genexus-ide-ui/p-cf41f154.entry.js +1 -0
  62. package/dist/genexus-ide-ui/p-e8a21ed7.entry.js +1 -0
  63. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/action-group-item/action-group-item.css +0 -1
  64. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/checkbox/checkbox.css +5 -3
  65. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown/dropdown.css +15 -33
  66. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/dropdown-item/dropdown-item.css +0 -4
  67. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +0 -10
  68. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x/tree-x.css +20 -3
  69. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list-item/tree-x-list-item.css +25 -8
  70. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/window/ch-window.css +51 -2
  71. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box-item/combo-box-item.css +1 -1
  72. package/package.json +3 -3
  73. package/dist/genexus-ide-ui/p-097a3eeb.entry.js +0 -1
  74. package/dist/genexus-ide-ui/p-3d9a4ede.entry.js +0 -1
  75. package/dist/genexus-ide-ui/p-4bbe1c18.entry.js +0 -1
  76. package/dist/genexus-ide-ui/p-5c64c57f.entry.js +0 -1
  77. package/dist/genexus-ide-ui/p-5ff04ebe.entry.js +0 -1
  78. package/dist/genexus-ide-ui/p-757f8567.entry.js +0 -1
  79. package/dist/genexus-ide-ui/p-8d46f8d8.entry.js +0 -1
  80. package/dist/genexus-ide-ui/p-a0e85c2a.entry.js +0 -1
  81. package/dist/genexus-ide-ui/p-e4cac203.entry.js +0 -1
  82. package/dist/genexus-ide-ui/p-f8561da6.entry.js +0 -1
@@ -1,8 +1,9 @@
1
1
  import { r as registerInstance, h, f as forceUpdate, H as Host } from './index-0da01575.js';
2
2
 
3
- const testTreeXCss = "ch-test-tree-x{display:grid;grid-template-columns:350px max-content;grid-template-rows:1fr;height:100%}ch-test-tree-x>.test-tree-x-scroll{position:relative;overflow-y:auto;margin-inline-end:16px}ch-test-tree-x>.test-tree-x-scroll>ch-tree-x{position:absolute;inset:0;margin:2px}.tree-buttons{display:grid;grid-auto-rows:max-content;row-gap:8px}:not(.ch-tree-x-dragging-item) ch-tree-x-list-item:not([selected])::part(header):hover{background-color:#e8e8e9}.ch-tree-x-list-item--drag-enter{background-color:#eee;box-shadow:inset 0 0 1px 0px black}.ch-tree-x-list-item--drag-enter[selected]::part(header){background-color:#eee}ch-tree-x-list-item::part(header){border:1px solid transparent}ch-tree-x-list-item[selected]::part(header){background-color:#cfdee6;border-color:#0266a0}ch-tree-x-list-item.ch-tree-x-list-item--editing::part(header){background-color:rgba(207, 222, 230, 0.5);border-color:transparent}ch-tree-x-list-item:not(.ch-tree-x-list-item--editing)::part(header):focus-visible{border-color:black;z-index:1}.ch-tree-x-drag-info{padding-inline:6px;padding-block:2px;background-color:#cfdee6;border:1px solid #0266a0;border-radius:10px;font-size:8px}";
3
+ const testTreeXCss = "ch-test-tree-x{display:grid;grid-template-columns:350px max-content;grid-template-rows:1fr;height:100%}.tree-buttons{display:grid;grid-auto-rows:max-content;row-gap:8px}:not(.ch-tree-x-dragging-item) ch-tree-x-list-item:not([selected])::part(header):hover{background-color:#e8e8e9}.ch-tree-x-list-item--drag-enter{background-color:#eee;box-shadow:inset 0 0 1px 0px black}.ch-tree-x-list-item--drag-enter[selected]::part(header){background-color:#eee}ch-tree-x-list-item::part(header){border:1px solid transparent}ch-tree-x-list-item[selected]::part(header){background-color:#cfdee6;border-color:#0266a0}ch-tree-x-list-item.ch-tree-x-list-item--editing::part(header){background-color:rgba(207, 222, 230, 0.5);border-color:transparent}ch-tree-x-list-item:not(.ch-tree-x-list-item--editing)::part(header):focus-visible{border-color:black;z-index:1}.ch-tree-x-drag-info{padding-inline:6px;padding-block:2px;background-color:#cfdee6;border:1px solid #0266a0;border-radius:10px;font-size:8px}";
4
4
 
5
5
  const DEFAULT_EXPANDED_VALUE = false;
6
+ const DEFAULT_INDETERMINATE_VALUE = false;
6
7
  const DEFAULT_LAZY_VALUE = false;
7
8
  const DEFAULT_SELECTED_VALUE = false;
8
9
  const ChTestTreeX = class {
@@ -26,18 +27,20 @@ const ChTestTreeX = class {
26
27
  */
27
28
  this.multiSelection = false;
28
29
  /**
29
- * Set this attribute if you want to display the relation between tree items and tree lists using
30
+ * `true` to display the relation between tree items and tree lists using
30
31
  * lines.
31
32
  */
32
- this.showLines = true;
33
- this.closeTreeNodeHandler = () => {
34
- // this.tree.toggleItems(["number-1-1-2"], false);
35
- };
36
- this.openTreeNodeHandler = () => {
37
- // this.tree.toggleItems(["number-1-1-2"], true);
38
- };
39
- this.toggleTreeNodeHandler = () => {
40
- // this.tree.toggleItems(["number-1-1-2"]);
33
+ this.showLines = "none";
34
+ this.handleDroppableZoneEnter = (event) => {
35
+ const dropInformation = event.detail;
36
+ if (!this.checkDroppableZoneCallback) {
37
+ return;
38
+ }
39
+ const requestTimestamp = new Date().getTime();
40
+ const promise = this.checkDroppableZoneCallback(dropInformation);
41
+ promise.then(validDrop => {
42
+ this.treeRef.updateValidDroppableZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
43
+ });
41
44
  };
42
45
  this.handleSelectedItemsChange = (event) => {
43
46
  const itemsToProcess = new Map(event.detail);
@@ -64,22 +67,87 @@ const ChTestTreeX = class {
64
67
  this.selectedItems.add(itemId);
65
68
  });
66
69
  };
67
- this.getCheckedItemsHandler = async () => {
68
- // const checked = await this.tree.getCheckedItems();
70
+ this.handleExpandedItemChange = (event) => {
71
+ const detail = event.detail;
72
+ const itemInfo = this.flattenedTreeModel.get(detail.id).item;
73
+ itemInfo.expanded = detail.expanded;
74
+ };
75
+ this.handleItemsDropped = (event) => {
76
+ const dataTransferInfo = event.detail;
77
+ const newContainer = dataTransferInfo.newContainer;
78
+ const newParentId = newContainer.id;
79
+ // Check if the parent exists in the UI Model
80
+ if (!this.flattenedTreeModel.get(newParentId)) {
81
+ return;
82
+ }
83
+ const draggedItems = dataTransferInfo.draggedItems;
84
+ if (draggedItems.length === 0 || !this.dropItemsCallback) {
85
+ return;
86
+ }
87
+ const promise = this.dropItemsCallback(dataTransferInfo);
88
+ this.waitDropProcessing = true;
89
+ promise.then(response => {
90
+ this.waitDropProcessing = false;
91
+ if (!response.acceptDrop) {
92
+ return;
93
+ }
94
+ const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
95
+ // Only move the items to the new parent, keeping the state
96
+ if (dataTransferInfo.dropInTheSameTree) {
97
+ // Add the UI models to the new container and remove the UI models from
98
+ // the old containers
99
+ draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
100
+ }
101
+ // Add the new items
102
+ else {
103
+ if (response.items == null) {
104
+ return;
105
+ }
106
+ // Add new items to the parent
107
+ newParentUIModel.items.push(...response.items);
108
+ // Flatten the new UI models
109
+ response.items.forEach(this.flattenItemUIModel(newParentUIModel));
110
+ }
111
+ this.sortItems(newParentUIModel.items);
112
+ // Open the item to visualize the new subitems
113
+ newParentUIModel.expanded = true;
114
+ // There is no need to force and update, since the waitDropProcessing
115
+ // prop was modified
116
+ });
117
+ };
118
+ this.moveItemToNewParent = (newParentUIModel) => (dataTransferInfo) => {
119
+ const itemUIModelExtended = this.flattenedTreeModel.get(dataTransferInfo.id);
120
+ const item = itemUIModelExtended.item;
121
+ const oldParentItem = itemUIModelExtended.parentItem;
122
+ // Remove the UI model from the previous parent
123
+ oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
124
+ // Add the UI Model to the new parent
125
+ newParentUIModel.items.push(item);
126
+ // Reference the new parent in the item
127
+ itemUIModelExtended.parentItem = newParentUIModel;
69
128
  };
70
- // private deleteNodeHandler = () => {
71
- // this.treeItemsModel = [];
72
- // };
73
- this.renderSubModel = (treeSubModel) => (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, expanded: treeSubModel.expanded, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
129
+ this.renderSubModel = (treeSubModel) => (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
74
130
  treeSubModel.items != null &&
75
131
  treeSubModel.items.length !== 0 && (h("ch-tree-x-list", { slot: "tree" }, treeSubModel.items.map(this.renderSubModel)))));
76
- this.handleMultiSelectionChange = (event) => {
77
- const checked = event.target.checked;
78
- this.multiSelection = checked;
79
- };
80
- this.handleShowLinesChange = (event) => {
81
- const checked = event.target.checked;
82
- this.showLines = checked;
132
+ this.flattenItemUIModel = (parentModel) => (item) => {
133
+ var _a, _b, _c, _d;
134
+ this.flattenedTreeModel.set(item.id, {
135
+ parentItem: parentModel,
136
+ item: item
137
+ });
138
+ // Make sure the properties are with their default values to avoid issues
139
+ // when reusing DOM nodes
140
+ (_a = item.expanded) !== null && _a !== void 0 ? _a : (item.expanded = DEFAULT_EXPANDED_VALUE);
141
+ (_b = item.indeterminate) !== null && _b !== void 0 ? _b : (item.indeterminate = DEFAULT_INDETERMINATE_VALUE);
142
+ (_c = item.lazy) !== null && _c !== void 0 ? _c : (item.lazy = DEFAULT_LAZY_VALUE);
143
+ (_d = item.selected) !== null && _d !== void 0 ? _d : (item.selected = DEFAULT_SELECTED_VALUE);
144
+ if (item.lazy) {
145
+ this.flattenedLazyTreeModel.set(item.id, item);
146
+ }
147
+ if (item.selected) {
148
+ this.selectedItems.add(item.id);
149
+ }
150
+ this.flattenSubModel(item);
83
151
  };
84
152
  }
85
153
  handleTreeModelChange() {
@@ -108,45 +176,65 @@ const ChTestTreeX = class {
108
176
  // expand the items, we have to delegate the responsibility to the tree-x
109
177
  this.treeRef.scrollIntoVisible(treeItemId);
110
178
  }
111
- handleDrop(event) {
112
- var _a;
113
- const detail = event.detail;
114
- const dropItemId = detail.dropItemId;
115
- // Check if the parent exists in the UI Model
116
- if (!this.flattenedTreeModel.get(dropItemId)) {
117
- return;
179
+ /**
180
+ * This method is used to toggle a tree item by the tree item id/ids.
181
+ *
182
+ * @param treeItemIds An array id the tree items to be toggled.
183
+ * @param expand A boolean indicating that the tree item should be expanded or collapsed. (optional)
184
+ * @returns The modified items after the method was called.
185
+ */
186
+ async toggleItems(treeItemIds, expand) {
187
+ if (!treeItemIds) {
188
+ return [];
118
189
  }
119
- const data = detail.dataTransfer.getData("text/plain");
120
- const draggedIds = (_a = data === null || data === void 0 ? void 0 : data.split(",")) !== null && _a !== void 0 ? _a : [];
121
- if (draggedIds.length === 0 || !this.dropItemsCallback) {
190
+ const modifiedTreeItems = [];
191
+ treeItemIds.forEach(treeItemId => {
192
+ const itemInfo = this.flattenedTreeModel.get(treeItemId).item;
193
+ if (itemInfo) {
194
+ itemInfo.expanded = expand !== null && expand !== void 0 ? expand : !itemInfo.expanded;
195
+ modifiedTreeItems.push({
196
+ id: itemInfo.id,
197
+ expanded: itemInfo.expanded
198
+ });
199
+ }
200
+ });
201
+ // Force re-render
202
+ forceUpdate(this);
203
+ return modifiedTreeItems;
204
+ }
205
+ /**
206
+ * Given a subset of item's properties, it updates all item UI models.
207
+ */
208
+ async updateAllItemsProperties(properties) {
209
+ [...this.flattenedTreeModel.values()].forEach(itemUIModel => {
210
+ if (properties.expanded != null) {
211
+ itemUIModel.item.expanded = properties.expanded;
212
+ }
213
+ if (properties.checked != null) {
214
+ itemUIModel.item.checked = properties.checked;
215
+ itemUIModel.item.indeterminate = false;
216
+ }
217
+ });
218
+ forceUpdate(this);
219
+ }
220
+ /**
221
+ * Given a item list and the properties to update, it updates the properties
222
+ * of the items in the list.
223
+ */
224
+ async updateItemsProperties(items, properties) {
225
+ items.forEach(item => {
226
+ const itemUIModel = this.flattenedTreeModel.get(item);
227
+ this.updateItemProperty(itemUIModel, properties);
228
+ });
229
+ forceUpdate(this);
230
+ }
231
+ updateItemProperty(itemUIModel, properties) {
232
+ if (!itemUIModel) {
122
233
  return;
123
234
  }
124
- const promise = this.dropItemsCallback(dropItemId, draggedIds);
125
- this.waitDropProcessing = true;
126
- promise.then(acceptDrop => {
127
- this.waitDropProcessing = false;
128
- if (!acceptDrop) {
129
- return;
130
- }
131
- const newParentItem = this.flattenedTreeModel.get(dropItemId).item;
132
- // Add the UI models to the new container and remove the UI models from
133
- // the old containers
134
- draggedIds.forEach(itemId => {
135
- const itemUIModelExtended = this.flattenedTreeModel.get(itemId);
136
- const item = itemUIModelExtended.item;
137
- const oldParentItem = itemUIModelExtended.parentItem;
138
- // Remove the UI model from the previous parent
139
- oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
140
- // Add the UI Model to the new parent
141
- newParentItem.items.push(item);
142
- // Reference the new parent in the item
143
- itemUIModelExtended.parentItem = newParentItem;
144
- });
145
- this.sortItems(newParentItem.items);
146
- // Open the item to visualize the new subitems
147
- newParentItem.expanded = true;
148
- // There is no need to force and update, since the waitDropProcessing
149
- // prop was modified
235
+ const itemInfo = itemUIModel.item;
236
+ Object.keys(properties).forEach(propertyName => {
237
+ itemInfo[propertyName] = properties[propertyName];
150
238
  });
151
239
  }
152
240
  loadLazyChildrenHandler(event) {
@@ -216,25 +304,7 @@ const ChTestTreeX = class {
216
304
  return;
217
305
  }
218
306
  this.sortItems(items);
219
- items.forEach(item => {
220
- var _a, _b, _c;
221
- this.flattenedTreeModel.set(item.id, {
222
- parentItem: model,
223
- item: item
224
- });
225
- // Make sure the properties are with their default values to avoid issues
226
- // when reusing DOM nodes
227
- (_a = item.expanded) !== null && _a !== void 0 ? _a : (item.expanded = DEFAULT_EXPANDED_VALUE);
228
- (_b = item.lazy) !== null && _b !== void 0 ? _b : (item.lazy = DEFAULT_LAZY_VALUE);
229
- (_c = item.selected) !== null && _c !== void 0 ? _c : (item.selected = DEFAULT_SELECTED_VALUE);
230
- if (item.lazy) {
231
- this.flattenedLazyTreeModel.set(item.id, item);
232
- }
233
- if (item.selected) {
234
- this.selectedItems.add(item.id);
235
- }
236
- this.flattenSubModel(item);
237
- });
307
+ items.forEach(this.flattenItemUIModel(model));
238
308
  }
239
309
  sortItems(items) {
240
310
  // Ensure that items are sorted
@@ -251,7 +321,7 @@ const ChTestTreeX = class {
251
321
  this.flattenModel();
252
322
  }
253
323
  render() {
254
- return (h(Host, null, h("div", { class: "test-tree-x-scroll" }, h("ch-tree-x", { multiSelection: this.multiSelection, showLines: this.showLines, waitDropProcessing: this.waitDropProcessing, onSelectedItemsChange: this.handleSelectedItemsChange, ref: el => (this.treeRef = el) }, h("ch-tree-x-list", null, this.treeModel.items.map(this.renderSubModel)))), h("div", { class: "tree-buttons" }, h("button", { type: "button", onClick: this.closeTreeNodeHandler }, "Close 1-1-2"), h("button", { type: "button", onClick: this.openTreeNodeHandler }, "Open 1-1-2"), h("button", { type: "button", onClick: this.toggleTreeNodeHandler }, "Toggle 1-1-2"), h("button", { type: "button", onClick: this.getCheckedItemsHandler }, "Get Checked Items"), h("ch-checkbox", { caption: "Check / uncheck all" }), h("ch-checkbox", { checkedValue: "true", unCheckedValue: "false", value: this.multiSelection.toString(), caption: "Multi selection", onInput: this.handleMultiSelectionChange }), h("ch-checkbox", { checkedValue: "true", unCheckedValue: "false", value: this.showLines.toString(), caption: "Show lines", onInput: this.handleShowLinesChange }))));
324
+ return (h(Host, null, h("ch-tree-x", { multiSelection: this.multiSelection, showLines: this.showLines, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: el => (this.treeRef = el) }, h("ch-tree-x-list", null, this.treeModel.items.map(this.renderSubModel))), h("div", { class: "tree-buttons" })));
255
325
  }
256
326
  static get watchers() { return {
257
327
  "treeModel": ["handleTreeModelChange"]