From 53ffdd65a73d1d684379f4f4fc4cae0b91c121eb Mon Sep 17 00:00:00 2001 From: Pavel Linkesch Date: Fri, 27 Feb 2015 16:26:51 +0100 Subject: [PATCH] build dist files --- bower.json | 2 +- .../medium-editor-insert-plugin-frontend.css | 15 +++- ...dium-editor-insert-plugin-frontend.min.css | 4 +- dist/css/medium-editor-insert-plugin.css | 15 +++- dist/css/medium-editor-insert-plugin.min.css | 4 +- dist/js/medium-editor-insert-plugin.js | 77 ++++++++++++++----- dist/js/medium-editor-insert-plugin.min.js | 4 +- package.json | 2 +- 8 files changed, 91 insertions(+), 32 deletions(-) diff --git a/bower.json b/bower.json index 5ba2a06f4..3e7d6b516 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "medium-editor-insert-plugin", - "version": "1.1.2", + "version": "1.2.0", "description": "jQuery insert plugin for MediumEditor", "main": [ "dist/js/medium-editor-insert-plugin.js", diff --git a/dist/css/medium-editor-insert-plugin-frontend.css b/dist/css/medium-editor-insert-plugin-frontend.css index 37243be71..cd3a72564 100644 --- a/dist/css/medium-editor-insert-plugin-frontend.css +++ b/dist/css/medium-editor-insert-plugin-frontend.css @@ -1,5 +1,5 @@ /*! - * medium-editor-insert-plugin v1.1.2 - jQuery insert plugin for MediumEditor + * medium-editor-insert-plugin v1.2.0 - jQuery insert plugin for MediumEditor * * https://github.com/orthes/medium-editor-insert-plugin * @@ -27,7 +27,18 @@ float: right; margin: 0 0 20px 30px; } .medium-insert-images.medium-insert-images-grid, .medium-insert-images-grid.mediumInsert { - margin: -0.5em; } + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + margin: 0.5em -0.5em; } .medium-insert-images.medium-insert-images-grid figure, .medium-insert-images-grid.mediumInsert figure { width: 33.33%; display: inline-block; } diff --git a/dist/css/medium-editor-insert-plugin-frontend.min.css b/dist/css/medium-editor-insert-plugin-frontend.min.css index c8152f7fd..8b3c0fe13 100644 --- a/dist/css/medium-editor-insert-plugin-frontend.min.css +++ b/dist/css/medium-editor-insert-plugin-frontend.min.css @@ -1,5 +1,5 @@ /*! - * medium-editor-insert-plugin v1.1.2 - jQuery insert plugin for MediumEditor + * medium-editor-insert-plugin v1.2.0 - jQuery insert plugin for MediumEditor * * https://github.com/orthes/medium-editor-insert-plugin * @@ -7,4 +7,4 @@ * Released under the MIT license */ -.medium-insert-images,.mediumInsert{text-align:center}.medium-insert-images figure,.mediumInsert figure{margin:0;display:block}.medium-insert-images figure img,.mediumInsert figure img{max-width:100%;margin-top:1em;vertical-align:top}.medium-insert-images figure:first-child img,.mediumInsert figure:first-child img{margin-top:0}.medium-insert-images.medium-insert-images-left,.medium-insert-images-left.mediumInsert,.mediumInsert.small{max-width:33.33%;float:left;margin:0 30px 20px 0}.medium-insert-images.medium-insert-images-right,.medium-insert-images-right.mediumInsert{max-width:33.33%;float:right;margin:0 0 20px 30px}.medium-insert-images.medium-insert-images-grid,.medium-insert-images-grid.mediumInsert{margin:-.5em}.medium-insert-images.medium-insert-images-grid figure,.medium-insert-images-grid.mediumInsert figure{width:33.33%;display:inline-block}.medium-insert-images.medium-insert-images-grid figure img,.medium-insert-images-grid.mediumInsert figure img{max-width:calc(100% - 1em);margin:.5em}.medium-insert-embeds,.mediumInsert-embeds{text-align:center;margin:1em 0;position:relative}.medium-insert-embeds iframe,.mediumInsert-embeds iframe,.medium-insert-embeds div,.mediumInsert-embeds div{margin:0 auto!important}.medium-insert-embeds.medium-insert-embeds-left,.medium-insert-embeds-left.mediumInsert-embeds{width:33.33%;float:left;margin:0 30px 20px 0}.medium-insert-embeds.medium-insert-embeds-right,.medium-insert-embeds-right.mediumInsert-embeds{width:33.33%;float:right;margin:0 0 20px 30px}.medium-insert-images figure,.mediumInsert figure,.medium-insert-embeds figure,.mediumInsert-embeds figure{position:relative}.medium-insert-images figure figcaption,.mediumInsert figure figcaption,.medium-insert-embeds figure figcaption,.mediumInsert-embeds figure figcaption{position:relative;z-index:1;display:block;text-align:center;margin:10px 0;color:#ccc;font-size:.8em;font-style:italic;outline:0 solid transparent}.medium-insert-images figure figcaption:focus,.mediumInsert figure figcaption:focus,.medium-insert-embeds figure figcaption:focus,.mediumInsert-embeds figure figcaption:focus{outline:0 solid transparent} \ No newline at end of file +.medium-insert-images,.mediumInsert{text-align:center}.medium-insert-images figure,.mediumInsert figure{margin:0;display:block}.medium-insert-images figure img,.mediumInsert figure img{max-width:100%;margin-top:1em;vertical-align:top}.medium-insert-images figure:first-child img,.mediumInsert figure:first-child img{margin-top:0}.medium-insert-images.medium-insert-images-left,.medium-insert-images-left.mediumInsert,.mediumInsert.small{max-width:33.33%;float:left;margin:0 30px 20px 0}.medium-insert-images.medium-insert-images-right,.medium-insert-images-right.mediumInsert{max-width:33.33%;float:right;margin:0 0 20px 30px}.medium-insert-images.medium-insert-images-grid,.medium-insert-images-grid.mediumInsert{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;margin:.5em -.5em}.medium-insert-images.medium-insert-images-grid figure,.medium-insert-images-grid.mediumInsert figure{width:33.33%;display:inline-block}.medium-insert-images.medium-insert-images-grid figure img,.medium-insert-images-grid.mediumInsert figure img{max-width:calc(100% - 1em);margin:.5em}.medium-insert-embeds,.mediumInsert-embeds{text-align:center;margin:1em 0;position:relative}.medium-insert-embeds iframe,.mediumInsert-embeds iframe,.medium-insert-embeds div,.mediumInsert-embeds div{margin:0 auto!important}.medium-insert-embeds.medium-insert-embeds-left,.medium-insert-embeds-left.mediumInsert-embeds{width:33.33%;float:left;margin:0 30px 20px 0}.medium-insert-embeds.medium-insert-embeds-right,.medium-insert-embeds-right.mediumInsert-embeds{width:33.33%;float:right;margin:0 0 20px 30px}.medium-insert-images figure,.mediumInsert figure,.medium-insert-embeds figure,.mediumInsert-embeds figure{position:relative}.medium-insert-images figure figcaption,.mediumInsert figure figcaption,.medium-insert-embeds figure figcaption,.mediumInsert-embeds figure figcaption{position:relative;z-index:1;display:block;text-align:center;margin:10px 0;color:#ccc;font-size:.8em;font-style:italic;outline:0 solid transparent}.medium-insert-images figure figcaption:focus,.mediumInsert figure figcaption:focus,.medium-insert-embeds figure figcaption:focus,.mediumInsert-embeds figure figcaption:focus{outline:0 solid transparent} \ No newline at end of file diff --git a/dist/css/medium-editor-insert-plugin.css b/dist/css/medium-editor-insert-plugin.css index dbd5de3a4..e7767ed56 100644 --- a/dist/css/medium-editor-insert-plugin.css +++ b/dist/css/medium-editor-insert-plugin.css @@ -1,5 +1,5 @@ /*! - * medium-editor-insert-plugin v1.1.2 - jQuery insert plugin for MediumEditor + * medium-editor-insert-plugin v1.2.0 - jQuery insert plugin for MediumEditor * * https://github.com/orthes/medium-editor-insert-plugin * @@ -27,7 +27,18 @@ float: right; margin: 0 0 20px 30px; } .medium-insert-images.medium-insert-images-grid, .medium-insert-images-grid.mediumInsert { - margin: -0.5em; } + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + margin: 0.5em -0.5em; } .medium-insert-images.medium-insert-images-grid figure, .medium-insert-images-grid.mediumInsert figure { width: 33.33%; display: inline-block; } diff --git a/dist/css/medium-editor-insert-plugin.min.css b/dist/css/medium-editor-insert-plugin.min.css index 2c0798070..d67c6a97a 100644 --- a/dist/css/medium-editor-insert-plugin.min.css +++ b/dist/css/medium-editor-insert-plugin.min.css @@ -1,5 +1,5 @@ /*! - * medium-editor-insert-plugin v1.1.2 - jQuery insert plugin for MediumEditor + * medium-editor-insert-plugin v1.2.0 - jQuery insert plugin for MediumEditor * * https://github.com/orthes/medium-editor-insert-plugin * @@ -7,4 +7,4 @@ * Released under the MIT license */ -.medium-insert-images,.mediumInsert{text-align:center}.medium-insert-images figure,.mediumInsert figure{margin:0;display:block}.medium-insert-images figure img,.mediumInsert figure img{max-width:100%;margin-top:1em;vertical-align:top}.medium-insert-images figure:first-child img,.mediumInsert figure:first-child img{margin-top:0}.medium-insert-images.medium-insert-images-left,.medium-insert-images-left.mediumInsert,.mediumInsert.small{max-width:33.33%;float:left;margin:0 30px 20px 0}.medium-insert-images.medium-insert-images-right,.medium-insert-images-right.mediumInsert{max-width:33.33%;float:right;margin:0 0 20px 30px}.medium-insert-images.medium-insert-images-grid,.medium-insert-images-grid.mediumInsert{margin:-.5em}.medium-insert-images.medium-insert-images-grid figure,.medium-insert-images-grid.mediumInsert figure{width:33.33%;display:inline-block}.medium-insert-images.medium-insert-images-grid figure img,.medium-insert-images-grid.mediumInsert figure img{max-width:calc(100% - 1em);margin:.5em}.medium-insert-embeds,.mediumInsert-embeds{text-align:center;margin:1em 0;position:relative}.medium-insert-embeds iframe,.mediumInsert-embeds iframe,.medium-insert-embeds div,.mediumInsert-embeds div{margin:0 auto!important}.medium-insert-embeds.medium-insert-embeds-left,.medium-insert-embeds-left.mediumInsert-embeds{width:33.33%;float:left;margin:0 30px 20px 0}.medium-insert-embeds.medium-insert-embeds-right,.medium-insert-embeds-right.mediumInsert-embeds{width:33.33%;float:right;margin:0 0 20px 30px}.medium-insert-images figure,.mediumInsert figure,.medium-insert-embeds figure,.mediumInsert-embeds figure{position:relative}.medium-insert-images figure figcaption,.mediumInsert figure figcaption,.medium-insert-embeds figure figcaption,.mediumInsert-embeds figure figcaption{position:relative;z-index:1;display:block;text-align:center;margin:10px 0;color:#ccc;font-size:.8em;font-style:italic;outline:0 solid transparent}.medium-insert-images figure figcaption:focus,.mediumInsert figure figcaption:focus,.medium-insert-embeds figure figcaption:focus,.mediumInsert-embeds figure figcaption:focus{outline:0 solid transparent}.medium-editor-insert-plugin{outline:0 solid transparent}.medium-editor-insert-plugin:focus{outline:0 solid transparent}.medium-editor-insert-plugin .clearfix:before,.medium-editor-insert-plugin:before,.medium-editor-insert-plugin .clearfix:after,.medium-editor-insert-plugin:after{content:" ";display:table;clear:both}.medium-editor-insert-plugin p{margin:1em 0}.medium-editor-insert-plugin progress{display:block;margin:1em auto}.medium-editor-insert-plugin .hide{display:none}.medium-editor-insert-plugin.medium-editor-placeholder:after{padding:1em 0}.medium-editor-insert-plugin .medium-insert-buttons{position:absolute;color:#ddd;font-size:.9em}.medium-editor-insert-plugin .medium-insert-buttons a{text-decoration:underline;cursor:pointer}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-show{box-sizing:border-box;display:block;width:32px;height:32px;margin-top:-5px;border-radius:20px;border:1px solid;font-size:25px;line-height:28px;text-align:center;text-decoration:none}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-addons{margin:0;padding:0;list-style:none;display:none;position:relative;z-index:2;left:55px;top:-32px}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-addons li{display:inline-block}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-addons li a{box-sizing:border-box;display:inline-block;margin:0 5px;width:32px;height:32px;border-radius:20px;border:1px solid;font-size:20px;line-height:28px;text-align:center}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-addons li a .fa{font-size:15px}.medium-insert-caption-placeholder{position:absolute;top:0;z-index:0;width:100%;text-align:center}.dragging{cursor:move}.medium-insert-image-active{outline:2px solid #000}.medium-insert-images-toolbar{display:none}.medium-insert-images,.mediumInsert{margin:1em 0}.medium-insert-images .dragged,.mediumInsert .dragged{position:absolute;top:0;opacity:.5;z-index:2000}.medium-insert-images .placeholder,.mediumInsert .placeholder{position:relative;margin:0;padding:0;border:none}.medium-insert-images .medium-insert-images-progress,.mediumInsert .medium-insert-images-progress{position:absolute;width:100%;height:100%;top:0;right:0;background:rgba(255,255,255,.4)}.medium-insert-embeds-input{position:relative;color:#ccc;z-index:1;text-align:left}.medium-insert-embeds-placeholder{position:absolute;top:0;z-index:0}.medium-insert-embeds-selected .medium-insert-embed{outline:2px solid #000}.medium-insert-embeds-toolbar{display:none}.medium-insert-embeds .medium-insert-embeds-overlay,.mediumInsert-embeds .medium-insert-embeds-overlay{position:absolute;width:100%;height:100%;top:0;left:0} \ No newline at end of file +.medium-insert-images,.mediumInsert{text-align:center}.medium-insert-images figure,.mediumInsert figure{margin:0;display:block}.medium-insert-images figure img,.mediumInsert figure img{max-width:100%;margin-top:1em;vertical-align:top}.medium-insert-images figure:first-child img,.mediumInsert figure:first-child img{margin-top:0}.medium-insert-images.medium-insert-images-left,.medium-insert-images-left.mediumInsert,.mediumInsert.small{max-width:33.33%;float:left;margin:0 30px 20px 0}.medium-insert-images.medium-insert-images-right,.medium-insert-images-right.mediumInsert{max-width:33.33%;float:right;margin:0 0 20px 30px}.medium-insert-images.medium-insert-images-grid,.medium-insert-images-grid.mediumInsert{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;margin:.5em -.5em}.medium-insert-images.medium-insert-images-grid figure,.medium-insert-images-grid.mediumInsert figure{width:33.33%;display:inline-block}.medium-insert-images.medium-insert-images-grid figure img,.medium-insert-images-grid.mediumInsert figure img{max-width:calc(100% - 1em);margin:.5em}.medium-insert-embeds,.mediumInsert-embeds{text-align:center;margin:1em 0;position:relative}.medium-insert-embeds iframe,.mediumInsert-embeds iframe,.medium-insert-embeds div,.mediumInsert-embeds div{margin:0 auto!important}.medium-insert-embeds.medium-insert-embeds-left,.medium-insert-embeds-left.mediumInsert-embeds{width:33.33%;float:left;margin:0 30px 20px 0}.medium-insert-embeds.medium-insert-embeds-right,.medium-insert-embeds-right.mediumInsert-embeds{width:33.33%;float:right;margin:0 0 20px 30px}.medium-insert-images figure,.mediumInsert figure,.medium-insert-embeds figure,.mediumInsert-embeds figure{position:relative}.medium-insert-images figure figcaption,.mediumInsert figure figcaption,.medium-insert-embeds figure figcaption,.mediumInsert-embeds figure figcaption{position:relative;z-index:1;display:block;text-align:center;margin:10px 0;color:#ccc;font-size:.8em;font-style:italic;outline:0 solid transparent}.medium-insert-images figure figcaption:focus,.mediumInsert figure figcaption:focus,.medium-insert-embeds figure figcaption:focus,.mediumInsert-embeds figure figcaption:focus{outline:0 solid transparent}.medium-editor-insert-plugin{outline:0 solid transparent}.medium-editor-insert-plugin:focus{outline:0 solid transparent}.medium-editor-insert-plugin .clearfix:before,.medium-editor-insert-plugin:before,.medium-editor-insert-plugin .clearfix:after,.medium-editor-insert-plugin:after{content:" ";display:table;clear:both}.medium-editor-insert-plugin p{margin:1em 0}.medium-editor-insert-plugin progress{display:block;margin:1em auto}.medium-editor-insert-plugin .hide{display:none}.medium-editor-insert-plugin.medium-editor-placeholder:after{padding:1em 0}.medium-editor-insert-plugin .medium-insert-buttons{position:absolute;color:#ddd;font-size:.9em}.medium-editor-insert-plugin .medium-insert-buttons a{text-decoration:underline;cursor:pointer}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-show{box-sizing:border-box;display:block;width:32px;height:32px;margin-top:-5px;border-radius:20px;border:1px solid;font-size:25px;line-height:28px;text-align:center;text-decoration:none}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-addons{margin:0;padding:0;list-style:none;display:none;position:relative;z-index:2;left:55px;top:-32px}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-addons li{display:inline-block}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-addons li a{box-sizing:border-box;display:inline-block;margin:0 5px;width:32px;height:32px;border-radius:20px;border:1px solid;font-size:20px;line-height:28px;text-align:center}.medium-editor-insert-plugin .medium-insert-buttons .medium-insert-buttons-addons li a .fa{font-size:15px}.medium-insert-caption-placeholder{position:absolute;top:0;z-index:0;width:100%;text-align:center}.dragging{cursor:move}.medium-insert-image-active{outline:2px solid #000}.medium-insert-images-toolbar{display:none}.medium-insert-images,.mediumInsert{margin:1em 0}.medium-insert-images .dragged,.mediumInsert .dragged{position:absolute;top:0;opacity:.5;z-index:2000}.medium-insert-images .placeholder,.mediumInsert .placeholder{position:relative;margin:0;padding:0;border:none}.medium-insert-images .medium-insert-images-progress,.mediumInsert .medium-insert-images-progress{position:absolute;width:100%;height:100%;top:0;right:0;background:rgba(255,255,255,.4)}.medium-insert-embeds-input{position:relative;color:#ccc;z-index:1;text-align:left}.medium-insert-embeds-placeholder{position:absolute;top:0;z-index:0}.medium-insert-embeds-selected .medium-insert-embed{outline:2px solid #000}.medium-insert-embeds-toolbar{display:none}.medium-insert-embeds .medium-insert-embeds-overlay,.mediumInsert-embeds .medium-insert-embeds-overlay{position:absolute;width:100%;height:100%;top:0;left:0} \ No newline at end of file diff --git a/dist/js/medium-editor-insert-plugin.js b/dist/js/medium-editor-insert-plugin.js index 69125cf85..c4369dc7b 100644 --- a/dist/js/medium-editor-insert-plugin.js +++ b/dist/js/medium-editor-insert-plugin.js @@ -1,5 +1,5 @@ /*! - * medium-editor-insert-plugin v1.1.2 - jQuery insert plugin for MediumEditor + * medium-editor-insert-plugin v1.2.0 - jQuery insert plugin for MediumEditor * * https://github.com/orthes/medium-editor-insert-plugin * @@ -514,9 +514,9 @@ this["MediumInsert"]["Templates"]["src/js/templates/images-toolbar.hbs"] = Handl selection = window.getSelection(), range = selection.getRangeAt(0), $current = $(range.commonAncestorContainer), - $buttons = this.$el.find('.medium-insert-buttons'), - isAddon = false, - $p = $current.is('p') ? $current : $current.closest('p'); + $p = $current.is('p') ? $current : $current.closest('p'), + that = this, + activeAddon; this.clean(); @@ -531,24 +531,44 @@ this["MediumInsert"]["Templates"]["src/js/templates/images-toolbar.hbs"] = Handl if ($current.closest('.medium-insert-'+ addon).length) { $p = $current.closest('.medium-insert-'+ addon); - isAddon = true; + activeAddon = addon; return; } }); - if (isAddon) { - $p.addClass('medium-insert-active'); - } else if ($p.length && $p.text().trim() === '') { + if ($p.length && (($p.text().trim() === '' && !activeAddon) || activeAddon === 'images')) { $p.addClass('medium-insert-active'); - this.positionButtons($p); - $buttons.show(); + // If buttons are displayed on addon paragraph, wait 100ms for possible captions to display + setTimeout(function () { + that.positionButtons(activeAddon); + that.showButtons(activeAddon); + }, activeAddon ? 100 : 0); } else { this.hideButtons(); } } }; + /** + * Show buttons + * + * @param {string} activeAddon - Name of active addon + * @returns {void} + */ + + Core.prototype.showButtons = function (activeAddon) { + var $buttons = this.$el.find('.medium-insert-buttons'); + + $buttons.show(); + $buttons.find('li').show(); + + if (activeAddon) { + $buttons.find('li').hide(); + $buttons.find('a[data-addon="'+ activeAddon +'"]').parent().show(); + } + }; + /** * Hides buttons * @@ -566,26 +586,41 @@ this["MediumInsert"]["Templates"]["src/js/templates/images-toolbar.hbs"] = Handl /** * Position buttons * - * @param {jQuery} $current - Current active element + * @param {string} activeAddon - Name of active addon * @return {void} */ - Core.prototype.positionButtons = function ($current) { + Core.prototype.positionButtons = function (activeAddon) { var $buttons = this.$el.find('.medium-insert-buttons'), $p = this.$el.find('.medium-insert-active'), - left, top; + $last = $p.find('figure:last').length ? $p.find('figure:last') : $p, + $first = $p.find('figure:first').length ? $p.find('figure:first') : $p, + left, top, $caption; - // Left position is set according to an active paragraph if ($p.length) { + left = $p.position().left - parseInt($buttons.find('.medium-insert-buttons-addons').css('left'), 10) - parseInt($buttons.find('.medium-insert-buttons-addons a:first').css('margin-left'), 10); left = left < 0 ? $p.position().left : left; - $buttons.css('left', left); - } - if ($current) { - // Top position is set according to a current active element - top = $current.position().top + parseInt($current.css('margin-top'), 10); - $buttons.css('top', top); + if (activeAddon) { + if ($p.position().left !== $first.position().left) { + left = $first.position().left; + } + + top = $last.position().top + $last.height() + parseInt($p.css('margin-bottom'), 10) - 5; // 5px - adjustment + + $caption = $last.find('figcaption'); + if ($caption.length) { + top -= $caption.height() + parseInt($caption.css('margin-top'), 10); + } + } else { + top = $p.position().top + parseInt($p.css('margin-top'), 10); + } + + $buttons.css({ + left: left, + top: top + }); } }; @@ -1797,6 +1832,8 @@ this["MediumInsert"]["Templates"]["src/js/templates/images-toolbar.hbs"] = Handl } }); + this.getCore().positionButtons('images'); + this.$el.trigger('input'); }; diff --git a/dist/js/medium-editor-insert-plugin.min.js b/dist/js/medium-editor-insert-plugin.min.js index c68d65d62..9dddc88ab 100644 --- a/dist/js/medium-editor-insert-plugin.min.js +++ b/dist/js/medium-editor-insert-plugin.min.js @@ -1,5 +1,5 @@ /*! - * medium-editor-insert-plugin v1.1.2 - jQuery insert plugin for MediumEditor + * medium-editor-insert-plugin v1.2.0 - jQuery insert plugin for MediumEditor * * https://github.com/orthes/medium-editor-insert-plugin * @@ -7,4 +7,4 @@ * Released under the MIT license */ -this.MediumInsert=this.MediumInsert||{},this.MediumInsert.Templates=this.MediumInsert.Templates||{},this.MediumInsert.Templates["src/js/templates/core-buttons.hbs"]=Handlebars.template({1:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • ';return f=null!=(f=b.label||(null!=a?a.label:a))?f:j,e=typeof f===i?f.call(a,{name:"label",hash:{},data:d}):f,null!=e&&(k+=e),k+"
  • \n"},compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f='\n"},useData:!0}),this.MediumInsert.Templates["src/js/templates/core-caption.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f="function",g=b.helperMissing,h=this.escapeExpression;return'
    \n
    '+h((e=null!=(e=b.placeholder||(null!=a?a.placeholder:a))?e:g,typeof e===f?e.call(a,{name:"placeholder",hash:{},data:d}):e))+"
    \n
    "},useData:!0}),this.MediumInsert.Templates["src/js/templates/core-empty-line.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(){return"


    \n"},useData:!0}),this.MediumInsert.Templates["src/js/templates/embeds-placeholder.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f="function",g=b.helperMissing,h=this.escapeExpression;return'
    '+h((e=null!=(e=b.placeholder||(null!=a?a.placeholder:a))?e:g,typeof e===f?e.call(a,{name:"placeholder",hash:{},data:d}):e))+"
    "},useData:!0}),this.MediumInsert.Templates["src/js/templates/embeds-toolbar.hbs"]=Handlebars.template({1:function(a,b,c,d){var e,f="";return e=b["if"].call(a,null!=a?a.label:a,{name:"if",hash:{},fn:this.program(2,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},2:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • \n \n
  • \n"},4:function(a,b,c,d){var e,f='
    \n \n
    \n"},5:function(a,b,c,d){var e,f="";return e=b["if"].call(a,null!=a?a.label:a,{name:"if",hash:{},fn:this.program(6,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},6:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • \n \n
  • \n"},compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f='
    \n \n
    \n\n",e=b["if"].call(a,null!=a?a.actions:a,{name:"if",hash:{},fn:this.program(4,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},useData:!0}),this.MediumInsert.Templates["src/js/templates/embeds-wrapper.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f,g="function",h=b.helperMissing,i='
    \n
    \n
    \n ';return f=null!=(f=b.html||(null!=a?a.html:a))?f:h,e=typeof f===g?f.call(a,{name:"html",hash:{},data:d}):f,null!=e&&(i+=e),i+'\n
    \n
    \n
    \n
    '},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-fileupload.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(){return''},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-image.hbs"]=Handlebars.template({1:function(){return'
    \n'},compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f,g="function",h=b.helperMissing,i=this.escapeExpression,j='
    \n \n';return e=b["if"].call(a,null!=a?a.progress:a,{name:"if",hash:{},fn:this.program(1,d),inverse:this.noop,data:d}),null!=e&&(j+=e),j+"
    "},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-progressbar.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(){return'0'},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-toolbar.hbs"]=Handlebars.template({1:function(a,b,c,d){var e,f="";return e=b["if"].call(a,null!=a?a.label:a,{name:"if",hash:{},fn:this.program(2,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},2:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • \n \n
  • \n"},4:function(a,b,c,d){var e,f='
    \n \n
    \n"},5:function(a,b,c,d){var e,f="";return e=b["if"].call(a,null!=a?a.label:a,{name:"if",hash:{},fn:this.program(6,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},6:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • \n \n
  • \n"},compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f='
    \n \n
    \n\n",e=b["if"].call(a,null!=a?a.actions:a,{name:"if",hash:{},fn:this.program(4,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},useData:!0}),function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}function e(c,d){var e;this.el=c,this.$el=a(c),this.templates=b.MediumInsert.Templates,d&&(e=d.editor,d.editor=null),this.options=a.extend(!0,{},g,d),this.options.editor=e,this._defaults=g,this._name=f,this.options&&this.options.editor&&(this.options.editor._serialize=this.options.editor.serialize,this.options.editor._deactivate=this.options.editor.deactivate,this.options.editor._activate=this.options.editor.activate,this.options.editor._hideInsertButtons=this.hideButtons,this.options.editor.serialize=this.editorSerialize,this.options.editor.deactivate=this.editorDeactivate,this.options.editor.activate=this.editorActivate,this.options.editor.activatePlaceholder=this.editorActivatePlaceholder)}var f="mediumInsert",g={editor:null,enabled:!0,addons:{images:!0,embeds:!0}};e.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()},e.prototype.events=function(){this.$el.on("dragover drop",function(a){a.preventDefault()}).on("blur",a.proxy(this,"activatePlaceholder")).on("keyup click",a.proxy(this,"toggleButtons")).on("selectstart mousedown",".medium-insert, .medium-insert-buttons",a.proxy(this,"disableSelection")).on("keydown",a.proxy(this,"fixSelectAll")).on("click",".medium-insert-buttons-show",a.proxy(this,"toggleAddons")).on("click",".medium-insert-action",a.proxy(this,"addonAction")),a(b).on("resize",a.proxy(this,"positionButtons",null))},e.prototype.editorSerialize=function(){var b=this._serialize();return a.each(b,function(c){var d=a("
    ").html(b[c].value);d.find(".medium-insert-buttons").remove(),b[c].value=d.html()}),b},e.prototype.editorDeactivate=function(){this._deactivate(),a.each(this.elements,function(b,c){a(c).data("plugin_"+f).disable()})},e.prototype.editorActivate=function(){this._activate(),a.each(this.elements,function(b,c){a(c).data("plugin_"+f).enable()})},e.prototype.editorActivatePlaceholder=function(b){var c,d=a(b).clone();d.find(".medium-insert-buttons").remove(),c=d.html().replace(/^\s+|\s+$/g,"").replace(/^
    <\/p>$/,""),b.querySelector("img")||b.querySelector("blockquote")||""!==c||(b.classList.add("medium-editor-placeholder"),this._hideInsertButtons(a(b)))},e.prototype.activatePlaceholder=function(){this.options.editor.activatePlaceholder(this.$el.get(0))},e.prototype.deselect=function(){c.getSelection().removeAllRanges()},e.prototype.disable=function(){this.options.enabled=!1,this.$el.find(".medium-insert-buttons").addClass("hide")},e.prototype.enable=function(){this.options.enabled=!0,this.$el.find(".medium-insert-buttons").removeClass("hide")},e.prototype.disableSelection=function(b){var c=a(b.target);(c.is("img")===!1||c.hasClass("medium-insert-buttons-show"))&&b.preventDefault()},e.prototype.fixSelectAll=function(a){return this.$el.children().last().removeClass("hide"),(a.ctrlKey||a.metaKey)&&65===a.which?(a.preventDefault(),0===this.$el.find("p").text().trim().length?!1:(this.$el.children().last().addClass("hide"),c.execCommand("selectAll",!1,null))):void 0},e.prototype.initAddons=function(){var b=this;a.each(this.options.addons,function(a,c){var e=f+d(a);return c===!1?void delete b.options.addons[a]:(b.$el[e](c),void(b.options.addons[a]=b.$el.data("plugin_"+e).options))})},e.prototype.clean=function(){var b,c,d,e=this;this.options.enabled!==!1&&((""===this.$el.html().trim()||"
    "===this.$el.html().trim())&&this.$el.html(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),d=this.$el.contents().filter(function(){return"#text"===this.nodeName&&""!==a.trim(a(this).text())}),d.each(function(){a(this).wrap("

    "),e.moveCaret(a(this).parent(),a(this).text().length)}),this.addButtons(),b=this.$el.find(".medium-insert-buttons"),c=b.prev(),c.attr("class")&&c.attr("class").match(/medium\-insert(?!\-active)/)&&b.before(this.templates["src/js/templates/core-empty-line.hbs"]().trim()))},e.prototype.getButtons=function(){return this.options.enabled!==!1?this.templates["src/js/templates/core-buttons.hbs"]({addons:this.options.addons}).trim():void 0},e.prototype.addButtons=function(){0===this.$el.find(".medium-insert-buttons").length&&this.$el.append(this.getButtons())},e.prototype.toggleButtons=function(c){var d=a(c.target),e=b.getSelection(),f=e.getRangeAt(0),g=a(f.commonAncestorContainer),h=this.$el.find(".medium-insert-buttons"),i=!1,j=g.is("p")?g:g.closest("p");this.clean(),d.hasClass("medium-editor-placeholder")===!1&&0===d.closest(".medium-insert-buttons").length&&0===g.closest(".medium-insert-buttons").length&&(this.$el.find(".medium-insert-active").removeClass("medium-insert-active"),a.each(this.options.addons,function(a){return d.closest(".medium-insert-"+a).length&&(g=d),g.closest(".medium-insert-"+a).length?(j=g.closest(".medium-insert-"+a),void(i=!0)):void 0}),i?j.addClass("medium-insert-active"):j.length&&""===j.text().trim()?(j.addClass("medium-insert-active"),this.positionButtons(j),h.show()):this.hideButtons())},e.prototype.hideButtons=function(a){a=a||this.$el,a.find(".medium-insert-buttons").hide(),a.find(".medium-insert-buttons-addons").hide()},e.prototype.positionButtons=function(a){var b,c,d=this.$el.find(".medium-insert-buttons"),e=this.$el.find(".medium-insert-active");e.length&&(b=e.position().left-parseInt(d.find(".medium-insert-buttons-addons").css("left"),10)-parseInt(d.find(".medium-insert-buttons-addons a:first").css("margin-left"),10),b=0>b?e.position().left:b,d.css("left",b)),a&&(c=a.position().top+parseInt(a.css("margin-top"),10),d.css("top",c))},e.prototype.toggleAddons=function(){this.$el.find(".medium-insert-buttons-addons").toggle()},e.prototype.hideAddons=function(){this.$el.find(".medium-insert-buttons-addons").hide()},e.prototype.addonAction=function(b){var c=a(b.target).is("a")?a(b.target):a(b.target).closest("a"),e=c.data("addon"),g=c.data("action");this.$el.data("plugin_"+f+d(e))[g]()},e.prototype.moveCaret=function(a,d){var e,f,g;if(d=d||0,e=c.createRange(),f=b.getSelection(),g=a.get(0),!g.childNodes.length){var h=c.createTextNode(" ");g.appendChild(h)}e.setStart(g.childNodes[0],d),e.collapse(!0),f.removeAllRanges(),f.addRange(e)},e.prototype.addCaption=function(a,b){var c=a.find("figcaption");0===c.length&&a.append(this.templates["src/js/templates/core-caption.hbs"]({placeholder:b}))},e.prototype.removeCaptions=function(b){var c=this.$el.find("figcaption");b&&(c=c.not(b)),c.each(function(){(a(this).find(".medium-insert-caption-placeholder").length||""===a(this).text().trim())&&a(this).remove()})},e.prototype.removeCaptionPlaceholder=function(a){a.find(".medium-insert-caption-placeholder").remove()},a.fn[f]=function(b){return this.each(function(){a.data(this,"plugin_"+f)?"string"==typeof b&&a.data(this,"plugin_"+f)[b]&&a.data(this,"plugin_"+f)[b]():(a.data(this,"plugin_"+f,new e(this,b)),a.data(this,"plugin_"+f).init())})}}(jQuery,window,document),function(a,b,c){"use strict";function d(c,d){this.el=c,this.$el=a(c),this.templates=b.MediumInsert.Templates,this.core=this.$el.data("plugin_"+e),this.options=a.extend(!0,{},g,d),this._defaults=g,this._name=e,this.init()}var e="mediumInsert",f="Embeds",g={label:'',placeholder:"Paste a YouTube, Vimeo, Facebook, Twitter or Instagram link and press Enter",oembedProxy:"http://medium.iframe.ly/api/oembed?iframe=1",styles:{wide:{label:''},left:{label:''},right:{label:''}},captionPlaceholder:"Type caption (optional)",actions:{remove:{label:'',clicked:function(){var b=a.Event("keydown");b.which=8,a(c).trigger(b)}}}};d.prototype.init=function(){this.events(),this.backwardsCompatibility()},d.prototype.events=function(){a(c).on("click",a.proxy(this,"unselectEmbed")).on("keydown",a.proxy(this,"removeEmbed")).on("click",".medium-insert-embeds-toolbar .medium-editor-action",a.proxy(this,"toolbarAction")).on("click",".medium-insert-embeds-toolbar2 .medium-editor-action",a.proxy(this,"toolbar2Action")),this.$el.on("selectstart mousedown",".medium-insert-embeds-placeholder",a.proxy(this,"disablePlaceholderSelection")).on("keyup click",a.proxy(this,"togglePlaceholder")).on("keydown",a.proxy(this,"processLink")).on("click",".medium-insert-embeds-overlay",a.proxy(this,"selectEmbed"))},d.prototype.backwardsCompatibility=function(){var b=this;this.$el.find(".mediumInsert-embeds").removeClass("mediumInsert-embeds").addClass("medium-insert-embeds"),this.$el.find(".medium-insert-embeds").each(function(){0===a(this).find(".medium-insert-embed").length&&(a(this).after(b.templates["src/js/templates/embeds-wrapper.hbs"]({html:a(this).html()})),a(this).remove())})},d.prototype.getCore=function(){return this.core},d.prototype.add=function(){var a=this.$el.find(".medium-insert-active");a.html(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),a.is("p")&&(a.replaceWith('

    '+a.html()+"
    "),a=this.$el.find(".medium-insert-active"),this.getCore().moveCaret(a)),a.addClass("medium-insert-embeds medium-insert-embeds-input medium-insert-embeds-active"),this.togglePlaceholder({target:a.get(0)}),a.click(),this.getCore().hideButtons()},d.prototype.disablePlaceholderSelection=function(b){var c=a(b.target).closest(".medium-insert-embeds-input");b.preventDefault(),b.stopPropagation(),this.getCore().moveCaret(c)},d.prototype.togglePlaceholder=function(c){var d,e,f,g=a(c.target),h=b.getSelection(),i=h.getRangeAt(0),j=a(i.commonAncestorContainer);j.hasClass("medium-insert-embeds-active")?g=j:j.closest(".medium-insert-embeds-active").length&&(g=j.closest(".medium-insert-embeds-active")),g.hasClass("medium-insert-embeds-active")?(d=g.find(".medium-insert-embeds-placeholder"),e=new RegExp(this.options.placeholder,"g"),f=g.text().replace(e,"").trim(),""===f&&0===d.length?g.append(this.templates["src/js/templates/embeds-placeholder.hbs"]({placeholder:this.options.placeholder})):""!==f&&d.length&&d.remove()):this.$el.find(".medium-insert-embeds-active").remove()},d.prototype.processLink=function(a){var b,c,d=this.$el.find(".medium-insert-embeds-active");if(d.length)return b=new RegExp(this.options.placeholder,"g"),c=d.text().replace(b,"").trim(),""===c&&-1!==[8,46,13].indexOf(a.which)?void d.remove():void(13===a.which&&(a.preventDefault(),a.stopPropagation(),this.options.oembedProxy?this.oembed(c):this.parseUrl(c)))},d.prototype.oembed=function(c){var d=this;a.support.cors=!0,a.ajax({crossDomain:!0,cache:!1,url:this.options.oembedProxy,dataType:"json",data:{url:c},success:function(b){var c=b&&b.html;b&&!b.html&&"photo"===b.type&&b.url&&(c=''),a.proxy(d,"embed",c)()},error:function(e,f,g){var h=function(){try{return JSON.parse(e.responseText)}catch(a){}}();"undefined"!=typeof b.console?b.console.log(h&&h.error||e.status||g.message):b.alert("Error requesting media from "+d.options.oembedProxy+" to insert: "+g+" (response status: "+e.status+")"),a.proxy(d,"convertBadEmbed",c)()}})},d.prototype.parseUrl=function(a){var b;return new RegExp(["youtube","youtu.be","vimeo","instagram"].join("|")).test(a)?(b=a.replace(/\n?/g,"").replace(/^((http(s)?:\/\/)?(www\.)?(youtube\.com|youtu\.be)\/(watch\?v=|v\/)?)([a-zA-Z0-9\-_]+)(.*)?$/,'
    ').replace(/^http:\/\/vimeo\.com(\/.+)?\/([0-9]+)$/,'').replace(/^http:\/\/instagram\.com\/p\/(.+)\/?$/,''),void this.embed(/<("[^"]*"|'[^']*'|[^'">])*>/.test(b)?b:!1)):!1},d.prototype.embed=function(a){var b=this.$el.find(".medium-insert-embeds-active");return a?(b.after(this.templates["src/js/templates/embeds-wrapper.hbs"]({html:a})),b.remove(),this.$el.trigger("input"),-1!==a.indexOf("facebook")&&"undefined"!=typeof FB&&setTimeout(function(){FB.XFBML.parse()},2e3),void 0):(alert("Incorrect URL format specified"),!1)},d.prototype.convertBadEmbed=function(b){var c,d,e,f=this.templates["src/js/templates/core-empty-line.hbs"]().trim();c=this.$el.find(".medium-insert-embeds-active"),e=a(f),c.before(e),c.remove(),e.html(b),d=a(f),e.after(d),this.$el.trigger("input"),this.getCore().moveCaret(c)},d.prototype.selectEmbed=function(b){var c=a(b.target).hasClass("medium-insert-embeds")?a(b.target):a(b.target).closest(".medium-insert-embeds"),d=this;c.addClass("medium-insert-embeds-selected"),setTimeout(function(){d.addToolbar(),d.getCore().addCaption(c.find("figure"),d.options.captionPlaceholder)},50)},d.prototype.unselectEmbed=function(b){var c=a(b.target).hasClass("medium-insert-embeds")?a(b.target):a(b.target).closest(".medium-insert-embeds"),d=this.$el.find(".medium-insert-embeds-selected");return c.hasClass("medium-insert-embeds-selected")?(d.not(c).removeClass("medium-insert-embeds-selected"),a(".medium-insert-embeds-toolbar, .medium-insert-embeds-toolbar2").remove(),this.getCore().removeCaptions(c.find("figcaption")),void((a(b.target).is(".medium-insert-caption-placeholder")||a(b.target).is("figcaption"))&&(c.removeClass("medium-insert-embeds-selected"),this.getCore().removeCaptionPlaceholder(c.find("figure"))))):(d.removeClass("medium-insert-embeds-selected"),a(".medium-insert-embeds-toolbar, .medium-insert-embeds-toolbar2").remove(),void(a(b.target).is(".medium-insert-caption-placeholder")?this.getCore().removeCaptionPlaceholder(c.find("figure")):c.is("figcaption")===!1&&this.getCore().removeCaptions()))},d.prototype.removeEmbed=function(b){var c,d;(8===b.which||46===b.which)&&(c=this.$el.find(".medium-insert-embeds-selected"),c.length&&(b.preventDefault(),a(".medium-insert-embeds-toolbar, .medium-insert-embeds-toolbar2").remove(),d=a(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),c.before(d),c.remove(),this.getCore().hideAddons(),this.getCore().moveCaret(d),this.$el.trigger("input")))},d.prototype.addToolbar=function(){var b,c,d=this.$el.find(".medium-insert-embeds-selected"),e=!1;0!==d.length&&(a("body").append(this.templates["src/js/templates/embeds-toolbar.hbs"]({styles:this.options.styles,actions:this.options.actions}).trim()),b=a(".medium-insert-embeds-toolbar"),c=a(".medium-insert-embeds-toolbar2"),b.css({top:d.offset().top-b.height()-8-2-5,left:d.offset().left+d.width()/2-b.width()/2}).show(),c.css({top:d.offset().top+2,left:d.offset().left+d.width()-c.width()-4}).show(),b.find("button").each(function(){d.hasClass("medium-insert-embeds-"+a(this).data("action"))&&(a(this).addClass("medium-editor-button-active"),e=!0)}),e===!1&&b.find("button").first().addClass("medium-editor-button-active"))},d.prototype.toolbarAction=function(b){var c=a(b.target).is("button")?a(b.target):a(b.target).closest("button"),d=c.closest("li"),e=d.closest("ul"),f=e.find("li"),g=this.$el.find(".medium-insert-embeds-selected"),h=this;c.addClass("medium-editor-button-active"),d.siblings().find(".medium-editor-button-active").removeClass("medium-editor-button-active"),f.find("button").each(function(){var b="medium-insert-embeds-"+a(this).data("action");a(this).hasClass("medium-editor-button-active")?(g.addClass(b),h.options.styles[a(this).data("action")].added&&h.options.styles[a(this).data("action")].added(g)):(g.removeClass(b),h.options.styles[a(this).data("action")].removed&&h.options.styles[a(this).data("action")].removed(g))}),this.$el.trigger("input")},d.prototype.toolbar2Action=function(b){var c=a(b.target).is("button")?a(b.target):a(b.target).closest("button"),d=this.options.actions[c.data("action")].clicked;d&&d(this.$el.find(".medium-insert-embeds-selected")),this.$el.trigger("input")},a.fn[e+f]=function(b){return this.each(function(){a.data(this,"plugin_"+e+f)||a.data(this,"plugin_"+e+f,new d(this,b))})}}(jQuery,window,document),function(a,b,c){"use strict";function d(c,d){this.el=c,this.$el=a(c),this.templates=b.MediumInsert.Templates,this.core=this.$el.data("plugin_"+e),this.options=a.extend(!0,{},g,d),this._defaults=g,this._name=e,this.options.preview&&!b.FileReader&&(this.options.preview=!1),this.init()}var e="mediumInsert",f="Images",g={label:'',uploadScript:"upload.php",deleteScript:"delete.php",preview:!0,styles:{wide:{label:''},left:{label:''},right:{label:''},grid:{label:''}},captionPlaceholder:"Type caption for image (optional)",actions:{remove:{label:'',clicked:function(){var b=a.Event("keydown");b.which=8,a(c).trigger(b)}}}};d.prototype.init=function(){this.events(),this.backwardsCompatibility(),this.sorting()},d.prototype.events=function(){a(c).on("click",a.proxy(this,"unselectImage")).on("keydown",a.proxy(this,"removeImage")).on("click",".medium-insert-images-toolbar .medium-editor-action",a.proxy(this,"toolbarAction")).on("click",".medium-insert-images-toolbar2 .medium-editor-action",a.proxy(this,"toolbar2Action")),this.$el.on("click",".medium-insert-images img",a.proxy(this,"selectImage"))},d.prototype.backwardsCompatibility=function(){this.$el.find(".mediumInsert").removeClass("mediumInsert").addClass("medium-insert-images"),this.$el.find(".medium-insert-images.small").removeClass("small").addClass("medium-insert-images-left")},d.prototype.getCore=function(){return this.core},d.prototype.add=function(){var b=this,c=a(this.templates["src/js/templates/images-fileupload.hbs"]()),d={url:this.options.uploadScript,dataType:"json",acceptFileTypes:/(\.|\/)(gif|jpe?g|png)$/i,add:function(c,d){a.proxy(b,"uploadAdd",c,d)()},done:function(c,d){a.proxy(b,"uploadDone",c,d)()}};(new XMLHttpRequest).upload&&(d.progress=function(c,d){a.proxy(b,"uploadProgress",c,d)()},d.progressall=function(c,d){a.proxy(b,"uploadProgressall",c,d)()}),c.fileupload(d),c.click()},d.prototype.uploadAdd=function(b,c){var d,e=this.$el.find(".medium-insert-active"),f=this;this.getCore().hideButtons(),e.is("p")&&(e.replaceWith('
    '+e.html()+"
    "),e=this.$el.find(".medium-insert-active"),this.getCore().moveCaret(e)),e.addClass("medium-insert-images"),this.options.preview===!1&&0===e.find("progress").length&&(new XMLHttpRequest).upload&&e.append(this.templates["src/js/templates/images-progressbar.hbs"]()),(c.autoUpload||c.autoUpload!==!1&&a(b.target).fileupload("option","autoUpload"))&&c.process().done(function(){f.options.preview?(d=new FileReader,d.onload=function(b){a.proxy(f,"showImage",b.target.result,c)()},d.readAsDataURL(c.files[0])):c.submit()})},d.prototype.uploadProgressall=function(a,b){var c,d;this.options.preview===!1&&(c=parseInt(b.loaded/b.total*100,10),d=this.$el.find(".medium-insert-active").find("progress"),d.attr("value",c).text(c),100===c&&d.remove())},d.prototype.uploadProgress=function(a,b){var c,d;this.options.preview&&(c=100-parseInt(b.loaded/b.total*100,10),d=b.context.find(".medium-insert-images-progress"),d.css("width",c+"%"),0===c&&d.remove())},d.prototype.uploadDone=function(b,c){a.proxy(this,"showImage",c.result.files[0].url,c)(),this.getCore().clean(),this.$el.trigger("input"),this.sorting()},d.prototype.showImage=function(b,c){var d,e;this.options.preview&&c.context?(e=this.getDOMImage(),e.onload=function(){c.context.find("img").attr("src",e.src)},e.src=b):(d=this.$el.find(".medium-insert-active"),c.context=a(this.templates["src/js/templates/images-image.hbs"]({img:b,progress:this.options.preview})).appendTo(d),d.find("br").remove(),this.options.preview&&c.submit())},d.prototype.getDOMImage=function(){return new b.Image},d.prototype.selectImage=function(b){var c=a(b.target),d=this;c.addClass("medium-insert-image-active"),c.closest(".medium-insert-images").addClass("medium-insert-active"),setTimeout(function(){d.addToolbar(),d.getCore().addCaption(c.closest("figure"),d.options.captionPlaceholder)},50)},d.prototype.unselectImage=function(b){var c=a(b.target),d=this.$el.find(".medium-insert-image-active");return c.is("img")&&c.hasClass("medium-insert-image-active")?(d.not(c).removeClass("medium-insert-image-active"),a(".medium-insert-images-toolbar, .medium-insert-images-toolbar2").remove(),void this.getCore().removeCaptions(c)):(d.removeClass("medium-insert-image-active"),a(".medium-insert-images-toolbar, .medium-insert-images-toolbar2").remove(),void(c.is(".medium-insert-caption-placeholder")?this.getCore().removeCaptionPlaceholder(d.closest("figure")):c.is("figcaption")===!1&&this.getCore().removeCaptions()))},d.prototype.removeImage=function(b){var c,d,e;(8===b.which||46===b.which)&&(c=this.$el.find(".medium-insert-image-active"),c.length&&(b.preventDefault(),this.deleteFile(c.attr("src")),d=c.closest(".medium-insert-images"),c.closest("figure").remove(),a(".medium-insert-images-toolbar, .medium-insert-images-toolbar2").remove(),0===d.find("figure").length&&(e=a(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),d.before(e),d.remove(),this.getCore().hideAddons(),this.getCore().moveCaret(e)),this.$el.trigger("input")))},d.prototype.deleteFile=function(b){this.options.deleteScript&&a.post(this.options.deleteScript,{file:b})},d.prototype.addToolbar=function(){var b,c,d=this.$el.find(".medium-insert-image-active"),e=d.closest(".medium-insert-images"),f=!1;a("body").append(this.templates["src/js/templates/images-toolbar.hbs"]({styles:this.options.styles,actions:this.options.actions}).trim()),b=a(".medium-insert-images-toolbar"),c=a(".medium-insert-images-toolbar2"),b.css({top:d.offset().top-b.height()-8-2-5,left:d.offset().left+d.width()/2-b.width()/2}).show(),c.css({top:d.offset().top+2,left:d.offset().left+d.width()-c.width()-4}).show(),b.find("button").each(function(){e.hasClass("medium-insert-images-"+a(this).data("action"))&&(a(this).addClass("medium-editor-button-active"),f=!0)}),f===!1&&b.find("button").first().addClass("medium-editor-button-active")},d.prototype.toolbarAction=function(b){var c=a(b.target).is("button")?a(b.target):a(b.target).closest("button"),d=c.closest("li"),e=d.closest("ul"),f=e.find("li"),g=this.$el.find(".medium-insert-active"),h=this;c.addClass("medium-editor-button-active"),d.siblings().find(".medium-editor-button-active").removeClass("medium-editor-button-active"),f.find("button").each(function(){var b="medium-insert-images-"+a(this).data("action");a(this).hasClass("medium-editor-button-active")?(g.addClass(b),h.options.styles[a(this).data("action")].added&&h.options.styles[a(this).data("action")].added(g)):(g.removeClass(b),h.options.styles[a(this).data("action")].removed&&h.options.styles[a(this).data("action")].removed(g))}),this.$el.trigger("input")},d.prototype.toolbar2Action=function(b){var c=a(b.target).is("button")?a(b.target):a(b.target).closest("button"),d=this.options.actions[c.data("action")].clicked;d&&d(this.$el.find(".medium-insert-image-active")),this.$el.trigger("input")},d.prototype.sorting=function(){var b=this;a(".medium-insert-images").sortable({group:"medium-insert-images",containerSelector:".medium-insert-images",itemSelector:"figure",placeholder:'
    ',handle:"img",nested:!1,vertical:!1,afterMove:function(){b.$el.trigger("input")}})},a.fn[e+f]=function(b){return this.each(function(){a.data(this,"plugin_"+e+f)||a.data(this,"plugin_"+e+f,new d(this,b))})}}(jQuery,window,document); \ No newline at end of file +this.MediumInsert=this.MediumInsert||{},this.MediumInsert.Templates=this.MediumInsert.Templates||{},this.MediumInsert.Templates["src/js/templates/core-buttons.hbs"]=Handlebars.template({1:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • ';return f=null!=(f=b.label||(null!=a?a.label:a))?f:j,e=typeof f===i?f.call(a,{name:"label",hash:{},data:d}):f,null!=e&&(k+=e),k+"
  • \n"},compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f='\n"},useData:!0}),this.MediumInsert.Templates["src/js/templates/core-caption.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f="function",g=b.helperMissing,h=this.escapeExpression;return'
    \n
    '+h((e=null!=(e=b.placeholder||(null!=a?a.placeholder:a))?e:g,typeof e===f?e.call(a,{name:"placeholder",hash:{},data:d}):e))+"
    \n
    "},useData:!0}),this.MediumInsert.Templates["src/js/templates/core-empty-line.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(){return"


    \n"},useData:!0}),this.MediumInsert.Templates["src/js/templates/embeds-placeholder.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f="function",g=b.helperMissing,h=this.escapeExpression;return'
    '+h((e=null!=(e=b.placeholder||(null!=a?a.placeholder:a))?e:g,typeof e===f?e.call(a,{name:"placeholder",hash:{},data:d}):e))+"
    "},useData:!0}),this.MediumInsert.Templates["src/js/templates/embeds-toolbar.hbs"]=Handlebars.template({1:function(a,b,c,d){var e,f="";return e=b["if"].call(a,null!=a?a.label:a,{name:"if",hash:{},fn:this.program(2,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},2:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • \n \n
  • \n"},4:function(a,b,c,d){var e,f='
    \n
      \n';return e=b.each.call(a,null!=a?a.actions:a,{name:"each",hash:{},fn:this.program(5,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f+"
    \n
    \n"},5:function(a,b,c,d){var e,f="";return e=b["if"].call(a,null!=a?a.label:a,{name:"if",hash:{},fn:this.program(6,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},6:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • \n \n
  • \n"},compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f='
    \n
      \n';return e=b.each.call(a,null!=a?a.styles:a,{name:"each",hash:{},fn:this.program(1,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f+="
    \n
    \n\n",e=b["if"].call(a,null!=a?a.actions:a,{name:"if",hash:{},fn:this.program(4,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},useData:!0}),this.MediumInsert.Templates["src/js/templates/embeds-wrapper.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f,g="function",h=b.helperMissing,i='
    \n
    \n
    \n ';return f=null!=(f=b.html||(null!=a?a.html:a))?f:h,e=typeof f===g?f.call(a,{name:"html",hash:{},data:d}):f,null!=e&&(i+=e),i+'\n
    \n
    \n
    \n
    '},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-fileupload.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(){return''},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-image.hbs"]=Handlebars.template({1:function(){return'
    \n'},compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f,g="function",h=b.helperMissing,i=this.escapeExpression,j='
    \n \n';return e=b["if"].call(a,null!=a?a.progress:a,{name:"if",hash:{},fn:this.program(1,d),inverse:this.noop,data:d}),null!=e&&(j+=e),j+"
    "},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-progressbar.hbs"]=Handlebars.template({compiler:[6,">= 2.0.0-beta.1"],main:function(){return'0'},useData:!0}),this.MediumInsert.Templates["src/js/templates/images-toolbar.hbs"]=Handlebars.template({1:function(a,b,c,d){var e,f="";return e=b["if"].call(a,null!=a?a.label:a,{name:"if",hash:{},fn:this.program(2,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},2:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • \n \n
  • \n"},4:function(a,b,c,d){var e,f='
    \n
      \n';return e=b.each.call(a,null!=a?a.actions:a,{name:"each",hash:{},fn:this.program(5,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f+"
    \n
    \n"},5:function(a,b,c,d){var e,f="";return e=b["if"].call(a,null!=a?a.label:a,{name:"if",hash:{},fn:this.program(6,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},6:function(a,b,c,d){var e,f,g=this.lambda,h=this.escapeExpression,i="function",j=b.helperMissing,k='
  • \n \n
  • \n"},compiler:[6,">= 2.0.0-beta.1"],main:function(a,b,c,d){var e,f='
    \n
      \n';return e=b.each.call(a,null!=a?a.styles:a,{name:"each",hash:{},fn:this.program(1,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f+="
    \n
    \n\n",e=b["if"].call(a,null!=a?a.actions:a,{name:"if",hash:{},fn:this.program(4,d),inverse:this.noop,data:d}),null!=e&&(f+=e),f},useData:!0}),function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}function e(c,d){var e;this.el=c,this.$el=a(c),this.templates=b.MediumInsert.Templates,d&&(e=d.editor,d.editor=null),this.options=a.extend(!0,{},g,d),this.options.editor=e,this._defaults=g,this._name=f,this.options&&this.options.editor&&(this.options.editor._serialize=this.options.editor.serialize,this.options.editor._deactivate=this.options.editor.deactivate,this.options.editor._activate=this.options.editor.activate,this.options.editor._hideInsertButtons=this.hideButtons,this.options.editor.serialize=this.editorSerialize,this.options.editor.deactivate=this.editorDeactivate,this.options.editor.activate=this.editorActivate,this.options.editor.activatePlaceholder=this.editorActivatePlaceholder)}var f="mediumInsert",g={editor:null,enabled:!0,addons:{images:!0,embeds:!0}};e.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()},e.prototype.events=function(){this.$el.on("dragover drop",function(a){a.preventDefault()}).on("blur",a.proxy(this,"activatePlaceholder")).on("keyup click",a.proxy(this,"toggleButtons")).on("selectstart mousedown",".medium-insert, .medium-insert-buttons",a.proxy(this,"disableSelection")).on("keydown",a.proxy(this,"fixSelectAll")).on("click",".medium-insert-buttons-show",a.proxy(this,"toggleAddons")).on("click",".medium-insert-action",a.proxy(this,"addonAction")),a(b).on("resize",a.proxy(this,"positionButtons",null))},e.prototype.editorSerialize=function(){var b=this._serialize();return a.each(b,function(c){var d=a("
    ").html(b[c].value);d.find(".medium-insert-buttons").remove(),b[c].value=d.html()}),b},e.prototype.editorDeactivate=function(){this._deactivate(),a.each(this.elements,function(b,c){a(c).data("plugin_"+f).disable()})},e.prototype.editorActivate=function(){this._activate(),a.each(this.elements,function(b,c){a(c).data("plugin_"+f).enable()})},e.prototype.editorActivatePlaceholder=function(b){var c,d=a(b).clone();d.find(".medium-insert-buttons").remove(),c=d.html().replace(/^\s+|\s+$/g,"").replace(/^
    <\/p>$/,""),b.querySelector("img")||b.querySelector("blockquote")||""!==c||(b.classList.add("medium-editor-placeholder"),this._hideInsertButtons(a(b)))},e.prototype.activatePlaceholder=function(){this.options.editor.activatePlaceholder(this.$el.get(0))},e.prototype.deselect=function(){c.getSelection().removeAllRanges()},e.prototype.disable=function(){this.options.enabled=!1,this.$el.find(".medium-insert-buttons").addClass("hide")},e.prototype.enable=function(){this.options.enabled=!0,this.$el.find(".medium-insert-buttons").removeClass("hide")},e.prototype.disableSelection=function(b){var c=a(b.target);(c.is("img")===!1||c.hasClass("medium-insert-buttons-show"))&&b.preventDefault()},e.prototype.fixSelectAll=function(a){return this.$el.children().last().removeClass("hide"),(a.ctrlKey||a.metaKey)&&65===a.which?(a.preventDefault(),0===this.$el.find("p").text().trim().length?!1:(this.$el.children().last().addClass("hide"),c.execCommand("selectAll",!1,null))):void 0},e.prototype.initAddons=function(){var b=this;a.each(this.options.addons,function(a,c){var e=f+d(a);return c===!1?void delete b.options.addons[a]:(b.$el[e](c),void(b.options.addons[a]=b.$el.data("plugin_"+e).options))})},e.prototype.clean=function(){var b,c,d,e=this;this.options.enabled!==!1&&((""===this.$el.html().trim()||"
    "===this.$el.html().trim())&&this.$el.html(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),d=this.$el.contents().filter(function(){return"#text"===this.nodeName&&""!==a.trim(a(this).text())}),d.each(function(){a(this).wrap("

    "),e.moveCaret(a(this).parent(),a(this).text().length)}),this.addButtons(),b=this.$el.find(".medium-insert-buttons"),c=b.prev(),c.attr("class")&&c.attr("class").match(/medium\-insert(?!\-active)/)&&b.before(this.templates["src/js/templates/core-empty-line.hbs"]().trim()))},e.prototype.getButtons=function(){return this.options.enabled!==!1?this.templates["src/js/templates/core-buttons.hbs"]({addons:this.options.addons}).trim():void 0},e.prototype.addButtons=function(){0===this.$el.find(".medium-insert-buttons").length&&this.$el.append(this.getButtons())},e.prototype.toggleButtons=function(c){var d,e=a(c.target),f=b.getSelection(),g=f.getRangeAt(0),h=a(g.commonAncestorContainer),i=h.is("p")?h:h.closest("p"),j=this;this.clean(),e.hasClass("medium-editor-placeholder")===!1&&0===e.closest(".medium-insert-buttons").length&&0===h.closest(".medium-insert-buttons").length&&(this.$el.find(".medium-insert-active").removeClass("medium-insert-active"),a.each(this.options.addons,function(a){return e.closest(".medium-insert-"+a).length&&(h=e),h.closest(".medium-insert-"+a).length?(i=h.closest(".medium-insert-"+a),void(d=a)):void 0}),i.length&&(""===i.text().trim()&&!d||"images"===d)?(i.addClass("medium-insert-active"),setTimeout(function(){j.positionButtons(d),j.showButtons(d)},d?100:0)):this.hideButtons())},e.prototype.showButtons=function(a){var b=this.$el.find(".medium-insert-buttons");b.show(),b.find("li").show(),a&&(b.find("li").hide(),b.find('a[data-addon="'+a+'"]').parent().show())},e.prototype.hideButtons=function(a){a=a||this.$el,a.find(".medium-insert-buttons").hide(),a.find(".medium-insert-buttons-addons").hide()},e.prototype.positionButtons=function(a){var b,c,d,e=this.$el.find(".medium-insert-buttons"),f=this.$el.find(".medium-insert-active"),g=f.find("figure:last").length?f.find("figure:last"):f,h=f.find("figure:first").length?f.find("figure:first"):f;f.length&&(b=f.position().left-parseInt(e.find(".medium-insert-buttons-addons").css("left"),10)-parseInt(e.find(".medium-insert-buttons-addons a:first").css("margin-left"),10),b=0>b?f.position().left:b,a?(f.position().left!==h.position().left&&(b=h.position().left),c=g.position().top+g.height()+parseInt(f.css("margin-bottom"),10)-5,d=g.find("figcaption"),d.length&&(c-=d.height()+parseInt(d.css("margin-top"),10))):c=f.position().top+parseInt(f.css("margin-top"),10),e.css({left:b,top:c}))},e.prototype.toggleAddons=function(){this.$el.find(".medium-insert-buttons-addons").toggle()},e.prototype.hideAddons=function(){this.$el.find(".medium-insert-buttons-addons").hide()},e.prototype.addonAction=function(b){var c=a(b.target).is("a")?a(b.target):a(b.target).closest("a"),e=c.data("addon"),g=c.data("action");this.$el.data("plugin_"+f+d(e))[g]()},e.prototype.moveCaret=function(a,d){var e,f,g;if(d=d||0,e=c.createRange(),f=b.getSelection(),g=a.get(0),!g.childNodes.length){var h=c.createTextNode(" ");g.appendChild(h)}e.setStart(g.childNodes[0],d),e.collapse(!0),f.removeAllRanges(),f.addRange(e)},e.prototype.addCaption=function(a,b){var c=a.find("figcaption");0===c.length&&a.append(this.templates["src/js/templates/core-caption.hbs"]({placeholder:b}))},e.prototype.removeCaptions=function(b){var c=this.$el.find("figcaption");b&&(c=c.not(b)),c.each(function(){(a(this).find(".medium-insert-caption-placeholder").length||""===a(this).text().trim())&&a(this).remove()})},e.prototype.removeCaptionPlaceholder=function(a){a.find(".medium-insert-caption-placeholder").remove()},a.fn[f]=function(b){return this.each(function(){a.data(this,"plugin_"+f)?"string"==typeof b&&a.data(this,"plugin_"+f)[b]&&a.data(this,"plugin_"+f)[b]():(a.data(this,"plugin_"+f,new e(this,b)),a.data(this,"plugin_"+f).init())})}}(jQuery,window,document),function(a,b,c){"use strict";function d(c,d){this.el=c,this.$el=a(c),this.templates=b.MediumInsert.Templates,this.core=this.$el.data("plugin_"+e),this.options=a.extend(!0,{},g,d),this._defaults=g,this._name=e,this.init()}var e="mediumInsert",f="Embeds",g={label:'',placeholder:"Paste a YouTube, Vimeo, Facebook, Twitter or Instagram link and press Enter",oembedProxy:"http://medium.iframe.ly/api/oembed?iframe=1",styles:{wide:{label:''},left:{label:''},right:{label:''}},captionPlaceholder:"Type caption (optional)",actions:{remove:{label:'',clicked:function(){var b=a.Event("keydown");b.which=8,a(c).trigger(b)}}}};d.prototype.init=function(){this.events(),this.backwardsCompatibility()},d.prototype.events=function(){a(c).on("click",a.proxy(this,"unselectEmbed")).on("keydown",a.proxy(this,"removeEmbed")).on("click",".medium-insert-embeds-toolbar .medium-editor-action",a.proxy(this,"toolbarAction")).on("click",".medium-insert-embeds-toolbar2 .medium-editor-action",a.proxy(this,"toolbar2Action")),this.$el.on("selectstart mousedown",".medium-insert-embeds-placeholder",a.proxy(this,"disablePlaceholderSelection")).on("keyup click",a.proxy(this,"togglePlaceholder")).on("keydown",a.proxy(this,"processLink")).on("click",".medium-insert-embeds-overlay",a.proxy(this,"selectEmbed"))},d.prototype.backwardsCompatibility=function(){var b=this;this.$el.find(".mediumInsert-embeds").removeClass("mediumInsert-embeds").addClass("medium-insert-embeds"),this.$el.find(".medium-insert-embeds").each(function(){0===a(this).find(".medium-insert-embed").length&&(a(this).after(b.templates["src/js/templates/embeds-wrapper.hbs"]({html:a(this).html()})),a(this).remove())})},d.prototype.getCore=function(){return this.core},d.prototype.add=function(){var a=this.$el.find(".medium-insert-active");a.html(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),a.is("p")&&(a.replaceWith('

    '+a.html()+"
    "),a=this.$el.find(".medium-insert-active"),this.getCore().moveCaret(a)),a.addClass("medium-insert-embeds medium-insert-embeds-input medium-insert-embeds-active"),this.togglePlaceholder({target:a.get(0)}),a.click(),this.getCore().hideButtons()},d.prototype.disablePlaceholderSelection=function(b){var c=a(b.target).closest(".medium-insert-embeds-input");b.preventDefault(),b.stopPropagation(),this.getCore().moveCaret(c)},d.prototype.togglePlaceholder=function(c){var d,e,f,g=a(c.target),h=b.getSelection(),i=h.getRangeAt(0),j=a(i.commonAncestorContainer);j.hasClass("medium-insert-embeds-active")?g=j:j.closest(".medium-insert-embeds-active").length&&(g=j.closest(".medium-insert-embeds-active")),g.hasClass("medium-insert-embeds-active")?(d=g.find(".medium-insert-embeds-placeholder"),e=new RegExp(this.options.placeholder,"g"),f=g.text().replace(e,"").trim(),""===f&&0===d.length?g.append(this.templates["src/js/templates/embeds-placeholder.hbs"]({placeholder:this.options.placeholder})):""!==f&&d.length&&d.remove()):this.$el.find(".medium-insert-embeds-active").remove()},d.prototype.processLink=function(a){var b,c,d=this.$el.find(".medium-insert-embeds-active");if(d.length)return b=new RegExp(this.options.placeholder,"g"),c=d.text().replace(b,"").trim(),""===c&&-1!==[8,46,13].indexOf(a.which)?void d.remove():void(13===a.which&&(a.preventDefault(),a.stopPropagation(),this.options.oembedProxy?this.oembed(c):this.parseUrl(c)))},d.prototype.oembed=function(c){var d=this;a.support.cors=!0,a.ajax({crossDomain:!0,cache:!1,url:this.options.oembedProxy,dataType:"json",data:{url:c},success:function(b){var c=b&&b.html;b&&!b.html&&"photo"===b.type&&b.url&&(c=''),a.proxy(d,"embed",c)()},error:function(e,f,g){var h=function(){try{return JSON.parse(e.responseText)}catch(a){}}();"undefined"!=typeof b.console?b.console.log(h&&h.error||e.status||g.message):b.alert("Error requesting media from "+d.options.oembedProxy+" to insert: "+g+" (response status: "+e.status+")"),a.proxy(d,"convertBadEmbed",c)()}})},d.prototype.parseUrl=function(a){var b;return new RegExp(["youtube","youtu.be","vimeo","instagram"].join("|")).test(a)?(b=a.replace(/\n?/g,"").replace(/^((http(s)?:\/\/)?(www\.)?(youtube\.com|youtu\.be)\/(watch\?v=|v\/)?)([a-zA-Z0-9\-_]+)(.*)?$/,'
    ').replace(/^http:\/\/vimeo\.com(\/.+)?\/([0-9]+)$/,'').replace(/^http:\/\/instagram\.com\/p\/(.+)\/?$/,''),void this.embed(/<("[^"]*"|'[^']*'|[^'">])*>/.test(b)?b:!1)):!1},d.prototype.embed=function(a){var b=this.$el.find(".medium-insert-embeds-active");return a?(b.after(this.templates["src/js/templates/embeds-wrapper.hbs"]({html:a})),b.remove(),this.$el.trigger("input"),-1!==a.indexOf("facebook")&&"undefined"!=typeof FB&&setTimeout(function(){FB.XFBML.parse()},2e3),void 0):(alert("Incorrect URL format specified"),!1)},d.prototype.convertBadEmbed=function(b){var c,d,e,f=this.templates["src/js/templates/core-empty-line.hbs"]().trim();c=this.$el.find(".medium-insert-embeds-active"),e=a(f),c.before(e),c.remove(),e.html(b),d=a(f),e.after(d),this.$el.trigger("input"),this.getCore().moveCaret(c)},d.prototype.selectEmbed=function(b){var c=a(b.target).hasClass("medium-insert-embeds")?a(b.target):a(b.target).closest(".medium-insert-embeds"),d=this;c.addClass("medium-insert-embeds-selected"),setTimeout(function(){d.addToolbar(),d.getCore().addCaption(c.find("figure"),d.options.captionPlaceholder)},50)},d.prototype.unselectEmbed=function(b){var c=a(b.target).hasClass("medium-insert-embeds")?a(b.target):a(b.target).closest(".medium-insert-embeds"),d=this.$el.find(".medium-insert-embeds-selected");return c.hasClass("medium-insert-embeds-selected")?(d.not(c).removeClass("medium-insert-embeds-selected"),a(".medium-insert-embeds-toolbar, .medium-insert-embeds-toolbar2").remove(),this.getCore().removeCaptions(c.find("figcaption")),void((a(b.target).is(".medium-insert-caption-placeholder")||a(b.target).is("figcaption"))&&(c.removeClass("medium-insert-embeds-selected"),this.getCore().removeCaptionPlaceholder(c.find("figure"))))):(d.removeClass("medium-insert-embeds-selected"),a(".medium-insert-embeds-toolbar, .medium-insert-embeds-toolbar2").remove(),void(a(b.target).is(".medium-insert-caption-placeholder")?this.getCore().removeCaptionPlaceholder(c.find("figure")):c.is("figcaption")===!1&&this.getCore().removeCaptions()))},d.prototype.removeEmbed=function(b){var c,d;(8===b.which||46===b.which)&&(c=this.$el.find(".medium-insert-embeds-selected"),c.length&&(b.preventDefault(),a(".medium-insert-embeds-toolbar, .medium-insert-embeds-toolbar2").remove(),d=a(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),c.before(d),c.remove(),this.getCore().hideAddons(),this.getCore().moveCaret(d),this.$el.trigger("input")))},d.prototype.addToolbar=function(){var b,c,d=this.$el.find(".medium-insert-embeds-selected"),e=!1;0!==d.length&&(a("body").append(this.templates["src/js/templates/embeds-toolbar.hbs"]({styles:this.options.styles,actions:this.options.actions}).trim()),b=a(".medium-insert-embeds-toolbar"),c=a(".medium-insert-embeds-toolbar2"),b.css({top:d.offset().top-b.height()-8-2-5,left:d.offset().left+d.width()/2-b.width()/2}).show(),c.css({top:d.offset().top+2,left:d.offset().left+d.width()-c.width()-4}).show(),b.find("button").each(function(){d.hasClass("medium-insert-embeds-"+a(this).data("action"))&&(a(this).addClass("medium-editor-button-active"),e=!0)}),e===!1&&b.find("button").first().addClass("medium-editor-button-active"))},d.prototype.toolbarAction=function(b){var c=a(b.target).is("button")?a(b.target):a(b.target).closest("button"),d=c.closest("li"),e=d.closest("ul"),f=e.find("li"),g=this.$el.find(".medium-insert-embeds-selected"),h=this;c.addClass("medium-editor-button-active"),d.siblings().find(".medium-editor-button-active").removeClass("medium-editor-button-active"),f.find("button").each(function(){var b="medium-insert-embeds-"+a(this).data("action");a(this).hasClass("medium-editor-button-active")?(g.addClass(b),h.options.styles[a(this).data("action")].added&&h.options.styles[a(this).data("action")].added(g)):(g.removeClass(b),h.options.styles[a(this).data("action")].removed&&h.options.styles[a(this).data("action")].removed(g))}),this.$el.trigger("input")},d.prototype.toolbar2Action=function(b){var c=a(b.target).is("button")?a(b.target):a(b.target).closest("button"),d=this.options.actions[c.data("action")].clicked;d&&d(this.$el.find(".medium-insert-embeds-selected")),this.$el.trigger("input")},a.fn[e+f]=function(b){return this.each(function(){a.data(this,"plugin_"+e+f)||a.data(this,"plugin_"+e+f,new d(this,b))})}}(jQuery,window,document),function(a,b,c){"use strict";function d(c,d){this.el=c,this.$el=a(c),this.templates=b.MediumInsert.Templates,this.core=this.$el.data("plugin_"+e),this.options=a.extend(!0,{},g,d),this._defaults=g,this._name=e,this.options.preview&&!b.FileReader&&(this.options.preview=!1),this.init()}var e="mediumInsert",f="Images",g={label:'',uploadScript:"upload.php",deleteScript:"delete.php",preview:!0,styles:{wide:{label:''},left:{label:''},right:{label:''},grid:{label:''}},captionPlaceholder:"Type caption for image (optional)",actions:{remove:{label:'',clicked:function(){var b=a.Event("keydown");b.which=8,a(c).trigger(b)}}}};d.prototype.init=function(){this.events(),this.backwardsCompatibility(),this.sorting()},d.prototype.events=function(){a(c).on("click",a.proxy(this,"unselectImage")).on("keydown",a.proxy(this,"removeImage")).on("click",".medium-insert-images-toolbar .medium-editor-action",a.proxy(this,"toolbarAction")).on("click",".medium-insert-images-toolbar2 .medium-editor-action",a.proxy(this,"toolbar2Action")),this.$el.on("click",".medium-insert-images img",a.proxy(this,"selectImage"))},d.prototype.backwardsCompatibility=function(){this.$el.find(".mediumInsert").removeClass("mediumInsert").addClass("medium-insert-images"),this.$el.find(".medium-insert-images.small").removeClass("small").addClass("medium-insert-images-left")},d.prototype.getCore=function(){return this.core},d.prototype.add=function(){var b=this,c=a(this.templates["src/js/templates/images-fileupload.hbs"]()),d={url:this.options.uploadScript,dataType:"json",acceptFileTypes:/(\.|\/)(gif|jpe?g|png)$/i,add:function(c,d){a.proxy(b,"uploadAdd",c,d)()},done:function(c,d){a.proxy(b,"uploadDone",c,d)()}};(new XMLHttpRequest).upload&&(d.progress=function(c,d){a.proxy(b,"uploadProgress",c,d)()},d.progressall=function(c,d){a.proxy(b,"uploadProgressall",c,d)()}),c.fileupload(d),c.click()},d.prototype.uploadAdd=function(b,c){var d,e=this.$el.find(".medium-insert-active"),f=this;this.getCore().hideButtons(),e.is("p")&&(e.replaceWith('
    '+e.html()+"
    "),e=this.$el.find(".medium-insert-active"),this.getCore().moveCaret(e)),e.addClass("medium-insert-images"),this.options.preview===!1&&0===e.find("progress").length&&(new XMLHttpRequest).upload&&e.append(this.templates["src/js/templates/images-progressbar.hbs"]()),(c.autoUpload||c.autoUpload!==!1&&a(b.target).fileupload("option","autoUpload"))&&c.process().done(function(){f.options.preview?(d=new FileReader,d.onload=function(b){a.proxy(f,"showImage",b.target.result,c)()},d.readAsDataURL(c.files[0])):c.submit()})},d.prototype.uploadProgressall=function(a,b){var c,d;this.options.preview===!1&&(c=parseInt(b.loaded/b.total*100,10),d=this.$el.find(".medium-insert-active").find("progress"),d.attr("value",c).text(c),100===c&&d.remove())},d.prototype.uploadProgress=function(a,b){var c,d;this.options.preview&&(c=100-parseInt(b.loaded/b.total*100,10),d=b.context.find(".medium-insert-images-progress"),d.css("width",c+"%"),0===c&&d.remove())},d.prototype.uploadDone=function(b,c){a.proxy(this,"showImage",c.result.files[0].url,c)(),this.getCore().clean(),this.$el.trigger("input"),this.sorting()},d.prototype.showImage=function(b,c){var d,e;this.options.preview&&c.context?(e=this.getDOMImage(),e.onload=function(){c.context.find("img").attr("src",e.src)},e.src=b):(d=this.$el.find(".medium-insert-active"),c.context=a(this.templates["src/js/templates/images-image.hbs"]({img:b,progress:this.options.preview})).appendTo(d),d.find("br").remove(),this.options.preview&&c.submit())},d.prototype.getDOMImage=function(){return new b.Image},d.prototype.selectImage=function(b){var c=a(b.target),d=this;c.addClass("medium-insert-image-active"),c.closest(".medium-insert-images").addClass("medium-insert-active"),setTimeout(function(){d.addToolbar(),d.getCore().addCaption(c.closest("figure"),d.options.captionPlaceholder)},50)},d.prototype.unselectImage=function(b){var c=a(b.target),d=this.$el.find(".medium-insert-image-active");return c.is("img")&&c.hasClass("medium-insert-image-active")?(d.not(c).removeClass("medium-insert-image-active"),a(".medium-insert-images-toolbar, .medium-insert-images-toolbar2").remove(),void this.getCore().removeCaptions(c)):(d.removeClass("medium-insert-image-active"),a(".medium-insert-images-toolbar, .medium-insert-images-toolbar2").remove(),void(c.is(".medium-insert-caption-placeholder")?this.getCore().removeCaptionPlaceholder(d.closest("figure")):c.is("figcaption")===!1&&this.getCore().removeCaptions()))},d.prototype.removeImage=function(b){var c,d,e;(8===b.which||46===b.which)&&(c=this.$el.find(".medium-insert-image-active"),c.length&&(b.preventDefault(),this.deleteFile(c.attr("src")),d=c.closest(".medium-insert-images"),c.closest("figure").remove(),a(".medium-insert-images-toolbar, .medium-insert-images-toolbar2").remove(),0===d.find("figure").length&&(e=a(this.templates["src/js/templates/core-empty-line.hbs"]().trim()),d.before(e),d.remove(),this.getCore().hideAddons(),this.getCore().moveCaret(e)),this.$el.trigger("input")))},d.prototype.deleteFile=function(b){this.options.deleteScript&&a.post(this.options.deleteScript,{file:b})},d.prototype.addToolbar=function(){var b,c,d=this.$el.find(".medium-insert-image-active"),e=d.closest(".medium-insert-images"),f=!1;a("body").append(this.templates["src/js/templates/images-toolbar.hbs"]({styles:this.options.styles,actions:this.options.actions}).trim()),b=a(".medium-insert-images-toolbar"),c=a(".medium-insert-images-toolbar2"),b.css({top:d.offset().top-b.height()-8-2-5,left:d.offset().left+d.width()/2-b.width()/2}).show(),c.css({top:d.offset().top+2,left:d.offset().left+d.width()-c.width()-4}).show(),b.find("button").each(function(){e.hasClass("medium-insert-images-"+a(this).data("action"))&&(a(this).addClass("medium-editor-button-active"),f=!0)}),f===!1&&b.find("button").first().addClass("medium-editor-button-active")},d.prototype.toolbarAction=function(b){var c=a(b.target).is("button")?a(b.target):a(b.target).closest("button"),d=c.closest("li"),e=d.closest("ul"),f=e.find("li"),g=this.$el.find(".medium-insert-active"),h=this;c.addClass("medium-editor-button-active"),d.siblings().find(".medium-editor-button-active").removeClass("medium-editor-button-active"),f.find("button").each(function(){var b="medium-insert-images-"+a(this).data("action");a(this).hasClass("medium-editor-button-active")?(g.addClass(b),h.options.styles[a(this).data("action")].added&&h.options.styles[a(this).data("action")].added(g)):(g.removeClass(b),h.options.styles[a(this).data("action")].removed&&h.options.styles[a(this).data("action")].removed(g))}),this.getCore().positionButtons("images"),this.$el.trigger("input")},d.prototype.toolbar2Action=function(b){var c=a(b.target).is("button")?a(b.target):a(b.target).closest("button"),d=this.options.actions[c.data("action")].clicked;d&&d(this.$el.find(".medium-insert-image-active")),this.$el.trigger("input")},d.prototype.sorting=function(){var b=this;a(".medium-insert-images").sortable({group:"medium-insert-images",containerSelector:".medium-insert-images",itemSelector:"figure",placeholder:'
    ',handle:"img",nested:!1,vertical:!1,afterMove:function(){b.$el.trigger("input")}})},a.fn[e+f]=function(b){return this.each(function(){a.data(this,"plugin_"+e+f)||a.data(this,"plugin_"+e+f,new d(this,b))})}}(jQuery,window,document); \ No newline at end of file diff --git a/package.json b/package.json index f0bbf5d8a..6f73369c3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "medium-editor-insert-plugin", - "version": "1.1.2", + "version": "1.2.0", "description": "jQuery insert plugin for MediumEditor", "license": "MIT", "homepage": "https://github.com/orthes/medium-editor-insert-plugin",