{"version":3,"sources":["webpack:///./node_modules/rmc-drawer/es/Drawer.js","webpack:///./node_modules/rmc-drawer/es/index.js"],"names":["getOffset","ele","el","_x","_y","isNaN","offsetLeft","offsetTop","scrollLeft","scrollTop","offsetParent","top","left","CANCEL_DISTANCE_ON_SCROLL","Drawer_Drawer","_React$Component","Drawer","props","classCallCheck_default","this","_this","possibleConstructorReturn_default","__proto__","Object","getPrototypeOf","call","onOverlayClicked","open","setTimeout","onOpenChange","overlayClicked","onTouchStart","ev","isTouching","touch","targetTouches","setState","touchIdentifier","notTouch","identifier","touchStartX","clientX","touchStartY","clientY","touchCurrentX","touchCurrentY","onTouchMove","ind","length","state","onTouchEnd","touchWidth","touchSidebarWidth","sidebarWidth","dragToggleDistance","touchHeight","touchSidebarHeight","sidebarHeight","onScroll","inCancelDistanceOnScroll","cancelDistanceOnScroll","position","Math","abs","saveSidebarSize","sidebar","react_dom_default","a","findDOMNode","refs","width","offsetWidth","height","offsetHeight","sidebarTop","dragHandleTop","dragHandle","window","innerWidth","min","innerHeight","touchStartOffsetY","renderStyle","_ref","sidebarStyle","overlayStyle","contentStyle","transform","WebkitTransform","percentage","opacity","visibility","_percentage","touchSupported","typeof_default","inherits_default","createClass_default","key","value","_rootCls","_this2","_props","className","style","prefixCls","transitions","enableDragHandle","children","docked","extends_default","rootCls","defineProperty_default","rootProps","transition","WebkitTransition","onTouchCancel","react_default","createElement","dragHandleStyle","ref","classnames_default","role","onClick","Component","propTypes","prop_types_default","string","node","isRequired","object","bool","oneOf","number","func","defaultProps","es_Drawer","__webpack_exports__"],"mappings":"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","file":"vendor.rmc-drawer~42b1bdc2.bundle.js","sourcesContent":["import _defineProperty from 'babel-runtime/helpers/defineProperty';\nimport _extends from 'babel-runtime/helpers/extends';\nimport _typeof from 'babel-runtime/helpers/typeof';\nimport _classCallCheck from 'babel-runtime/helpers/classCallCheck';\nimport _createClass from 'babel-runtime/helpers/createClass';\nimport _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';\nimport _inherits from 'babel-runtime/helpers/inherits';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\n\nfunction getOffset(ele) {\n  var el = ele;\n  var _x = 0;\n  var _y = 0;\n  while (el && !isNaN(el.offsetLeft) && !isNaN(el.offsetTop)) {\n    _x += el.offsetLeft - el.scrollLeft;\n    _y += el.offsetTop - el.scrollTop;\n    el = el.offsetParent;\n  }\n  return { top: _y, left: _x };\n}\n\nvar CANCEL_DISTANCE_ON_SCROLL = 20;\n\nvar Drawer = function (_React$Component) {\n  _inherits(Drawer, _React$Component);\n\n  function Drawer(props) {\n    _classCallCheck(this, Drawer);\n\n    var _this = _possibleConstructorReturn(this, (Drawer.__proto__ || Object.getPrototypeOf(Drawer)).call(this, props));\n\n    _this.onOverlayClicked = function () {\n      if (_this.props.open) {\n        // see https://github.com/react-component/drawer/issues/9\n        setTimeout(function () {\n          _this.props.onOpenChange(false, { overlayClicked: true });\n        }, 0);\n      }\n    };\n\n    _this.onTouchStart = function (ev) {\n      // filter out if a user starts swiping with a second finger\n      if (!_this.isTouching()) {\n        var touch = ev.targetTouches[0];\n        _this.setState({\n          touchIdentifier: !_this.notTouch ? touch.identifier : null,\n          touchStartX: touch.clientX,\n          touchStartY: touch.clientY,\n          touchCurrentX: touch.clientX,\n          touchCurrentY: touch.clientY\n        });\n      }\n    };\n\n    _this.onTouchMove = function (ev) {\n      // ev.preventDefault(); // cannot touchmove with FastClick\n      if (_this.isTouching()) {\n        for (var ind = 0; ind < ev.targetTouches.length; ind++) {\n          // we only care about the finger that we are tracking\n          if (ev.targetTouches[ind].identifier === _this.state.touchIdentifier) {\n            _this.setState({\n              touchCurrentX: ev.targetTouches[ind].clientX,\n              touchCurrentY: ev.targetTouches[ind].clientY\n            });\n            break;\n          }\n        }\n      }\n    };\n\n    _this.onTouchEnd = function () {\n      _this.notTouch = false;\n      if (_this.isTouching()) {\n        // trigger a change to open if sidebar has been dragged beyond dragToggleDistance\n        var touchWidth = _this.touchSidebarWidth();\n\n        if (_this.props.open && touchWidth < _this.state.sidebarWidth - _this.props.dragToggleDistance || !_this.props.open && touchWidth > _this.props.dragToggleDistance) {\n          _this.props.onOpenChange(!_this.props.open);\n        }\n\n        var touchHeight = _this.touchSidebarHeight();\n\n        if (_this.props.open && touchHeight < _this.state.sidebarHeight - _this.props.dragToggleDistance || !_this.props.open && touchHeight > _this.props.dragToggleDistance) {\n          _this.props.onOpenChange(!_this.props.open);\n        }\n\n        _this.setState({\n          touchIdentifier: null,\n          touchStartX: null,\n          touchStartY: null,\n          touchCurrentX: null,\n          touchCurrentY: null\n        });\n      }\n    };\n\n    _this.onScroll = function () {\n      if (_this.isTouching() && _this.inCancelDistanceOnScroll()) {\n        _this.setState({\n          touchIdentifier: null,\n          touchStartX: null,\n          touchStartY: null,\n          touchCurrentX: null,\n          touchCurrentY: null\n        });\n      }\n    };\n\n    _this.inCancelDistanceOnScroll = function () {\n      var cancelDistanceOnScroll = void 0;\n      switch (_this.props.position) {\n        case 'right':\n          cancelDistanceOnScroll = Math.abs(_this.state.touchCurrentX - _this.state.touchStartX) < CANCEL_DISTANCE_ON_SCROLL;\n          break;\n        case 'bottom':\n          cancelDistanceOnScroll = Math.abs(_this.state.touchCurrentY - _this.state.touchStartY) < CANCEL_DISTANCE_ON_SCROLL;\n          break;\n        case 'top':\n          cancelDistanceOnScroll = Math.abs(_this.state.touchStartY - _this.state.touchCurrentY) < CANCEL_DISTANCE_ON_SCROLL;\n          break;\n        case 'left':\n        default:\n          cancelDistanceOnScroll = Math.abs(_this.state.touchStartX - _this.state.touchCurrentX) < CANCEL_DISTANCE_ON_SCROLL;\n      }\n      return cancelDistanceOnScroll;\n    };\n\n    _this.isTouching = function () {\n      return _this.state.touchIdentifier !== null;\n    };\n\n    _this.saveSidebarSize = function () {\n      var sidebar = ReactDOM.findDOMNode(_this.refs.sidebar);\n      var width = sidebar.offsetWidth;\n      var height = sidebar.offsetHeight;\n      var sidebarTop = getOffset(ReactDOM.findDOMNode(_this.refs.sidebar)).top;\n      var dragHandleTop = getOffset(ReactDOM.findDOMNode(_this.refs.dragHandle)).top;\n\n      if (width !== _this.state.sidebarWidth) {\n        _this.setState({ sidebarWidth: width });\n      }\n      if (height !== _this.state.sidebarHeight) {\n        _this.setState({ sidebarHeight: height });\n      }\n      if (sidebarTop !== _this.state.sidebarTop) {\n        _this.setState({ sidebarTop: sidebarTop });\n      }\n      if (dragHandleTop !== _this.state.dragHandleTop) {\n        _this.setState({ dragHandleTop: dragHandleTop });\n      }\n    };\n\n    _this.touchSidebarWidth = function () {\n      // if the sidebar is open and start point of drag is inside the sidebar\n      // we will only drag the distance they moved their finger\n      // otherwise we will move the sidebar to be below the finger.\n      if (_this.props.position === 'right') {\n        if (_this.props.open && window.innerWidth - _this.state.touchStartX < _this.state.sidebarWidth) {\n          if (_this.state.touchCurrentX > _this.state.touchStartX) {\n            return _this.state.sidebarWidth + _this.state.touchStartX - _this.state.touchCurrentX;\n          }\n          return _this.state.sidebarWidth;\n        }\n        return Math.min(window.innerWidth - _this.state.touchCurrentX, _this.state.sidebarWidth);\n      }\n\n      if (_this.props.position === 'left') {\n        if (_this.props.open && _this.state.touchStartX < _this.state.sidebarWidth) {\n          if (_this.state.touchCurrentX > _this.state.touchStartX) {\n            return _this.state.sidebarWidth;\n          }\n          return _this.state.sidebarWidth - _this.state.touchStartX + _this.state.touchCurrentX;\n        }\n        return Math.min(_this.state.touchCurrentX, _this.state.sidebarWidth);\n      }\n    };\n\n    _this.touchSidebarHeight = function () {\n      // if the sidebar is open and start point of drag is inside the sidebar\n      // we will only drag the distance they moved their finger\n      // otherwise we will move the sidebar to be below the finger.\n      if (_this.props.position === 'bottom') {\n        if (_this.props.open && window.innerHeight - _this.state.touchStartY < _this.state.sidebarHeight) {\n          if (_this.state.touchCurrentY > _this.state.touchStartY) {\n            return _this.state.sidebarHeight + _this.state.touchStartY - _this.state.touchCurrentY;\n          }\n          return _this.state.sidebarHeight;\n        }\n        return Math.min(window.innerHeight - _this.state.touchCurrentY, _this.state.sidebarHeight);\n      }\n\n      if (_this.props.position === 'top') {\n        var touchStartOffsetY = _this.state.touchStartY - _this.state.sidebarTop;\n        if (_this.props.open && touchStartOffsetY < _this.state.sidebarHeight) {\n          if (_this.state.touchCurrentY > _this.state.touchStartY) {\n            return _this.state.sidebarHeight;\n          }\n          return _this.state.sidebarHeight - _this.state.touchStartY + _this.state.touchCurrentY;\n        }\n        return Math.min(_this.state.touchCurrentY - _this.state.dragHandleTop, _this.state.sidebarHeight);\n      }\n    };\n\n    _this.renderStyle = function (_ref) {\n      var sidebarStyle = _ref.sidebarStyle,\n          isTouching = _ref.isTouching,\n          overlayStyle = _ref.overlayStyle,\n          contentStyle = _ref.contentStyle;\n\n      if (_this.props.position === 'right' || _this.props.position === 'left') {\n        sidebarStyle.transform = 'translateX(0%)';\n        sidebarStyle.WebkitTransform = 'translateX(0%)';\n        if (isTouching) {\n          var percentage = _this.touchSidebarWidth() / _this.state.sidebarWidth;\n          // slide open to what we dragged\n          if (_this.props.position === 'right') {\n            sidebarStyle.transform = 'translateX(' + (1 - percentage) * 100 + '%)';\n            sidebarStyle.WebkitTransform = 'translateX(' + (1 - percentage) * 100 + '%)';\n          }\n          if (_this.props.position === 'left') {\n            sidebarStyle.transform = 'translateX(-' + (1 - percentage) * 100 + '%)';\n            sidebarStyle.WebkitTransform = 'translateX(-' + (1 - percentage) * 100 + '%)';\n          }\n          // fade overlay to match distance of drag\n          overlayStyle.opacity = percentage;\n          overlayStyle.visibility = 'visible';\n        }\n        if (contentStyle) {\n          contentStyle[_this.props.position] = _this.state.sidebarWidth + 'px';\n        }\n      }\n      if (_this.props.position === 'top' || _this.props.position === 'bottom') {\n        sidebarStyle.transform = 'translateY(0%)';\n        sidebarStyle.WebkitTransform = 'translateY(0%)';\n        if (isTouching) {\n          var _percentage = _this.touchSidebarHeight() / _this.state.sidebarHeight;\n          // slide open to what we dragged\n          if (_this.props.position === 'bottom') {\n            sidebarStyle.transform = 'translateY(' + (1 - _percentage) * 100 + '%)';\n            sidebarStyle.WebkitTransform = 'translateY(' + (1 - _percentage) * 100 + '%)';\n          }\n          if (_this.props.position === 'top') {\n            sidebarStyle.transform = 'translateY(-' + (1 - _percentage) * 100 + '%)';\n            sidebarStyle.WebkitTransform = 'translateY(-' + (1 - _percentage) * 100 + '%)';\n          }\n          // fade overlay to match distance of drag\n          overlayStyle.opacity = _percentage;\n          overlayStyle.visibility = 'visible';\n        }\n        if (contentStyle) {\n          contentStyle[_this.props.position] = _this.state.sidebarHeight + 'px';\n        }\n      }\n    };\n\n    _this.state = {\n      // the detected width of the sidebar in pixels\n      sidebarWidth: 0,\n      sidebarHeight: 0,\n      sidebarTop: 0,\n      dragHandleTop: 0,\n\n      // keep track of touching params\n      touchIdentifier: null,\n      touchStartX: null,\n      touchStartY: null,\n      touchCurrentX: null,\n      touchCurrentY: null,\n\n      // if touch is supported by the browser\n      touchSupported: (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' && 'ontouchstart' in window\n    };\n    return _this;\n  }\n\n  _createClass(Drawer, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      this.saveSidebarSize();\n    }\n  }, {\n    key: 'componentDidUpdate',\n    value: function componentDidUpdate() {\n      // filter out the updates when we're touching\n      if (!this.isTouching()) {\n        this.saveSidebarSize();\n      }\n    }\n\n    // This logic helps us prevents the user from sliding the sidebar horizontally\n    // while scrolling the sidebar vertically. When a scroll event comes in, we're\n    // cancelling the ongoing gesture if it did not move horizontally much.\n\n\n    // True if the on going gesture X distance is less than the cancel distance\n\n\n    // calculate the sidebarWidth based on current touch info\n\n    // calculate the sidebarHeight based on current touch info\n\n  }, {\n    key: 'render',\n    value: function render() {\n      var _rootCls,\n          _this2 = this;\n\n      var _props = this.props,\n          className = _props.className,\n          style = _props.style,\n          prefixCls = _props.prefixCls,\n          position = _props.position,\n          transitions = _props.transitions,\n          touch = _props.touch,\n          enableDragHandle = _props.enableDragHandle,\n          sidebar = _props.sidebar,\n          children = _props.children,\n          docked = _props.docked,\n          open = _props.open;\n\n\n      var sidebarStyle = _extends({}, this.props.sidebarStyle);\n      var contentStyle = _extends({}, this.props.contentStyle);\n      var overlayStyle = _extends({}, this.props.overlayStyle);\n\n      var rootCls = (_rootCls = {}, _defineProperty(_rootCls, className, !!className), _defineProperty(_rootCls, prefixCls, true), _defineProperty(_rootCls, prefixCls + '-' + position, true), _rootCls);\n\n      var rootProps = { style: style };\n      var isTouching = this.isTouching();\n\n      if (isTouching) {\n        this.renderStyle({ sidebarStyle: sidebarStyle, isTouching: true, overlayStyle: overlayStyle });\n      } else if (docked) {\n        if (this.state.sidebarWidth !== 0) {\n          rootCls[prefixCls + '-docked'] = true;\n          this.renderStyle({ sidebarStyle: sidebarStyle, contentStyle: contentStyle });\n        }\n      } else if (open) {\n        rootCls[prefixCls + '-open'] = true;\n        this.renderStyle({ sidebarStyle: sidebarStyle });\n        overlayStyle.opacity = 1;\n        overlayStyle.visibility = 'visible';\n      }\n\n      if (isTouching || !transitions) {\n        sidebarStyle.transition = 'none';\n        sidebarStyle.WebkitTransition = 'none';\n        contentStyle.transition = 'none';\n        overlayStyle.transition = 'none';\n      }\n\n      var dragHandle = null;\n\n      if (this.state.touchSupported && touch) {\n        if (open) {\n          rootProps.onTouchStart = function (ev) {\n            _this2.notTouch = true;\n            _this2.onTouchStart(ev);\n          };\n          rootProps.onTouchMove = this.onTouchMove;\n          rootProps.onTouchEnd = this.onTouchEnd;\n          rootProps.onTouchCancel = this.onTouchEnd;\n          rootProps.onScroll = this.onScroll;\n        } else if (enableDragHandle) {\n          dragHandle = React.createElement('div', { className: prefixCls + '-draghandle', style: this.props.dragHandleStyle,\n            onTouchStart: this.onTouchStart, onTouchMove: this.onTouchMove,\n            onTouchEnd: this.onTouchEnd, onTouchCancel: this.onTouchEnd,\n            ref: 'dragHandle'\n          });\n        }\n      }\n\n      // const evt = {};\n      // // FastClick use touchstart instead of click\n      // if (this.state.touchSupported) {\n      //   evt.onTouchStart = () => {\n      //     this.notTouch = true;\n      //     this.onOverlayClicked();\n      //   };\n      //   evt.onTouchEnd = () => {\n      //     this.notTouch = false;\n      //     this.setState({\n      //       touchIdentifier: null,\n      //     });\n      //   };\n      // } else {\n      //   evt.onClick = this.onOverlayClicked;\n      // }\n\n      return React.createElement(\n        'div',\n        _extends({ className: classNames(rootCls) }, rootProps),\n        React.createElement(\n          'div',\n          { className: prefixCls + '-sidebar', style: sidebarStyle,\n            ref: 'sidebar'\n          },\n          sidebar\n        ),\n        React.createElement('div', { className: prefixCls + '-overlay',\n          style: overlayStyle,\n          role: 'presentation',\n          ref: 'overlay',\n          onClick: this.onOverlayClicked\n        }),\n        React.createElement(\n          'div',\n          { className: prefixCls + '-content', style: contentStyle,\n            ref: 'content'\n          },\n          dragHandle,\n          children\n        )\n      );\n    }\n  }]);\n\n  return Drawer;\n}(React.Component);\n\nDrawer.propTypes = {\n  prefixCls: PropTypes.string,\n  className: PropTypes.string,\n  // main content to render\n  children: PropTypes.node.isRequired,\n\n  // styles\n  // styles: PropTypes.shape({\n  //   dragHandle: PropTypes.object,\n  // }),\n  style: PropTypes.object,\n  sidebarStyle: PropTypes.object,\n  contentStyle: PropTypes.object,\n  overlayStyle: PropTypes.object,\n  dragHandleStyle: PropTypes.object,\n\n  // sidebar content to render\n  sidebar: PropTypes.node.isRequired,\n\n  // boolean if sidebar should be docked\n  docked: PropTypes.bool,\n\n  // boolean if sidebar should slide open\n  open: PropTypes.bool,\n\n  // boolean if transitions should be disabled\n  transitions: PropTypes.bool,\n\n  // boolean if touch gestures are enabled\n  touch: PropTypes.bool,\n  enableDragHandle: PropTypes.bool,\n\n  // where to place the sidebar\n  position: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),\n\n  // distance we have to drag the sidebar to toggle open state\n  dragToggleDistance: PropTypes.number,\n\n  // callback called when the overlay is clicked\n  onOpenChange: PropTypes.func\n};\nDrawer.defaultProps = {\n  prefixCls: 'rmc-drawer',\n  sidebarStyle: {},\n  contentStyle: {},\n  overlayStyle: {},\n  dragHandleStyle: {},\n  docked: false,\n  open: false,\n  transitions: true,\n  touch: true,\n  enableDragHandle: true,\n  position: 'left',\n  dragToggleDistance: 30,\n  onOpenChange: function onOpenChange() {}\n};\nexport default Drawer;","// export this package's api\nimport Drawer from './Drawer';\nexport default Drawer;"],"sourceRoot":""}