0.1.5 • Published 7 years ago
vue-resize-split-pane v0.1.5
vue-resize-split-pane
Splittable and resizable panes for Vue.js
Install
With yarn:
yarn add vue-resize-split-paneWith npm:
npm i vue-resize-split-pane --saveUse
Global import
//main.js
import Vue from 'vue'
import ResSplitPane from 'vue-resize-split-pane'
Vue.component('rs-panes', ResSplitPane)Local import
<template>
<div id="app">
<rs-panes split-to="columns" :allow-resize="true">
<div slot="firstPane">
FIRST
</div>
<div slot="secondPane">
SECOND
</div>
</rs-panes>
<!-- <router-view></router-view> -->
</div>
</template>
<script>
//App.vue or YourComponent.vue
import ResSplitPane from 'vue-resize-split-pane'
export default {
name: 'app',
components: {
'rs-panes': ResSplitPane,
},
...
</script>Or you can nest them
<template>
<div id="app">
<rs-panes split-to="columns" :allow-resize="true">
<div slot="firstPane">
LEFT
</div>
<rs-panes :allowResize="true" split-to="rows"
slot="secondPane" primary="second">
<rs-panes :allowResize="true" split-to="columns"
slot="firstPane" primary="second">
<div slot="firstPane">
CENTER
</div>
<div slot="secondPane">
RIGHT
</div>
</rs-panes>
<div slot="secondPane">
BOTTOM
</div>
</rs-panes>
</rs-panes>
</div>
</template>Slots
firstPane for left column or top row
secondPane for right column or bottom row
Props
props: {
'allow-resize': { type: Boolean, default: false },
'split-to': { type: String, default: 'columns' }, // columns || rows
'primary': { type: String, default: 'first' }, // first || second
'size': { type: Number, default: 25 }, // in pixels || percents
'units': { type: String, default: 'pixels' }, // pixels || percents
'min-size': { type: Number, default: 16 }, // in pixels || percents
'max-size': { type: Number, default: 0 }, // in pixels || percents
'step': { type: Number, default: 0 }, // in pixels only
'resizerThickness': { type: Number, default: 2 }, //in px - width of the resizer
'resizerColor': { type: String, default: '#AAA' }, // any css color - if you set transparency, it will afect the border too
'resizerBorderColor': { type: String, default: 'rgba(0,0,0, 0.15)' }, // any css color - #FFF, rgb(0,0,0), rgba(0,0,0,0)
'resizerBorderThickness': { type: Number, default: 3 }, // in px - border that forms the shadow
},primary prop is used to specify which of the two panes has its size fixed.
size prop is either width or height depending on how the panes are split.
Events added in v0.1.3
update:size emited after resize, payload new size.
<rs-panes split-to="columns" v-on:update:size="paneSize = $event" :allow-resize="true">
...
</rs-panes>Props added in v0.1.0
resizerThickness - thickness of the resize handler in normal state.
resizerColor - color of the resize handler in normal state.
resizerBorderThickness - thickness of the resize handler border in hover state.
resizerBorderColor - color of the resize handler border in hover state.
License
MIT © Valentin Bucur