vue-poster-editor
Version:
A poster editor based on Vue.js
60 lines (51 loc) • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _editorFileReader = require('./editor-file-reader.html');
var _editorFileReader2 = _interopRequireDefault(_editorFileReader);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
template: _editorFileReader2.default,
props: ['change', 'afterSelect', 'model', 'type', 'accept', 'title'],
data: function data() {
return {
readMethodsMap: {
'text': 'readAsText',
'url': 'readAsDataURL',
'buffer': 'readAsArrayBuffer',
'binary': 'readAsBinaryString'
}
};
},
computed: {
filePicker: function filePicker() {
return this.$refs.filePicker;
}
},
methods: {
set: function set(ret) {
if (this.change) {
this.change(ret);
} else {
this.model = ret;
}
},
onChange: function onChange(file) {
var self = this;
var reader = new FileReader();
var readMethod = this.readMethodsMap[this.type] || this.readMethodsMap.url;
reader.onload = function () {
self.set(reader.result);
};
reader[readMethod](file);
},
showPicker: function showPicker() {
this.filePicker.showPicker();
}
},
beforeDestroy: function beforeDestroy() {
this.$emit('destroy');
}
};
module.exports = exports['default'];