From 5f27c59f49c94ce21519166287606025bfcbd358 Mon Sep 17 00:00:00 2001 From: Andrew Ozz Date: Thu, 26 Feb 2015 00:31:31 +0000 Subject: [PATCH] TinyMCE: wpView improvements: remove the (obsolete) get/setViewText methods. Update stopping/pausing of multiple ME media players. Props iseulde. See #31412. Built from https://develop.svn.wordpress.org/trunk@31548 git-svn-id: http://core.svn.wordpress.org/trunk@31529 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/js/mce-view.js | 20 +++++----- wp-includes/js/mce-view.min.js | 2 +- .../js/tinymce/plugins/wpview/plugin.js | 37 +----------------- .../js/tinymce/plugins/wpview/plugin.min.js | 2 +- wp-includes/js/tinymce/wp-tinymce.js.gz | Bin 136250 -> 136189 bytes wp-includes/version.php | 2 +- 6 files changed, 14 insertions(+), 49 deletions(-) diff --git a/wp-includes/js/mce-view.js b/wp-includes/js/mce-view.js index d7775ea4b8..fc6284fd3e 100644 --- a/wp-includes/js/mce-view.js +++ b/wp-includes/js/mce-view.js @@ -651,7 +651,7 @@ window.wp = window.wp || {}; var media = wp.media[ this.type ], frame = media.edit( text ); - this.stopPlayers && this.stopPlayers(); + this.pausePlayers && this.pausePlayers(); _.each( this.state, function( state ) { frame.state( state ).on( 'update', function( selection ) { @@ -728,7 +728,7 @@ window.wp = window.wp || {}; self.render(); } ) .fail( function( response ) { - if ( self.type === 'embedURL' ) { + if ( self.url ) { self.removeMarkers(); } else { self.setError( response.message || response.statusText, 'admin-media' ); @@ -737,19 +737,19 @@ window.wp = window.wp || {}; this.getEditors( function( editor ) { editor.on( 'wpview-selected', function() { - self.stopPlayers(); + self.pausePlayers(); } ); } ); }, - stopPlayers: function( remove ) { + pausePlayers: function() { this.getNodes( function( editor, node, content ) { var win = $( 'iframe.wpview-sandbox', content ).get( 0 ); if ( win && ( win = win.contentWindow ) && win.mejs ) { _.each( win.mejs.players, function( player ) { try { - player[ remove ? 'remove' : 'pause' ](); + player.pause(); } catch ( e ) {} } ); } @@ -762,10 +762,10 @@ window.wp = window.wp || {}; edit: function( text, update ) { var media = wp.media.embed, - isURL = 'embedURL' === this.type, - frame = media.edit( text, isURL ); + frame = media.edit( text, !! this.url ), + self = this; - this.stopPlayers(); + this.pausePlayers(); frame.state( 'embed' ).props.on( 'change:url', function( model, url ) { if ( url ) { @@ -774,7 +774,7 @@ window.wp = window.wp || {}; } ); frame.state( 'embed' ).on( 'select', function() { - if ( isURL ) { + if ( self.url ) { update( frame.state( 'embed' ).metadata.url ); } else { update( media.shortcode( frame.state( 'embed' ).metadata ).string() ); @@ -808,7 +808,7 @@ window.wp = window.wp || {}; views.register( 'embedURL', _.extend( {}, embed, { match: function( content ) { var re = /(^|

)(https?:\/\/[^\s"]+?)(<\/p>\s*|$)/gi, - match = re.exec( tinymce.trim( content ) ); + match = re.exec( content ); if ( match ) { return { diff --git a/wp-includes/js/mce-view.min.js b/wp-includes/js/mce-view.min.js index 94f7655a75..02734e7eef 100644 --- a/wp-includes/js/mce-view.min.js +++ b/wp-includes/js/mce-view.min.js @@ -1 +1 @@ -window.wp=window.wp||{},function(a,b,c){"use strict";var d={},e={};b.mce=b.mce||{},b.mce.views={register:function(a,c){d[a]=b.mce.View.extend(_.extend(c,{type:a}))},unregister:function(a){delete d[a]},get:function(a){return d[a]},unbind:function(){_.each(e,function(a){a.unbind()})},setMarkers:function(a){var b,c=[{content:a}],e=this;return _.each(d,function(a,d){b=c.slice(),c=[],_.each(b,function(b){var f,g=b.content;if(b.processed)return void c.push(b);for(;g&&(f=a.prototype.match(g));)f.index&&c.push({content:g.substring(0,f.index)}),e.createInstance(d,f.content,f.options),c.push({content:'

'+f.content+"

",processed:!0}),g=g.slice(f.index+f.content.length);g&&c.push({content:g})})}),_.pluck(c,"content").join("")},createInstance:function(a,b,c){var d=this.get(a),f=encodeURIComponent(b),g=this.getInstance(f);return g?g:(c=_.extend(c||{},{text:b,encodedText:f}),e[f]=new d(c))},getInstance:function(a){return e[encodeURIComponent(a)]},render:function(a){_.each(e,function(b){b.render(a)})},update:function(a,b,d){var e=decodeURIComponent(c(d).data("wpview-text")),f=this.getInstance(e);f&&f.update(a,b,d)},edit:function(a,b){var d=decodeURIComponent(c(b).data("wpview-text")),e=this.getInstance(d);e&&e.edit&&e.edit(d,function(c){e.update(c,a,b)})}},b.mce.View=function(a){_.extend(this,a),this.initialize()},b.mce.View.extend=Backbone.View.extend,_.extend(b.mce.View.prototype,{content:null,loader:!0,initialize:function(){},getContent:function(){return this.content},render:function(a){(this.loader||this.getContent())&&(a&&this.unbind(),this.replaceMarkers(),this.getContent()?this.setContent(this.getContent(),function(a,b){c(b).data("rendered",!0),this.bindNodes.apply(this,arguments)},a?null:!1):this.setLoader())},bindNodes:function(){},unbind:function(){this.getNodes(function(){this.unbindNodes.apply(this,arguments)},!0)},unbindNodes:function(){},getEditors:function(a){_.each(tinymce.editors,function(b){b.plugins.wpview&&a.call(this,b)},this)},getNodes:function(a,b){this.getEditors(function(d){var e=this;c(d.getBody()).find('[data-wpview-text="'+e.encodedText+'"]').filter(function(){var a;return null==b?!0:(a=c(this).data("rendered")===!0,b?a:!a)}).each(function(){a.call(e,d,this,c(this).find(".wpview-content").get(0))})})},getMarkers:function(a){this.getEditors(function(b){var d=this;c(b.getBody()).find('[data-wpview-marker="'+this.encodedText+'"]').each(function(){a.call(d,b,this)})})},replaceMarkers:function(){this.getMarkers(function(a,b){return c(b).text()!==this.text?void a.dom.setAttrib(b,"data-wpview-marker",null):void a.dom.replace(a.dom.createFragment('

 

'+(this.edit?'
':"")+'

 

'),b)})},removeMarkers:function(){this.getMarkers(function(a,b){a.dom.setAttrib(b,"data-wpview-marker",null)})},setContent:function(a,b,c){_.isObject(a)&&-1!==a.body.indexOf("'),e.innerHTML="",e.appendChild(_.isString(a)?c.dom.createFragment(a):a),b&&b.apply(this,arguments)},c)},setIframes:function(d,e,f,g){var h=a.MutationObserver||a.WebKitMutationObserver||a.MozMutationObserver,i="video"===this.type||"audio"===this.type||"playlist"===this.type;this.getNodes(function(a,g,j){var k,l,m,n,o=a.dom,p="",q=a.getBody().className||"";j.innerHTML="",d=d||"",i&&(b.mce.views.sandboxStyles?p=b.mce.views.sandboxStyles:(tinymce.each(o.$('link[rel="stylesheet"]',a.getDoc().head),function(a){a.href&&-1===a.href.indexOf("skins/lightgray/content.min.css")&&-1===a.href.indexOf("skins/wordpress/wp-content.css")&&(p+=o.getOuterHTML(a)+"\n")}),b.mce.views.sandboxStyles=p)),setTimeout(function(){if(k=o.add(j,"iframe",{src:tinymce.Env.ie?'javascript:""':"",frameBorder:"0",allowTransparency:"true",scrolling:"no","class":"wpview-sandbox",style:{width:"100%",display:"block"}}),o.add(j,"div",{"class":"wpview-overlay"}),l=k.contentWindow.document,l.open(),l.write(''+d+p+''+e+""),l.close(),n=function(){var b,d;k.contentWindow&&(b=c(k),d=c(l.body).height(),b.height()!==d&&(b.height(d),a.nodeChanged()))},h)new h(_.debounce(function(){n()},100)).observe(l.body,{attributes:!0,childList:!0,subtree:!0});else for(m=1;6>m;m++)setTimeout(n,700*m);i&&a.on("wp-body-class-change",function(){l.body.className=a.getBody().className})},50),f&&f.apply(this,arguments)},g)},setLoader:function(){this.setContent('
')},setError:function(a,b){this.setContent('

'+a+"

")},match:function(a){var c=b.shortcode.next(this.type,a);return c?{index:c.index,content:c.content,options:{shortcode:c.shortcode}}:void 0},update:function(a,d,e){c(e).data("rendered",!1),d.dom.setAttrib(e,"data-wpview-text",encodeURIComponent(a)),b.mce.views.createInstance(this.type,a,this.match(a).options).render()}})}(window,window.wp,window.jQuery),function(a,b,c){var d,e,f,g,h=c("#post_ID").val()||0;d={state:[],edit:function(a,b){var c=wp.media[this.type],d=c.edit(a);this.stopPlayers&&this.stopPlayers(),_.each(this.state,function(a){d.state(a).on("update",function(a){b(c.shortcode(a).string())})}),d.on("close",function(){d.detach()})}},e=_.extend({},d,{state:["gallery-edit"],template:wp.media.template("editor-gallery"),initialize:function(){var a=wp.media.gallery.attachments(this.shortcode,h),b=this.shortcode.attrs.named,c=this;a.more().done(function(){a=a.toJSON(),_.each(a,function(a){a.sizes&&(b.size&&a.sizes[b.size]?a.thumbnail=a.sizes[b.size]:a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))}),c.content=c.template({attachments:a,columns:b.columns?parseInt(b.columns,10):wp.media.galleryDefaults.columns}),c.render()}).fail(function(a,b){c.setError(b)})}}),f=_.extend({},d,{action:"parse-media-shortcode",initialize:function(){var a=this;this.url&&(this.loader=!1,this.shortcode=wp.media.embed.shortcode({url:this.url})),wp.ajax.send(this.action,{data:{post_ID:h,type:this.shortcode.tag,shortcode:this.shortcode.string()}}).done(function(b){a.content=b,a.render()}).fail(function(b){"embedURL"===a.type?a.removeMarkers():a.setError(b.message||b.statusText,"admin-media")}),this.getEditors(function(b){b.on("wpview-selected",function(){a.stopPlayers()})})},stopPlayers:function(a){this.getNodes(function(b,d,e){var f=c("iframe.wpview-sandbox",e).get(0);f&&(f=f.contentWindow)&&f.mejs&&_.each(f.mejs.players,function(b){try{b[a?"remove":"pause"]()}catch(c){}})})}}),g=_.extend({},f,{action:"parse-embed",edit:function(a,b){var c=wp.media.embed,d="embedURL"===this.type,e=c.edit(a,d);this.stopPlayers(),e.state("embed").props.on("change:url",function(a,b){b&&(e.state("embed").metadata=a.toJSON())}),e.state("embed").on("select",function(){b(d?e.state("embed").metadata.url:c.shortcode(e.state("embed").metadata).string())}),e.on("close",function(){e.detach()}),e.open()}}),b.register("gallery",_.extend({},e)),b.register("audio",_.extend({},f,{state:["audio-details"]})),b.register("video",_.extend({},f,{state:["video-details"]})),b.register("playlist",_.extend({},f,{state:["playlist-edit","video-playlist-edit"]})),b.register("embed",_.extend({},g)),b.register("embedURL",_.extend({},g,{match:function(a){var b=/(^|

)(https?:\/\/[^\s"]+?)(<\/p>\s*|$)/gi,c=b.exec(tinymce.trim(a));return c?{index:c.index+c[1].length,content:c[2],options:{url:c[2]}}:void 0}}))}(window,window.wp.mce.views,window.jQuery); \ No newline at end of file +window.wp=window.wp||{},function(a,b,c){"use strict";var d={},e={};b.mce=b.mce||{},b.mce.views={register:function(a,c){d[a]=b.mce.View.extend(_.extend(c,{type:a}))},unregister:function(a){delete d[a]},get:function(a){return d[a]},unbind:function(){_.each(e,function(a){a.unbind()})},setMarkers:function(a){var b,c=[{content:a}],e=this;return _.each(d,function(a,d){b=c.slice(),c=[],_.each(b,function(b){var f,g=b.content;if(b.processed)return void c.push(b);for(;g&&(f=a.prototype.match(g));)f.index&&c.push({content:g.substring(0,f.index)}),e.createInstance(d,f.content,f.options),c.push({content:'

'+f.content+"

",processed:!0}),g=g.slice(f.index+f.content.length);g&&c.push({content:g})})}),_.pluck(c,"content").join("")},createInstance:function(a,b,c){var d=this.get(a),f=encodeURIComponent(b),g=this.getInstance(f);return g?g:(c=_.extend(c||{},{text:b,encodedText:f}),e[f]=new d(c))},getInstance:function(a){return e[encodeURIComponent(a)]},render:function(a){_.each(e,function(b){b.render(a)})},update:function(a,b,d){var e=decodeURIComponent(c(d).data("wpview-text")),f=this.getInstance(e);f&&f.update(a,b,d)},edit:function(a,b){var d=decodeURIComponent(c(b).data("wpview-text")),e=this.getInstance(d);e&&e.edit&&e.edit(d,function(c){e.update(c,a,b)})}},b.mce.View=function(a){_.extend(this,a),this.initialize()},b.mce.View.extend=Backbone.View.extend,_.extend(b.mce.View.prototype,{content:null,loader:!0,initialize:function(){},getContent:function(){return this.content},render:function(a){(this.loader||this.getContent())&&(a&&this.unbind(),this.replaceMarkers(),this.getContent()?this.setContent(this.getContent(),function(a,b){c(b).data("rendered",!0),this.bindNodes.apply(this,arguments)},a?null:!1):this.setLoader())},bindNodes:function(){},unbind:function(){this.getNodes(function(){this.unbindNodes.apply(this,arguments)},!0)},unbindNodes:function(){},getEditors:function(a){_.each(tinymce.editors,function(b){b.plugins.wpview&&a.call(this,b)},this)},getNodes:function(a,b){this.getEditors(function(d){var e=this;c(d.getBody()).find('[data-wpview-text="'+e.encodedText+'"]').filter(function(){var a;return null==b?!0:(a=c(this).data("rendered")===!0,b?a:!a)}).each(function(){a.call(e,d,this,c(this).find(".wpview-content").get(0))})})},getMarkers:function(a){this.getEditors(function(b){var d=this;c(b.getBody()).find('[data-wpview-marker="'+this.encodedText+'"]').each(function(){a.call(d,b,this)})})},replaceMarkers:function(){this.getMarkers(function(a,b){return c(b).text()!==this.text?void a.dom.setAttrib(b,"data-wpview-marker",null):void a.dom.replace(a.dom.createFragment('

 

'+(this.edit?'
':"")+'

 

'),b)})},removeMarkers:function(){this.getMarkers(function(a,b){a.dom.setAttrib(b,"data-wpview-marker",null)})},setContent:function(a,b,c){_.isObject(a)&&-1!==a.body.indexOf("'),e.innerHTML="",e.appendChild(_.isString(a)?c.dom.createFragment(a):a),b&&b.apply(this,arguments)},c)},setIframes:function(d,e,f,g){var h=a.MutationObserver||a.WebKitMutationObserver||a.MozMutationObserver,i="video"===this.type||"audio"===this.type||"playlist"===this.type;this.getNodes(function(a,g,j){var k,l,m,n,o=a.dom,p="",q=a.getBody().className||"";j.innerHTML="",d=d||"",i&&(b.mce.views.sandboxStyles?p=b.mce.views.sandboxStyles:(tinymce.each(o.$('link[rel="stylesheet"]',a.getDoc().head),function(a){a.href&&-1===a.href.indexOf("skins/lightgray/content.min.css")&&-1===a.href.indexOf("skins/wordpress/wp-content.css")&&(p+=o.getOuterHTML(a)+"\n")}),b.mce.views.sandboxStyles=p)),setTimeout(function(){if(k=o.add(j,"iframe",{src:tinymce.Env.ie?'javascript:""':"",frameBorder:"0",allowTransparency:"true",scrolling:"no","class":"wpview-sandbox",style:{width:"100%",display:"block"}}),o.add(j,"div",{"class":"wpview-overlay"}),l=k.contentWindow.document,l.open(),l.write(''+d+p+''+e+""),l.close(),n=function(){var b,d;k.contentWindow&&(b=c(k),d=c(l.body).height(),b.height()!==d&&(b.height(d),a.nodeChanged()))},h)new h(_.debounce(function(){n()},100)).observe(l.body,{attributes:!0,childList:!0,subtree:!0});else for(m=1;6>m;m++)setTimeout(n,700*m);i&&a.on("wp-body-class-change",function(){l.body.className=a.getBody().className})},50),f&&f.apply(this,arguments)},g)},setLoader:function(){this.setContent('
')},setError:function(a,b){this.setContent('

'+a+"

")},match:function(a){var c=b.shortcode.next(this.type,a);return c?{index:c.index,content:c.content,options:{shortcode:c.shortcode}}:void 0},update:function(a,d,e){c(e).data("rendered",!1),d.dom.setAttrib(e,"data-wpview-text",encodeURIComponent(a)),b.mce.views.createInstance(this.type,a,this.match(a).options).render()}})}(window,window.wp,window.jQuery),function(a,b,c){var d,e,f,g,h=c("#post_ID").val()||0;d={state:[],edit:function(a,b){var c=wp.media[this.type],d=c.edit(a);this.pausePlayers&&this.pausePlayers(),_.each(this.state,function(a){d.state(a).on("update",function(a){b(c.shortcode(a).string())})}),d.on("close",function(){d.detach()})}},e=_.extend({},d,{state:["gallery-edit"],template:wp.media.template("editor-gallery"),initialize:function(){var a=wp.media.gallery.attachments(this.shortcode,h),b=this.shortcode.attrs.named,c=this;a.more().done(function(){a=a.toJSON(),_.each(a,function(a){a.sizes&&(b.size&&a.sizes[b.size]?a.thumbnail=a.sizes[b.size]:a.sizes.thumbnail?a.thumbnail=a.sizes.thumbnail:a.sizes.full&&(a.thumbnail=a.sizes.full))}),c.content=c.template({attachments:a,columns:b.columns?parseInt(b.columns,10):wp.media.galleryDefaults.columns}),c.render()}).fail(function(a,b){c.setError(b)})}}),f=_.extend({},d,{action:"parse-media-shortcode",initialize:function(){var a=this;this.url&&(this.loader=!1,this.shortcode=wp.media.embed.shortcode({url:this.url})),wp.ajax.send(this.action,{data:{post_ID:h,type:this.shortcode.tag,shortcode:this.shortcode.string()}}).done(function(b){a.content=b,a.render()}).fail(function(b){a.url?a.removeMarkers():a.setError(b.message||b.statusText,"admin-media")}),this.getEditors(function(b){b.on("wpview-selected",function(){a.pausePlayers()})})},pausePlayers:function(){this.getNodes(function(a,b,d){var e=c("iframe.wpview-sandbox",d).get(0);e&&(e=e.contentWindow)&&e.mejs&&_.each(e.mejs.players,function(a){try{a.pause()}catch(b){}})})}}),g=_.extend({},f,{action:"parse-embed",edit:function(a,b){var c=wp.media.embed,d=c.edit(a,!!this.url),e=this;this.pausePlayers(),d.state("embed").props.on("change:url",function(a,b){b&&(d.state("embed").metadata=a.toJSON())}),d.state("embed").on("select",function(){b(e.url?d.state("embed").metadata.url:c.shortcode(d.state("embed").metadata).string())}),d.on("close",function(){d.detach()}),d.open()}}),b.register("gallery",_.extend({},e)),b.register("audio",_.extend({},f,{state:["audio-details"]})),b.register("video",_.extend({},f,{state:["video-details"]})),b.register("playlist",_.extend({},f,{state:["playlist-edit","video-playlist-edit"]})),b.register("embed",_.extend({},g)),b.register("embedURL",_.extend({},g,{match:function(a){var b=/(^|

)(https?:\/\/[^\s"]+?)(<\/p>\s*|$)/gi,c=b.exec(a);return c?{index:c.index+c[1].length,content:c[2],options:{url:c[2]}}:void 0}}))}(window,window.wp.mce.views,window.jQuery); \ No newline at end of file diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.js b/wp-includes/js/tinymce/plugins/wpview/plugin.js index 2810a52be6..78b52cb19b 100644 --- a/wp-includes/js/tinymce/plugins/wpview/plugin.js +++ b/wp-includes/js/tinymce/plugins/wpview/plugin.js @@ -34,37 +34,6 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { return false; } - /** - * Get the text/shortcode string for a view. - * - * @param view The view wrapper's node - * @returns string The text/shoercode string of the view - */ - function getViewText( view ) { - if ( view = getView( view ) ) { - return window.decodeURIComponent( editor.dom.getAttrib( view, 'data-wpview-text' ) || '' ); - } - - return ''; - } - - /** - * Set the view's original text/shortcode string - * - * @param view The view wrapper's HTML id or node - * @param text The text string to be set - */ - function setViewText( view, text ) { - view = getView( view ); - - if ( view ) { - editor.dom.setAttrib( view, 'data-wpview-text', window.encodeURIComponent( text || '' ) ); - return true; - } - - return false; - } - function _stop( event ) { event.stopPropagation(); } @@ -138,7 +107,7 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { clipboard = dom.create( 'div', { 'class': 'wpview-clipboard', 'contenteditable': 'true' - }, getViewText( viewNode ) ); + }, decodeURIComponent( editor.dom.getAttrib( viewNode, 'data-wpview-text' ) ) ); editor.dom.select( '.wpview-body', viewNode )[0].appendChild( clipboard ); @@ -197,8 +166,6 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { // Check if the `wp.mce` API exists. if ( typeof wp === 'undefined' || ! wp.mce ) { return { - getViewText: _noop, - setViewText: _noop, getView: _noop }; } @@ -721,8 +688,6 @@ tinymce.PluginManager.add( 'wpview', function( editor ) { }); return { - getViewText: getViewText, - setViewText: setViewText, getView: getView }; }); diff --git a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js index 459db66c9a..cde1635c9b 100644 --- a/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +++ b/wp-includes/js/tinymce/plugins/wpview/plugin.min.js @@ -1 +1 @@ -tinymce.PluginManager.add("wpview",function(a){function b(a){return c(a,"wpview-wrap")}function c(a,b){for(;a&&a.parentNode;){if(a.className&&-1!==(" "+a.className+" ").indexOf(" "+b+" "))return a;a=a.parentNode}return!1}function d(c){return(c=b(c))?window.decodeURIComponent(a.dom.getAttrib(c,"data-wpview-text")||""):""}function e(c,d){return c=b(c),c?(a.dom.setAttrib(c,"data-wpview-text",window.encodeURIComponent(d||"")),!0):!1}function f(a){a.stopPropagation()}function g(b,c){var d=b?"before":"after",e=b?0:1;l(),a.selection.setCursorLocation(a.dom.select(".wpview-selection-"+d,c)[0],e),a.nodeChanged()}function h(b,c,d){var e=a.dom,f=e.create("p");v.ie&&v.ie<11||(f.innerHTML='
'),c?b.parentNode.insertBefore(f,b):e.insertAfter(f,b),l(),c&&d===w.ENTER?g(c,b):a.selection.setCursorLocation(f,0),a.nodeChanged()}function i(b){a.undoManager.transact(function(){h(b),a.dom.remove(b)})}function j(b){var c,e=a.dom;if(b){if(b===o)return void k(b);a.getBody().focus(),l(),o=b,e.setAttrib(b,"data-mce-selected",1),k(b),c=e.create("div",{"class":"wpview-clipboard",contenteditable:"true"},d(b)),a.dom.select(".wpview-body",b)[0].appendChild(c),e.bind(c,"beforedeactivate focusin focusout",f),e.bind(o,"beforedeactivate focusin focusout",f),B?a.selection.select(c):a.selection.select(c,!0),a.nodeChanged(),a.fire("wpview-selected",b)}}function k(b){var c=0,d=a.$(b).find(".toolbar"),e=tinymce.$(a.editorContainer).find(".mce-toolbar-grp")[0],f=e&&e.getBoundingClientRect().bottom||0;d.length&&a.iframeElement&&(c=b.getBoundingClientRect().top+a.iframeElement.getBoundingClientRect().top-f-48),0>c?d.removeClass("mce-arrow-down").css({top:-43+-1*c}):c>0&&!d.hasClass("mce-arrow-down")&&d.addClass("mce-arrow-down").css({top:""})}function l(){var b,c=a.dom;o&&(b=a.dom.select(".wpview-clipboard",o)[0],c.unbind(b),c.remove(b),c.unbind(o,"beforedeactivate focusin focusout click mouseup",f),c.setAttrib(o,"data-mce-selected",null)),o=null}function m(a){return a.replace(/]+data-wpview-text=\"([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>(?: |\u00a0)*<\/p><\/div>/g,"$1")}function n(a){return 47>=a&&a!==w.SPACEBAR&&a!==w.ENTER&&a!==w.DELETE&&a!==w.BACKSPACE&&(37>a||a>40)||a>=224||a>=144&&150>=a||a>=91&&93>=a||a>=112&&135>=a}var o,p,q,r,s,t,u,v=tinymce.Env,w=tinymce.util.VK,x=tinymce.dom.TreeWalker,y=!1,z=!0,A=function(){return!1},B=/iPad|iPod|iPhone/.test(navigator.userAgent);return"undefined"!=typeof wp&&wp.mce?(a.on("BeforeAddUndo",function(a){a.lastLevel&&m(a.level.content)===m(a.lastLevel.content)&&a.preventDefault()}),a.on("BeforeSetContent",function(b){var c;b.content&&(o&&i(o),c=a.selection.getNode(),(!b.content.match(/^\s*(https?:\/\/[^\s"]+)\s*$/i)||"P"===c.nodeName&&c.parentNode===a.getBody()&&a.dom.isEmpty(c))&&(b.content=wp.mce.views.setMarkers(b.content)))}),a.on("SetContent",function(){wp.mce.views.render()}),a.on("click",function(c){var d,e=c.clientX,f=c.clientY,h=a.getBody(),i=h.getBoundingClientRect(),j=h.firstChild,k=j.getBoundingClientRect(),l=h.lastChild,m=l.getBoundingClientRect();fm.bottom&&(d=b(l))?(g(!1,d),c.preventDefault()):(ei.right)&&tinymce.each(a.dom.select(".wpview-wrap"),function(a){var b=a.getBoundingClientRect();return f=b.top&&f<=b.bottom?(ei.right&&(g(!1,a),c.preventDefault()),!1):void 0})}),a.on("init",function(){var c=!1,d=a.selection,e=window.MutationObserver||window.WebKitMutationObserver;a.on("BeforeSetContent",function(){var c,e,f=b(d.getNode());f&&(!f.nextSibling||b(f.nextSibling)?(e=a.getDoc().createTextNode(""),a.dom.insertAfter(e,f)):(c=new x(f.nextSibling,f.nextSibling),e=c.next()),d.select(e),d.collapse(!0))}),a.dom.bind(a.getDoc(),"touchmove",function(){c=!0}),a.on("mousedown mouseup click touchend",function(d){var e=b(d.target);if(z=!1,e){if(d.stopImmediatePropagation(),d.preventDefault(),!("touchend"!==d.type&&"mousedown"!==d.type||d.metaKey||d.ctrlKey)){if(a.dom.hasClass(d.target,"edit"))return v.ie&&a.focus(),wp.mce.views.edit(a,e),!1;if(a.dom.hasClass(d.target,"remove"))return i(e),!1}return"touchend"===d.type&&c?c=!1:j(e),!1}("touchend"===d.type||"mousedown"===d.type)&&l(),"touchend"===d.type&&c&&(c=!1)},!0),e&&new e(function(){a.fire("wp-body-class-change")}).observe(a.getBody(),{attributes:!0,attributeFilter:["class"]})}),a.on("PreProcess",function(b){tinymce.each(a.dom.select("div[data-wpview-text]",b.node),function(a){a.textContent=a.innerText=" "})}),a.on("PostProcess",function(a){a.content&&(a.content=a.content.replace(/

]*?data-wpview-text="([^"]*)"[^>]*>[\s\S]*?<\/div>/g,function(a,b){return b?"

