{"version":3,"sources":["webpack:///./node_modules/enquire.js/src/Util.js","webpack:///./node_modules/dom-matches/index.js","webpack:///./node_modules/dom-closest/index.js","webpack:///./node_modules/is-mobile/index.js","webpack:///./node_modules/enquire.js/src/index.js","webpack:///./node_modules/enquire.js/src/QueryHandler.js","webpack:///./node_modules/enquire.js/src/MediaQuery.js","webpack:///./node_modules/enquire.js/src/MediaQueryDispatch.js","webpack:///./node_modules/dom-scroll-into-view/dist-web/index.js"],"names":["each","collection","fn","cont","i","length","isArray","target","Object","prototype","toString","apply","isFunction","module","exports","matches","elem","selector","proto","window","Element","nativeMatches","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","nodeType","parentElem","parentNode","call","nodes","querySelectorAll","len","element","context","document","isMobile","default","mobileRE","tabletRE","opts","ua","navigator","userAgent","headers","result","tablet","test","featureDetect","maxTouchPoints","indexOf","MediaQueryDispatch","QueryHandler","options","this","deferSetup","setup","constructor","initialised","on","match","off","unmatch","destroy","equals","MediaQuery","query","isUnconditional","handlers","mql","matchMedia","self","listener","currentTarget","assess","addListener","constuctor","addHandler","handler","qh","push","removeHandler","h","splice","clear","removeListener","action","Util","Error","queries","browserIsIncapable","register","q","shouldDegrade","unregister","_typeof","obj","Symbol","iterator","_defineProperty","key","value","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","arguments","source","forEach","getOwnPropertyDescriptors","defineProperties","RE_NUM","getClientPosition","box","x","y","doc","ownerDocument","body","docElem","documentElement","getBoundingClientRect","left","top","clientLeft","clientTop","getScroll","w","ret","concat","method","d","getScrollLeft","getScrollTop","getOffset","el","pos","defaultView","parentWindow","_getComputedStyle","name","computedStyle_","val","computedStyle","getComputedStyle","getPropertyValue","getComputedStyleX","_RE_NUM_NO_PX","RegExp","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","PX","_getComputedStyleIE","style","rsLeft","pixelLeft","arr","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","swap","callback","old","hasOwnProperty","getPBMWidth","props","which","prop","j","cssProp","parseFloat","isWindow","domUtils","getWH","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","offsetWidth","offsetHeight","isBorderBox","cssBoxValue","undefined","Number","borderBoxValueOrIsBorderBox","padding","slice","refWin","Math","max","win","documentElementProp","compatMode","cssShow","position","visibility","display","getWHIgnoreDisplay","args","css","v","setOffset","offset","current","first","charAt","toUpperCase","includeMargin","util","getWindow","node","clone","overflow","_i","scrollLeft","scrollTo","scrollTop","scrollIntoView","container","config","allowHorizontalScroll","onlyScrollIfNeeded","alignWithTop","alignWithLeft","offsetTop","offsetLeft","offsetBottom","offsetRight","containerOffset","ch","cw","containerScroll","diffTop","diffBottom","winScroll","ww","wh","isWin","elemOffset","eh","outerHeight","ew","outerWidth","height","width","clientHeight","clientWidth"],"mappings":"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","file":"js/chunk-vendors~b5906859.75f76fe0.js","sourcesContent":["/**\n * Helper function for iterating over a collection\n *\n * @param collection\n * @param fn\n */\nfunction each(collection, fn) {\n var i = 0,\n length = collection.length,\n cont;\n\n for(i; i < length; i++) {\n cont = fn(collection[i], i);\n if(cont === false) {\n break; //allow early exit\n }\n }\n}\n\n/**\n * Helper function for determining whether target object is an array\n *\n * @param target the object under test\n * @return {Boolean} true if array, false otherwise\n */\nfunction isArray(target) {\n return Object.prototype.toString.apply(target) === '[object Array]';\n}\n\n/**\n * Helper function for determining whether target object is a function\n *\n * @param target the object under test\n * @return {Boolean} true if function, false otherwise\n */\nfunction isFunction(target) {\n return typeof target === 'function';\n}\n\nmodule.exports = {\n isFunction : isFunction,\n isArray : isArray,\n each : each\n};\n","'use strict';\n\n/**\n * Determine if a DOM element matches a CSS selector\n *\n * @param {Element} elem\n * @param {String} selector\n * @return {Boolean}\n * @api public\n */\n\nfunction matches(elem, selector) {\n // Vendor-specific implementations of `Element.prototype.matches()`.\n var proto = window.Element.prototype;\n var nativeMatches = proto.matches ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n\n if (!elem || elem.nodeType !== 1) {\n return false;\n }\n\n var parentElem = elem.parentNode;\n\n // use native 'matches'\n if (nativeMatches) {\n return nativeMatches.call(elem, selector);\n }\n\n // native support for `matches` is missing and a fallback is required\n var nodes = parentElem.querySelectorAll(selector);\n var len = nodes.length;\n\n for (var i = 0; i < len; i++) {\n if (nodes[i] === elem) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Expose `matches`\n */\n\nmodule.exports = matches;\n","/**\n * Module dependencies\n */\n\nvar matches = require('dom-matches');\n\n/**\n * @param element {Element}\n * @param selector {String}\n * @param context {Element}\n * @return {Element}\n */\nmodule.exports = function (element, selector, context) {\n context = context || document;\n // guard against orphans\n element = { parentNode: element };\n\n while ((element = element.parentNode) && element !== context) {\n if (matches(element, selector)) {\n return element;\n }\n }\n};\n","'use strict'\r\n\r\nmodule.exports = isMobile\r\nmodule.exports.isMobile = isMobile\r\nmodule.exports.default = isMobile\r\n\r\nvar mobileRE = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i\r\n\r\nvar tabletRE = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i\r\n\r\nfunction isMobile (opts) {\r\n if (!opts) opts = {}\r\n var ua = opts.ua\r\n if (!ua && typeof navigator !== 'undefined') ua = navigator.userAgent\r\n if (ua && ua.headers && typeof ua.headers['user-agent'] === 'string') {\r\n ua = ua.headers['user-agent']\r\n }\r\n if (typeof ua !== 'string') return false\r\n\r\n var result = opts.tablet ? tabletRE.test(ua) : mobileRE.test(ua)\r\n\r\n if (\r\n !result &&\r\n opts.tablet &&\r\n opts.featureDetect &&\r\n navigator &&\r\n navigator.maxTouchPoints > 1 &&\r\n ua.indexOf('Macintosh') !== -1 &&\r\n ua.indexOf('Safari') !== -1\r\n ) {\r\n result = true\r\n }\r\n\r\n return result\r\n}\r\n","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\n\nfunction getClientPosition(elem) {\n var box;\n var x;\n var y;\n var doc = elem.ownerDocument;\n var body = doc.body;\n var docElem = doc && doc.documentElement; // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式\n\n box = elem.getBoundingClientRect(); // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop\n // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确\n // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin\n\n x = box.left;\n y = box.top; // In IE, most of the time, 2 extra pixels are added to the top and left\n // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and\n // IE6 standards mode, this border can be overridden by setting the\n // document element's border to zero -- thus, we cannot rely on the\n // offset always being 2 pixels.\n // In quirks mode, the offset can be determined by querying the body's\n // clientLeft/clientTop, but in standards mode, it is found by querying\n // the document element's clientLeft/clientTop. Since we already called\n // getClientBoundingRect we have already forced a reflow, so it is not\n // too expensive just to query them all.\n // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的\n // 窗口边框标准是设 documentElement ,quirks 时设置 body\n // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去\n // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置\n // 标准 ie 下 docElem.clientTop 就是 border-top\n // ie7 html 即窗口边框改变不了。永远为 2\n // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0\n\n x -= docElem.clientLeft || body.clientLeft || 0;\n y -= docElem.clientTop || body.clientTop || 0;\n return {\n left: x,\n top: y\n };\n}\n\nfunction getScroll(w, top) {\n var ret = w[\"page\".concat(top ? 'Y' : 'X', \"Offset\")];\n var method = \"scroll\".concat(top ? 'Top' : 'Left');\n\n if (typeof ret !== 'number') {\n var d = w.document; // ie6,7,8 standard mode\n\n ret = d.documentElement[method];\n\n if (typeof ret !== 'number') {\n // quirks mode\n ret = d.body[method];\n }\n }\n\n return ret;\n}\n\nfunction getScrollLeft(w) {\n return getScroll(w);\n}\n\nfunction getScrollTop(w) {\n return getScroll(w, true);\n}\n\nfunction getOffset(el) {\n var pos = getClientPosition(el);\n var doc = el.ownerDocument;\n var w = doc.defaultView || doc.parentWindow;\n pos.left += getScrollLeft(w);\n pos.top += getScrollTop(w);\n return pos;\n}\n\nfunction _getComputedStyle(elem, name, computedStyle_) {\n var val = '';\n var d = elem.ownerDocument;\n var computedStyle = computedStyle_ || d.defaultView.getComputedStyle(elem, null); // https://github.com/kissyteam/kissy/issues/61\n\n if (computedStyle) {\n val = computedStyle.getPropertyValue(name) || computedStyle[name];\n }\n\n return val;\n}\n\nvar _RE_NUM_NO_PX = new RegExp(\"^(\".concat(RE_NUM, \")(?!px)[a-z%]+$\"), 'i');\n\nvar RE_POS = /^(top|right|bottom|left)$/;\nvar CURRENT_STYLE = 'currentStyle';\nvar RUNTIME_STYLE = 'runtimeStyle';\nvar LEFT = 'left';\nvar PX = 'px';\n\nfunction _getComputedStyleIE(elem, name) {\n // currentStyle maybe null\n // http://msdn.microsoft.com/en-us/library/ms535231.aspx\n var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name]; // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值\n // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19\n // 在 ie 下不对,需要直接用 offset 方式\n // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了\n // From the awesome hack by Dean Edwards\n // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291\n // If we're not dealing with a regular pixel number\n // but a number that has a weird ending, we need to convert it to pixels\n // exclude left right for relativity\n\n if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {\n // Remember the original values\n var style = elem.style;\n var left = style[LEFT];\n var rsLeft = elem[RUNTIME_STYLE][LEFT]; // prevent flashing of content\n\n elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT]; // Put in the new values to get a computed value out\n\n style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;\n ret = style.pixelLeft + PX; // Revert the changed values\n\n style[LEFT] = left;\n elem[RUNTIME_STYLE][LEFT] = rsLeft;\n }\n\n return ret === '' ? 'auto' : ret;\n}\n\nvar getComputedStyleX;\n\nif (typeof window !== 'undefined') {\n getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction each(arr, fn) {\n for (var i = 0; i < arr.length; i++) {\n fn(arr[i]);\n }\n}\n\nfunction isBorderBoxFn(elem) {\n return getComputedStyleX(elem, 'boxSizing') === 'border-box';\n}\n\nvar BOX_MODELS = ['margin', 'border', 'padding'];\nvar CONTENT_INDEX = -1;\nvar PADDING_INDEX = 2;\nvar BORDER_INDEX = 1;\nvar MARGIN_INDEX = 0;\n\nfunction swap(elem, options, callback) {\n var old = {};\n var style = elem.style;\n var name; // Remember the old values, and insert the new ones\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n old[name] = style[name];\n style[name] = options[name];\n }\n }\n\n callback.call(elem); // Revert the old values\n\n for (name in options) {\n if (options.hasOwnProperty(name)) {\n style[name] = old[name];\n }\n }\n}\n\nfunction getPBMWidth(elem, props, which) {\n var value = 0;\n var prop;\n var j;\n var i;\n\n for (j = 0; j < props.length; j++) {\n prop = props[j];\n\n if (prop) {\n for (i = 0; i < which.length; i++) {\n var cssProp = void 0;\n\n if (prop === 'border') {\n cssProp = \"\".concat(prop + which[i], \"Width\");\n } else {\n cssProp = prop + which[i];\n }\n\n value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;\n }\n }\n }\n\n return value;\n}\n/**\n * A crude way of determining if an object is a window\n * @member util\n */\n\n\nfunction isWindow(obj) {\n // must use == for ie8\n\n /* eslint eqeqeq:0 */\n return obj != null && obj == obj.window;\n}\n\nvar domUtils = {};\neach(['Width', 'Height'], function (name) {\n domUtils[\"doc\".concat(name)] = function (refWin) {\n var d = refWin.document;\n return Math.max( // firefox chrome documentElement.scrollHeight< body.scrollHeight\n // ie standard mode : documentElement.scrollHeight> body.scrollHeight\n d.documentElement[\"scroll\".concat(name)], // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?\n d.body[\"scroll\".concat(name)], domUtils[\"viewport\".concat(name)](d));\n };\n\n domUtils[\"viewport\".concat(name)] = function (win) {\n // pc browser includes scrollbar in window.innerWidth\n var prop = \"client\".concat(name);\n var doc = win.document;\n var body = doc.body;\n var documentElement = doc.documentElement;\n var documentElementProp = documentElement[prop]; // 标准模式取 documentElement\n // backcompat 取 body\n\n return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;\n };\n});\n/*\n 得到元素的大小信息\n @param elem\n @param name\n @param {String} [extra] 'padding' : (css width) + padding\n 'border' : (css width) + padding + border\n 'margin' : (css width) + padding + border + margin\n */\n\nfunction getWH(elem, name, extra) {\n if (isWindow(elem)) {\n return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);\n } else if (elem.nodeType === 9) {\n return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);\n }\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n var borderBoxValue = name === 'width' ? elem.offsetWidth : elem.offsetHeight;\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n var cssBoxValue = 0;\n\n if (borderBoxValue == null || borderBoxValue <= 0) {\n borderBoxValue = undefined; // Fall back to computed then un computed css if necessary\n\n cssBoxValue = getComputedStyleX(elem, name);\n\n if (cssBoxValue == null || Number(cssBoxValue) < 0) {\n cssBoxValue = elem.style[name] || 0;\n } // Normalize '', auto, and prepare for extra\n\n\n cssBoxValue = parseFloat(cssBoxValue) || 0;\n }\n\n if (extra === undefined) {\n extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;\n }\n\n var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;\n var val = borderBoxValue || cssBoxValue;\n\n if (extra === CONTENT_INDEX) {\n if (borderBoxValueOrIsBorderBox) {\n return val - getPBMWidth(elem, ['border', 'padding'], which);\n }\n\n return cssBoxValue;\n }\n\n if (borderBoxValueOrIsBorderBox) {\n var padding = extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which) : getPBMWidth(elem, ['margin'], which);\n return val + (extra === BORDER_INDEX ? 0 : padding);\n }\n\n return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which);\n}\n\nvar cssShow = {\n position: 'absolute',\n visibility: 'hidden',\n display: 'block'\n}; // fix #119 : https://github.com/kissyteam/kissy/issues/119\n\nfunction getWHIgnoreDisplay(elem) {\n var val;\n var args = arguments; // in case elem is window\n // elem.offsetWidth === undefined\n\n if (elem.offsetWidth !== 0) {\n val = getWH.apply(undefined, args);\n } else {\n swap(elem, cssShow, function () {\n val = getWH.apply(undefined, args);\n });\n }\n\n return val;\n}\n\nfunction css(el, name, v) {\n var value = v;\n\n if (_typeof(name) === 'object') {\n for (var i in name) {\n if (name.hasOwnProperty(i)) {\n css(el, i, name[i]);\n }\n }\n\n return undefined;\n }\n\n if (typeof value !== 'undefined') {\n if (typeof value === 'number') {\n value += 'px';\n }\n\n el.style[name] = value;\n return undefined;\n }\n\n return getComputedStyleX(el, name);\n}\n\neach(['width', 'height'], function (name) {\n var first = name.charAt(0).toUpperCase() + name.slice(1);\n\n domUtils[\"outer\".concat(first)] = function (el, includeMargin) {\n return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);\n };\n\n var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n\n domUtils[name] = function (elem, val) {\n if (val !== undefined) {\n if (elem) {\n var computedStyle = getComputedStyleX(elem);\n var isBorderBox = isBorderBoxFn(elem);\n\n if (isBorderBox) {\n val += getPBMWidth(elem, ['padding', 'border'], which);\n }\n\n return css(elem, name, val);\n }\n\n return undefined;\n }\n\n return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);\n };\n}); // 设置 elem 相对 elem.ownerDocument 的坐标\n\nfunction setOffset(elem, offset) {\n // set position first, in-case top/left are set even on static elem\n if (css(elem, 'position') === 'static') {\n elem.style.position = 'relative';\n }\n\n var old = getOffset(elem);\n var ret = {};\n var current;\n var key;\n\n for (key in offset) {\n if (offset.hasOwnProperty(key)) {\n current = parseFloat(css(elem, key)) || 0;\n ret[key] = current + offset[key] - old[key];\n }\n }\n\n css(elem, ret);\n}\n\nvar util = _objectSpread2({\n getWindow: function getWindow(node) {\n var doc = node.ownerDocument || node;\n return doc.defaultView || doc.parentWindow;\n },\n offset: function offset(el, value) {\n if (typeof value !== 'undefined') {\n setOffset(el, value);\n } else {\n return getOffset(el);\n }\n },\n isWindow: isWindow,\n each: each,\n css: css,\n clone: function clone(obj) {\n var ret = {};\n\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) {\n ret[i] = obj[i];\n }\n }\n\n var overflow = obj.overflow;\n\n if (overflow) {\n for (var _i in obj) {\n if (obj.hasOwnProperty(_i)) {\n ret.overflow[_i] = obj.overflow[_i];\n }\n }\n }\n\n return ret;\n },\n scrollLeft: function scrollLeft(w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollLeft(w);\n }\n\n window.scrollTo(v, getScrollTop(w));\n } else {\n if (v === undefined) {\n return w.scrollLeft;\n }\n\n w.scrollLeft = v;\n }\n },\n scrollTop: function scrollTop(w, v) {\n if (isWindow(w)) {\n if (v === undefined) {\n return getScrollTop(w);\n }\n\n window.scrollTo(getScrollLeft(w), v);\n } else {\n if (v === undefined) {\n return w.scrollTop;\n }\n\n w.scrollTop = v;\n }\n },\n viewportWidth: 0,\n viewportHeight: 0\n}, domUtils);\n\nfunction scrollIntoView(elem, container, config) {\n config = config || {}; // document 归一化到 window\n\n if (container.nodeType === 9) {\n container = util.getWindow(container);\n }\n\n var allowHorizontalScroll = config.allowHorizontalScroll;\n var onlyScrollIfNeeded = config.onlyScrollIfNeeded;\n var alignWithTop = config.alignWithTop;\n var alignWithLeft = config.alignWithLeft;\n var offsetTop = config.offsetTop || 0;\n var offsetLeft = config.offsetLeft || 0;\n var offsetBottom = config.offsetBottom || 0;\n var offsetRight = config.offsetRight || 0;\n allowHorizontalScroll = allowHorizontalScroll === undefined ? true : allowHorizontalScroll;\n var isWin = util.isWindow(container);\n var elemOffset = util.offset(elem);\n var eh = util.outerHeight(elem);\n var ew = util.outerWidth(elem);\n var containerOffset;\n var ch;\n var cw;\n var containerScroll;\n var diffTop;\n var diffBottom;\n var win;\n var winScroll;\n var ww;\n var wh;\n\n if (isWin) {\n win = container;\n wh = util.height(win);\n ww = util.width(win);\n winScroll = {\n left: util.scrollLeft(win),\n top: util.scrollTop(win)\n }; // elem 相对 container 可视视窗的距离\n\n diffTop = {\n left: elemOffset.left - winScroll.left - offsetLeft,\n top: elemOffset.top - winScroll.top - offsetTop\n };\n diffBottom = {\n left: elemOffset.left + ew - (winScroll.left + ww) + offsetRight,\n top: elemOffset.top + eh - (winScroll.top + wh) + offsetBottom\n };\n containerScroll = winScroll;\n } else {\n containerOffset = util.offset(container);\n ch = container.clientHeight;\n cw = container.clientWidth;\n containerScroll = {\n left: container.scrollLeft,\n top: container.scrollTop\n }; // elem 相对 container 可视视窗的距离\n // 注意边框, offset 是边框到根节点\n\n diffTop = {\n left: elemOffset.left - (containerOffset.left + (parseFloat(util.css(container, 'borderLeftWidth')) || 0)) - offsetLeft,\n top: elemOffset.top - (containerOffset.top + (parseFloat(util.css(container, 'borderTopWidth')) || 0)) - offsetTop\n };\n diffBottom = {\n left: elemOffset.left + ew - (containerOffset.left + cw + (parseFloat(util.css(container, 'borderRightWidth')) || 0)) + offsetRight,\n top: elemOffset.top + eh - (containerOffset.top + ch + (parseFloat(util.css(container, 'borderBottomWidth')) || 0)) + offsetBottom\n };\n }\n\n if (diffTop.top < 0 || diffBottom.top > 0) {\n // 强制向上\n if (alignWithTop === true) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else if (alignWithTop === false) {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n } else {\n // 自动调整\n if (diffTop.top < 0) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithTop = alignWithTop === undefined ? true : !!alignWithTop;\n\n if (alignWithTop) {\n util.scrollTop(container, containerScroll.top + diffTop.top);\n } else {\n util.scrollTop(container, containerScroll.top + diffBottom.top);\n }\n }\n }\n\n if (allowHorizontalScroll) {\n if (diffTop.left < 0 || diffBottom.left > 0) {\n // 强制向上\n if (alignWithLeft === true) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else if (alignWithLeft === false) {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n } else {\n // 自动调整\n if (diffTop.left < 0) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n } else {\n if (!onlyScrollIfNeeded) {\n alignWithLeft = alignWithLeft === undefined ? true : !!alignWithLeft;\n\n if (alignWithLeft) {\n util.scrollLeft(container, containerScroll.left + diffTop.left);\n } else {\n util.scrollLeft(container, containerScroll.left + diffBottom.left);\n }\n }\n }\n }\n}\n\nexport default scrollIntoView;\n//# sourceMappingURL=index.js.map\n"],"sourceRoot":""}