Files
crater/resources/assets/js/helpers/directives.js
Mohit Panjwani 89ee58590c build version 400
2020-12-02 17:54:08 +05:30

31 lines
979 B
JavaScript

Vue.directive('click-outside', {
bind: function (el, binding, vnode) {
el.event = function (event) {
// here I check that click was outside the el and his childrens
if (!(el === event.target || el.contains(event.target))) {
// and if it did, call method provided in attribute value
vnode.context[binding.expression](event)
}
}
document.body.addEventListener('click', el.event)
},
unbind: function (el) {
document.body.removeEventListener('click', el.event)
},
})
Vue.directive('autoresize', {
inserted: function (el) {
el.style.height = el.scrollHeight + 'px'
el.style.overflow.y = 'hidden'
el.style.resize = 'none'
function OnInput() {
this.style.height = 'auto'
this.style.height = this.scrollHeight + 'px'
this.scrollTop = this.scrollHeight
window.scrollTo(window.scrollLeft, this.scrollTop + this.scrollHeight)
}
el.addEventListener('input', OnInput, false)
},
})