"+window.decodeURIComponent(b)+"

":""}))}),a.on("keydown",function(c){var d,e,f,k,m,p,r,s=c.keyCode,t=a.dom,u=a.selection;if(o){if((c.metaKey||c.ctrlKey)&&s!==w.BACKSPACE&&86!==s||s>=112&&123>=s)return void((c.metaKey||c.ctrlKey)&&88===s&&(y=o));if(e=b(u.getNode()),e!==o)return void l();s===w.LEFT?(g(!0,e),c.preventDefault()):s===w.UP?(e.previousSibling?b(e.previousSibling)?g(!0,e.previousSibling):(l(),u.select(e.previousSibling,!0),u.collapse()):g(!0,e),c.preventDefault()):s===w.RIGHT?(g(!1,e),c.preventDefault()):s===w.DOWN?(e.nextSibling?b(e.nextSibling)?g(!1,e.nextSibling):(l(),u.setCursorLocation(e.nextSibling,0)):g(!1,e),c.preventDefault()):n(s)||(i(o),(s===w.ENTER||s===w.DELETE||s===w.BACKSPACE)&&c.preventDefault())}else{if(c.metaKey||c.ctrlKey||s>=112&&123>=s)return;if(d=u.getNode(),q=d,e=b(d),u.isCollapsed()||(m=u.getRng(),(e=b(m.endContainer))?(p=m.cloneRange(),u.select(e.previousSibling,!0),u.collapse(),r=u.getRng(),p.setEnd(r.endContainer,r.endOffset),u.setRng(p)):(e=b(m.startContainer))&&(p=m.cloneRange(),p.setStart(e.nextSibling,0),u.setRng(p))),!e)return void(c.keyCode===w.BACKSPACE&&(a.dom.isEmpty(d)?(e=b(d.previousSibling))&&(g(!1,e),a.dom.remove(d),c.preventDefault()):(m=u.getRng())&&0===m.startOffset&&0===m.endOffset&&(e=b(d.previousSibling))&&(g(!1,e),c.preventDefault())));if(!(f=t.hasClass(e,"wpview-selection-before"))&&!(k=t.hasClass(e,"wpview-selection-after")))return;if(n(s))return;k&&s===w.UP||f&&s===w.BACKSPACE?(e.previousSibling?b(e.previousSibling)?g(!1,e.previousSibling):t.isEmpty(e.previousSibling)&&s===w.BACKSPACE?t.remove(e.previousSibling):(u.select(e.previousSibling,!0),u.collapse()):g(!0,e),c.preventDefault()):!k||s!==w.DOWN&&s!==w.RIGHT?!f||s!==w.UP&&s!==w.LEFT?f&&s===w.DOWN?(e.nextSibling?b(e.nextSibling)?g(!0,e.nextSibling):u.setCursorLocation(e.nextSibling,0):g(!1,e),c.preventDefault()):k&&s===w.LEFT||f&&s===w.RIGHT?(j(e),c.preventDefault()):k&&s===w.BACKSPACE?(i(e),c.preventDefault()):k?h(e):f&&h(e,!0,s):(e.previousSibling&&(b(e.previousSibling)?g(s===w.UP,e.previousSibling):(u.select(e.previousSibling,!0),u.collapse())),c.preventDefault()):(e.nextSibling&&(b(e.nextSibling)?g(s===w.RIGHT,e.nextSibling):u.setCursorLocation(e.nextSibling,0)),c.preventDefault()),s===w.ENTER&&c.preventDefault()}}),a.on("keyup",function(){y&&(i(y),y=!1)}),a.on("focus",function(){var c;s=!0,a.dom.addClass(a.getBody(),"has-focus"),z&&(c=b(a.getBody().firstChild))&&g(!0,c),z=!1}),a.on("blur",function(){s=!1,a.dom.removeClass(a.getBody(),"has-focus")}),a.on("NodeChange",function(d){var e=a.dom,f=a.dom.select(".wpview-wrap"),h=d.element.className,i=b(d.element),j=q;if(q=!1,clearInterval(p),tinymce.each(f,function(a){a.className&&(a.className=a.className.replace(/ ?\bwpview-(?:selection-before|selection-after|cursor-hide)\b/g,""))}),s&&i)if("wpview-selection-before"!==h&&"wpview-selection-after"!==h||!a.selection.isCollapsed())c(d.element,"wpview-clipboard")||r||(l(),r++,g(!0,i));else{if(r=0,l(),j===i.previousSibling)return void g(!0,i);if(j===i.nextSibling)return void g(!1,i);e.addClass(i,h),p=setInterval(function(){e.hasClass(i,"wpview-cursor-hide")?e.removeClass(i,"wpview-cursor-hide"):e.addClass(i,"wpview-cursor-hide")},500)}}),a.on("BeforeExecCommand",function(){var c,d=a.selection.getNode();d&&((u="wpview-selection-before"===d.className)||"wpview-selection-after"===d.className)&&(c=b(d))&&(h(c,u),t=c)}),a.on("ExecCommand",function(){var b,c;o&&(b=o,l(),j(b)),t&&(c=t[u?"previousSibling":"nextSibling"],c&&"P"===c.nodeName&&a.dom.isEmpty(c)&&(a.dom.remove(c),g(u,t)),t=!1)}),a.on("ResolveName",function(c){a.dom.hasClass(c.target,"wpview-wrap")?(c.name=a.dom.getAttrib(c.target,"data-wpview-type")||"wpview",c.stopPropagation()):b(c.target)&&(c.preventDefault(),c.stopPropagation())}),{getViewText:d,setViewText:e,getView:b}):{getViewText:A,setViewText:A,getView:A}}); \ No newline at end of file +tinymce.PluginManager.add("wpview",function(a){function b(a){return c(a,"wpview-wrap")}function c(a,b){for(;a&&a.parentNode;){if(a.className&&-1!==(" "+a.className+" ").indexOf(" "+b+" "))return a;a=a.parentNode}return!1}function d(a){a.stopPropagation()}function e(b,c){var d=b?"before":"after",e=b?0:1;j(),a.selection.setCursorLocation(a.dom.select(".wpview-selection-"+d,c)[0],e),a.nodeChanged()}function f(b,c,d){var f=a.dom,g=f.create("p");t.ie&&t.ie<11||(g.innerHTML='
'),c?b.parentNode.insertBefore(g,b):f.insertAfter(g,b),j(),c&&d===u.ENTER?e(c,b):a.selection.setCursorLocation(g,0),a.nodeChanged()}function g(b){a.undoManager.transact(function(){f(b),a.dom.remove(b)})}function h(b){var c,e=a.dom;if(b){if(b===m)return void i(b);a.getBody().focus(),j(),m=b,e.setAttrib(b,"data-mce-selected",1),i(b),c=e.create("div",{"class":"wpview-clipboard",contenteditable:"true"},decodeURIComponent(a.dom.getAttrib(b,"data-wpview-text"))),a.dom.select(".wpview-body",b)[0].appendChild(c),e.bind(c,"beforedeactivate focusin focusout",d),e.bind(m,"beforedeactivate focusin focusout",d),z?a.selection.select(c):a.selection.select(c,!0),a.nodeChanged(),a.fire("wpview-selected",b)}}function i(b){var c=0,d=a.$(b).find(".toolbar"),e=tinymce.$(a.editorContainer).find(".mce-toolbar-grp")[0],f=e&&e.getBoundingClientRect().bottom||0;d.length&&a.iframeElement&&(c=b.getBoundingClientRect().top+a.iframeElement.getBoundingClientRect().top-f-48),0>c?d.removeClass("mce-arrow-down").css({top:-43+-1*c}):c>0&&!d.hasClass("mce-arrow-down")&&d.addClass("mce-arrow-down").css({top:""})}function j(){var b,c=a.dom;m&&(b=a.dom.select(".wpview-clipboard",m)[0],c.unbind(b),c.remove(b),c.unbind(m,"beforedeactivate focusin focusout click mouseup",d),c.setAttrib(m,"data-mce-selected",null)),m=null}function k(a){return a.replace(/]+data-wpview-text=\"([^"]+)"[^>]*>[\s\S]+?wpview-selection-after[^>]+>(?: |\u00a0)*<\/p><\/div>/g,"$1")}function l(a){return 47>=a&&a!==u.SPACEBAR&&a!==u.ENTER&&a!==u.DELETE&&a!==u.BACKSPACE&&(37>a||a>40)||a>=224||a>=144&&150>=a||a>=91&&93>=a||a>=112&&135>=a}var m,n,o,p,q,r,s,t=tinymce.Env,u=tinymce.util.VK,v=tinymce.dom.TreeWalker,w=!1,x=!0,y=function(){return!1},z=/iPad|iPod|iPhone/.test(navigator.userAgent);return"undefined"!=typeof wp&&wp.mce?(a.on("BeforeAddUndo",function(a){a.lastLevel&&k(a.level.content)===k(a.lastLevel.content)&&a.preventDefault()}),a.on("BeforeSetContent",function(b){var c;b.content&&(m&&g(m),c=a.selection.getNode(),(!b.content.match(/^\s*(https?:\/\/[^\s"]+)\s*$/i)||"P"===c.nodeName&&c.parentNode===a.getBody()&&a.dom.isEmpty(c))&&(b.content=wp.mce.views.setMarkers(b.content)))}),a.on("SetContent",function(){wp.mce.views.render()}),a.on("click",function(c){var d,f=c.clientX,g=c.clientY,h=a.getBody(),i=h.getBoundingClientRect(),j=h.firstChild,k=j.getBoundingClientRect(),l=h.lastChild,m=l.getBoundingClientRect();gm.bottom&&(d=b(l))?(e(!1,d),c.preventDefault()):(fi.right)&&tinymce.each(a.dom.select(".wpview-wrap"),function(a){var b=a.getBoundingClientRect();return g=b.top&&g<=b.bottom?(fi.right&&(e(!1,a),c.preventDefault()),!1):void 0})}),a.on("init",function(){var c=!1,d=a.selection,e=window.MutationObserver||window.WebKitMutationObserver;a.on("BeforeSetContent",function(){var c,e,f=b(d.getNode());f&&(!f.nextSibling||b(f.nextSibling)?(e=a.getDoc().createTextNode(""),a.dom.insertAfter(e,f)):(c=new v(f.nextSibling,f.nextSibling),e=c.next()),d.select(e),d.collapse(!0))}),a.dom.bind(a.getDoc(),"touchmove",function(){c=!0}),a.on("mousedown mouseup click touchend",function(d){var e=b(d.target);if(x=!1,e){if(d.stopImmediatePropagation(),d.preventDefault(),!("touchend"!==d.type&&"mousedown"!==d.type||d.metaKey||d.ctrlKey)){if(a.dom.hasClass(d.target,"edit"))return t.ie&&a.focus(),wp.mce.views.edit(a,e),!1;if(a.dom.hasClass(d.target,"remove"))return g(e),!1}return"touchend"===d.type&&c?c=!1:h(e),!1}("touchend"===d.type||"mousedown"===d.type)&&j(),"touchend"===d.type&&c&&(c=!1)},!0),e&&new e(function(){a.fire("wp-body-class-change")}).observe(a.getBody(),{attributes:!0,attributeFilter:["class"]})}),a.on("PreProcess",function(b){tinymce.each(a.dom.select("div[data-wpview-text]",b.node),function(a){a.textContent=a.innerText=" "})}),a.on("PostProcess",function(a){a.content&&(a.content=a.content.replace(/
]*?data-wpview-text="([^"]*)"[^>]*>[\s\S]*?<\/div>/g,function(a,b){return b?"

