vue-easytable
Version:
155 lines (117 loc) • 4.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _settings = require('../settings/settings');
var _settings2 = _interopRequireDefault(_settings);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
getViewportOffset: function getViewportOffset(element) {
var doc = document.documentElement,
box = typeof element.getBoundingClientRect !== "undefined" ? element.getBoundingClientRect() : 0,
scrollLeft = (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0),
scrollTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0),
offsetLeft = box.left + window.pageXOffset,
offsetTop = box.top + window.pageYOffset;
var left = offsetLeft - scrollLeft,
top = offsetTop - scrollTop;
return {
left: left,
top: top,
right: window.document.documentElement.clientWidth - box.width - left,
bottom: window.document.documentElement.clientHeight - box.height - top,
right2: window.document.documentElement.clientWidth - left,
bottom2: window.document.documentElement.clientHeight - top
};
},
bind: function bind(elem, event, handler) {
if (elem && elem !== 'undefined' && event && handler) {
event = event === 'mousewheel' ? document.onmousewheel !== undefined ? "mousewheel" : "DOMMouseScroll" : event;
if (document.attachEvent) {
elem.attachEvent("on" + event, handler);
} else {
elem.addEventListener(event, handler, false);
}
}
},
unbind: function unbind(elem, event, handler) {
if (elem && elem !== 'undefined' && event && handler) {
event = event === 'mousewheel' ? document.onmousewheel !== undefined ? "mousewheel" : "DOMMouseScroll" : event;
var handlers = [];
if (Array.isArray(handler) && handler.length > 0) {
handlers = handler;
} else {
handlers.push(handler);
}
if (document.removeEventListener) {
handlers.forEach(function (e) {
elem.removeEventListener(event, e, false);
});
} else {
handlers.forEach(function (e) {
elem.removeEventListener('on' + event, e);
});
}
}
},
isHtml: function isHtml(val) {
return (/<[a-z][\s\S]*>/i.test(val)
);
},
getDisplayValue: function getDisplayValue(ele) {
if (ele) {
return ele.currentStyle ? ele.currentStyle.display : getComputedStyle(ele, null).display;
}
},
hasHorizontalScrollBar: function hasHorizontalScrollBar(ele) {
if (ele) {
return ele.scrollWidth > ele.clientWidth;
}
},
hasVerticalScrollBar: function hasVerticalScrollBar(ele) {
if (ele) {
return ele.scrollHeight > ele.clientHeight;
}
},
getScrollbarWidth: function getScrollbarWidth() {
var outer = document.createElement('div');
outer.className = _settings2.default.scrollbarClass;
outer.style.visibility = 'hidden';
outer.style.width = '100px';
outer.style.position = 'absolute';
outer.style.top = '-9999px';
document.body.appendChild(outer);
var widthNoScroll = outer.offsetWidth;
outer.style.overflow = 'scroll';
var inner = document.createElement('div');
inner.style.width = '100%';
outer.appendChild(inner);
var widthWithScroll = inner.offsetWidth;
outer.parentNode.removeChild(outer);
return widthNoScroll - widthWithScroll;
},
getParentCompByName: function getParentCompByName(context, name) {
var parent = context.$parent;
while (parent) {
if (parent.$options.name !== name) {
parent = parent.$parent;
} else {
return parent;
}
}
return null;
},
getChildCompsByName: function getChildCompsByName(context, name) {
var result = [];
var childrens = context.$children;
while (childrens && childrens.length > 0) {
childrens.forEach(function (child) {
childrens = child.$children ? child.$children : null;
if (child.$options.name === name) {
result.push(child);
}
});
}
return result;
}
};