| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import accepts from 'attr-accept';
- import markdownListUtil from './MarkdownListUtil';
- class PasteHelper {
- constructor() {
- this.pasteText = this.pasteText.bind(this);
- }
- /**
- * paste text
- * @param {any} editor An editor instance of CodeMirror
- * @param {any} event
- */
- pasteText(editor, event) {
- // get data in clipboard
- const text = event.clipboardData.getData('text/plain');
- if (text.length == 0) {
- return;
- }
- markdownListUtil.pasteText(editor, event, text);
- }
- // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with
- /**
- * transplanted from react-dropzone
- * @see https://github.com/react-dropzone/react-dropzone/blob/master/src/utils/index.js
- *
- * @param {*} file
- * @param {*} accept
- */
- fileAccepted(file, accept) {
- return file.type === 'application/x-moz-file' || accepts(file, accept);
- }
- /**
- * transplanted from react-dropzone
- * @see https://github.com/react-dropzone/react-dropzone/blob/master/src/utils/index.js
- *
- * @param {*} file
- * @param {number} maxSize
- * @param {number} minSize
- */
- fileMatchSize(file, maxSize, minSize) {
- return file.size <= maxSize && file.size >= minSize;
- }
- }
- // singleton pattern
- const instance = new PasteHelper();
- Object.freeze(instance);
- export default instance;
|