@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.
- package/dist/cjs/{ch-checkbox_4.cjs.entry.js → ch-checkbox_3.cjs.entry.js} +90 -65
- package/dist/cjs/{ch-grid-action-refresh_6.cjs.entry.js → ch-grid-action-refresh_7.cjs.entry.js} +168 -4
- package/dist/cjs/ch-icon_2.cjs.entry.js +1 -0
- package/dist/cjs/ch-suggest_4.cjs.entry.js +7 -3
- package/dist/cjs/ch-test-suggest.cjs.entry.js +84 -0
- package/dist/cjs/ch-test-tree-x.cjs.entry.js +83 -43
- package/dist/cjs/ch-tooltip.cjs.entry.js +85 -0
- package/dist/cjs/config-082c7c76.js +9 -0
- package/dist/cjs/{form-a22de8f3.js → form-a2de5b1c.js} +14 -0
- package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
- package/dist/cjs/gx-grid-chameleon.cjs.entry.js +21 -3
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +10 -9
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +2 -1
- package/dist/cjs/gx-ide-references.cjs.entry.js +76 -116
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +3 -2
- package/dist/cjs/gx-ide-test.cjs.entry.js +51 -5
- package/dist/cjs/gxg-combo-box_2.cjs.entry.js +9 -4
- package/dist/cjs/gxg-form-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/gxg-form-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/gxg-form-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/gxg-form-text.cjs.entry.js +19 -4
- package/dist/cjs/gxg-form-textarea.cjs.entry.js +8 -4
- package/dist/cjs/gxg-label_2.cjs.entry.js +40 -2
- package/dist/cjs/gxg-list-box_2.cjs.entry.js +2 -2
- package/dist/cjs/gxg-select.cjs.entry.js +1 -1
- package/dist/cjs/gxg-test.cjs.entry.js +1 -16
- package/dist/cjs/gxg-tree-view.cjs.entry.js +108 -45
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/common/config.js +5 -0
- package/dist/collection/common/helpers.js +3 -0
- package/dist/collection/components/new-kb/new-kb.js +10 -9
- package/dist/collection/components/new-object/new-object.js +2 -1
- package/dist/collection/components/references/helpers.js +16 -19
- package/dist/collection/components/references/references.css +8 -0
- package/dist/collection/components/references/references.js +60 -98
- package/dist/collection/components/share-kb/share-kb.js +3 -2
- package/dist/components/ch-paginator-pages.js +1 -171
- package/dist/{esm/ch-paginator-pages.entry.js → components/ch-paginator-pages2.js} +29 -8
- package/dist/components/ch-paginator2.js +18 -4
- package/dist/components/ch-suggest2.js +6 -2
- package/dist/components/ch-test-suggest.js +119 -0
- package/dist/components/ch-test-tree-x.js +96 -58
- package/dist/components/ch-tooltip.js +115 -0
- package/dist/components/checkbox.js +1 -1
- package/dist/components/combo-box.js +10 -4
- package/dist/components/config.js +7 -0
- package/dist/components/form-checkbox.js +1 -1
- package/dist/components/form-text.js +20 -4
- package/dist/components/form-textarea.js +9 -4
- package/dist/components/form.js +14 -1
- package/dist/components/gx-grid-chameleon.js +52 -28
- package/dist/components/gx-ide-new-kb.js +10 -9
- package/dist/components/gx-ide-new-object.js +2 -1
- package/dist/components/gx-ide-references.js +122 -150
- package/dist/components/gx-ide-share-kb.js +3 -2
- package/dist/components/gx-ide-test.js +48 -2
- package/dist/components/gxg-test.js +25 -22
- package/dist/components/gxg-tree-view.js +2 -389
- package/dist/components/icon2.js +1 -0
- package/dist/components/index.js +2 -1
- package/dist/components/list-box.js +1 -1
- package/dist/components/suggest.js +1 -1
- package/dist/components/tooltip.js +45 -3
- package/dist/components/tree-view.js +453 -0
- package/dist/components/tree-x-list-item.js +59 -32
- package/dist/components/tree-x.js +34 -17
- package/dist/esm/{ch-checkbox_4.entry.js → ch-checkbox_3.entry.js} +92 -66
- package/dist/esm/{ch-grid-action-refresh_6.entry.js → ch-grid-action-refresh_7.entry.js} +168 -5
- package/dist/esm/ch-icon_2.entry.js +1 -0
- package/dist/esm/ch-suggest_4.entry.js +7 -3
- package/dist/esm/ch-test-suggest.entry.js +80 -0
- package/dist/esm/ch-test-tree-x.entry.js +84 -44
- package/dist/esm/ch-tooltip.entry.js +81 -0
- package/dist/esm/config-94445cc2.js +7 -0
- package/dist/esm/{form-5e68671c.js → form-9c41f579.js} +14 -1
- package/dist/esm/genexus-ide-ui.js +1 -1
- package/dist/esm/gx-grid-chameleon.entry.js +21 -3
- package/dist/esm/gx-ide-new-kb.entry.js +10 -9
- package/dist/esm/gx-ide-new-object.entry.js +2 -1
- package/dist/esm/gx-ide-references.entry.js +76 -116
- package/dist/esm/gx-ide-share-kb.entry.js +3 -2
- package/dist/esm/gx-ide-test.entry.js +48 -2
- package/dist/esm/gxg-combo-box_2.entry.js +9 -4
- package/dist/esm/gxg-form-checkbox-group.entry.js +1 -1
- package/dist/esm/gxg-form-checkbox.entry.js +2 -2
- package/dist/esm/gxg-form-radio-group.entry.js +1 -1
- package/dist/esm/gxg-form-text.entry.js +19 -4
- package/dist/esm/gxg-form-textarea.entry.js +8 -4
- package/dist/esm/gxg-label_2.entry.js +41 -3
- package/dist/esm/gxg-list-box_2.entry.js +2 -2
- package/dist/esm/gxg-select.entry.js +1 -1
- package/dist/esm/gxg-test.entry.js +1 -16
- package/dist/esm/gxg-tree-view.entry.js +109 -46
- package/dist/esm/loader.js +1 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +4 -2
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/icon-assets/gemini-tools/error.svg +1 -1
- package/dist/genexus-ide-ui/icon-assets/gemini-tools/success.svg +1 -1
- package/dist/genexus-ide-ui/icon-assets/gemini-tools/warning.svg +1 -1
- package/dist/genexus-ide-ui/{p-afe9515e.entry.js → p-0268cc45.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-0aa11d6f.entry.js +1 -0
- package/dist/genexus-ide-ui/p-0f4fe7ad.js +1 -0
- package/dist/genexus-ide-ui/p-109209dc.entry.js +1 -0
- package/dist/genexus-ide-ui/p-123b8351.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-a440a73f.entry.js → p-1294d220.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-4eaffd02.entry.js → p-2096031c.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-f3a1dc7c.entry.js → p-2537b4d6.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-3657924a.entry.js +1 -0
- package/dist/genexus-ide-ui/p-3ec2f036.entry.js +1 -0
- package/dist/genexus-ide-ui/p-4923cffa.entry.js +1 -0
- package/dist/genexus-ide-ui/p-4e81926d.entry.js +1 -0
- package/dist/genexus-ide-ui/p-71c6da54.entry.js +1 -0
- package/dist/genexus-ide-ui/p-86b98a99.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-e586d05e.entry.js → p-875e5979.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-9e428123.entry.js +1 -0
- package/dist/genexus-ide-ui/p-a8b8baf9.entry.js +1 -0
- package/dist/genexus-ide-ui/p-cd00ba19.entry.js +1 -0
- package/dist/genexus-ide-ui/p-ce9fef1a.entry.js +1 -0
- package/dist/genexus-ide-ui/p-d47ed4e3.entry.js +1 -0
- package/dist/genexus-ide-ui/p-d7b452ef.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-5cb871e3.entry.js → p-ebcdef37.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-f1ff6b48.entry.js +1 -0
- package/dist/genexus-ide-ui/p-f62d9b6d.entry.js +1 -0
- package/dist/genexus-ide-ui/p-f82f25e2.js +1 -0
- package/dist/genexus-ide-ui/p-f9f1d95d.entry.js +1 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/checkbox/checkbox.css +3 -3
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-suggest/test-suggest.css +114 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/test/test-tree-x.css +1 -47
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tooltip/tooltip.css +120 -0
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/{tree-x → tree-view/tree-x}/tree-x.css +4 -5
- 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
- package/dist/node_modules/@genexus/gemini/dist/collection/components/combo-box/combo-box.css +5 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/form-checkbox/form-checkbox.css +18 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/form-text/form-text.css +37 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/form-textarea/form-textarea.css +22 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/list-box/list-box.css +18 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/suggest/styles.css +18 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tooltip/tooltip.css +58 -3
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +68 -13
- package/dist/types/common/config.d.ts +3 -0
- package/dist/types/common/helpers.d.ts +1 -0
- package/dist/types/components/references/helpers.d.ts +3 -3
- package/dist/types/components/references/references.d.ts +7 -19
- package/package.json +3 -3
- package/dist/cjs/ch-paginator-pages.cjs.entry.js +0 -156
- package/dist/cjs/update-tree-model-8b154db1.js +0 -53
- package/dist/components/ch-tree-x-list.js +0 -6
- package/dist/components/tree-x-list.js +0 -37
- package/dist/components/update-tree-model.js +0 -50
- package/dist/esm/update-tree-model-6c612f05.js +0 -50
- package/dist/genexus-ide-ui/p-01406cbc.js +0 -1
- package/dist/genexus-ide-ui/p-03efca69.entry.js +0 -1
- package/dist/genexus-ide-ui/p-1d7c22d5.entry.js +0 -1
- package/dist/genexus-ide-ui/p-395a65de.entry.js +0 -1
- package/dist/genexus-ide-ui/p-3b4fca51.entry.js +0 -1
- package/dist/genexus-ide-ui/p-447c3a31.entry.js +0 -1
- package/dist/genexus-ide-ui/p-46d393f5.entry.js +0 -1
- package/dist/genexus-ide-ui/p-58f882c6.entry.js +0 -1
- package/dist/genexus-ide-ui/p-60bea19c.entry.js +0 -1
- package/dist/genexus-ide-ui/p-64cbe277.entry.js +0 -1
- package/dist/genexus-ide-ui/p-71ecc7fd.js +0 -1
- package/dist/genexus-ide-ui/p-9a6cb543.entry.js +0 -1
- package/dist/genexus-ide-ui/p-a2fa3132.entry.js +0 -1
- package/dist/genexus-ide-ui/p-a708db45.entry.js +0 -1
- package/dist/genexus-ide-ui/p-c0edbeb5.entry.js +0 -1
- package/dist/genexus-ide-ui/p-c7425416.entry.js +0 -1
- package/dist/genexus-ide-ui/p-cd5482fa.entry.js +0 -1
- package/dist/genexus-ide-ui/p-d312fe25.entry.js +0 -1
- package/dist/genexus-ide-ui/p-e6ae0460.entry.js +0 -1
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-x-list/tree-x-list.css +0 -6
|
@@ -1,48 +1,75 @@
|
|
|
1
|
-
import { r as registerInstance, h, f as forceUpdate
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, f as forceUpdate } from './index-0da01575.js';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const resolveImgPath = (img) => `/build/icon-assets/${img}.svg`;
|
|
4
4
|
|
|
5
|
+
const treeViewCss = ":root{--ui-animaton-speed:0.2s}.gxg-title-01{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-01--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-02{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-02--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-03{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em}.gxg-title-03--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-xs);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;text-transform:uppercase;line-height:1.556em;color:var(--color-on-primary)}.gxg-title-04{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-title-04--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);letter-spacing:var(--letter-spacing-md);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-title-05{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em}.gxg-title-05--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-sm);color:var(--color-on-background);text-align:start;line-height:1.556em;color:var(--color-on-primary)}.gxg-text{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em}.gxg-text--negative{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-on-primary)}.gxg-text--gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--gray-05)}.gxg-quote{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;font-style:italic}.gxg-quote--negative{color:var(--color-on-primary)}.gxg-link{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block}.gxg-link:hover{color:var(--color-primary-hover)}.gxg-link:active{color:var(--color-primary-active)}.gxg-link-gray{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04)}.gxg-link-gray:hover{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-primary);text-decoration:underline;cursor:pointer;display:inline-block;color:var(--gray-04);color:var(--gray-06)}.gxg-alert-error{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-error-dark);display:inline-block}.gxg-alert-warning{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-warning-dark);display:inline-block}.gxg-alert-success{font-family:var(--font-family-primary);font-weight:var(--font-weight-regular);font-size:var(--font-size-sm);letter-spacing:var(--letter-spacing-xs);color:var(--color-on-background);text-align:start;line-height:1.455em;color:var(--color-success-dark);display:inline-block}.gxg-tab--disabled{color:var(--color-primary-disabled);pointer-events:none}.gxg-tab--disabled[disabled]{color:var(--color-primary-disabled);pointer-events:none}.gxg-label{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-label:hover{color:var(--color-primary-hover)}.gxg-label:focus{color:var(--color-primary-active)}.gxg-label:active{color:var(--color-primary-active)}.gxg-label[disabled]{color:var(--color-primary-disabled)}.gxg-label--negative{color:var(--color-on-primary)}.gxg-label--negative[disabled]{color:var(--color-on-disabled)}.gxg-button-styles{font-family:var(--font-family-primary) !important;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm) !important;letter-spacing:var(--letter-spacing-xs);color:var(--color-primary-enabled);text-align:center;line-height:1.455em}.gxg-scrollbar{}.gxg-scrollbar::-webkit-scrollbar{width:6px;height:6px}.gxg-scrollbar::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}.gxg-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}gxg-tree-view{font-family:var(--font-family-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-regular);color:var(--color-on-background);display:contents}ch-tree-x{}ch-tree-x::-webkit-scrollbar{width:6px;height:6px}ch-tree-x::-webkit-scrollbar-track{background-color:var(--gray-02);border-radius:10px}ch-tree-x::-webkit-scrollbar-thumb{background:var(--gray-05);border-radius:10px}ch-tree-x::-webkit-scrollbar-thumb:hover{background:var(--gray-04);cursor:pointer}ch-tree-x>div.ch-tree-x-container{position:relative;width:100%}ch-tree-x-list-item{--expandable-button-width:var(--spacing-comp-04)}ch-tree-x-list-item.tree-view-item--folder::part(action)::before,ch-tree-x-list-item.tree-view-item--module::part(action)::before{grid-area:left-img;content:\"\";width:14px;height:14px;margin-inline-end:4px;background-repeat:no-repeat}ch-tree-x-list-item.tree-view-item--folder::part(action)::before{background-image:url(\"/build/icon-assets/objects/folder.svg\")}ch-tree-x-list-item.tree-view-item--folder::part(action expanded)::before{background-image:url(\"/build/icon-assets/objects/folder-open.svg\")}ch-tree-x-list-item.tree-view-item--module::part(action)::before{background-image:url(\"/build/icon-assets/objects/module.svg\")}ch-tree-x-list-item.tree-view-item--module::part(action expanded)::before{background-image:url(\"/build/icon-assets/objects/module-open.svg\")}ch-tree-x-list-item .tree-view-item--pending-commit::part(action)::before{content:\"\";position:relative;z-index:1;grid-area:left-img;width:5px;height:5px;align-self:end;margin-block-end:3px;margin-inline-start:1px;background-color:#2c3b92;border-radius:50%}ch-tree-x-list-item::part(header){padding-inline-end:calc(var(--spacing-comp-02) * 0.65);border:1px solid transparent;height:var(--spacing-comp-05)}ch-tree-x-list-item::part(header):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:-2px}ch-tree-x-list-item[selected]::part(header){background-color:var(--gxg-background-color--selected)}ch-tree-x-list-item[selected]::part(header):hover{background-color:var(--gxg-background-color--selected-hover)}ch-tree-x-list-item::part(expandable-button){background-color:var(--color-hover);margin-inline-start:var(--spacing-comp-01)}ch-tree-x-list-item::part(expandable-button)::before{background-color:var(--gray-04);-webkit-mask-position:center;-webkit-mask-repeat:no-repeat}ch-tree-x-list-item::part(expandable-button):hover{background-color:var(--color-background)}ch-tree-x-list-item::part(expandable-button):focus{outline-style:solid;outline-color:var(--gxg-border-color--focused);outline-width:var(--border-width-md);outline-offset:0}ch-tree-x-list-item::part(action){text-transform:capitalize}ch-tree-x-list-item::part(left-img){width:var(--spacing-comp-04);height:var(--spacing-comp-04)}ch-tree-x-list-item::part(downloading){width:var(--spacing-comp-03);height:var(--spacing-comp-03);border:var(--border-width-md) solid var(--color-primary-enabled);border-inline-start-color:transparent}.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
|
+
|
|
7
|
+
const DEFAULT_DRAG_DISABLED_VALUE = false;
|
|
8
|
+
const DEFAULT_DROP_DISABLED_VALUE = false;
|
|
9
|
+
const DEFAULT_CLASS_VALUE = "tree-view-item";
|
|
10
|
+
const DEFAULT_EDITABLE_ITEMS_VALUE = true;
|
|
5
11
|
const DEFAULT_EXPANDED_VALUE = false;
|
|
6
12
|
const DEFAULT_INDETERMINATE_VALUE = false;
|
|
7
13
|
const DEFAULT_LAZY_VALUE = false;
|
|
14
|
+
const DEFAULT_ORDER_VALUE = 0;
|
|
8
15
|
const DEFAULT_SELECTED_VALUE = false;
|
|
9
|
-
const
|
|
16
|
+
const GxgTreeView = class {
|
|
10
17
|
constructor(hostRef) {
|
|
11
18
|
registerInstance(this, hostRef);
|
|
19
|
+
this.itemContextmenu = createEvent(this, "itemContextmenu", 7);
|
|
20
|
+
this.itemOpenReference = createEvent(this, "itemOpenReference", 7);
|
|
21
|
+
this.selectedItemsChange = createEvent(this, "selectedItemsChange", 7);
|
|
12
22
|
// UI Models
|
|
13
23
|
this.flattenedTreeModel = new Map();
|
|
14
24
|
this.selectedItems = new Set();
|
|
15
|
-
this.flattenedLazyTreeModel = new Map();
|
|
16
25
|
/**
|
|
17
26
|
* This property lets you specify if the tree is waiting to process the drop
|
|
18
27
|
* of items.
|
|
19
28
|
*/
|
|
20
29
|
this.waitDropProcessing = false;
|
|
30
|
+
/**
|
|
31
|
+
* This attribute lets you specify if the drag operation is disabled in all
|
|
32
|
+
* items by default. If `true`, the items can't be dragged.
|
|
33
|
+
*/
|
|
34
|
+
this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
|
|
35
|
+
/**
|
|
36
|
+
* This attribute lets you specify if the drop operation is disabled in all
|
|
37
|
+
* items by default. If `true`, the items won't accept any drops.
|
|
38
|
+
*/
|
|
39
|
+
this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
|
|
21
40
|
/**
|
|
22
41
|
* This property lets you define the model of the ch-tree-x control.
|
|
23
42
|
*/
|
|
24
|
-
this.treeModel =
|
|
43
|
+
this.treeModel = [];
|
|
25
44
|
/**
|
|
26
45
|
* Set this attribute if you want to allow multi selection of the items.
|
|
27
46
|
*/
|
|
28
47
|
this.multiSelection = false;
|
|
48
|
+
/**
|
|
49
|
+
* This attribute lets you specify if the edit operation is enabled in all
|
|
50
|
+
* items by default. If `true`, the items can edit its caption in place.
|
|
51
|
+
*/
|
|
52
|
+
this.editableItems = DEFAULT_EDITABLE_ITEMS_VALUE;
|
|
29
53
|
/**
|
|
30
54
|
* `true` to display the relation between tree items and tree lists using
|
|
31
55
|
* lines.
|
|
32
56
|
*/
|
|
33
|
-
this.showLines = "
|
|
57
|
+
this.showLines = "all";
|
|
34
58
|
this.handleDroppableZoneEnter = (event) => {
|
|
35
|
-
const dropInformation = event.detail;
|
|
36
59
|
if (!this.checkDroppableZoneCallback) {
|
|
37
60
|
return;
|
|
38
61
|
}
|
|
62
|
+
event.stopPropagation();
|
|
63
|
+
// Suppose the request is made immediately by executing the callback
|
|
39
64
|
const requestTimestamp = new Date().getTime();
|
|
65
|
+
const dropInformation = event.detail;
|
|
40
66
|
const promise = this.checkDroppableZoneCallback(dropInformation);
|
|
41
67
|
promise.then((validDrop) => {
|
|
42
|
-
this.
|
|
68
|
+
this.updateValidDropZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
|
|
43
69
|
});
|
|
44
70
|
};
|
|
45
71
|
this.handleSelectedItemsChange = (event) => {
|
|
72
|
+
event.stopPropagation();
|
|
46
73
|
const itemsToProcess = new Map(event.detail);
|
|
47
74
|
// Remove no longer selected items
|
|
48
75
|
this.selectedItems.forEach((selectedItemId) => {
|
|
@@ -66,13 +93,22 @@ const ChTestTreeX = class {
|
|
|
66
93
|
newSelectedItem.expanded = newSelectedItemInfo.expanded;
|
|
67
94
|
this.selectedItems.add(itemId);
|
|
68
95
|
});
|
|
96
|
+
this.selectedItemsChange.emit(event.detail);
|
|
69
97
|
};
|
|
70
98
|
this.handleExpandedItemChange = (event) => {
|
|
71
99
|
const detail = event.detail;
|
|
72
100
|
const itemInfo = this.flattenedTreeModel.get(detail.id).item;
|
|
73
101
|
itemInfo.expanded = detail.expanded;
|
|
74
102
|
};
|
|
103
|
+
this.handleItemContextmenu = (event) => {
|
|
104
|
+
event.stopPropagation();
|
|
105
|
+
this.itemContextmenu.emit(event.detail);
|
|
106
|
+
};
|
|
75
107
|
this.handleItemsDropped = (event) => {
|
|
108
|
+
if (!this.dropItemsCallback) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
event.stopPropagation();
|
|
76
112
|
const dataTransferInfo = event.detail;
|
|
77
113
|
const newContainer = dataTransferInfo.newContainer;
|
|
78
114
|
const newParentId = newContainer.id;
|
|
@@ -81,12 +117,12 @@ const ChTestTreeX = class {
|
|
|
81
117
|
return;
|
|
82
118
|
}
|
|
83
119
|
const draggedItems = dataTransferInfo.draggedItems;
|
|
84
|
-
if (draggedItems.length === 0
|
|
120
|
+
if (draggedItems.length === 0) {
|
|
85
121
|
return;
|
|
86
122
|
}
|
|
87
123
|
const promise = this.dropItemsCallback(dataTransferInfo);
|
|
88
124
|
this.waitDropProcessing = true;
|
|
89
|
-
promise.then((response) => {
|
|
125
|
+
promise.then(async (response) => {
|
|
90
126
|
this.waitDropProcessing = false;
|
|
91
127
|
if (!response.acceptDrop) {
|
|
92
128
|
return;
|
|
@@ -97,6 +133,11 @@ const ChTestTreeX = class {
|
|
|
97
133
|
// Add the UI models to the new container and remove the UI models from
|
|
98
134
|
// the old containers
|
|
99
135
|
draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
|
|
136
|
+
// When the selected items are moved, the tree must remove its internal
|
|
137
|
+
// state to not have undefined references
|
|
138
|
+
if (dataTransferInfo.draggingSelectedItems) {
|
|
139
|
+
await this.treeRef.clearSelectedItemsInfo();
|
|
140
|
+
}
|
|
100
141
|
}
|
|
101
142
|
// Add the new items
|
|
102
143
|
else {
|
|
@@ -126,9 +167,12 @@ const ChTestTreeX = class {
|
|
|
126
167
|
// Reference the new parent in the item
|
|
127
168
|
itemUIModelExtended.parentItem = newParentUIModel;
|
|
128
169
|
};
|
|
129
|
-
this.renderSubModel = (treeSubModel
|
|
130
|
-
|
|
131
|
-
|
|
170
|
+
this.renderSubModel = (treeSubModel, lastItem, level) => {
|
|
171
|
+
var _a, _b, _c;
|
|
172
|
+
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 &&
|
|
173
|
+
treeSubModel.items != null &&
|
|
174
|
+
treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))));
|
|
175
|
+
};
|
|
132
176
|
this.flattenItemUIModel = (parentModel) => (item) => {
|
|
133
177
|
this.flattenedTreeModel.set(item.id, {
|
|
134
178
|
parentItem: parentModel,
|
|
@@ -136,6 +180,7 @@ const ChTestTreeX = class {
|
|
|
136
180
|
});
|
|
137
181
|
// Make sure the properties are with their default values to avoid issues
|
|
138
182
|
// when reusing DOM nodes
|
|
183
|
+
item.class = item.class == null ? DEFAULT_CLASS_VALUE : item.class;
|
|
139
184
|
item.expanded =
|
|
140
185
|
item.expanded == null ? DEFAULT_EXPANDED_VALUE : item.expanded;
|
|
141
186
|
item.indeterminate =
|
|
@@ -143,10 +188,11 @@ const ChTestTreeX = class {
|
|
|
143
188
|
? DEFAULT_INDETERMINATE_VALUE
|
|
144
189
|
: item.indeterminate;
|
|
145
190
|
item.lazy = item.lazy == null ? DEFAULT_LAZY_VALUE : item.lazy;
|
|
191
|
+
item.order = item.order == null ? DEFAULT_ORDER_VALUE : item.order;
|
|
146
192
|
item.selected =
|
|
147
193
|
item.selected == null ? DEFAULT_SELECTED_VALUE : item.selected;
|
|
148
|
-
if (item.
|
|
149
|
-
|
|
194
|
+
if (item.leftImgSrc) {
|
|
195
|
+
item.leftImgSrc = resolveImgPath(item.leftImgSrc);
|
|
150
196
|
}
|
|
151
197
|
if (item.selected) {
|
|
152
198
|
this.selectedItems.add(item.id);
|
|
@@ -157,6 +203,26 @@ const ChTestTreeX = class {
|
|
|
157
203
|
handleTreeModelChange() {
|
|
158
204
|
this.flattenModel();
|
|
159
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Given an item id, an array of items to add, the download status and the
|
|
208
|
+
* lazy state, updates the item's UI Model.
|
|
209
|
+
*/
|
|
210
|
+
async loadLazyContent(itemId, items, downloading = false, lazy = false) {
|
|
211
|
+
const itemToLazyLoadContent = this.flattenedTreeModel.get(itemId).item;
|
|
212
|
+
// Establish that the content was lazy loaded
|
|
213
|
+
itemToLazyLoadContent.downloading = downloading;
|
|
214
|
+
itemToLazyLoadContent.lazy = lazy;
|
|
215
|
+
// Check if there is items to add
|
|
216
|
+
if (items == null) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
// @todo What happens in the server when dropping items on a lazy node?
|
|
220
|
+
itemToLazyLoadContent.items = items;
|
|
221
|
+
this.sortItems(itemToLazyLoadContent.items);
|
|
222
|
+
this.flattenSubModel(itemToLazyLoadContent);
|
|
223
|
+
// Force re-render
|
|
224
|
+
forceUpdate(this);
|
|
225
|
+
}
|
|
160
226
|
/**
|
|
161
227
|
* Given an item id, it displays and scrolls into the item view.
|
|
162
228
|
*/
|
|
@@ -232,6 +298,16 @@ const ChTestTreeX = class {
|
|
|
232
298
|
});
|
|
233
299
|
forceUpdate(this);
|
|
234
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Update the information about the valid droppable zones.
|
|
303
|
+
* @param requestTimestamp Time where the request to the server was made. Useful to avoid having old information.
|
|
304
|
+
* @param newContainerId ID of the container where the drag is trying to be made.
|
|
305
|
+
* @param draggedItems Information about the dragged items.
|
|
306
|
+
* @param validDrop Current state of the droppable zone.
|
|
307
|
+
*/
|
|
308
|
+
async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
|
|
309
|
+
this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
|
|
310
|
+
}
|
|
235
311
|
updateItemProperty(itemUIModel, properties) {
|
|
236
312
|
if (!itemUIModel) {
|
|
237
313
|
return;
|
|
@@ -242,36 +318,22 @@ const ChTestTreeX = class {
|
|
|
242
318
|
});
|
|
243
319
|
}
|
|
244
320
|
loadLazyChildrenHandler(event) {
|
|
321
|
+
if (!this.lazyLoadTreeItemsCallback) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
245
324
|
event.stopPropagation();
|
|
246
325
|
const treeItemId = event.detail;
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(treeItemId);
|
|
253
|
-
// Establish that the content was lazy loaded
|
|
254
|
-
this.flattenedLazyTreeModel.delete(treeItemId);
|
|
255
|
-
itemToLazyLoadContent.lazy = false;
|
|
256
|
-
itemRef.downloading = false;
|
|
257
|
-
// Check if there is items to add
|
|
258
|
-
if (result == null) {
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
// @todo What happens in the server when dropping items on a lazy node?
|
|
262
|
-
itemToLazyLoadContent.items = result;
|
|
263
|
-
this.sortItems(itemToLazyLoadContent.items);
|
|
264
|
-
this.flattenSubModel(itemToLazyLoadContent);
|
|
265
|
-
// Force re-render
|
|
266
|
-
forceUpdate(this);
|
|
267
|
-
});
|
|
268
|
-
}
|
|
326
|
+
const promise = this.lazyLoadTreeItemsCallback(treeItemId);
|
|
327
|
+
event.target.downloading = true;
|
|
328
|
+
promise.then((result) => {
|
|
329
|
+
this.loadLazyContent(treeItemId, result);
|
|
330
|
+
});
|
|
269
331
|
}
|
|
270
332
|
handleCaptionModification(event) {
|
|
271
|
-
event.stopPropagation();
|
|
272
333
|
if (!this.modifyItemCaptionCallback) {
|
|
273
334
|
return;
|
|
274
335
|
}
|
|
336
|
+
event.stopPropagation();
|
|
275
337
|
const itemRef = event.target;
|
|
276
338
|
const itemId = event.detail.id;
|
|
277
339
|
const itemUIModel = this.flattenedTreeModel.get(itemId);
|
|
@@ -298,11 +360,15 @@ const ChTestTreeX = class {
|
|
|
298
360
|
}
|
|
299
361
|
});
|
|
300
362
|
}
|
|
363
|
+
handleOpenReference(event) {
|
|
364
|
+
event.stopPropagation();
|
|
365
|
+
this.itemOpenReference.emit(event.detail);
|
|
366
|
+
}
|
|
301
367
|
flattenSubModel(model) {
|
|
302
368
|
const items = model.items;
|
|
303
369
|
if (!items) {
|
|
304
370
|
// Make sure that subtrees don't have an undefined array
|
|
305
|
-
if (model.leaf
|
|
371
|
+
if (model.leaf !== true) {
|
|
306
372
|
model.items = [];
|
|
307
373
|
}
|
|
308
374
|
return;
|
|
@@ -318,21 +384,18 @@ const ChTestTreeX = class {
|
|
|
318
384
|
}
|
|
319
385
|
flattenModel() {
|
|
320
386
|
this.flattenedTreeModel.clear();
|
|
321
|
-
this.
|
|
322
|
-
this.flattenSubModel(this.treeModel);
|
|
387
|
+
this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
|
|
323
388
|
}
|
|
324
389
|
componentWillLoad() {
|
|
325
390
|
this.flattenModel();
|
|
326
391
|
}
|
|
327
392
|
render() {
|
|
328
|
-
return (h(
|
|
329
|
-
// showLines={this.showLines}
|
|
330
|
-
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" })));
|
|
393
|
+
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))));
|
|
331
394
|
}
|
|
332
395
|
static get watchers() { return {
|
|
333
396
|
"treeModel": ["handleTreeModelChange"]
|
|
334
397
|
}; }
|
|
335
398
|
};
|
|
336
|
-
|
|
399
|
+
GxgTreeView.style = treeViewCss;
|
|
337
400
|
|
|
338
|
-
export {
|
|
401
|
+
export { GxgTreeView as gxg_tree_view };
|