@genexus/genexus-ide-ui 0.0.57 → 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 (73) hide show
  1. package/dist/cjs/{ch-checkbox_4.cjs.entry.js → ch-checkbox_3.cjs.entry.js} +54 -43
  2. package/dist/cjs/ch-suggest_4.cjs.entry.js +2 -2
  3. package/dist/cjs/ch-test-suggest.cjs.entry.js +84 -0
  4. package/dist/cjs/ch-test-tree-x.cjs.entry.js +31 -16
  5. package/dist/cjs/ch-tooltip.cjs.entry.js +85 -0
  6. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  7. package/dist/cjs/gx-ide-references.cjs.entry.js +76 -116
  8. package/dist/cjs/gx-ide-test.cjs.entry.js +51 -5
  9. package/dist/cjs/gxg-label_2.cjs.entry.js +15 -2
  10. package/dist/cjs/gxg-tree-view.cjs.entry.js +36 -14
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/collection/collection-manifest.json +2 -1
  13. package/dist/collection/common/helpers.js +3 -0
  14. package/dist/collection/components/references/helpers.js +16 -19
  15. package/dist/collection/components/references/references.css +8 -0
  16. package/dist/collection/components/references/references.js +60 -98
  17. package/dist/components/ch-suggest2.js +2 -2
  18. package/dist/components/ch-test-suggest.js +119 -0
  19. package/dist/components/ch-test-tree-x.js +38 -28
  20. package/dist/components/ch-tooltip.js +115 -0
  21. package/dist/components/gx-ide-references.js +122 -150
  22. package/dist/components/gx-ide-test.js +48 -2
  23. package/dist/components/gxg-tree-view.js +1 -434
  24. package/dist/components/index.js +2 -1
  25. package/dist/components/tooltip.js +17 -3
  26. package/dist/components/tree-view.js +453 -0
  27. package/dist/components/tree-x-list-item.js +35 -23
  28. package/dist/components/tree-x.js +21 -7
  29. package/dist/esm/{ch-checkbox_4.entry.js → ch-checkbox_3.entry.js} +55 -43
  30. package/dist/esm/ch-suggest_4.entry.js +2 -2
  31. package/dist/esm/ch-test-suggest.entry.js +80 -0
  32. package/dist/esm/ch-test-tree-x.entry.js +32 -17
  33. package/dist/esm/ch-tooltip.entry.js +81 -0
  34. package/dist/esm/genexus-ide-ui.js +1 -1
  35. package/dist/esm/gx-ide-references.entry.js +76 -116
  36. package/dist/esm/gx-ide-test.entry.js +48 -2
  37. package/dist/esm/gxg-label_2.entry.js +15 -2
  38. package/dist/esm/gxg-tree-view.entry.js +37 -15
  39. package/dist/esm/loader.js +1 -1
  40. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  41. package/dist/genexus-ide-ui/p-109209dc.entry.js +1 -0
  42. package/dist/genexus-ide-ui/p-123b8351.entry.js +1 -0
  43. package/dist/genexus-ide-ui/p-71c6da54.entry.js +1 -0
  44. package/dist/genexus-ide-ui/p-86b98a99.entry.js +1 -0
  45. package/dist/genexus-ide-ui/p-cd00ba19.entry.js +1 -0
  46. package/dist/genexus-ide-ui/p-ce9fef1a.entry.js +1 -0
  47. package/dist/genexus-ide-ui/p-d47ed4e3.entry.js +1 -0
  48. package/dist/genexus-ide-ui/p-d7b452ef.entry.js +1 -0
  49. package/dist/genexus-ide-ui/p-f62d9b6d.entry.js +1 -0
  50. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-suggest/test-suggest.css +114 -0
  51. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tooltip/tooltip.css +120 -0
  52. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/{tree-x → tree-view/tree-x}/tree-x.css +2 -3
  53. 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 +3 -6
  54. package/dist/node_modules/@genexus/gemini/dist/collection/components/tooltip/tooltip.css +11 -0
  55. package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +58 -12
  56. package/dist/types/common/helpers.d.ts +1 -0
  57. package/dist/types/components/references/helpers.d.ts +3 -3
  58. package/dist/types/components/references/references.d.ts +7 -19
  59. package/package.json +3 -3
  60. package/dist/cjs/update-tree-model-8b154db1.js +0 -53
  61. package/dist/components/ch-tree-x-list.js +0 -6
  62. package/dist/components/tree-x-list.js +0 -31
  63. package/dist/components/update-tree-model.js +0 -50
  64. package/dist/esm/update-tree-model-6c612f05.js +0 -50
  65. package/dist/genexus-ide-ui/p-1f3a81e3.entry.js +0 -1
  66. package/dist/genexus-ide-ui/p-46d393f5.entry.js +0 -1
  67. package/dist/genexus-ide-ui/p-5669baf5.entry.js +0 -1
  68. package/dist/genexus-ide-ui/p-60b2bd2f.entry.js +0 -1
  69. package/dist/genexus-ide-ui/p-71ecc7fd.js +0 -1
  70. package/dist/genexus-ide-ui/p-c7425416.entry.js +0 -1
  71. package/dist/genexus-ide-ui/p-dd2e0590.entry.js +0 -1
  72. package/dist/genexus-ide-ui/p-ed5cf480.entry.js +0 -1
  73. package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list/tree-x-list.css +0 -6
