Skip to content

Add collapsible property #42

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '14'
node-version: '16'

- name: Install dependencies
run: npm install
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ export interface TreeViewItem {
selected?: boolean;
expanded?: boolean;
disableDragAndDrop?: boolean; // Disable drag and drop for a specific node.
collapsible?: boolean; // When set to false, item can not be collapsed (children always visible)
disabled?: boolean;// When disabled, an item can neither be selected nor checked
styles?: string[]; // Add the .css styles for a given item
meta?: any;// provides meta-data of any type per node.
Expand Down
4 changes: 3 additions & 1 deletion dev/tree.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,11 @@
"type": ".playlist"
},
{
"name": "Decoding hieroglyphs",
"name": "Decoding hieroglyphs (Not collapsible)",
"id": 8,
"type": ".playlist",
"collapsible": false,
"expanded": true,
"children": [
{
"name": "List of Rejection Emails",
Expand Down
11 changes: 10 additions & 1 deletion src/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,16 @@
align-items: center;
}

.vue3-tree-vue .nested {
/**
* children of checkable tree items need 47px left margin.
* Otherwise, only 27px left margin is needed.
*/

.vue3-tree-vue .nested{
margin-left: 27px !important;
}

.tree-item-node-checkable > .nested {
margin-left: 47px !important;
}

Expand Down
6 changes: 5 additions & 1 deletion src/tree-component.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,11 @@
<li v-for="treeViewItem in internalItems"
:key="treeViewItem.id"
:id="treeViewItem.id"
class="tree-item-node">
class="tree-item-node"
:class="{
'tree-item-node-checkable': isCheckable,
}"
>
<treeview-item class="pointer tree-view-item"
:item="treeViewItem"
:parent="parent"
Expand Down
2 changes: 1 addition & 1 deletion src/tree-item.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<div class="d-flex align-items-center" @contextmenu.prevent="$emit('onContextMenu', { item, event: $event })">
<div class="guide-line" v-if="parent != null && !hideGuideLines"></div>

<div @click="toggleExpand()" v-if="lazyLoad || (item.children && item.children.length > 0)">
<div @click="toggleExpand()" v-if="(lazyLoad || (item.children && item.children.length > 0)) && (item.collapsible == undefined || item.collapsible == true)">
<slot name="expander" v-bind="item">
<span class="chevron-right" :class="{'rotate-90' : item.expanded }"></span>
</slot>
Expand Down
1 change: 1 addition & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export interface TreeViewItem {
expanded?: boolean;
disabled?: boolean;
disableDragAndDrop?: boolean;
collapsible?: boolean;
styles?: string[];
meta?: any;
}
Expand Down