{"version":3,"file":"parallax.js","sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 83682a11f5441dcca3d9","webpack:///./src/consts.js","webpack:///./src/browser.js","webpack:///./src/Parallax.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/utils.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Parallax\"] = factory();\n\telse\n\t\troot[\"eg\"] = root[\"eg\"] || {}, root[\"eg\"][\"Parallax\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 2);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 83682a11f5441dcca3d9","\"use strict\";\n\nexports.__esModule = true;\nexports.TRANSITION_END = exports.TRANSITION = exports.TRANSFORM = exports.DEFENSE_BROWSER = exports.WEBKIT_VERSION = exports.PROCESSING = exports.LOADING_PREPEND = exports.LOADING_APPEND = exports.IDLE = exports.ALIGN = exports.isMobile = exports.agent = exports.DEFAULT_OPTIONS = exports.GROUPKEY_ATT = exports.DUMMY_POSITION = exports.SINGLE = exports.MULTI = exports.NO_TRUSTED = exports.TRUSTED = exports.NO_CACHE = exports.CACHE = exports.HORIZONTAL = exports.VERTICAL = exports.PREPEND = exports.APPEND = exports.TRANSITION_NAME = exports.IGNORE_CLASSNAME = exports.CONTAINER_CLASSNAME = exports.IS_ANDROID2 = exports.IS_IOS = exports.IS_IE = exports.SUPPORT_PASSIVE = exports.SUPPORT_ADDEVENTLISTENER = exports.SUPPORT_COMPUTEDSTYLE = void 0;\n\nvar _browser = require(\"./browser\");\n\nvar ua = _browser.window.navigator.userAgent;\nvar SUPPORT_COMPUTEDSTYLE = !!(\"getComputedStyle\" in _browser.window);\nexports.SUPPORT_COMPUTEDSTYLE = SUPPORT_COMPUTEDSTYLE;\nvar SUPPORT_ADDEVENTLISTENER = !!(\"addEventListener\" in _browser.document);\nexports.SUPPORT_ADDEVENTLISTENER = SUPPORT_ADDEVENTLISTENER;\n\nvar SUPPORT_PASSIVE = function () {\n var supportsPassiveOption = false;\n\n try {\n if (SUPPORT_ADDEVENTLISTENER && Object.defineProperty) {\n _browser.document.addEventListener(\"test\", null, Object.defineProperty({}, \"passive\", {\n get: function get() {\n supportsPassiveOption = true;\n }\n }));\n }\n } catch (e) {}\n\n return supportsPassiveOption;\n}();\n\nexports.SUPPORT_PASSIVE = SUPPORT_PASSIVE;\nvar IS_IE = /MSIE|Trident|Windows Phone|Edge/.test(ua);\nexports.IS_IE = IS_IE;\nvar IS_IOS = /iPhone|iPad/.test(ua);\nexports.IS_IOS = IS_IOS;\nvar IS_ANDROID2 = /Android 2\\./.test(ua);\nexports.IS_ANDROID2 = IS_ANDROID2;\nvar CONTAINER_CLASSNAME = \"_eg-infinitegrid-container_\";\nexports.CONTAINER_CLASSNAME = CONTAINER_CLASSNAME;\nvar IGNORE_CLASSNAME = \"_eg-infinitegrid-ignore_\";\nexports.IGNORE_CLASSNAME = IGNORE_CLASSNAME;\nvar TRANSITION_NAME = \"_INFINITEGRID_TRANSITION\";\nexports.TRANSITION_NAME = TRANSITION_NAME;\nvar APPEND = true;\nexports.APPEND = APPEND;\nvar PREPEND = false;\nexports.PREPEND = PREPEND;\nvar VERTICAL = \"vertical\";\nexports.VERTICAL = VERTICAL;\nvar HORIZONTAL = \"horizontal\";\nexports.HORIZONTAL = HORIZONTAL;\nvar CACHE = true;\nexports.CACHE = CACHE;\nvar NO_CACHE = false;\nexports.NO_CACHE = NO_CACHE;\nvar TRUSTED = true;\nexports.TRUSTED = TRUSTED;\nvar NO_TRUSTED = false;\nexports.NO_TRUSTED = NO_TRUSTED;\nvar MULTI = true;\nexports.MULTI = MULTI;\nvar SINGLE = false;\nexports.SINGLE = SINGLE;\nvar DUMMY_POSITION = -100000;\nexports.DUMMY_POSITION = DUMMY_POSITION;\nvar GROUPKEY_ATT = \"data-groupkey\";\nexports.GROUPKEY_ATT = GROUPKEY_ATT;\nvar DEFAULT_OPTIONS = {\n horizontal: false,\n margin: 0\n};\nexports.DEFAULT_OPTIONS = DEFAULT_OPTIONS;\nvar agent = ua.toLowerCase();\nexports.agent = agent;\nvar isMobile = /mobi|ios|android/.test(agent);\nexports.isMobile = isMobile;\nvar ALIGN = {\n START: \"start\",\n CENTER: \"center\",\n END: \"end\",\n JUSTIFY: \"justify\"\n};\nexports.ALIGN = ALIGN;\nvar IDLE = 0;\nexports.IDLE = IDLE;\nvar LOADING_APPEND = 1;\nexports.LOADING_APPEND = LOADING_APPEND;\nvar LOADING_PREPEND = 2;\nexports.LOADING_PREPEND = LOADING_PREPEND;\nvar PROCESSING = 4;\nexports.PROCESSING = PROCESSING;\nvar webkit = /applewebkit\\/([\\d|.]*)/g.exec(agent);\nvar WEBKIT_VERSION = webkit && parseInt(webkit[1], 10) || 0;\nexports.WEBKIT_VERSION = WEBKIT_VERSION;\nvar DEFENSE_BROWSER = WEBKIT_VERSION && WEBKIT_VERSION < 537;\nexports.DEFENSE_BROWSER = DEFENSE_BROWSER;\n\nvar _ref = function () {\n var properties = {\n transitionend: \"\",\n webkitTransitionEnd: \"-webkit-\",\n oTransitionEnd: \"-o-\",\n mozTransitionEnd: \"-moz-\"\n };\n\n for (var property in properties) {\n var prefix = properties[property];\n\n if (\"on\" + property.toLowerCase() in _browser.window) {\n return [prefix + \"transform\", prefix + \"transition\", property];\n }\n }\n\n return [];\n}(),\n TRANSFORM = _ref[0],\n TRANSITION = _ref[1],\n TRANSITION_END = _ref[2];\n\nexports.TRANSITION_END = TRANSITION_END;\nexports.TRANSITION = TRANSITION;\nexports.TRANSFORM = TRANSFORM;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/consts.js\n// module id = 0\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\nexports.document = exports.window = void 0;\n\n/* eslint-disable no-new-func, no-nested-ternary */\nif (typeof window === \"undefined\") {\n global.window = {\n document: {},\n navigator: {\n userAgent: \"\"\n }\n };\n}\n\nvar win = window;\n/* eslint-enable no-new-func, no-nested-ternary */\n\nexports.window = win;\nvar document = win.document;\nexports.document = document;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/browser.js\n// module id = 1\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _consts = require(\"./consts\");\n\nvar _utils = require(\"./utils\");\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar style = {\n \"vertical\": {\n position: \"top\",\n size: \"height\",\n cammelSize: \"Height\",\n coordinate: \"Y\"\n },\n \"horizontal\": {\n position: \"left\",\n size: \"width\",\n cammelSize: \"Width\",\n coordinate: \"X\"\n }\n};\nvar START = _consts.ALIGN.START,\n CENTER = _consts.ALIGN.CENTER;\n\nvar TRANSFORM = function () {\n var bodyStyle = (document.head || document.getElementsByTagName(\"head\")[0]).style;\n var target = [\"transform\", \"webkitTransform\", \"msTransform\", \"mozTransform\"];\n\n for (var i = 0, len = target.length; i < len; i++) {\n if (target[i] in bodyStyle) {\n return target[i];\n }\n }\n\n return \"\";\n}();\n/**\n * @classdesc Parallax is a displacement or difference in the apparent position of an object viewed along two different lines of sight. You can apply parallax by scrolling the image and speed of the item.\n * @ko Parallax는 서로 다른 두 개의 시선에서 바라본 물체의 외관상 위치의 변위 또는 차이입니다. 스크롤에 따라 이미지와 아이템의 속도를 차이를 줌으로써 parallax을 적용할 수 있습니다.\n * @class eg.Parallax\n * @param {Element|String} [root=window] Scrolling target. If you scroll in the body, set window. 스크롤하는 대상. 만약 body에서 스크롤하면 window로 설정한다.\n * @param {Object} [options] The option object of eg.Parallax module eg.Parallax 모듈의 옵션 객체\n * @param {Boolean} [options.horizontal=false] Direction of the scroll movement (false: vertical, true: horizontal) 스크롤 이동 방향 (false: 세로방향, true: 가로방향)\n * @param {Element|String} [options.container=null] Container wrapping items. If root and container have no gaps, do not set option. 아이템들을 감싸고 있는 컨테이너. 만약 root와 container간의 차이가 없으면, 옵션을 설정하지 않아도 된다.\n * @param {String} [options.selector=\"img\"] The selector of the image to apply the parallax in the item 아이템안에 있는 parallax를 적용할 이미지의 selector \n * @param {Boolean} [options.strength=1] Dimensions that indicate the sensitivity of parallax. The higher the strength, the faster.\n * @param {Boolean} [options.center=0] The middle point of parallax. The top is 1 and the bottom is -1. parallax가 가운데로 오는 점. 상단이 1이고 하단이 -1이다. \n * @param {Boolean} [options.range=[-1, 1]] Range to apply the parallax. The top is 1 and the bottom is -1. parallax가 적용되는 범위, 상단이 1이고 하단이 -1이다. \n * @param {Boolean} [options.align=\"start\"] The alignment of the image in the item. (\"start\" : top or left, \"center\": middle) 아이템안의 이미지의 정렬 \n * @example\n```\n\n```\n **/\n\n\nvar Parallax =\n/*#__PURE__*/\nfunction () {\n function Parallax(root, options) {\n if (root === void 0) {\n root = window;\n }\n\n if (options === void 0) {\n options = {};\n }\n\n this.options = _extends({\n container: null,\n selector: \"img\",\n strength: 1,\n center: 0,\n range: [-1, 1],\n align: START,\n horizontal: false\n }, options);\n this._root = (0, _utils.$)(root);\n this._container = this.options.container && (0, _utils.$)(this.options.container);\n this._rootSize = 0;\n this._containerPosition = 0;\n this._style = style[this.options.horizontal ? \"horizontal\" : \"vertical\"];\n this.resize();\n }\n\n var _proto = Parallax.prototype;\n\n _proto._checkParallaxItem = function _checkParallaxItem(element) {\n if (!element) {\n return;\n }\n\n var selector = this.options.selector;\n\n if (!element.__IMAGE__) {\n var img = element.querySelector(selector);\n element.__IMAGE__ = img || -1;\n\n if (element.__IMAGE__ === -1) {\n return;\n }\n\n element.__BOX__ = img.parentNode;\n }\n\n if (element.__IMAGE__ === -1) {\n return;\n }\n\n var sizeName = this._style.cammelSize;\n element.__IMAGE__.__SIZE__ = element.__IMAGE__[\"offset\" + sizeName];\n element.__BOX__.__SIZE__ = element.__BOX__[\"offset\" + sizeName];\n };\n /**\n * As the browser is resized, the gaps between the root and the container and the size of the items are updated.\n * @ko 브라우저의 크기가 변경됨으로 써 root와 container의 간격과 아이템들의 크기를 갱신한다.\n * @method eg.Parallax#resize\n * @param {Array} [items = []] Items to apply parallax. It does not apply if it is not in visible range. parallax를 적용할 아이템들. 가시거리에 존재하지 않으면 적용이 안된다.\n * @return {eg.Parallax} An instance of a module itself모듈 자신의 인스턴스\n * @example\n ```js\n window.addEventListener(\"resize\", function (e) {\n parallax.resize(items);\n });\n ```\n */\n\n\n _proto.resize = function resize(items) {\n var _this = this;\n\n if (items === void 0) {\n items = [];\n }\n\n var root = this._root;\n var container = this._container;\n var positionName = this._style.position;\n var sizeName = this._style.cammelSize;\n\n if (!container || root === container) {\n this._containerPosition = 0;\n } else {\n var rootRect = ((0, _utils.isWindow)(root) ? document.body : root).getBoundingClientRect();\n var containertRect = container.getBoundingClientRect();\n this._containerPosition = containertRect[positionName] - rootRect[positionName];\n }\n\n this._rootSize = (0, _utils.isWindow)(root) ? window[\"inner\" + sizeName] || document.documentElement[\"client\" + sizeName] : root[\"client\" + sizeName];\n\n if (_consts.isMobile & (0, _utils.isWindow)(root)) {\n var bodyWidth = document.body.offsetWidth || document.documentElement.offsetWidth;\n var windowWidth = window.innerWidth;\n this._rootSize = this._rootSize / (bodyWidth / windowWidth);\n }\n\n items.forEach(function (item) {\n _this._checkParallaxItem(item.el);\n });\n return this;\n };\n /**\n * Scrolls the image in the item by a parallax.\n * @ko 스크롤하면 아이템안의 이미지를 시차적용시킨다.\n * @method eg.Parallax#refresh\n * @param {Array} [items = []] Items to apply parallax. It does not apply if it is not in visible range. parallax를 적용할 아이템들. 가시거리에 존재하지 않으면 적용이 안된다.\n * @param {Number} [scrollPositionStart = 0] The scroll position.\n * @return {eg.Parallax} An instance of a module itself모듈 자신의 인스턴스\n * @example\n ```js\n document.body.addEventListener(\"scroll\", function (e) {\n parallax.refresh(items, e.scrollTop);\n });\n ```\n */\n\n\n _proto.refresh = function refresh(items, scrollPositionStart) {\n var _this2 = this;\n\n if (items === void 0) {\n items = [];\n }\n\n if (scrollPositionStart === void 0) {\n scrollPositionStart = 0;\n }\n\n var styleNames = this._style;\n var positionName = styleNames.position;\n var coordinateName = styleNames.coordinate;\n var sizeName = styleNames.size;\n var options = this.options;\n var strength = options.strength,\n center = options.center,\n range = options.range,\n align = options.align;\n var rootSize = this._rootSize;\n var scrollPositionEnd = scrollPositionStart + rootSize;\n var containerPosition = this._containerPosition;\n items.forEach(function (item) {\n if (!item.rect || !item.size || !item.el) {\n return;\n }\n\n var position = containerPosition + item.rect[positionName];\n var itemSize = item.rect[sizeName] || item.size[sizeName]; // check item is in container.\n\n if (scrollPositionStart > position + itemSize || scrollPositionEnd < position) {\n return;\n }\n\n var el = item.el;\n\n if (!el.__IMAGE__) {\n _this2._checkParallaxItem(el);\n }\n\n if (el.__IMAGE__ === -1) {\n return;\n }\n\n var imageElement = el.__IMAGE__;\n var boxElement = el.__BOX__;\n var boxSize = boxElement.__SIZE__;\n var imageSize = imageElement.__SIZE__; // no parallax\n\n if (boxSize >= imageSize) {\n // remove transform style\n imageElement.style[TRANSFORM] = \"\";\n return;\n } // if area's position is center, ratio is 0.\n // if area is hidden at the top, ratio is 1.\n // if area is hidden at the bottom, ratio is -1.\n\n\n var imagePosition = position + boxSize / 2;\n var ratio = (scrollPositionStart + rootSize / 2 - (rootSize + boxSize) / 2 * center - imagePosition) / (rootSize + boxSize) * 2 * strength; // if ratio is out of the range of -1 and 1, show empty space.\n\n ratio = Math.max(Math.min(ratio, range[1]), range[0]); // dist is the position when thumnail's image is centered.\n\n var dist = (boxSize - imageSize) / 2;\n var translate = dist * (1 - ratio);\n\n if (align === CENTER) {\n translate -= dist;\n }\n\n imageElement.__TRANSLATE__ = translate;\n imageElement.__RATIO__ = ratio;\n imageElement.style[TRANSFORM] = \"translate\" + coordinateName + \"(\" + translate + \"px)\";\n });\n return this;\n };\n\n return Parallax;\n}();\n\nvar _default = Parallax;\nexports[\"default\"] = _default;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/Parallax.js\n// module id = 2\n// module chunks = 0 1","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 3\n// module chunks = 0 1","\"use strict\";\n\nexports.__esModule = true;\nexports.toArray = toArray;\nexports.matchHTML = matchHTML;\nexports.$ = $;\nexports.addEvent = addEvent;\nexports.removeEvent = removeEvent;\nexports.addOnceEvent = addOnceEvent;\nexports.scroll = scroll;\nexports.scrollTo = scrollTo;\nexports.scrollBy = scrollBy;\nexports.getStyles = getStyles;\nexports.innerWidth = innerWidth;\nexports.innerHeight = innerHeight;\nexports.outerWidth = outerWidth;\nexports.outerHeight = outerHeight;\nexports.getSize = getSize;\nexports.getStyleNames = getStyleNames;\nexports.assignOptions = assignOptions;\nexports.toZeroArray = toZeroArray;\nexports.cloneItems = cloneItems;\nexports.isWindow = isWindow;\nexports.fill = fill;\nexports.isUndefined = isUndefined;\nexports.STYLE = void 0;\n\nvar _browser = require(\"./browser\");\n\nvar _consts = require(\"./consts\");\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction toArray(nodes) {\n // SCRIPT5014 in IE8\n var array = [];\n\n if (nodes) {\n for (var i = 0, len = nodes.length; i < len; i++) {\n array.push(nodes[i]);\n }\n }\n\n return array;\n}\n\nfunction matchHTML(html) {\n return html.match(/^<([A-z]+)\\s*([^>]*)>/);\n}\n/**\n * Select or create element\n * @param {String|HTMLElement|jQuery} param\n * when string given is as HTML tag, then create element\n * otherwise it returns selected elements\n * @param {Boolean} multi\n * @returns {HTMLElement}\n */\n\n\nfunction $(param, multi) {\n if (multi === void 0) {\n multi = false;\n }\n\n var el;\n\n if (typeof param === \"string\") {\n // String (HTML, Selector)\n // check if string is HTML tag format\n var match = matchHTML(param); // creating element\n\n if (match) {\n // HTML\n var dummy = _browser.document.createElement(\"div\");\n\n dummy.innerHTML = param;\n el = dummy.childNodes;\n } else {\n // Selector\n el = _browser.document.querySelectorAll(param);\n }\n\n if (multi) {\n el = toArray(el);\n } else {\n el = el && el.length > 0 && el[0] || undefined;\n }\n } else if (param === _browser.window) {\n // window\n el = param;\n } else if (param.nodeName && (param.nodeType === 1 || param.nodeType === 9)) {\n // HTMLElement, Document\n el = param;\n } else if (\"jQuery\" in _browser.window && param instanceof _browser.window.jQuery || param.constructor.prototype.jquery) {\n // jQuery\n el = $(multi ? param.toArray() : param.get(0), multi);\n } else if (Array.isArray(param)) {\n el = param.map(function (v) {\n return $(v);\n });\n\n if (!multi) {\n el = el.length >= 1 ? el[0] : undefined;\n }\n }\n\n return el;\n}\n\nfunction addEvent(element, type, handler, eventListenerOptions) {\n if (_consts.SUPPORT_ADDEVENTLISTENER) {\n var options = eventListenerOptions || false;\n\n if (typeof eventListenerOptions === \"object\") {\n options = _consts.SUPPORT_PASSIVE ? eventListenerOptions : false;\n }\n\n element.addEventListener(type, handler, options);\n } else if (element.attachEvent) {\n element.attachEvent(\"on\" + type, handler);\n } else {\n element[\"on\" + type] = handler;\n }\n}\n\nfunction removeEvent(element, type, handler) {\n if (element.removeEventListener) {\n element.removeEventListener(type, handler, false);\n } else if (element.detachEvent) {\n element.detachEvent(\"on\" + type, handler);\n } else {\n element[\"on\" + type] = null;\n }\n}\n\nfunction addOnceEvent(element, type, handler, eventListenerOptions) {\n var callback = function callback(e) {\n removeEvent(element, type, callback);\n handler(e);\n };\n\n addEvent(element, type, callback, eventListenerOptions);\n}\n\nfunction scroll(el, horizontal) {\n if (horizontal === void 0) {\n horizontal = false;\n }\n\n var prop = \"scroll\" + (horizontal ? \"Left\" : \"Top\");\n\n if (el === _browser.window) {\n return _browser.window[horizontal ? \"pageXOffset\" : \"pageYOffset\"] || _browser.document.body[prop] || _browser.document.documentElement[prop];\n } else {\n return el[prop];\n }\n}\n\nfunction scrollTo(el, x, y) {\n if (el === _browser.window) {\n el.scroll(x, y);\n } else {\n el.scrollLeft = x;\n el.scrollTop = y;\n }\n}\n\nfunction scrollBy(el, x, y) {\n if (el === _browser.window) {\n el.scrollBy(x, y);\n } else {\n el.scrollLeft += x;\n el.scrollTop += y;\n }\n}\n\nfunction getStyles(el) {\n return (_consts.SUPPORT_COMPUTEDSTYLE ? _browser.window.getComputedStyle(el) : el.currentStyle) || {};\n}\n\nfunction _getSize(el, name, isOffset) {\n if (el === _browser.window) {\n // WINDOW\n return _browser.window[\"inner\" + name] || _browser.document.body[\"client\" + name];\n } else if (el.nodeType === 9) {\n // DOCUMENT_NODE\n var doc = el.documentElement;\n return Math.max(el.body[\"scroll\" + name], doc[\"scroll\" + name], el.body[\"offset\" + name], doc[\"offset\" + name], doc[\"client\" + name]);\n } else {\n // NODE\n var size = 0;\n\n if (isOffset) {\n var clientRect = el.getBoundingClientRect();\n size = name === \"Width\" ? clientRect.right - clientRect.left : clientRect.bottom - clientRect.top;\n } else {\n size = el[\"client\" + name] || el[\"offset\" + name];\n }\n\n return parseFloat(size || getStyles(el)[name.toLowerCase()]) || 0;\n }\n}\n\nfunction innerWidth(el) {\n return _getSize(el, \"Width\", false);\n}\n\nfunction innerHeight(el) {\n return _getSize(el, \"Height\", false);\n}\n\nfunction outerWidth(el) {\n return _getSize(el, \"Width\", true);\n}\n\nfunction outerHeight(el) {\n return _getSize(el, \"Height\", true);\n}\n\nfunction getSize(el) {\n return {\n width: outerWidth(el),\n height: outerHeight(el)\n };\n}\n\nvar STYLE = {\n vertical: {\n pos1: \"top\",\n endPos1: \"bottom\",\n size1: \"height\",\n pos2: \"left\",\n endPos2: \"right\",\n size2: \"width\"\n },\n horizontal: {\n pos1: \"left\",\n endPos1: \"right\",\n size1: \"width\",\n pos2: \"top\",\n endPos2: \"bottom\",\n size2: \"height\"\n }\n};\nexports.STYLE = STYLE;\n\nfunction getStyleNames(isHorizontal) {\n return STYLE[isHorizontal ? _consts.HORIZONTAL : _consts.VERTICAL];\n}\n\nfunction assignOptions(defaultOptions, options) {\n return _extends({}, _consts.DEFAULT_OPTIONS, defaultOptions, options);\n}\n\nfunction toZeroArray(outline) {\n if (!outline || !outline.length) {\n return [0];\n }\n\n return outline;\n}\n\nfunction cloneItems(items) {\n return items.map(function (item) {\n return _extends({}, item);\n });\n}\n\nfunction isWindow(el) {\n return el === _browser.window;\n}\n\nfunction fill(arr, value) {\n var length = arr.length;\n\n for (var i = length - 1; i >= 0; --i) {\n arr[i] = value;\n }\n\n return arr;\n}\n\nfunction isUndefined(target) {\n return typeof target === \"undefined\";\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/utils.js\n// module id = 4\n// module chunks = 0 1"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACxHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;AC7SA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;A","sourceRoot":""}