@@ -0,0 +1 @@
1
+ import{r as e,c as t,h as i,H as r,g as o}from"./p-976c3a09.js";import{L as a}from"./p-26957490.js";import{r as s}from"./p-90416fc8.js";const n=e=>{var t;return{caption:e.description,id:e.id,items:(null!==(t=e.items)&&void 0!==t?t:[]).map(n),lazy:e.hasChildren&&(null==e.items||0===e.items.length),leaf:!1===e.hasChildren,leftImgSrc:e.icon}},d=e=>{const t=[];return e?(e.forEach((e=>{t.push(n(e))})),t):t},l=class{constructor(i){e(this,i),this.componentDidRenderEvent=t(this,"componentDidRenderEvent",7),this.referencesMessagesMaxWidth="200px",this.selectorCategoryData=[],this.attachTreeEvents=()=>{},this.selectObjectSelectionChanged=e=>{this.selectedObject=this.selectorCategoryData[e.detail.indexes.listIndex].items[e.detail.indexes.itemIndex]},this.selectObjectValueChangedHandler=async e=>{this.selectorSourceCallback(e.detail).then((e=>{this.selectorCategoryData=e,this.objectsSuggestions=(e=>{const t={suggestItems:null,suggestLists:[]};return e.length&&e.forEach((e=>{const i={label:e.name,items:[]};e.items.forEach((e=>{i.items.push({value:e.id,description:e.description,icon:e.icon})})),t.suggestLists.push(i)})),t})(e)})).catch((()=>{}))},this.openObjectCallbackHandler=async()=>{this.openObjectCallback(this.selectedObject.id)},this.openSelectorDialogCallbackHandler=async()=>{this.openSelectorDialogCallback().then((e=>{this.selectedObject=e})).catch((()=>{}))},this.evaluateInitialReferenceData=()=>{this.selectedObject&&this.selectedObjectHandler(this.selectedObject)},this.loadReferencesHandler=async(e,t=!1)=>{this.loadReferencesCallback&&this.loadReferencesCallback(e,t).then((e=>{t?this.referencesToTreeData=d(e):this.referencedByTreeData=d(e)}))},this.hideBarButtonClickedHandler=()=>{this.barHidden=!this.barHidden},this.referencesLazyLoadCallbackHandler=e=>async t=>{if(this.loadReferencesCallback){const i="references-to"===e,r=await this.loadReferencesCallback(t,i),o=d(r);return new Promise((e=>{e(o)}))}return new Promise((e=>{e([])}))},this.referenceSelectedHandler=e=>{if(this.selectReferenceCallback){const t=[];e.detail.forEach((e=>{t.push(e.id)})),this.selectReferenceCallback(t[0])}},this.referencedByTreeData=void 0,this.referencesToTreeData=void 0,this.barHidden=!1,this.objectsSuggestions=void 0,this.referencedBy=void 0,this.referencesTo=void 0,this.selectedObject=void 0,this.selectorSourceCallback=void 0,this.loadReferencesCallback=void 0,this.openObjectCallback=void 0,this.openSelectorDialogCallback=void 0,this.selectReferenceCallback=void 0}selectedObjectHandler(e){e.id&&(this.loadReferencesHandler(e.id,!1),this.loadReferencesHandler(e.id,!0))}async componentWillLoad(){this._componentLocale=await a.getComponentStrings(this.el),this.evaluateInitialReferenceData()}componentDidLoad(){this.attachTreeEvents()}componentDidRender(){this.componentDidRenderEvent.emit(this._componentLocale.componentName)}render(){var e,t,o,a,n,d,l,g;return i(r,{class:"gx-ide-component"},i("div",{class:"gx-ide-main-wrapper"},i("gx-ide-container",{displayBorderBottom:!0},i("header",{class:"header"},i("div",{class:"header__top grid"},i("gxg-button",{icon:"navigation/arrow-down",type:"secondary-icon-only",class:"hide-bar-button",onClick:this.hideBarButtonClickedHandler,part:"toggle-bar-button"}),i("gxg-label",{labelPosition:"start",class:"suggest-label",part:"select-object-label"},this._componentLocale.header.selectObject),i("gxg-suggest",null,i("ch-suggest",{value:this.selectedObject.name,onValueChanged:this.selectObjectValueChangedHandler,onSelectionChanged:this.selectObjectSelectionChanged,part:"object-selector-suggest",exportparts:"dropdown:select-object-dropdown"},s(this.objectsSuggestions))),i("gxg-button",{type:"secondary-icon-only",icon:"gemini-tools/show-more-horizontal",onClick:this.openSelectorDialogCallbackHandler,class:"selector-dialog-button",part:"open-selector-dialog-button"})),i("div",{class:{header__bottom:!0,"header__bottom--hidden":this.barHidden}},i("div",{class:"outer-wrapper"},i("div",{class:"inner-wrapper"},i("div",{class:"inner-wrapper__left"},i("gxg-icon",{type:this.selectedObject.icon,color:"auto"}),i("gxg-text",{padding:"s",type:"text-link",part:"open-object-text-link",onClick:this.openObjectCallbackHandler},`${this.selectedObject.name} : ${this.selectedObject.description}`)),i("div",{class:"inner-wrapper__right gxi-hidden"},i("gxg-form-checkbox",{id:"references-by-type",label:"Group references by type",required:!0,"display-validation-styles":!0,part:"references-type-checkbox"}))))))),i("main",{class:"main grid gxi-full-height gxi-overflow-auto"},i("gx-ide-container",{containerTitle:this._componentLocale.main.isReferencedBy,fullHeight:!0,class:"gxi-overflow-auto",part:"referenced-by-container"},i("div",{class:{"reference-container":!0,"reference-container--no-references":!(null===(e=this.referencedByTreeData)||void 0===e?void 0:e.length)}},i("gxg-tree-view",{class:{"gxi-hidden":!(null===(t=this.referencedByTreeData)||void 0===t?void 0:t.length)},part:"referenced-by-tree",treeModel:this.referencedByTreeData,lazyLoadTreeItemsCallback:this.referencesLazyLoadCallbackHandler("referenced-by"),onSelectedItemsChange:this.referenceSelectedHandler,dragDisabled:!0,dropDisabled:!0}),!(null===(o=this.referencedByTreeData)||void 0===o?void 0:o.length)&&i("gxg-text",{textAlign:"center",padding:"m",type:"text-regular",maxWidth:this.referencesMessagesMaxWidth,part:"referenced-by-text"},0===(null===(a=this.referencedByTreeData)||void 0===a?void 0:a.length)?this._componentLocale.main.isReferencedByEmpty:this._componentLocale.main.isReferencedByError))),i("gx-ide-container",{containerTitle:this._componentLocale.main.hasReferencesTo,fullHeight:!0,class:"gxi-overflow-auto",part:"references-to-container"},i("div",{class:{"reference-container":!0,"reference-container--no-references":!(null===(n=this.referencesToTreeData)||void 0===n?void 0:n.length)}},i("gxg-tree-view",{class:{"gxi-hidden":!(null===(d=this.referencesToTreeData)||void 0===d?void 0:d.length)},part:"referenced-to-tree",treeModel:this.referencesToTreeData,lazyLoadTreeItemsCallback:this.referencesLazyLoadCallbackHandler("references-to"),onSelectedItemsChange:this.referenceSelectedHandler}),!(null===(l=this.referencesToTreeData)||void 0===l?void 0:l.length)&&i("gxg-text",{textAlign:"center",padding:"m",type:"text-regular",maxWidth:this.referencesMessagesMaxWidth,part:"references-to-text"},0===(null===(g=this.referencesToTreeData)||void 0===g?void 0:g.length)?this._componentLocale.main.hasReferencesEmpty:this._componentLocale.main.hasReferencesToError))))))}static get assetsDirs(){return["gx-ide-assets/references"]}get el(){return o(this)}static get watchers(){return{selectedObject:["selectedObjectHandler"]}}};l.style='.gxi-hidden{display:none !important}.gxi-full-height{height:100%}.gxi-overflow-auto{overflow:auto}.gxi-display-flex{display:flex}.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}ch-grid-cell{display:flex}ch-grid{overflow:auto;height:100%}ch-grid-column{z-index:99;border-bottom:1px solid var(--gray-01)}gxg-tabs{box-shadow:none}: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}.header{}.header__top{grid-template-columns:min-content auto 1fr min-content;grid-template-rows:1fr;grid-template-areas:"hide-bar-button suggest-label gxg-suggest selector-dialog-button"}.header__top .hide-bar-button{grid-area:hide-bar-button}.header__top .suggest-label{grid-area:suggest-label}.header__top gxg-suggest{grid-area:gxg-suggest}.header__top .selector-dialog-button{grid-area:selector-dialog-button}.header__bottom{display:grid;grid-template-rows:1fr;transition:var(--gx-ide-timing-super-fast-ms) grid-template-rows}.header__bottom--hidden{grid-template-rows:0fr}.header__bottom .outer-wrapper{overflow:hidden}.header__bottom .inner-wrapper{padding-top:var(--gx-ide-grid-row-gap);display:flex;flex-direction:row;align-items:center;justify-content:space-between}.header__bottom .inner-wrapper__left{display:flex;align-items:center;gap:var(--gx-ide-grid-row-gap)}.header-hidden .first-row{grid-template-columns:auto 1fr auto}.header-hidden .first-row>:nth-child(3){align-self:end}.header-hidden .second-row{display:none}.main{grid-template-columns:1fr 1fr;grid-template-rows:1fr;grid-template-areas:"is-referenced has-references";height:100%;gap:0}.main .reference-container{min-height:300px}.main .reference-container--no-references{display:flex;align-items:center;justify-content:center}.main>*:first-child{border-right:1px solid var(--gx-ide-container-border-color)}.main .is-referenced{grid-area:is-referenced}.main .has-references{grid-area:has-references}';export{l as gx_ide_references}
@@ -0,0 +1,114 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+ /*general*/
5
+ :root {
6
+ --highlight-color: rgb(163, 25, 161);
7
+ }
8
+ /*ch-suggest*/
9
+ ch-suggest {
10
+ display: block;
11
+ }
12
+ ch-suggest::part(title) {
13
+ display: block;
14
+ font-weight: bold;
15
+ }
16
+ ch-suggest::part(label) {
17
+ font-weight: 500;
18
+ }
19
+ ch-suggest[label-position="start"]::part(label) {
20
+ margin-inline-end: 8px;
21
+ display: flex;
22
+ align-items: center;
23
+ }
24
+ ch-suggest[label-position="above"]::part(label) {
25
+ margin-block-end: 4px;
26
+ }
27
+ ch-suggest::part(close-button) {
28
+ display: block;
29
+ width: 16px;
30
+ height: 16px;
31
+ }
32
+ ch-suggest::part(close-button)::after {
33
+ content: "✖";
34
+ line-height: 8px;
35
+ height: 100%;
36
+ display: block;
37
+ border: 1px solid black;
38
+ cursor: pointer;
39
+ text-align: center;
40
+ line-height: 16px;
41
+ }
42
+ ch-suggest::part(header) {
43
+ display: flex;
44
+ justify-content: space-between;
45
+ align-items: center;
46
+ margin-block-end: 8px;
47
+ }
48
+ ch-suggest::part(ch-window-close) {
49
+ width: 10px;
50
+ height: 10px;
51
+ }
52
+ ch-suggest::part(input) {
53
+ padding: 4px 8px;
54
+ border: 1px solid black;
55
+ }
56
+ ch-suggest::part(input):focus {
57
+ outline: 2px solid var(--highlight-color);
58
+ border-color: var(--highlight-color);
59
+ }
60
+ /*ch-suggest-list*/
61
+ ch-suggest-list {
62
+ background-color: rgba(234, 234, 234, 0.224);
63
+ border: 1px solid rgba(128, 128, 128, 0.275);
64
+ border-radius: 4px;
65
+ padding: 8px;
66
+ margin-block-end: 4px;
67
+ }
68
+ ch-suggest-list::part(title) {
69
+ font-size: 14px;
70
+ font-weight: bold;
71
+ text-transform: uppercase;
72
+ margin: 4px 0 8px 0;
73
+ }
74
+ /*ch-suggest-list-item*/
75
+ ch-suggest-list-item::part(button) {
76
+ padding: 4px 8px;
77
+ cursor: pointer;
78
+ gap: 4px;
79
+ }
80
+ ch-suggest-list-item ch-icon {
81
+ --icon-size: 16px;
82
+ margin-inline-end: 2px;
83
+ }
84
+ ch-suggest-list-item:hover {
85
+ background-color: var(--ch-color--violet-100);
86
+ }
87
+ ch-suggest-list-item:focus,
88
+ ch-suggest-list-item[selected]:focus {
89
+ outline: 2px solid var(--highlight-color);
90
+ }
91
+ ch-suggest-list-item[selected] {
92
+ background-color: rgba(241, 184, 243, 0.42);
93
+ outline: none;
94
+ }
95
+ ch-suggest-list-item::part(button):focus {
96
+ outline: 2px solid var(--highlight-color);
97
+ border-color: var(--highlight-color);
98
+ }
99
+ /*content-wrapper*/
100
+ ch-suggest-list-item::part(content-wrapper) {
101
+ display: flex;
102
+ gap: 8px;
103
+ }
104
+ /*ch-window*/
105
+ ch-suggest::part(dropdown) {
106
+ margin-block-start: 4px;
107
+ border: 1px solid black;
108
+ background-color: white;
109
+ padding: 8px;
110
+ }
111
+ /*focus*/
112
+ :focus {
113
+ outline-style: none !important;
114
+ }
@@ -0,0 +1,120 @@
1
+ *,
2
+ ::after,
3
+ ::before {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ ch-tooltip {
8
+ --ch-tooltip-separation: 12px;
9
+ --ch-tooltip-separation-x: var(--ch-tooltip-separation);
10
+ --ch-tooltip-separation-y: var(--ch-tooltip-separation);
11
+ --ch-tooltip-arrow-size: 10px;
12
+ --ch-tooltip-based: calc( 1px - var(--ch-tooltip-arrow-size));
13
+ --ch-tooltip-centered: calc( 50% - var(--ch-tooltip-arrow-size) / 2);
14
+ --ch-tooltip-75: calc( 75% - var(--ch-tooltip-arrow-size) / 2);
15
+ --ch-tooltip-25: calc( 25% - var(--ch-tooltip-arrow-size) / 2);
16
+ display: flex;
17
+ position: relative;
18
+ width: 100%;
19
+ height: 100%;
20
+ }
21
+
22
+ ch-tooltip:not([hidden]) {
23
+ display: contents;
24
+ }
25
+
26
+ ch-window[y-align=outside-start] {
27
+ --ch-window-separation: var(--ch-tooltip-separation-y);
28
+ --ch-window-separation-y: calc(var(--ch-tooltip-separation-y) * -1);
29
+ }
30
+
31
+ ch-window[y-align=outside-end] {
32
+ --ch-window-separation: var(--ch-tooltip-separation-y);
33
+ --ch-window-separation-y: var(--ch-tooltip-separation-y);
34
+ }
35
+
36
+ ch-window[x-align=outside-start] + :not(ch-window[y-align=outside-start], ch-window[y-align=outside-end]) {
37
+ --ch-window-separation: var(--ch-tooltip-separation-x);
38
+ --ch-window-separation-x: calc(var(--ch-tooltip-separation-x) * -1);
39
+ }
40
+
41
+ ch-window[x-align=outside-end] + :not(ch-window[y-align=outside-start], ch-window[y-align=outside-end]) {
42
+ --ch-window-separation: var(--ch-tooltip-separation-x);
43
+ --ch-window-separation-x: var(--ch-tooltip-separation-x);
44
+ }
45
+
46
+ ch-window[y-align=outside-start] .tooltip-content::after,
47
+ ch-window[y-align=outside-start][x-align=outside-start] .tooltip-content::after,
48
+ ch-window[y-align=outside-start][x-align=outside-end] .tooltip-content::after {
49
+ clip-path: polygon(0 0, 50% 100%, 100% 0);
50
+ inset-block-end: var(--ch-tooltip-based);
51
+ }
52
+ ch-window[y-align=outside-start][x-align=outside-start] .tooltip-content::after,
53
+ ch-window[y-align=outside-start][x-align=outside-start][x-align=outside-start] .tooltip-content::after,
54
+ ch-window[y-align=outside-start][x-align=outside-end][x-align=outside-start] .tooltip-content::after {
55
+ inset-inline-end: 0;
56
+ }
57
+ ch-window[y-align=outside-start][x-align=outside-end] .tooltip-content::after,
58
+ ch-window[y-align=outside-start][x-align=outside-start][x-align=outside-end] .tooltip-content::after,
59
+ ch-window[y-align=outside-start][x-align=outside-end][x-align=outside-end] .tooltip-content::after {
60
+ inset-inline-start: 0;
61
+ }
62
+
63
+ ch-window[y-align=outside-end] .tooltip-content::after,
64
+ ch-window[y-align=outside-end][x-align=outside-end] .tooltip-content::after,
65
+ ch-window[y-align=outside-end][x-align=outside-start] .tooltip-content::after {
66
+ clip-path: polygon(50% 0, 100% 100%, 0 100%);
67
+ inset-block-start: var(--ch-tooltip-based);
68
+ }
69
+ ch-window[y-align=outside-end][x-align=outside-start] .tooltip-content::after,
70
+ ch-window[y-align=outside-end][x-align=outside-end][x-align=outside-start] .tooltip-content::after,
71
+ ch-window[y-align=outside-end][x-align=outside-start][x-align=outside-start] .tooltip-content::after {
72
+ inset-inline-end: 0;
73
+ }
74
+ ch-window[y-align=outside-end][x-align=outside-end] .tooltip-content::after,
75
+ ch-window[y-align=outside-end][x-align=outside-end][x-align=outside-end] .tooltip-content::after,
76
+ ch-window[y-align=outside-end][x-align=outside-start][x-align=outside-end] .tooltip-content::after {
77
+ inset-inline-start: 0;
78
+ }
79
+
80
+ ch-window[x-align=outside-start] .tooltip-content::after {
81
+ clip-path: polygon(100% 50%, 0 0, 0 100%);
82
+ inset-inline-end: var(--ch-tooltip-based);
83
+ }
84
+
85
+ ch-window[x-align=outside-end] .tooltip-content::after {
86
+ clip-path: polygon(100% 0, 0 50%, 100% 100%);
87
+ inset-inline-start: var(--ch-tooltip-based);
88
+ }
89
+
90
+ ch-window[x-align=center] .tooltip-content::after {
91
+ inset-inline-start: var(--ch-tooltip-centered);
92
+ }
93
+
94
+ ch-window[x-align=inside-start] .tooltip-content::after {
95
+ inset-inline-start: var(--ch-tooltip-75);
96
+ }
97
+
98
+ ch-window[x-align=inside-end] .tooltip-content::after {
99
+ inset-inline-start: var(--ch-tooltip-25);
100
+ }
101
+
102
+ ch-window[y-align=inside-start] .tooltip-content::after {
103
+ inset-block-start: var(--ch-tooltip-75);
104
+ }
105
+
106
+ ch-window[y-align=center] .tooltip-content::after {
107
+ inset-block-start: var(--ch-tooltip-centered);
108
+ }
109
+
110
+ ch-window[y-align=inside-end] .tooltip-content::after {
111
+ inset-block-start: var(--ch-tooltip-25);
112
+ }
113
+
114
+ .tooltip-content::after {
115
+ content: " ";
116
+ position: absolute;
117
+ background-color: inherit;
118
+ width: var(--ch-tooltip-arrow-size);
119
+ height: var(--ch-tooltip-arrow-size);
120
+ }
@@ -11,8 +11,7 @@ ch-tree-x > .ch-tree-x-container {
11
11
  ch-tree-x.ch-tree-x-dragging-item ch-tree-x-list-item {
12
12
  pointer-events: var(--ch-tree-x-pointer-events, all);
13
13
  }
14
- ch-tree-x.ch-tree-x-dragging-item .ch-tree-x-list-item--deny-drop,
15
- ch-tree-x.ch-tree-x-dragging-item ch-tree-x-list {
14
+ ch-tree-x.ch-tree-x-dragging-item .ch-tree-x-list-item--deny-drop {
16
15
  pointer-events: none;
17
16
  }
18
17
  ch-tree-x.ch-tree-x--dragging-selected-items ch-tree-x-list-item[selected] {
@@ -21,7 +20,7 @@ ch-tree-x.ch-tree-x--dragging-selected-items ch-tree-x-list-item[selected] {
21
20
  ch-tree-x.ch-tree-x-waiting-drop-processing {
22
21
  cursor: wait;
23
22
  }
24
- ch-tree-x.ch-tree-x-waiting-drop-processing > ch-tree-x-list {
23
+ ch-tree-x.ch-tree-x-waiting-drop-processing > .ch-tree-x-container {
25
24
  pointer-events: none;
26
25
  }
27
26
 
@@ -247,16 +247,13 @@
247
247
  --parent-negative-checkbox-offset: 0px;
248
248
  --parent-checkbox-offset: 0px;
249
249
  display: grid;
250
- grid-template-rows: 0fr;
250
+ grid-auto-rows: min-content;
251
+ position: relative;
251
252
  content-visibility: auto;
252
253
  contain-intrinsic-size: auto 100px;
253
254
  }
254
255
 
255
- .expanded {
256
- grid-template-rows: 1fr;
257
- }
258
-
259
- :not(.expanded) ::slotted([slot=tree]) {
256
+ .expandable--collapsed {
260
257
  display: none;
261
258
  overflow: hidden;
262
259
  content-visibility: hidden;
@@ -799,6 +799,13 @@ FORM ELEMENTS
799
799
  display: flex;
800
800
  }
801
801
 
802
+ :host([fixed]) {
803
+ border: 1px solid black;
804
+ }
805
+ :host([fixed]) .tooltip:hover .tooltiptext {
806
+ visibility: hidden;
807
+ opacity: 0;
808
+ }
802
809
  :host([fixed]) .tooltip .tooltiptext {
803
810
  position: fixed;
804
811
  height: 0;
@@ -820,4 +827,8 @@ FORM ELEMENTS
820
827
  }
821
828
  :host([fixed]) .tooltip .tooltiptext:after {
822
829
  display: none;
830
+ }
831
+ :host([fixed]) .tooltip--visible .tooltiptext {
832
+ visibility: visible !important;
833
+ opacity: 1 !important;
823
834
  }
@@ -341,20 +341,37 @@ FORM ELEMENTS
341
341
  gxg-tree-view
342
342
  ---------------------------*/
343
343
  gxg-tree-view {
344
- display: grid;
345
- grid-template-columns: 1fr;
346
- grid-template-rows: 1fr;
347
- height: 100%;
348
344
  font-family: var(--font-family-primary);
349
345
  font-size: var(--font-size-lg);
350
346
  font-weight: var(--font-weight-regular);
351
347
  color: var(--color-on-background);
348
+ display: contents;
352
349
  }
353
350
 
354
- .tree-buttons {
355
- display: grid;
356
- grid-auto-rows: max-content;
357
- row-gap: 8px;
351
+ ch-tree-x {
352
+ /* Track */
353
+ /* Handle */
354
+ /* Handle on hover */
355
+ }
356
+ ch-tree-x::-webkit-scrollbar {
357
+ width: 6px;
358
+ height: 6px;
359
+ }
360
+ ch-tree-x::-webkit-scrollbar-track {
361
+ background-color: var(--gray-02);
362
+ border-radius: 10px;
363
+ }
364
+ ch-tree-x::-webkit-scrollbar-thumb {
365
+ background: var(--gray-05);
366
+ border-radius: 10px;
367
+ }
368
+ ch-tree-x::-webkit-scrollbar-thumb:hover {
369
+ background: var(--gray-04);
370
+ cursor: pointer;
371
+ }
372
+ ch-tree-x > div.ch-tree-x-container {
373
+ position: relative;
374
+ width: 100%;
358
375
  }
359
376
 
360
377
  /*---------------------------
@@ -363,6 +380,39 @@ ch-tree-x-list-item
363
380
  ch-tree-x-list-item {
364
381
  --expandable-button-width: var(--spacing-comp-04);
365
382
  }
383
+ ch-tree-x-list-item.tree-view-item--folder::part(action)::before, ch-tree-x-list-item.tree-view-item--module::part(action)::before {
384
+ grid-area: left-img;
385
+ content: "";
386
+ width: 14px;
387
+ height: 14px;
388
+ margin-inline-end: 4px;
389
+ background-repeat: no-repeat;
390
+ }
391
+ ch-tree-x-list-item.tree-view-item--folder::part(action)::before {
392
+ background-image: url("/build/icon-assets/objects/folder.svg");
393
+ }
394
+ ch-tree-x-list-item.tree-view-item--folder::part(action expanded)::before {
395
+ background-image: url("/build/icon-assets/objects/folder-open.svg");
396
+ }
397
+ ch-tree-x-list-item.tree-view-item--module::part(action)::before {
398
+ background-image: url("/build/icon-assets/objects/module.svg");
399
+ }
400
+ ch-tree-x-list-item.tree-view-item--module::part(action expanded)::before {
401
+ background-image: url("/build/icon-assets/objects/module-open.svg");
402
+ }
403
+ ch-tree-x-list-item .tree-view-item--pending-commit::part(action)::before {
404
+ content: "";
405
+ position: relative;
406
+ z-index: 1;
407
+ grid-area: left-img;
408
+ width: 5px;
409
+ height: 5px;
410
+ align-self: end;
411
+ margin-block-end: 3px;
412
+ margin-inline-start: 1px;
413
+ background-color: #2c3b92;
414
+ border-radius: 50%;
415
+ }
366
416
  ch-tree-x-list-item::part(header) {
367
417
  padding-inline-end: calc(var(--spacing-comp-02) * 0.65);
368
418
  border: 1px solid transparent;
@@ -376,10 +426,6 @@ ch-tree-x-list-item::part(header):focus {
376
426
  }
377
427
  ch-tree-x-list-item[selected]::part(header) {
378
428
  background-color: var(--gxg-background-color--selected);
379
- outline-style: solid;
380
- outline-color: var(--gxg-border-color--focused);
381
- outline-width: var(--border-width-md);
382
- outline-offset: -2px;
383
429
  }
384
430
  ch-tree-x-list-item[selected]::part(header):hover {
385
431
  background-color: var(--gxg-background-color--selected-hover);
@@ -10,3 +10,4 @@ export declare const getElementSelectorParts: (element: HTMLElement) => string[]
10
10
  export declare const querySelectorPart: (selector: string) => HTMLElement;
11
11
  export declare const formatDate: (date: Date, type?: FormatDateType) => string;
12
12
  export type FormatDateType = "date" | "date-time";
13
+ export declare const resolveGxgIconPath: (gxgIconName: string) => string;
@@ -1,5 +1,5 @@
1
1
  import { SuggestData } from "@genexus/chameleon-controls-library/dist/types/components/suggest/ch-suggest";
2
- import { GxgTreeItemData } from "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item";
2
+ import { TreeXItemModel } from "@genexus/chameleon-controls-library/dist/types/components/tree-view/tree-x/types";
3
3
  import { SelectorCategoryData } from "./references";
4
4
  import { ReferenceData } from "./references";
5
5
  /**
@@ -7,6 +7,6 @@ import { ReferenceData } from "./references";
7
7
  */
8
8
  export declare const convertObjectDataToSuggestData: (selectorCategoriesData: SelectorCategoryData[]) => SuggestData;
9
9
  /**
10
- * @description This function converts ReferenceData[] data to GxgTreeItemData[]
10
+ * @description This function converts ReferenceData[] data to TreeItemData[]
11
11
  */
12
- export declare const convertReferenceDataToTreeData: (referencedBy: ReferenceData[] | undefined) => GxgTreeItemData[];
12
+ export declare const convertReferenceDataToTreeViewData: (referenceData: ReferenceData[] | undefined) => TreeXItemModel[];
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter } from "../../stencil-public-runtime";
2
2
  import { GxgTreeItemData } from "@genexus/gemini/dist/types/components/tree-item/gxg-tree-item";
3
+ import { TreeXItemModel } from "@genexus/chameleon-controls-library/dist/types/components/tree-view/tree-x/types";
3
4
  import { SuggestData } from "@genexus/chameleon-controls-library/dist/types/components/suggest/ch-suggest";
4
5
  export declare class GxIdeReferences {
5
6
  /**
@@ -15,9 +16,8 @@ export declare class GxIdeReferences {
15
16
  */
16
17
  private selectorCategoryData;
17
18
  el: HTMLGxIdeReferencesElement;
18
- private selectObjectSuggestEl;
19
- referencedByTreeData: GxgTreeItemData[];
20
- referencesToTreeData: GxgTreeItemData[];
19
+ referencedByTreeData: TreeXItemModel[];
20
+ referencesToTreeData: TreeXItemModel[];
21
21
  /**
22
22
  * Displays or hides the header-bottom section
23
23
  */
@@ -66,10 +66,11 @@ export declare class GxIdeReferences {
66
66
  componentWillLoad(): Promise<void>;
67
67
  componentDidLoad(): void;
68
68
  componentDidRender(): void;
69
+ private attachTreeEvents;
69
70
  /**
70
71
  * It attaches on the ch-suggest, the "itemSelected" event triggered by the ch-suggest-list-item. This helps set the new 'selectedObject'.
71
72
  */
72
- private attachSelectObjectListener;
73
+ private selectObjectSelectionChanged;
73
74
  /**
74
75
  * This handler gets fired every time the value of the 'Select Object' ch-suggest changes.
75
76
  */
@@ -91,21 +92,8 @@ export declare class GxIdeReferences {
91
92
  * It hides/show the bar (The header bottom section).
92
93
  */
93
94
  private hideBarButtonClickedHandler;
94
- /**
95
- * Simple helper function to get 'this.referencedByTreeData' or 'this.referencesToTreeData'
96
- */
97
- private getRef;
98
- /**
99
- * Simple helper function to update 'this.referencedByTreeData' or 'this.referencesToTreeData'
100
- */
101
- private updateRef;
102
- /**
103
- * Handles changes on any of the references (by or to). Used to:
104
- * 1) Keep the models updated.
105
- * 2) call the openObjectCallback.
106
- * 3) call the loadReferencesCallback if a lazy node was toggled.
107
- */
108
- private referencesPanelStateChangedHandler;
95
+ private referencesLazyLoadCallbackHandler;
96
+ private referenceSelectedHandler;
109
97
  render(): any;
110
98
  }
111
99
  export type SelectorCategoryData = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genexus/genexus-ide-ui",
3
3
  "license": "Apache-2.0",
4
- "version": "0.0.57",
4
+ "version": "0.0.58",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",
@@ -36,10 +36,10 @@
36
36
  "@types/react": "^18.2.8"
37
37
  },
38
38
  "peerDependencies": {
39
- "@genexus/gemini": "*0.1.489"
39
+ "@genexus/gemini": "*0.1.494"
40
40
  },
41
41
  "devDependencies": {
42
- "@genexus/gemini": "*0.1.489",
42
+ "@genexus/gemini": "*0.1.494",
43
43
  "@stencil-community/eslint-plugin": "^0.5.0",
44
44
  "@stencil/core": "^2.17.0",
45
45
  "@stencil/sass": "^2.0.1",
@@ -1,53 +0,0 @@
1
- 'use strict';
2
-
3
- const index = require('./index-5a32426a.js');
4
-
5
- /* eslint-disable @typescript-eslint/no-use-before-define */
6
- const renderTreeItems = (treeItemsModel, firstCall = true) => {
7
- if (treeItemsModel === null || treeItemsModel === void 0 ? void 0 : treeItemsModel.length) {
8
- if (firstCall) {
9
- return treeItemsModel.map((item) => {
10
- return renderTreeItem(item);
11
- });
12
- }
13
- else {
14
- return (index.h("gxg-tree", { slot: "tree" }, treeItemsModel.map((item) => {
15
- return renderTreeItem(item);
16
- })));
17
- }
18
- }
19
- return [];
20
- };
21
- const renderTreeItem = (item) => {
22
- var _a;
23
- const childrenLength = item.items ? item.items.length : 0;
24
- const isLeaf = !!(childrenLength === 0 || item.leaf);
25
- const lazy = !!item.lazy;
26
- return (index.h("gxg-tree-item", { checkbox: item.checkbox, checked: item.checked, description: item.description, disabled: item.disabled, icon: item.icon, indeterminate: item.indeterminate, id: item.id, key: `tree-item-${item.id}`, label: item.label, leaf: isLeaf && !lazy, numberOfChildren: childrenLength, opened: item.opened, selected: item.selected }, [item.label, ((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) && renderTreeItems(item.items, false)]));
27
- };
28
-
29
- const updateNodeById = (actualModel, nodeUpdatedState, updatedNodeId) => {
30
- return actualModel.map(nodeActualState => {
31
- if (nodeActualState.id === updatedNodeId) {
32
- return Object.assign(Object.assign({}, nodeActualState), nodeUpdatedState);
33
- }
34
- else if (nodeActualState.items) {
35
- return Object.assign(Object.assign({}, nodeActualState), { items: updateNodeById(nodeActualState.items, nodeUpdatedState, updatedNodeId) });
36
- }
37
- else {
38
- return nodeActualState;
39
- }
40
- });
41
- };
42
- const updateTreeModel = (actualModel, updatedNodeModel, updatedNodeId) => {
43
- if (actualModel.length && updatedNodeModel && updatedNodeId) {
44
- return updateNodeById(actualModel, updatedNodeModel, updatedNodeId);
45
- }
46
- else {
47
- /* If no newItemModel was passed, at least return the actualModel, to avoid having an updated empty tree */
48
- return actualModel;
49
- }
50
- };
51
-
52
- exports.renderTreeItems = renderTreeItems;
53
- exports.updateTreeModel = updateTreeModel;
@@ -1,6 +0,0 @@
1
- import { C as ChTreeListX, d as defineCustomElement$1 } from './tree-x-list.js';
2
-
3
- const ChTreeXList = ChTreeListX;
4
- const defineCustomElement = defineCustomElement$1;
5
-
6
- export { ChTreeXList, defineCustomElement };
@@ -1,31 +0,0 @@
1
- import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
-
3
- const treeXListCss = ":host{display:grid;grid-auto-rows:min-content;position:relative;width:100%}";
4
-
5
- const ChTreeListX = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
6
- constructor() {
7
- super();
8
- this.__registerHost();
9
- this.__attachShadow();
10
- }
11
- render() {
12
- return (h(Host, { role: "group" }, h("slot", null)));
13
- }
14
- get el() { return this; }
15
- static get style() { return treeXListCss; }
16
- }, [1, "ch-tree-x-list"]);
17
- function defineCustomElement() {
18
- if (typeof customElements === "undefined") {
19
- return;
20
- }
21
- const components = ["ch-tree-x-list"];
22
- components.forEach(tagName => { switch (tagName) {
23
- case "ch-tree-x-list":
24
- if (!customElements.get(tagName)) {
25
- customElements.define(tagName, ChTreeListX);
26
- }
27
- break;
28
- } });
29
- }
30
-
31
- export { ChTreeListX as C, defineCustomElement as d };
@@ -1,50 +0,0 @@
1
- import { h } from '@stencil/core/internal/client';
2
-
3
- /* eslint-disable @typescript-eslint/no-use-before-define */
4
- const renderTreeItems = (treeItemsModel, firstCall = true) => {
5
- if (treeItemsModel === null || treeItemsModel === void 0 ? void 0 : treeItemsModel.length) {
6
- if (firstCall) {
7
- return treeItemsModel.map((item) => {
8
- return renderTreeItem(item);
9
- });
10
- }
11
- else {
12
- return (h("gxg-tree", { slot: "tree" }, treeItemsModel.map((item) => {
13
- return renderTreeItem(item);
14
- })));
15
- }
16
- }
17
- return [];
18
- };
19
- const renderTreeItem = (item) => {
20
- var _a;
21
- const childrenLength = item.items ? item.items.length : 0;
22
- const isLeaf = !!(childrenLength === 0 || item.leaf);
23
- const lazy = !!item.lazy;
24
- return (h("gxg-tree-item", { checkbox: item.checkbox, checked: item.checked, description: item.description, disabled: item.disabled, icon: item.icon, indeterminate: item.indeterminate, id: item.id, key: `tree-item-${item.id}`, label: item.label, leaf: isLeaf && !lazy, numberOfChildren: childrenLength, opened: item.opened, selected: item.selected }, [item.label, ((_a = item.items) === null || _a === void 0 ? void 0 : _a.length) && renderTreeItems(item.items, false)]));
25
- };
26
-
27
- const updateNodeById = (actualModel, nodeUpdatedState, updatedNodeId) => {
28
- return actualModel.map(nodeActualState => {
29
- if (nodeActualState.id === updatedNodeId) {
30
- return Object.assign(Object.assign({}, nodeActualState), nodeUpdatedState);
31
- }
32
- else if (nodeActualState.items) {
33
- return Object.assign(Object.assign({}, nodeActualState), { items: updateNodeById(nodeActualState.items, nodeUpdatedState, updatedNodeId) });
34
- }
35
- else {
36
- return nodeActualState;
37
- }
38
- });
39
- };
40
- const updateTreeModel = (actualModel, updatedNodeModel, updatedNodeId) => {
41
- if (actualModel.length && updatedNodeModel && updatedNodeId) {
42
- return updateNodeById(actualModel, updatedNodeModel, updatedNodeId);
43
- }
44
- else {
45
- /* If no newItemModel was passed, at least return the actualModel, to avoid having an updated empty tree */
46
- return actualModel;
47
- }
48
- };
49
-
50
- export { renderTreeItems as r, updateTreeModel as u };