"+window.decodeURIComponent(b)+"

":""}))}),a.on("keydown",function(c){var d,i,k,n,p,q,r,s=c.keyCode,t=a.dom,v=a.selection;if(m){if((c.metaKey||c.ctrlKey)&&s!==u.BACKSPACE&&86!==s||s>=112&&123>=s)return void((c.metaKey||c.ctrlKey)&&88===s&&(w=m));if(i=b(v.getNode()),i!==m)return void j();s===u.LEFT?(e(!0,i),c.preventDefault()):s===u.UP?(i.previousSibling?b(i.previousSibling)?e(!0,i.previousSibling):(j(),v.select(i.previousSibling,!0),v.collapse()):e(!0,i),c.preventDefault()):s===u.RIGHT?(e(!1,i),c.preventDefault()):s===u.DOWN?(i.nextSibling?b(i.nextSibling)?e(!1,i.nextSibling):(j(),v.setCursorLocation(i.nextSibling,0)):e(!1,i),c.preventDefault()):l(s)||(g(m),(s===u.ENTER||s===u.DELETE||s===u.BACKSPACE)&&c.preventDefault())}else{if(c.metaKey||c.ctrlKey||s>=112&&123>=s)return;if(d=v.getNode(),o=d,i=b(d),v.isCollapsed()||(p=v.getRng(),(i=b(p.endContainer))?(q=p.cloneRange(),v.select(i.previousSibling,!0),v.collapse(),r=v.getRng(),q.setEnd(r.endContainer,r.endOffset),v.setRng(q)):(i=b(p.startContainer))&&(q=p.cloneRange(),q.setStart(i.nextSibling,0),v.setRng(q))),!i)return void(c.keyCode===u.BACKSPACE&&(a.dom.isEmpty(d)?(i=b(d.previousSibling))&&(e(!1,i),a.dom.remove(d),c.preventDefault()):(p=v.getRng())&&0===p.startOffset&&0===p.endOffset&&(i=b(d.previousSibling))&&(e(!1,i),c.preventDefault())));if(!(k=t.hasClass(i,"wpview-selection-before"))&&!(n=t.hasClass(i,"wpview-selection-after")))return;if(l(s))return;n&&s===u.UP||k&&s===u.BACKSPACE?(i.previousSibling?b(i.previousSibling)?e(!1,i.previousSibling):t.isEmpty(i.previousSibling)&&s===u.BACKSPACE?t.remove(i.previousSibling):(v.select(i.previousSibling,!0),v.collapse()):e(!0,i),c.preventDefault()):!n||s!==u.DOWN&&s!==u.RIGHT?!k||s!==u.UP&&s!==u.LEFT?k&&s===u.DOWN?(i.nextSibling?b(i.nextSibling)?e(!0,i.nextSibling):v.setCursorLocation(i.nextSibling,0):e(!1,i),c.preventDefault()):n&&s===u.LEFT||k&&s===u.RIGHT?(h(i),c.preventDefault()):n&&s===u.BACKSPACE?(g(i),c.preventDefault()):n?f(i):k&&f(i,!0,s):(i.previousSibling&&(b(i.previousSibling)?e(s===u.UP,i.previousSibling):(v.select(i.previousSibling,!0),v.collapse())),c.preventDefault()):(i.nextSibling&&(b(i.nextSibling)?e(s===u.RIGHT,i.nextSibling):v.setCursorLocation(i.nextSibling,0)),c.preventDefault()),s===u.ENTER&&c.preventDefault()}}),a.on("keyup",function(){w&&(g(w),w=!1)}),a.on("focus",function(){var c;q=!0,a.dom.addClass(a.getBody(),"has-focus"),x&&(c=b(a.getBody().firstChild))&&e(!0,c),x=!1}),a.on("blur",function(){q=!1,a.dom.removeClass(a.getBody(),"has-focus")}),a.on("NodeChange",function(d){var f=a.dom,g=a.dom.select(".wpview-wrap"),h=d.element.className,i=b(d.element),k=o;if(o=!1,clearInterval(n),tinymce.each(g,function(a){a.className&&(a.className=a.className.replace(/ ?\bwpview-(?:selection-before|selection-after|cursor-hide)\b/g,""))}),q&&i)if("wpview-selection-before"!==h&&"wpview-selection-after"!==h||!a.selection.isCollapsed())c(d.element,"wpview-clipboard")||p||(j(),p++,e(!0,i));else{if(p=0,j(),k===i.previousSibling)return void e(!0,i);if(k===i.nextSibling)return void e(!1,i);f.addClass(i,h),n=setInterval(function(){f.hasClass(i,"wpview-cursor-hide")?f.removeClass(i,"wpview-cursor-hide"):f.addClass(i,"wpview-cursor-hide")},500)}}),a.on("BeforeExecCommand",function(){var c,d=a.selection.getNode();d&&((s="wpview-selection-before"===d.className)||"wpview-selection-after"===d.className)&&(c=b(d))&&(f(c,s),r=c)}),a.on("ExecCommand",function(){var b,c;m&&(b=m,j(),h(b)),r&&(c=r[s?"previousSibling":"nextSibling"],c&&"P"===c.nodeName&&a.dom.isEmpty(c)&&(a.dom.remove(c),e(s,r)),r=!1)}),a.on("ResolveName",function(c){a.dom.hasClass(c.target,"wpview-wrap")?(c.name=a.dom.getAttrib(c.target,"data-wpview-type")||"wpview",c.stopPropagation()):b(c.target)&&(c.preventDefault(),c.stopPropagation())}),{getView:b}):{getView:y}}); \ No newline at end of file diff --git a/wp-includes/js/tinymce/wp-tinymce.js.gz b/wp-includes/js/tinymce/wp-tinymce.js.gz index 21f34bec0646c2776ce6f2a11905b42d17236b5f..8a9b664945bccb5ad2c5cb54c4ae7b745219b4ae 100644 GIT binary patch delta 4309 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 D)#hWH delta 4371 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