Vue Multi Split Pane
A component based on Vue.js. Provides unlimited resizable multi pane support.
Install
npm i vue-multi-split-pane
Example
import { MultiSplitPane, Pane } from 'vue-multi-split-pane'
export default {
components: {
MultiSplitPane,
Pane
},
methods: {
onPaneCollapsed(paneIndex, paneClass, containerClass) {
console.log(
`${paneIndex}. pane collapsed. Pane class: '${paneClass}' MultiSplitPane class: '${containerClass}'`
)
},
onPaneExpanded(paneIndex, paneClass, containerClass) {
console.log(
`${paneIndex}. pane expanded. Pane class: '${paneClass}' MultiSplitPane class: '${containerClass}'`
)
}
}
}
<MultiSplitPane
split="horizontal"
height="400px"
width="1000px"
resizerWidth="30px"
classes="v-pane-custom"
@onPaneCollapsed="onPaneCollapsed"
@onPaneExpanded="onPaneExpanded"
>
<Pane>
<template v-slot:resizer>
resizer slot
</template>
<template v-slot:content>
Content 1
</template>
</Pane>
<Pane>
<template v-slot:content>
Content 2
</template>
</Pane>
<Pane>
<template v-slot:content>
Content 3
</template>
</Pane>
</MultiSplitPane>
Nested Pane Example
<MultiSplitPane
split="horizontal"
height="400px"
width="1000px"
resizerWidth="30px"
:nested="true"
classes="v-pane-custom"
>
<Pane>
<template v-slot:content>
Lorem, ipsum dolor sit amet consectetur adipisicing elit.
</template>
</Pane>
<Pane classes="paneNested">
<template v-slot:content>
<MultiSplitPane
height="400px"
resizerWidth="30px"
classes="v-pane-custom"
>
<Pane>
<template v-slot:content>
Lorem, ipsum dolor sit amet consectetur adipisicing elit.
</template>
</Pane>
<Pane>
<template v-slot:content>
Lorem, ipsum dolor sit amet consectetur adipisicing elit.
</template>
</Pane>
</MultiSplitPane>
</template>
</Pane>
</MultiSplitPane>
Props
Prop |
Description |
value |
default |
split |
Orientation of the MultiSplitPane |
vertical, horizontal |
vertical |
width |
Width of the MultiSplitPane |
String |
100% |
height |
Height of the MultiSplitPane |
String |
auto |
resizerWidth |
Width/height of the resizers. Valid for horizontal and vertical orientation. |
String |
30px |
classes |
Custom class prop. Can be send to MultiSplitPane or Pane |
String |
none |
:nested |
Will you use nested MultiSplitPane? Then should be true. |
Boolean |
false |
Events
Event |
Description |
onPaneCollapsed ( paneIndex, paneClass, containerClass ) |
Event will be fired when collapsed any pane. Used on MultiSplitPane |
onPaneExpanded ( paneIndex, paneClass, containerClass ) |
Event will be fired when expanded any pane. Used on MultiSplitPane |
GitHub