@genexus/genexus-ide-ui 0.0.63 → 0.0.64
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-accordion.cjs.entry.js +1 -1
- package/dist/cjs/ch-action-group_2.cjs.entry.js +1 -1
- package/dist/cjs/ch-alert.cjs.entry.js +1 -1
- package/dist/cjs/{ch-checkbox_4.cjs.entry.js → ch-checkbox_3.cjs.entry.js} +39 -615
- package/dist/cjs/ch-drag-bar.cjs.entry.js +1 -1
- package/dist/cjs/ch-dropdown-item-separator.cjs.entry.js +1 -1
- package/dist/cjs/ch-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/ch-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/ch-form-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/ch-grid-action-refresh_7.cjs.entry.js +1 -1
- package/dist/cjs/ch-grid-column-display.cjs.entry.js +1 -1
- package/dist/cjs/ch-grid-infinite-scroll.cjs.entry.js +1 -1
- package/dist/cjs/ch-grid-row-actions.cjs.entry.js +1 -1
- package/dist/cjs/ch-grid-rowset-empty.cjs.entry.js +1 -1
- package/dist/cjs/ch-grid-rowset-legend.cjs.entry.js +1 -1
- package/dist/cjs/ch-grid-virtual-scroller.cjs.entry.js +1 -1
- package/dist/cjs/ch-grid_8.cjs.entry.js +2 -2
- package/dist/cjs/ch-icon_2.cjs.entry.js +2 -1
- package/dist/cjs/ch-intersection-observer.cjs.entry.js +1 -1
- package/dist/cjs/ch-next-data-modeling-render.cjs.entry.js +1 -1
- package/dist/cjs/ch-next-data-modeling_2.cjs.entry.js +1 -1
- package/dist/cjs/ch-next-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ch-notifications-item.cjs.entry.js +1 -1
- package/dist/cjs/ch-notifications.cjs.entry.js +1 -1
- package/dist/cjs/ch-qr.cjs.entry.js +1 -1
- package/dist/cjs/ch-select-option.cjs.entry.js +1 -1
- package/dist/cjs/ch-select.cjs.entry.js +2 -2
- package/dist/cjs/ch-sidebar-menu-list-item.cjs.entry.js +1 -1
- package/dist/cjs/ch-sidebar-menu-list.cjs.entry.js +1 -1
- package/dist/cjs/ch-sidebar-menu.cjs.entry.js +2 -2
- package/dist/cjs/ch-step-list-item.cjs.entry.js +1 -1
- package/dist/cjs/ch-step-list.cjs.entry.js +1 -1
- package/dist/cjs/ch-style.cjs.entry.js +1 -1
- package/dist/cjs/ch-suggest_4.cjs.entry.js +3 -3
- package/dist/cjs/ch-test-action-group.cjs.entry.js +1 -1
- package/dist/cjs/ch-test-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/ch-test-suggest.cjs.entry.js +1 -1
- package/dist/cjs/ch-textblock.cjs.entry.js +1 -1
- package/dist/cjs/ch-timer.cjs.entry.js +1 -1
- package/dist/cjs/ch-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/ch-tree-item.cjs.entry.js +1 -1
- package/dist/cjs/ch-tree-view-render-wrapper.cjs.entry.js +6 -3
- package/dist/cjs/ch-tree-view-render_2.cjs.entry.js +822 -0
- package/dist/cjs/ch-tree.cjs.entry.js +1 -1
- package/dist/cjs/ch-window_2.cjs.entry.js +1 -1
- package/dist/cjs/{common-5d08e273.js → common-2100f35f.js} +1 -1
- package/dist/cjs/{config-c652329b.js → config-8634e7dd.js} +1 -1
- package/dist/cjs/{form-c75c9ac0.js → form-437d6a38.js} +1 -1
- package/dist/cjs/genexus-ide-ui.cjs.js +2 -2
- package/dist/cjs/gx-grid-chameleon.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +4 -4
- package/dist/cjs/gx-ide-container_4.cjs.entry.js +4 -3
- package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +24 -5
- package/dist/cjs/gx-ide-entity-selector_2.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-file-selector.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +66 -36
- package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +7 -4
- package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-new-environment.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-new-kb.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-new-object.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-object-selector.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-references.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-share-kb.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-status-buttons_2.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-switch-panel.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-switcher.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +3 -3
- package/dist/cjs/gx-ide-template.cjs.entry.js +2 -2
- package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-top-bar.cjs.entry.js +1 -1
- package/dist/cjs/gx-ide-ww-images.cjs.entry.js +3 -3
- package/dist/cjs/gxg-accordion-item.cjs.entry.js +2 -2
- package/dist/cjs/gxg-accordion.cjs.entry.js +1 -1
- package/dist/cjs/gxg-alert.cjs.entry.js +1 -1
- package/dist/cjs/gxg-box.cjs.entry.js +1 -1
- package/dist/cjs/gxg-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/gxg-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/gxg-button-group.cjs.entry.js +3 -3
- package/dist/cjs/gxg-button.cjs.entry.js +2 -2
- package/dist/cjs/gxg-card.cjs.entry.js +36 -3
- package/dist/cjs/gxg-color-picker.cjs.entry.js +1 -1
- package/dist/cjs/gxg-column.cjs.entry.js +1 -1
- package/dist/cjs/gxg-columns.cjs.entry.js +1 -1
- package/dist/cjs/gxg-combo-box_2.cjs.entry.js +3 -3
- package/dist/cjs/gxg-container.cjs.entry.js +1 -1
- package/dist/cjs/gxg-contextual-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-contextual-menu-submenu.cjs.entry.js +1 -1
- package/dist/cjs/gxg-contextual-menu.cjs.entry.js +1 -1
- package/dist/cjs/gxg-demo.cjs.entry.js +1 -1
- package/dist/cjs/gxg-drag-box.cjs.entry.js +1 -1
- package/dist/cjs/gxg-drag-container.cjs.entry.js +1 -1
- package/dist/cjs/gxg-drop-down.cjs.entry.js +2 -2
- package/dist/cjs/gxg-filter-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-filter.cjs.entry.js +1 -1
- package/dist/cjs/gxg-form-checkbox-group.cjs.entry.js +2 -2
- package/dist/cjs/gxg-form-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/gxg-form-message.cjs.entry.js +2 -2
- package/dist/cjs/gxg-form-radio-group.cjs.entry.js +2 -2
- package/dist/cjs/gxg-form-radio.cjs.entry.js +1 -1
- package/dist/cjs/gxg-form-textarea.cjs.entry.js +3 -3
- package/dist/cjs/gxg-label_2.cjs.entry.js +2 -2
- package/dist/cjs/gxg-list-box_2.cjs.entry.js +3 -3
- package/dist/cjs/gxg-loader.cjs.entry.js +1 -1
- package/dist/cjs/gxg-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-menu-slim-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-menu-slim-list.cjs.entry.js +1 -1
- package/dist/cjs/gxg-menu-slim.cjs.entry.js +1 -1
- package/dist/cjs/gxg-menu.cjs.entry.js +1 -1
- package/dist/cjs/gxg-modal.cjs.entry.js +2 -2
- package/dist/cjs/gxg-more-info.cjs.entry.js +1 -1
- package/dist/cjs/gxg-option-v2.cjs.entry.js +1 -1
- package/dist/cjs/gxg-option.cjs.entry.js +1 -1
- package/dist/cjs/gxg-options-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-options.cjs.entry.js +2 -2
- package/dist/cjs/gxg-paginator.cjs.entry.js +1 -1
- package/dist/cjs/gxg-pill.cjs.entry.js +12 -4
- package/dist/cjs/gxg-pills.cjs.entry.js +4 -3
- package/dist/cjs/gxg-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/gxg-scroll.cjs.entry.js +1 -1
- package/dist/cjs/gxg-select-v2.cjs.entry.js +2 -2
- package/dist/cjs/gxg-select.cjs.entry.js +3 -3
- package/dist/cjs/gxg-separator.cjs.entry.js +1 -1
- package/dist/cjs/gxg-slider.cjs.entry.js +1 -1
- package/dist/cjs/gxg-spacer-layout.cjs.entry.js +1 -1
- package/dist/cjs/gxg-spacer-one.cjs.entry.js +1 -1
- package/dist/cjs/gxg-split.cjs.entry.js +1 -1
- package/dist/cjs/gxg-splitter.cjs.entry.js +1 -1
- package/dist/cjs/gxg-stack.cjs.entry.js +1 -1
- package/dist/cjs/gxg-stepper.cjs.entry.js +1 -1
- package/dist/cjs/gxg-tab_4.cjs.entry.js +14 -7
- package/dist/cjs/gxg-test.cjs.entry.js +1 -1
- package/dist/cjs/gxg-text.cjs.entry.js +8 -4
- package/dist/cjs/gxg-title-editable.cjs.entry.js +2 -3
- package/dist/cjs/gxg-toggle.cjs.entry.js +1 -1
- package/dist/cjs/gxg-toolbar-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-toolbar.cjs.entry.js +1 -1
- package/dist/cjs/gxg-tree-grid-divs.cjs.entry.js +1 -1
- package/dist/cjs/gxg-tree-item.cjs.entry.js +1 -1
- package/dist/cjs/gxg-tree.cjs.entry.js +1 -1
- package/dist/cjs/gxg-window.cjs.entry.js +1 -1
- package/dist/cjs/{index-3e90909d.js → index-69adec41.js} +1 -1
- package/dist/cjs/{index-5a32426a.js → index-f9bb1815.js} +5 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{render-combo-items-d99a186a.js → render-combo-items-05509216.js} +1 -1
- package/dist/cjs/{render-suggest-c623955f.js → render-suggest-a4363c7b.js} +1 -1
- package/dist/cjs/{store-0866de9f.js → store-5fad773e.js} +2 -1
- package/dist/collection/common/config.js +1 -1
- package/dist/collection/components/_helpers/directory-selector/directory-selector.js +28 -4
- package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
- package/dist/collection/components/_helpers/list-selector/list-selector.js +1 -1
- package/dist/collection/components/kb-manager-export/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +4 -1
- package/dist/collection/components/kb-manager-export/helpers.js +4 -4
- package/dist/collection/components/kb-manager-export/kb-manager-export.css +0 -20
- package/dist/collection/components/kb-manager-export/kb-manager-export.js +62 -29
- package/dist/collection/components/kb-manager-import/helpers.js +3 -1
- package/dist/collection/components/kb-manager-import/kb-manager-import.js +3 -1
- package/dist/components/button-group.js +1 -1
- package/dist/components/ch-tree-view-render-wrapper.js +5 -2
- package/dist/components/config.js +1 -1
- package/dist/components/directory-selector.js +25 -5
- package/dist/components/form-text.js +1 -0
- package/dist/components/gx-ide-kb-manager-export.js +106 -68
- package/dist/components/gx-ide-kb-manager-import.js +5 -2
- package/dist/components/gxg-card.js +66 -4
- package/dist/components/gxg-pill.js +11 -2
- package/dist/components/gxg-pills.js +3 -2
- package/dist/components/gxg-title-editable.js +1 -151
- package/dist/components/icon2.js +1 -0
- package/dist/components/store.js +1 -0
- package/dist/components/tab-bar.js +3 -1
- package/dist/components/tab-button.js +2 -1
- package/dist/components/tab.js +2 -1
- package/dist/components/tabs.js +8 -2
- package/dist/components/text.js +8 -3
- package/dist/components/title-editable.js +152 -0
- package/dist/components/tree-view-item.js +41 -26
- package/dist/components/tree-view-render.js +81 -18
- package/dist/components/tree-view2.js +9 -4
- package/dist/esm/ch-accordion.entry.js +1 -1
- package/dist/esm/ch-action-group_2.entry.js +1 -1
- package/dist/esm/ch-alert.entry.js +1 -1
- package/dist/esm/{ch-checkbox_4.entry.js → ch-checkbox_3.entry.js} +40 -615
- package/dist/esm/ch-drag-bar.entry.js +1 -1
- package/dist/esm/ch-dropdown-item-separator.entry.js +1 -1
- package/dist/esm/ch-dropdown-item.entry.js +1 -1
- package/dist/esm/ch-dropdown.entry.js +1 -1
- package/dist/esm/ch-form-checkbox.entry.js +1 -1
- package/dist/esm/ch-grid-action-refresh_7.entry.js +1 -1
- package/dist/esm/ch-grid-column-display.entry.js +1 -1
- package/dist/esm/ch-grid-infinite-scroll.entry.js +1 -1
- package/dist/esm/ch-grid-row-actions.entry.js +1 -1
- package/dist/esm/ch-grid-rowset-empty.entry.js +1 -1
- package/dist/esm/ch-grid-rowset-legend.entry.js +1 -1
- package/dist/esm/ch-grid-virtual-scroller.entry.js +1 -1
- package/dist/esm/ch-grid_8.entry.js +2 -2
- package/dist/esm/ch-icon_2.entry.js +2 -1
- package/dist/esm/ch-intersection-observer.entry.js +1 -1
- package/dist/esm/ch-next-data-modeling-render.entry.js +1 -1
- package/dist/esm/ch-next-data-modeling_2.entry.js +1 -1
- package/dist/esm/ch-next-progress-bar.entry.js +1 -1
- package/dist/esm/ch-notifications-item.entry.js +1 -1
- package/dist/esm/ch-notifications.entry.js +1 -1
- package/dist/esm/ch-qr.entry.js +1 -1
- package/dist/esm/ch-select-option.entry.js +1 -1
- package/dist/esm/ch-select.entry.js +2 -2
- package/dist/esm/ch-sidebar-menu-list-item.entry.js +1 -1
- package/dist/esm/ch-sidebar-menu-list.entry.js +1 -1
- package/dist/esm/ch-sidebar-menu.entry.js +2 -2
- package/dist/esm/ch-step-list-item.entry.js +1 -1
- package/dist/esm/ch-step-list.entry.js +1 -1
- package/dist/esm/ch-style.entry.js +1 -1
- package/dist/esm/ch-suggest_4.entry.js +3 -3
- package/dist/esm/ch-test-action-group.entry.js +1 -1
- package/dist/esm/ch-test-dropdown.entry.js +1 -1
- package/dist/esm/ch-test-suggest.entry.js +1 -1
- package/dist/esm/ch-textblock.entry.js +1 -1
- package/dist/esm/ch-timer.entry.js +1 -1
- package/dist/esm/ch-tooltip.entry.js +1 -1
- package/dist/esm/ch-tree-item.entry.js +1 -1
- package/dist/esm/ch-tree-view-render-wrapper.entry.js +6 -3
- package/dist/esm/ch-tree-view-render_2.entry.js +817 -0
- package/dist/esm/ch-tree.entry.js +1 -1
- package/dist/esm/ch-window_2.entry.js +1 -1
- package/dist/esm/{common-ec35ec2f.js → common-202491f0.js} +1 -1
- package/dist/esm/{config-ee66bdf4.js → config-e6f580c8.js} +1 -1
- package/dist/esm/{form-267b92df.js → form-1e8f483d.js} +1 -1
- package/dist/esm/genexus-ide-ui.js +3 -3
- package/dist/esm/gx-grid-chameleon.entry.js +1 -1
- package/dist/esm/gx-ide-bpm-app-declaration.entry.js +4 -4
- package/dist/esm/gx-ide-container_4.entry.js +4 -3
- package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
- package/dist/esm/gx-ide-directory-selector.entry.js +24 -5
- package/dist/esm/gx-ide-entity-selector_2.entry.js +2 -2
- package/dist/esm/gx-ide-file-selector.entry.js +1 -1
- package/dist/esm/gx-ide-kb-manager-export.entry.js +66 -36
- package/dist/esm/gx-ide-kb-manager-import.entry.js +7 -4
- package/dist/esm/gx-ide-list-selector_2.entry.js +1 -1
- package/dist/esm/gx-ide-new-environment.entry.js +3 -3
- package/dist/esm/gx-ide-new-kb.entry.js +3 -3
- package/dist/esm/gx-ide-new-object.entry.js +2 -2
- package/dist/esm/gx-ide-object-selector.entry.js +3 -3
- package/dist/esm/gx-ide-references.entry.js +3 -3
- package/dist/esm/gx-ide-share-kb.entry.js +3 -3
- package/dist/esm/gx-ide-status-buttons_2.entry.js +1 -1
- package/dist/esm/gx-ide-switch-panel.entry.js +1 -1
- package/dist/esm/gx-ide-switcher.entry.js +1 -1
- package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
- package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +2 -2
- package/dist/esm/gx-ide-team-dev-update.entry.js +3 -3
- package/dist/esm/gx-ide-template.entry.js +2 -2
- package/dist/esm/gx-ide-test.entry.js +1 -1
- package/dist/esm/gx-ide-top-bar.entry.js +1 -1
- package/dist/esm/gx-ide-ww-images.entry.js +3 -3
- package/dist/esm/gxg-accordion-item.entry.js +2 -2
- package/dist/esm/gxg-accordion.entry.js +1 -1
- package/dist/esm/gxg-alert.entry.js +1 -1
- package/dist/esm/gxg-box.entry.js +1 -1
- package/dist/esm/gxg-breadcrumb.entry.js +1 -1
- package/dist/esm/gxg-breadcrumbs.entry.js +1 -1
- package/dist/esm/gxg-button-group.entry.js +3 -3
- package/dist/esm/gxg-button.entry.js +2 -2
- package/dist/esm/gxg-card.entry.js +36 -3
- package/dist/esm/gxg-color-picker.entry.js +1 -1
- package/dist/esm/gxg-column.entry.js +1 -1
- package/dist/esm/gxg-columns.entry.js +1 -1
- package/dist/esm/gxg-combo-box_2.entry.js +3 -3
- package/dist/esm/gxg-container.entry.js +1 -1
- package/dist/esm/gxg-contextual-menu-item.entry.js +1 -1
- package/dist/esm/gxg-contextual-menu-submenu.entry.js +1 -1
- package/dist/esm/gxg-contextual-menu.entry.js +1 -1
- package/dist/esm/gxg-demo.entry.js +1 -1
- package/dist/esm/gxg-drag-box.entry.js +1 -1
- package/dist/esm/gxg-drag-container.entry.js +1 -1
- package/dist/esm/gxg-drop-down.entry.js +2 -2
- package/dist/esm/gxg-filter-item.entry.js +1 -1
- package/dist/esm/gxg-filter.entry.js +1 -1
- package/dist/esm/gxg-form-checkbox-group.entry.js +2 -2
- package/dist/esm/gxg-form-checkbox.entry.js +3 -3
- package/dist/esm/gxg-form-message.entry.js +2 -2
- package/dist/esm/gxg-form-radio-group.entry.js +2 -2
- package/dist/esm/gxg-form-radio.entry.js +1 -1
- package/dist/esm/gxg-form-textarea.entry.js +3 -3
- package/dist/esm/gxg-label_2.entry.js +2 -2
- package/dist/esm/gxg-list-box_2.entry.js +3 -3
- package/dist/esm/gxg-loader.entry.js +1 -1
- package/dist/esm/gxg-menu-item.entry.js +1 -1
- package/dist/esm/gxg-menu-slim-item.entry.js +1 -1
- package/dist/esm/gxg-menu-slim-list.entry.js +1 -1
- package/dist/esm/gxg-menu-slim.entry.js +1 -1
- package/dist/esm/gxg-menu.entry.js +1 -1
- package/dist/esm/gxg-modal.entry.js +2 -2
- package/dist/esm/gxg-more-info.entry.js +1 -1
- package/dist/esm/gxg-option-v2.entry.js +1 -1
- package/dist/esm/gxg-option.entry.js +1 -1
- package/dist/esm/gxg-options-item.entry.js +1 -1
- package/dist/esm/gxg-options.entry.js +2 -2
- package/dist/esm/gxg-paginator.entry.js +1 -1
- package/dist/esm/gxg-pill.entry.js +12 -4
- package/dist/esm/gxg-pills.entry.js +4 -3
- package/dist/esm/gxg-progress-bar.entry.js +1 -1
- package/dist/esm/gxg-scroll.entry.js +1 -1
- package/dist/esm/gxg-select-v2.entry.js +2 -2
- package/dist/esm/gxg-select.entry.js +3 -3
- package/dist/esm/gxg-separator.entry.js +1 -1
- package/dist/esm/gxg-slider.entry.js +1 -1
- package/dist/esm/gxg-spacer-layout.entry.js +1 -1
- package/dist/esm/gxg-spacer-one.entry.js +1 -1
- package/dist/esm/gxg-split.entry.js +1 -1
- package/dist/esm/gxg-splitter.entry.js +1 -1
- package/dist/esm/gxg-stack.entry.js +1 -1
- package/dist/esm/gxg-stepper.entry.js +1 -1
- package/dist/esm/gxg-tab_4.entry.js +14 -7
- package/dist/esm/gxg-test.entry.js +1 -1
- package/dist/esm/gxg-text.entry.js +8 -4
- package/dist/esm/gxg-title-editable.entry.js +2 -3
- package/dist/esm/gxg-toggle.entry.js +1 -1
- package/dist/esm/gxg-toolbar-item.entry.js +1 -1
- package/dist/esm/gxg-toolbar.entry.js +1 -1
- package/dist/esm/gxg-tree-grid-divs.entry.js +1 -1
- package/dist/esm/gxg-tree-item.entry.js +1 -1
- package/dist/esm/gxg-tree.entry.js +1 -1
- package/dist/esm/gxg-window.entry.js +1 -1
- package/dist/esm/{index-0da01575.js → index-0aa3977d.js} +5 -0
- package/dist/esm/{index-ea94e298.js → index-5ae5cf27.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{render-combo-items-faf78e28.js → render-combo-items-ede5de19.js} +1 -1
- package/dist/esm/{render-suggest-e44dde1b.js → render-suggest-f3af661b.js} +1 -1
- package/dist/esm/{store-c2650ca5.js → store-eca88b9a.js} +2 -1
- package/dist/genexus-ide-ui/genexus-ide-ui.css +3 -3
- package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
- package/dist/genexus-ide-ui/gx-ide-assets/kb-manager-export/langs/kb-manager-export.lang.en.json +4 -1
- package/dist/genexus-ide-ui/{p-1fe05a05.entry.js → p-01978a13.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-13177896.entry.js → p-0261c202.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-54f01d52.entry.js → p-0371daa4.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-73cfc07c.entry.js → p-040e960d.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-045ddedf.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-cbe42c29.entry.js → p-0495c639.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-b5dc509f.entry.js → p-07c6f7dd.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-0906fb46.js +2 -0
- package/dist/genexus-ide-ui/{p-1294d220.entry.js → p-0cba56a1.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-527ace08.entry.js → p-0cc3af0d.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-0d7c0cd1.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-0c360621.entry.js → p-0e29d370.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-fec82adb.entry.js → p-0ff8550a.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-eddf8a1e.entry.js → p-10fa87ef.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-9aa2dd17.entry.js → p-112dc730.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-bb7ae451.entry.js → p-128c0527.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-db4f2732.entry.js → p-15685d3f.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-df02f70a.entry.js → p-15f4ca7a.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-5e40990d.entry.js → p-161969f3.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-4d506c74.entry.js → p-16aad0e4.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-b9d071f7.entry.js → p-16b0acef.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-fb92083f.entry.js → p-1a8d710a.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-d9a5b3d6.entry.js → p-1ad41f2e.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-1bf68774.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-81c9847d.entry.js → p-20751bae.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-0dee851b.entry.js → p-207c378b.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-a48badf0.entry.js → p-21a768d0.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-1dece95c.entry.js → p-231244f2.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-e7c46bbe.entry.js → p-2422a593.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-2447a18f.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-8a29aa0e.entry.js → p-2582e3d7.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-283afc3b.entry.js → p-2589e00e.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-3e3cb535.entry.js → p-264b3088.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-264f77c4.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-c6b514cb.entry.js → p-266539cf.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-bb77cb65.entry.js → p-27d835c0.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-a8e97a42.entry.js → p-285f0790.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-42209f9f.entry.js → p-2c5289df.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-aacec189.entry.js → p-34f4deb8.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-117498b7.entry.js → p-383f10ab.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-e8e2f4c1.entry.js → p-39bd6c60.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-df7996d5.entry.js → p-39c03652.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-f3837d78.entry.js → p-3b55122b.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-eb328b50.entry.js → p-3fbc7703.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-636d02fa.entry.js → p-3fc20855.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-f8c8eebd.entry.js → p-42f71c47.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-43386091.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-a2479a2f.entry.js → p-43947003.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-2c17e71d.entry.js → p-439a45c1.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-8243c51d.entry.js → p-46632b39.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-bfb41ce9.js → p-47629213.js} +1 -1
- package/dist/genexus-ide-ui/{p-4f02b7bf.entry.js → p-4a756245.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-718759e7.entry.js → p-4ad2bc69.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-45b17fd8.entry.js → p-4ca8f7d3.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-9b93752d.entry.js → p-4cb93e1b.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-123b8351.entry.js → p-4d42f077.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-984f7626.entry.js → p-4da6f594.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-780caf92.entry.js → p-4f63438d.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-1fc0c236.entry.js → p-53424a7c.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-11af125f.js → p-551539eb.js} +1 -1
- package/dist/genexus-ide-ui/{p-7b63be93.entry.js → p-5624cbd0.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-68ec655f.entry.js → p-57327cd3.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-f69d8c9f.entry.js → p-57972075.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-6b301bbb.entry.js → p-59244df7.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-9dfc4afa.entry.js → p-5babe487.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-5ec25f04.entry.js → p-61b5f2f2.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-71b14079.entry.js → p-61e5b3a7.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-d30c5a8e.entry.js → p-6272fb68.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-606d6814.entry.js → p-6811e556.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-34763105.entry.js → p-68626d13.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-689ffafd.entry.js +1 -0
- package/dist/genexus-ide-ui/p-68be9582.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-90416fc8.js → p-698d274a.js} +1 -1
- package/dist/genexus-ide-ui/p-6bb17c51.js +1 -0
- package/dist/genexus-ide-ui/{p-d67c476c.entry.js → p-6cd18b45.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-98b8a4b7.entry.js → p-6dba1f6c.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-df744a68.entry.js → p-6fafe9d4.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-8738b63b.entry.js → p-6fb33e4c.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-65e532d8.entry.js → p-718dc78b.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-3485ddda.entry.js → p-73204c8a.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-783a1530.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-e8a21ed7.entry.js → p-7ae11b35.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-ade59c73.entry.js → p-7d1fd88e.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-82ba2bec.entry.js → p-7d327d28.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-fc6b970d.entry.js → p-7fc8f83b.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-b8917eee.entry.js → p-832a1eff.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-94d2d18a.entry.js → p-88f896a6.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-8c574452.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-dfac4d3c.entry.js → p-8cf88b58.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-7c44a3c8.entry.js → p-8fddfbd1.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-19e6c2b8.entry.js → p-90b5b7ed.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-4a01a404.entry.js → p-91fe1c0d.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-976e8118.entry.js → p-95d1a4e7.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-3fc9cf29.entry.js → p-97dc4967.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-9f4b6230.entry.js → p-98ea872a.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-fb368434.entry.js → p-99da5de7.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-870c7d8f.entry.js → p-9b29a8e8.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-9d73a85c.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-1ff3cf87.entry.js → p-9df2aae3.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-a9c8b373.entry.js → p-a0d3d2b0.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-abfc0ad8.entry.js → p-a14dde56.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-c11c96d7.entry.js → p-a214edb5.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-a5463fc9.entry.js → p-a2c7dc8a.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-46ed607e.entry.js → p-a6f02255.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-4e53dfaf.entry.js → p-a7c3a0fc.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-a85038e2.js +1 -0
- package/dist/genexus-ide-ui/{p-566ae3e7.entry.js → p-a96aa03c.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-a99c17b1.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-56935fba.entry.js → p-b0268924.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-52f6ee1e.js → p-b9fca59c.js} +1 -1
- package/dist/genexus-ide-ui/{p-f93e94dc.entry.js → p-ba7c3c18.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-0574b321.entry.js → p-bca4d4c1.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-25b333a5.entry.js → p-bce289e6.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-339a8480.entry.js → p-bf93ac90.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-9c82381c.entry.js → p-c00aa636.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-1b51da5e.entry.js → p-c0532785.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-8a70239f.entry.js → p-c19354eb.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-aec51bab.entry.js → p-c5e22cd8.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-c74f5d08.entry.js +1 -0
- package/dist/genexus-ide-ui/p-c914cc1f.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-b4b4cbdc.entry.js → p-cb1845a9.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-ad30241e.entry.js → p-cc7d2262.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-4cf3c2b9.entry.js → p-ccc9151e.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-72be1b75.entry.js → p-cd2fb5c9.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-7e13efb2.entry.js → p-cd6dafe5.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-5cc7c201.entry.js → p-cdaaf8f9.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-e542c155.entry.js → p-ce76b613.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-f7aa606a.entry.js → p-cf421c67.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-cb3a255c.entry.js → p-d080030a.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-d0dbf94f.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-133b562f.entry.js → p-d25da0c9.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-b0cb9690.entry.js → p-d5005f26.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-f9f1d95d.entry.js → p-da2dfb82.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-32bade0f.entry.js → p-da5317f5.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-657e57e7.entry.js → p-dc3efe56.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-e45b5686.entry.js +1 -0
- package/dist/genexus-ide-ui/{p-9e428123.entry.js → p-e7c96dec.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-0f1388e1.entry.js → p-eb3895cc.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-93ec18f7.entry.js → p-eb49012b.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-7dd9df47.entry.js → p-ed89f1ee.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-3c8b9c4b.entry.js → p-efd187d0.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-b900ffbc.entry.js → p-f7fd7fa8.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-6d42b2c4.entry.js → p-f8750a75.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-bacd879c.entry.js → p-f97d7bbe.entry.js} +1 -1
- package/dist/genexus-ide-ui/p-fa4e7177.js +1 -0
- package/dist/genexus-ide-ui/{p-253669d3.entry.js → p-fb2a7e10.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-0e28d8f3.entry.js → p-fb921907.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-866f6d39.entry.js → p-fc03bdd3.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-d7b452ef.entry.js → p-fd73e13a.entry.js} +1 -1
- package/dist/genexus-ide-ui/{p-0ae159de.entry.js → p-fdb7b01c.entry.js} +1 -1
- package/dist/node_modules/@genexus/chameleon-controls-library/dist/collection/components/tree-view/tree-view-item/tree-view-item.css +58 -36
- package/dist/node_modules/@genexus/gemini/dist/collection/components/button-group/button-group.css +4 -5
- package/dist/node_modules/@genexus/gemini/dist/collection/components/card/card.css +96 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pill.css +28 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/pills/pills.css +7 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab/tab.css +6 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-bar/tab-bar.css +10 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tab-button/tab-button.css +43 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tabs/tabs.css +12 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/text/text.css +9 -0
- package/dist/node_modules/@genexus/gemini/dist/collection/components/title-editable/title-editable.css +8 -3
- package/dist/node_modules/@genexus/gemini/dist/collection/components/tree-view/tree-view.css +16 -24
- package/dist/types/components/_helpers/directory-selector/directory-selector.d.ts +4 -0
- package/dist/types/components/kb-manager-export/helpers.d.ts +2 -0
- package/dist/types/components/kb-manager-export/kb-manager-export.d.ts +6 -4
- package/dist/types/components/kb-manager-import/helpers.d.ts +1 -0
- package/package.json +3 -3
- package/dist/cjs/gxg-tree-view.cjs.entry.js +0 -165
- package/dist/esm/gxg-tree-view.entry.js +0 -161
- package/dist/genexus-ide-ui/p-00b5896d.entry.js +0 -1
- package/dist/genexus-ide-ui/p-19fef562.entry.js +0 -1
- package/dist/genexus-ide-ui/p-2781b92a.entry.js +0 -1
- package/dist/genexus-ide-ui/p-292fc3f4.entry.js +0 -1
- package/dist/genexus-ide-ui/p-2e0a65a3.entry.js +0 -1
- package/dist/genexus-ide-ui/p-2f3c0023.entry.js +0 -1
- package/dist/genexus-ide-ui/p-38c18db5.js +0 -1
- package/dist/genexus-ide-ui/p-3f0f7f80.entry.js +0 -1
- package/dist/genexus-ide-ui/p-40a57a36.entry.js +0 -1
- package/dist/genexus-ide-ui/p-606fee7b.entry.js +0 -1
- package/dist/genexus-ide-ui/p-6211ca46.entry.js +0 -1
- package/dist/genexus-ide-ui/p-8a7c4561.entry.js +0 -1
- package/dist/genexus-ide-ui/p-9380b713.entry.js +0 -1
- package/dist/genexus-ide-ui/p-976c3a09.js +0 -2
- package/dist/genexus-ide-ui/p-a2cb0e6b.entry.js +0 -1
- package/dist/genexus-ide-ui/p-b819706e.entry.js +0 -1
- package/dist/genexus-ide-ui/p-b8d5c561.js +0 -1
- package/dist/genexus-ide-ui/p-e46e26a6.js +0 -1
- package/dist/genexus-ide-ui/p-f6a6d8bb.entry.js +0 -1
- package/dist/genexus-ide-ui/p-fbb1cd20.entry.js +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
const index = require('./index-
|
|
5
|
+
const index = require('./index-f9bb1815.js');
|
|
6
6
|
const reserverdNames = require('./reserverd-names-1b00889a.js');
|
|
7
7
|
const helpers = require('./helpers-291cb1cb.js');
|
|
8
8
|
|
|
@@ -567,9 +567,10 @@ const ChTreeView = class {
|
|
|
567
567
|
};
|
|
568
568
|
ChTreeView.style = treeViewCss;
|
|
569
569
|
|
|
570
|
-
const treeViewItemCss = ":where(button){all:unset;display:flex;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--
|
|
570
|
+
const treeViewItemCss = ":where(button){all:unset;display:flex;user-select:none;touch-action:manipulation;-webkit-user-drag:element}*,::before,::after{box-sizing:border-box}:host{--ch-tree-view-view__checkbox-size:1em;--ch-tree-view-view__expandable-button-width:0.75em;--ch-tree-view-item__dashed-line--inset-inline-start:0px;--ch-tree-view-item__dashed-line--inset-inline-end:4px;--ch-tree-view-item-gap:5px;--ch-tree-view-item-custom-padding-inline-start:0px;--ch-tree-tab-width:calc(\n var(--ch-tree-view-view__checkbox-size) +\n var(--ch-tree-view-view__expandable-button-width) +\n (var(--ch-tree-view-item-gap) * 2)\n );display:grid;grid-template-rows:min-content;overflow:hidden}.header{--own-offset:0px;display:flex;align-items:center;min-height:calc(1em + 6px);padding-inline-start:calc( var(--padding-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) )}.header--disabled{opacity:0.5;pointer-events:none}.header--even{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width)\n )}.header--even .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--even-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--even-expandable+.expandable{--parent-padding-inline-start--even:calc(\n var(--parent-padding-inline-start--odd, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width)\n )}.header--odd .dashed-line{--inset-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) +\n var(--parent-checkbox-offset) + var(--parent-expandable-offset)\n )}.header--odd-expandable{--padding-inline-start:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--odd-expandable+.expandable{--parent-padding-inline-start--odd:calc(\n var(--parent-padding-inline-start--even, 0px) + var(--ch-tree-tab-width) -\n calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )\n )}.header--level-0{--padding-inline-start:0px}.header--level-0+.expandable{--parent-padding-inline-start--even:0px}.header--expandable-offset{--own-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) +\n var(--ch-tree-view-item-gap)\n )}.header--expandable-offset+.expandable{--parent-expandable-offset:calc(\n var(--ch-tree-view-view__expandable-button-width) / 2\n )}.header--checkbox-offset+.expandable{--parent-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n );--parent-negative-checkbox-offset:calc(\n var(--ch-tree-view-view__checkbox-size) / 2\n )}.dashed-line{position:absolute;inset-inline-start:calc( var(--inset-inline-start) + var(--ch-tree-view-item__dashed-line--inset-inline-start) + var(--ch-tree-view-item-custom-padding-inline-start) );height:1px;width:calc( var(--ch-tree-tab-width) - var(--parent-checkbox-offset) - var(--parent-expandable-offset) - var(--own-offset) - var(--ch-tree-view-item__dashed-line--inset-inline-start) - var(--ch-tree-view-item__dashed-line--inset-inline-end) );border:0 dashed color-mix(in srgb, currentColor 65%, transparent);border-block-end-width:1px;pointer-events:none;content-visibility:hidden;z-index:1}.last-all-line{inset-block-start:0;height:calc(100% - var(--ch-tree-view-item-distance-to-checkbox));border-inline-start-width:1px;border-end-start-radius:2px}.last-line{inset-block-start:0;height:100%;border-inline-start-width:1px;border-style:solid;border-block-end:unset}.expandable-button{display:grid;place-items:center;width:var(--ch-tree-view-view__expandable-button-width);height:var(--ch-tree-view-view__expandable-button-width);margin-inline-end:var(--ch-tree-view-item-gap);z-index:1;cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto var(--ch-tree-view-view__expandable-button-width)}.expandable-button::before{content:\"\";width:calc(100% - 2px);height:calc(100% - 2px);background-color:currentColor;-webkit-mask-size:calc( var(--ch-tree-view-view__expandable-button-width) - 2px )}.expandable-button--collapsed::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H8.54v5.61h-1V8.5H1.93v-1H7.54V1.89h1V7.5h5.61Z\"/></svg>')}.expandable-button--expanded::before{-webkit-mask-image:url('data:image/svg+xml,<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.15,8.5H1.93v-1H14.15Z\"/></svg>')}.expandable-button:focus-visible{outline:1px solid #000}.checkbox{width:var(--ch-tree-view-view__checkbox-size);margin-inline-end:var(--ch-tree-view-item-gap)}.checkbox::part(container){width:var(--ch-tree-view-view__checkbox-size);height:var(--ch-tree-view-view__checkbox-size)}.action{display:grid;grid-template:\"left-img text right-img\"/max-content 1fr max-content;align-items:center;height:100%;flex:1;cursor:pointer}.readonly-mode{padding-block:0.75px}.left-img,.right-img{display:block;width:0.875em;height:0.875em;content-visibility:auto;contain-intrinsic-size:auto 0.875em}.left-img{grid-area:left-img;margin-inline-end:var(--ch-tree-view-item-gap)}.right-img{grid-area:right-img;margin-inline-start:var(--ch-tree-view-item-gap)}.edit-name{grid-area:text;width:100%;height:100%;padding:0;margin:0;background-color:unset;color:unset;border:1px solid currentColor;font:unset;outline:unset}.downloading{width:0.75em;height:0.75em;margin-inline-start:8px;border:2px solid currentColor;border-inline-start-color:transparent;border-radius:50%;opacity:0.75;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.expandable{--parent-expandable-offset:0px;--parent-negative-checkbox-offset:0px;--parent-checkbox-offset:0px;display:grid;grid-auto-rows:min-content;position:relative}.expandable--lazy-loaded{content-visibility:auto;contain-intrinsic-size:auto 100px}.expandable--collapsed{display:none;overflow:hidden;content-visibility:hidden}";
|
|
571
571
|
|
|
572
572
|
const resetDragImage = new Image();
|
|
573
|
+
const DISTANCE_TO_CHECKBOX_CUSTOM_VAR = "--ch-tree-view-item-distance-to-checkbox";
|
|
573
574
|
const INITIAL_LEVEL = 0;
|
|
574
575
|
// Selectors
|
|
575
576
|
const TREE_ITEM_TAG_NAME = "ch-tree-view-item";
|
|
@@ -806,10 +807,11 @@ const ChTreeViewItem = class {
|
|
|
806
807
|
event.stopPropagation();
|
|
807
808
|
const checked = event.target.checked;
|
|
808
809
|
this.checked = checked;
|
|
810
|
+
this.indeterminate = false; // Changing the checked value makes it no longer indeterminate
|
|
809
811
|
this.checkboxChange.emit({
|
|
810
812
|
id: this.el.id,
|
|
811
813
|
checked: this.checked,
|
|
812
|
-
indeterminate:
|
|
814
|
+
indeterminate: false
|
|
813
815
|
});
|
|
814
816
|
};
|
|
815
817
|
this.renderImg = (cssClass, src) => (index.h("img", { "aria-hidden": "true", class: cssClass, part: cssClass, alt: "", src: src, loading: "lazy" }));
|
|
@@ -847,15 +849,7 @@ const ChTreeViewItem = class {
|
|
|
847
849
|
const treeItems = this.getDirectTreeItems();
|
|
848
850
|
treeItems.forEach(treeItem => {
|
|
849
851
|
if (treeItem.checked !== newValue || treeItem.indeterminate !== false) {
|
|
850
|
-
treeItem.
|
|
851
|
-
treeItem.indeterminate = false;
|
|
852
|
-
// Emit the event to sync with the UI model, even if the item does not
|
|
853
|
-
// have toggleCheckboxes property
|
|
854
|
-
this.checkboxToggleChange.emit({
|
|
855
|
-
id: treeItem.id,
|
|
856
|
-
checked: newValue,
|
|
857
|
-
indeterminate: false
|
|
858
|
-
});
|
|
852
|
+
treeItem.updateChecked(newValue, false);
|
|
859
853
|
}
|
|
860
854
|
});
|
|
861
855
|
}
|
|
@@ -900,22 +894,26 @@ const ChTreeViewItem = class {
|
|
|
900
894
|
}
|
|
901
895
|
updateCheckboxValue(event) {
|
|
902
896
|
// No need to update the checkbox value based on the children checkbox
|
|
903
|
-
if (!this.toggleCheckboxes) {
|
|
897
|
+
if (!this.toggleCheckboxes || this.el === event.target) {
|
|
904
898
|
return;
|
|
905
899
|
}
|
|
906
900
|
const updatedCheck = event.detail.checked;
|
|
907
901
|
const treeItems = this.getDirectTreeItems();
|
|
908
902
|
// Check if all the items have the same value as the updated item
|
|
909
903
|
const allItemsHaveTheSameCheckedValue = treeItems.every(treeItem => treeItem.checked === updatedCheck);
|
|
904
|
+
const eventMustBeEmitted = this.checked !== updatedCheck ||
|
|
905
|
+
this.indeterminate !== !allItemsHaveTheSameCheckedValue;
|
|
910
906
|
this.ignoreCheckboxChange = this.checked !== updatedCheck;
|
|
911
907
|
this.checked = updatedCheck;
|
|
912
908
|
this.indeterminate = !allItemsHaveTheSameCheckedValue;
|
|
913
909
|
// Sync with the UI Model
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
910
|
+
if (eventMustBeEmitted) {
|
|
911
|
+
this.checkboxToggleChange.emit({
|
|
912
|
+
id: this.el.id,
|
|
913
|
+
checked: updatedCheck,
|
|
914
|
+
indeterminate: !allItemsHaveTheSameCheckedValue
|
|
915
|
+
});
|
|
916
|
+
}
|
|
919
917
|
}
|
|
920
918
|
/**
|
|
921
919
|
* Focus the next item in the tree. If the control is expanded, it focuses
|
|
@@ -987,7 +985,7 @@ const ChTreeViewItem = class {
|
|
|
987
985
|
}
|
|
988
986
|
/**
|
|
989
987
|
* Focus the last item in its subtree. If the control is not expanded, it
|
|
990
|
-
* focus the control
|
|
988
|
+
* focus the control.
|
|
991
989
|
*/
|
|
992
990
|
async focusLastItem(ctrlKeyPressed) {
|
|
993
991
|
// Focus the last subitem if expanded and not lazy loading
|
|
@@ -1009,7 +1007,7 @@ const ChTreeViewItem = class {
|
|
|
1009
1007
|
this.setFocus(ctrlKeyPressed);
|
|
1010
1008
|
}
|
|
1011
1009
|
/**
|
|
1012
|
-
* Set focus in the control
|
|
1010
|
+
* Set focus in the control.
|
|
1013
1011
|
*/
|
|
1014
1012
|
async setFocus(ctrlKeyPressed) {
|
|
1015
1013
|
this.headerRef.focus();
|
|
@@ -1018,6 +1016,20 @@ const ChTreeViewItem = class {
|
|
|
1018
1016
|
this.setSelected();
|
|
1019
1017
|
}
|
|
1020
1018
|
}
|
|
1019
|
+
/**
|
|
1020
|
+
* Update `checked` and `indeterminate` properties.
|
|
1021
|
+
*/
|
|
1022
|
+
async updateChecked(newChecked, newIndeterminate) {
|
|
1023
|
+
this.checked = newChecked;
|
|
1024
|
+
this.indeterminate = newIndeterminate;
|
|
1025
|
+
// Emit the event to sync with the UI model, even if the item does not
|
|
1026
|
+
// have toggleCheckboxes property
|
|
1027
|
+
this.checkboxToggleChange.emit({
|
|
1028
|
+
id: this.el.id,
|
|
1029
|
+
checked: newChecked,
|
|
1030
|
+
indeterminate: newIndeterminate
|
|
1031
|
+
});
|
|
1032
|
+
}
|
|
1021
1033
|
getDirectTreeItems() {
|
|
1022
1034
|
return Array.from(this.el.querySelectorAll(DIRECT_TREE_ITEM_CHILDREN));
|
|
1023
1035
|
}
|
|
@@ -1025,7 +1037,7 @@ const ChTreeViewItem = class {
|
|
|
1025
1037
|
this.watcher = new ResizeObserver(() => {
|
|
1026
1038
|
const distanceToCheckbox = this.el.getBoundingClientRect().height -
|
|
1027
1039
|
this.headerRef.getBoundingClientRect().height / 2;
|
|
1028
|
-
this.el.style.setProperty(
|
|
1040
|
+
this.el.style.setProperty(DISTANCE_TO_CHECKBOX_CUSTOM_VAR, distanceToCheckbox + "px");
|
|
1029
1041
|
});
|
|
1030
1042
|
this.watcher.observe(this.el);
|
|
1031
1043
|
this.watcher.observe(this.headerRef);
|
|
@@ -1043,6 +1055,7 @@ const ChTreeViewItem = class {
|
|
|
1043
1055
|
}
|
|
1044
1056
|
// Load items
|
|
1045
1057
|
this.lazyLoad = false;
|
|
1058
|
+
this.downloading = true;
|
|
1046
1059
|
this.loadLazyContent.emit(this.el.id);
|
|
1047
1060
|
}
|
|
1048
1061
|
toggleSelected() {
|
|
@@ -1118,7 +1131,7 @@ const ChTreeViewItem = class {
|
|
|
1118
1131
|
"header--even-expandable": evenLevel && expandableButtonVisible,
|
|
1119
1132
|
"header--odd-expandable": !evenLevel && expandableButtonVisible,
|
|
1120
1133
|
"header--level-0": this.level === INITIAL_LEVEL
|
|
1121
|
-
}, part: `header${this.disabled ? " disabled" : ""}${this.selected ? " selected" : ""}`, type: "button", disabled: this.disabled, onClick: this.handleActionClick, onKeyDown: !this.editing ? this.handleActionKeyDown : null,
|
|
1134
|
+
}, part: `header${this.disabled ? " disabled" : ""}${this.selected ? " selected" : ""}${this.level === INITIAL_LEVEL ? " level-0" : ""}`, type: "button", disabled: this.disabled, onClick: this.handleActionClick, onKeyDown: !this.editing ? this.handleActionKeyDown : null,
|
|
1122
1135
|
// Drag and drop
|
|
1123
1136
|
draggable: !this.dragDisabled, onDragStart: this.handleDragStart, onDragEnd: !this.dragDisabled ? this.handleDragEnd : null, ref: el => (this.headerRef = el) }, !this.leaf && this.showExpandableButton && (index.h("button", { type: "button", class: {
|
|
1124
1137
|
"expandable-button": true,
|
|
@@ -1135,10 +1148,11 @@ const ChTreeViewItem = class {
|
|
|
1135
1148
|
"dashed-line": true,
|
|
1136
1149
|
"last-all-line": showAllLines && this.lastItem,
|
|
1137
1150
|
"last-line": showLastLine
|
|
1138
|
-
}, part: `dashed-line${this.lastItem ? " last-all-line" : ""}` }))), hasContent && (index.h("div", { role: "group", "aria-busy": this.downloading.toString(), "aria-live": this.downloading ? "polite" : null, id: EXPANDABLE_ID, class: {
|
|
1151
|
+
}, part: `dashed-line${this.lastItem ? " last-all-line" : ""}` }))), hasContent && (index.h("div", { role: "group", "aria-busy": (!!this.downloading).toString(), "aria-live": this.downloading ? "polite" : null, id: EXPANDABLE_ID, class: {
|
|
1139
1152
|
expandable: true,
|
|
1140
|
-
"expandable--collapsed": !this.expanded
|
|
1141
|
-
|
|
1153
|
+
"expandable--collapsed": !this.expanded,
|
|
1154
|
+
"expandable--lazy-loaded": !this.downloading
|
|
1155
|
+
}, part: `expandable${this.expanded ? " expanded" : " collapsed"}${!this.downloading ? " lazy-loaded" : ""}` }, index.h("slot", null)))));
|
|
1142
1156
|
}
|
|
1143
1157
|
get el() { return index.getElement(this); }
|
|
1144
1158
|
static get watchers() { return {
|
|
@@ -1152,596 +1166,6 @@ const ChTreeViewItem = class {
|
|
|
1152
1166
|
};
|
|
1153
1167
|
ChTreeViewItem.style = treeViewItemCss;
|
|
1154
1168
|
|
|
1155
|
-
const filterWithCamelCase = (stringToFilter, filter, camelCase) => camelCase
|
|
1156
|
-
? stringToFilter.includes(filter)
|
|
1157
|
-
: stringToFilter.toLowerCase().includes(filter.toLowerCase());
|
|
1158
|
-
const filterWithString = (stringToFilter, filter, filterOptions) => filterOptions.regularExpression
|
|
1159
|
-
? stringToFilter.match(filter) !== null
|
|
1160
|
-
: filterWithCamelCase(stringToFilter, filter, filterOptions.camelCase);
|
|
1161
|
-
const filterDictionary = {
|
|
1162
|
-
caption: (item, filterInfo) => {
|
|
1163
|
-
var _a;
|
|
1164
|
-
return filterInfo.filter
|
|
1165
|
-
? filterWithString((_a = item.caption) !== null && _a !== void 0 ? _a : "", filterInfo.filter, filterInfo.filterOptions)
|
|
1166
|
-
: true;
|
|
1167
|
-
},
|
|
1168
|
-
checked: (item, filterInfo) => {
|
|
1169
|
-
var _a, _b;
|
|
1170
|
-
return ((_a = item.checkbox) !== null && _a !== void 0 ? _a : filterInfo.defaultCheckbox) &&
|
|
1171
|
-
!item.indeterminate &&
|
|
1172
|
-
((_b = item.checked) !== null && _b !== void 0 ? _b : filterInfo.defaultChecked);
|
|
1173
|
-
},
|
|
1174
|
-
"id-list": (item, filterInfo) => filterInfo.filterList.includes(item.id),
|
|
1175
|
-
metadata: (item, filterInfo) => {
|
|
1176
|
-
var _a;
|
|
1177
|
-
return filterInfo.filter
|
|
1178
|
-
? filterWithString((_a = item.metadata) !== null && _a !== void 0 ? _a : "", filterInfo.filter, filterInfo.filterOptions)
|
|
1179
|
-
: true;
|
|
1180
|
-
},
|
|
1181
|
-
none: () => true,
|
|
1182
|
-
unchecked: (item, filterInfo) => {
|
|
1183
|
-
var _a, _b;
|
|
1184
|
-
return ((_a = item.checkbox) !== null && _a !== void 0 ? _a : filterInfo.defaultCheckbox) &&
|
|
1185
|
-
!item.indeterminate &&
|
|
1186
|
-
!((_b = item.checked) !== null && _b !== void 0 ? _b : filterInfo.defaultChecked);
|
|
1187
|
-
}
|
|
1188
|
-
};
|
|
1189
|
-
|
|
1190
|
-
const treeViewRenderCss = "ch-tree-view-render{display:contents}";
|
|
1191
|
-
|
|
1192
|
-
const DEFAULT_DRAG_DISABLED_VALUE = false;
|
|
1193
|
-
const DEFAULT_DROP_DISABLED_VALUE = false;
|
|
1194
|
-
const DEFAULT_CLASS_VALUE = "tree-view-item";
|
|
1195
|
-
const DEFAULT_EDITABLE_ITEMS_VALUE = true;
|
|
1196
|
-
const DEFAULT_EXPANDED_VALUE = false;
|
|
1197
|
-
const DEFAULT_INDETERMINATE_VALUE = false;
|
|
1198
|
-
const DEFAULT_LAZY_VALUE = false;
|
|
1199
|
-
const DEFAULT_ORDER_VALUE = 0;
|
|
1200
|
-
const DEFAULT_SELECTED_VALUE = false;
|
|
1201
|
-
const defaultRenderItem = (itemModel, treeState, lastItem, level) => {
|
|
1202
|
-
var _a, _b, _c, _d, _e, _f;
|
|
1203
|
-
return (treeState.filterType === "none" || itemModel.render !== false) && (index.h("ch-tree-view-item", { id: itemModel.id, caption: itemModel.caption, checkbox: (_a = itemModel.checkbox) !== null && _a !== void 0 ? _a : treeState.checkbox, checked: (_b = itemModel.checked) !== null && _b !== void 0 ? _b : treeState.checked, class: itemModel.class, disabled: itemModel.disabled, downloading: itemModel.downloading, dragDisabled: (_c = itemModel.dragDisabled) !== null && _c !== void 0 ? _c : treeState.dragDisabled, dropDisabled: (_d = itemModel.dropDisabled) !== null && _d !== void 0 ? _d : treeState.dropDisabled, editable: (_e = itemModel.editable) !== null && _e !== void 0 ? _e : treeState.editableItems, expanded: itemModel.expanded, indeterminate: itemModel.indeterminate, lastItem: lastItem, lazyLoad: itemModel.lazy, leaf: itemModel.leaf, leftImgSrc: itemModel.leftImgSrc, level: level, metadata: itemModel.metadata, rightImgSrc: itemModel.rightImgSrc, selected: itemModel.selected, showExpandableButton: itemModel.showExpandableButton, showLines: treeState.showLines, toggleCheckboxes: (_f = itemModel.toggleCheckboxes) !== null && _f !== void 0 ? _f : treeState.toggleCheckboxes }, !itemModel.leaf &&
|
|
1204
|
-
itemModel.items != null &&
|
|
1205
|
-
itemModel.items.map((subModel, index) => defaultRenderItem(subModel, treeState, treeState.showLines && index === itemModel.items.length - 1, level + 1))));
|
|
1206
|
-
};
|
|
1207
|
-
const ChTreeViewRender = class {
|
|
1208
|
-
constructor(hostRef) {
|
|
1209
|
-
index.registerInstance(this, hostRef);
|
|
1210
|
-
this.checkedItemsChange = index.createEvent(this, "checkedItemsChange", 7);
|
|
1211
|
-
this.itemContextmenu = index.createEvent(this, "itemContextmenu", 7);
|
|
1212
|
-
this.itemOpenReference = index.createEvent(this, "itemOpenReference", 7);
|
|
1213
|
-
this.selectedItemsChange = index.createEvent(this, "selectedItemsChange", 7);
|
|
1214
|
-
// UI Models
|
|
1215
|
-
this.flattenedTreeModel = new Map();
|
|
1216
|
-
this.flattenedCheckboxTreeModel = new Map();
|
|
1217
|
-
this.selectedItems = new Set();
|
|
1218
|
-
/**
|
|
1219
|
-
* This property lets you specify if the tree is waiting to process the drop
|
|
1220
|
-
* of items.
|
|
1221
|
-
*/
|
|
1222
|
-
this.waitDropProcessing = false;
|
|
1223
|
-
/**
|
|
1224
|
-
* Set this attribute if you want display a checkbox in all items by default.
|
|
1225
|
-
*/
|
|
1226
|
-
this.checkbox = false;
|
|
1227
|
-
/**
|
|
1228
|
-
* Set this attribute if you want the checkbox to be checked in all items by
|
|
1229
|
-
* default.
|
|
1230
|
-
* Only works if `checkbox = true`
|
|
1231
|
-
*/
|
|
1232
|
-
this.checked = false;
|
|
1233
|
-
/**
|
|
1234
|
-
* This attribute lets you specify if the drag operation is disabled in all
|
|
1235
|
-
* items by default. If `true`, the items can't be dragged.
|
|
1236
|
-
*/
|
|
1237
|
-
this.dragDisabled = DEFAULT_DRAG_DISABLED_VALUE;
|
|
1238
|
-
/**
|
|
1239
|
-
* This attribute lets you specify if the drop operation is disabled in all
|
|
1240
|
-
* items by default. If `true`, the items won't accept any drops.
|
|
1241
|
-
*/
|
|
1242
|
-
this.dropDisabled = DEFAULT_DROP_DISABLED_VALUE;
|
|
1243
|
-
/**
|
|
1244
|
-
* This attribute lets you specify if the edit operation is enabled in all
|
|
1245
|
-
* items by default. If `true`, the items can edit its caption in place.
|
|
1246
|
-
*/
|
|
1247
|
-
this.editableItems = DEFAULT_EDITABLE_ITEMS_VALUE;
|
|
1248
|
-
/**
|
|
1249
|
-
* This property lets you determine the list of items that will be filtered.
|
|
1250
|
-
* Only works if `filterType = "id-list"`.
|
|
1251
|
-
*/
|
|
1252
|
-
this.filterList = [];
|
|
1253
|
-
/**
|
|
1254
|
-
* This property lets you determine the options that will be applied to the
|
|
1255
|
-
* filter.
|
|
1256
|
-
* Only works if `filterType = "caption" | "metadata"`.
|
|
1257
|
-
*/
|
|
1258
|
-
this.filterOptions = {};
|
|
1259
|
-
/**
|
|
1260
|
-
* This attribute lets you define what kind of filter is applied to items.
|
|
1261
|
-
* Only items that satisfy the filter predicate will be displayed.
|
|
1262
|
-
*
|
|
1263
|
-
* | Value | Details |
|
|
1264
|
-
* | ----------- | ---------------------------------------------------------------------------------------------- |
|
|
1265
|
-
* | `checked` | Show only the items that have a checkbox and are checked. |
|
|
1266
|
-
* | `unchecked` | Show only the items that have a checkbox and are not checked. |
|
|
1267
|
-
* | `caption` | Show only the items whose `caption` satisfies the regex determinate by the `filter` property. |
|
|
1268
|
-
* | `metadata` | Show only the items whose `metadata` satisfies the regex determinate by the `filter` property. |
|
|
1269
|
-
* | `id-list` | Show only the items that are contained in the array determinate by the `filterList` property. |
|
|
1270
|
-
* | `none` | Show all items. |
|
|
1271
|
-
*/
|
|
1272
|
-
this.filterType = "none";
|
|
1273
|
-
/**
|
|
1274
|
-
* Set this attribute if you want to allow multi selection of the items.
|
|
1275
|
-
*/
|
|
1276
|
-
this.multiSelection = false;
|
|
1277
|
-
/**
|
|
1278
|
-
* This property allows us to implement custom rendering of tree items.
|
|
1279
|
-
*/
|
|
1280
|
-
this.renderItem = defaultRenderItem;
|
|
1281
|
-
/**
|
|
1282
|
-
* `true` to display the relation between tree items and tree lists using
|
|
1283
|
-
* lines.
|
|
1284
|
-
*/
|
|
1285
|
-
this.showLines = "none";
|
|
1286
|
-
/**
|
|
1287
|
-
* Set this attribute if you want all the children item's checkboxes to be
|
|
1288
|
-
* checked when the parent item checkbox is checked, or to be unchecked when
|
|
1289
|
-
* the parent item checkbox is unchecked.
|
|
1290
|
-
* This attribute will be used in all items by default.
|
|
1291
|
-
*/
|
|
1292
|
-
this.toggleCheckboxes = false;
|
|
1293
|
-
/**
|
|
1294
|
-
* This property lets you define the model of the ch-tree-x control.
|
|
1295
|
-
*/
|
|
1296
|
-
this.treeModel = [];
|
|
1297
|
-
this.handleDroppableZoneEnter = (event) => {
|
|
1298
|
-
if (!this.checkDroppableZoneCallback) {
|
|
1299
|
-
return;
|
|
1300
|
-
}
|
|
1301
|
-
event.stopPropagation();
|
|
1302
|
-
// Suppose the request is made immediately by executing the callback
|
|
1303
|
-
const requestTimestamp = new Date().getTime();
|
|
1304
|
-
const dropInformation = event.detail;
|
|
1305
|
-
const promise = this.checkDroppableZoneCallback(dropInformation);
|
|
1306
|
-
promise.then(validDrop => {
|
|
1307
|
-
this.updateValidDropZone(requestTimestamp, dropInformation.newContainer.id, dropInformation.draggedItems, validDrop);
|
|
1308
|
-
});
|
|
1309
|
-
};
|
|
1310
|
-
this.handleSelectedItemsChange = (event) => {
|
|
1311
|
-
event.stopPropagation();
|
|
1312
|
-
const itemsToProcess = new Map(event.detail);
|
|
1313
|
-
// Remove no longer selected items
|
|
1314
|
-
this.selectedItems.forEach(selectedItemId => {
|
|
1315
|
-
const itemUIModel = this.flattenedTreeModel.get(selectedItemId).item;
|
|
1316
|
-
const itemIsStillSelected = itemsToProcess.get(selectedItemId);
|
|
1317
|
-
// The item does not need to be added. Remove it from the processed list
|
|
1318
|
-
if (itemIsStillSelected) {
|
|
1319
|
-
itemUIModel.expanded = itemIsStillSelected.expanded; // Update expanded state
|
|
1320
|
-
itemsToProcess.delete(selectedItemId);
|
|
1321
|
-
}
|
|
1322
|
-
// The item must be un-selected in the UI Model
|
|
1323
|
-
else {
|
|
1324
|
-
itemUIModel.selected = false;
|
|
1325
|
-
this.selectedItems.delete(selectedItemId);
|
|
1326
|
-
}
|
|
1327
|
-
});
|
|
1328
|
-
// Add new selected items
|
|
1329
|
-
itemsToProcess.forEach((newSelectedItemInfo, itemId) => {
|
|
1330
|
-
const newSelectedItem = this.flattenedTreeModel.get(itemId).item;
|
|
1331
|
-
newSelectedItem.selected = true;
|
|
1332
|
-
newSelectedItem.expanded = newSelectedItemInfo.expanded;
|
|
1333
|
-
this.selectedItems.add(itemId);
|
|
1334
|
-
});
|
|
1335
|
-
this.selectedItemsChange.emit(event.detail);
|
|
1336
|
-
};
|
|
1337
|
-
this.handleExpandedItemChange = (event) => {
|
|
1338
|
-
const detail = event.detail;
|
|
1339
|
-
const itemInfo = this.flattenedTreeModel.get(detail.id).item;
|
|
1340
|
-
itemInfo.expanded = detail.expanded;
|
|
1341
|
-
};
|
|
1342
|
-
this.handleItemContextmenu = (event) => {
|
|
1343
|
-
event.stopPropagation();
|
|
1344
|
-
this.itemContextmenu.emit(event.detail);
|
|
1345
|
-
};
|
|
1346
|
-
this.handleItemsDropped = (event) => {
|
|
1347
|
-
if (!this.dropItemsCallback) {
|
|
1348
|
-
return;
|
|
1349
|
-
}
|
|
1350
|
-
event.stopPropagation();
|
|
1351
|
-
const dataTransferInfo = event.detail;
|
|
1352
|
-
const newContainer = dataTransferInfo.newContainer;
|
|
1353
|
-
const newParentId = newContainer.id;
|
|
1354
|
-
// Check if the parent exists in the UI Model
|
|
1355
|
-
if (!this.flattenedTreeModel.get(newParentId)) {
|
|
1356
|
-
return;
|
|
1357
|
-
}
|
|
1358
|
-
const draggedItems = dataTransferInfo.draggedItems;
|
|
1359
|
-
if (draggedItems.length === 0) {
|
|
1360
|
-
return;
|
|
1361
|
-
}
|
|
1362
|
-
const promise = this.dropItemsCallback(dataTransferInfo);
|
|
1363
|
-
this.waitDropProcessing = true;
|
|
1364
|
-
promise.then(async (response) => {
|
|
1365
|
-
this.waitDropProcessing = false;
|
|
1366
|
-
if (!response.acceptDrop) {
|
|
1367
|
-
return;
|
|
1368
|
-
}
|
|
1369
|
-
const newParentUIModel = this.flattenedTreeModel.get(newParentId).item;
|
|
1370
|
-
// Only move the items to the new parent, keeping the state
|
|
1371
|
-
if (dataTransferInfo.dropInTheSameTree) {
|
|
1372
|
-
// Add the UI models to the new container and remove the UI models from
|
|
1373
|
-
// the old containers
|
|
1374
|
-
draggedItems.forEach(this.moveItemToNewParent(newParentUIModel));
|
|
1375
|
-
// When the selected items are moved, the tree must remove its internal
|
|
1376
|
-
// state to not have undefined references
|
|
1377
|
-
if (dataTransferInfo.draggingSelectedItems) {
|
|
1378
|
-
await this.treeRef.clearSelectedItemsInfo();
|
|
1379
|
-
}
|
|
1380
|
-
}
|
|
1381
|
-
// Add the new items
|
|
1382
|
-
else {
|
|
1383
|
-
if (response.items == null) {
|
|
1384
|
-
return;
|
|
1385
|
-
}
|
|
1386
|
-
// Add new items to the parent
|
|
1387
|
-
newParentUIModel.items.push(...response.items);
|
|
1388
|
-
// Flatten the new UI models
|
|
1389
|
-
response.items.forEach(this.flattenItemUIModel(newParentUIModel));
|
|
1390
|
-
}
|
|
1391
|
-
this.sortItems(newParentUIModel.items);
|
|
1392
|
-
// Open the item to visualize the new subitems
|
|
1393
|
-
newParentUIModel.expanded = true;
|
|
1394
|
-
// Re-sync checked items
|
|
1395
|
-
this.emitCheckedItemsChange();
|
|
1396
|
-
// Update filters
|
|
1397
|
-
this.processFilters();
|
|
1398
|
-
// There is no need to force and update, since the waitDropProcessing
|
|
1399
|
-
// prop was modified
|
|
1400
|
-
});
|
|
1401
|
-
};
|
|
1402
|
-
this.moveItemToNewParent = (newParentUIModel) => (dataTransferInfo) => {
|
|
1403
|
-
const itemUIModelExtended = this.flattenedTreeModel.get(dataTransferInfo.id);
|
|
1404
|
-
const item = itemUIModelExtended.item;
|
|
1405
|
-
const oldParentItem = itemUIModelExtended.parentItem;
|
|
1406
|
-
// Remove the UI model from the previous parent
|
|
1407
|
-
oldParentItem.items.splice(oldParentItem.items.indexOf(item), 1);
|
|
1408
|
-
// Add the UI Model to the new parent
|
|
1409
|
-
newParentUIModel.items.push(item);
|
|
1410
|
-
// Reference the new parent in the item
|
|
1411
|
-
itemUIModelExtended.parentItem = newParentUIModel;
|
|
1412
|
-
};
|
|
1413
|
-
this.flattenItemUIModel = (parentModel) => (item) => {
|
|
1414
|
-
var _a, _b, _c, _d, _e, _f;
|
|
1415
|
-
this.flattenedTreeModel.set(item.id, {
|
|
1416
|
-
parentItem: parentModel,
|
|
1417
|
-
item: item
|
|
1418
|
-
});
|
|
1419
|
-
// Add the items that have a checkbox in a separate Map
|
|
1420
|
-
if ((_a = item.checkbox) !== null && _a !== void 0 ? _a : this.checkbox) {
|
|
1421
|
-
this.flattenedCheckboxTreeModel.set(item.id, {
|
|
1422
|
-
parentItem: parentModel,
|
|
1423
|
-
item: item
|
|
1424
|
-
});
|
|
1425
|
-
}
|
|
1426
|
-
// Make sure the properties are with their default values to avoid issues
|
|
1427
|
-
// when reusing DOM nodes
|
|
1428
|
-
item.class || (item.class = DEFAULT_CLASS_VALUE);
|
|
1429
|
-
(_b = item.expanded) !== null && _b !== void 0 ? _b : (item.expanded = DEFAULT_EXPANDED_VALUE);
|
|
1430
|
-
(_c = item.indeterminate) !== null && _c !== void 0 ? _c : (item.indeterminate = DEFAULT_INDETERMINATE_VALUE);
|
|
1431
|
-
(_d = item.lazy) !== null && _d !== void 0 ? _d : (item.lazy = DEFAULT_LAZY_VALUE);
|
|
1432
|
-
(_e = item.order) !== null && _e !== void 0 ? _e : (item.order = DEFAULT_ORDER_VALUE);
|
|
1433
|
-
(_f = item.selected) !== null && _f !== void 0 ? _f : (item.selected = DEFAULT_SELECTED_VALUE);
|
|
1434
|
-
if (item.selected) {
|
|
1435
|
-
this.selectedItems.add(item.id);
|
|
1436
|
-
}
|
|
1437
|
-
this.flattenSubModel(item);
|
|
1438
|
-
};
|
|
1439
|
-
}
|
|
1440
|
-
handleFilterChange() {
|
|
1441
|
-
if (this.filterType === "caption" || this.filterType === "metadata") {
|
|
1442
|
-
this.processFilters();
|
|
1443
|
-
}
|
|
1444
|
-
}
|
|
1445
|
-
handleFilterListChange() {
|
|
1446
|
-
if (this.filterType === "id-list") {
|
|
1447
|
-
this.processFilters();
|
|
1448
|
-
}
|
|
1449
|
-
}
|
|
1450
|
-
handleFilterOptionsChange() {
|
|
1451
|
-
if (this.filterType === "caption" || this.filterType === "metadata") {
|
|
1452
|
-
this.processFilters();
|
|
1453
|
-
}
|
|
1454
|
-
}
|
|
1455
|
-
handleFilterTypeChange() {
|
|
1456
|
-
this.processFilters();
|
|
1457
|
-
}
|
|
1458
|
-
handleTreeModelChange() {
|
|
1459
|
-
this.flattenModel();
|
|
1460
|
-
}
|
|
1461
|
-
/**
|
|
1462
|
-
* Given an item id, an array of items to add, the download status and the
|
|
1463
|
-
* lazy state, updates the item's UI Model.
|
|
1464
|
-
*/
|
|
1465
|
-
async loadLazyContent(itemId, items, downloading = false, lazy = false) {
|
|
1466
|
-
const itemToLazyLoadContent = this.flattenedTreeModel.get(itemId).item;
|
|
1467
|
-
// Establish that the content was lazy loaded
|
|
1468
|
-
itemToLazyLoadContent.downloading = downloading;
|
|
1469
|
-
itemToLazyLoadContent.lazy = lazy;
|
|
1470
|
-
// Check if there is items to add
|
|
1471
|
-
if (items == null) {
|
|
1472
|
-
return;
|
|
1473
|
-
}
|
|
1474
|
-
// @todo What happens in the server when dropping items on a lazy node?
|
|
1475
|
-
itemToLazyLoadContent.items = items;
|
|
1476
|
-
this.sortItems(itemToLazyLoadContent.items);
|
|
1477
|
-
this.flattenSubModel(itemToLazyLoadContent);
|
|
1478
|
-
// Re-sync checked items
|
|
1479
|
-
this.emitCheckedItemsChange();
|
|
1480
|
-
// Update filters
|
|
1481
|
-
this.processFilters();
|
|
1482
|
-
// Force re-render
|
|
1483
|
-
index.forceUpdate(this);
|
|
1484
|
-
}
|
|
1485
|
-
/**
|
|
1486
|
-
* Given an item id, it displays and scrolls into the item view.
|
|
1487
|
-
*/
|
|
1488
|
-
async scrollIntoVisible(treeItemId) {
|
|
1489
|
-
const itemUIModel = this.flattenedTreeModel.get(treeItemId);
|
|
1490
|
-
if (!itemUIModel) {
|
|
1491
|
-
// @todo Check if the item is on the server?
|
|
1492
|
-
return;
|
|
1493
|
-
}
|
|
1494
|
-
let visitedNode = itemUIModel.parentItem;
|
|
1495
|
-
// While the parent is not the root, update the UI Models
|
|
1496
|
-
while (visitedNode && visitedNode.id != null) {
|
|
1497
|
-
// Expand the item
|
|
1498
|
-
visitedNode.expanded = true;
|
|
1499
|
-
const visitedNodeUIModel = this.flattenedTreeModel.get(visitedNode.id);
|
|
1500
|
-
visitedNode = visitedNodeUIModel.parentItem;
|
|
1501
|
-
}
|
|
1502
|
-
index.forceUpdate(this);
|
|
1503
|
-
// @todo For some reason, when the model is created using the "big model" option,
|
|
1504
|
-
// this implementation does not work when only the UI Model is updated. So, to
|
|
1505
|
-
// expand the items, we have to delegate the responsibility to the tree-x
|
|
1506
|
-
this.treeRef.scrollIntoVisible(treeItemId);
|
|
1507
|
-
}
|
|
1508
|
-
/**
|
|
1509
|
-
* This method is used to toggle a tree item by the tree item id/ids.
|
|
1510
|
-
*
|
|
1511
|
-
* @param treeItemIds An array id the tree items to be toggled.
|
|
1512
|
-
* @param expand A boolean indicating that the tree item should be expanded or collapsed. (optional)
|
|
1513
|
-
* @returns The modified items after the method was called.
|
|
1514
|
-
*/
|
|
1515
|
-
async toggleItems(treeItemIds, expand) {
|
|
1516
|
-
if (!treeItemIds) {
|
|
1517
|
-
return [];
|
|
1518
|
-
}
|
|
1519
|
-
const modifiedTreeItems = [];
|
|
1520
|
-
treeItemIds.forEach(treeItemId => {
|
|
1521
|
-
const itemInfo = this.flattenedTreeModel.get(treeItemId).item;
|
|
1522
|
-
if (itemInfo) {
|
|
1523
|
-
itemInfo.expanded = expand !== null && expand !== void 0 ? expand : !itemInfo.expanded;
|
|
1524
|
-
modifiedTreeItems.push({
|
|
1525
|
-
id: itemInfo.id,
|
|
1526
|
-
expanded: itemInfo.expanded
|
|
1527
|
-
});
|
|
1528
|
-
}
|
|
1529
|
-
});
|
|
1530
|
-
// Force re-render
|
|
1531
|
-
index.forceUpdate(this);
|
|
1532
|
-
return modifiedTreeItems;
|
|
1533
|
-
}
|
|
1534
|
-
/**
|
|
1535
|
-
* Given a subset of item's properties, it updates all item UI models.
|
|
1536
|
-
*/
|
|
1537
|
-
async updateAllItemsProperties(properties) {
|
|
1538
|
-
[...this.flattenedTreeModel.values()].forEach(itemUIModel => {
|
|
1539
|
-
if (properties.expanded != null) {
|
|
1540
|
-
itemUIModel.item.expanded = properties.expanded;
|
|
1541
|
-
}
|
|
1542
|
-
if (properties.checked != null) {
|
|
1543
|
-
itemUIModel.item.checked = properties.checked;
|
|
1544
|
-
itemUIModel.item.indeterminate = false;
|
|
1545
|
-
}
|
|
1546
|
-
});
|
|
1547
|
-
// Update filters
|
|
1548
|
-
if (properties.checked != null) {
|
|
1549
|
-
this.processFilters();
|
|
1550
|
-
}
|
|
1551
|
-
index.forceUpdate(this);
|
|
1552
|
-
}
|
|
1553
|
-
/**
|
|
1554
|
-
* Given a item list and the properties to update, it updates the properties
|
|
1555
|
-
* of the items in the list.
|
|
1556
|
-
*/
|
|
1557
|
-
async updateItemsProperties(items, properties) {
|
|
1558
|
-
items.forEach(item => {
|
|
1559
|
-
const itemUIModel = this.flattenedTreeModel.get(item);
|
|
1560
|
-
this.updateItemProperty(itemUIModel, properties);
|
|
1561
|
-
});
|
|
1562
|
-
// Update filters
|
|
1563
|
-
this.processFilters();
|
|
1564
|
-
index.forceUpdate(this);
|
|
1565
|
-
}
|
|
1566
|
-
/**
|
|
1567
|
-
* Update the information about the valid droppable zones.
|
|
1568
|
-
* @param requestTimestamp Time where the request to the server was made. Useful to avoid having old information.
|
|
1569
|
-
* @param newContainerId ID of the container where the drag is trying to be made.
|
|
1570
|
-
* @param draggedItems Information about the dragged items.
|
|
1571
|
-
* @param validDrop Current state of the droppable zone.
|
|
1572
|
-
*/
|
|
1573
|
-
async updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop) {
|
|
1574
|
-
this.treeRef.updateValidDropZone(requestTimestamp, newContainerId, draggedItems, validDrop);
|
|
1575
|
-
}
|
|
1576
|
-
updateItemProperty(itemUIModel, properties) {
|
|
1577
|
-
if (!itemUIModel) {
|
|
1578
|
-
return;
|
|
1579
|
-
}
|
|
1580
|
-
const itemInfo = itemUIModel.item;
|
|
1581
|
-
Object.keys(properties).forEach(propertyName => {
|
|
1582
|
-
itemInfo[propertyName] = properties[propertyName];
|
|
1583
|
-
});
|
|
1584
|
-
}
|
|
1585
|
-
updateCheckboxValue(event) {
|
|
1586
|
-
event.stopPropagation();
|
|
1587
|
-
const detail = event.detail;
|
|
1588
|
-
const treeItemId = detail.id;
|
|
1589
|
-
const itemUIModel = this.flattenedCheckboxTreeModel.get(treeItemId);
|
|
1590
|
-
// In some cases, when the `treeModel` and `checked` properties are updated
|
|
1591
|
-
// outside of the tree control, some events are fired with undefined references
|
|
1592
|
-
if (!itemUIModel) {
|
|
1593
|
-
return;
|
|
1594
|
-
}
|
|
1595
|
-
const itemInfo = itemUIModel.item;
|
|
1596
|
-
itemInfo.checked = detail.checked;
|
|
1597
|
-
itemInfo.indeterminate = detail.indeterminate;
|
|
1598
|
-
this.emitCheckedItemsChange();
|
|
1599
|
-
// Update filters
|
|
1600
|
-
if (this.filterType === "checked" || this.filterType === "unchecked") {
|
|
1601
|
-
this.processFilters();
|
|
1602
|
-
// Force re-render
|
|
1603
|
-
index.forceUpdate(this);
|
|
1604
|
-
}
|
|
1605
|
-
}
|
|
1606
|
-
loadLazyChildrenHandler(event) {
|
|
1607
|
-
if (!this.lazyLoadTreeItemsCallback) {
|
|
1608
|
-
return;
|
|
1609
|
-
}
|
|
1610
|
-
event.stopPropagation();
|
|
1611
|
-
const treeItemId = event.detail;
|
|
1612
|
-
const promise = this.lazyLoadTreeItemsCallback(treeItemId);
|
|
1613
|
-
event.target.downloading = true;
|
|
1614
|
-
promise.then(result => {
|
|
1615
|
-
this.loadLazyContent(treeItemId, result);
|
|
1616
|
-
});
|
|
1617
|
-
}
|
|
1618
|
-
handleCaptionModification(event) {
|
|
1619
|
-
if (!this.modifyItemCaptionCallback) {
|
|
1620
|
-
return;
|
|
1621
|
-
}
|
|
1622
|
-
event.stopPropagation();
|
|
1623
|
-
const itemRef = event.target;
|
|
1624
|
-
const itemId = event.detail.id;
|
|
1625
|
-
const itemUIModel = this.flattenedTreeModel.get(itemId);
|
|
1626
|
-
const itemInfo = itemUIModel.item;
|
|
1627
|
-
const newCaption = event.detail.caption;
|
|
1628
|
-
const oldCaption = itemInfo.caption;
|
|
1629
|
-
// Optimistic UI: Update the caption in the UI Model before the change is
|
|
1630
|
-
// completed in the server
|
|
1631
|
-
itemInfo.caption = newCaption;
|
|
1632
|
-
// Due to performance reasons, we don't make a shallow copy of the
|
|
1633
|
-
// treeModel to force a re-render
|
|
1634
|
-
itemRef.caption = newCaption;
|
|
1635
|
-
const promise = this.modifyItemCaptionCallback(itemId, newCaption);
|
|
1636
|
-
promise.then(status => {
|
|
1637
|
-
if (status.success) {
|
|
1638
|
-
this.sortItems(itemUIModel.parentItem.items);
|
|
1639
|
-
// Update filters
|
|
1640
|
-
this.processFilters();
|
|
1641
|
-
// Force re-render
|
|
1642
|
-
index.forceUpdate(this);
|
|
1643
|
-
}
|
|
1644
|
-
else {
|
|
1645
|
-
itemRef.caption = oldCaption;
|
|
1646
|
-
itemInfo.caption = oldCaption;
|
|
1647
|
-
// Do something with the error message
|
|
1648
|
-
}
|
|
1649
|
-
});
|
|
1650
|
-
}
|
|
1651
|
-
handleOpenReference(event) {
|
|
1652
|
-
event.stopPropagation();
|
|
1653
|
-
this.itemOpenReference.emit(event.detail);
|
|
1654
|
-
}
|
|
1655
|
-
emitCheckedItemsChange() {
|
|
1656
|
-
// New copy of the checked items
|
|
1657
|
-
const allItemsWithCheckbox = new Map(this.flattenedCheckboxTreeModel);
|
|
1658
|
-
// Update the checked value if not defined
|
|
1659
|
-
allItemsWithCheckbox.forEach(itemUIModel => {
|
|
1660
|
-
var _a;
|
|
1661
|
-
var _b;
|
|
1662
|
-
(_a = (_b = itemUIModel.item).checked) !== null && _a !== void 0 ? _a : (_b.checked = this.checked);
|
|
1663
|
-
});
|
|
1664
|
-
this.checkedItemsChange.emit(allItemsWithCheckbox);
|
|
1665
|
-
}
|
|
1666
|
-
flattenSubModel(model) {
|
|
1667
|
-
const items = model.items;
|
|
1668
|
-
if (!items) {
|
|
1669
|
-
// Make sure that subtrees don't have an undefined array
|
|
1670
|
-
if (model.leaf !== true) {
|
|
1671
|
-
model.items = [];
|
|
1672
|
-
}
|
|
1673
|
-
return;
|
|
1674
|
-
}
|
|
1675
|
-
this.sortItems(items);
|
|
1676
|
-
items.forEach(this.flattenItemUIModel(model));
|
|
1677
|
-
}
|
|
1678
|
-
sortItems(items) {
|
|
1679
|
-
// Ensure that items are sorted
|
|
1680
|
-
if (this.sortItemsCallback) {
|
|
1681
|
-
this.sortItemsCallback(items);
|
|
1682
|
-
}
|
|
1683
|
-
}
|
|
1684
|
-
flattenModel() {
|
|
1685
|
-
this.flattenedTreeModel.clear();
|
|
1686
|
-
this.flattenedCheckboxTreeModel.clear();
|
|
1687
|
-
this.selectedItems.clear();
|
|
1688
|
-
// The model was updated at runtime, so we need to clear the references
|
|
1689
|
-
if (this.treeRef) {
|
|
1690
|
-
this.treeRef.clearSelectedItemsInfo();
|
|
1691
|
-
}
|
|
1692
|
-
this.flattenSubModel({ id: null, caption: null, items: this.treeModel });
|
|
1693
|
-
// Re-sync checked items
|
|
1694
|
-
this.emitCheckedItemsChange();
|
|
1695
|
-
}
|
|
1696
|
-
filterSubModel(item, filterInfo) {
|
|
1697
|
-
let aSubItemIsRendered = false;
|
|
1698
|
-
// Check if a subitem is rendered
|
|
1699
|
-
if (item.leaf !== true && item.items != null) {
|
|
1700
|
-
item.items.forEach(subItem => {
|
|
1701
|
-
const itemSatisfiesFilter = this.filterSubModel(subItem, filterInfo);
|
|
1702
|
-
aSubItemIsRendered || (aSubItemIsRendered = itemSatisfiesFilter);
|
|
1703
|
-
});
|
|
1704
|
-
}
|
|
1705
|
-
// The current item is rendered if it satisfies the filter condition or a
|
|
1706
|
-
// subitem exists that needs to be rendered
|
|
1707
|
-
const satisfiesFilter = filterDictionary[this.filterType](item, filterInfo) || aSubItemIsRendered;
|
|
1708
|
-
item.render = satisfiesFilter; // Update item render
|
|
1709
|
-
return satisfiesFilter;
|
|
1710
|
-
}
|
|
1711
|
-
processFilters() {
|
|
1712
|
-
if (this.filterType === "none") {
|
|
1713
|
-
return;
|
|
1714
|
-
}
|
|
1715
|
-
this.filterSubModel({
|
|
1716
|
-
id: null,
|
|
1717
|
-
caption: null,
|
|
1718
|
-
items: this.treeModel
|
|
1719
|
-
}, {
|
|
1720
|
-
defaultCheckbox: this.checkbox,
|
|
1721
|
-
defaultChecked: this.checked,
|
|
1722
|
-
filter: this.filter,
|
|
1723
|
-
filterList: this.filterList,
|
|
1724
|
-
filterOptions: this.filterOptions
|
|
1725
|
-
});
|
|
1726
|
-
}
|
|
1727
|
-
componentWillLoad() {
|
|
1728
|
-
this.flattenModel();
|
|
1729
|
-
this.processFilters();
|
|
1730
|
-
}
|
|
1731
|
-
render() {
|
|
1732
|
-
return (index.h("ch-tree-view", { 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((itemModel, index) => this.renderItem(itemModel, this, this.showLines && index === this.treeModel.length - 1, 0))));
|
|
1733
|
-
}
|
|
1734
|
-
static get watchers() { return {
|
|
1735
|
-
"filter": ["handleFilterChange"],
|
|
1736
|
-
"filterList": ["handleFilterListChange"],
|
|
1737
|
-
"filterOptions": ["handleFilterOptionsChange"],
|
|
1738
|
-
"filterType": ["handleFilterTypeChange"],
|
|
1739
|
-
"treeModel": ["handleTreeModelChange"]
|
|
1740
|
-
}; }
|
|
1741
|
-
};
|
|
1742
|
-
ChTreeViewRender.style = treeViewRenderCss;
|
|
1743
|
-
|
|
1744
1169
|
exports.ch_checkbox = CheckBox;
|
|
1745
1170
|
exports.ch_tree_view = ChTreeView;
|
|
1746
1171
|
exports.ch_tree_view_item = ChTreeViewItem;
|
|
1747
|
-
exports.ch_tree_view_render = ChTreeViewRender;
|