@genexus/genexus-ide-ui 0.0.56 → 0.0.58

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 (171) hide show
  1. package/dist/cjs/{ch-checkbox_4.cjs.entry.js → ch-checkbox_3.cjs.entry.js} +90 -65
  2. package/dist/cjs/{ch-grid-action-refresh_6.cjs.entry.js → ch-grid-action-refresh_7.cjs.entry.js} +168 -4
  3. package/dist/cjs/ch-icon_2.cjs.entry.js +1 -0
  4. package/dist/cjs/ch-suggest_4.cjs.entry.js +7 -3
  5. package/dist/cjs/ch-test-suggest.cjs.entry.js +84 -0
  6. package/dist/cjs/ch-test-tree-x.cjs.entry.js +83 -43
  7. package/dist/cjs/ch-tooltip.cjs.entry.js +85 -0
  8. package/dist/cjs/config-082c7c76.js +9 -0
  9. package/dist/cjs/{form-a22de8f3.js → form-a2de5b1c.js} +14 -0
  10. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  11. package/dist/cjs/gx-grid-chameleon.cjs.entry.js +21 -3
  12. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +10 -9
  13. package/dist/cjs/gx-ide-new-object.cjs.entry.js +2 -1
  14. package/dist/cjs/gx-ide-references.cjs.entry.js +76 -116
  15. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +3 -2
  16. package/dist/cjs/gx-ide-test.cjs.entry.js +51 -5
  17. package/dist/cjs/gxg-combo-box_2.cjs.entry.js +9 -4
  18. package/dist/cjs/gxg-form-checkbox-group.cjs.entry.js +1 -1
  19. package/dist/cjs/gxg-form-checkbox.cjs.entry.js +2 -2
  20. package/dist/cjs/gxg-form-radio-group.cjs.entry.js +1 -1
  21. package/dist/cjs/gxg-form-text.cjs.entry.js +19 -4
  22. package/dist/cjs/gxg-form-textarea.cjs.entry.js +8 -4
  23. package/dist/cjs/gxg-label_2.cjs.entry.js +40 -2
  24. package/dist/cjs/gxg-list-box_2.cjs.entry.js +2 -2
  25. package/dist/cjs/gxg-select.cjs.entry.js +1 -1
  26. package/dist/cjs/gxg-test.cjs.entry.js +1 -16
  27. package/dist/cjs/gxg-tree-view.cjs.entry.js +108 -45
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/collection/collection-manifest.json +2 -1
  30. package/dist/collection/common/config.js +5 -0
  31. package/dist/collection/common/helpers.js +3 -0
  32. package/dist/collection/components/new-kb/new-kb.js +10 -9
  33. package/dist/collection/components/new-object/new-object.js +2 -1
  34. package/dist/collection/components/references/helpers.js +16 -19
  35. package/dist/collection/components/references/references.css +8 -0
  36. package/dist/collection/components/references/references.js +60 -98
  37. package/dist/collection/components/share-kb/share-kb.js +3 -2
  38. package/dist/components/ch-paginator-pages.js +1 -171
  39. package/dist/{esm/ch-paginator-pages.entry.js → components/ch-paginator-pages2.js} +29 -8
  40. package/dist/components/ch-paginator2.js +18 -4
  41. package/dist/components/ch-suggest2.js +6 -2
  42. package/dist/components/ch-test-suggest.js +119 -0
  43. package/dist/components/ch-test-tree-x.js +96 -58
  44. package/dist/components/ch-tooltip.js +115 -0
  45. package/dist/components/checkbox.js +1 -1
  46. package/dist/components/combo-box.js +10 -4
  47. package/dist/components/config.js +7 -0
  48. package/dist/components/form-checkbox.js +1 -1
  49. package/dist/components/form-text.js +20 -4
  50. package/dist/components/form-textarea.js +9 -4
  51. package/dist/components/form.js +14 -1
  52. package/dist/components/gx-grid-chameleon.js +52 -28
  53. package/dist/components/gx-ide-new-kb.js +10 -9
  54. package/dist/components/gx-ide-new-object.js +2 -1
  55. package/dist/components/gx-ide-references.js +122 -150
  56. package/dist/components/gx-ide-share-kb.js +3 -2
  57. package/dist/components/gx-ide-test.js +48 -2
  58. package/dist/components/gxg-test.js +25 -22
  59. package/dist/components/gxg-tree-view.js +2 -389
  60. package/dist/components/icon2.js +1 -0
  61. package/dist/components/index.js +2 -1
  62. package/dist/components/list-box.js +1 -1
  63. package/dist/components/suggest.js +1 -1
  64. package/dist/components/tooltip.js +45 -3
  65. package/dist/components/tree-view.js +453 -0
  66. package/dist/components/tree-x-list-item.js +59 -32
  67. package/dist/components/tree-x.js +34 -17
  68. package/dist/esm/{ch-checkbox_4.entry.js → ch-checkbox_3.entry.js} +92 -66
  69. package/dist/esm/{ch-grid-action-refresh_6.entry.js → ch-grid-action-refresh_7.entry.js} +168 -5
  70. package/dist/esm/ch-icon_2.entry.js +1 -0
  71. package/dist/esm/ch-suggest_4.entry.js +7 -3
  72. package/dist/esm/ch-test-suggest.entry.js +80 -0
  73. package/dist/esm/ch-test-tree-x.entry.js +84 -44
  74. package/dist/esm/ch-tooltip.entry.js +81 -0
  75. package/dist/esm/config-94445cc2.js +7 -0
  76. package/dist/esm/{form-5e68671c.js → form-9c41f579.js} +14 -1
  77. package/dist/esm/genexus-ide-ui.js +1 -1
  78. package/dist/esm/gx-grid-chameleon.entry.js +21 -3
  79. package/dist/esm/gx-ide-new-kb.entry.js +10 -9
  80. package/dist/esm/gx-ide-new-object.entry.js +2 -1
  81. package/dist/esm/gx-ide-references.entry.js +76 -116
  82. package/dist/esm/gx-ide-share-kb.entry.js +3 -2
  83. package/dist/esm/gx-ide-test.entry.js +48 -2
  84. package/dist/esm/gxg-combo-box_2.entry.js +9 -4
  85. package/dist/esm/gxg-form-checkbox-group.entry.js +1 -1
  86. package/dist/esm/gxg-form-checkbox.entry.js +2 -2
  87. package/dist/esm/gxg-form-radio-group.entry.js +1 -1
  88. package/dist/esm/gxg-form-text.entry.js +19 -4
  89. package/dist/esm/gxg-form-textarea.entry.js +8 -4
  90. package/dist/esm/gxg-label_2.entry.js +41 -3
  91. package/dist/esm/gxg-list-box_2.entry.js +2 -2
  92. package/dist/esm/gxg-select.entry.js +1 -1
  93. package/dist/esm/gxg-test.entry.js +1 -16
  94. package/dist/esm/gxg-tree-view.entry.js +109 -46
  95. package/dist/esm/loader.js +1 -1
  96. package/dist/genexus-ide-ui/genexus-ide-ui.css +4 -2
  97. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  98. package/dist/genexus-ide-ui/icon-assets/gemini-tools/error.svg +1 -1
  99. package/dist/genexus-ide-ui/icon-assets/gemini-tools/success.svg +1 -1
  100. package/dist/genexus-ide-ui/icon-assets/gemini-tools/warning.svg +1 -1
  101. package/dist/genexus-ide-ui/{p-afe9515e.entry.js → p-0268cc45.entry.js} +1 -1
  102. package/dist/genexus-ide-ui/p-0aa11d6f.entry.js +1 -0
  103. package/dist/genexus-ide-ui/p-0f4fe7ad.js +1 -0
  104. package/dist/genexus-ide-ui/p-109209dc.entry.js +1 -0
  105. package/dist/genexus-ide-ui/p-123b8351.entry.js +1 -0
  106. package/dist/genexus-ide-ui/{p-a440a73f.entry.js → p-1294d220.entry.js} +1 -1
  107. package/dist/genexus-ide-ui/{p-4eaffd02.entry.js → p-2096031c.entry.js} +1 -1
  108. package/dist/genexus-ide-ui/{p-f3a1dc7c.entry.js → p-2537b4d6.entry.js} +1 -1
  109. package/dist/genexus-ide-ui/p-3657924a.entry.js +1 -0
  110. package/dist/genexus-ide-ui/p-3ec2f036.entry.js +1 -0
  111. package/dist/genexus-ide-ui/p-4923cffa.entry.js +1 -0
  112. package/dist/genexus-ide-ui/p-4e81926d.entry.js +1 -0
  113. package/dist/genexus-ide-ui/p-71c6da54.entry.js +1 -0
  114. package/dist/genexus-ide-ui/p-86b98a99.entry.js +1 -0
  115. package/dist/genexus-ide-ui/{p-e586d05e.entry.js → p-875e5979.entry.js} +1 -1
  116. package/dist/genexus-ide-ui/p-9e428123.entry.js +1 -0
  117. package/dist/genexus-ide-ui/p-a8b8baf9.entry.js +1 -0
  118. package/dist/genexus-ide-ui/p-cd00ba19.entry.js +1 -0
  119. package/dist/genexus-ide-ui/p-ce9fef1a.entry.js +1 -0
  120. package/dist/genexus-ide-ui/p-d47ed4e3.entry.js +1 -0
  121. package/dist/genexus-ide-ui/p-d7b452ef.entry.js +1 -0
  122. package/dist/genexus-ide-ui/{p-5cb871e3.entry.js → p-ebcdef37.entry.js} +1 -1
  123. package/dist/genexus-ide-ui/p-f1ff6b48.entry.js +1 -0
  124. package/dist/genexus-ide-ui/p-f62d9b6d.entry.js +1 -0
  125. package/dist/genexus-ide-ui/p-f82f25e2.js +1 -0
  126. package/dist/genexus-ide-ui/p-f9f1d95d.entry.js +1 -0
  127. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/checkbox/checkbox.css +3 -3
  128. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-suggest/test-suggest.css +114 -0
  129. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +1 -47
  130. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tooltip/tooltip.css +120 -0
  131. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/{tree-x → tree-view/tree-x}/tree-x.css +4 -5
  132. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/{tree-x-list-item → tree-view/tree-x-list-item}/tree-x-list-item.css +8 -9
  133. package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box/combo-box.css +5 -0
  134. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-checkbox/form-checkbox.css +18 -0
  135. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-text/form-text.css +37 -0
  136. package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +22 -0
  137. package/dist/node_modules/@genexus/gemini/dist/collection/components/list-box/list-box.css +18 -0
  138. package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +18 -0
  139. package/dist/node_modules/@genexus/gemini/dist/collection/components/tooltip/tooltip.css +58 -3
  140. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +68 -13
  141. package/dist/types/common/config.d.ts +3 -0
  142. package/dist/types/common/helpers.d.ts +1 -0
  143. package/dist/types/components/references/helpers.d.ts +3 -3
  144. package/dist/types/components/references/references.d.ts +7 -19
  145. package/package.json +3 -3
  146. package/dist/cjs/ch-paginator-pages.cjs.entry.js +0 -156
  147. package/dist/cjs/update-tree-model-8b154db1.js +0 -53
  148. package/dist/components/ch-tree-x-list.js +0 -6
  149. package/dist/components/tree-x-list.js +0 -37
  150. package/dist/components/update-tree-model.js +0 -50
  151. package/dist/esm/update-tree-model-6c612f05.js +0 -50
  152. package/dist/genexus-ide-ui/p-01406cbc.js +0 -1
  153. package/dist/genexus-ide-ui/p-03efca69.entry.js +0 -1
  154. package/dist/genexus-ide-ui/p-1d7c22d5.entry.js +0 -1
  155. package/dist/genexus-ide-ui/p-395a65de.entry.js +0 -1
  156. package/dist/genexus-ide-ui/p-3b4fca51.entry.js +0 -1
  157. package/dist/genexus-ide-ui/p-447c3a31.entry.js +0 -1
  158. package/dist/genexus-ide-ui/p-46d393f5.entry.js +0 -1
  159. package/dist/genexus-ide-ui/p-58f882c6.entry.js +0 -1
  160. package/dist/genexus-ide-ui/p-60bea19c.entry.js +0 -1
  161. package/dist/genexus-ide-ui/p-64cbe277.entry.js +0 -1
  162. package/dist/genexus-ide-ui/p-71ecc7fd.js +0 -1
  163. package/dist/genexus-ide-ui/p-9a6cb543.entry.js +0 -1
  164. package/dist/genexus-ide-ui/p-a2fa3132.entry.js +0 -1
  165. package/dist/genexus-ide-ui/p-a708db45.entry.js +0 -1
  166. package/dist/genexus-ide-ui/p-c0edbeb5.entry.js +0 -1
  167. package/dist/genexus-ide-ui/p-c7425416.entry.js +0 -1
  168. package/dist/genexus-ide-ui/p-cd5482fa.entry.js +0 -1
  169. package/dist/genexus-ide-ui/p-d312fe25.entry.js +0 -1
  170. package/dist/genexus-ide-ui/p-e6ae0460.entry.js +0 -1
  171. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list/tree-x-list.css +0 -6
