| 'use strict'; | 
|   | 
| exports.__esModule = true; | 
| exports.isInContainer = exports.getScrollContainer = exports.isScroll = exports.getStyle = exports.once = exports.off = exports.on = undefined; | 
|   | 
| var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* istanbul ignore next */ | 
|   | 
| exports.hasClass = hasClass; | 
| exports.addClass = addClass; | 
| exports.removeClass = removeClass; | 
| exports.setStyle = setStyle; | 
|   | 
| var _vue = require('vue'); | 
|   | 
| var _vue2 = _interopRequireDefault(_vue); | 
|   | 
| function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | 
|   | 
| var isServer = _vue2.default.prototype.$isServer; | 
| var SPECIAL_CHARS_REGEXP = /([\:\-\_]+(.))/g; | 
| var MOZ_HACK_REGEXP = /^moz([A-Z])/; | 
| var ieVersion = isServer ? 0 : Number(document.documentMode); | 
|   | 
| /* istanbul ignore next */ | 
| var trim = function trim(string) { | 
|   return (string || '').replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, ''); | 
| }; | 
| /* istanbul ignore next */ | 
| var camelCase = function camelCase(name) { | 
|   return name.replace(SPECIAL_CHARS_REGEXP, function (_, separator, letter, offset) { | 
|     return offset ? letter.toUpperCase() : letter; | 
|   }).replace(MOZ_HACK_REGEXP, 'Moz$1'); | 
| }; | 
|   | 
| /* istanbul ignore next */ | 
| var on = exports.on = function () { | 
|   if (!isServer && document.addEventListener) { | 
|     return function (element, event, handler) { | 
|       if (element && event && handler) { | 
|         element.addEventListener(event, handler, false); | 
|       } | 
|     }; | 
|   } else { | 
|     return function (element, event, handler) { | 
|       if (element && event && handler) { | 
|         element.attachEvent('on' + event, handler); | 
|       } | 
|     }; | 
|   } | 
| }(); | 
|   | 
| /* istanbul ignore next */ | 
| var off = exports.off = function () { | 
|   if (!isServer && document.removeEventListener) { | 
|     return function (element, event, handler) { | 
|       if (element && event) { | 
|         element.removeEventListener(event, handler, false); | 
|       } | 
|     }; | 
|   } else { | 
|     return function (element, event, handler) { | 
|       if (element && event) { | 
|         element.detachEvent('on' + event, handler); | 
|       } | 
|     }; | 
|   } | 
| }(); | 
|   | 
| /* istanbul ignore next */ | 
| var once = exports.once = function once(el, event, fn) { | 
|   var listener = function listener() { | 
|     if (fn) { | 
|       fn.apply(this, arguments); | 
|     } | 
|     off(el, event, listener); | 
|   }; | 
|   on(el, event, listener); | 
| }; | 
|   | 
| /* istanbul ignore next */ | 
| function hasClass(el, cls) { | 
|   if (!el || !cls) return false; | 
|   if (cls.indexOf(' ') !== -1) throw new Error('className should not contain space.'); | 
|   if (el.classList) { | 
|     return el.classList.contains(cls); | 
|   } else { | 
|     return (' ' + el.className + ' ').indexOf(' ' + cls + ' ') > -1; | 
|   } | 
| }; | 
|   | 
| /* istanbul ignore next */ | 
| function addClass(el, cls) { | 
|   if (!el) return; | 
|   var curClass = el.className; | 
|   var classes = (cls || '').split(' '); | 
|   | 
|   for (var i = 0, j = classes.length; i < j; i++) { | 
|     var clsName = classes[i]; | 
|     if (!clsName) continue; | 
|   | 
|     if (el.classList) { | 
|       el.classList.add(clsName); | 
|     } else if (!hasClass(el, clsName)) { | 
|       curClass += ' ' + clsName; | 
|     } | 
|   } | 
|   if (!el.classList) { | 
|     el.setAttribute('class', curClass); | 
|   } | 
| }; | 
|   | 
| /* istanbul ignore next */ | 
| function removeClass(el, cls) { | 
|   if (!el || !cls) return; | 
|   var classes = cls.split(' '); | 
|   var curClass = ' ' + el.className + ' '; | 
|   | 
|   for (var i = 0, j = classes.length; i < j; i++) { | 
|     var clsName = classes[i]; | 
|     if (!clsName) continue; | 
|   | 
|     if (el.classList) { | 
|       el.classList.remove(clsName); | 
|     } else if (hasClass(el, clsName)) { | 
|       curClass = curClass.replace(' ' + clsName + ' ', ' '); | 
|     } | 
|   } | 
|   if (!el.classList) { | 
|     el.setAttribute('class', trim(curClass)); | 
|   } | 
| }; | 
|   | 
| /* istanbul ignore next */ | 
| var getStyle = exports.getStyle = ieVersion < 9 ? function (element, styleName) { | 
|   if (isServer) return; | 
|   if (!element || !styleName) return null; | 
|   styleName = camelCase(styleName); | 
|   if (styleName === 'float') { | 
|     styleName = 'styleFloat'; | 
|   } | 
|   try { | 
|     switch (styleName) { | 
|       case 'opacity': | 
|         try { | 
|           return element.filters.item('alpha').opacity / 100; | 
|         } catch (e) { | 
|           return 1.0; | 
|         } | 
|       default: | 
|         return element.style[styleName] || element.currentStyle ? element.currentStyle[styleName] : null; | 
|     } | 
|   } catch (e) { | 
|     return element.style[styleName]; | 
|   } | 
| } : function (element, styleName) { | 
|   if (isServer) return; | 
|   if (!element || !styleName) return null; | 
|   styleName = camelCase(styleName); | 
|   if (styleName === 'float') { | 
|     styleName = 'cssFloat'; | 
|   } | 
|   try { | 
|     var computed = document.defaultView.getComputedStyle(element, ''); | 
|     return element.style[styleName] || computed ? computed[styleName] : null; | 
|   } catch (e) { | 
|     return element.style[styleName]; | 
|   } | 
| }; | 
|   | 
| /* istanbul ignore next */ | 
| function setStyle(element, styleName, value) { | 
|   if (!element || !styleName) return; | 
|   | 
|   if ((typeof styleName === 'undefined' ? 'undefined' : _typeof(styleName)) === 'object') { | 
|     for (var prop in styleName) { | 
|       if (styleName.hasOwnProperty(prop)) { | 
|         setStyle(element, prop, styleName[prop]); | 
|       } | 
|     } | 
|   } else { | 
|     styleName = camelCase(styleName); | 
|     if (styleName === 'opacity' && ieVersion < 9) { | 
|       element.style.filter = isNaN(value) ? '' : 'alpha(opacity=' + value * 100 + ')'; | 
|     } else { | 
|       element.style[styleName] = value; | 
|     } | 
|   } | 
| }; | 
|   | 
| var isScroll = exports.isScroll = function isScroll(el, vertical) { | 
|   if (isServer) return; | 
|   | 
|   var determinedDirection = vertical !== null && vertical !== undefined; | 
|   var overflow = determinedDirection ? vertical ? getStyle(el, 'overflow-y') : getStyle(el, 'overflow-x') : getStyle(el, 'overflow'); | 
|   | 
|   return overflow.match(/(scroll|auto|overlay)/); | 
| }; | 
|   | 
| var getScrollContainer = exports.getScrollContainer = function getScrollContainer(el, vertical) { | 
|   if (isServer) return; | 
|   | 
|   var parent = el; | 
|   while (parent) { | 
|     if ([window, document, document.documentElement].includes(parent)) { | 
|       return window; | 
|     } | 
|     if (isScroll(parent, vertical)) { | 
|       return parent; | 
|     } | 
|     parent = parent.parentNode; | 
|   } | 
|   | 
|   return parent; | 
| }; | 
|   | 
| var isInContainer = exports.isInContainer = function isInContainer(el, container) { | 
|   if (isServer || !el || !container) return false; | 
|   | 
|   var elRect = el.getBoundingClientRect(); | 
|   var containerRect = void 0; | 
|   | 
|   if ([window, document, document.documentElement, null, undefined].includes(container)) { | 
|     containerRect = { | 
|       top: 0, | 
|       right: window.innerWidth, | 
|       bottom: window.innerHeight, | 
|       left: 0 | 
|     }; | 
|   } else { | 
|     containerRect = container.getBoundingClientRect(); | 
|   } | 
|   | 
|   return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right; | 
| }; |