index.js.map 80.1 KB
{"version":3,"file":"index.js","sources":["../dist-src/propertyUtils.js","../dist-src/utils.js","../dist-src/getOffsetParent.js","../dist-src/isAncestorFixed.js","../dist-src/getVisibleRectForElement.js","../dist-src/adjustForViewport.js","../dist-src/getRegion.js","../dist-src/getAlignOffset.js","../dist-src/getElFuturePos.js","../dist-src/align/align.js","../dist-src/align/alignElement.js","../dist-src/align/alignPoint.js"],"sourcesContent":["var vendorPrefix;\nvar jsCssMap = {\n  Webkit: '-webkit-',\n  Moz: '-moz-',\n  // IE did it wrong again ...\n  ms: '-ms-',\n  O: '-o-'\n};\n\nfunction getVendorPrefix() {\n  if (vendorPrefix !== undefined) {\n    return vendorPrefix;\n  }\n\n  vendorPrefix = '';\n  var style = document.createElement('p').style;\n  var testProp = 'Transform';\n\n  for (var key in jsCssMap) {\n    if (key + testProp in style) {\n      vendorPrefix = key;\n    }\n  }\n\n  return vendorPrefix;\n}\n\nfunction getTransitionName() {\n  return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"TransitionProperty\") : 'transitionProperty';\n}\n\nexport function getTransformName() {\n  return getVendorPrefix() ? \"\".concat(getVendorPrefix(), \"Transform\") : 'transform';\n}\nexport function setTransitionProperty(node, value) {\n  var name = getTransitionName();\n\n  if (name) {\n    node.style[name] = value;\n\n    if (name !== 'transitionProperty') {\n      node.style.transitionProperty = value;\n    }\n  }\n}\n\nfunction setTransform(node, value) {\n  var name = getTransformName();\n\n  if (name) {\n    node.style[name] = value;\n\n    if (name !== 'transform') {\n      node.style.transform = value;\n    }\n  }\n}\n\nexport function getTransitionProperty(node) {\n  return node.style.transitionProperty || node.style[getTransitionName()];\n}\nexport function getTransformXY(node) {\n  var style = window.getComputedStyle(node, null);\n  var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n  if (transform && transform !== 'none') {\n    var matrix = transform.replace(/[^0-9\\-.,]/g, '').split(',');\n    return {\n      x: parseFloat(matrix[12] || matrix[4], 0),\n      y: parseFloat(matrix[13] || matrix[5], 0)\n    };\n  }\n\n  return {\n    x: 0,\n    y: 0\n  };\n}\nvar matrix2d = /matrix\\((.*)\\)/;\nvar matrix3d = /matrix3d\\((.*)\\)/;\nexport function setTransformXY(node, xy) {\n  var style = window.getComputedStyle(node, null);\n  var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());\n\n  if (transform && transform !== 'none') {\n    var arr;\n    var match2d = transform.match(matrix2d);\n\n    if (match2d) {\n      match2d = match2d[1];\n      arr = match2d.split(',').map(function (item) {\n        return parseFloat(item, 10);\n      });\n      arr[4] = xy.x;\n      arr[5] = xy.y;\n      setTransform(node, \"matrix(\".concat(arr.join(','), \")\"));\n    } else {\n      var match3d = transform.match(matrix3d)[1];\n      arr = match3d.split(',').map(function (item) {\n        return parseFloat(item, 10);\n      });\n      arr[12] = xy.x;\n      arr[13] = xy.y;\n      setTransform(node, \"matrix3d(\".concat(arr.join(','), \")\"));\n    }\n  } else {\n    setTransform(node, \"translateX(\".concat(xy.x, \"px) translateY(\").concat(xy.y, \"px) translateZ(0)\"));\n  }\n}","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { setTransitionProperty, getTransitionProperty, getTransformXY, setTransformXY, getTransformName } from \"./propertyUtils.js\";\nvar RE_NUM = /[\\-+]?(?:\\d*\\.|)\\d+(?:[eE][\\-+]?\\d+|)/.source;\nvar getComputedStyleX; // https://stackoverflow.com/a/3485654/3040605\n\nfunction forceRelayout(elem) {\n  var originalStyle = elem.style.display;\n  elem.style.display = 'none';\n  elem.offsetHeight; // eslint-disable-line\n\n  elem.style.display = originalStyle;\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 = \"\".concat(value, \"px\");\n    }\n\n    el.style[name] = value;\n    return undefined;\n  }\n\n  return getComputedStyleX(el, name);\n}\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/**\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 !== undefined && obj == obj.window;\n}\n\nfunction getDocument(node) {\n  if (isWindow(node)) {\n    return node.document;\n  }\n\n  if (node.nodeType === 9) {\n    return node;\n  }\n\n  return node.ownerDocument;\n}\n\nfunction _getComputedStyle(elem, name, cs) {\n  var computedStyle = cs;\n  var val = '';\n  var d = getDocument(elem);\n  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\nif (typeof window !== 'undefined') {\n  getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;\n}\n\nfunction getOffsetDirection(dir, option) {\n  if (dir === 'left') {\n    return option.useCssRight ? 'right' : dir;\n  }\n\n  return option.useCssBottom ? 'bottom' : dir;\n}\n\nfunction oppositeOffsetDirection(dir) {\n  if (dir === 'left') {\n    return 'right';\n  } else if (dir === 'right') {\n    return 'left';\n  } else if (dir === 'top') {\n    return 'bottom';\n  } else if (dir === 'bottom') {\n    return 'top';\n  }\n} // 设置 elem 相对 elem.ownerDocument 的坐标\n\n\nfunction setLeftTop(elem, offset, option) {\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 presetH = -999;\n  var presetV = -999;\n  var horizontalProperty = getOffsetDirection('left', option);\n  var verticalProperty = getOffsetDirection('top', option);\n  var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);\n  var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);\n\n  if (horizontalProperty !== 'left') {\n    presetH = 999;\n  }\n\n  if (verticalProperty !== 'top') {\n    presetV = 999;\n  }\n\n  var originalTransition = '';\n  var originalOffset = getOffset(elem);\n\n  if ('left' in offset || 'top' in offset) {\n    originalTransition = getTransitionProperty(elem) || '';\n    setTransitionProperty(elem, 'none');\n  }\n\n  if ('left' in offset) {\n    elem.style[oppositeHorizontalProperty] = '';\n    elem.style[horizontalProperty] = \"\".concat(presetH, \"px\");\n  }\n\n  if ('top' in offset) {\n    elem.style[oppositeVerticalProperty] = '';\n    elem.style[verticalProperty] = \"\".concat(presetV, \"px\");\n  } // force relayout\n\n\n  forceRelayout(elem);\n  var old = getOffset(elem);\n  var originalStyle = {};\n\n  for (var key in offset) {\n    if (offset.hasOwnProperty(key)) {\n      var dir = getOffsetDirection(key, option);\n      var preset = key === 'left' ? presetH : presetV;\n      var off = originalOffset[key] - old[key];\n\n      if (dir === key) {\n        originalStyle[dir] = preset + off;\n      } else {\n        originalStyle[dir] = preset - off;\n      }\n    }\n  }\n\n  css(elem, originalStyle); // force relayout\n\n  forceRelayout(elem);\n\n  if ('left' in offset || 'top' in offset) {\n    setTransitionProperty(elem, originalTransition);\n  }\n\n  var ret = {};\n\n  for (var _key in offset) {\n    if (offset.hasOwnProperty(_key)) {\n      var _dir = getOffsetDirection(_key, option);\n\n      var _off = offset[_key] - originalOffset[_key];\n\n      if (_key === _dir) {\n        ret[_dir] = originalStyle[_dir] + _off;\n      } else {\n        ret[_dir] = originalStyle[_dir] - _off;\n      }\n    }\n  }\n\n  css(elem, ret);\n}\n\nfunction setTransform(elem, offset) {\n  var originalOffset = getOffset(elem);\n  var originalXY = getTransformXY(elem);\n  var resultXY = {\n    x: originalXY.x,\n    y: originalXY.y\n  };\n\n  if ('left' in offset) {\n    resultXY.x = originalXY.x + offset.left - originalOffset.left;\n  }\n\n  if ('top' in offset) {\n    resultXY.y = originalXY.y + offset.top - originalOffset.top;\n  }\n\n  setTransformXY(elem, resultXY);\n}\n\nfunction setOffset(elem, offset, option) {\n  if (option.ignoreShake) {\n    var oriOffset = getOffset(elem);\n    var oLeft = oriOffset.left.toFixed(0);\n    var oTop = oriOffset.top.toFixed(0);\n    var tLeft = offset.left.toFixed(0);\n    var tTop = offset.top.toFixed(0);\n\n    if (oLeft === tLeft && oTop === tTop) {\n      return;\n    }\n  }\n\n  if (option.useCssRight || option.useCssBottom) {\n    setLeftTop(elem, offset, option);\n  } else if (option.useCssTransform && getTransformName() in document.body.style) {\n    setTransform(elem, offset, option);\n  } else {\n    setLeftTop(elem, offset, option);\n  }\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).concat(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\nvar domUtils = {\n  getParent: function getParent(element) {\n    var parent = element;\n\n    do {\n      if (parent.nodeType === 11 && parent.host) {\n        parent = parent.host;\n      } else {\n        parent = parent.parentNode;\n      }\n    } while (parent && parent.nodeType !== 1 && parent.nodeType !== 9);\n\n    return parent;\n  }\n};\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, ex) {\n  var extra = ex;\n\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.getBoundingClientRect().width : elem.getBoundingClientRect().height;\n  var computedStyle = getComputedStyleX(elem);\n  var isBorderBox = isBorderBoxFn(elem, computedStyle);\n  var cssBoxValue = 0;\n\n  if (borderBoxValue === null || borderBoxValue === undefined || 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 || cssBoxValue === undefined || 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, computedStyle);\n    }\n\n    return cssBoxValue;\n  } else if (borderBoxValueOrIsBorderBox) {\n    if (extra === BORDER_INDEX) {\n      return val;\n    }\n\n    return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle));\n  }\n\n  return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);\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() {\n  for (var _len = arguments.length, args = new Array(_len), _key2 = 0; _key2 < _len; _key2++) {\n    args[_key2] = arguments[_key2];\n  }\n\n  var val;\n  var elem = args[0]; // 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\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, v) {\n    var val = v;\n\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, computedStyle);\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});\n\nfunction mix(to, from) {\n  for (var i in from) {\n    if (from.hasOwnProperty(i)) {\n      to[i] = from[i];\n    }\n  }\n\n  return to;\n}\n\nvar utils = {\n  getWindow: function getWindow(node) {\n    if (node && node.document && node.setTimeout) {\n      return node;\n    }\n\n    var doc = node.ownerDocument || node;\n    return doc.defaultView || doc.parentWindow;\n  },\n  getDocument: getDocument,\n  offset: function offset(el, value, option) {\n    if (typeof value !== 'undefined') {\n      setOffset(el, value, option || {});\n    } else {\n      return getOffset(el);\n    }\n  },\n  isWindow: isWindow,\n  each: each,\n  css: css,\n  clone: function clone(obj) {\n    var i;\n    var ret = {};\n\n    for (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 (i in obj) {\n        if (obj.hasOwnProperty(i)) {\n          ret.overflow[i] = obj.overflow[i];\n        }\n      }\n    }\n\n    return ret;\n  },\n  mix: mix,\n  getWindowScrollLeft: function getWindowScrollLeft(w) {\n    return getScrollLeft(w);\n  },\n  getWindowScrollTop: function getWindowScrollTop(w) {\n    return getScrollTop(w);\n  },\n  merge: function merge() {\n    var ret = {};\n\n    for (var i = 0; i < arguments.length; i++) {\n      utils.mix(ret, i < 0 || arguments.length <= i ? undefined : arguments[i]);\n    }\n\n    return ret;\n  },\n  viewportWidth: 0,\n  viewportHeight: 0\n};\nmix(utils, domUtils);\nexport default utils;","import utils from \"./utils.js\";\n/**\n * 得到会导致元素显示不全的祖先元素\n */\n\nvar getParent = utils.getParent;\n\nfunction getOffsetParent(element) {\n  if (utils.isWindow(element) || element.nodeType === 9) {\n    return null;\n  } // ie 这个也不是完全可行\n\n  /*\n   <div style=\"width: 50px;height: 100px;overflow: hidden\">\n   <div style=\"width: 50px;height: 100px;position: relative;\" id=\"d6\">\n   元素 6 高 100px 宽 50px<br/>\n   </div>\n   </div>\n   */\n  // element.offsetParent does the right thing in ie7 and below. Return parent with layout!\n  //  In other browsers it only includes elements with position absolute, relative or\n  // fixed, not elements with overflow set to auto or scroll.\n  //        if (UA.ie && ieMode < 8) {\n  //            return element.offsetParent;\n  //        }\n  // 统一的 offsetParent 方法\n\n\n  var doc = utils.getDocument(element);\n  var body = doc.body;\n  var parent;\n  var positionStyle = utils.css(element, 'position');\n  var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';\n\n  if (!skipStatic) {\n    return element.nodeName.toLowerCase() === 'html' ? null : getParent(element);\n  }\n\n  for (parent = getParent(element); parent && parent !== body && parent.nodeType !== 9; parent = getParent(parent)) {\n    positionStyle = utils.css(parent, 'position');\n\n    if (positionStyle !== 'static') {\n      return parent;\n    }\n  }\n\n  return null;\n}\n\nexport default getOffsetParent;","import utils from \"./utils.js\";\nvar getParent = utils.getParent;\nexport default function isAncestorFixed(element) {\n  if (utils.isWindow(element) || element.nodeType === 9) {\n    return false;\n  }\n\n  var doc = utils.getDocument(element);\n  var body = doc.body;\n  var parent = null;\n\n  for (parent = getParent(element); parent && parent !== body; parent = getParent(parent)) {\n    var positionStyle = utils.css(parent, 'position');\n\n    if (positionStyle === 'fixed') {\n      return true;\n    }\n  }\n\n  return false;\n}","import utils from \"./utils.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport isAncestorFixed from \"./isAncestorFixed.js\";\n/**\n * 获得元素的显示部分的区域\n */\n\nfunction getVisibleRectForElement(element, alwaysByViewport) {\n  var visibleRect = {\n    left: 0,\n    right: Infinity,\n    top: 0,\n    bottom: Infinity\n  };\n  var el = getOffsetParent(element);\n  var doc = utils.getDocument(element);\n  var win = doc.defaultView || doc.parentWindow;\n  var body = doc.body;\n  var documentElement = doc.documentElement; // Determine the size of the visible rect by climbing the dom accounting for\n  // all scrollable containers.\n\n  while (el) {\n    // clientWidth is zero for inline block elements in ie.\n    if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) && // body may have overflow set on it, yet we still get the entire\n    // viewport. In some browsers, el.offsetParent may be\n    // document.documentElement, so check for that too.\n    el !== body && el !== documentElement && utils.css(el, 'overflow') !== 'visible') {\n      var pos = utils.offset(el); // add border\n\n      pos.left += el.clientLeft;\n      pos.top += el.clientTop;\n      visibleRect.top = Math.max(visibleRect.top, pos.top);\n      visibleRect.right = Math.min(visibleRect.right, // consider area without scrollBar\n      pos.left + el.clientWidth);\n      visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);\n      visibleRect.left = Math.max(visibleRect.left, pos.left);\n    } else if (el === body || el === documentElement) {\n      break;\n    }\n\n    el = getOffsetParent(el);\n  } // Set element position to fixed\n  // make sure absolute element itself don't affect it's visible area\n  // https://github.com/ant-design/ant-design/issues/7601\n\n\n  var originalPosition = null;\n\n  if (!utils.isWindow(element) && element.nodeType !== 9) {\n    originalPosition = element.style.position;\n    var position = utils.css(element, 'position');\n\n    if (position === 'absolute') {\n      element.style.position = 'fixed';\n    }\n  }\n\n  var scrollX = utils.getWindowScrollLeft(win);\n  var scrollY = utils.getWindowScrollTop(win);\n  var viewportWidth = utils.viewportWidth(win);\n  var viewportHeight = utils.viewportHeight(win);\n  var documentWidth = documentElement.scrollWidth;\n  var documentHeight = documentElement.scrollHeight; // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.\n  // We should cut this ourself.\n\n  var bodyStyle = window.getComputedStyle(body);\n\n  if (bodyStyle.overflowX === 'hidden') {\n    documentWidth = win.innerWidth;\n  }\n\n  if (bodyStyle.overflowY === 'hidden') {\n    documentHeight = win.innerHeight;\n  } // Reset element position after calculate the visible area\n\n\n  if (element.style) {\n    element.style.position = originalPosition;\n  }\n\n  if (alwaysByViewport || isAncestorFixed(element)) {\n    // Clip by viewport's size.\n    visibleRect.left = Math.max(visibleRect.left, scrollX);\n    visibleRect.top = Math.max(visibleRect.top, scrollY);\n    visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);\n    visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);\n  } else {\n    // Clip by document's size.\n    var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);\n    visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);\n    var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);\n    visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);\n  }\n\n  return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;\n}\n\nexport default getVisibleRectForElement;","import utils from \"./utils.js\";\n\nfunction adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {\n  var pos = utils.clone(elFuturePos);\n  var size = {\n    width: elRegion.width,\n    height: elRegion.height\n  };\n\n  if (overflow.adjustX && pos.left < visibleRect.left) {\n    pos.left = visibleRect.left;\n  } // Left edge inside and right edge outside viewport, try to resize it.\n\n\n  if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {\n    size.width -= pos.left + size.width - visibleRect.right;\n  } // Right edge outside viewport, try to move it.\n\n\n  if (overflow.adjustX && pos.left + size.width > visibleRect.right) {\n    // 保证左边界和可视区域左边界对齐\n    pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);\n  } // Top edge outside viewport, try to move it.\n\n\n  if (overflow.adjustY && pos.top < visibleRect.top) {\n    pos.top = visibleRect.top;\n  } // Top edge inside and bottom edge outside viewport, try to resize it.\n\n\n  if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {\n    size.height -= pos.top + size.height - visibleRect.bottom;\n  } // Bottom edge outside viewport, try to move it.\n\n\n  if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {\n    // 保证上边界和可视区域上边界对齐\n    pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);\n  }\n\n  return utils.mix(pos, size);\n}\n\nexport default adjustForViewport;","import utils from \"./utils.js\";\n\nfunction getRegion(node) {\n  var offset;\n  var w;\n  var h;\n\n  if (!utils.isWindow(node) && node.nodeType !== 9) {\n    offset = utils.offset(node);\n    w = utils.outerWidth(node);\n    h = utils.outerHeight(node);\n  } else {\n    var win = utils.getWindow(node);\n    offset = {\n      left: utils.getWindowScrollLeft(win),\n      top: utils.getWindowScrollTop(win)\n    };\n    w = utils.viewportWidth(win);\n    h = utils.viewportHeight(win);\n  }\n\n  offset.width = w;\n  offset.height = h;\n  return offset;\n}\n\nexport default getRegion;","/**\n * 获取 node 上的 align 对齐点 相对于页面的坐标\n */\nfunction getAlignOffset(region, align) {\n  var V = align.charAt(0);\n  var H = align.charAt(1);\n  var w = region.width;\n  var h = region.height;\n  var x = region.left;\n  var y = region.top;\n\n  if (V === 'c') {\n    y += h / 2;\n  } else if (V === 'b') {\n    y += h;\n  }\n\n  if (H === 'c') {\n    x += w / 2;\n  } else if (H === 'r') {\n    x += w;\n  }\n\n  return {\n    left: x,\n    top: y\n  };\n}\n\nexport default getAlignOffset;","import getAlignOffset from \"./getAlignOffset.js\";\n\nfunction getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {\n  var p1 = getAlignOffset(refNodeRegion, points[1]);\n  var p2 = getAlignOffset(elRegion, points[0]);\n  var diff = [p2.left - p1.left, p2.top - p1.top];\n  return {\n    left: Math.round(elRegion.left - diff[0] + offset[0] - targetOffset[0]),\n    top: Math.round(elRegion.top - diff[1] + offset[1] - targetOffset[1])\n  };\n}\n\nexport default getElFuturePos;","/**\n * align dom node flexibly\n * @author yiminghe@gmail.com\n */\nimport utils from \"../utils.js\";\nimport getVisibleRectForElement from \"../getVisibleRectForElement.js\";\nimport adjustForViewport from \"../adjustForViewport.js\";\nimport getRegion from \"../getRegion.js\";\nimport getElFuturePos from \"../getElFuturePos.js\"; // http://yiminghe.iteye.com/blog/1124720\n\nfunction isFailX(elFuturePos, elRegion, visibleRect) {\n  return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;\n}\n\nfunction isFailY(elFuturePos, elRegion, visibleRect) {\n  return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;\n}\n\nfunction isCompleteFailX(elFuturePos, elRegion, visibleRect) {\n  return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;\n}\n\nfunction isCompleteFailY(elFuturePos, elRegion, visibleRect) {\n  return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;\n}\n\nfunction flip(points, reg, map) {\n  var ret = [];\n  utils.each(points, function (p) {\n    ret.push(p.replace(reg, function (m) {\n      return map[m];\n    }));\n  });\n  return ret;\n}\n\nfunction flipOffset(offset, index) {\n  offset[index] = -offset[index];\n  return offset;\n}\n\nfunction convertOffset(str, offsetLen) {\n  var n;\n\n  if (/%$/.test(str)) {\n    n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;\n  } else {\n    n = parseInt(str, 10);\n  }\n\n  return n || 0;\n}\n\nfunction normalizeOffset(offset, el) {\n  offset[0] = convertOffset(offset[0], el.width);\n  offset[1] = convertOffset(offset[1], el.height);\n}\n/**\n * @param el\n * @param tgtRegion 参照节点所占的区域: { left, top, width, height }\n * @param align\n */\n\n\nfunction doAlign(el, tgtRegion, align, isTgtRegionVisible) {\n  var points = align.points;\n  var offset = align.offset || [0, 0];\n  var targetOffset = align.targetOffset || [0, 0];\n  var overflow = align.overflow;\n  var source = align.source || el;\n  offset = [].concat(offset);\n  targetOffset = [].concat(targetOffset);\n  overflow = overflow || {};\n  var newOverflowCfg = {};\n  var fail = 0;\n  var alwaysByViewport = !!(overflow && overflow.alwaysByViewport); // 当前节点可以被放置的显示区域\n\n  var visibleRect = getVisibleRectForElement(source, alwaysByViewport); // 当前节点所占的区域, left/top/width/height\n\n  var elRegion = getRegion(source); // 将 offset 转换成数值,支持百分比\n\n  normalizeOffset(offset, elRegion);\n  normalizeOffset(targetOffset, tgtRegion); // 当前节点将要被放置的位置\n\n  var elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset); // 当前节点将要所处的区域\n\n  var newElRegion = utils.merge(elRegion, elFuturePos); // 如果可视区域不能完全放置当前节点时允许调整\n\n  if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {\n    if (overflow.adjustX) {\n      // 如果横向不能放下\n      if (isFailX(elFuturePos, elRegion, visibleRect)) {\n        // 对齐位置反下\n        var newPoints = flip(points, /[lr]/gi, {\n          l: 'r',\n          r: 'l'\n        }); // 偏移量也反下\n\n        var newOffset = flipOffset(offset, 0);\n        var newTargetOffset = flipOffset(targetOffset, 0);\n        var newElFuturePos = getElFuturePos(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);\n\n        if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {\n          fail = 1;\n          points = newPoints;\n          offset = newOffset;\n          targetOffset = newTargetOffset;\n        }\n      }\n    }\n\n    if (overflow.adjustY) {\n      // 如果纵向不能放下\n      if (isFailY(elFuturePos, elRegion, visibleRect)) {\n        // 对齐位置反下\n        var _newPoints = flip(points, /[tb]/gi, {\n          t: 'b',\n          b: 't'\n        }); // 偏移量也反下\n\n\n        var _newOffset = flipOffset(offset, 1);\n\n        var _newTargetOffset = flipOffset(targetOffset, 1);\n\n        var _newElFuturePos = getElFuturePos(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);\n\n        if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {\n          fail = 1;\n          points = _newPoints;\n          offset = _newOffset;\n          targetOffset = _newTargetOffset;\n        }\n      }\n    } // 如果失败,重新计算当前节点将要被放置的位置\n\n\n    if (fail) {\n      elFuturePos = getElFuturePos(elRegion, tgtRegion, points, offset, targetOffset);\n      utils.mix(newElRegion, elFuturePos);\n    }\n\n    var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);\n    var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect); // 检查反下后的位置是否可以放下了,如果仍然放不下:\n    // 1. 复原修改过的定位参数\n\n    if (isStillFailX || isStillFailY) {\n      var _newPoints2 = points; // 重置对应部分的翻转逻辑\n\n      if (isStillFailX) {\n        _newPoints2 = flip(points, /[lr]/gi, {\n          l: 'r',\n          r: 'l'\n        });\n      }\n\n      if (isStillFailY) {\n        _newPoints2 = flip(points, /[tb]/gi, {\n          t: 'b',\n          b: 't'\n        });\n      }\n\n      points = _newPoints2;\n      offset = align.offset || [0, 0];\n      targetOffset = align.targetOffset || [0, 0];\n    } // 2. 只有指定了可以调整当前方向才调整\n\n\n    newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;\n    newOverflowCfg.adjustY = overflow.adjustY && isStillFailY; // 确实要调整,甚至可能会调整高度宽度\n\n    if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {\n      newElRegion = adjustForViewport(elFuturePos, elRegion, visibleRect, newOverflowCfg);\n    }\n  } // need judge to in case set fixed with in css on height auto element\n\n\n  if (newElRegion.width !== elRegion.width) {\n    utils.css(source, 'width', utils.width(source) + newElRegion.width - elRegion.width);\n  }\n\n  if (newElRegion.height !== elRegion.height) {\n    utils.css(source, 'height', utils.height(source) + newElRegion.height - elRegion.height);\n  } // https://github.com/kissyteam/kissy/issues/190\n  // 相对于屏幕位置没变,而 left/top 变了\n  // 例如 <div 'relative'><el absolute></div>\n\n\n  utils.offset(source, {\n    left: newElRegion.left,\n    top: newElRegion.top\n  }, {\n    useCssRight: align.useCssRight,\n    useCssBottom: align.useCssBottom,\n    useCssTransform: align.useCssTransform,\n    ignoreShake: align.ignoreShake\n  });\n  return {\n    points: points,\n    offset: offset,\n    targetOffset: targetOffset,\n    overflow: newOverflowCfg\n  };\n}\n\nexport default doAlign;\n/**\n *  2012-04-26 yiminghe@gmail.com\n *   - 优化智能对齐算法\n *   - 慎用 resizeXX\n *\n *  2011-07-13 yiminghe@gmail.com note:\n *   - 增加智能对齐,以及大小调整选项\n **/","import doAlign from \"./align.js\";\nimport getOffsetParent from \"../getOffsetParent.js\";\nimport getVisibleRectForElement from \"../getVisibleRectForElement.js\";\nimport getRegion from \"../getRegion.js\";\n\nfunction isOutOfVisibleRect(target, alwaysByViewport) {\n  var visibleRect = getVisibleRectForElement(target, alwaysByViewport);\n  var targetRegion = getRegion(target);\n  return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;\n}\n\nfunction alignElement(el, refNode, align) {\n  var target = align.target || refNode;\n  var refNodeRegion = getRegion(target);\n  var isTargetNotOutOfVisible = !isOutOfVisibleRect(target, align.overflow && align.overflow.alwaysByViewport);\n  return doAlign(el, refNodeRegion, align, isTargetNotOutOfVisible);\n}\n\nalignElement.__getOffsetParent = getOffsetParent;\nalignElement.__getVisibleRectForElement = getVisibleRectForElement;\nexport default alignElement;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport utils from \"../utils.js\";\nimport doAlign from \"./align.js\";\n/**\n * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.\n * If client position provided, will internal convert to page position.\n */\n\nfunction alignPoint(el, tgtPoint, align) {\n  var pageX;\n  var pageY;\n  var doc = utils.getDocument(el);\n  var win = doc.defaultView || doc.parentWindow;\n  var scrollX = utils.getWindowScrollLeft(win);\n  var scrollY = utils.getWindowScrollTop(win);\n  var viewportWidth = utils.viewportWidth(win);\n  var viewportHeight = utils.viewportHeight(win);\n\n  if ('pageX' in tgtPoint) {\n    pageX = tgtPoint.pageX;\n  } else {\n    pageX = scrollX + tgtPoint.clientX;\n  }\n\n  if ('pageY' in tgtPoint) {\n    pageY = tgtPoint.pageY;\n  } else {\n    pageY = scrollY + tgtPoint.clientY;\n  }\n\n  var tgtRegion = {\n    left: pageX,\n    top: pageY,\n    width: 0,\n    height: 0\n  };\n  var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight; // Provide default target point\n\n  var points = [align.points[0], 'cc'];\n  return doAlign(el, tgtRegion, _objectSpread({}, align, {\n    points: points\n  }), pointInView);\n}\n\nexport default alignPoint;"],"names":["vendorPrefix","jsCssMap","Webkit","Moz","ms","O","getVendorPrefix","undefined","style","document","createElement","testProp","key","getTransitionName","concat","getTransformName","setTransitionProperty","node","value","name","transitionProperty","setTransform","transform","getTransitionProperty","getTransformXY","window","getComputedStyle","getPropertyValue","matrix","replace","split","x","parseFloat","y","matrix2d","matrix3d","setTransformXY","xy","arr","match2d","match","map","item","join","match3d","_typeof","obj","Symbol","iterator","constructor","prototype","RE_NUM","source","getComputedStyleX","forceRelayout","elem","originalStyle","display","offsetHeight","css","el","v","i","hasOwnProperty","getClientPosition","box","doc","ownerDocument","body","docElem","documentElement","getBoundingClientRect","left","top","clientLeft","clientTop","getScroll","w","ret","method","d","getScrollLeft","getScrollTop","getOffset","pos","defaultView","parentWindow","isWindow","getDocument","nodeType","_getComputedStyle","cs","computedStyle","val","_RE_NUM_NO_PX","RegExp","RE_POS","CURRENT_STYLE","RUNTIME_STYLE","LEFT","PX","_getComputedStyleIE","test","rsLeft","pixelLeft","getOffsetDirection","dir","option","useCssRight","useCssBottom","oppositeOffsetDirection","setLeftTop","offset","position","presetH","presetV","horizontalProperty","verticalProperty","oppositeHorizontalProperty","oppositeVerticalProperty","originalTransition","originalOffset","old","preset","off","_key","_dir","_off","originalXY","resultXY","setOffset","ignoreShake","oriOffset","oLeft","toFixed","oTop","tLeft","tTop","useCssTransform","each","fn","length","isBorderBoxFn","BOX_MODELS","CONTENT_INDEX","PADDING_INDEX","BORDER_INDEX","MARGIN_INDEX","swap","options","callback","call","getPBMWidth","props","which","prop","j","cssProp","domUtils","getParent","element","parent","host","parentNode","refWin","Math","max","win","documentElementProp","compatMode","getWH","ex","extra","viewportWidth","viewportHeight","docWidth","docHeight","borderBoxValue","width","height","isBorderBox","cssBoxValue","Number","borderBoxValueOrIsBorderBox","slice","cssShow","visibility","getWHIgnoreDisplay","_len","arguments","args","Array","_key2","offsetWidth","apply","first","charAt","toUpperCase","includeMargin","mix","to","from","utils","getWindow","setTimeout","clone","overflow","getWindowScrollLeft","getWindowScrollTop","merge","getOffsetParent","positionStyle","skipStatic","nodeName","toLowerCase","isAncestorFixed","getVisibleRectForElement","alwaysByViewport","visibleRect","right","Infinity","bottom","navigator","userAgent","indexOf","clientWidth","min","clientHeight","originalPosition","scrollX","scrollY","documentWidth","scrollWidth","documentHeight","scrollHeight","bodyStyle","overflowX","innerWidth","overflowY","innerHeight","maxVisibleWidth","maxVisibleHeight","adjustForViewport","elFuturePos","elRegion","size","adjustX","resizeWidth","adjustY","resizeHeight","getRegion","h","outerWidth","outerHeight","getAlignOffset","region","align","V","H","getElFuturePos","refNodeRegion","points","targetOffset","p1","p2","diff","round","isFailX","isFailY","isCompleteFailX","isCompleteFailY","flip","reg","p","push","m","flipOffset","index","convertOffset","str","offsetLen","n","parseInt","substring","normalizeOffset","doAlign","tgtRegion","isTgtRegionVisible","newOverflowCfg","fail","newElRegion","newPoints","l","r","newOffset","newTargetOffset","newElFuturePos","_newPoints","t","b","_newOffset","_newTargetOffset","_newElFuturePos","isStillFailX","isStillFailY","_newPoints2","isOutOfVisibleRect","target","targetRegion","alignElement","refNode","isTargetNotOutOfVisible","__getOffsetParent","__getVisibleRectForElement","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","configurable","writable","alignPoint","tgtPoint","pageX","pageY","clientX","clientY","pointInView"],"mappings":"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"}