@@ -0,0 +1,119 @@
1
+ import { h, proxyCustomElement, HTMLElement, Host } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$4 } from './ch-suggest2.js';
3
+ import { d as defineCustomElement$3 } from './ch-window2.js';
4
+ import { d as defineCustomElement$2 } from './ch-window-close2.js';
5
+
6
+ /**
7
+ * @description This function converts SelectorCategoryData[] SuggestData
8
+ */
9
+ const convertObjectDataToSuggestData = (selectorCategoriesData) => {
10
+ const suggestData = {
11
+ suggestItems: null,
12
+ suggestLists: []
13
+ };
14
+ if (selectorCategoriesData.length) {
15
+ selectorCategoriesData.forEach(selectorCategory => {
16
+ const suggestList = {
17
+ label: selectorCategory.name,
18
+ items: []
19
+ };
20
+ selectorCategory.items.forEach((objectData) => {
21
+ const suggestItem = {
22
+ value: objectData.id,
23
+ description: objectData.description,
24
+ icon: objectData.icon
25
+ };
26
+ suggestList.items.push(suggestItem);
27
+ });
28
+ suggestData.suggestLists.push(suggestList);
29
+ });
30
+ }
31
+ return suggestData;
32
+ };
33
+
34
+ /* eslint-disable @typescript-eslint/no-use-before-define */
35
+ const renderSuggestLists = (suggestData) => {
36
+ if (suggestData === null || suggestData === void 0 ? void 0 : suggestData.suggestLists.length) {
37
+ const randomNumber = Math.random();
38
+ const result = suggestData.suggestLists.map((list) => {
39
+ return (h("ch-suggest-list", { label: list.label, key: randomNumber }, list.items.map((item) => {
40
+ return renderSuggestListsItem(item);
41
+ })));
42
+ });
43
+ return result;
44
+ }
45
+ return null;
46
+ };
47
+ const renderSuggestListsItem = (suggestItem) => {
48
+ return (h("ch-suggest-list-item", { value: suggestItem.value }, [suggestItem.description || suggestItem.value]));
49
+ };
50
+
51
+ const testSuggestCss = ":host{display:block}:root{--highlight-color:rgb(163, 25, 161)}ch-suggest{display:block}ch-suggest::part(title){display:block;font-weight:bold}ch-suggest::part(label){font-weight:500}ch-suggest[label-position=\"start\"]::part(label){margin-inline-end:8px;display:flex;align-items:center}ch-suggest[label-position=\"above\"]::part(label){margin-block-end:4px}ch-suggest::part(close-button){display:block;width:16px;height:16px}ch-suggest::part(close-button)::after{content:\"✖\";line-height:8px;height:100%;display:block;border:1px solid black;cursor:pointer;text-align:center;line-height:16px}ch-suggest::part(header){display:flex;justify-content:space-between;align-items:center;margin-block-end:8px}ch-suggest::part(ch-window-close){width:10px;height:10px}ch-suggest::part(input){padding:4px 8px;border:1px solid black}ch-suggest::part(input):focus{outline:2px solid var(--highlight-color);border-color:var(--highlight-color)}ch-suggest-list{background-color:rgba(234, 234, 234, 0.224);border:1px solid rgba(128, 128, 128, 0.275);border-radius:4px;padding:8px;margin-block-end:4px}ch-suggest-list::part(title){font-size:14px;font-weight:bold;text-transform:uppercase;margin:4px 0 8px 0}ch-suggest-list-item::part(button){padding:4px 8px;cursor:pointer;gap:4px}ch-suggest-list-item ch-icon{--icon-size:16px;margin-inline-end:2px}ch-suggest-list-item:hover{background-color:var(--ch-color--violet-100)}ch-suggest-list-item:focus,ch-suggest-list-item[selected]:focus{outline:2px solid var(--highlight-color)}ch-suggest-list-item[selected]{background-color:rgba(241, 184, 243, 0.42);outline:none}ch-suggest-list-item::part(button):focus{outline:2px solid var(--highlight-color);border-color:var(--highlight-color)}ch-suggest-list-item::part(content-wrapper){display:flex;gap:8px}ch-suggest::part(dropdown){margin-block-start:4px;border:1px solid black;background-color:white;padding:8px}:focus{outline-style:none !important}";
52
+
53
+ const ChTestSuggest$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
54
+ constructor() {
55
+ super();
56
+ this.__registerHost();
57
+ this.__attachShadow();
58
+ // 5.EVENTS (EMIT) //
59
+ // 6.COMPONENT LIFECYCLE EVENTS //
60
+ // 7.LISTENERS //
61
+ // 8.PUBLIC METHODS API //
62
+ // 9.LOCAL METHODS //
63
+ /**
64
+ * This handler gets fired every time the value of the 'Select Object' ch-suggest changes.
65
+ */
66
+ this.selectObjectValueChangedHandler = async (e) => {
67
+ const value = e.detail;
68
+ this.selectorSourceCallback(value)
69
+ .then(result => {
70
+ /* show suggestions*/
71
+ this.objectsSuggestions = convertObjectDataToSuggestData(result);
72
+ })
73
+ .catch(() => {
74
+ // to do
75
+ });
76
+ };
77
+ }
78
+ // 10.RENDER() FUNCTION //
79
+ render() {
80
+ return (h(Host, null, h("ch-suggest", { onValueChanged: this.selectObjectValueChangedHandler, part: "object-selector-suggest", exportparts: "dropdown:select-object-dropdown" }, renderSuggestLists(this.objectsSuggestions))));
81
+ }
82
+ static get style() { return testSuggestCss; }
83
+ }, [1, "ch-test-suggest", {
84
+ "selectorSourceCallback": [16],
85
+ "objectsSuggestions": [32]
86
+ }]);
87
+ function defineCustomElement$1() {
88
+ if (typeof customElements === "undefined") {
89
+ return;
90
+ }
91
+ const components = ["ch-test-suggest", "ch-suggest", "ch-window", "ch-window-close"];
92
+ components.forEach(tagName => { switch (tagName) {
93
+ case "ch-test-suggest":
94
+ if (!customElements.get(tagName)) {
95
+ customElements.define(tagName, ChTestSuggest$1);
96
+ }
97
+ break;
98
+ case "ch-suggest":
99
+ if (!customElements.get(tagName)) {
100
+ defineCustomElement$4();
101
+ }
102
+ break;
103
+ case "ch-window":
104
+ if (!customElements.get(tagName)) {
105
+ defineCustomElement$3();
106
+ }
107
+ break;
108
+ case "ch-window-close":
109
+ if (!customElements.get(tagName)) {
110
+ defineCustomElement$2();
111
+ }
112
+ break;
113
+ } });
114
+ }
115
+
116
+ const ChTestSuggest = ChTestSuggest$1;
117
+ const defineCustomElement = defineCustomElement$1;
118
+
119
+ export { ChTestSuggest, defineCustomElement };
@@ -1,25 +1,29 @@
1
- import { proxyCustomElement, HTMLElement, h, forceUpdate, Host } from '@stencil/core/internal/client';
2
- import { d as defineCustomElement$5 } from './checkbox.js';
3
- import { d as defineCustomElement$4 } from './tree-x.js';
4
- import { d as defineCustomElement$3 } from './tree-x-list.js';
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, forceUpdate } from '@stencil/core/internal/client';
2
+ import { d as defineCustomElement$4 } from './checkbox.js';
3
+ import { d as defineCustomElement$3 } from './tree-x.js';
5
4
  import { d as defineCustomElement$2 } from './tree-x-list-item.js';
