Latest updates from IceHrmPro

This commit is contained in:
Thilina Pituwala
2020-05-20 18:47:29 +02:00
parent 60c92d7935
commit 7453a58aad
18012 changed files with 2089245 additions and 10173 deletions

162
web/node_modules/rc-upload/HISTORY.md generated vendored Normal file
View File

@@ -0,0 +1,162 @@
# History
----
### 3.0.0
- Drop support of IE8/9.
### 2.9.0
- Support `method`. #197
### 2.8.0
- `multiple` will works on drag upload.
### 2.7.0
- Support `transformFile` props to handle file before upload.
### 2.6.5
- fix `openFileDialogOnClick={false}` not to prevent on Enter event.
### 2.6.0 / 2018-09-21
- Add `openFileDialogOnClick`.
### 2.5.0 / 2018-06-12
- Support upload directory. [#114](https://github.com/react-component/upload/pull/114)
- Support `action={(file) => Promise}`. [#97](https://github.com/react-component/upload/pull/97)
- Fix a bluebird promise warning. [#110](https://github.com/react-component/upload/pull/110)
### 2.4.0 / 2017-07-15
- Add XHR for onSuccess callback by @xiangkaiy [!85](https://github.com/react-component/upload/pull/85)
### 2.3.8 / 2017-06-21
- fix issue #80 & #81 [#82](https://github.com/react-component/upload/pull/82)
### 2.3.5 / 2017-05-01
- Fix prop-types and create-react-class warning [!67](https://github.com/react-component/upload/pull/67)
### 2.3.4 / 2017-03-10
- disable upload progress listener in request if onPress is not set [!65](https://github.com/react-component/upload/pull/65)
### 2.3.3 / 2017-02-20
- beforeUpload add empty catch function when promise passed, fix [#64](https://github.com/react-component/upload/issues/64)
### 2.3.2 / 2016-12-30
- Fix crash if customRequest does not call onSuccess() / onError() [!60](https://github.com/react-component/upload/pull/60)
### 2.3.0 / 2016-12-12
- expose file list as argument to `beforeUpload` [!57](https://github.com/react-component/upload/pull/57)
### 2.2.0 / 2016-10-13
- support custom request option [!53](https://github.com/react-component/upload/pull/53)
### 2.1.1 / 2016-09-23
- support Blob file upload [!52](https://github.com/react-component/upload/pull/52)
### 2.1.0 / 2016-09-20
- add `className` prop
### 2.0.0 / 2016-08-10
- add abort api
- props.onStart's argument is always a single File
- add disabled prop
### 1.14.1 / 2016-07-19
- fix ajax multiple load
### 1.14.0 / 2016-07-19
- add component/style prop
### 1.13.0 / 2016-06-02
- add disabled state
- https://github.com/react-component/upload/issues/37
### 1.12.0 2016-05-10
- add supportServerRender prop
### 1.11.0 2016-05-03
- Allow all 2xx status as success status, not only 200. fix #34
- When `headers['X-Requested-With'] = null` , request do not set X-Requested-With as XMLHttpRequest , fix #33
### 1.9.0 2016-03-23
- pass file to data if data's type is function
### 1.8.1 2016-03-16
- fix InvalidStateError in IE 10
- fix #30
### 1.8.0 2016-01-14
- support custom XHR headers
### 1.7.2 2016-01-13
- add prop withCredentials config
### 1.7.0 2015-10-27
- react 0.14 support
- remove superagent
### 1.6.6 2015-09-29
- feat: add beforeUpload support, [#19](https://github.com/react-component/upload/pull/19)
### 1.5.2 2015-09-18
- fix: Fixed bug calling wrong method name [#13](https://github.com/react-component/upload/pull/13)
### 1.5.0 2015-09-16
- feat: add getFormContainer prop to decide container where form to be inserted.
### 1.4.4 2015-09-16
- feat: Added aria role and keyboard navigation, pr[#9](https://github.com/react-component/upload/pull/9)
### 1.4.2 2015-09-15
- fix: IframeUpload move form to body [#8](https://github.com/react-component/upload/pull/8)
### 1.4.0 2015-09-09
- onStart file argument change to a array when multiple files uploaded
### 1.3.0 2015-08-12
- onError arguments change to `err, responce, file`
### 1.2.3 2015-07-17
- support file drop
### 1.2.2 2015-06-25
- `fix` pr[#2](https://github.com/react-component/upload/pull/2)
### 1.2.1 2015-06-24
- `feat` Finish basic funcion

116
web/node_modules/rc-upload/README.md generated vendored Normal file
View File

@@ -0,0 +1,116 @@
# rc-upload
---
React Upload
[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![Test coverage][coveralls-image]][coveralls-url]
[![npm download][download-image]][download-url]
[npm-image]: http://img.shields.io/npm/v/rc-upload.svg?style=flat-square
[npm-url]: http://npmjs.org/package/rc-upload
[download-image]: https://img.shields.io/npm/dm/rc-upload.svg?style=flat-square
[download-url]: https://npmjs.org/package/rc-upload
[travis-image]: https://img.shields.io/travis/react-component/upload.svg?style=flat-square
[travis-url]: https://travis-ci.org/react-component/upload
[coveralls-image]: https://img.shields.io/coveralls/react-component/upload.svg?style=flat-square
[coveralls-url]: https://coveralls.io/r/react-component/upload?branch=master
## Development
```
npm install
npm start
```
## Example
http://localhost:8020/examples/
online example: http://react-component.github.io/upload/examples/simple.html
## Feature
* support IE11+, Chrome, Firefox, Safari
## install
[![rc-upload](https://nodei.co/npm/rc-upload.png)](https://npmjs.org/package/rc-upload)
## Usage
```js
var Upload = require('rc-upload');
var React = require('react');
React.render(<Upload />, container);
```
## API
### props
|name|type|default| description|
|-----|---|--------|----|
|name | string | file| file param post to server |
|style | object | {}| root component inline style |
|className | string | - | root component className |
|disabled | boolean | false | whether disabled |
|component | "div"|"span" | "span"| wrap component name |
|onReady | function | | only call when supportServerRender is true, upload is rendered completely |
|action| string &#124; function(file): string &#124; Promise&lt;string&gt; | | form action url |
|method | string | post | request method |
|directory| boolean | false | support upload whole directory |
|data| object/function(file) | | other data object to post or a function which returns a data object |
|headers| object | {} | http headers to post, available in modern browsers |
|accept | string | | input accept attribute |
|multiple | boolean | false | only support ie10+|
|onStart | function| | start upload file |
|onError| function| | error callback |
|onSuccess | function | | success callback |
|onProgress | function || progress callback, only for modern browsers|
|beforeUpload| function |null| before upload check, return false or a rejected Promise will stop upload, only for modern browsers|
|customRequest | function | null | provide an override for the default xhr behavior for additional customization|
|withCredentials | boolean | false | ajax upload with cookie send |
|openFileDialogOnClick | boolean | true | useful for drag only upload as it does not trigger on enter key or click event |
|transformFile | function(file): Promise&lt;blob&gt; | | transform file before request |
#### onError arguments
1. `err`: request error message
2. `response`: request response, not support on iframeUpload
3. `file`: upload file
### onSuccess arguments
1. `result`: response body
2. `file`: upload file
3. `xhr`: xhr header, only for modern browsers which support AJAX upload. since
2.4.0
### customRequest
Allows for advanced customization by overriding default behavior in AjaxUploader. Provide your own XMLHttpRequest calls to interface with custom backend processes or interact with AWS S3 service through the aws-sdk-js package.
customRequest callback is passed an object with:
* `onProgress: (event: { percent: number }): void`
* `onError: (event: Error, body?: Object): void`
* `onSuccess: (body: Object): void`
* `data: Object`
* `filename: String`
* `file: File`
* `withCredentials: Boolean`
* `action: String`
* `headers: Object`
### methods
abort(file?: File) => void: abort the uploading file
## License
rc-upload is released under the MIT license.

289
web/node_modules/rc-upload/es/AjaxUploader.js generated vendored Normal file
View File

@@ -0,0 +1,289 @@
import _extends from 'babel-runtime/helpers/extends';
import _defineProperty from 'babel-runtime/helpers/defineProperty';
import _objectWithoutProperties from 'babel-runtime/helpers/objectWithoutProperties';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _createClass from 'babel-runtime/helpers/createClass';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
/* eslint react/no-is-mounted:0,react/sort-comp:0,react/prop-types:0 */
import React, { Component } from 'react';
import classNames from 'classnames';
import defaultRequest from './request';
import getUid from './uid';
import attrAccept from './attr-accept';
import traverseFileTree from './traverseFileTree';
var dataOrAriaAttributeProps = function dataOrAriaAttributeProps(props) {
return Object.keys(props).reduce(function (acc, key) {
if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {
acc[key] = props[key];
}
return acc;
}, {});
};
var AjaxUploader = function (_Component) {
_inherits(AjaxUploader, _Component);
function AjaxUploader() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, AjaxUploader);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AjaxUploader.__proto__ || Object.getPrototypeOf(AjaxUploader)).call.apply(_ref, [this].concat(args))), _this), _this.state = { uid: getUid() }, _this.reqs = {}, _this.onChange = function (e) {
var files = e.target.files;
_this.uploadFiles(files);
_this.reset();
}, _this.onClick = function () {
var el = _this.fileInput;
if (!el) {
return;
}
var children = _this.props.children;
if (children && children.type === 'button') {
el.parentNode.focus();
el.parentNode.querySelector('button').blur();
}
el.click();
}, _this.onKeyDown = function (e) {
if (e.key === 'Enter') {
_this.onClick();
}
}, _this.onFileDrop = function (e) {
var multiple = _this.props.multiple;
e.preventDefault();
if (e.type === 'dragover') {
return;
}
if (_this.props.directory) {
traverseFileTree(e.dataTransfer.items, _this.uploadFiles, function (_file) {
return attrAccept(_file, _this.props.accept);
});
} else {
var files = Array.prototype.slice.call(e.dataTransfer.files).filter(function (file) {
return attrAccept(file, _this.props.accept);
});
if (multiple === false) {
files = files.slice(0, 1);
}
_this.uploadFiles(files);
}
}, _this.uploadFiles = function (files) {
var postFiles = Array.prototype.slice.call(files);
postFiles.map(function (file) {
file.uid = getUid();
return file;
}).forEach(function (file) {
_this.upload(file, postFiles);
});
}, _this.saveFileInput = function (node) {
_this.fileInput = node;
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(AjaxUploader, [{
key: 'componentDidMount',
value: function componentDidMount() {
this._isMounted = true;
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this._isMounted = false;
this.abort();
}
}, {
key: 'upload',
value: function upload(file, fileList) {
var _this2 = this;
var props = this.props;
if (!props.beforeUpload) {
// always async in case use react state to keep fileList
return setTimeout(function () {
return _this2.post(file);
}, 0);
}
var before = props.beforeUpload(file, fileList);
if (before && before.then) {
before.then(function (processedFile) {
var processedFileType = Object.prototype.toString.call(processedFile);
if (processedFileType === '[object File]' || processedFileType === '[object Blob]') {
return _this2.post(processedFile);
}
return _this2.post(file);
})['catch'](function (e) {
console && console.log(e); // eslint-disable-line
});
} else if (before !== false) {
setTimeout(function () {
return _this2.post(file);
}, 0);
}
}
}, {
key: 'post',
value: function post(file) {
var _this3 = this;
if (!this._isMounted) {
return;
}
var props = this.props;
var data = props.data;
var onStart = props.onStart,
onProgress = props.onProgress,
_props$transformFile = props.transformFile,
transformFile = _props$transformFile === undefined ? function (originFile) {
return originFile;
} : _props$transformFile;
new Promise(function (resolve) {
var action = props.action;
if (typeof action === 'function') {
return resolve(action(file));
}
resolve(action);
}).then(function (action) {
var uid = file.uid;
var request = props.customRequest || defaultRequest;
var transform = Promise.resolve(transformFile(file))['catch'](function (e) {
console.error(e); // eslint-disable-line no-console
});
transform.then(function (transformedFile) {
if (typeof data === 'function') {
data = data(file);
}
var requestOption = {
action: action,
filename: props.name,
data: data,
file: transformedFile,
headers: props.headers,
withCredentials: props.withCredentials,
method: props.method || 'post',
onProgress: onProgress ? function (e) {
onProgress(e, file);
} : null,
onSuccess: function onSuccess(ret, xhr) {
delete _this3.reqs[uid];
props.onSuccess(ret, file, xhr);
},
onError: function onError(err, ret) {
delete _this3.reqs[uid];
props.onError(err, ret, file);
}
};
_this3.reqs[uid] = request(requestOption);
onStart(file);
});
});
}
}, {
key: 'reset',
value: function reset() {
this.setState({
uid: getUid()
});
}
}, {
key: 'abort',
value: function abort(file) {
var reqs = this.reqs;
if (file) {
var uid = file;
if (file && file.uid) {
uid = file.uid;
}
if (reqs[uid] && reqs[uid].abort) {
reqs[uid].abort();
}
delete reqs[uid];
} else {
Object.keys(reqs).forEach(function (uid) {
if (reqs[uid] && reqs[uid].abort) {
reqs[uid].abort();
}
delete reqs[uid];
});
}
}
}, {
key: 'render',
value: function render() {
var _classNames;
var _props = this.props,
Tag = _props.component,
prefixCls = _props.prefixCls,
className = _props.className,
disabled = _props.disabled,
id = _props.id,
style = _props.style,
multiple = _props.multiple,
accept = _props.accept,
children = _props.children,
directory = _props.directory,
openFileDialogOnClick = _props.openFileDialogOnClick,
otherProps = _objectWithoutProperties(_props, ['component', 'prefixCls', 'className', 'disabled', 'id', 'style', 'multiple', 'accept', 'children', 'directory', 'openFileDialogOnClick']);
var cls = classNames((_classNames = {}, _defineProperty(_classNames, prefixCls, true), _defineProperty(_classNames, prefixCls + '-disabled', disabled), _defineProperty(_classNames, className, className), _classNames));
var events = disabled ? {} : {
onClick: openFileDialogOnClick ? this.onClick : function () {},
onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},
onDrop: this.onFileDrop,
onDragOver: this.onFileDrop,
tabIndex: '0'
};
return React.createElement(
Tag,
_extends({}, events, {
className: cls,
role: 'button',
style: style
}),
React.createElement('input', _extends({}, dataOrAriaAttributeProps(otherProps), {
id: id,
type: 'file',
ref: this.saveFileInput,
onClick: function onClick(e) {
return e.stopPropagation();
} // https://github.com/ant-design/ant-design/issues/19948
, key: this.state.uid,
style: { display: 'none' },
accept: accept,
directory: directory ? 'directory' : null,
webkitdirectory: directory ? 'webkitdirectory' : null,
multiple: multiple,
onChange: this.onChange
})),
children
);
}
}]);
return AjaxUploader;
}(Component);
export default AjaxUploader;

70
web/node_modules/rc-upload/es/Upload.js generated vendored Normal file
View File

@@ -0,0 +1,70 @@
import _extends from 'babel-runtime/helpers/extends';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _createClass from 'babel-runtime/helpers/createClass';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
/* eslint react/prop-types:0 */
import React, { Component } from 'react';
import AjaxUpload from './AjaxUploader';
function empty() {}
var Upload = function (_Component) {
_inherits(Upload, _Component);
function Upload() {
var _ref;
var _temp, _this, _ret;
_classCallCheck(this, Upload);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Upload.__proto__ || Object.getPrototypeOf(Upload)).call.apply(_ref, [this].concat(args))), _this), _this.saveUploader = function (node) {
_this.uploader = node;
}, _temp), _possibleConstructorReturn(_this, _ret);
}
_createClass(Upload, [{
key: 'componentDidMount',
value: function componentDidMount() {
this.props.onReady();
}
}, {
key: 'abort',
value: function abort(file) {
this.uploader.abort(file);
}
}, {
key: 'render',
value: function render() {
return React.createElement(AjaxUpload, _extends({}, this.props, { ref: this.saveUploader }));
}
}]);
return Upload;
}(Component);
Upload.defaultProps = {
component: 'span',
prefixCls: 'rc-upload',
data: {},
headers: {},
name: 'file',
multipart: false,
onReady: empty,
onStart: empty,
onError: empty,
onSuccess: empty,
multiple: false,
beforeUpload: null,
customRequest: null,
withCredentials: false,
openFileDialogOnClick: true
};
export default Upload;

24
web/node_modules/rc-upload/es/attr-accept.js generated vendored Normal file
View File

@@ -0,0 +1,24 @@
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
export default (function (file, acceptedFiles) {
if (file && acceptedFiles) {
var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');
var fileName = file.name || '';
var mimeType = file.type || '';
var baseMimeType = mimeType.replace(/\/.*$/, '');
return acceptedFilesArray.some(function (type) {
var validType = type.trim();
if (validType.charAt(0) === '.') {
return endsWith(fileName.toLowerCase(), validType.toLowerCase());
} else if (/\/\*$/.test(validType)) {
// This is something like a image/* mime type
return baseMimeType === validType.replace(/\/.*$/, '');
}
return mimeType === validType;
});
}
return true;
});

4
web/node_modules/rc-upload/es/index.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
// export this package's api
import Upload from './Upload';
export default Upload;

112
web/node_modules/rc-upload/es/request.js generated vendored Normal file
View File

@@ -0,0 +1,112 @@
function getError(option, xhr) {
var msg = 'cannot ' + option.method + ' ' + option.action + ' ' + xhr.status + '\'';
var err = new Error(msg);
err.status = xhr.status;
err.method = option.method;
err.url = option.action;
return err;
}
function getBody(xhr) {
var text = xhr.responseText || xhr.response;
if (!text) {
return text;
}
try {
return JSON.parse(text);
} catch (e) {
return text;
}
}
// option {
// onProgress: (event: { percent: number }): void,
// onError: (event: Error, body?: Object): void,
// onSuccess: (body: Object): void,
// data: Object,
// filename: String,
// file: File,
// withCredentials: Boolean,
// action: String,
// headers: Object,
// }
export default function upload(option) {
var xhr = new XMLHttpRequest();
if (option.onProgress && xhr.upload) {
xhr.upload.onprogress = function progress(e) {
if (e.total > 0) {
e.percent = e.loaded / e.total * 100;
}
option.onProgress(e);
};
}
var formData = new FormData();
if (option.data) {
Object.keys(option.data).forEach(function (key) {
var value = option.data[key];
// support key-value array data
if (Array.isArray(value)) {
value.forEach(function (item) {
// { list: [ 11, 22 ] }
// formData.append('list[]', 11);
formData.append(key + '[]', item);
});
return;
}
formData.append(key, option.data[key]);
});
}
if (option.file instanceof Blob) {
formData.append(option.filename, option.file, option.file.name);
} else {
formData.append(option.filename, option.file);
}
xhr.onerror = function error(e) {
option.onError(e);
};
xhr.onload = function onload() {
// allow success when 2xx status
// see https://github.com/react-component/upload/issues/34
if (xhr.status < 200 || xhr.status >= 300) {
return option.onError(getError(option, xhr), getBody(xhr));
}
option.onSuccess(getBody(xhr), xhr);
};
xhr.open(option.method, option.action, true);
// Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179
if (option.withCredentials && 'withCredentials' in xhr) {
xhr.withCredentials = true;
}
var headers = option.headers || {};
// when set headers['X-Requested-With'] = null , can close default XHR header
// see https://github.com/react-component/upload/issues/33
if (headers['X-Requested-With'] !== null) {
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
}
for (var h in headers) {
if (headers.hasOwnProperty(h) && headers[h] !== null) {
xhr.setRequestHeader(h, headers[h]);
}
}
xhr.send(formData);
return {
abort: function abort() {
xhr.abort();
}
};
}

81
web/node_modules/rc-upload/es/traverseFileTree.js generated vendored Normal file
View File

@@ -0,0 +1,81 @@
function loopFiles(item, callback) {
var dirReader = item.createReader();
var fileList = [];
function sequence() {
dirReader.readEntries(function (entries) {
var entryList = Array.prototype.slice.apply(entries);
fileList = fileList.concat(entryList);
// Check if all the file has been viewed
var isFinished = !entryList.length;
if (isFinished) {
callback(fileList);
} else {
sequence();
}
});
}
sequence();
}
var traverseFileTree = function traverseFileTree(files, callback, isAccepted) {
var _traverseFileTree = function _traverseFileTree(item, path) {
path = path || '';
if (item.isFile) {
item.file(function (file) {
if (isAccepted(file)) {
// https://github.com/ant-design/ant-design/issues/16426
if (item.fullPath && !file.webkitRelativePath) {
Object.defineProperties(file, {
webkitRelativePath: {
writable: true
}
});
file.webkitRelativePath = item.fullPath.replace(/^\//, '');
Object.defineProperties(file, {
webkitRelativePath: {
writable: false
}
});
}
callback([file]);
}
});
} else if (item.isDirectory) {
loopFiles(item, function (entries) {
entries.forEach(function (entryItem) {
_traverseFileTree(entryItem, '' + path + item.name + '/');
});
});
}
};
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var file = _step.value;
_traverseFileTree(file.webkitGetAsEntry());
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
};
export default traverseFileTree;

6
web/node_modules/rc-upload/es/uid.js generated vendored Normal file
View File

@@ -0,0 +1,6 @@
var now = +new Date();
var index = 0;
export default function uid() {
return "rc-upload-" + now + "-" + ++index;
}

335
web/node_modules/rc-upload/lib/AjaxUploader.js generated vendored Normal file
View File

@@ -0,0 +1,335 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _request = require('./request');
var _request2 = _interopRequireDefault(_request);
var _uid = require('./uid');
var _uid2 = _interopRequireDefault(_uid);
var _attrAccept = require('./attr-accept');
var _attrAccept2 = _interopRequireDefault(_attrAccept);
var _traverseFileTree = require('./traverseFileTree');
var _traverseFileTree2 = _interopRequireDefault(_traverseFileTree);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
/* eslint react/no-is-mounted:0,react/sort-comp:0,react/prop-types:0 */
var dataOrAriaAttributeProps = function dataOrAriaAttributeProps(props) {
return Object.keys(props).reduce(function (acc, key) {
if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {
acc[key] = props[key];
}
return acc;
}, {});
};
var AjaxUploader = function (_Component) {
(0, _inherits3['default'])(AjaxUploader, _Component);
function AjaxUploader() {
var _ref;
var _temp, _this, _ret;
(0, _classCallCheck3['default'])(this, AjaxUploader);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref = AjaxUploader.__proto__ || Object.getPrototypeOf(AjaxUploader)).call.apply(_ref, [this].concat(args))), _this), _this.state = { uid: (0, _uid2['default'])() }, _this.reqs = {}, _this.onChange = function (e) {
var files = e.target.files;
_this.uploadFiles(files);
_this.reset();
}, _this.onClick = function () {
var el = _this.fileInput;
if (!el) {
return;
}
var children = _this.props.children;
if (children && children.type === 'button') {
el.parentNode.focus();
el.parentNode.querySelector('button').blur();
}
el.click();
}, _this.onKeyDown = function (e) {
if (e.key === 'Enter') {
_this.onClick();
}
}, _this.onFileDrop = function (e) {
var multiple = _this.props.multiple;
e.preventDefault();
if (e.type === 'dragover') {
return;
}
if (_this.props.directory) {
(0, _traverseFileTree2['default'])(e.dataTransfer.items, _this.uploadFiles, function (_file) {
return (0, _attrAccept2['default'])(_file, _this.props.accept);
});
} else {
var files = Array.prototype.slice.call(e.dataTransfer.files).filter(function (file) {
return (0, _attrAccept2['default'])(file, _this.props.accept);
});
if (multiple === false) {
files = files.slice(0, 1);
}
_this.uploadFiles(files);
}
}, _this.uploadFiles = function (files) {
var postFiles = Array.prototype.slice.call(files);
postFiles.map(function (file) {
file.uid = (0, _uid2['default'])();
return file;
}).forEach(function (file) {
_this.upload(file, postFiles);
});
}, _this.saveFileInput = function (node) {
_this.fileInput = node;
}, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
}
(0, _createClass3['default'])(AjaxUploader, [{
key: 'componentDidMount',
value: function componentDidMount() {
this._isMounted = true;
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this._isMounted = false;
this.abort();
}
}, {
key: 'upload',
value: function upload(file, fileList) {
var _this2 = this;
var props = this.props;
if (!props.beforeUpload) {
// always async in case use react state to keep fileList
return setTimeout(function () {
return _this2.post(file);
}, 0);
}
var before = props.beforeUpload(file, fileList);
if (before && before.then) {
before.then(function (processedFile) {
var processedFileType = Object.prototype.toString.call(processedFile);
if (processedFileType === '[object File]' || processedFileType === '[object Blob]') {
return _this2.post(processedFile);
}
return _this2.post(file);
})['catch'](function (e) {
console && console.log(e); // eslint-disable-line
});
} else if (before !== false) {
setTimeout(function () {
return _this2.post(file);
}, 0);
}
}
}, {
key: 'post',
value: function post(file) {
var _this3 = this;
if (!this._isMounted) {
return;
}
var props = this.props;
var data = props.data;
var onStart = props.onStart,
onProgress = props.onProgress,
_props$transformFile = props.transformFile,
transformFile = _props$transformFile === undefined ? function (originFile) {
return originFile;
} : _props$transformFile;
new Promise(function (resolve) {
var action = props.action;
if (typeof action === 'function') {
return resolve(action(file));
}
resolve(action);
}).then(function (action) {
var uid = file.uid;
var request = props.customRequest || _request2['default'];
var transform = Promise.resolve(transformFile(file))['catch'](function (e) {
console.error(e); // eslint-disable-line no-console
});
transform.then(function (transformedFile) {
if (typeof data === 'function') {
data = data(file);
}
var requestOption = {
action: action,
filename: props.name,
data: data,
file: transformedFile,
headers: props.headers,
withCredentials: props.withCredentials,
method: props.method || 'post',
onProgress: onProgress ? function (e) {
onProgress(e, file);
} : null,
onSuccess: function onSuccess(ret, xhr) {
delete _this3.reqs[uid];
props.onSuccess(ret, file, xhr);
},
onError: function onError(err, ret) {
delete _this3.reqs[uid];
props.onError(err, ret, file);
}
};
_this3.reqs[uid] = request(requestOption);
onStart(file);
});
});
}
}, {
key: 'reset',
value: function reset() {
this.setState({
uid: (0, _uid2['default'])()
});
}
}, {
key: 'abort',
value: function abort(file) {
var reqs = this.reqs;
if (file) {
var uid = file;
if (file && file.uid) {
uid = file.uid;
}
if (reqs[uid] && reqs[uid].abort) {
reqs[uid].abort();
}
delete reqs[uid];
} else {
Object.keys(reqs).forEach(function (uid) {
if (reqs[uid] && reqs[uid].abort) {
reqs[uid].abort();
}
delete reqs[uid];
});
}
}
}, {
key: 'render',
value: function render() {
var _classNames;
var _props = this.props,
Tag = _props.component,
prefixCls = _props.prefixCls,
className = _props.className,
disabled = _props.disabled,
id = _props.id,
style = _props.style,
multiple = _props.multiple,
accept = _props.accept,
children = _props.children,
directory = _props.directory,
openFileDialogOnClick = _props.openFileDialogOnClick,
otherProps = (0, _objectWithoutProperties3['default'])(_props, ['component', 'prefixCls', 'className', 'disabled', 'id', 'style', 'multiple', 'accept', 'children', 'directory', 'openFileDialogOnClick']);
var cls = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls, true), (0, _defineProperty3['default'])(_classNames, prefixCls + '-disabled', disabled), (0, _defineProperty3['default'])(_classNames, className, className), _classNames));
var events = disabled ? {} : {
onClick: openFileDialogOnClick ? this.onClick : function () {},
onKeyDown: openFileDialogOnClick ? this.onKeyDown : function () {},
onDrop: this.onFileDrop,
onDragOver: this.onFileDrop,
tabIndex: '0'
};
return _react2['default'].createElement(
Tag,
(0, _extends3['default'])({}, events, {
className: cls,
role: 'button',
style: style
}),
_react2['default'].createElement('input', (0, _extends3['default'])({}, dataOrAriaAttributeProps(otherProps), {
id: id,
type: 'file',
ref: this.saveFileInput,
onClick: function onClick(e) {
return e.stopPropagation();
} // https://github.com/ant-design/ant-design/issues/19948
, key: this.state.uid,
style: { display: 'none' },
accept: accept,
directory: directory ? 'directory' : null,
webkitdirectory: directory ? 'webkitdirectory' : null,
multiple: multiple,
onChange: this.onChange
})),
children
);
}
}]);
return AjaxUploader;
}(_react.Component);
exports['default'] = AjaxUploader;
module.exports = exports['default'];

96
web/node_modules/rc-upload/lib/Upload.js generated vendored Normal file
View File

@@ -0,0 +1,96 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _AjaxUploader = require('./AjaxUploader');
var _AjaxUploader2 = _interopRequireDefault(_AjaxUploader);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
/* eslint react/prop-types:0 */
function empty() {}
var Upload = function (_Component) {
(0, _inherits3['default'])(Upload, _Component);
function Upload() {
var _ref;
var _temp, _this, _ret;
(0, _classCallCheck3['default'])(this, Upload);
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return _ret = (_temp = (_this = (0, _possibleConstructorReturn3['default'])(this, (_ref = Upload.__proto__ || Object.getPrototypeOf(Upload)).call.apply(_ref, [this].concat(args))), _this), _this.saveUploader = function (node) {
_this.uploader = node;
}, _temp), (0, _possibleConstructorReturn3['default'])(_this, _ret);
}
(0, _createClass3['default'])(Upload, [{
key: 'componentDidMount',
value: function componentDidMount() {
this.props.onReady();
}
}, {
key: 'abort',
value: function abort(file) {
this.uploader.abort(file);
}
}, {
key: 'render',
value: function render() {
return _react2['default'].createElement(_AjaxUploader2['default'], (0, _extends3['default'])({}, this.props, { ref: this.saveUploader }));
}
}]);
return Upload;
}(_react.Component);
Upload.defaultProps = {
component: 'span',
prefixCls: 'rc-upload',
data: {},
headers: {},
name: 'file',
multipart: false,
onReady: empty,
onStart: empty,
onError: empty,
onSuccess: empty,
multiple: false,
beforeUpload: null,
customRequest: null,
withCredentials: false,
openFileDialogOnClick: true
};
exports['default'] = Upload;
module.exports = exports['default'];

31
web/node_modules/rc-upload/lib/attr-accept.js generated vendored Normal file
View File

@@ -0,0 +1,31 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
function endsWith(str, suffix) {
return str.indexOf(suffix, str.length - suffix.length) !== -1;
}
exports['default'] = function (file, acceptedFiles) {
if (file && acceptedFiles) {
var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');
var fileName = file.name || '';
var mimeType = file.type || '';
var baseMimeType = mimeType.replace(/\/.*$/, '');
return acceptedFilesArray.some(function (type) {
var validType = type.trim();
if (validType.charAt(0) === '.') {
return endsWith(fileName.toLowerCase(), validType.toLowerCase());
} else if (/\/\*$/.test(validType)) {
// This is something like a image/* mime type
return baseMimeType === validType.replace(/\/.*$/, '');
}
return mimeType === validType;
});
}
return true;
};
module.exports = exports['default'];

15
web/node_modules/rc-upload/lib/index.js generated vendored Normal file
View File

@@ -0,0 +1,15 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _Upload = require('./Upload');
var _Upload2 = _interopRequireDefault(_Upload);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
exports['default'] = _Upload2['default']; // export this package's api
module.exports = exports['default'];

119
web/node_modules/rc-upload/lib/request.js generated vendored Normal file
View File

@@ -0,0 +1,119 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports['default'] = upload;
function getError(option, xhr) {
var msg = 'cannot ' + option.method + ' ' + option.action + ' ' + xhr.status + '\'';
var err = new Error(msg);
err.status = xhr.status;
err.method = option.method;
err.url = option.action;
return err;
}
function getBody(xhr) {
var text = xhr.responseText || xhr.response;
if (!text) {
return text;
}
try {
return JSON.parse(text);
} catch (e) {
return text;
}
}
// option {
// onProgress: (event: { percent: number }): void,
// onError: (event: Error, body?: Object): void,
// onSuccess: (body: Object): void,
// data: Object,
// filename: String,
// file: File,
// withCredentials: Boolean,
// action: String,
// headers: Object,
// }
function upload(option) {
var xhr = new XMLHttpRequest();
if (option.onProgress && xhr.upload) {
xhr.upload.onprogress = function progress(e) {
if (e.total > 0) {
e.percent = e.loaded / e.total * 100;
}
option.onProgress(e);
};
}
var formData = new FormData();
if (option.data) {
Object.keys(option.data).forEach(function (key) {
var value = option.data[key];
// support key-value array data
if (Array.isArray(value)) {
value.forEach(function (item) {
// { list: [ 11, 22 ] }
// formData.append('list[]', 11);
formData.append(key + '[]', item);
});
return;
}
formData.append(key, option.data[key]);
});
}
if (option.file instanceof Blob) {
formData.append(option.filename, option.file, option.file.name);
} else {
formData.append(option.filename, option.file);
}
xhr.onerror = function error(e) {
option.onError(e);
};
xhr.onload = function onload() {
// allow success when 2xx status
// see https://github.com/react-component/upload/issues/34
if (xhr.status < 200 || xhr.status >= 300) {
return option.onError(getError(option, xhr), getBody(xhr));
}
option.onSuccess(getBody(xhr), xhr);
};
xhr.open(option.method, option.action, true);
// Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179
if (option.withCredentials && 'withCredentials' in xhr) {
xhr.withCredentials = true;
}
var headers = option.headers || {};
// when set headers['X-Requested-With'] = null , can close default XHR header
// see https://github.com/react-component/upload/issues/33
if (headers['X-Requested-With'] !== null) {
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
}
for (var h in headers) {
if (headers.hasOwnProperty(h) && headers[h] !== null) {
xhr.setRequestHeader(h, headers[h]);
}
}
xhr.send(formData);
return {
abort: function abort() {
xhr.abort();
}
};
}
module.exports = exports['default'];

87
web/node_modules/rc-upload/lib/traverseFileTree.js generated vendored Normal file
View File

@@ -0,0 +1,87 @@
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
function loopFiles(item, callback) {
var dirReader = item.createReader();
var fileList = [];
function sequence() {
dirReader.readEntries(function (entries) {
var entryList = Array.prototype.slice.apply(entries);
fileList = fileList.concat(entryList);
// Check if all the file has been viewed
var isFinished = !entryList.length;
if (isFinished) {
callback(fileList);
} else {
sequence();
}
});
}
sequence();
}
var traverseFileTree = function traverseFileTree(files, callback, isAccepted) {
var _traverseFileTree = function _traverseFileTree(item, path) {
path = path || '';
if (item.isFile) {
item.file(function (file) {
if (isAccepted(file)) {
// https://github.com/ant-design/ant-design/issues/16426
if (item.fullPath && !file.webkitRelativePath) {
Object.defineProperties(file, {
webkitRelativePath: {
writable: true
}
});
file.webkitRelativePath = item.fullPath.replace(/^\//, '');
Object.defineProperties(file, {
webkitRelativePath: {
writable: false
}
});
}
callback([file]);
}
});
} else if (item.isDirectory) {
loopFiles(item, function (entries) {
entries.forEach(function (entryItem) {
_traverseFileTree(entryItem, '' + path + item.name + '/');
});
});
}
};
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var file = _step.value;
_traverseFileTree(file.webkitGetAsEntry());
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator['return']) {
_iterator['return']();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
};
exports['default'] = traverseFileTree;
module.exports = exports['default'];

13
web/node_modules/rc-upload/lib/uid.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = uid;
var now = +new Date();
var index = 0;
function uid() {
return "rc-upload-" + now + "-" + ++index;
}
module.exports = exports['default'];

99
web/node_modules/rc-upload/package.json generated vendored Normal file
View File

@@ -0,0 +1,99 @@
{
"_from": "rc-upload@~3.0.0",
"_id": "rc-upload@3.0.4",
"_inBundle": false,
"_integrity": "sha512-dTCvj1iHxjHG0qo5UyN2ZmtueG9GG3xrOhOwnjsehaoOvl0TOjLbHkUIPPqLZk+wHb57Ue4KB7c3+IMgkDoBvw==",
"_location": "/rc-upload",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "rc-upload@~3.0.0",
"name": "rc-upload",
"escapedName": "rc-upload",
"rawSpec": "~3.0.0",
"saveSpec": null,
"fetchSpec": "~3.0.0"
},
"_requiredBy": [
"/antd"
],
"_resolved": "https://registry.npmjs.org/rc-upload/-/rc-upload-3.0.4.tgz",
"_shasum": "5fd8ba9eefc1e466225240ae997404693d86fa09",
"_spec": "rc-upload@~3.0.0",
"_where": "/Users/thilina/TestProjects/icehrm-pro/web/node_modules/antd",
"bugs": {
"url": "http://github.com/react-component/upload/issues"
},
"bundleDependencies": false,
"config": {
"port": 8020
},
"dependencies": {
"babel-runtime": "6.x",
"classnames": "^2.2.5"
},
"deprecated": false,
"description": "upload ui component for react",
"devDependencies": {
"axios": "^0.19.0",
"co-busboy": "^1.3.0",
"coveralls": "^3.0.3",
"expect.js": "0.3.x",
"fs-extra": "^9.0.0",
"gh-pages": "^2.2.0",
"jest": "^20.0.1",
"pre-commit": "1.x",
"raf": "^3.4.0",
"rc-tools": "6.x",
"react": "^16.0.0",
"react-dom": "^16.0.0",
"sinon": "8.1.1",
"vinyl-fs": "^3.0.3"
},
"files": [
"lib",
"es"
],
"homepage": "http://github.com/react-component/upload",
"jest": {
"collectCoverageFrom": [
"src/*"
],
"coveragePathIgnorePatterns": [
"src/IframeUploader.jsx"
],
"transform": {
"\\.tsx?$": "./node_modules/rc-tools/scripts/jestPreprocessor.js",
"\\.jsx?$": "./node_modules/rc-tools/scripts/jestPreprocessor.js"
}
},
"keywords": [
"react",
"react-component",
"react-upload",
"upload"
],
"license": "MIT",
"main": "./lib/index",
"module": "./es/index",
"name": "rc-upload",
"pre-commit": [
"lint"
],
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/react-component/upload.git"
},
"scripts": {
"build": "rc-tools run build",
"compile": "rc-tools run compile --babel-runtime",
"coverage": "jest --coverage && cat ./coverage/lcov.info | coveralls",
"gh-pages": "rc-tools run gh-pages",
"lint": "rc-tools run lint",
"pub": "rc-tools run pub --babel-runtime",
"start": "node server",
"test": "jest --setupTestFrameworkScriptFile=raf/polyfill"
},
"version": "3.0.4"
}