| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- // Inspired by https://github.com/Inndy/vue-clipboard2
 
- const Clipboard = require('clipboard')
 
- if (!Clipboard) {
 
-   throw new Error('you should npm install `clipboard` --save at first ')
 
- }
 
- export default {
 
-   bind(el, binding) {
 
-     if (binding.arg === 'success') {
 
-       el._v_clipboard_success = binding.value
 
-     } else if (binding.arg === 'error') {
 
-       el._v_clipboard_error = binding.value
 
-     } else {
 
-       const clipboard = new Clipboard(el, {
 
-         text() { return binding.value },
 
-         action() { return binding.arg === 'cut' ? 'cut' : 'copy' }
 
-       })
 
-       clipboard.on('success', e => {
 
-         const callback = el._v_clipboard_success
 
-         callback && callback(e) // eslint-disable-line
 
-       })
 
-       clipboard.on('error', e => {
 
-         const callback = el._v_clipboard_error
 
-         callback && callback(e) // eslint-disable-line
 
-       })
 
-       el._v_clipboard = clipboard
 
-     }
 
-   },
 
-   update(el, binding) {
 
-     if (binding.arg === 'success') {
 
-       el._v_clipboard_success = binding.value
 
-     } else if (binding.arg === 'error') {
 
-       el._v_clipboard_error = binding.value
 
-     } else {
 
-       el._v_clipboard.text = function() { return binding.value }
 
-       el._v_clipboard.action = function() { return binding.arg === 'cut' ? 'cut' : 'copy' }
 
-     }
 
-   },
 
-   unbind(el, binding) {
 
-     if (binding.arg === 'success') {
 
-       delete el._v_clipboard_success
 
-     } else if (binding.arg === 'error') {
 
-       delete el._v_clipboard_error
 
-     } else {
 
-       el._v_clipboard.destroy()
 
-       delete el._v_clipboard
 
-     }
 
-   }
 
- }
 
 
  |