@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
|
@@ -4,49 +4,76 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-5a32426a.js');
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const resolveImgPath = (img) => `/build/icon-assets/${img}.svg`;
|
|
8
8
|
|
|
9
|
+
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}";
|
|
10
|
+
|
|
11
|
+
const DEFAULT_DRAG_DISABLED_VALUE = false;
|
|
12
|
+
const DEFAULT_DROP_DISABLED_VALUE = false;
|
|
13
|
+
const DEFAULT_CLASS_VALUE = "tree-view-item";
|
|
14
|
+
const DEFAULT_EDITABLE_ITEMS_VALUE = true;
|
|
9
15
|
const DEFAULT_EXPANDED_VALUE = false;
|
|
10
16
|
const DEFAULT_INDETERMINATE_VALUE = false;
|
|
11
17
|
const DEFAULT_LAZY_VALUE = false;
|
|
18
|
+
const DEFAULT_ORDER_VALUE = 0;
|
|
12
19
|
const DEFAULT_SELECTED_VALUE = false;
|
|
13
|
-
const
|
|
20
|
+
const GxgTreeView = class {
|
|
14
21
|
constructor(hostRef) {
|
|
15
22
|
index.registerInstance(this, hostRef);
|
|
23
|
+
this.itemContextmenu = index.createEvent(this, "itemContextmenu", 7);
|
|
24
|
+
this.itemOpenReference = index.createEvent(this, "itemOpenReference", 7);
|
|
25
|
+
this.selectedItemsChange = index.createEvent(this, "selectedItemsChange", 7);
|
|
16
26
|
// UI Models
|
|
17
27
|
this.flattenedTreeModel = new Map();
|
|
18
28
|
this.selectedItems = new Set();
|
|
19
|
-
this.flattenedLazyTreeModel = new Map();
|
|
20
29
|
/**
|
|
21
30
|
* This property lets you specify if the tree is waiting to process the drop
|
|
22
31
|
* of items.
|
|
23
32
|
*/
|
|
24
33
|
this.waitDropProcessing = false;
|
|
34
|
+
/**
|
|
35
|
+
* This attribute lets you specify if the drag operation is disabled in all
|
|
36
|
+
* items by default. If `true`, the items can't be dragged.
|
|
37
|
+
*/
|
|
38
|
+
this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
|
|
39
|
+
/**
|
|
40
|
+
* This attribute lets you specify if the drop operation is disabled in all
|
|
41
|
+
* items by default. If `true`, the items won't accept any drops.
|
|
42
|
+
*/
|
|
43
|
+
this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
|
|
25
44
|
/**
|
|
26
45
|
* This property lets you define the model of the ch-tree-x control.
|
|
27
46
|
*/
|
|
28
|
-
this.treeModel =
|
|
47
|
+
this.treeModel = [];
|
|
29
48
|
/**
|
|
30
49
|
* Set this attribute if you want to allow multi selection of the items.
|
|
31
50
|
*/
|
|
32
51
|
this.multiSelection = false;
|
|
52
|
+
/**
|
|
53
|
+
* This attribute lets you specify if the edit operation is enabled in all
|
|
54
|
+
* items by default. If `true`, the items can edit its caption in place.
|
|
55
|
+
*/
|
|
56
|
+
this.editableItems = DEFAULT_EDITABLE_ITEMS_VALUE;
|
|
33
57
|
/**
|
|
34
58
|
* `true` to display the relation between tree items and tree lists using
|
|
35
59
|
* lines.
|
|
36
60
|
*/
|
|
37
|
-
this.showLines = "
|
|
61
|
+
this.showLines = "all";
|
|
38
62
|
this.handleDroppableZoneEnter = (event) => {
|
|
39
|
-
const dropInformation = event.detail;
|
|
40
63
|
if (!this.checkDroppableZoneCallback) {
|
|
41
64
|
return;
|
|
42
65
|
}
|
|
66
|
+
event.stopPropagation();
|
|
67
|
+
// Suppose the request is made immediately by executing the callback
|
|
43
68
|
const requestTimestamp = new Date().getTime();
|
|
69
|
+
const dropInformation = event.detail;
|
|
44
70
|
const promise = this.checkDroppableZoneCallback(dropInformation);
|
|
45
71
|
promise.then((validDrop) => {
|
|
46
|
-
this.
|
|
72
|
+
this.updateValidDropZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
|
|
47
73
|
});
|
|
48
74
|
};
|
|
49
75
|
this.handleSelectedItemsChange = (event) => {
|
|
76
|
+
event.stopPropagation();
|
|
50
77
|
const itemsToProcess = new Map(event.detail);
|
|
51
78
|
// Remove no longer selected items
|
|
52
79
|
this.selectedItems.forEach((selectedItemId) => {
|
|
@@ -70,13 +97,22 @@ const ChTestTreeX = class {
|
|
|
70
97
|
newSelectedItem.expanded = newSelectedItemInfo.expanded;
|
|
71
98
|
this.selectedItems.add(itemId);
|
|
72
99
|
});
|
|
100
|
+
this.selectedItemsChange.emit(event.detail);
|
|
73
101
|
};
|
|
74
102
|
this.handleExpandedItemChange = (event) => {
|
|
75
103
|
const detail = event.detail;
|
|
76
104
|
const itemInfo = this.flattenedTreeModel.get(detail.id).item;
|
|
77
105
|
itemInfo.expanded = detail.expanded;
|
|
78
106
|
};
|
|
107
|
+
this.handleItemContextmenu = (event) => {
|
|
108
|
+
event.stopPropagation();
|
|
109
|
+
this.itemContextmenu.emit(event.detail);
|
|
110
|
+
};
|
|
79
111
|
this.handleItemsDropped = (event) => {
|
|
112
|
+
if (!this.dropItemsCallback) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
event.stopPropagation();
|
|
80
116
|
const dataTransferInfo = event.detail;
|
|
81
117
|
const newContainer = dataTransferInfo.newContainer;
|
|
82
118
|
const newParentId = newContainer.id;
|
|
@@ -85,12 +121,12 @@ const ChTestTreeX = class {
|
|
|
85
121
|
return;
|
|
86
122
|
}
|
|
87
123
|
const draggedItems = dataTransferInfo.draggedItems;
|
|
88
|
-
if (draggedItems.length === 0
|
|
124
|
+
if (draggedItems.length === 0) {
|
|
89
125
|
return;
|
|
90
126
|
}
|
|
91
127
|
const promise = this.dropItemsCallback(dataTransferInfo);
|
|
92
128
|
this.waitDropProcessing = true;
|
|
93
|
-
promise.then((response) => {
|
|
129
|
+
promise.then(async (response) => {
|
|
94
130
|
this.waitDropProcessing = false;
|
|
95
131
|
if (!response.acceptDrop) {
|
|
96
132
|
return;
|
|
@@ -101,6 +137,11 @@ const ChTestTreeX = class {
|
|
|
101
137
|
// Add the UI models to the new container and remove the UI models from
|
|
102
138
|
// the old containers
|
|
103
139
|
draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
|
|
140
|
+
// When the selected items are moved, the tree must remove its internal
|
|
141
|
+
// state to not have undefined references
|
|
142
|
+
if (dataTransferInfo.draggingSelectedItems) {
|
|
143
|
+
await this.treeRef.clearSelectedItemsInfo();
|
|
144
|
+
}
|
|
104
145
|
}
|
|
105
146
|
// Add the new items
|
|
106
147
|
else {
|
|
@@ -130,9 +171,12 @@ const ChTestTreeX = class {
|
|
|
130
171
|
// Reference the new parent in the item
|
|
131
172
|
itemUIModelExtended.parentItem = newParentUIModel;
|
|
132
173
|
};
|
|
133
|
-
this.renderSubModel = (treeSubModel
|
|
134
|
-
|
|
135
|
-
|
|
174
|
+
this.renderSubModel = (treeSubModel, lastItem, level) => {
|
|
175
|
+
var _a, _b, _c;
|
|
176
|
+
return (index.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 &&
|
|
177
|
+
treeSubModel.items != null &&
|
|
178
|
+
treeSubModel.items.map((subModel, index) => this.renderSubModel(subModel, this.showLines && index === treeSubModel.items.length - 1, level + 1))));
|
|
179
|
+
};
|
|
136
180
|
this.flattenItemUIModel = (parentModel) => (item) => {
|
|
137
181
|
this.flattenedTreeModel.set(item.id, {
|
|
138
182
|
parentItem: parentModel,
|
|
@@ -140,6 +184,7 @@ const ChTestTreeX = class {
|
|
|
140
184
|
});
|
|
141
185
|
// Make sure the properties are with their default values to avoid issues
|
|
142
186
|
// when reusing DOM nodes
|
|
187
|
+
item.class = item.class == null ? DEFAULT_CLASS_VALUE : item.class;
|
|
143
188
|
item.expanded =
|
|
144
189
|
item.expanded == null ? DEFAULT_EXPANDED_VALUE : item.expanded;
|
|
145
190
|
item.indeterminate =
|
|
@@ -147,10 +192,11 @@ const ChTestTreeX = class {
|
|
|
147
192
|
? DEFAULT_INDETERMINATE_VALUE
|
|
148
193
|
: item.indeterminate;
|
|
149
194
|
item.lazy = item.lazy == null ? DEFAULT_LAZY_VALUE : item.lazy;
|
|
195
|
+
item.order = item.order == null ? DEFAULT_ORDER_VALUE : item.order;
|
|
150
196
|
item.selected =
|
|
151
197
|
item.selected == null ? DEFAULT_SELECTED_VALUE : item.selected;
|
|
152
|
-
if (item.
|
|
153
|
-
|
|
198
|
+
if (item.leftImgSrc) {
|
|
199
|
+
item.leftImgSrc = resolveImgPath(item.leftImgSrc);
|
|
154
200
|
}
|
|
155
201
|
if (item.selected) {
|
|
156
202
|
this.selectedItems.add(item.id);
|
|
@@ -161,6 +207,26 @@ const ChTestTreeX = class {
|
|
|
161
207
|
handleTreeModelChange() {
|
|
162
208
|
this.flattenModel();
|
|
163
209
|
}
|
|
210
|
+
/**
|
|
211
|
+
* Given an item id, an array of items to add, the download status and the
|
|
212
|
+
* lazy state, updates the item's UI Model.
|
|
213
|
+
*/
|
|
214
|
+
async loadLazyContent(itemId, items, downloading = false, lazy = false) {
|
|
215
|
+
const itemToLazyLoadContent = this.flattenedTreeModel.get(itemId).item;
|
|
216
|
+
// Establish that the content was lazy loaded
|
|
217
|
+
itemToLazyLoadContent.downloading = downloading;
|
|
218
|
+
itemToLazyLoadContent.lazy = lazy;
|
|
219
|
+
// Check if there is items to add
|
|
220
|
+
if (items == null) {
|
|
221
|
+
return;
|
|
222
|
+
}
|
|
223
|
+
// @todo What happens in the server when dropping items on a lazy node?
|
|
224
|
+
itemToLazyLoadContent.items = items;
|
|
225
|
+
this.sortItems(itemToLazyLoadContent.items);
|
|
226
|
+
this.flattenSubModel(itemToLazyLoadContent);
|
|
227
|
+
// Force re-render
|
|
228
|
+
index.forceUpdate(this);
|
|
229
|
+
}
|
|
164
230
|
/**
|
|
165
231
|
* Given an item id, it displays and scrolls into the item view.
|
|
166
232
|
*/
|
|
@@ -236,6 +302,16 @@ const ChTestTreeX = class {
|
|
|
236
302
|
});
|
|
237
303
|
index.forceUpdate(this);
|
|
238
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Update the information about the valid droppable zones.
|
|
307
|
+
* @param requestTimestamp Time where the request to the server was made. Useful to avoid having old information.
|
|
308
|
+
* @param newContainerId ID of the container where the drag is trying to be made.
|
|
309
|
+
* @param draggedItems Information about the dragged items.
|
|
310
|
+
* @param validDrop Current state of the droppable zone.
|
|
311
|
+
*/
|
|
312
|
+
async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
|
|
313
|
+
this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
|
|
314
|
+
}
|
|
239
315
|
updateItemProperty(itemUIModel, properties) {
|
|
240
316
|
if (!itemUIModel) {
|
|
241
317
|
return;
|
|
@@ -246,36 +322,22 @@ const ChTestTreeX = class {
|
|
|
246
322
|
});
|
|
247
323
|
}
|
|
248
324
|
loadLazyChildrenHandler(event) {
|
|
325
|
+
if (!this.lazyLoadTreeItemsCallback) {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
249
328
|
event.stopPropagation();
|
|
250
329
|
const treeItemId = event.detail;
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
const itemToLazyLoadContent = this.flattenedLazyTreeModel.get(treeItemId);
|
|
257
|
-
// Establish that the content was lazy loaded
|
|
258
|
-
this.flattenedLazyTreeModel.delete(treeItemId);
|
|
259
|
-
itemToLazyLoadContent.lazy = false;
|
|
260
|
-
itemRef.downloading = false;
|
|
261
|
-
// Check if there is items to add
|
|
262
|
-
if (result == null) {
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
// @todo What happens in the server when dropping items on a lazy node?
|
|
266
|
-
itemToLazyLoadContent.items = result;
|
|
267
|
-
this.sortItems(itemToLazyLoadContent.items);
|
|
268
|
-
this.flattenSubModel(itemToLazyLoadContent);
|
|
269
|
-
// Force re-render
|
|
270
|
-
index.forceUpdate(this);
|
|
271
|
-
});
|
|
272
|
-
}
|
|
330
|
+
const promise = this.lazyLoadTreeItemsCallback(treeItemId);
|
|
331
|
+
event.target.downloading = true;
|
|
332
|
+
promise.then((result) => {
|
|
333
|
+
this.loadLazyContent(treeItemId, result);
|
|
334
|
+
});
|
|
273
335
|
}
|
|
274
336
|
handleCaptionModification(event) {
|
|
275
|
-
event.stopPropagation();
|
|
276
337
|
if (!this.modifyItemCaptionCallback) {
|
|
277
338
|
return;
|
|
278
339
|
}
|
|
340
|
+
event.stopPropagation();
|
|
279
341
|
const itemRef = event.target;
|
|
280
342
|
const itemId = event.detail.id;
|
|
281
343
|
const itemUIModel = this.flattenedTreeModel.get(itemId);
|
|
@@ -302,11 +364,15 @@ const ChTestTreeX = class {
|
|
|
302
364
|
}
|
|
303
365
|
});
|
|
304
366
|
}
|
|
367
|
+
handleOpenReference(event) {
|
|
368
|
+
event.stopPropagation();
|
|
369
|
+
this.itemOpenReference.emit(event.detail);
|
|
370
|
+
}
|
|
305
371
|
flattenSubModel(model) {
|
|
306
372
|
const items = model.items;
|
|
307
373
|
if (!items) {
|
|
308
374
|
// Make sure that subtrees don't have an undefined array
|
|
309
|
-
if (model.leaf
|
|
375
|
+
if (model.leaf !== true) {
|
|
310
376
|
model.items = [];
|
|
311
377
|
}
|
|
312
378
|
return;
|
|
@@ -322,21 +388,18 @@ const ChTestTreeX = class {
|
|
|
322
388
|
}
|
|
323
389
|
flattenModel() {
|
|
324
390
|
this.flattenedTreeModel.clear();
|
|
325
|
-
this.
|
|
326
|
-
this.flattenSubModel(this.treeModel);
|
|
391
|
+
this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
|
|
327
392
|
}
|
|
328
393
|
componentWillLoad() {
|
|
329
394
|
this.flattenModel();
|
|
330
395
|
}
|
|
331
396
|
render() {
|
|
332
|
-
return (index.h(
|
|
333
|
-
// showLines={this.showLines}
|
|
334
|
-
waitDropProcessing: this.waitDropProcessing, onDroppableZoneEnter: this.handleDroppableZoneEnter, onExpandedItemChange: this.handleExpandedItemChange, onItemsDropped: this.handleItemsDropped, onSelectedItemsChange: this.handleSelectedItemsChange, ref: (el) => (this.treeRef = el) }, index.h("ch-tree-x-list", null, this.treeModel.items.map(this.renderSubModel))), index.h("div", { class: "tree-buttons" })));
|
|
397
|
+
return (index.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))));
|
|
335
398
|
}
|
|
336
399
|
static get watchers() { return {
|
|
337
400
|
"treeModel": ["handleTreeModelChange"]
|
|
338
401
|
}; }
|
|
339
402
|
};
|
|
340
|
-
|
|
403
|
+
GxgTreeView.style = treeViewCss;
|
|
341
404
|
|
|
342
|
-
exports.gxg_tree_view =
|
|
405
|
+
exports.gxg_tree_view = GxgTreeView;
|