084f3f6b9b4561f033e5d61a5f4ed663.json 29.9 KB
{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/createSuper\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Affix from '../affix';\nimport { ConfigContext } from '../config-provider';\nimport scrollTo from '../_util/scrollTo';\nimport getScroll from '../_util/getScroll';\nimport AnchorContext from './context';\n\nfunction getDefaultContainer() {\n  return window;\n}\n\nfunction getOffsetTop(element, container) {\n  if (!element.getClientRects().length) {\n    return 0;\n  }\n\n  var rect = element.getBoundingClientRect();\n\n  if (rect.width || rect.height) {\n    if (container === window) {\n      container = element.ownerDocument.documentElement;\n      return rect.top - container.clientTop;\n    }\n\n    return rect.top - container.getBoundingClientRect().top;\n  }\n\n  return rect.top;\n}\n\nvar sharpMatcherRegx = /#(\\S+)$/;\n\nvar Anchor = /*#__PURE__*/function (_React$Component) {\n  _inherits(Anchor, _React$Component);\n\n  var _super = _createSuper(Anchor);\n\n  function Anchor() {\n    var _this;\n\n    _classCallCheck(this, Anchor);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      activeLink: null\n    };\n    _this.wrapperRef = /*#__PURE__*/React.createRef();\n    _this.links = []; // Context\n\n    _this.registerLink = function (link) {\n      if (!_this.links.includes(link)) {\n        _this.links.push(link);\n      }\n    };\n\n    _this.unregisterLink = function (link) {\n      var index = _this.links.indexOf(link);\n\n      if (index !== -1) {\n        _this.links.splice(index, 1);\n      }\n    };\n\n    _this.getContainer = function () {\n      var getTargetContainer = _this.context.getTargetContainer;\n      var getContainer = _this.props.getContainer;\n      var getFunc = getContainer || getTargetContainer || getDefaultContainer;\n      return getFunc();\n    };\n\n    _this.handleScrollTo = function (link) {\n      var _this$props = _this.props,\n          offsetTop = _this$props.offsetTop,\n          targetOffset = _this$props.targetOffset;\n\n      _this.setCurrentActiveLink(link);\n\n      var container = _this.getContainer();\n\n      var scrollTop = getScroll(container, true);\n      var sharpLinkMatch = sharpMatcherRegx.exec(link);\n\n      if (!sharpLinkMatch) {\n        return;\n      }\n\n      var targetElement = document.getElementById(sharpLinkMatch[1]);\n\n      if (!targetElement) {\n        return;\n      }\n\n      var eleOffsetTop = getOffsetTop(targetElement, container);\n      var y = scrollTop + eleOffsetTop;\n      y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;\n      _this.animating = true;\n      scrollTo(y, {\n        callback: function callback() {\n          _this.animating = false;\n        },\n        getContainer: _this.getContainer\n      });\n    };\n\n    _this.saveInkNode = function (node) {\n      _this.inkNode = node;\n    };\n\n    _this.setCurrentActiveLink = function (link) {\n      var activeLink = _this.state.activeLink;\n      var onChange = _this.props.onChange;\n\n      if (activeLink !== link) {\n        _this.setState({\n          activeLink: link\n        });\n\n        if (onChange) {\n          onChange(link);\n        }\n      }\n    };\n\n    _this.handleScroll = function () {\n      if (_this.animating) {\n        return;\n      }\n\n      var _this$props2 = _this.props,\n          offsetTop = _this$props2.offsetTop,\n          bounds = _this$props2.bounds,\n          targetOffset = _this$props2.targetOffset;\n\n      var currentActiveLink = _this.getCurrentAnchor(targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);\n\n      _this.setCurrentActiveLink(currentActiveLink);\n    };\n\n    _this.updateInk = function () {\n      var _assertThisInitialize = _assertThisInitialized(_this),\n          prefixCls = _assertThisInitialize.prefixCls,\n          wrapperRef = _assertThisInitialize.wrapperRef;\n\n      var anchorNode = wrapperRef.current;\n      var linkNode = anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.getElementsByClassName(\"\".concat(prefixCls, \"-link-title-active\"))[0];\n\n      if (linkNode) {\n        _this.inkNode.style.top = \"\".concat(linkNode.offsetTop + linkNode.clientHeight / 2 - 4.5, \"px\");\n      }\n    };\n\n    _this.render = function () {\n      var _this$context = _this.context,\n          getPrefixCls = _this$context.getPrefixCls,\n          direction = _this$context.direction;\n      var _this$props3 = _this.props,\n          customizePrefixCls = _this$props3.prefixCls,\n          _this$props3$classNam = _this$props3.className,\n          className = _this$props3$classNam === void 0 ? '' : _this$props3$classNam,\n          style = _this$props3.style,\n          offsetTop = _this$props3.offsetTop,\n          affix = _this$props3.affix,\n          showInkInFixed = _this$props3.showInkInFixed,\n          children = _this$props3.children;\n      var activeLink = _this.state.activeLink;\n      var prefixCls = getPrefixCls('anchor', customizePrefixCls); // To support old version react.\n      // Have to add prefixCls on the instance.\n      // https://github.com/facebook/react/issues/12397\n\n      _this.prefixCls = prefixCls;\n      var inkClass = classNames(\"\".concat(prefixCls, \"-ink-ball\"), {\n        visible: activeLink\n      });\n      var wrapperClass = classNames(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n      var anchorClass = classNames(prefixCls, {\n        fixed: !affix && !showInkInFixed\n      });\n\n      var wrapperStyle = _extends({\n        maxHeight: offsetTop ? \"calc(100vh - \".concat(offsetTop, \"px)\") : '100vh'\n      }, style);\n\n      var anchorContent = /*#__PURE__*/React.createElement(\"div\", {\n        ref: _this.wrapperRef,\n        className: wrapperClass,\n        style: wrapperStyle\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: anchorClass\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-ink\")\n      }, /*#__PURE__*/React.createElement(\"span\", {\n        className: inkClass,\n        ref: _this.saveInkNode\n      })), children));\n      return /*#__PURE__*/React.createElement(AnchorContext.Provider, {\n        value: {\n          registerLink: _this.registerLink,\n          unregisterLink: _this.unregisterLink,\n          activeLink: _this.state.activeLink,\n          scrollTo: _this.handleScrollTo,\n          onClick: _this.props.onClick\n        }\n      }, !affix ? anchorContent : /*#__PURE__*/React.createElement(Affix, {\n        offsetTop: offsetTop,\n        target: _this.getContainer\n      }, anchorContent));\n    };\n\n    return _this;\n  }\n\n  _createClass(Anchor, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.scrollContainer = this.getContainer();\n      this.scrollEvent = addEventListener(this.scrollContainer, 'scroll', this.handleScroll);\n      this.handleScroll();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      if (this.scrollEvent) {\n        var currentContainer = this.getContainer();\n\n        if (this.scrollContainer !== currentContainer) {\n          this.scrollContainer = currentContainer;\n          this.scrollEvent.remove();\n          this.scrollEvent = addEventListener(this.scrollContainer, 'scroll', this.handleScroll);\n          this.handleScroll();\n        }\n      }\n\n      this.updateInk();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this.scrollEvent) {\n        this.scrollEvent.remove();\n      }\n    }\n  }, {\n    key: \"getCurrentAnchor\",\n    value: function getCurrentAnchor() {\n      var offsetTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n      var bounds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n      var getCurrentAnchor = this.props.getCurrentAnchor;\n\n      if (typeof getCurrentAnchor === 'function') {\n        return getCurrentAnchor();\n      }\n\n      var linkSections = [];\n      var container = this.getContainer();\n      this.links.forEach(function (link) {\n        var sharpLinkMatch = sharpMatcherRegx.exec(link.toString());\n\n        if (!sharpLinkMatch) {\n          return;\n        }\n\n        var target = document.getElementById(sharpLinkMatch[1]);\n\n        if (target) {\n          var top = getOffsetTop(target, container);\n\n          if (top < offsetTop + bounds) {\n            linkSections.push({\n              link: link,\n              top: top\n            });\n          }\n        }\n      });\n\n      if (linkSections.length) {\n        var maxSection = linkSections.reduce(function (prev, curr) {\n          return curr.top > prev.top ? curr : prev;\n        });\n        return maxSection.link;\n      }\n\n      return '';\n    }\n  }]);\n\n  return Anchor;\n}(React.Component);\n\nexport { Anchor as default };\nAnchor.defaultProps = {\n  affix: true,\n  showInkInFixed: false\n};\nAnchor.contextType = ConfigContext;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/antd/es/anchor/Anchor.js"],"names":["_extends","_defineProperty","_classCallCheck","_createClass","_assertThisInitialized","_inherits","_createSuper","React","classNames","addEventListener","Affix","ConfigContext","scrollTo","getScroll","AnchorContext","getDefaultContainer","window","getOffsetTop","element","container","getClientRects","length","rect","getBoundingClientRect","width","height","ownerDocument","documentElement","top","clientTop","sharpMatcherRegx","Anchor","_React$Component","_super","_this","apply","arguments","state","activeLink","wrapperRef","createRef","links","registerLink","link","includes","push","unregisterLink","index","indexOf","splice","getContainer","getTargetContainer","context","props","getFunc","handleScrollTo","_this$props","offsetTop","targetOffset","setCurrentActiveLink","scrollTop","sharpLinkMatch","exec","targetElement","document","getElementById","eleOffsetTop","y","undefined","animating","callback","saveInkNode","node","inkNode","onChange","setState","handleScroll","_this$props2","bounds","currentActiveLink","getCurrentAnchor","updateInk","_assertThisInitialize","prefixCls","anchorNode","current","linkNode","getElementsByClassName","concat","style","clientHeight","render","_this$context","getPrefixCls","direction","_this$props3","customizePrefixCls","_this$props3$classNam","className","affix","showInkInFixed","children","inkClass","visible","wrapperClass","anchorClass","fixed","wrapperStyle","maxHeight","anchorContent","createElement","ref","Provider","value","onClick","target","key","componentDidMount","scrollContainer","scrollEvent","componentDidUpdate","currentContainer","remove","componentWillUnmount","linkSections","forEach","toString","maxSection","reduce","prev","curr","Component","default","defaultProps","contextType"],"mappings":"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","sourcesContent":["import _extends from \"@babel/runtime/helpers/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/createSuper\";\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport addEventListener from \"rc-util/es/Dom/addEventListener\";\nimport Affix from '../affix';\nimport { ConfigContext } from '../config-provider';\nimport scrollTo from '../_util/scrollTo';\nimport getScroll from '../_util/getScroll';\nimport AnchorContext from './context';\n\nfunction getDefaultContainer() {\n  return window;\n}\n\nfunction getOffsetTop(element, container) {\n  if (!element.getClientRects().length) {\n    return 0;\n  }\n\n  var rect = element.getBoundingClientRect();\n\n  if (rect.width || rect.height) {\n    if (container === window) {\n      container = element.ownerDocument.documentElement;\n      return rect.top - container.clientTop;\n    }\n\n    return rect.top - container.getBoundingClientRect().top;\n  }\n\n  return rect.top;\n}\n\nvar sharpMatcherRegx = /#(\\S+)$/;\n\nvar Anchor = /*#__PURE__*/function (_React$Component) {\n  _inherits(Anchor, _React$Component);\n\n  var _super = _createSuper(Anchor);\n\n  function Anchor() {\n    var _this;\n\n    _classCallCheck(this, Anchor);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      activeLink: null\n    };\n    _this.wrapperRef = /*#__PURE__*/React.createRef();\n    _this.links = []; // Context\n\n    _this.registerLink = function (link) {\n      if (!_this.links.includes(link)) {\n        _this.links.push(link);\n      }\n    };\n\n    _this.unregisterLink = function (link) {\n      var index = _this.links.indexOf(link);\n\n      if (index !== -1) {\n        _this.links.splice(index, 1);\n      }\n    };\n\n    _this.getContainer = function () {\n      var getTargetContainer = _this.context.getTargetContainer;\n      var getContainer = _this.props.getContainer;\n      var getFunc = getContainer || getTargetContainer || getDefaultContainer;\n      return getFunc();\n    };\n\n    _this.handleScrollTo = function (link) {\n      var _this$props = _this.props,\n          offsetTop = _this$props.offsetTop,\n          targetOffset = _this$props.targetOffset;\n\n      _this.setCurrentActiveLink(link);\n\n      var container = _this.getContainer();\n\n      var scrollTop = getScroll(container, true);\n      var sharpLinkMatch = sharpMatcherRegx.exec(link);\n\n      if (!sharpLinkMatch) {\n        return;\n      }\n\n      var targetElement = document.getElementById(sharpLinkMatch[1]);\n\n      if (!targetElement) {\n        return;\n      }\n\n      var eleOffsetTop = getOffsetTop(targetElement, container);\n      var y = scrollTop + eleOffsetTop;\n      y -= targetOffset !== undefined ? targetOffset : offsetTop || 0;\n      _this.animating = true;\n      scrollTo(y, {\n        callback: function callback() {\n          _this.animating = false;\n        },\n        getContainer: _this.getContainer\n      });\n    };\n\n    _this.saveInkNode = function (node) {\n      _this.inkNode = node;\n    };\n\n    _this.setCurrentActiveLink = function (link) {\n      var activeLink = _this.state.activeLink;\n      var onChange = _this.props.onChange;\n\n      if (activeLink !== link) {\n        _this.setState({\n          activeLink: link\n        });\n\n        if (onChange) {\n          onChange(link);\n        }\n      }\n    };\n\n    _this.handleScroll = function () {\n      if (_this.animating) {\n        return;\n      }\n\n      var _this$props2 = _this.props,\n          offsetTop = _this$props2.offsetTop,\n          bounds = _this$props2.bounds,\n          targetOffset = _this$props2.targetOffset;\n\n      var currentActiveLink = _this.getCurrentAnchor(targetOffset !== undefined ? targetOffset : offsetTop || 0, bounds);\n\n      _this.setCurrentActiveLink(currentActiveLink);\n    };\n\n    _this.updateInk = function () {\n      var _assertThisInitialize = _assertThisInitialized(_this),\n          prefixCls = _assertThisInitialize.prefixCls,\n          wrapperRef = _assertThisInitialize.wrapperRef;\n\n      var anchorNode = wrapperRef.current;\n      var linkNode = anchorNode === null || anchorNode === void 0 ? void 0 : anchorNode.getElementsByClassName(\"\".concat(prefixCls, \"-link-title-active\"))[0];\n\n      if (linkNode) {\n        _this.inkNode.style.top = \"\".concat(linkNode.offsetTop + linkNode.clientHeight / 2 - 4.5, \"px\");\n      }\n    };\n\n    _this.render = function () {\n      var _this$context = _this.context,\n          getPrefixCls = _this$context.getPrefixCls,\n          direction = _this$context.direction;\n      var _this$props3 = _this.props,\n          customizePrefixCls = _this$props3.prefixCls,\n          _this$props3$classNam = _this$props3.className,\n          className = _this$props3$classNam === void 0 ? '' : _this$props3$classNam,\n          style = _this$props3.style,\n          offsetTop = _this$props3.offsetTop,\n          affix = _this$props3.affix,\n          showInkInFixed = _this$props3.showInkInFixed,\n          children = _this$props3.children;\n      var activeLink = _this.state.activeLink;\n      var prefixCls = getPrefixCls('anchor', customizePrefixCls); // To support old version react.\n      // Have to add prefixCls on the instance.\n      // https://github.com/facebook/react/issues/12397\n\n      _this.prefixCls = prefixCls;\n      var inkClass = classNames(\"\".concat(prefixCls, \"-ink-ball\"), {\n        visible: activeLink\n      });\n      var wrapperClass = classNames(\"\".concat(prefixCls, \"-wrapper\"), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), direction === 'rtl'), className);\n      var anchorClass = classNames(prefixCls, {\n        fixed: !affix && !showInkInFixed\n      });\n\n      var wrapperStyle = _extends({\n        maxHeight: offsetTop ? \"calc(100vh - \".concat(offsetTop, \"px)\") : '100vh'\n      }, style);\n\n      var anchorContent = /*#__PURE__*/React.createElement(\"div\", {\n        ref: _this.wrapperRef,\n        className: wrapperClass,\n        style: wrapperStyle\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: anchorClass\n      }, /*#__PURE__*/React.createElement(\"div\", {\n        className: \"\".concat(prefixCls, \"-ink\")\n      }, /*#__PURE__*/React.createElement(\"span\", {\n        className: inkClass,\n        ref: _this.saveInkNode\n      })), children));\n      return /*#__PURE__*/React.createElement(AnchorContext.Provider, {\n        value: {\n          registerLink: _this.registerLink,\n          unregisterLink: _this.unregisterLink,\n          activeLink: _this.state.activeLink,\n          scrollTo: _this.handleScrollTo,\n          onClick: _this.props.onClick\n        }\n      }, !affix ? anchorContent : /*#__PURE__*/React.createElement(Affix, {\n        offsetTop: offsetTop,\n        target: _this.getContainer\n      }, anchorContent));\n    };\n\n    return _this;\n  }\n\n  _createClass(Anchor, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.scrollContainer = this.getContainer();\n      this.scrollEvent = addEventListener(this.scrollContainer, 'scroll', this.handleScroll);\n      this.handleScroll();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate() {\n      if (this.scrollEvent) {\n        var currentContainer = this.getContainer();\n\n        if (this.scrollContainer !== currentContainer) {\n          this.scrollContainer = currentContainer;\n          this.scrollEvent.remove();\n          this.scrollEvent = addEventListener(this.scrollContainer, 'scroll', this.handleScroll);\n          this.handleScroll();\n        }\n      }\n\n      this.updateInk();\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      if (this.scrollEvent) {\n        this.scrollEvent.remove();\n      }\n    }\n  }, {\n    key: \"getCurrentAnchor\",\n    value: function getCurrentAnchor() {\n      var offsetTop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n      var bounds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n      var getCurrentAnchor = this.props.getCurrentAnchor;\n\n      if (typeof getCurrentAnchor === 'function') {\n        return getCurrentAnchor();\n      }\n\n      var linkSections = [];\n      var container = this.getContainer();\n      this.links.forEach(function (link) {\n        var sharpLinkMatch = sharpMatcherRegx.exec(link.toString());\n\n        if (!sharpLinkMatch) {\n          return;\n        }\n\n        var target = document.getElementById(sharpLinkMatch[1]);\n\n        if (target) {\n          var top = getOffsetTop(target, container);\n\n          if (top < offsetTop + bounds) {\n            linkSections.push({\n              link: link,\n              top: top\n            });\n          }\n        }\n      });\n\n      if (linkSections.length) {\n        var maxSection = linkSections.reduce(function (prev, curr) {\n          return curr.top > prev.top ? curr : prev;\n        });\n        return maxSection.link;\n      }\n\n      return '';\n    }\n  }]);\n\n  return Anchor;\n}(React.Component);\n\nexport { Anchor as default };\nAnchor.defaultProps = {\n  affix: true,\n  showInkInFixed: false\n};\nAnchor.contextType = ConfigContext;"]},"metadata":{},"sourceType":"module"}