Vue jsPanel
A vue wrapper for jsPanel library
Installation
Directly in the browser
Drop the library in with a <script>
tag alongside Vue to globally install all components:
<div id="app"><js-panel></js-panel></div>
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue-js-panel"></script>
<script>
new Vue({ el: '#app' })
</script>
In a module system (without Vue CLI)
Install the library with NPM:
npm install vue-js-panel
Then register the library as a plugin to globally install all components:
import VueJsPanel from 'vue-js-panel'
import 'jspanel4/dist/jspanel.min.css'
Vue.use(VueJsPanel)
Or, import components individually for local registration:
import { JsPanel } from 'vue-js-panel'
import 'jspanel4/dist/jspanel.min.css'
export default {
components: { JsPanel }
}
In a module system (with Vue CLI)
If using Vue CLI 3 with Babel or TypeScript, it's recommended that you import the library from its
src
directory. This will minimize the size of your application by preventing duplicate or unnecessary polyfills.
Install the library with NPM:
npm install vue-js-panel
Then register the library as a plugin to globally install all components:
import VueJsPanel from 'vue-js-panel/src'
import 'jspanel4/dist/jspanel.min.css'
Vue.use(VueJsPanel)
Or, import components individually for local registration:
import { JsPanel } from 'vue-js-panel/src'
import 'jspanel4/dist/jspanel.min.css'
export default {
components: { JsPanel }
}
Component
JsPanel
JsPanel
is the main component that allows you to create a new panel. You simply give it an options object and a visible prop.
Examples
With default content
The default
slot is used to render the content of the panel.
<JsPanel :visible="show" :options="options" @close="show = false">
<div>My awesome content</div>
</JsPanel>
data() {
return {
show: true,
options: {
animateIn: 'animated zoomIn faster',
animateOut: 'animated zoomOut faster',
headerTitle: 'Aesome Panel',
//...
}
}
}
}
With headerToolbar slot
You can pass a slot that will be used as headerToolbar
content.
<JsPanel :visible="show" :options="options" @close="show = false">
<div>My awesome content</div>
<div slot="headerToolbar" class="custom-header-toolbar">
<span>File</span> <span>Edit</span> <span>About</span>
</div>
</JsPanel>
Props
Name | Type | Required | Default | Comments |
---|---|---|---|---|
visible | Boolean | No | false | Determine if panel shold be rendered |
options | Object | No | {} | Options for panel creation. Available options |
Events
close
: Emitted when panel is closedupdate:visible
: Emitted when panel is closed. Set to false parent visible binding