/*!
* medium-editor-insert-plugin v2.5.1 - jQuery insert plugin for MediumEditor
*
* http://linkesch.com/medium-editor-insert-plugin
*
* Copyright (c) 2014 Pavel Linkesch (http://linkesch.com)
* Released under the MIT license
*/
!function(t){"function"==typeof define&&define.amd?define(["jquery","handlebars/runtime","medium-editor","blueimp-file-upload","jquery-sortable"],t):"object"==typeof module&&module.exports?module.exports=function(e){if("undefined"==typeof window)throw new Error("medium-editor-insert-plugin runs only in a browser.");return void 0===e&&(e=require("jquery")),window.jQuery=e,Handlebars=require("handlebars/runtime"),MediumEditor=require("medium-editor"),require("jquery-sortable"),require("blueimp-file-upload"),t(e,Handlebars,MediumEditor),e}:t(jQuery,Handlebars,MediumEditor)}(function(e,t,f){this.MediumInsert=this.MediumInsert||{},this.MediumInsert.Templates=this.MediumInsert.Templates||{},this.MediumInsert.Templates["src/js/templates/core-buttons.hbs"]=t.template({1:function(e,t,i,s,o){var n,a,r=null!=t?t:e.nullContext||{},l=i.helperMissing,d="function";return'
'+(null!=(n=typeof(a=null!=(a=i.label||(null!=t?t.label:t))?a:l)===d?a.call(r,{name:"label",hash:{},data:o}):a)?n:"")+" \n"},compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){var n;return'\n"},useData:!0}),this.MediumInsert.Templates["src/js/templates/core-caption.hbs"]=t.template({compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){var n;return' '},useData:!0}),this.MediumInsert.Templates["src/js/templates/core-empty-line.hbs"]=t.template({compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){return"
\n"},useData:!0}),this.MediumInsert.Templates["src/js/templates/embeds-toolbar.hbs"]=t.template({1:function(e,t,i,s,o){var n;return' \n"},2:function(e,t,i,s,o){var n;return null!=(n=i.if.call(null!=t?t:e.nullContext||{},null!=t?t.label:t,{name:"if",hash:{},fn:e.program(3,o,0),inverse:e.noop,data:o}))?n:""},3:function(e,t,i,s,o){var n,a,r=null!=t?t:e.nullContext||{},l=i.helperMissing,d="function";return' \n '+(null!=(n=typeof(a=null!=(a=i.label||(null!=t?t.label:t))?a:l)===d?a.call(r,{name:"label",hash:{},data:o}):a)?n:"")+" \n \n"},5:function(e,t,i,s,o){var n;return' \n"},compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){var n,a=null!=t?t:e.nullContext||{};return(null!=(n=i.if.call(a,null!=t?t.styles:t,{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o}))?n:"")+"\n"+(null!=(n=i.if.call(a,null!=t?t.actions:t,{name:"if",hash:{},fn:e.program(5,o,0),inverse:e.noop,data:o}))?n:"")},useData:!0}),this.MediumInsert.Templates["src/js/templates/embeds-wrapper.hbs"]=t.template({compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){var n,a;return'\n\t
\n\t\t\n\t\t\t'+(null!=(n="function"==typeof(a=null!=(a=i.html||(null!=t?t.html:t))?a:i.helperMissing)?a.call(null!=t?t:e.nullContext||{},{name:"html",hash:{},data:o}):a)?n:"")+'\n\t\t
\n\t \n\t
\n
'},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-fileupload.hbs"]=t.template({compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){return' '},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-image.hbs"]=t.template({1:function(e,t,i,s,o){return'
\n'},compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){var n,a,r=null!=t?t:e.nullContext||{};return'\n \n'+(null!=(n=i.if.call(r,null!=t?t.progress:t,{name:"if",hash:{},fn:e.program(1,o,0),inverse:e.noop,data:o}))?n:"")+" \n"},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-progressbar.hbs"]=t.template({compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){return'0 '},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-toolbar.hbs"]=t.template({1:function(e,t,i,s,o){var n;return null!=(n=i.if.call(null!=t?t:e.nullContext||{},null!=t?t.label:t,{name:"if",hash:{},fn:e.program(2,o,0),inverse:e.noop,data:o}))?n:""},2:function(e,t,i,s,o){var n,a,r=null!=t?t:e.nullContext||{},l=i.helperMissing,d="function";return' \n '+(null!=(n=typeof(a=null!=(a=i.label||(null!=t?t.label:t))?a:l)===d?a.call(r,{name:"label",hash:{},data:o}):a)?n:"")+" \n \n"},4:function(e,t,i,s,o){var n;return'\t\n"},5:function(e,t,i,s,o){var n;return null!=(n=i.if.call(null!=t?t:e.nullContext||{},null!=t?t.label:t,{name:"if",hash:{},fn:e.program(6,o,0),inverse:e.noop,data:o}))?n:""},6:function(e,t,i,s,o){var n,a,r=null!=t?t:e.nullContext||{},l=i.helperMissing,d="function";return' \t \n \t '+(null!=(n=typeof(a=null!=(a=i.label||(null!=t?t.label:t))?a:l)===d?a.call(r,{name:"label",hash:{},data:o}):a)?n:"")+" \n \t \n"},compiler:[7,">= 4.0.0"],main:function(e,t,i,s,o){var n,a=null!=t?t:e.nullContext||{};return'\n\n"+(null!=(n=i.if.call(a,null!=t?t.actions:t,{name:"if",hash:{},fn:e.program(4,o,0),inverse:e.noop,data:o}))?n:"")},useData:!0}),function(l,d,a,s){"use strict";var o="mediumInsert",n={editor:null,enabled:!0,addons:{images:!0,embeds:!0}};function r(e){return e.charAt(0).toUpperCase()+e.slice(1)}function m(e,t){var i;this.el=e,this.$el=l(e),this.templates=d.MediumInsert.Templates,t&&(i=t.editor,t.editor=null),this.options=l.extend(!0,{},n,t),this.options.editor=i,t&&(t.editor=i),this._defaults=n,this._name=o,this.options&&this.options.editor&&(this.options.editor._serialize===s&&(this.options.editor._serialize=this.options.editor.serialize),this.options.editor._destroy===s&&(this.options.editor._destroy=this.options.editor.destroy),this.options.editor._setup===s&&(this.options.editor._setup=this.options.editor.setup),this.options.editor._hideInsertButtons=this.hideButtons,this.options.editor.serialize=this.editorSerialize,this.options.editor.destroy=this.editorDestroy,this.options.editor.setup=this.editorSetup,this.options.editor.getExtensionByName("placeholder")!==s&&(this.options.editor.getExtensionByName("placeholder").updatePlaceholder=this.editorUpdatePlaceholder))}m.prototype.init=function(){this.$el.addClass("medium-editor-insert-plugin"),"object"==typeof this.options.addons&&0!==Object.keys(this.options.addons).length||this.disable(),this.initAddons(),this.clean(),this.events()},m.prototype.events=function(){var t=this;this.$el.on("dragover drop",function(e){e.preventDefault()}).on("keyup click",l.proxy(this,"toggleButtons")).on("selectstart mousedown",".medium-insert, .medium-insert-buttons",l.proxy(this,"disableSelection")).on("click",".medium-insert-buttons-show",l.proxy(this,"toggleAddons")).on("click",".medium-insert-action",l.proxy(this,"addonAction")).on("paste",".medium-insert-caption-placeholder",function(e){l.proxy(t,"removeCaptionPlaceholder")(l(e.target))}),l(d).on("resize",l.proxy(this,"positionButtons",null))},m.prototype.getEditor=function(){return this.options.editor},m.prototype.editorSerialize=function(){var i=this._serialize();return l.each(i,function(e){var t=l("
").html(i[e].value);t.find(".medium-insert-buttons").remove(),t.find(".medium-insert-active").removeClass("medium-insert-active"),t.find("[data-embed-code]").each(function(){var e=l(this),t=l("
").html(e.attr("data-embed-code")).text();e.html(t)}),i[e].value=t.html()}),i},m.prototype.editorDestroy=function(){l.each(this.elements,function(e,t){l(t).data("plugin_"+o)instanceof m&&l(t).data("plugin_"+o).disable()}),this._destroy()},m.prototype.editorSetup=function(){this._setup(),l.each(this.elements,function(e,t){l(t).data("plugin_"+o)instanceof m&&l(t).data("plugin_"+o).enable()})},m.prototype.editorUpdatePlaceholder=function(e,t){var i=l(e).children().not(".medium-insert-buttons").contents();t||1!==i.length||"br"!==i[0].nodeName.toLowerCase()?this.hidePlaceholder(e):(this.showPlaceholder(e),this.base._hideInsertButtons(l(e)))},m.prototype.triggerInput=function(){this.getEditor()&&this.getEditor().trigger("editableInput",null,this.el)},m.prototype.deselect=function(){a.getSelection().removeAllRanges()},m.prototype.disable=function(){this.options.enabled=!1,this.$el.find(".medium-insert-buttons").addClass("hide")},m.prototype.enable=function(){this.options.enabled=!0,this.$el.find(".medium-insert-buttons").removeClass("hide")},m.prototype.disableSelection=function(e){var t=l(e.target);(!1===t.is("img")||t.hasClass("medium-insert-buttons-show"))&&e.preventDefault()},m.prototype.initAddons=function(){var s=this;this.options.addons&&0!==this.options.addons.length&&l.each(this.options.addons,function(e,t){var i=o+r(e);!1!==t?(s.$el[i](t),s.options.addons[e]=s.$el.data("plugin_"+i).options):delete s.options.addons[e]})},m.prototype.clean=function(){var e,t,i=this;!1!==this.options.enabled&&(0===this.$el.html().length&&this.$el.html(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),this.$el.contents().filter(function(){return"#text"===this.nodeName&&""!==l.trim(l(this).text())||"br"===this.nodeName.toLowerCase()}).each(function(){l(this).wrap("
"),i.moveCaret(l(this).parent(),l(this).text().length)}),this.addButtons(),(t=(e=this.$el.find(".medium-insert-buttons")).prev()).attr("class")&&t.attr("class").match(/medium\-insert(?!\-active)/)&&e.before(this.templates["src/js/templates/core-empty-line.hbs"]().trim()))},m.prototype.getButtons=function(){if(!1!==this.options.enabled)return this.templates["src/js/templates/core-buttons.hbs"]({addons:this.options.addons}).trim()},m.prototype.addButtons=function(){0===this.$el.find(".medium-insert-buttons").length&&this.$el.append(this.getButtons())},m.prototype.toggleButtons=function(e){var t,i,s,o,n=l(e.target),a=d.getSelection(),r=this;!1!==this.options.enabled&&((i=a&&0!==a.rangeCount?(t=a.getRangeAt(0),l(t.commonAncestorContainer)):n).hasClass("medium-editor-insert-plugin")&&(i=i.find("p:first")),s=i.is("p")?i:i.closest("p"),this.clean(),!1===n.hasClass("medium-editor-placeholder")&&0===n.closest(".medium-insert-buttons").length&&0===i.closest(".medium-insert-buttons").length&&(this.$el.find(".medium-insert-active").removeClass("medium-insert-active"),l.each(this.options.addons,function(e){if(n.closest(".medium-insert-"+e).length&&(i=n),i.closest(".medium-insert-"+e).length)return s=i.closest(".medium-insert-"+e),void(o=e)}),s.length&&(""===s.text().trim()&&!o||"images"===o)?(s.addClass("medium-insert-active"),"images"===o?this.$el.find(".medium-insert-buttons").attr("data-active-addon",o):this.$el.find(".medium-insert-buttons").removeAttr("data-active-addon"),setTimeout(function(){r.positionButtons(o),r.showButtons(o)},o?100:0)):this.hideButtons()))},m.prototype.showButtons=function(e){var t=this.$el.find(".medium-insert-buttons");t.show(),t.find("li").show(),e&&(t.find("li").hide(),t.find('button[data-addon="'+e+'"]').parent().show())},m.prototype.hideButtons=function(e){(e=e||this.$el).find(".medium-insert-buttons").hide(),e.find(".medium-insert-buttons-addons").hide(),e.find(".medium-insert-buttons-show").removeClass("medium-insert-buttons-rotate")},m.prototype.positionButtons=function(e){var t=this.$el.find(".medium-insert-buttons"),i=this.$el.find(".medium-insert-active"),s=i.hasClass("medium-insert-images-grid")?[]:i.find("figure:last figcaption"),o=this.getEditor()?this.getEditor().options.elementsContainer:l("body").get(0),n=-1<["absolute","fixed"].indexOf(d.getComputedStyle(o).getPropertyValue("position")),a={};i.length&&(a.left=i.position().left,a.top=i.position().top,e?(a.left+=i.width()-t.find(".medium-insert-buttons-show").width()-10,a.top+=i.height()-20+(s.length?-s.height()-parseInt(s.css("margin-top"),10):10)):(a.left+=-parseInt(t.find(".medium-insert-buttons-addons").css("left"),10)-parseInt(t.find(".medium-insert-buttons-addons button:first").css("margin-left"),10),a.top+=parseInt(i.css("margin-top"),10)),n&&(a.top+=o.scrollTop),!1===this.$el.hasClass("medium-editor-placeholder")&&a.left<0&&(a.left=i.position().left),t.css(a))},m.prototype.toggleAddons=function(){"images"!==this.$el.find(".medium-insert-buttons").attr("data-active-addon")?(this.$el.find(".medium-insert-buttons-addons").fadeToggle(),this.$el.find(".medium-insert-buttons-show").toggleClass("medium-insert-buttons-rotate")):this.$el.find(".medium-insert-buttons").find('button[data-addon="images"]').click()},m.prototype.hideAddons=function(){this.$el.find(".medium-insert-buttons-addons").hide(),this.$el.find(".medium-insert-buttons-show").removeClass("medium-insert-buttons-rotate")},m.prototype.addonAction=function(e){var t=l(e.currentTarget),i=t.data("addon"),s=t.data("action");this.$el.data("plugin_"+o+r(i))[s]()},m.prototype.moveCaret=function(e,t){var i,s,o,n;t=t||0,i=a.createRange(),s=d.getSelection(),(o=e.get(0)).childNodes.length||(n=a.createTextNode(" "),o.appendChild(n)),i.setStart(o.childNodes[0],t),i.collapse(!0),s.removeAllRanges(),s.addRange(i)},m.prototype.addCaption=function(e,t){0===e.find("figcaption").length&&e.append(this.templates["src/js/templates/core-caption.hbs"]({placeholder:t}))},m.prototype.removeCaptions=function(e){var t=this.$el.find("figcaption");e&&(t=t.not(e)),t.each(function(){(l(this).hasClass("medium-insert-caption-placeholder")||""===l(this).text().trim())&&l(this).remove()})},m.prototype.removeCaptionPlaceholder=function(e){var t=e.is("figcaption")?e:e.find("figcaption");t.length&&t.removeClass("medium-insert-caption-placeholder").removeAttr("data-placeholder")},l.fn[o]=function(i){return this.each(function(){var e,t=this;l(t).is("textarea")&&(e=l(t).attr("medium-editor-textarea-id"),t=l(t).siblings('[medium-editor-textarea-id="'+e+'"]').get(0)),l.data(t,"plugin_"+o)?"string"==typeof i&&l.data(t,"plugin_"+o)[i]&&l.data(t,"plugin_"+o)[i]():(l.data(t,"plugin_"+o,new m(t,i)),l.data(t,"plugin_"+o).init())})}}(jQuery,window,document),function(l,d,t,e){"use strict";var i="mediumInsert",s="Embeds",o={label:' ',placeholder:"Paste a YouTube, Vimeo, Facebook, Twitter or Instagram link and press Enter",oembedProxy:"http://medium.iframe.ly/api/oembed?iframe=1",captions:!0,captionPlaceholder:"Type caption (optional)",storeMeta:!1,styles:{wide:{label:' '},left:{label:' '},right:{label:' '}},actions:{remove:{label:' ',clicked:function(){var e=l.Event("keydown");e.which=8,l(t).trigger(e)}}},parseOnPaste:!1};function n(e,t){this.el=e,this.$el=l(e),this.templates=d.MediumInsert.Templates,this.core=this.$el.data("plugin_"+i),this.options=l.extend(!0,{},o,t),this._defaults=o,this._name=i,this.core.getEditor()&&(this.core.getEditor()._serializePreEmbeds=this.core.getEditor().serialize,this.core.getEditor().serialize=this.editorSerialize),this.init()}n.prototype.init=function(){var e=this.$el.find(".medium-insert-embeds");e.attr("contenteditable",!1),e.each(function(){0===l(this).find(".medium-insert-embeds-overlay").length&&l(this).append(l("
").addClass("medium-insert-embeds-overlay"))}),this.events(),this.backwardsCompatibility()},n.prototype.events=function(){l(t).on("click",l.proxy(this,"unselectEmbed")).on("keydown",l.proxy(this,"removeEmbed")).on("click",".medium-insert-embeds-toolbar .medium-editor-action",l.proxy(this,"toolbarAction")).on("click",".medium-insert-embeds-toolbar2 .medium-editor-action",l.proxy(this,"toolbar2Action")),this.$el.on("keyup click paste",l.proxy(this,"togglePlaceholder")).on("keydown",l.proxy(this,"processLink")).on("click",".medium-insert-embeds-overlay",l.proxy(this,"selectEmbed")).on("contextmenu",".medium-insert-embeds-placeholder",l.proxy(this,"fixRightClickOnPlaceholder")),this.options.parseOnPaste&&this.$el.on("paste",l.proxy(this,"processPasted")),l(d).on("resize",l.proxy(this,"autoRepositionToolbars"))},n.prototype.backwardsCompatibility=function(){var e=this;this.$el.find(".mediumInsert-embeds").removeClass("mediumInsert-embeds").addClass("medium-insert-embeds"),this.$el.find(".medium-insert-embeds").each(function(){0===l(this).find(".medium-insert-embed").length&&(l(this).after(e.templates["src/js/templates/embeds-wrapper.hbs"]({html:l(this).html()})),l(this).remove())})},n.prototype.editorSerialize=function(){var s=this._serializePreEmbeds();return l.each(s,function(e){var t=l("
").html(s[e].value),i=t.find(".medium-insert-embeds");i.removeAttr("contenteditable"),i.find("figcaption").removeAttr("contenteditable"),t.find(".medium-insert-embeds-overlay").remove(),s[e].value=t.html()}),s},n.prototype.add=function(){var e=this.$el.find(".medium-insert-active");e.html(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),e.is("p")&&(e.replaceWith(''+e.html()+"
"),e=this.$el.find(".medium-insert-active"),this.core.moveCaret(e)),e.addClass("medium-insert-embeds medium-insert-embeds-input medium-insert-embeds-active"),this.togglePlaceholder({target:e.get(0)}),e.click(),this.core.hideButtons()},n.prototype.togglePlaceholder=function(e){var t,i,s,o=l(e.target),n=d.getSelection();n&&0!==n.rangeCount&&(t=n.getRangeAt(0),(i=l(t.commonAncestorContainer)).hasClass("medium-insert-embeds-active")?o=i:i.closest(".medium-insert-embeds-active").length&&(o=i.closest(".medium-insert-embeds-active")),o.hasClass("medium-insert-embeds-active")?""===(s=o.text().trim())&&!1===o.hasClass("medium-insert-embeds-placeholder")?o.addClass("medium-insert-embeds-placeholder").attr("data-placeholder",this.options.placeholder):""!==s&&o.hasClass("medium-insert-embeds-placeholder")&&o.removeClass("medium-insert-embeds-placeholder").removeAttr("data-placeholder"):this.$el.find(".medium-insert-embeds-active").remove())},n.prototype.fixRightClickOnPlaceholder=function(e){this.core.moveCaret(l(e.target))},n.prototype.processLink=function(e){var t,i=this.$el.find(".medium-insert-embeds-active");i.length&&(""!==(t=i.text().trim())||-1===[8,46,13].indexOf(e.which)?13===e.which&&(e.preventDefault(),e.stopPropagation(),this.options.oembedProxy?this.oembed(t):this.parseUrl(t)):i.remove())},n.prototype.processPasted=function(e){var t;l(".medium-insert-embeds-active").length||(t=e.originalEvent.clipboardData.getData("text"),new RegExp("^(http(s?):)?//","i").test(t)&&(this.options.oembedProxy?this.oembed(t,!0):this.parseUrl(t,!0)))},n.prototype.oembed=function(o,i){var n=this;l.support.cors=!0,l.ajax({crossDomain:!0,cache:!1,url:this.options.oembedProxy,dataType:"json",data:{url:o},success:function(e){var t=e&&e.html;n.options.storeMeta&&(t+='