6
5
 
7
- const testTreeXCss = "ch-test-tree-x{display:grid;grid-template-columns:500px 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}";
6
+ const testTreeXCss = "ch-test-tree-x{display:contents}";
8
7
 
9
8
  const DEFAULT_DRAG_DISABLED_VALUE = false;
10
9
  const DEFAULT_DROP_DISABLED_VALUE = false;
10
+ const DEFAULT_CLASS_VALUE = "tree-view-item";
11
+ const DEFAULT_EDITABLE_ITEMS_VALUE = true;
11
12
  const DEFAULT_EXPANDED_VALUE = false;
12
13
  const DEFAULT_INDETERMINATE_VALUE = false;
13
14
  const DEFAULT_LAZY_VALUE = false;
15
+ const DEFAULT_ORDER_VALUE = 0;
14
16
  const DEFAULT_SELECTED_VALUE = false;
15
17
  const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
16
18
  constructor() {
17
19
  super();
18
20
  this.__registerHost();
21
+ this.itemContextmenu = createEvent(this, "itemContextmenu", 7);
22
+ this.itemOpenReference = createEvent(this, "itemOpenReference", 7);
23
+ this.selectedItemsChange = createEvent(this, "selectedItemsChange", 7);
19
24
  // UI Models
20
25
  this.flattenedTreeModel = new Map();
21
26
  this.selectedItems = new Set();
22
- this.flattenedLazyTreeModel = new Map();
23
27
  /**
24
28
  * This property lets you specify if the tree is waiting to process the drop
25
29
  * of items.
@@ -27,39 +31,47 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
27
31
  this.waitDropProcessing = false;
28
32
  /**
29
33
  * This attribute lets you specify if the drag operation is disabled in all
30
- * items by default. If `true`, the control can't be dragged.
34
+ * items by default. If `true`, the items can't be dragged.
31
35
  */
32
36
  this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
33
37
  /**
34
38
  * This attribute lets you specify if the drop operation is disabled in all
35
- * items by default. If `true`, the control won't accept any drops.
39
+ * items by default. If `true`, the items won't accept any drops.
36
40
  */
37
41
  this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
38
42
  /**
39
43
  * This property lets you define the model of the ch-tree-x control.
40
44
  */
41
- this.treeModel = { items: [] };
45
+ this.treeModel = [];
42
46
  /**
43
47
  * Set this attribute if you want to allow multi selection of the items.
44
48
  */
45
49
  this.multiSelection = false;
50
+ /**
51
+ * This attribute lets you specify if the edit operation is enabled in all
52
+ * items by default. If `true`, the items can edit its caption in place.
53
+ */
54
+ this.editableItems = DEFAULT_EDITABLE_ITEMS_VALUE;
46
55
  /**
47
56
  * `true` to display the relation between tree items and tree lists using
48
57
  * lines.
49
58
  */
50
59
  this.showLines = "none";
51
60
  this.handleDroppableZoneEnter = (event) => {
52
- const dropInformation = event.detail;
53
61
  if (!this.checkDroppableZoneCallback) {
54
62
  return;
55
63
  }
64
+ event.stopPropagation();
65
+ // Suppose the request is made immediately by executing the callback
56
66
  const requestTimestamp = new Date().getTime();
67
+ const dropInformation = event.detail;
57
68
  const promise = this.checkDroppableZoneCallback(dropInformation);
58
69
  promise.then(validDrop => {
59
- this.treeRef.updateValidDroppableZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
70
+ this.updateValidDropZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
60
71
  });
61
72
  };
62
73
  this.handleSelectedItemsChange = (event) => {
74
+ event.stopPropagation();
63
75
  const itemsToProcess = new Map(event.detail);
64
76
  // Remove no longer selected items
65
77
  this.selectedItems.forEach(selectedItemId => {
@@ -83,13 +95,22 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
83
95
  newSelectedItem.expanded = newSelectedItemInfo.expanded;
84
96
  this.selectedItems.add(itemId);
85
97
  });
98
+ this.selectedItemsChange.emit(event.detail);
86
99
  };
87
100
  this.handleExpandedItemChange = (event) => {
88
101
  const detail = event.detail;
89
102
  const itemInfo = this.flattenedTreeModel.get(detail.id).item;
90
103
  itemInfo.expanded = detail.expanded;
91
104
  };
105
+ this.handleItemContextmenu = (event) => {
106
+ event.stopPropagation();
107
+ this.itemContextmenu.emit(event.detail);
108
+ };
92
109
  this.handleItemsDropped = (event) => {
110
+ if (!this.dropItemsCallback) {
111
+ return;
112
+ }
113
+ event.stopPropagation();
93
114
  const dataTransferInfo = event.detail;
94
115
  const newContainer = dataTransferInfo.newContainer;
95
116
  const newParentId = newContainer.id;
@@ -98,7 +119,7 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
98
119
  return;
99
120
  }
100
121
  const draggedItems = dataTransferInfo.draggedItems;
101
- if (draggedItems.length === 0 || !this.dropItemsCallback) {
122
+ if (draggedItems.length === 0) {
102
123
  return;
103
124
  }
104
125
  const promise = this.dropItemsCallback(dataTransferInfo);
@@ -149,26 +170,25 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
149
170
  itemUIModelExtended.parentItem = newParentUIModel;
150
171
  };
151
172
  this.renderSubModel = (treeSubModel, lastItem, level) => {
152
- var _a, _b;
153
- return (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, dragDisabled: (_a = treeSubModel.dragDisabled) !== null && _a !== void 0 ? _a : this.dragDisabled, dropDisabled: (_b = treeSubModel.dropDisabled) !== null && _b !== void 0 ? _b : this.dropDisabled, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lastItem: lastItem, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, level: level, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, showLines: this.showLines, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
173
+ var _a, _b, _c;
174
+ return (h("ch-tree-x-list-item", { id: treeSubModel.id, caption: treeSubModel.caption, checkbox: treeSubModel.checkbox, checked: treeSubModel.checked, class: treeSubModel.class, disabled: treeSubModel.disabled, downloading: treeSubModel.downloading, dragDisabled: (_a = treeSubModel.dragDisabled) !== null && _a !== void 0 ? _a : this.dragDisabled, dropDisabled: (_b = treeSubModel.dropDisabled) !== null && _b !== void 0 ? _b : this.dropDisabled, editable: (_c = treeSubModel.editable) !== null && _c !== void 0 ? _c : this.editableItems, expanded: treeSubModel.expanded, indeterminate: treeSubModel.indeterminate, lastItem: lastItem, lazyLoad: treeSubModel.lazy, leaf: treeSubModel.leaf, leftImgSrc: treeSubModel.leftImgSrc, level: level, metadata: treeSubModel.metadata, rightImgSrc: treeSubModel.rightImgSrc, selected: treeSubModel.selected, showExpandableButton: treeSubModel.showExpandableButton, showLines: this.showLines, toggleCheckboxes: treeSubModel.toggleCheckboxes }, !treeSubModel.leaf &&
154
175
  treeSubModel.items != null &&
155
- treeSubModel.items.length !== 0 && (h("ch-tree-x-list", { slot: "tree", level: level + 1 }, treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))))));
176
+ treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))));
156
177
  };
