34a78cbe3c00af447dd0cca792e77524.json 31.1 KB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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\";\n/* eslint react/no-is-mounted:0,react/sort-comp:0,react/prop-types:0 */\n\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport defaultRequest from './request';\nimport getUid from './uid';\nimport attrAccept from './attr-accept';\nimport traverseFileTree from './traverseFileTree';\n\nvar AjaxUploader = /*#__PURE__*/function (_Component) {\n  _inherits(AjaxUploader, _Component);\n\n  var _super = _createSuper(AjaxUploader);\n\n  function AjaxUploader() {\n    var _this;\n\n    _classCallCheck(this, AjaxUploader);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      uid: getUid()\n    };\n    _this.reqs = {};\n\n    _this.onChange = function (e) {\n      var files = e.target.files;\n\n      _this.uploadFiles(files);\n\n      _this.reset();\n    };\n\n    _this.onClick = function (e) {\n      var el = _this.fileInput;\n\n      if (!el) {\n        return;\n      }\n\n      var _this$props = _this.props,\n          children = _this$props.children,\n          onClick = _this$props.onClick;\n\n      if (children && children.type === 'button') {\n        var parent = el.parentNode;\n        parent.focus();\n        parent.querySelector('button').blur();\n      }\n\n      el.click();\n\n      if (onClick) {\n        onClick(e);\n      }\n    };\n\n    _this.onKeyDown = function (e) {\n      if (e.key === 'Enter') {\n        _this.onClick(e);\n      }\n    };\n\n    _this.onFileDrop = function (e) {\n      var multiple = _this.props.multiple;\n      e.preventDefault();\n\n      if (e.type === 'dragover') {\n        return;\n      }\n\n      if (_this.props.directory) {\n        traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), _this.uploadFiles, function (_file) {\n          return attrAccept(_file, _this.props.accept);\n        });\n      } else {\n        var files = Array.prototype.slice.call(e.dataTransfer.files).filter(function (file) {\n          return attrAccept(file, _this.props.accept);\n        });\n\n        if (multiple === false) {\n          files = files.slice(0, 1);\n        }\n\n        _this.uploadFiles(files);\n      }\n    };\n\n    _this.uploadFiles = function (files) {\n      var postFiles = Array.prototype.slice.call(files);\n      postFiles.map(function (file) {\n        // eslint-disable-next-line no-param-reassign\n        file.uid = getUid();\n        return file;\n      }).forEach(function (file) {\n        _this.upload(file, postFiles);\n      });\n    };\n\n    _this.saveFileInput = function (node) {\n      _this.fileInput = node;\n    };\n\n    return _this;\n  }\n\n  _createClass(AjaxUploader, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this._isMounted = true;\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this._isMounted = false;\n      this.abort();\n    }\n  }, {\n    key: \"upload\",\n    value: function upload(file, fileList) {\n      var _this2 = this;\n\n      var props = this.props;\n\n      if (!props.beforeUpload) {\n        // always async in case use react state to keep fileList\n        Promise.resolve().then(function () {\n          _this2.post(file);\n        });\n        return;\n      }\n\n      var before = props.beforeUpload(file, fileList);\n\n      if (before && typeof before !== 'boolean' && before.then) {\n        before.then(function (processedFile) {\n          var processedFileType = Object.prototype.toString.call(processedFile);\n\n          if (processedFileType === '[object File]' || processedFileType === '[object Blob]') {\n            _this2.post(processedFile);\n\n            return;\n          }\n\n          _this2.post(file);\n        }).catch(function (e) {\n          // eslint-disable-next-line no-console\n          console.log(e);\n        });\n      } else if (before !== false) {\n        Promise.resolve().then(function () {\n          _this2.post(file);\n        });\n      }\n    }\n  }, {\n    key: \"post\",\n    value: function post(file) {\n      var _this3 = this;\n\n      if (!this._isMounted) {\n        return;\n      }\n\n      var props = this.props;\n      var onStart = props.onStart,\n          onProgress = props.onProgress,\n          _props$transformFile = props.transformFile,\n          transformFile = _props$transformFile === void 0 ? function (originFile) {\n        return originFile;\n      } : _props$transformFile;\n      new Promise(function (resolve) {\n        var action = props.action;\n\n        if (typeof action === 'function') {\n          action = action(file);\n        }\n\n        return resolve(action);\n      }).then(function (action) {\n        var uid = file.uid;\n        var request = props.customRequest || defaultRequest;\n        var transform = Promise.resolve(transformFile(file)).then(function (transformedFile) {\n          var data = props.data;\n\n          if (typeof data === 'function') {\n            data = data(transformedFile);\n          }\n\n          return Promise.all([transformedFile, data]);\n        }).catch(function (e) {\n          console.error(e); // eslint-disable-line no-console\n        });\n        transform.then(function (_ref) {\n          var _ref2 = _slicedToArray(_ref, 2),\n              transformedFile = _ref2[0],\n              data = _ref2[1];\n\n          var requestOption = {\n            action: action,\n            filename: props.name,\n            data: data,\n            file: transformedFile,\n            headers: props.headers,\n            withCredentials: props.withCredentials,\n            method: props.method || 'post',\n            onProgress: onProgress ? function (e) {\n              onProgress(e, file);\n            } : null,\n            onSuccess: function onSuccess(ret, xhr) {\n              delete _this3.reqs[uid];\n              props.onSuccess(ret, file, xhr);\n            },\n            onError: function onError(err, ret) {\n              delete _this3.reqs[uid];\n              props.onError(err, ret, file);\n            }\n          };\n          onStart(file);\n          _this3.reqs[uid] = request(requestOption);\n        });\n      });\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      this.setState({\n        uid: getUid()\n      });\n    }\n  }, {\n    key: \"abort\",\n    value: function abort(file) {\n      var reqs = this.reqs;\n\n      if (file) {\n        var uid = file.uid ? file.uid : file;\n\n        if (reqs[uid] && reqs[uid].abort) {\n          reqs[uid].abort();\n        }\n\n        delete reqs[uid];\n      } else {\n        Object.keys(reqs).forEach(function (uid) {\n          if (reqs[uid] && reqs[uid].abort) {\n            reqs[uid].abort();\n          }\n\n          delete reqs[uid];\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props2 = this.props,\n          Tag = _this$props2.component,\n          prefixCls = _this$props2.prefixCls,\n          className = _this$props2.className,\n          disabled = _this$props2.disabled,\n          id = _this$props2.id,\n          style = _this$props2.style,\n          multiple = _this$props2.multiple,\n          accept = _this$props2.accept,\n          children = _this$props2.children,\n          directory = _this$props2.directory,\n          openFileDialogOnClick = _this$props2.openFileDialogOnClick,\n          onMouseEnter = _this$props2.onMouseEnter,\n          onMouseLeave = _this$props2.onMouseLeave,\n          otherProps = _objectWithoutProperties(_this$props2, [\"component\", \"prefixCls\", \"className\", \"disabled\", \"id\", \"style\", \"multiple\", \"accept\", \"children\", \"directory\", \"openFileDialogOnClick\", \"onMouseEnter\", \"onMouseLeave\"]);\n\n      var cls = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, className, className), _classNames)); // because input don't have directory/webkitdirectory type declaration\n\n      var dirProps = directory ? {\n        directory: 'directory',\n        webkitdirectory: 'webkitdirectory'\n      } : {};\n      var events = disabled ? {} : {\n        onClick: openFileDialogOnClick ? this.onClick : function () {},\n        onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},\n        onMouseEnter: onMouseEnter,\n        onMouseLeave: onMouseLeave,\n        onDrop: this.onFileDrop,\n        onDragOver: this.onFileDrop,\n        tabIndex: '0'\n      };\n      return React.createElement(Tag, Object.assign({}, events, {\n        className: cls,\n        role: \"button\",\n        style: style\n      }), React.createElement(\"input\", Object.assign({}, pickAttrs(otherProps, {\n        aria: true,\n        data: true\n      }), {\n        id: id,\n        type: \"file\",\n        ref: this.saveFileInput,\n        onClick: function onClick(e) {\n          return e.stopPropagation();\n        },\n        key: this.state.uid,\n        style: {\n          display: 'none'\n        },\n        accept: accept\n      }, dirProps, {\n        multiple: multiple,\n        onChange: this.onChange\n      })), children);\n    }\n  }]);\n\n  return AjaxUploader;\n}(Component);\n\nexport default AjaxUploader;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/rc-upload/es/AjaxUploader.js"],"names":["_defineProperty","_objectWithoutProperties","_slicedToArray","_classCallCheck","_createClass","_inherits","_createSuper","React","Component","classNames","pickAttrs","defaultRequest","getUid","attrAccept","traverseFileTree","AjaxUploader","_Component","_super","_this","apply","arguments","state","uid","reqs","onChange","e","files","target","uploadFiles","reset","onClick","el","fileInput","_this$props","props","children","type","parent","parentNode","focus","querySelector","blur","click","onKeyDown","key","onFileDrop","multiple","preventDefault","directory","Array","prototype","slice","call","dataTransfer","items","_file","accept","filter","file","postFiles","map","forEach","upload","saveFileInput","node","value","componentDidMount","_isMounted","componentWillUnmount","abort","fileList","_this2","beforeUpload","Promise","resolve","then","post","before","processedFile","processedFileType","Object","toString","catch","console","log","_this3","onStart","onProgress","_props$transformFile","transformFile","originFile","action","request","customRequest","transform","transformedFile","data","all","error","_ref","_ref2","requestOption","filename","name","headers","withCredentials","method","onSuccess","ret","xhr","onError","err","setState","keys","render","_classNames","_this$props2","Tag","component","prefixCls","className","disabled","id","style","openFileDialogOnClick","onMouseEnter","onMouseLeave","otherProps","cls","concat","dirProps","webkitdirectory","events","onDrop","onDragOver","tabIndex","createElement","assign","role","aria","ref","stopPropagation","display"],"mappings":"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","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\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\";\n\n/* eslint react/no-is-mounted:0,react/sort-comp:0,react/prop-types:0 */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport pickAttrs from \"rc-util/es/pickAttrs\";\nimport defaultRequest from './request';\nimport getUid from './uid';\nimport attrAccept from './attr-accept';\nimport traverseFileTree from './traverseFileTree';\n\nvar AjaxUploader = /*#__PURE__*/function (_Component) {\n  _inherits(AjaxUploader, _Component);\n\n  var _super = _createSuper(AjaxUploader);\n\n  function AjaxUploader() {\n    var _this;\n\n    _classCallCheck(this, AjaxUploader);\n\n    _this = _super.apply(this, arguments);\n    _this.state = {\n      uid: getUid()\n    };\n    _this.reqs = {};\n\n    _this.onChange = function (e) {\n      var files = e.target.files;\n\n      _this.uploadFiles(files);\n\n      _this.reset();\n    };\n\n    _this.onClick = function (e) {\n      var el = _this.fileInput;\n\n      if (!el) {\n        return;\n      }\n\n      var _this$props = _this.props,\n          children = _this$props.children,\n          onClick = _this$props.onClick;\n\n      if (children && children.type === 'button') {\n        var parent = el.parentNode;\n        parent.focus();\n        parent.querySelector('button').blur();\n      }\n\n      el.click();\n\n      if (onClick) {\n        onClick(e);\n      }\n    };\n\n    _this.onKeyDown = function (e) {\n      if (e.key === 'Enter') {\n        _this.onClick(e);\n      }\n    };\n\n    _this.onFileDrop = function (e) {\n      var multiple = _this.props.multiple;\n      e.preventDefault();\n\n      if (e.type === 'dragover') {\n        return;\n      }\n\n      if (_this.props.directory) {\n        traverseFileTree(Array.prototype.slice.call(e.dataTransfer.items), _this.uploadFiles, function (_file) {\n          return attrAccept(_file, _this.props.accept);\n        });\n      } else {\n        var files = Array.prototype.slice.call(e.dataTransfer.files).filter(function (file) {\n          return attrAccept(file, _this.props.accept);\n        });\n\n        if (multiple === false) {\n          files = files.slice(0, 1);\n        }\n\n        _this.uploadFiles(files);\n      }\n    };\n\n    _this.uploadFiles = function (files) {\n      var postFiles = Array.prototype.slice.call(files);\n      postFiles.map(function (file) {\n        // eslint-disable-next-line no-param-reassign\n        file.uid = getUid();\n        return file;\n      }).forEach(function (file) {\n        _this.upload(file, postFiles);\n      });\n    };\n\n    _this.saveFileInput = function (node) {\n      _this.fileInput = node;\n    };\n\n    return _this;\n  }\n\n  _createClass(AjaxUploader, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this._isMounted = true;\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      this._isMounted = false;\n      this.abort();\n    }\n  }, {\n    key: \"upload\",\n    value: function upload(file, fileList) {\n      var _this2 = this;\n\n      var props = this.props;\n\n      if (!props.beforeUpload) {\n        // always async in case use react state to keep fileList\n        Promise.resolve().then(function () {\n          _this2.post(file);\n        });\n        return;\n      }\n\n      var before = props.beforeUpload(file, fileList);\n\n      if (before && typeof before !== 'boolean' && before.then) {\n        before.then(function (processedFile) {\n          var processedFileType = Object.prototype.toString.call(processedFile);\n\n          if (processedFileType === '[object File]' || processedFileType === '[object Blob]') {\n            _this2.post(processedFile);\n\n            return;\n          }\n\n          _this2.post(file);\n        }).catch(function (e) {\n          // eslint-disable-next-line no-console\n          console.log(e);\n        });\n      } else if (before !== false) {\n        Promise.resolve().then(function () {\n          _this2.post(file);\n        });\n      }\n    }\n  }, {\n    key: \"post\",\n    value: function post(file) {\n      var _this3 = this;\n\n      if (!this._isMounted) {\n        return;\n      }\n\n      var props = this.props;\n      var onStart = props.onStart,\n          onProgress = props.onProgress,\n          _props$transformFile = props.transformFile,\n          transformFile = _props$transformFile === void 0 ? function (originFile) {\n        return originFile;\n      } : _props$transformFile;\n      new Promise(function (resolve) {\n        var action = props.action;\n\n        if (typeof action === 'function') {\n          action = action(file);\n        }\n\n        return resolve(action);\n      }).then(function (action) {\n        var uid = file.uid;\n        var request = props.customRequest || defaultRequest;\n        var transform = Promise.resolve(transformFile(file)).then(function (transformedFile) {\n          var data = props.data;\n\n          if (typeof data === 'function') {\n            data = data(transformedFile);\n          }\n\n          return Promise.all([transformedFile, data]);\n        }).catch(function (e) {\n          console.error(e); // eslint-disable-line no-console\n        });\n        transform.then(function (_ref) {\n          var _ref2 = _slicedToArray(_ref, 2),\n              transformedFile = _ref2[0],\n              data = _ref2[1];\n\n          var requestOption = {\n            action: action,\n            filename: props.name,\n            data: data,\n            file: transformedFile,\n            headers: props.headers,\n            withCredentials: props.withCredentials,\n            method: props.method || 'post',\n            onProgress: onProgress ? function (e) {\n              onProgress(e, file);\n            } : null,\n            onSuccess: function onSuccess(ret, xhr) {\n              delete _this3.reqs[uid];\n              props.onSuccess(ret, file, xhr);\n            },\n            onError: function onError(err, ret) {\n              delete _this3.reqs[uid];\n              props.onError(err, ret, file);\n            }\n          };\n          onStart(file);\n          _this3.reqs[uid] = request(requestOption);\n        });\n      });\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      this.setState({\n        uid: getUid()\n      });\n    }\n  }, {\n    key: \"abort\",\n    value: function abort(file) {\n      var reqs = this.reqs;\n\n      if (file) {\n        var uid = file.uid ? file.uid : file;\n\n        if (reqs[uid] && reqs[uid].abort) {\n          reqs[uid].abort();\n        }\n\n        delete reqs[uid];\n      } else {\n        Object.keys(reqs).forEach(function (uid) {\n          if (reqs[uid] && reqs[uid].abort) {\n            reqs[uid].abort();\n          }\n\n          delete reqs[uid];\n        });\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _classNames;\n\n      var _this$props2 = this.props,\n          Tag = _this$props2.component,\n          prefixCls = _this$props2.prefixCls,\n          className = _this$props2.className,\n          disabled = _this$props2.disabled,\n          id = _this$props2.id,\n          style = _this$props2.style,\n          multiple = _this$props2.multiple,\n          accept = _this$props2.accept,\n          children = _this$props2.children,\n          directory = _this$props2.directory,\n          openFileDialogOnClick = _this$props2.openFileDialogOnClick,\n          onMouseEnter = _this$props2.onMouseEnter,\n          onMouseLeave = _this$props2.onMouseLeave,\n          otherProps = _objectWithoutProperties(_this$props2, [\"component\", \"prefixCls\", \"className\", \"disabled\", \"id\", \"style\", \"multiple\", \"accept\", \"children\", \"directory\", \"openFileDialogOnClick\", \"onMouseEnter\", \"onMouseLeave\"]);\n\n      var cls = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, className, className), _classNames)); // because input don't have directory/webkitdirectory type declaration\n\n      var dirProps = directory ? {\n        directory: 'directory',\n        webkitdirectory: 'webkitdirectory'\n      } : {};\n      var events = disabled ? {} : {\n        onClick: openFileDialogOnClick ? this.onClick : function () {},\n        onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},\n        onMouseEnter: onMouseEnter,\n        onMouseLeave: onMouseLeave,\n        onDrop: this.onFileDrop,\n        onDragOver: this.onFileDrop,\n        tabIndex: '0'\n      };\n      return React.createElement(Tag, Object.assign({}, events, {\n        className: cls,\n        role: \"button\",\n        style: style\n      }), React.createElement(\"input\", Object.assign({}, pickAttrs(otherProps, {\n        aria: true,\n        data: true\n      }), {\n        id: id,\n        type: \"file\",\n        ref: this.saveFileInput,\n        onClick: function onClick(e) {\n          return e.stopPropagation();\n        },\n        key: this.state.uid,\n        style: {\n          display: 'none'\n        },\n        accept: accept\n      }, dirProps, {\n        multiple: multiple,\n        onChange: this.onChange\n      })), children);\n    }\n  }]);\n\n  return AjaxUploader;\n}(Component);\n\nexport default AjaxUploader;"]},"metadata":{},"sourceType":"module"}