choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
114 lines (91 loc) • 3.46 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _tslib = require("tslib");
var _mobx = require("mobx");
var _isNil = _interopRequireDefault(require("lodash/isNil"));
var extReg = /(.*)\.([^.]*)$/;
var AttachmentFile = /*#__PURE__*/function () {
function AttachmentFile(file) {
var _this = this;
(0, _classCallCheck2["default"])(this, AttachmentFile);
(0, _mobx.runInAction)(function () {
_this.name = '';
_this.filename = '';
_this.size = 0;
_this.type = '';
_this.uid = '';
_this.creationDate = new Date();
_this.load(file);
});
}
(0, _createClass2["default"])(AttachmentFile, [{
key: "percent",
get: function get() {
var chunks = this.chunks;
if (chunks) {
var length = chunks.length;
return chunks.reduce(function (sum, chunk) {
var status = chunk.status,
_chunk$percent = chunk.percent,
percent = _chunk$percent === void 0 ? status === 'success' ? 100 : 0 : _chunk$percent;
return sum + percent / length;
}, 0);
}
return this.$percent;
},
set: function set(percent) {
var _this2 = this;
(0, _mobx.runInAction)(function () {
_this2.$percent = percent;
});
}
}, {
key: "load",
value: function load(file) {
var _this3 = this;
var name = file.name;
if (name) {
var matches = name.match(extReg);
if (matches && matches.length > 2) {
this.ext = matches[2] ? matches[2].toLowerCase() : '';
this.filename = matches[1];
} else {
this.ext = '';
this.filename = name;
}
}
Object.keys(file).forEach(function (key) {
var value = file[key];
if (!(0, _isNil["default"])(value)) {
switch (key) {
case 'uid':
_this3.uid = String(value);
break;
default:
_this3[key] = value;
}
}
});
}
}]);
return AttachmentFile;
}();
exports["default"] = AttachmentFile;
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "name", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "size", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "url", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "filename", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "ext", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "status", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "$percent", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "error", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "errorMessage", void 0);
(0, _tslib.__decorate)([_mobx.observable], AttachmentFile.prototype, "invalid", void 0);
(0, _tslib.__decorate)([_mobx.action], AttachmentFile.prototype, "load", null);
//# sourceMappingURL=AttachmentFile.js.map
;