157
178
  this.flattenItemUIModel = (parentModel) => (item) => {
158
- var _a, _b, _c, _d;
179
+ var _a, _b, _c, _d, _e;
159
180
  this.flattenedTreeModel.set(item.id, {
160
181
  parentItem: parentModel,
161
182
  item: item
162
183
  });
163
184
  // Make sure the properties are with their default values to avoid issues
164
185
  // when reusing DOM nodes
186
+ item.class || (item.class = DEFAULT_CLASS_VALUE);
165
187
  (_a = item.expanded) !== null && _a !== void 0 ? _a : (item.expanded = DEFAULT_EXPANDED_VALUE);
166
188
  (_b = item.indeterminate) !== null && _b !== void 0 ? _b : (item.indeterminate = DEFAULT_INDETERMINATE_VALUE);
167
189
  (_c = item.lazy) !== null && _c !== void 0 ? _c : (item.lazy = DEFAULT_LAZY_VALUE);
168
- (_d = item.selected) !== null && _d !== void 0 ? _d : (item.selected = DEFAULT_SELECTED_VALUE);
169
- if (item.lazy) {
170
- this.flattenedLazyTreeModel.set(item.id, item);
171
- }
190
+ (_d = item.order) !== null && _d !== void 0 ? _d : (item.order = DEFAULT_ORDER_VALUE);
191
+ (_e = item.selected) !== null && _e !== void 0 ? _e : (item.selected = DEFAULT_SELECTED_VALUE);
172
192
  if (item.selected) {
173
193
  this.selectedItems.add(item.id);
174
194
  }
@@ -178,6 +198,26 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
178
198
  handleTreeModelChange() {
179
199
  this.flattenModel();
180
200
  }
201
+ /**
202
+ * Given an item id, an array of items to add, the download status and the
203
+ * lazy state, updates the item's UI Model.
204
+ */
205
+ async loadLazyContent(itemId, items, downloading = false, lazy = false) {
206
+ const itemToLazyLoadContent = this.flattenedTreeModel.get(itemId).item;
207
+ // Establish that the content was lazy loaded
208
+ itemToLazyLoadContent.downloading = downloading;
209
+ itemToLazyLoadContent.lazy = lazy;
210
+ // Check if there is items to add
211
+ if (items == null) {
212
+ return;
213
+ }
214
+ // @todo What happens in the server when dropping items on a lazy node?
215
+ itemToLazyLoadContent.items = items;
216
+ this.sortItems(itemToLazyLoadContent.items);
217
+ this.flattenSubModel(itemToLazyLoadContent);
218
+ // Force re-render
219
+ forceUpdate(this);
220
+ }
181
221
  /**
182
222
  * Given an item id, it displays and scrolls into the item view.
183
223
  */
@@ -253,6 +293,16 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
253
293
  });
