vue-splitter-pane
v1.3.13
Published
Vue Splitter Pane Component
Downloads
100
Readme
Vue Splitter Pane
vue-splitter-pane
is a Vuejs component which renders two slots in a adjustable split arrangement (vetical or horizontal).
Uses flex-box
for sizing.
Installation & Usage
$ npm install vue-splitter-pane
Vue Global Usage
import VueSplitter from 'vue-splitter-pane'
Vue.use(VueSplitter); # registers vue-splitter, vue-splitter-v and vue-splitter-h
Vue Local Usage
import VueSplitter, {VueSplitterH, VueSplitterV} from 'vue-splitter-pane'
Vue.extend({
...,
components: {
VueSplitter, // registers vue-splitter, must provide orientation
VueSplitterV, // registers vue-splitrer-v, for side by side arrangement
VueSplitterH // registers vue-splitter-h for top/bottom arrangement
}
})
Examples
Using vue-splitter
<vue-splitter split="vertical">
<template slot="left">
content...
</template>
<template slot="right">
content...
</template>
</vue-splitter>
Using vue-splitter-h
<vue-splitter-h>
<template slot="top">
content...
</template>
<template slot="bottom">
content...
</template>
</vue-splitter>
Nested
<vue-splitter-v initial-size="40%">
<template slot="left"> A </template>
<template slot="right">
<vue-splitter-h>
<template slot="top">
<vue-splitter-v initial-size="60%">
<template slot="left">B</template>
<template slot="right">C</template>
</vue-splitter-v>
</template>
<template slot="bottom">
<vue-splitter-v :throttle="20" initial-size="200px">
<template slot="left">D</template>
<template slot="right">E</template>
</vue-splitter-v>
</template>
</vue-splitter-h>
</template>
</vue-splitter-v>
Slot Names
| Splitter Type | First Slot | Second Slot |
| ----------------- | ---------------- | :--------: |
| vertical | left
| right
|
| horizontal | top
| bottom
|
Events
resize([size1, size2])
: Emitted when the panes are resized.size1
andsize2
are the adjusted dimensions of the first and second pane, respectively (width forvertical
and height forhorizontal
).
Component Properties
| Property | Description | type | default |
| ----------------- | ---------------- | :--------: | :----------: |
| split | Pane arrangement |horizontal
, vertical
| required |
| initial-size | Initial size of first slot | Any valid CSS size (e.g. px, %)| 50% |
| min-size | Lower size bound for the first slot | Any valid CSS size (e.g. px, % )| 20% |
| min-size | Upper size bound for the first slot | Any valid CSS size (e.g. px, %)| 80% |
| throttle | Throttle size updates to no more than given value | Rate in ms | - |
| x-class | Adds a classname | string | - |
Styling
vue-splitter-pane
includes the bare minimal styling to ensure functionality.
Container
.VueSplitter-Container-item
: the container.VueSplitter-Container-[horizontal|vertical]
: specialization for split type- value set via
x-class
Panes
.VueSplitter-Pane-item
: the pane.VueSplitter-Pane-[left|right|top|bottom]
: specialization by position- value set via
x-class
Handle
.VueSplitter-Handle-item
: the handle.VueSplitter-Handle-[horizontal|vertical]
: specialization by split type- value set via
x-class