6a4a529aade0e4fef7b20681d465fb1f.json 27.9 KB
{"ast":null,"code":"import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\n\nfunction getUuid() {\n  var id = seed;\n  seed += 1;\n  return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\n\nvar Notification = /*#__PURE__*/function (_Component) {\n  _inherits(Notification, _Component);\n\n  var _super = _createSuper(Notification);\n\n  function Notification() {\n    var _this;\n\n    _classCallCheck(this, Notification);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      notices: []\n    };\n    _this.hookRefs = new Map();\n\n    _this.add = function (originNotice, holderCallback) {\n      var key = originNotice.key || getUuid();\n\n      var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n        key: key\n      });\n\n      var maxCount = _this.props.maxCount;\n\n      _this.setState(function (previousState) {\n        var notices = previousState.notices;\n        var noticeIndex = notices.map(function (v) {\n          return v.notice.key;\n        }).indexOf(key);\n        var updatedNotices = notices.concat();\n\n        if (noticeIndex !== -1) {\n          updatedNotices.splice(noticeIndex, 1, {\n            notice: notice,\n            holderCallback: holderCallback\n          });\n        } else {\n          if (maxCount && notices.length >= maxCount) {\n            // XXX, use key of first item to update new added (let React to move exsiting\n            // instead of remove and mount). Same key was used before for both a) external\n            // manual control and b) internal react 'key' prop , which is not that good.\n            // eslint-disable-next-line no-param-reassign\n            // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n            // Change to `updateMark` for compare instead.\n            // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n            notice.key = updatedNotices[0].notice.key;\n            notice.updateMark = getUuid(); // zombieJ: That's why. User may close by key directly.\n            // We need record this but not re-render to avoid upper issue\n            // https://github.com/react-component/notification/issues/129\n\n            notice.userPassKey = key;\n            updatedNotices.shift();\n          }\n\n          updatedNotices.push({\n            notice: notice,\n            holderCallback: holderCallback\n          });\n        }\n\n        return {\n          notices: updatedNotices\n        };\n      });\n    };\n\n    _this.remove = function (removeKey) {\n      _this.setState(function (_ref) {\n        var notices = _ref.notices;\n        return {\n          notices: notices.filter(function (_ref2) {\n            var _ref2$notice = _ref2.notice,\n                key = _ref2$notice.key,\n                userPassKey = _ref2$notice.userPassKey;\n            var mergedKey = userPassKey || key;\n            return mergedKey !== removeKey;\n          })\n        };\n      });\n    };\n\n    _this.noticePropsMap = {};\n    return _this;\n  }\n\n  _createClass(Notification, [{\n    key: \"getTransitionName\",\n    value: function getTransitionName() {\n      var _this$props = this.props,\n          prefixCls = _this$props.prefixCls,\n          animation = _this$props.animation;\n      var transitionName = this.props.transitionName;\n\n      if (!transitionName && animation) {\n        transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n      }\n\n      return transitionName;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var notices = this.state.notices;\n      var _this$props2 = this.props,\n          prefixCls = _this$props2.prefixCls,\n          className = _this$props2.className,\n          closeIcon = _this$props2.closeIcon,\n          style = _this$props2.style;\n      var noticeKeys = [];\n      notices.forEach(function (_ref3, index) {\n        var notice = _ref3.notice,\n            holderCallback = _ref3.holderCallback;\n        var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n        var key = notice.key,\n            userPassKey = notice.userPassKey;\n\n        var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n          prefixCls: prefixCls,\n          closeIcon: closeIcon\n        }, notice), notice.props), {}, {\n          key: key,\n          noticeKey: userPassKey || key,\n          updateMark: updateMark,\n          onClose: function onClose(noticeKey) {\n            var _notice$onClose;\n\n            _this2.remove(noticeKey);\n\n            (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n          },\n          onClick: notice.onClick,\n          children: notice.content\n        }); // Give to motion\n\n\n        noticeKeys.push(key);\n        _this2.noticePropsMap[key] = {\n          props: noticeProps,\n          holderCallback: holderCallback\n        };\n      });\n      return React.createElement(\"div\", {\n        className: classNames(prefixCls, className),\n        style: style\n      }, React.createElement(CSSMotionList, {\n        keys: noticeKeys,\n        motionName: this.getTransitionName(),\n        onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n          var key = _ref4.key;\n\n          if (!changedVisible) {\n            delete _this2.noticePropsMap[key];\n          }\n        }\n      }, function (_ref5) {\n        var key = _ref5.key,\n            motionClassName = _ref5.className,\n            motionStyle = _ref5.style;\n        var _this2$noticePropsMap = _this2.noticePropsMap[key],\n            noticeProps = _this2$noticePropsMap.props,\n            holderCallback = _this2$noticePropsMap.holderCallback;\n\n        if (holderCallback) {\n          return React.createElement(\"div\", {\n            key: key,\n            className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n            style: _objectSpread({}, motionStyle),\n            ref: function ref(div) {\n              if (typeof key === 'undefined') {\n                return;\n              }\n\n              if (div) {\n                _this2.hookRefs.set(key, div);\n\n                holderCallback(div, noticeProps);\n              } else {\n                _this2.hookRefs.delete(key);\n              }\n            }\n          });\n        }\n\n        return React.createElement(Notice, Object.assign({}, noticeProps, {\n          className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n          style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style)\n        }));\n      }));\n    }\n  }]);\n\n  return Notification;\n}(Component);\n\nNotification.defaultProps = {\n  prefixCls: 'rc-notification',\n  animation: 'fade',\n  style: {\n    top: 65,\n    left: '50%'\n  }\n};\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n  var _ref6 = properties || {},\n      getContainer = _ref6.getContainer,\n      props = _objectWithoutProperties(_ref6, [\"getContainer\"]);\n\n  var div = document.createElement('div');\n\n  if (getContainer) {\n    var root = getContainer();\n    root.appendChild(div);\n  } else {\n    document.body.appendChild(div);\n  }\n\n  var called = false;\n\n  function ref(notification) {\n    if (called) {\n      return;\n    }\n\n    called = true;\n    callback({\n      notice: function notice(noticeProps) {\n        notification.add(noticeProps);\n      },\n      removeNotice: function removeNotice(key) {\n        notification.remove(key);\n      },\n      component: notification,\n      destroy: function destroy() {\n        ReactDOM.unmountComponentAtNode(div);\n\n        if (div.parentNode) {\n          div.parentNode.removeChild(div);\n        }\n      },\n      // Hooks\n      useNotification: function useNotification() {\n        return _useNotification(notification);\n      }\n    });\n  } // Only used for test case usage\n\n\n  if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n    properties.TEST_RENDER(React.createElement(Notification, Object.assign({}, props, {\n      ref: ref\n    })));\n    return;\n  }\n\n  ReactDOM.render(React.createElement(Notification, Object.assign({}, props, {\n    ref: ref\n  })), div);\n};\n\nexport default Notification;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-notification/es/Notification.js"],"names":["_objectWithoutProperties","_objectSpread","_classCallCheck","_createClass","_inherits","_createSuper","React","Component","ReactDOM","classNames","CSSMotionList","Notice","_useNotification","seed","now","Date","getUuid","id","concat","Notification","_Component","_super","_this","apply","arguments","state","notices","hookRefs","Map","add","originNotice","holderCallback","key","notice","maxCount","props","setState","previousState","noticeIndex","map","v","indexOf","updatedNotices","splice","length","updateMark","userPassKey","shift","push","remove","removeKey","_ref","filter","_ref2","_ref2$notice","mergedKey","noticePropsMap","value","getTransitionName","_this$props","prefixCls","animation","transitionName","render","_this2","_this$props2","className","closeIcon","style","noticeKeys","forEach","_ref3","index","undefined","noticeProps","noticeKey","onClose","_notice$onClose","call","onClick","children","content","createElement","keys","motionName","onVisibleChanged","changedVisible","_ref4","_ref5","motionClassName","motionStyle","_this2$noticePropsMap","ref","div","set","delete","Object","assign","defaultProps","top","left","newInstance","newNotificationInstance","properties","callback","_ref6","getContainer","document","root","appendChild","body","called","notification","removeNotice","component","destroy","unmountComponentAtNode","parentNode","removeChild","useNotification","process","env","NODE_ENV","TEST_RENDER"],"mappings":"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","sourcesContent":["import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\n\nfunction getUuid() {\n  var id = seed;\n  seed += 1;\n  return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\n\nvar Notification = /*#__PURE__*/function (_Component) {\n  _inherits(Notification, _Component);\n\n  var _super = _createSuper(Notification);\n\n  function Notification() {\n    var _this;\n\n    _classCallCheck(this, Notification);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      notices: []\n    };\n    _this.hookRefs = new Map();\n\n    _this.add = function (originNotice, holderCallback) {\n      var key = originNotice.key || getUuid();\n\n      var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n        key: key\n      });\n\n      var maxCount = _this.props.maxCount;\n\n      _this.setState(function (previousState) {\n        var notices = previousState.notices;\n        var noticeIndex = notices.map(function (v) {\n          return v.notice.key;\n        }).indexOf(key);\n        var updatedNotices = notices.concat();\n\n        if (noticeIndex !== -1) {\n          updatedNotices.splice(noticeIndex, 1, {\n            notice: notice,\n            holderCallback: holderCallback\n          });\n        } else {\n          if (maxCount && notices.length >= maxCount) {\n            // XXX, use key of first item to update new added (let React to move exsiting\n            // instead of remove and mount). Same key was used before for both a) external\n            // manual control and b) internal react 'key' prop , which is not that good.\n            // eslint-disable-next-line no-param-reassign\n            // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n            // Change to `updateMark` for compare instead.\n            // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n            notice.key = updatedNotices[0].notice.key;\n            notice.updateMark = getUuid(); // zombieJ: That's why. User may close by key directly.\n            // We need record this but not re-render to avoid upper issue\n            // https://github.com/react-component/notification/issues/129\n\n            notice.userPassKey = key;\n            updatedNotices.shift();\n          }\n\n          updatedNotices.push({\n            notice: notice,\n            holderCallback: holderCallback\n          });\n        }\n\n        return {\n          notices: updatedNotices\n        };\n      });\n    };\n\n    _this.remove = function (removeKey) {\n      _this.setState(function (_ref) {\n        var notices = _ref.notices;\n        return {\n          notices: notices.filter(function (_ref2) {\n            var _ref2$notice = _ref2.notice,\n                key = _ref2$notice.key,\n                userPassKey = _ref2$notice.userPassKey;\n            var mergedKey = userPassKey || key;\n            return mergedKey !== removeKey;\n          })\n        };\n      });\n    };\n\n    _this.noticePropsMap = {};\n    return _this;\n  }\n\n  _createClass(Notification, [{\n    key: \"getTransitionName\",\n    value: function getTransitionName() {\n      var _this$props = this.props,\n          prefixCls = _this$props.prefixCls,\n          animation = _this$props.animation;\n      var transitionName = this.props.transitionName;\n\n      if (!transitionName && animation) {\n        transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n      }\n\n      return transitionName;\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      var notices = this.state.notices;\n      var _this$props2 = this.props,\n          prefixCls = _this$props2.prefixCls,\n          className = _this$props2.className,\n          closeIcon = _this$props2.closeIcon,\n          style = _this$props2.style;\n      var noticeKeys = [];\n      notices.forEach(function (_ref3, index) {\n        var notice = _ref3.notice,\n            holderCallback = _ref3.holderCallback;\n        var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n        var key = notice.key,\n            userPassKey = notice.userPassKey;\n\n        var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n          prefixCls: prefixCls,\n          closeIcon: closeIcon\n        }, notice), notice.props), {}, {\n          key: key,\n          noticeKey: userPassKey || key,\n          updateMark: updateMark,\n          onClose: function onClose(noticeKey) {\n            var _notice$onClose;\n\n            _this2.remove(noticeKey);\n\n            (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n          },\n          onClick: notice.onClick,\n          children: notice.content\n        }); // Give to motion\n\n\n        noticeKeys.push(key);\n        _this2.noticePropsMap[key] = {\n          props: noticeProps,\n          holderCallback: holderCallback\n        };\n      });\n      return React.createElement(\"div\", {\n        className: classNames(prefixCls, className),\n        style: style\n      }, React.createElement(CSSMotionList, {\n        keys: noticeKeys,\n        motionName: this.getTransitionName(),\n        onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n          var key = _ref4.key;\n\n          if (!changedVisible) {\n            delete _this2.noticePropsMap[key];\n          }\n        }\n      }, function (_ref5) {\n        var key = _ref5.key,\n            motionClassName = _ref5.className,\n            motionStyle = _ref5.style;\n        var _this2$noticePropsMap = _this2.noticePropsMap[key],\n            noticeProps = _this2$noticePropsMap.props,\n            holderCallback = _this2$noticePropsMap.holderCallback;\n\n        if (holderCallback) {\n          return React.createElement(\"div\", {\n            key: key,\n            className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n            style: _objectSpread({}, motionStyle),\n            ref: function ref(div) {\n              if (typeof key === 'undefined') {\n                return;\n              }\n\n              if (div) {\n                _this2.hookRefs.set(key, div);\n\n                holderCallback(div, noticeProps);\n              } else {\n                _this2.hookRefs.delete(key);\n              }\n            }\n          });\n        }\n\n        return React.createElement(Notice, Object.assign({}, noticeProps, {\n          className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n          style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style)\n        }));\n      }));\n    }\n  }]);\n\n  return Notification;\n}(Component);\n\nNotification.defaultProps = {\n  prefixCls: 'rc-notification',\n  animation: 'fade',\n  style: {\n    top: 65,\n    left: '50%'\n  }\n};\n\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n  var _ref6 = properties || {},\n      getContainer = _ref6.getContainer,\n      props = _objectWithoutProperties(_ref6, [\"getContainer\"]);\n\n  var div = document.createElement('div');\n\n  if (getContainer) {\n    var root = getContainer();\n    root.appendChild(div);\n  } else {\n    document.body.appendChild(div);\n  }\n\n  var called = false;\n\n  function ref(notification) {\n    if (called) {\n      return;\n    }\n\n    called = true;\n    callback({\n      notice: function notice(noticeProps) {\n        notification.add(noticeProps);\n      },\n      removeNotice: function removeNotice(key) {\n        notification.remove(key);\n      },\n      component: notification,\n      destroy: function destroy() {\n        ReactDOM.unmountComponentAtNode(div);\n\n        if (div.parentNode) {\n          div.parentNode.removeChild(div);\n        }\n      },\n      // Hooks\n      useNotification: function useNotification() {\n        return _useNotification(notification);\n      }\n    });\n  } // Only used for test case usage\n\n\n  if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n    properties.TEST_RENDER(React.createElement(Notification, Object.assign({}, props, {\n      ref: ref\n    })));\n    return;\n  }\n\n  ReactDOM.render(React.createElement(Notification, Object.assign({}, props, {\n    ref: ref\n  })), div);\n};\n\nexport default Notification;"]},"metadata":{},"sourceType":"module"}