254
294
  forceUpdate(this);
255
295
  }
296
+ /**
297
+ * Update the information about the valid droppable zones.
298
+ * @param requestTimestamp Time where the request to the server was made. Useful to avoid having old information.
299
+ * @param newContainerId ID of the container where the drag is trying to be made.
300
+ * @param draggedItems Information about the dragged items.
301
+ * @param validDrop Current state of the droppable zone.
302
+ */
303
+ async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
304
+ this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
305
+ }
256
306
  updateItemProperty(itemUIModel, properties) {
257
307
  if (!itemUIModel) {
258
308
  return;
@@ -263,36 +313,22 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
263
313
  });
264
314
  }
265
315
  loadLazyChildrenHandler(event) {
316
+ if (!this.lazyLoadTreeItemsCallback) {
317
+ return;
318
+ }
266
319
  event.stopPropagation();
267
320
  const treeItemId = event.detail;
268
- if (this.lazyLoadTreeItemsCallback) {
269
- const promise = this.lazyLoadTreeItemsCallback(treeItemId);
270
- const itemRef = event.target;
271
- itemRef.downloading = true;
272
- promise.then(result => {
273
- const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(treeItemId);
274
- // Establish that the content was lazy loaded
275
- this.flattenedLazyTreeModel.delete(treeItemId);
276
- itemToLazyLoadContent.lazy = false;
277
- itemRef.downloading = false;
278
- // Check if there is items to add
279
- if (result == null) {
280
- return;
281
- }
282
- // @todo What happens in the server when dropping items on a lazy node?
283
- itemToLazyLoadContent.items = result;
284
- this.sortItems(itemToLazyLoadContent.items);
285
- this.flattenSubModel(itemToLazyLoadContent);
286
- // Force re-render
287
- forceUpdate(this);
288
- });
289
- }
321
+ const promise = this.lazyLoadTreeItemsCallback(treeItemId);
322
+ event.target.downloading = true;
323
+ promise.then(result => {
324
+ this.loadLazyContent(treeItemId, result);
325
+ });
290
326
  }
