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"}