From 4e64583a0b6175d2c9a6729ffde1472dd55d389c Mon Sep 17 00:00:00 2001 From: Wu Cheng-Han Date: Fri, 15 May 2015 12:58:13 +0800 Subject: Marked as 0.2.8 --- .../codemirror.inline-attachment.js | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100755 public/vendor/inlineAttachment/codemirror.inline-attachment.js (limited to 'public/vendor/inlineAttachment/codemirror.inline-attachment.js') diff --git a/public/vendor/inlineAttachment/codemirror.inline-attachment.js b/public/vendor/inlineAttachment/codemirror.inline-attachment.js new file mode 100755 index 00000000..7816d1c8 --- /dev/null +++ b/public/vendor/inlineAttachment/codemirror.inline-attachment.js @@ -0,0 +1,95 @@ +/*jslint newcap: true */ +/*global inlineAttachment: false */ +/** + * CodeMirror version for inlineAttachment + * + * Call inlineAttachment.attach(editor) to attach to a codemirror instance + */ +(function() { + 'use strict'; + + var codeMirrorEditor = function(instance) { + + if (!instance.getWrapperElement) { + throw "Invalid CodeMirror object given"; + } + + this.codeMirror = instance; + }; + + codeMirrorEditor.prototype.getValue = function() { + return this.codeMirror.getValue(); + }; + + codeMirrorEditor.prototype.insertValue = function(val) { + this.codeMirror.replaceSelection(val); + }; + + codeMirrorEditor.prototype.setValue = function(val) { + var cursor = this.codeMirror.getCursor(); + this.codeMirror.setValue(val); + this.codeMirror.setCursor(cursor); + }; + + codeMirrorEditor.prototype.replaceRange = function(val) { + this.codeMirror.replaceRange(val.replacement, val.from, val.to, "+input"); + }; + + /** + * Attach InlineAttachment to CodeMirror + * + * @param {CodeMirror} codeMirror + */ + codeMirrorEditor.attach = function(codeMirror, options) { + + options = options || {}; + + var editor = new codeMirrorEditor(codeMirror), + inlineattach = new inlineAttachment(options, editor), + el = codeMirror.getWrapperElement(); + + el.addEventListener('paste', function(e) { + inlineattach.onPaste(e); + }, false); + + codeMirror.setOption('onDragEvent', function(data, e) { + if (e.type === "drop") { + e.stopPropagation(); + e.preventDefault(); + return inlineattach.onDrop(e); + } + }); + }; + + inlineAttachment.editors.codemirror3 = codeMirrorEditor; + + var codeMirrorEditor4 = function(instance) { + codeMirrorEditor.call(this, instance); + }; + + codeMirrorEditor4.attach = function(codeMirror, options) { + + options = options || {}; + + var editor = new codeMirrorEditor(codeMirror), + inlineattach = new inlineAttachment(options, editor), + el = codeMirror.getWrapperElement(); + + el.addEventListener('paste', function(e) { + inlineattach.onPaste(e); + }, false); + + codeMirror.on('drop', function(data, e) { + if (inlineattach.onDrop(e)) { + e.stopPropagation(); + e.preventDefault(); + return true; + } else { + return false; + } + }); + }; + + inlineAttachment.editors.codemirror4 = codeMirrorEditor4; + +})(); \ No newline at end of file -- cgit v1.2.3