291
327
  handleCaptionModification(event) {
292
- event.stopPropagation();
293
328
  if (!this.modifyItemCaptionCallback) {
294
329
  return;
295
330
  }
331
+ event.stopPropagation();
296
332
  const itemRef = event.target;
297
333
  const itemId = event.detail.id;
298
334
  const itemUIModel = this.flattenedTreeModel.get(itemId);
@@ -319,11 +355,15 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
319
355
  }
320
356
  });
321
357
  }
358
+ handleOpenReference(event) {
359
+ event.stopPropagation();
360
+ this.itemOpenReference.emit(event.detail);
361
+ }
322
362
  flattenSubModel(model) {
323
363
  const items = model.items;
324
364
  if (!items) {
325
365
  // Make sure that subtrees don't have an undefined array
326
- if (model.leaf === false) {
366
+ if (model.leaf !== true) {
327
367
  model.items = [];
328
368
  }
329
369
  return;
@@ -339,14 +379,13 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
339
379
  }
340
380
  flattenModel() {
341
381
  this.flattenedTreeModel.clear();
342
- this.flattenedLazyTreeModel.clear();
343
- this.flattenSubModel(this.treeModel);
382
+ this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
344
383
  }
345
384
  componentWillLoad() {
346
385
  this.flattenModel();
347
386
  }
348
387
  render() {
349
- return (h(Host, null, h("ch-tree-x", { multiSelection: this.multiSelection, 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", { level: 0 }, this.treeModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.items.length - 1, 0)))), h("div", { class: "tree-buttons" })));
388
+ return (h("ch-tree-x", { class: this.cssClass || null, multiSelection: this.multiSelection, waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemContextmenu: this.handleItemContextmenu, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: el => (this.treeRef = el) }, this.treeModel.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === this.treeModel.length - 1, 0))));
350
389
  }
351
390
  static get watchers() { return {
352
391
  "treeModel": ["handleTreeModelChange"]
@@ -354,26 +393,30 @@ const ChTestTreeX$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
354
393
  static get style() { return testTreeXCss; }
355
394
  }, [0, "ch-test-tree-x", {
356
395
  "checkDroppableZoneCallback": [16],
396
+ "cssClass": [1, "css-class"],
357
397
  "dragDisabled": [4, "drag-disabled"],
358
398
  "dropDisabled": [4, "drop-disabled"],
359
399
  "dropItemsCallback": [16],
360
- "treeModel": [1040],
400
+ "treeModel": [16],
361
401
  "lazyLoadTreeItemsCallback": [16],
362
402
  "modifyItemCaptionCallback": [16],
363
- "multiSelection": [1028, "multi-selection"],
403
+ "multiSelection": [4, "multi-selection"],
404
+ "editableItems": [4, "editable-items"],
364
405
  "showLines": [1, "show-lines"],
365
406
  "sortItemsCallback": [16],
366
407
  "waitDropProcessing": [32],
408
+ "loadLazyContent": [64],
367
409
  "scrollIntoVisible": [64],
368
410
  "toggleItems": [64],
369
411
  "updateAllItemsProperties": [64],
370
- "updateItemsProperties": [64]
371
- }, [[0, "loadLazyContent", "loadLazyChildrenHandler"], [0, "modifyCaption", "handleCaptionModification"]]]);
412
+ "updateItemsProperties": [64],
413
+ "updateValidDropZone": [64]
414
+ }, [[0, "loadLazyContent", "loadLazyChildrenHandler"], [0, "modifyCaption", "handleCaptionModification"], [2, "openReference", "handleOpenReference"]]]);
372
415
  function defineCustomElement$1() {
373
416
  if (typeof customElements === "undefined") {
374
417
  return;
375
418
  }
376
- const components = ["ch-test-tree-x", "ch-checkbox", "ch-tree-x", "ch-tree-x-list", "ch-tree-x-list-item"];
419
+ const components = ["ch-test-tree-x", "ch-checkbox", "ch-tree-x", "ch-tree-x-list-item"];
377
420
  components.forEach(tagName => { switch (tagName) {
378
421
  case "ch-test-tree-x":
379
422
  if (!customElements.get(tagName)) {
@@ -381,16 +424,11 @@ function defineCustomElement$1() {
381
424
  }
382
425
  break;
383
426
  case "ch-checkbox":
384
- if (!customElements.get(tagName)) {
385
- defineCustomElement$5();
386
- }
387
- break;
388
- case "ch-tree-x":
389
427
  if (!customElements.get(tagName)) {
390
428
  defineCustomElement$4();
391
429
  }
392
430
  break;
393
- case "ch-tree-x-list":
431
+ case "ch-tree-x":
394
432
  if (!customElements.get(tagName)) {
395
433
  defineCustomElement$3();
396
434
  }
@@ -0,0 +1,115 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { f as focusComposedPath } from './helpers.js';
3
+ import { d as defineCustomElement$3 } from './ch-window2.js';
4
+ import { d as defineCustomElement$2 } from './ch-window-close2.js';
5
+
6
+ const tooltipCss = "*,::after,::before{box-sizing:border-box}ch-tooltip{--ch-tooltip-separation:12px;--ch-tooltip-separation-x:var(--ch-tooltip-separation);--ch-tooltip-separation-y:var(--ch-tooltip-separation);--ch-tooltip-arrow-size:10px;--ch-tooltip-based:calc( 1px - var(--ch-tooltip-arrow-size));--ch-tooltip-centered:calc( 50% - var(--ch-tooltip-arrow-size) / 2);--ch-tooltip-75:calc( 75% - var(--ch-tooltip-arrow-size) / 2);--ch-tooltip-25:calc( 25% - var(--ch-tooltip-arrow-size) / 2);display:flex;position:relative;width:100%;height:100%}ch-tooltip:not([hidden]){display:contents}ch-window[y-align=outside-start]{--ch-window-separation:var(--ch-tooltip-separation-y);--ch-window-separation-y:calc(var(--ch-tooltip-separation-y) * -1)}ch-window[y-align=outside-end]{--ch-window-separation:var(--ch-tooltip-separation-y);--ch-window-separation-y:var(--ch-tooltip-separation-y)}ch-window[x-align=outside-start]+:not(ch-window[y-align=outside-start],ch-window[y-align=outside-end]){--ch-window-separation:var(--ch-tooltip-separation-x);--ch-window-separation-x:calc(var(--ch-tooltip-separation-x) * -1)}ch-window[x-align=outside-end]+:not(ch-window[y-align=outside-start],ch-window[y-align=outside-end]){--ch-window-separation:var(--ch-tooltip-separation-x);--ch-window-separation-x:var(--ch-tooltip-separation-x)}ch-window[y-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-end] .tooltip-content::after{clip-path:polygon(0 0, 50% 100%, 100% 0);inset-block-end:var(--ch-tooltip-based)}ch-window[y-align=outside-start][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-start][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-end][x-align=outside-start] .tooltip-content::after{inset-inline-end:0}ch-window[y-align=outside-start][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-start][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-start][x-align=outside-end][x-align=outside-end] .tooltip-content::after{inset-inline-start:0}ch-window[y-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-start] .tooltip-content::after{clip-path:polygon(50% 0, 100% 100%, 0 100%);inset-block-start:var(--ch-tooltip-based)}ch-window[y-align=outside-end][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-end][x-align=outside-start] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-start][x-align=outside-start] .tooltip-content::after{inset-inline-end:0}ch-window[y-align=outside-end][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-end][x-align=outside-end] .tooltip-content::after,ch-window[y-align=outside-end][x-align=outside-start][x-align=outside-end] .tooltip-content::after{inset-inline-start:0}ch-window[x-align=outside-start] .tooltip-content::after{clip-path:polygon(100% 50%, 0 0, 0 100%);inset-inline-end:var(--ch-tooltip-based)}ch-window[x-align=outside-end] .tooltip-content::after{clip-path:polygon(100% 0, 0 50%, 100% 100%);inset-inline-start:var(--ch-tooltip-based)}ch-window[x-align=center] .tooltip-content::after{inset-inline-start:var(--ch-tooltip-centered)}ch-window[x-align=inside-start] .tooltip-content::after{inset-inline-start:var(--ch-tooltip-75)}ch-window[x-align=inside-end] .tooltip-content::after{inset-inline-start:var(--ch-tooltip-25)}ch-window[y-align=inside-start] .tooltip-content::after{inset-block-start:var(--ch-tooltip-75)}ch-window[y-align=center] .tooltip-content::after{inset-block-start:var(--ch-tooltip-centered)}ch-window[y-align=inside-end] .tooltip-content::after{inset-block-start:var(--ch-tooltip-25)}.tooltip-content::after{content:\" \";position:absolute;background-color:inherit;width:var(--ch-tooltip-arrow-size);height:var(--ch-tooltip-arrow-size)}";
7
+
8
+ const mapTooltipAlignToChWindowAlign = {
9
+ OutsideStart: "outside-start",
10
+ InsideStart: "inside-start",
11
+ Center: "center",
12
+ InsideEnd: "inside-end",
13
+ OutsideEnd: "outside-end"
14
+ };
15
+ const EXPORT_PARTS = "window:section,mask";
16
+ const ChTooltip$1 = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
17
+ constructor() {
18
+ super();
19
+ this.__registerHost();
20
+ /** Determines if the window and the tooltip is hidden or visible.
21
+ * Inherited from ch-window.
22
+ */
23
+ this.hidden = true;
24
+ /**
25
+ * Specifies the tooltip description.
26
+ */
27
+ this.tooltipId = "Tooltip";
28
+ /**
29
+ * Specifies the delay (in ms)
30
+ * for the tooltip to be displayed.
31
+ */
32
+ this.delay = 100;
33
+ /**
34
+ * Specifies the position of the tooltip relative to
35
+ * the container element.
36
+ */
37
+ this.position = "OutsideStart_Center";
38
+ this.showWithDelay = () => {
39
+ setTimeout(() => {
40
+ this.hidden = false;
41
+ }, this.delay);
42
+ };
43
+ this.handleEnter = () => {
44
+ if (!this.hidden) {
45
+ return;
46
+ }
47
+ this.showWithDelay();
48
+ };
49
+ this.handleLeave = () => {
50
+ if (this.container === focusComposedPath()[0]) {
51
+ this.hidden = false;
52
+ }
53
+ this.hidden = true;
54
+ };
55
+ this.addListeners = () => {
56
+ this.container.addEventListener("focus", this.handleEnter);
57
+ this.container.addEventListener("focusout", this.handleLeave);
58
+ this.container.addEventListener("mouseenter", this.handleEnter);
59
+ this.container.addEventListener("mouseleave", this.handleLeave);
60
+ };
61
+ this.removeListeners = () => {
62
+ this.container.removeEventListener("focus", this.handleEnter);
63
+ this.container.removeEventListener("focusout", this.handleLeave);
64
+ this.container.removeEventListener("mouseenter", this.handleEnter);
65
+ this.container.removeEventListener("mouseleave", this.handleLeave);
66
+ };
67
+ }
68
+ componentDidLoad() {
69
+ this.container = document.querySelector('[slot="container"] > :first-child');
70
+ this.addListeners();
71
+ }
72
+ disconnectedCallback() {
73
+ this.removeListeners();
74
+ }
75
+ render() {
76
+ const aligns = this.position.split("_");
77
+ const alignX = aligns[0];
78
+ const alignY = aligns[1];
79
+ return (h(Host, null, h("slot", { name: "container" }), h("ch-window", { exportparts: EXPORT_PARTS, "show-header": false, "show-footer": false, modal: false, "close-on-escape": true, hidden: this.hidden, container: this.container, xAlign: mapTooltipAlignToChWindowAlign[alignX], yAlign: mapTooltipAlignToChWindowAlign[alignY] }, h("div", { role: "tooltip", class: "tooltip-content", id: this.tooltipId }, h("slot", { name: "content" })))));
80
+ }
81
+ static get style() { return tooltipCss; }
82
+ }, [4, "ch-tooltip", {
83
+ "tooltipId": [1, "tooltip-id"],
84
+ "delay": [2],
85
+ "position": [1],
86
+ "hidden": [32]
87
+ }]);
88
+ function defineCustomElement$1() {
89
+ if (typeof customElements === "undefined") {
90
+ return;
91
+ }
92
+ const components = ["ch-tooltip", "ch-window", "ch-window-close"];
93
+ components.forEach(tagName => { switch (tagName) {
94
+ case "ch-tooltip":
95
+ if (!customElements.get(tagName)) {
96
+ customElements.define(tagName, ChTooltip$1);
97
+ }
98
+ break;
99
+ case "ch-window":
100
+ if (!customElements.get(tagName)) {
101
+ defineCustomElement$3();
102
+ }
103
+ break;
104
+ case "ch-window-close":
105
+ if (!customElements.get(tagName)) {
106
+ defineCustomElement$2();
107
+ }
108
+ break;
109
+ } });
110
+ }
111
+
112
+ const ChTooltip = ChTooltip$1;
113
+ const defineCustomElement = defineCustomElement$1;
114
+
115
+ export { ChTooltip, defineCustomElement };
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
2
  import { D as DISABLED_CLASS } from './reserverd-names.js';
3
3
 
4
- const checkboxCss = "*,::before,::after{box-sizing:border-box}:host{display:flex;align-items:center;align-self:stretch;outline:unset;touch-action:manipulation;user-select:none}:host(.ch-checkbox--actionable) :is(.input,.label){cursor:pointer}.container{position:relative;width:min(1em, 20px);height:min(1em, 20px);border:1px solid var(--option-border-color, #000);border-radius:18.75%}.container--checked{background-color:var(--option-checked-color, #ffffff00)}.container:focus-within{box-shadow:0 0 1px 1px #00000040}.input{display:flex;width:100%;height:100%;opacity:0;margin:0;padding:0}.option{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);width:50%;height:50%;background-color:#000;opacity:0;pointer-events:none}.option--checked{opacity:1;-webkit-mask:url(\"data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' %3E%3Cpath fill='currentColor' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z' /%3E%3C/svg%3E\")}.option--indeterminate{opacity:1}.label{margin-inline-start:min(0.35em, 7px)}";
4
+ const checkboxCss = "*,::before,::after{box-sizing:border-box}:host{display:flex;align-items:center;align-self:stretch;outline:unset;touch-action:manipulation;user-select:none}:host(.ch-checkbox--actionable) :is(.input,.label){cursor:pointer}.container{position:relative;width:min(1em, 20px);height:min(1em, 20px);border:1px solid var(--option-border-color, currentColor);border-radius:18.75%}.container--checked{background-color:var(--option-checked-color, #ffffff00)}.container:focus-within{box-shadow:0 0 1px 1px color-mix(in srgb, currentColor 25%, transparent)}.input{display:flex;width:100%;height:100%;opacity:0;margin:0;padding:0}.option{position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);width:50%;height:50%;background-color:currentColor;opacity:0;pointer-events:none}.option--checked{opacity:1;-webkit-mask:url(\"data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8' %3E%3Cpath fill='currentColor' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z' /%3E%3C/svg%3E\")}.option--indeterminate{opacity:1}.label{margin-inline-start:min(0.35em, 7px)}";
5
5
 
6
6
  const CHECKBOX_ID = "checkbox";
7
7
  const PARTS = (checked, indeterminate) => `${checked ? " checked" : ""}${indeterminate ? " indeterminate" : ""}`;