From 0a5cee0092d4d1d09197ec5c8acc06b1ac8defcc Mon Sep 17 00:00:00 2001
From: Kristoffer Bakken <bakkenkr@msu.edu>
Date: Mon, 18 Mar 2019 15:58:07 -0400
Subject: [PATCH] make sure all controls also remove any additions

---
 .gitignore                        |  3 ++-
 tiny_mce/blockquote/plugin.js     |  8 +++---
 tiny_mce/blockquote/plugin.min.js |  2 +-
 tiny_mce/image2/plugin.js         | 43 +++++++++++++++++++++++++------
 tiny_mce/image2/plugin.min.js     |  2 +-
 tiny_mce/table2/plugin.js         |  3 ++-
 tiny_mce/table2/plugin.min.js     |  2 +-
 tiny_mce/youtube2/plugin.js       | 30 +++++++++++++--------
 tiny_mce/youtube2/plugin.min.js   |  2 +-
 9 files changed, 66 insertions(+), 29 deletions(-)

diff --git a/.gitignore b/.gitignore
index 43e5c8e..3c23b98 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 .DS_STORE
 *.jar
-.ignore/
\ No newline at end of file
+.ignore/
+.idea/
\ No newline at end of file
diff --git a/tiny_mce/blockquote/plugin.js b/tiny_mce/blockquote/plugin.js
index 5ec0ed1..219f447 100644
--- a/tiny_mce/blockquote/plugin.js
+++ b/tiny_mce/blockquote/plugin.js
@@ -6,7 +6,7 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_blockquote', function(edit
         selectedNode = editor.selection.getNode();
         var title = 'Add BlockQuote';
         var value = 'Place BlockQuote Here';
-        var citation = 'Place Citation Here';
+        var citation = '';
         switch (selectedNode.tagName){
           case 'BODY':
             selectedNode = selectedNode.firstChild;
@@ -50,16 +50,16 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_blockquote', function(edit
                 {
                     type: 'textbox',
                     name: 'citationtext',
-                    label: 'Citation',
+                    label: 'Citation (optional)',
                     value: citation
                 }
             ],
             onsubmit: function(e) {
                 let quotetext = e.data.quotetext;
                 let citationtext = e.data.citationtext;
-                if (quotetext.trim() !== 'Place BlockQuote Here' && citationtext.trim() !== 'Place Citation Here') {
+                if (quotetext.trim() !== '' && citationtext.trim() !== '') {
                     insertQuote(quotetext, citationtext);
-                } else if(quotetext.trim() !== 'Place BlockQuote Here'){
+                } else if(quotetext.trim() !== ''){
                     insertQuote(quotetext, false);
                 }
             }
diff --git a/tiny_mce/blockquote/plugin.min.js b/tiny_mce/blockquote/plugin.min.js
index acaf8b6..2d22b9a 100644
--- a/tiny_mce/blockquote/plugin.min.js
+++ b/tiny_mce/blockquote/plugin.min.js
@@ -1 +1 @@
-tinymce.PluginManager.add("plugin_edu.msu.anr.tinymce_blockquote",function(t){var e;function o(){e=t.selection.getNode();var o="Add BlockQuote",a="Place BlockQuote Here",c="Place Citation Here";switch(e.tagName){case"BODY":e=e.firstChild;break;case"CITE":e=e.parentNode;break;case"BLOCKQUOTE":break;default:""!==e.textContent.trim()&&(a=e.textContent.trim())}if("P"==e.tagName&&""!==e.textContent.trim()&&(a=e.textContent.trim()),"BLOCKQUOTE"==e.tagName){o="Edit BlockQuote";var i=e.childNodes;Array.from(i).forEach(function(t,e){0==e&&(a=t.textContent.trim()),"CITE"==t.tagName&&(c=t.textContent.trim())})}t.windowManager.open({title:o,body:[{type:"textbox",name:"quotetext",label:"Blockquote",value:a},{type:"textbox",name:"citationtext",label:"Citation",value:c}],onsubmit:function(t){let e=t.data.quotetext,o=t.data.citationtext;"Place BlockQuote Here"!==e.trim()&&"Place Citation Here"!==o.trim()?n(e,o):"Place BlockQuote Here"!==e.trim()&&n(e,!1)}})}function n(o,n){var a="";n&&(a=t.dom.createHTML("cite",null,n)),t.selection.select(e),t.selection.setContent(t.dom.createHTML("blockquote",null,o+" "+a))}t.addButton("blockquote",{icon:"blockquote",tooltip:"Insert Blockquote",onclick:o}),t.addMenuItem("blockquote",{icon:"blockquote",tooltip:"Insert Blockquote",onclick:o,context:"insert"})});
\ No newline at end of file
+tinymce.PluginManager.add("plugin_edu.msu.anr.tinymce_blockquote",function(t){var e;function o(){e=t.selection.getNode();var o="Add BlockQuote",a="Place BlockQuote Here",i="";switch(e.tagName){case"BODY":e=e.firstChild;break;case"CITE":e=e.parentNode;break;case"BLOCKQUOTE":break;default:""!==e.textContent.trim()&&(a=e.textContent.trim())}if("P"==e.tagName&&""!==e.textContent.trim()&&(a=e.textContent.trim()),"BLOCKQUOTE"==e.tagName){o="Edit BlockQuote";var c=e.childNodes;Array.from(c).forEach(function(t,e){0==e&&(a=t.textContent.trim()),"CITE"==t.tagName&&(i=t.textContent.trim())})}t.windowManager.open({title:o,body:[{type:"textbox",name:"quotetext",label:"Blockquote",value:a},{type:"textbox",name:"citationtext",label:"Citation (optional)",value:i}],onsubmit:function(t){let e=t.data.quotetext,o=t.data.citationtext;""!==e.trim()&&""!==o.trim()?n(e,o):""!==e.trim()&&n(e,!1)}})}function n(o,n){var a="";n&&(a=t.dom.createHTML("cite",null,n)),t.selection.select(e),t.selection.setContent(t.dom.createHTML("blockquote",null,o+" "+a))}t.addButton("blockquote",{icon:"blockquote",tooltip:"Insert Blockquote",onclick:o}),t.addMenuItem("blockquote",{icon:"blockquote",tooltip:"Insert Blockquote",onclick:o,context:"insert"})});
\ No newline at end of file
diff --git a/tiny_mce/image2/plugin.js b/tiny_mce/image2/plugin.js
index dc11256..e115274 100644
--- a/tiny_mce/image2/plugin.js
+++ b/tiny_mce/image2/plugin.js
@@ -84,8 +84,18 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_image2', function(editor)
 
 	function showDialog(imageList) {
 		var win, data = {}, dom = editor.dom, imgElm = editor.selection.getNode();
-		var width, height, imageListCtrl, classListCtrl, imageDimensions = editor.settings.image_dimensions !== false;
-
+		var width, height, imageListCtrl, classListCtrl, hasCaption, hadCaption, captiontext, parentElement, imageDimensions = editor.settings.image_dimensions !== false;
+
+        if(imgElm.nodeName == 'IMG' && imgElm.parentNode.nodeName == 'FIGURE'){
+            hasCaption = true;
+            hadCaption = true;
+            parentElement = imgElm.parentNode;
+            captionElement = parentElement.getElementsByTagName("FIGCAPTION")[0];
+            captiontext = captionElement.innerHTML;
+        } else {
+            hadCaption = false;
+            hasCaption = false;
+        }
 		function recalcSize() {
 			var widthCtrl, heightCtrl, newWidth, newHeight;
 
@@ -142,10 +152,9 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_image2', function(editor)
 			recalcSize();
 
 			data = tinymce.extend(data, win.toJSON());
-			console.log(data);
 			// check whether to include the code for captions
 			hasCaption = data.caption;
-			console.log(hasCaption);
+			captionText = data.captiontext;
 			if (!data.alt) {
 				data.alt = '';
 			}
@@ -190,14 +199,31 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_image2', function(editor)
 					if(hasCaption){
 						imgClass = data.class;
 						delete data.class;
-						editor.selection.setContent(dom.createHTML('figure', {class: 'image '+imgClass}, dom.createHTML('img', data)+dom.createHTML('figcaption', null, 'YOUR CAPTION HERE')));
+						editor.selection.setContent(dom.createHTML('figure', {class: 'image '+imgClass}, dom.createHTML('img', data)+dom.createHTML('figcaption', null, captionText)));
 					} else {
 						editor.selection.setContent(dom.createHTML('img', data));
 					}
 					imgElm = dom.get('__mcenew');
 					dom.setAttrib(imgElm, 'id', null);
 				} else {
-					dom.setAttribs(imgElm, data);
+                    if(hadCaption){
+                        editor.selection.select(parentElement);
+                        if(hasCaption){
+                            imgClass = data.class;
+						    delete data.class;
+						    editor.selection.setContent(dom.createHTML('figure', {class: 'image '+imgClass}, dom.createHTML('img', data)+dom.createHTML('figcaption', null, captionText)));
+                        } else{
+                            editor.selection.setContent(dom.createHTML('img', data));
+                        }
+                    } else {
+                        if(hasCaption){
+                            imgClass = data.class;
+						    delete data.class;
+						    editor.selection.setContent(dom.createHTML('figure', {class: 'image '+imgClass}, dom.createHTML('img', data)+dom.createHTML('figcaption', null, captionText)));                        
+                        } else{
+                            dom.setAttribs(imgElm, data);
+                        }
+                    }
 				}
 
 				waitLoad(imgElm);
@@ -237,7 +263,7 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_image2', function(editor)
 		}
 
 		width = dom.getAttrib(imgElm, 'width');
-		height = dom.getAttrib(imgElm, 'height');
+        height = dom.getAttrib(imgElm, 'height');
 
 		if (imgElm.nodeName == 'IMG' && !imgElm.getAttribute('data-mce-object') && !imgElm.getAttribute('data-mce-placeholder')) {
 			data = {
@@ -328,7 +354,8 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_image2', function(editor)
 					{name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions'}
 				]
 			},
-             {name: 'caption', type: 'checkbox', checked: false, text: 'Include Caption'});
+			 {name: 'caption', type: 'checkbox', checked: hasCaption, text: 'Include Caption'},
+			 {name: 'captiontext', type: 'textbox', label: 'Caption', value: 'YOUR CAPTION HERE'});
 		}
 
 		generalFormItems.push(classListCtrl);
diff --git a/tiny_mce/image2/plugin.min.js b/tiny_mce/image2/plugin.min.js
index 48d5959..fbb95d8 100644
--- a/tiny_mce/image2/plugin.min.js
+++ b/tiny_mce/image2/plugin.min.js
@@ -1 +1 @@
-tinymce.PluginManager.add("plugin_edu.msu.anr.tinymce_image2",function(e){function t(e,t,n){return function e(n,i){return i=i||[],tinymce.each(n,function(n){var a={text:n.text||n.title};n.menu?a.menu=e(n.menu):(a.value=n.value,t(a)),i.push(a)}),i}(e,n||[])}function n(t){return function(){var n=e.settings.image_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):"function"==typeof n?n(t):t(n)}}function i(n){var i,a,l,o,s,c={},r=e.dom,d=e.selection.getNode(),u=!1!==e.settings.image_dimensions;function g(){var e,t,n,o;e=i.find("#width")[0],t=i.find("#height")[0],e&&t&&(n=e.value(),o=t.value(),i.find("#constrain")[0].checked()&&a&&l&&n&&o&&(a!=n?(o=Math.round(n/a*o),t.value(o)):(n=Math.round(o/l*n),e.value(n))),a=n,l=o)}function m(){f(),g(),c=tinymce.extend(c,i.toJSON()),console.log(c),hasCaption=c.caption,console.log(hasCaption),c.alt||(c.alt=""),""===c.width&&(c.width=null),""===c.height&&(c.height=null),c.style||(c.style=null),c={src:c.src,alt:c.alt,width:c.width,height:c.height,style:c.style,class:c.class},console.log(c),e.undoManager.transact(function(){c.src?(d?r.setAttribs(d,c):(c.id="__mcenew",e.focus(),hasCaption?(imgClass=c.class,delete c.class,e.selection.setContent(r.createHTML("figure",{class:"image "+imgClass},r.createHTML("img",c)+r.createHTML("figcaption",null,"YOUR CAPTION HERE")))):e.selection.setContent(r.createHTML("img",c)),d=r.get("__mcenew"),r.setAttrib(d,"id",null)),function(t){function n(){t.onload=t.onerror=null,e.selection&&(e.selection.select(t),e.nodeChanged())}t.onload=function(){c.width||c.height||!u||r.setAttribs(t,{width:t.clientWidth,height:t.clientHeight}),n()},t.onerror=n}(d)):d&&(r.remove(d),e.focus(),e.nodeChanged())})}function h(e){return e&&(e=e.replace(/px$/,"")),e}a=r.getAttrib(d,"width"),l=r.getAttrib(d,"height"),"IMG"!=d.nodeName||d.getAttribute("data-mce-object")||d.getAttribute("data-mce-placeholder")?d=null:c={src:r.getAttrib(d,"src"),alt:r.getAttrib(d,"alt"),class:r.getAttrib(d,"class"),width:a,height:l},n&&(o={type:"listbox",label:"Image list",values:t(n,function(t){t.value=e.convertURL(t.value||t.url,"src")},[{text:"None",value:""}]),value:c.src&&e.convertURL(c.src,"src"),onselect:function(e){var t=i.find("#alt");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),i.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){o=this}}),e.settings.image_class_list&&(s={name:"class",type:"listbox",label:"Class",values:t(e.settings.image_class_list,function(t){t.value&&(t.textStyle=function(){return e.formatter.getCssText({inline:"img",classes:[t.value]})})})});var p=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:function(t){var n=t.meta||{};o&&o.value(e.convertURL(this.value(),"src")),tinymce.each(n,function(e,t){i.find("#"+t).value(e)}),n.width||n.height||function(e,t){var n=document.createElement("img");function i(e,i){n.parentNode&&n.parentNode.removeChild(n),t({width:e,height:i})}n.onload=function(){i(n.clientWidth,n.clientHeight)},n.onerror=function(){i()};var a=n.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left=0,a.width=a.height="auto",document.body.appendChild(n),n.src=e}(this.value(),function(e){e.width&&e.height&&u&&(a=e.width,l=e.height,i.find("#width").value(a),i.find("#height").value(l))})}},o];function f(){function t(e){return e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e}if(e.settings.image_advtab){var n=i.toJSON(),a=r.parseStyle(n.style);delete a.margin,a["margin-top"]=a["margin-bottom"]=t(n.vspace),a["margin-left"]=a["margin-right"]=t(n.hspace),a["border-width"]=t(n.border),i.find("#style").value(r.serializeStyle(r.parseStyle(r.serializeStyle(a))))}}!1!==e.settings.image_description&&p.push({name:"alt",type:"textbox",label:"Image description"}),u&&p.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:g,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:g,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]},{name:"caption",type:"checkbox",checked:0,text:"Include Caption"}),p.push(s),e.settings.image_advtab?(d&&(c.hspace=h(d.style.marginLeft||d.style.marginRight),c.vspace=h(d.style.marginTop||d.style.marginBottom),c.border=h(d.style.borderWidth),c.style=e.dom.serializeStyle(e.dom.parseStyle(e.dom.getAttrib(d,"style")))),i=e.windowManager.open({title:"Insert/edit image",data:c,bodyType:"tabpanel",body:[{title:"General",type:"form",items:p},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:f},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:m})):i=e.windowManager.open({title:"Insert/edit image",data:c,body:p,onSubmit:m})}e.addButton("image2",{icon:"image",tooltip:"Insert/edit image",onclick:n(i),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),e.addMenuItem("image2",{icon:"image",text:"Insert image",onclick:n(i),context:"insert",prependToContext:!0}),e.addCommand("mceImage2",n(i))});
\ No newline at end of file
+tinymce.PluginManager.add("plugin_edu.msu.anr.tinymce_image2",function(e){function t(e,t,n){return function e(n,i){return i=i||[],tinymce.each(n,function(n){var a={text:n.text||n.title};n.menu?a.menu=e(n.menu):(a.value=n.value,t(a)),i.push(a)}),i}(e,n||[])}function n(t){return function(){var n=e.settings.image_list;"string"==typeof n?tinymce.util.XHR.send({url:n,success:function(e){t(tinymce.util.JSON.parse(e))}}):"function"==typeof n?n(t):t(n)}}function i(n){var i,a,l,o,s,c,r,d,g={},m=e.dom,u=e.selection.getNode(),h=!1!==e.settings.image_dimensions;function p(){var e,t,n,o;e=i.find("#width")[0],t=i.find("#height")[0],e&&t&&(n=e.value(),o=t.value(),i.find("#constrain")[0].checked()&&a&&l&&n&&o&&(a!=n?(o=Math.round(n/a*o),t.value(o)):(n=Math.round(o/l*n),e.value(n))),a=n,l=o)}function f(){v(),p(),g=tinymce.extend(g,i.toJSON()),c=g.caption,captionText=g.captiontext,g.alt||(g.alt=""),""===g.width&&(g.width=null),""===g.height&&(g.height=null),g.style||(g.style=null),g={src:g.src,alt:g.alt,width:g.width,height:g.height,style:g.style,class:g.class},console.log(g),e.undoManager.transact(function(){g.src?(u?r?(e.selection.select(d),c?(imgClass=g.class,delete g.class,e.selection.setContent(m.createHTML("figure",{class:"image "+imgClass},m.createHTML("img",g)+m.createHTML("figcaption",null,captionText)))):e.selection.setContent(m.createHTML("img",g))):c?(imgClass=g.class,delete g.class,e.selection.setContent(m.createHTML("figure",{class:"image "+imgClass},m.createHTML("img",g)+m.createHTML("figcaption",null,captionText)))):m.setAttribs(u,g):(g.id="__mcenew",e.focus(),c?(imgClass=g.class,delete g.class,e.selection.setContent(m.createHTML("figure",{class:"image "+imgClass},m.createHTML("img",g)+m.createHTML("figcaption",null,captionText)))):e.selection.setContent(m.createHTML("img",g)),u=m.get("__mcenew"),m.setAttrib(u,"id",null)),function(t){function n(){t.onload=t.onerror=null,e.selection&&(e.selection.select(t),e.nodeChanged())}t.onload=function(){g.width||g.height||!h||m.setAttribs(t,{width:t.clientWidth,height:t.clientHeight}),n()},t.onerror=n}(u)):u&&(m.remove(u),e.focus(),e.nodeChanged())})}function y(e){return e&&(e=e.replace(/px$/,"")),e}"IMG"==u.nodeName&&"FIGURE"==u.parentNode.nodeName?(c=!0,r=!0,d=u.parentNode,captionElement=d.getElementsByTagName("FIGCAPTION")[0],captionElement.innerHTML):(r=!1,c=!1),a=m.getAttrib(u,"width"),l=m.getAttrib(u,"height"),"IMG"!=u.nodeName||u.getAttribute("data-mce-object")||u.getAttribute("data-mce-placeholder")?u=null:g={src:m.getAttrib(u,"src"),alt:m.getAttrib(u,"alt"),class:m.getAttrib(u,"class"),width:a,height:l},n&&(o={type:"listbox",label:"Image list",values:t(n,function(t){t.value=e.convertURL(t.value||t.url,"src")},[{text:"None",value:""}]),value:g.src&&e.convertURL(g.src,"src"),onselect:function(e){var t=i.find("#alt");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),i.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){o=this}}),e.settings.image_class_list&&(s={name:"class",type:"listbox",label:"Class",values:t(e.settings.image_class_list,function(t){t.value&&(t.textStyle=function(){return e.formatter.getCssText({inline:"img",classes:[t.value]})})})});var b=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:function(t){var n=t.meta||{};o&&o.value(e.convertURL(this.value(),"src")),tinymce.each(n,function(e,t){i.find("#"+t).value(e)}),n.width||n.height||function(e,t){var n=document.createElement("img");function i(e,i){n.parentNode&&n.parentNode.removeChild(n),t({width:e,height:i})}n.onload=function(){i(n.clientWidth,n.clientHeight)},n.onerror=function(){i()};var a=n.style;a.visibility="hidden",a.position="fixed",a.bottom=a.left=0,a.width=a.height="auto",document.body.appendChild(n),n.src=e}(this.value(),function(e){e.width&&e.height&&h&&(a=e.width,l=e.height,i.find("#width").value(a),i.find("#height").value(l))})}},o];function v(){function t(e){return e.length>0&&/^[0-9]+$/.test(e)&&(e+="px"),e}if(e.settings.image_advtab){var n=i.toJSON(),a=m.parseStyle(n.style);delete a.margin,a["margin-top"]=a["margin-bottom"]=t(n.vspace),a["margin-left"]=a["margin-right"]=t(n.hspace),a["border-width"]=t(n.border),i.find("#style").value(m.serializeStyle(m.parseStyle(m.serializeStyle(a))))}}!1!==e.settings.image_description&&b.push({name:"alt",type:"textbox",label:"Image description"}),h&&b.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:p,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:p,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]},{name:"caption",type:"checkbox",checked:c,text:"Include Caption"},{name:"captiontext",type:"textbox",label:"Caption",value:"YOUR CAPTION HERE"}),b.push(s),e.settings.image_advtab?(u&&(g.hspace=y(u.style.marginLeft||u.style.marginRight),g.vspace=y(u.style.marginTop||u.style.marginBottom),g.border=y(u.style.borderWidth),g.style=e.dom.serializeStyle(e.dom.parseStyle(e.dom.getAttrib(u,"style")))),i=e.windowManager.open({title:"Insert/edit image",data:g,bodyType:"tabpanel",body:[{title:"General",type:"form",items:b},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:v},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:f})):i=e.windowManager.open({title:"Insert/edit image",data:g,body:b,onSubmit:f})}e.addButton("image2",{icon:"image",tooltip:"Insert/edit image",onclick:n(i),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),e.addMenuItem("image2",{icon:"image",text:"Insert image",onclick:n(i),context:"insert",prependToContext:!0}),e.addCommand("mceImage2",n(i))});
\ No newline at end of file
diff --git a/tiny_mce/table2/plugin.js b/tiny_mce/table2/plugin.js
index 0e7726c..3a19541 100644
--- a/tiny_mce/table2/plugin.js
+++ b/tiny_mce/table2/plugin.js
@@ -1524,7 +1524,8 @@
               cellpadding : tableElm ? dom.getAttrib(tableElm, "cellpadding") : "",
               border : tableElm ? dom.getAttrib(tableElm, "border") : "",
               caption : !!dom.select("caption", tableElm)[0],
-              "class" : dom.getAttrib(tableElm, "class")
+              "class" : dom.getAttrib(tableElm, "class"),
+              d3 : dom.getAttrib(tableElm, "data-d3-chart")
             };
             each("left center right".split(" "), function(name) {
               if (editor.formatter.matchNode(tableElm, "align" + name)) {
diff --git a/tiny_mce/table2/plugin.min.js b/tiny_mce/table2/plugin.min.js
index e53dbcb..3a3c3fc 100644
--- a/tiny_mce/table2/plugin.min.js
+++ b/tiny_mce/table2/plugin.min.js
@@ -1 +1 @@
-"use strict";!function(e,t){function n(e,n,a){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(n===t)throw"invalid module definition, dependencies must be specified";if(a===t)throw"invalid module definition, definition function must be specified";!function(e,t){for(var n,a=[],r=0;r<e.length;++r){if(!(n=l[e[r]]||o(e[r])))throw"module definition dependecy not found: "+e[r];a.push(n)}t.apply(null,a)}(n,function(){l[e]=a.apply(null,arguments)})}function o(t){for(var n=e,o=t.split(/[.\/]/),l=0;l<o.length;++l){if(!n[o[l]])return;n=n[o[l]]}return n}var l={};n("tinymce/tableplugin/TableGrid",["tinymce/util/Tools","tinymce/Env"],function(e,n){function o(e,t){return parseInt(e.getAttribute(t)||1,10)}var l=e.each;return function(a,r){function i(){var e=0;v=[],y=0,l(["thead","tbody","tfoot"],function(t){var n=N.select("> "+t+" tr",r);l(n,function(n,a){a+=e,l(N.select("> td, > th",n),function(e,n){var l,r,i,s;if(v[a])for(;v[a][n];)n++;for(i=o(e,"rowspan"),s=o(e,"colspan"),r=a;a+i>r;r++)for(v[r]||(v[r]=[]),l=n;n+s>l;l++)v[r][l]={part:t,real:r==a&&l==n,elm:e,rowspan:i,colspan:s};y=Math.max(y,n+1)})}),e+=n.length})}function s(e,t){return(e=e.cloneNode(t)).removeAttribute("id"),e}function c(e,t){var n;return(n=v[t])?n[e]:void 0}function d(e,t,n){e&&(1===(n=parseInt(n,10))?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function u(e){return e&&(N.hasClass(e.elm,"mce-item-selected")||e==C)}function m(){var e=[];return l(r.rows,function(t){l(t.cells,function(n){return N.hasClass(n,"mce-item-selected")||C&&n==C.elm?(e.push(t),!1):void 0})}),e}function f(t){var o,r={};return!1!==a.settings.table_clone_elements&&(r=e.makeMap((a.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(t,function(e){var a;return 3==e.nodeType?(l(N.getParents(e.parentNode,null,t).reverse(),function(e){r[e.nodeName]&&(e=s(e,!1),o?a&&a.appendChild(e):o=a=e,a=e)}),a&&(a.innerHTML=n.ie?"&nbsp;":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),d(t=s(t,!1),"rowSpan",1),d(t,"colSpan",1),o?t.appendChild(o):(!n.ie||n.ie>10)&&(t.innerHTML='<br data-mce-bogus="1" />'),t}function g(){var e,t=N.createRng();return l(N.select("tr",r),function(e){0===e.cells.length&&N.remove(e)}),0===N.select("tr",r).length?(t.setStartBefore(r),t.setEndBefore(r),R.setRng(t),void N.remove(r)):(l(N.select("thead,tbody,tfoot",r),function(e){0===e.rows.length&&N.remove(e)}),i(),void(x&&(e=v[Math.min(v.length-1,x.y)],e&&(R.select(e[Math.min(e.length-1,x.x)].elm,!0),R.collapse(!0)))))}function p(e,t,n,o){var l,a,r,i,s;for(l=v[t][e].elm.parentNode,r=1;n>=r;r++)if(l=N.getNext(l,"tr")){for(a=e;a>=0;a--)if((s=v[t+r][a].elm).parentNode==l){for(i=1;o>=i;i++)N.insertAfter(f(s),s);break}if(-1==a)for(i=1;o>=i;i++)l.insertBefore(f(l.cells[0]),l.cells[0])}}function b(){l(v,function(e,t){l(e,function(e,n){var l,a,r;if(u(e)&&(l=o(e=e.elm,"colspan"),a=o(e,"rowspan"),l>1||a>1)){for(d(e,"rowSpan",1),d(e,"colSpan",1),r=0;l-1>r;r++)N.insertAfter(f(e),e);p(n,t,a-1,l)}})})}function h(e){var t;return l(v,function(n,o){return l(n,function(n,l){return n.elm==e?(t={x:l,y:o},!1):void 0}),!t}),t}var v,y,x,w,C,T,S,R=a.selection,N=R.dom;r=r||N.getParent(R.getStart(),"table"),i(),(C=N.getParent(R.getStart(),"th,td"))&&(x=h(C),T=S=0,l(v,function(e,t){l(e,function(e,n){var o,l;u(e)&&(e=v[t][n],n>T&&(T=n),t>S&&(S=t),e.real&&(o=e.colspan-1,l=e.rowspan-1,o&&n+o>T&&(T=n+o),l&&t+l>S&&(S=t+l)))})}),w={x:T,y:S},C=c(x.x,x.y)),e.extend(this,{deleteTable:function(){var e=N.createRng();e.setStartAfter(r),e.setEndAfter(r),R.setRng(e),N.remove(r)},split:b,merge:function(t,n,o){var a,r,s,m,f,p,y,C,T,S,R;if(t?(m=(r=(a=h(t)).x)+(n-1),f=(s=a.y)+(o-1)):(x=w=null,l(v,function(e,t){l(e,function(e,n){u(e)&&(x||(x={x:n,y:t}),w={x:n,y:t})})}),x&&(r=x.x,s=x.y,m=w.x,f=w.y)),C=c(r,s),T=c(m,f),C&&T&&C.part==T.part){for(b(),i(),d(C=c(r,s).elm,"colSpan",m-r+1),d(C,"rowSpan",f-s+1),y=s;f>=y;y++)for(p=r;m>=p;p++)v[y]&&v[y][p]&&(t=v[y][p].elm)!=C&&(S=e.grep(t.childNodes),l(S,function(e){C.appendChild(e)}),S.length&&(S=e.grep(C.childNodes),R=0,l(S,function(e){"BR"==e.nodeName&&N.getAttrib(e,"data-mce-bogus")&&R++<S.length-1&&C.removeChild(e)})),N.remove(t));g()}},insertRow:function(e){var n,a,r,i,c,m,g,p,b;if(l(v,function(t,o){return l(t,function(t){return(!u(t)||(t=t.elm,c=t.parentNode,m=s(c,!1),n=o,!e))&&void 0}),e?!n:void 0}),n!==t){for(i=0;i<v[0].length;i++)if(v[n][i]&&(a=v[n][i].elm)!=r){if(e){if(n>0&&v[n-1][i]&&(b=o(p=v[n-1][i].elm,"rowSpan"))>1){d(p,"rowSpan",b+1);continue}}else if((b=o(a,"rowspan"))>1){d(a,"rowSpan",b+1);continue}d(g=f(a),"colSpan",a.colSpan),m.appendChild(g),r=a}m.hasChildNodes()&&(e?c.parentNode.insertBefore(m,c):N.insertAfter(m,c))}},insertCol:function(e){var t,n;l(v,function(n){return l(n,function(n,o){return(!u(n)||(t=o,!e))&&void 0}),e?!t:void 0}),l(v,function(l,a){var r,i,s;l[t]&&(r=l[t].elm)!=n&&(s=o(r,"colspan"),i=o(r,"rowspan"),1==s?e?(r.parentNode.insertBefore(f(r),r),p(t,a,i-1,s)):(N.insertAfter(f(r),r),p(t,a,i-1,s)):d(r,"colSpan",r.colSpan+1),n=r)})},deleteCols:function(){var t=[];l(v,function(n){l(n,function(n,a){u(n)&&-1===e.inArray(t,a)&&(l(v,function(e){var t,n=e[a].elm;(t=o(n,"colSpan"))>1?d(n,"colSpan",t-1):N.remove(n)}),t.push(a))})}),g()},deleteRows:function(){var e;e=m(),l(e.reverse(),function(e){var t,n,a;l((t=e).cells,function(e){var t=o(e,"rowSpan");t>1&&(d(e,"rowSpan",t-1),p((n=h(e)).x,n.y,1,1))}),n=h(t.cells[0]),l(v[n.y],function(e){var t;(e=e.elm)!=a&&(1>=(t=o(e,"rowSpan"))?N.remove(e):d(e,"rowSpan",t-1),a=e)})}),g()},cutRows:function(){var e=m();return N.remove(e),g(),e},copyRows:function(){var e=m();return l(e,function(t,n){e[n]=s(t,!0)}),e},pasteRows:function(e,t){var n=m(),o=n[t?0:n.length-1],a=o.cells.length;e&&(l(v,function(e){var t;return a=0,l(e,function(e){e.real&&(a+=e.colspan),e.elm.parentNode==o&&(t=1)}),!t&&void 0}),t||e.reverse(),l(e,function(e){var n,l,r=e.cells.length;for(n=0;r>n;n++)d(l=e.cells[n],"colSpan",1),d(l,"rowSpan",1);for(n=r;a>n;n++)e.appendChild(f(e.cells[r-1]));for(n=a;r>n;n++)N.remove(e.cells[n]);t?o.parentNode.insertBefore(e,o):N.insertAfter(e,o)}),N.removeClass(N.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))},getPos:h,setStartCell:function(e){x=h(e)},setEndCell:function(e){var t,n,o,l,a,r,i,s,c,d;if(w=h(e),x&&w){for(t=Math.min(x.x,w.x),n=Math.min(x.y,w.y),a=o=Math.max(x.x,w.x),r=l=Math.max(x.y,w.y),d=n;r>=d;d++)(e=v[d][t]).real||t-(e.colspan-1)<t&&(t-=e.colspan-1);for(c=t;a>=c;c++)(e=v[n][c]).real||n-(e.rowspan-1)<n&&(n-=e.rowspan-1);for(d=n;l>=d;d++)for(c=t;o>=c;c++)(e=v[d][c]).real&&((i=e.colspan-1)&&c+i>a&&(a=c+i),(s=e.rowspan-1)&&d+s>r&&(r=d+s));for(N.removeClass(N.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=n;r>=d;d++)for(c=t;a>=c;c++)v[d][c]&&N.addClass(v[d][c].elm,"mce-item-selected")}},moveRelIdx:function(e,t){var n,o,l;o=(n=h(e)).y*y+n.x;do{if(!(l=c((o+=t)%y,Math.floor(o/y))))break;if(l.elm!=e)return R.select(l.elm,!0),N.isEmpty(l.elm)&&R.collapse(!0),!0}while(l.elm==e);return!1},refresh:i})}}),n("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/Env","tinymce/util/Tools"],function(e,t,n){function o(e,t){return parseInt(e.getAttribute(t)||1,10)}var l=n.each;return function(n){function a(){n.on("KeyDown",function(e){var t,o,l=n.dom;37!=e.keyCode&&38!=e.keyCode||(t=n.selection.getRng(),(o=l.getParent(t.startContainer,"table"))&&n.getBody().firstChild==o&&function(e,t){var n,o=t.ownerDocument,l=o.createRange();return l.setStartBefore(t),l.setEnd(e.endContainer,e.endOffset),(n=o.createElement("body")).appendChild(l.cloneContents()),0===n.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}(t,o)&&((t=l.createRng()).setStartBefore(o),t.setEndBefore(o),n.selection.setRng(t),e.preventDefault()))})}function r(){n.on("KeyDown SetContent VisualAid",function(){var e;for(e=n.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&("BR"==e.tagName||!e.getAttribute("data-mce-bogus")))break;e&&"TABLE"==e.nodeName&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,n.settings.forced_root_block_attrs,t.ie&&t.ie<11?"&nbsp;":'<br data-mce-bogus="1" />'):n.dom.add(n.getBody(),"br",{"data-mce-bogus":"1"}))}),n.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||" "==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&n.dom.remove(t)})}n.on("keydown",function(t){if((t.keyCode==e.DELETE||t.keyCode==e.BACKSPACE)&&!t.isDefaultPrevented()){var o=n.dom.getParent(n.selection.getStart(),"table");if(o){for(var l=n.dom.select("td,th",o),a=l.length;a--;)if(!n.dom.hasClass(l[a],"mce-item-selected"))return;t.preventDefault(),n.execCommand("mceTableDelete")}}}),t.webkit&&(function(){function t(t){function a(e,o){var l=e?"previousSibling":"nextSibling",c=n.dom.getParent(o,"tr"),d=c[l];if(d)return s(0,o,d,e),t.preventDefault(),!0;var u=n.dom.getParent(c,"table"),m=c.parentNode,f=m.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var g=function(e,t,o,l){var a=n.dom.select(">"+l,t),r=a.indexOf(o);if(e&&0===r||!e&&r===a.length-1)return function(e,t){var o=e?"thead":"tfoot",l=n.dom.select(">"+o,t);return 0!==l.length?l[0]:null}(e,t);if(-1===r){var i="thead"===o.tagName.toLowerCase()?0:a.length-1;return a[i]}return a[r+(e?-1:1)]}(e,u,m,"tbody");if(null!==g)return function(e,n,o){var l=r(n,e);return l&&s(0,o,l,e),t.preventDefault(),!0}(e,g,o)}return function(e,o,l,s){var c=s[l];if(c)return i(c),!0;var d=n.dom.getParent(s,"td,th");return d?a(e,d):(i(r(o,!e)),t.preventDefault(),!1)}(e,c,l,u)}function r(e,t){var o=e&&e[t?"lastChild":"firstChild"];return o&&"BR"===o.nodeName?n.dom.getParent(o,"td,th"):o}function i(e){n.selection.setCursorLocation(e,0)}function s(e,t,a,s){var c=function(e,t){var n=0,a=0;return l(e.children,function(e,l){return n+=o(e,"colspan"),a=l,!(n>t)&&void 0}),a}(a,function(e){for(var t=0,n=e;n.previousSibling;)t+=o(n=n.previousSibling,"colspan");return t}(n.dom.getParent(t,"td,th"))),d=a.childNodes[c];i(r(d,s)||d)}function c(e){var t,o,l=n.selection.getNode(),a=n.dom.getParent(l,"td,th"),r=n.dom.getParent(e,"td,th");return a&&a!==r&&(t=a,o=r,n.dom.getParent(t,"TABLE")===n.dom.getParent(o,"TABLE"))}var d=t.keyCode;if((d==e.UP||d==e.DOWN)&&function(e){var t=e.selection.getNode();return null!==e.dom.getParent(t,"tr")}(n)){var u=n.selection.getNode();setTimeout(function(){c(u)&&a(!t.shiftKey&&d===e.UP,u)},0)}}n.on("KeyDown",function(e){t(e)})}(),function(){function e(){var e=n.selection.getRng(),t=n.selection.getNode(),o=n.dom.getParent(e.startContainer,"TD,TH");if(function(e,t,n,o){var l,a,r,i=e.dom.getParent(t.startContainer,"TABLE");return i&&(l=i.parentNode),a=3==t.startContainer.nodeType&&0===t.startOffset&&0===t.endOffset&&o&&("TR"==n.nodeName||n==l),r=("TD"==n.nodeName||"TH"==n.nodeName)&&!o,a||r}(n,e,t,o)){o||(o=t);for(var l=o.lastChild;l.lastChild;)l=l.lastChild;3==l.nodeType&&(e.setEnd(l,l.data.length),n.selection.setRng(e))}}n.on("KeyDown",function(){e()}),n.on("MouseDown",function(t){2!=t.button&&e()})}()),t.gecko&&(a(),r()),t.ie>10&&(a(),r())}}),n("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(e,t,n){return function(o){function l(e){o.getBody().style.webkitUserSelect="",(e||u)&&(o.dom.removeClass(o.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),u=!1)}function a(t){var n,l,a=t.target;if(!c&&i&&(r||a!=i)&&("TD"==a.nodeName||"TH"==a.nodeName)){(l=d.getParent(a,"table"))==s&&(r||((r=new e(o,l)).setStartCell(i),o.getBody().style.webkitUserSelect="none"),r.setEndCell(a),u=!0),n=o.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(e){}t.preventDefault()}}var r,i,s,c,d=o.dom,u=!0;return o.on("MouseDown",function(e){2==e.button||c||(l(),i=d.getParent(e.target,"td,th"),s=d.getParent(i,"table"))}),o.on("mouseover",a),o.on("remove",function(){d.unbind(o.getDoc(),"mouseover",a)}),o.on("MouseUp",function(){function e(e,o){var a=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return void(o?l.setStart(e,0):l.setEnd(e,e.nodeValue.length));if("BR"==e.nodeName)return void(o?l.setStartBefore(e):l.setEndBefore(e))}while(e=o?a.next():a.prev())}var l,a,c,u,m,f=o.selection;if(i){if(r&&(o.getBody().style.webkitUserSelect=""),(a=d.select("td.mce-item-selected,th.mce-item-selected")).length>0){l=d.createRng(),u=a[0],l.setStartBefore(u),l.setEndAfter(u),e(u,1),c=new t(u,d.getParent(a[0],"table"));do{if("TD"==u.nodeName||"TH"==u.nodeName){if(!d.hasClass(u,"mce-item-selected"))break;m=u}}while(u=c.next());e(m),f.setRng(l)}o.nodeChanged(),i=r=s=null}}),o.on("KeyUp Drop SetContent",function(e){l("setcontent"==e.type),i=r=s=null,c=!1}),o.on("ObjectResizeStart ObjectResized",function(e){c="objectresized"!=e.type}),{clear:l}}}),n("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(e,t){var n=e.each;return function(o){function l(){var e=o.settings.color_picker_callback;return e?function(){var t=this;e.call(o,function(e){t.value(e).fire("change")},t.value())}:void 0}function a(e){return{title:"Advanced",type:"form",defaults:{onchange:function(){d(e,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:l()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:l()}]}]}}function r(e){return e?e.replace(/px$/,""):""}function i(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function s(e){n("left center right".split(" "),function(t){o.formatter.remove("align"+t,{},e)})}function c(t,n,o){return function t(o,l){return l=l||[],e.each(o,function(e){var o={text:e.text||e.title};e.menu?o.menu=t(e.menu):(o.value=e.value,n&&n(o)),l.push(o)}),l}(t,o||[])}function d(e,t,n){var o=t.toJSON(),l=e.parseStyle(o.style);n?(t.find("#borderColor").value(l["border-color"]||"")[0].fire("change"),t.find("#backgroundColor").value(l["background-color"]||"")[0].fire("change")):(l["border-color"]=o.borderColor,l["background-color"]=o.backgroundColor),t.find("#style").value(e.serializeStyle(e.parseStyle(e.serializeStyle(l))))}function u(e,t,n){var o=e.parseStyle(e.getAttrib(n,"style"));o["border-color"]&&(t.borderColor=o["border-color"]),o["background-color"]&&(t.backgroundColor=o["background-color"]),t.style=e.serializeStyle(o)}var m=this;m.tableProps=function(){m.table(!0)},m.table=function(l){function m(){var n;d(v,this),y=e.extend(y,this.toJSON()),e.each("backgroundColor borderColor".split(" "),function(e){delete y[e]}),!1===y.class&&delete y.class,o.undoManager.transact(function(){if(f||(f=o.plugins.table.insertTable(y.cols||1,y.rows||1)),""!==y.d3){var e=f.getElementsByTagName("tr")[0].getElementsByTagName("td");Array.from(e).forEach(function(e){var t=document.createElement("th");t.innerHTML=e.innerHTML,e.parentNode.replaceChild(t,e)}),y.class.includes("d3")||(y.class=y.class+" d3")}else{e=f.getElementsByTagName("tr")[0].getElementsByTagName("th");Array.from(e).forEach(function(e){var t=document.createElement("td");t.innerHTML=e.innerHTML,e.parentNode.replaceChild(t,e)}),y.class.includes("d3")&&(y.class=y.class.replace(" d3",""))}o.dom.setAttribs(f,{cellspacing:y.cellspacing,cellpadding:y.cellpadding,border:y.border,style:y.style,class:y.class}),v.getAttrib(f,"width")?v.setAttrib(f,"width",r(y.width)):v.setStyle(f,"width",i(y.width)),y.d3?v.setAttrib(f,"data-d3-chart",y.d3):v.setAttrib(f,"data-d3-chart",null),v.setStyle(f,"height",i(y.height)),(n=v.select("caption",f)[0])&&!y.caption&&v.remove(n),!n&&y.caption&&((n=v.create("caption")).innerHTML=t.ie?" ":'<br data-mce-bogus="1"/>',f.insertBefore(n,f.firstChild)),s(f),y.align&&o.formatter.apply("align"+y.align,{},f),o.focus(),o.addVisual()})}var f,g,p,b,h,v=o.dom,y={};!0===l?(f=v.getParent(o.selection.getStart(),"table"))&&(y={width:r(v.getStyle(f,"width")||v.getAttrib(f,"width")),height:r(v.getStyle(f,"height")||v.getAttrib(f,"height")),cellspacing:f?v.getAttrib(f,"cellspacing"):"",cellpadding:f?v.getAttrib(f,"cellpadding"):"",border:f?v.getAttrib(f,"border"):"",caption:!!v.select("caption",f)[0],class:v.getAttrib(f,"class")},n("left center right".split(" "),function(e){o.formatter.matchNode(f,"align"+e)&&(y.align=e)})):(g={label:"Cols",name:"cols"},p={label:"Rows",name:"rows"}),o.settings.table_class_list&&(y.class&&(y.class=y.class.replace(/\s*mce\-item\-table\s*/g,"")),b={name:"class",type:"listbox",label:"Class",values:c(o.settings.table_class_list,function(e){e.value&&(e.textStyle=function(){return o.formatter.getCssText({block:"table",classes:[e.value]})})})}),h={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[g,p,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{type:"label",text:"Note: When using a D3 table type, be sure that the first row of your table contains the table headers."},{label:"D3 Table",name:"d3",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Donut",value:"donut"},{text:"Bar",value:"bar"},{text:"Pie",value:"pie"}]},b]},!1!==o.settings.table_advtab?(u(v,y,f),o.windowManager.open({title:"Table properties",data:y,bodyType:"tabpanel",body:[{title:"General",type:"form",items:h},a(v)],onsubmit:m})):o.windowManager.open({title:"Table properties",data:y,body:h,onsubmit:m})},m.merge=function(e,t){o.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var n=this.toJSON();o.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})},m.cell=function(){function t(){d(g,this),m=e.extend(m,this.toJSON()),o.undoManager.transact(function(){n(p,function(e){var t;o.dom.setAttribs(e,{scope:m.scope,style:m.style,class:m.class}),o.dom.setStyles(e,{width:i(m.width),height:i(m.height)}),m.type&&e.nodeName.toLowerCase()!=m.type&&(e=g.rename(e,m.type)),s(e),m.align&&o.formatter.apply("align"+m.align,{},e),t=e,n("top middle bottom".split(" "),function(e){o.formatter.remove("valign"+e,{},t)}),m.valign&&o.formatter.apply("valign"+m.valign,{},e)}),o.focus()})}var l,m,f,g=o.dom,p=[];if(p=o.dom.select("td.mce-item-selected,th.mce-item-selected"),l=o.dom.getParent(o.selection.getStart(),"td,th"),!p.length&&l&&p.push(l),l=l||p[0]){(m={width:r(g.getStyle(l,"width")||g.getAttrib(l,"width")),height:r(g.getStyle(l,"height")||g.getAttrib(l,"height")),scope:g.getAttrib(l,"scope"),class:g.getAttrib(l,"class")}).type=l.nodeName.toLowerCase(),n("left center right".split(" "),function(e){o.formatter.matchNode(l,"align"+e)&&(m.align=e)}),n("top middle bottom".split(" "),function(e){o.formatter.matchNode(l,"valign"+e)&&(m.valign=e)}),o.settings.table_cell_class_list&&(f={name:"class",type:"listbox",label:"Class",values:c(o.settings.table_cell_class_list,function(e){e.value&&(e.textStyle=function(){return o.formatter.getCssText({block:"td",classes:[e.value]})})})});var b={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},f]};!1!==o.settings.table_cell_advtab?(u(g,m,l),o.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:m,body:[{title:"General",type:"form",items:b},a(g)],onsubmit:t})):o.windowManager.open({title:"Cell properties",data:m,body:b,onsubmit:t})}},m.row=function(){function t(){var t,l,a;d(h,this),p=e.extend(p,this.toJSON()),o.undoManager.transact(function(){var e=p.type;n(v,function(n){o.dom.setAttribs(n,{scope:p.scope,style:p.style,class:p.class}),o.dom.setStyles(n,{height:i(p.height)}),e!=n.parentNode.nodeName.toLowerCase()&&(t=h.getParent(n,"table"),l=n.parentNode,(a=h.select(e,t)[0])||(a=h.create(e),t.firstChild?t.insertBefore(a,t.firstChild):t.appendChild(a)),a.appendChild(n),l.hasChildNodes()||h.remove(l)),s(n),p.align&&o.formatter.apply("align"+p.align,{},n)}),o.focus()})}var l,m,f,g,p,b,h=o.dom,v=[];l=o.dom.getParent(o.selection.getStart(),"table"),m=o.dom.getParent(o.selection.getStart(),"td,th"),n(l.rows,function(e){n(e.cells,function(t){return h.hasClass(t,"mce-item-selected")||t==m?(v.push(e),!1):void 0})}),(f=v[0])&&((p={height:r(h.getStyle(f,"height")||h.getAttrib(f,"height")),scope:h.getAttrib(f,"scope"),class:h.getAttrib(f,"class")}).type=f.parentNode.nodeName.toLowerCase(),n("left center right".split(" "),function(e){o.formatter.matchNode(f,"align"+e)&&(p.align=e)}),o.settings.table_row_class_list&&(g={name:"class",type:"listbox",label:"Class",values:c(o.settings.table_row_class_list,function(e){e.value&&(e.textStyle=function(){return o.formatter.getCssText({block:"tr",classes:[e.value]})})})}),b={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},g]},!1!==o.settings.table_row_advtab?(u(h,p,f),o.windowManager.open({title:"Row properties",data:p,bodyType:"tabpanel",body:[{title:"General",type:"form",items:b},a(h)],onsubmit:t})):o.windowManager.open({title:"Row properties",data:p,body:b,onsubmit:t}))}}}),n("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(e,t,n,o,l,a,r,i){var s=l.each;i.add("plugin_edu.msu.anr.tinymce_table2",function(l){function a(e){return function(){l.execCommand(e)}}function i(e,t){var n,o,a,i;for(a='<table id="__mce"><tbody>',n=0;t>n;n++){for(a+="<tr>",o=0;e>o;o++)a=a+"<td>"+(r.ie?" ":"<br>")+"</td>";a+="</tr>"}return a+="</tbody></table>",l.undoManager.transact(function(){l.insertContent(a),i=l.dom.get("__mce"),l.dom.setAttrib(i,"id",null),l.dom.setAttribs(i,l.settings.table_default_attributes||{}),l.dom.setStyles(i,l.settings.table_default_styles||{})}),i}function c(e,t){function n(){e.disabled(!l.dom.getParent(l.selection.getStart(),t)),l.selection.selectorChanged(t,function(t){e.disabled(!t)})}l.initialized?n():l.on("init",n)}function d(){c(this,"table")}function u(){c(this,"td,th")}function m(e,t,n){var o,a,r,i,s,c=n.getEl().getElementsByTagName("table")[0],d=n.isRtl()||"tl-tr"==n.parent().rel;for(c.nextSibling.innerHTML=e+1+" x "+(t+1),d&&(e=9-e),a=0;10>a;a++)for(o=0;10>o;o++)i=c.rows[a].childNodes[o].firstChild,s=(d?o>=e:e>=o)&&t>=a,l.dom.toggleClass(i,"mce-active",s),s&&(r=i);return r.parentNode}var f,g=this,p=new o(l);!1===l.settings.table_grid?l.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:p.table}):l.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),p.table())},onshow:function(){m(0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");l.dom.removeClass(e,"mce-active"),l.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:function(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;10>t;t++){e+="<tr>";for(var n=0;10>n;n++)e=e+'<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'"></a></td>';e+="</tr>"}return(e+="</table>")+'<div class="mce-text-center" role="presentation">1 x 1</div>'}(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t,n,o=e.target;"A"==o.tagName.toUpperCase()&&(t=parseInt(o.getAttribute("data-mce-x"),10),n=parseInt(o.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(t=9-t),t===this.lastX&&n===this.lastY||(m(t,n,e.control),this.lastX=t,this.lastY=n))},onclick:function(e){var t=this;"A"==e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),t.parent().cancel(),l.undoManager.transact(function(){i(t.lastX+1,t.lastY+1)}),l.addVisual())}}]}),l.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:d,onclick:p.tableProps}),l.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:d,cmd:"mceTableDelete"}),l.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:a("mceTableCellProps"),onPostRender:u},{text:"Merge cells",onclick:a("mceTableMergeCells"),onPostRender:u},{text:"Split cell",onclick:a("mceTableSplitCells"),onPostRender:u}]}),l.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:a("mceTableInsertRowBefore"),onPostRender:u},{text:"Insert row after",onclick:a("mceTableInsertRowAfter"),onPostRender:u},{text:"Delete row",onclick:a("mceTableDeleteRow"),onPostRender:u},{text:"Row properties",onclick:a("mceTableRowProps"),onPostRender:u},{text:"-"},{text:"Cut row",onclick:a("mceTableCutRow"),onPostRender:u},{text:"Copy row",onclick:a("mceTableCopyRow"),onPostRender:u},{text:"Paste row before",onclick:a("mceTablePasteRowBefore"),onPostRender:u},{text:"Paste row after",onclick:a("mceTablePasteRowAfter"),onPostRender:u}]}),l.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:a("mceTableInsertColBefore"),onPostRender:u},{text:"Insert column after",onclick:a("mceTableInsertColAfter"),onPostRender:u},{text:"Delete column",onclick:a("mceTableDeleteCol"),onPostRender:u}]});var b=[];s("inserttable tableprops deletetable | cell row column".split(" "),function(e){b.push("|"==e?{text:"-"}:l.menuItems[e])}),l.addButton("table",{type:"menubutton",title:"Table",menu:b}),r.isIE||l.on("click",function(e){"TABLE"===(e=e.target).nodeName&&(l.selection.select(e),l.nodeChanged())}),g.quirks=new t(l),l.on("Init",function(){g.cellSelection=new n(l)}),s({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t;t=l.dom.getParent(l.selection.getStart(),"th,td"),l.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():p.merge(e,t)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){f=e.cutRows()},mceTableCopyRow:function(e){f=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(f,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(f)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){l.addCommand(n,function(){var n=new e(l);n&&(t(n),l.execCommand("mceRepaint"),g.cellSelection.clear())})}),s({mceInsertTable:p.table,mceTableProps:function(){p.table(!0)},mceTableRowProps:p.row,mceTableCellProps:p.cell},function(e,t){l.addCommand(t,function(t,n){e(n)})}),!1!==l.settings.table_tab_navigation&&l.on("keydown",function(t){var n,o,a;9==t.keyCode&&(n=l.dom.getParent(l.selection.getStart(),"th,td"))&&(t.preventDefault(),o=new e(l),a=t.shiftKey?-1:1,l.undoManager.transact(function(){!o.moveRelIdx(n,a)&&a>0&&(o.insertRow(),o.refresh(),o.moveRelIdx(n,a))}))}),g.insertTable=i})})}(this);
\ No newline at end of file
+"use strict";!function(e,t){function n(e,n,a){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(n===t)throw"invalid module definition, dependencies must be specified";if(a===t)throw"invalid module definition, definition function must be specified";!function(e,t){for(var n,a=[],r=0;r<e.length;++r){if(!(n=l[e[r]]||o(e[r])))throw"module definition dependecy not found: "+e[r];a.push(n)}t.apply(null,a)}(n,function(){l[e]=a.apply(null,arguments)})}function o(t){for(var n=e,o=t.split(/[.\/]/),l=0;l<o.length;++l){if(!n[o[l]])return;n=n[o[l]]}return n}var l={};n("tinymce/tableplugin/TableGrid",["tinymce/util/Tools","tinymce/Env"],function(e,n){function o(e,t){return parseInt(e.getAttribute(t)||1,10)}var l=e.each;return function(a,r){function i(){var e=0;v=[],y=0,l(["thead","tbody","tfoot"],function(t){var n=N.select("> "+t+" tr",r);l(n,function(n,a){a+=e,l(N.select("> td, > th",n),function(e,n){var l,r,i,s;if(v[a])for(;v[a][n];)n++;for(i=o(e,"rowspan"),s=o(e,"colspan"),r=a;a+i>r;r++)for(v[r]||(v[r]=[]),l=n;n+s>l;l++)v[r][l]={part:t,real:r==a&&l==n,elm:e,rowspan:i,colspan:s};y=Math.max(y,n+1)})}),e+=n.length})}function s(e,t){return(e=e.cloneNode(t)).removeAttribute("id"),e}function c(e,t){var n;return(n=v[t])?n[e]:void 0}function d(e,t,n){e&&(1===(n=parseInt(n,10))?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function u(e){return e&&(N.hasClass(e.elm,"mce-item-selected")||e==C)}function m(){var e=[];return l(r.rows,function(t){l(t.cells,function(n){return N.hasClass(n,"mce-item-selected")||C&&n==C.elm?(e.push(t),!1):void 0})}),e}function f(t){var o,r={};return!1!==a.settings.table_clone_elements&&(r=e.makeMap((a.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),e.walk(t,function(e){var a;return 3==e.nodeType?(l(N.getParents(e.parentNode,null,t).reverse(),function(e){r[e.nodeName]&&(e=s(e,!1),o?a&&a.appendChild(e):o=a=e,a=e)}),a&&(a.innerHTML=n.ie?"&nbsp;":'<br data-mce-bogus="1" />'),!1):void 0},"childNodes"),d(t=s(t,!1),"rowSpan",1),d(t,"colSpan",1),o?t.appendChild(o):(!n.ie||n.ie>10)&&(t.innerHTML='<br data-mce-bogus="1" />'),t}function g(){var e,t=N.createRng();return l(N.select("tr",r),function(e){0===e.cells.length&&N.remove(e)}),0===N.select("tr",r).length?(t.setStartBefore(r),t.setEndBefore(r),R.setRng(t),void N.remove(r)):(l(N.select("thead,tbody,tfoot",r),function(e){0===e.rows.length&&N.remove(e)}),i(),void(x&&(e=v[Math.min(v.length-1,x.y)],e&&(R.select(e[Math.min(e.length-1,x.x)].elm,!0),R.collapse(!0)))))}function p(e,t,n,o){var l,a,r,i,s;for(l=v[t][e].elm.parentNode,r=1;n>=r;r++)if(l=N.getNext(l,"tr")){for(a=e;a>=0;a--)if((s=v[t+r][a].elm).parentNode==l){for(i=1;o>=i;i++)N.insertAfter(f(s),s);break}if(-1==a)for(i=1;o>=i;i++)l.insertBefore(f(l.cells[0]),l.cells[0])}}function b(){l(v,function(e,t){l(e,function(e,n){var l,a,r;if(u(e)&&(l=o(e=e.elm,"colspan"),a=o(e,"rowspan"),l>1||a>1)){for(d(e,"rowSpan",1),d(e,"colSpan",1),r=0;l-1>r;r++)N.insertAfter(f(e),e);p(n,t,a-1,l)}})})}function h(e){var t;return l(v,function(n,o){return l(n,function(n,l){return n.elm==e?(t={x:l,y:o},!1):void 0}),!t}),t}var v,y,x,w,C,T,S,R=a.selection,N=R.dom;r=r||N.getParent(R.getStart(),"table"),i(),(C=N.getParent(R.getStart(),"th,td"))&&(x=h(C),T=S=0,l(v,function(e,t){l(e,function(e,n){var o,l;u(e)&&(e=v[t][n],n>T&&(T=n),t>S&&(S=t),e.real&&(o=e.colspan-1,l=e.rowspan-1,o&&n+o>T&&(T=n+o),l&&t+l>S&&(S=t+l)))})}),w={x:T,y:S},C=c(x.x,x.y)),e.extend(this,{deleteTable:function(){var e=N.createRng();e.setStartAfter(r),e.setEndAfter(r),R.setRng(e),N.remove(r)},split:b,merge:function(t,n,o){var a,r,s,m,f,p,y,C,T,S,R;if(t?(m=(r=(a=h(t)).x)+(n-1),f=(s=a.y)+(o-1)):(x=w=null,l(v,function(e,t){l(e,function(e,n){u(e)&&(x||(x={x:n,y:t}),w={x:n,y:t})})}),x&&(r=x.x,s=x.y,m=w.x,f=w.y)),C=c(r,s),T=c(m,f),C&&T&&C.part==T.part){for(b(),i(),d(C=c(r,s).elm,"colSpan",m-r+1),d(C,"rowSpan",f-s+1),y=s;f>=y;y++)for(p=r;m>=p;p++)v[y]&&v[y][p]&&(t=v[y][p].elm)!=C&&(S=e.grep(t.childNodes),l(S,function(e){C.appendChild(e)}),S.length&&(S=e.grep(C.childNodes),R=0,l(S,function(e){"BR"==e.nodeName&&N.getAttrib(e,"data-mce-bogus")&&R++<S.length-1&&C.removeChild(e)})),N.remove(t));g()}},insertRow:function(e){var n,a,r,i,c,m,g,p,b;if(l(v,function(t,o){return l(t,function(t){return(!u(t)||(t=t.elm,c=t.parentNode,m=s(c,!1),n=o,!e))&&void 0}),e?!n:void 0}),n!==t){for(i=0;i<v[0].length;i++)if(v[n][i]&&(a=v[n][i].elm)!=r){if(e){if(n>0&&v[n-1][i]&&(b=o(p=v[n-1][i].elm,"rowSpan"))>1){d(p,"rowSpan",b+1);continue}}else if((b=o(a,"rowspan"))>1){d(a,"rowSpan",b+1);continue}d(g=f(a),"colSpan",a.colSpan),m.appendChild(g),r=a}m.hasChildNodes()&&(e?c.parentNode.insertBefore(m,c):N.insertAfter(m,c))}},insertCol:function(e){var t,n;l(v,function(n){return l(n,function(n,o){return(!u(n)||(t=o,!e))&&void 0}),e?!t:void 0}),l(v,function(l,a){var r,i,s;l[t]&&(r=l[t].elm)!=n&&(s=o(r,"colspan"),i=o(r,"rowspan"),1==s?e?(r.parentNode.insertBefore(f(r),r),p(t,a,i-1,s)):(N.insertAfter(f(r),r),p(t,a,i-1,s)):d(r,"colSpan",r.colSpan+1),n=r)})},deleteCols:function(){var t=[];l(v,function(n){l(n,function(n,a){u(n)&&-1===e.inArray(t,a)&&(l(v,function(e){var t,n=e[a].elm;(t=o(n,"colSpan"))>1?d(n,"colSpan",t-1):N.remove(n)}),t.push(a))})}),g()},deleteRows:function(){var e;e=m(),l(e.reverse(),function(e){var t,n,a;l((t=e).cells,function(e){var t=o(e,"rowSpan");t>1&&(d(e,"rowSpan",t-1),p((n=h(e)).x,n.y,1,1))}),n=h(t.cells[0]),l(v[n.y],function(e){var t;(e=e.elm)!=a&&(1>=(t=o(e,"rowSpan"))?N.remove(e):d(e,"rowSpan",t-1),a=e)})}),g()},cutRows:function(){var e=m();return N.remove(e),g(),e},copyRows:function(){var e=m();return l(e,function(t,n){e[n]=s(t,!0)}),e},pasteRows:function(e,t){var n=m(),o=n[t?0:n.length-1],a=o.cells.length;e&&(l(v,function(e){var t;return a=0,l(e,function(e){e.real&&(a+=e.colspan),e.elm.parentNode==o&&(t=1)}),!t&&void 0}),t||e.reverse(),l(e,function(e){var n,l,r=e.cells.length;for(n=0;r>n;n++)d(l=e.cells[n],"colSpan",1),d(l,"rowSpan",1);for(n=r;a>n;n++)e.appendChild(f(e.cells[r-1]));for(n=a;r>n;n++)N.remove(e.cells[n]);t?o.parentNode.insertBefore(e,o):N.insertAfter(e,o)}),N.removeClass(N.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))},getPos:h,setStartCell:function(e){x=h(e)},setEndCell:function(e){var t,n,o,l,a,r,i,s,c,d;if(w=h(e),x&&w){for(t=Math.min(x.x,w.x),n=Math.min(x.y,w.y),a=o=Math.max(x.x,w.x),r=l=Math.max(x.y,w.y),d=n;r>=d;d++)(e=v[d][t]).real||t-(e.colspan-1)<t&&(t-=e.colspan-1);for(c=t;a>=c;c++)(e=v[n][c]).real||n-(e.rowspan-1)<n&&(n-=e.rowspan-1);for(d=n;l>=d;d++)for(c=t;o>=c;c++)(e=v[d][c]).real&&((i=e.colspan-1)&&c+i>a&&(a=c+i),(s=e.rowspan-1)&&d+s>r&&(r=d+s));for(N.removeClass(N.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),d=n;r>=d;d++)for(c=t;a>=c;c++)v[d][c]&&N.addClass(v[d][c].elm,"mce-item-selected")}},moveRelIdx:function(e,t){var n,o,l;o=(n=h(e)).y*y+n.x;do{if(!(l=c((o+=t)%y,Math.floor(o/y))))break;if(l.elm!=e)return R.select(l.elm,!0),N.isEmpty(l.elm)&&R.collapse(!0),!0}while(l.elm==e);return!1},refresh:i})}}),n("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/Env","tinymce/util/Tools"],function(e,t,n){function o(e,t){return parseInt(e.getAttribute(t)||1,10)}var l=n.each;return function(n){function a(){n.on("KeyDown",function(e){var t,o,l=n.dom;37!=e.keyCode&&38!=e.keyCode||(t=n.selection.getRng(),(o=l.getParent(t.startContainer,"table"))&&n.getBody().firstChild==o&&function(e,t){var n,o=t.ownerDocument,l=o.createRange();return l.setStartBefore(t),l.setEnd(e.endContainer,e.endOffset),(n=o.createElement("body")).appendChild(l.cloneContents()),0===n.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}(t,o)&&((t=l.createRng()).setStartBefore(o),t.setEndBefore(o),n.selection.setRng(t),e.preventDefault()))})}function r(){n.on("KeyDown SetContent VisualAid",function(){var e;for(e=n.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&("BR"==e.tagName||!e.getAttribute("data-mce-bogus")))break;e&&"TABLE"==e.nodeName&&(n.settings.forced_root_block?n.dom.add(n.getBody(),n.settings.forced_root_block,n.settings.forced_root_block_attrs,t.ie&&t.ie<11?"&nbsp;":'<br data-mce-bogus="1" />'):n.dom.add(n.getBody(),"br",{"data-mce-bogus":"1"}))}),n.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||" "==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&n.dom.remove(t)})}n.on("keydown",function(t){if((t.keyCode==e.DELETE||t.keyCode==e.BACKSPACE)&&!t.isDefaultPrevented()){var o=n.dom.getParent(n.selection.getStart(),"table");if(o){for(var l=n.dom.select("td,th",o),a=l.length;a--;)if(!n.dom.hasClass(l[a],"mce-item-selected"))return;t.preventDefault(),n.execCommand("mceTableDelete")}}}),t.webkit&&(function(){function t(t){function a(e,o){var l=e?"previousSibling":"nextSibling",c=n.dom.getParent(o,"tr"),d=c[l];if(d)return s(0,o,d,e),t.preventDefault(),!0;var u=n.dom.getParent(c,"table"),m=c.parentNode,f=m.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var g=function(e,t,o,l){var a=n.dom.select(">"+l,t),r=a.indexOf(o);if(e&&0===r||!e&&r===a.length-1)return function(e,t){var o=e?"thead":"tfoot",l=n.dom.select(">"+o,t);return 0!==l.length?l[0]:null}(e,t);if(-1===r){var i="thead"===o.tagName.toLowerCase()?0:a.length-1;return a[i]}return a[r+(e?-1:1)]}(e,u,m,"tbody");if(null!==g)return function(e,n,o){var l=r(n,e);return l&&s(0,o,l,e),t.preventDefault(),!0}(e,g,o)}return function(e,o,l,s){var c=s[l];if(c)return i(c),!0;var d=n.dom.getParent(s,"td,th");return d?a(e,d):(i(r(o,!e)),t.preventDefault(),!1)}(e,c,l,u)}function r(e,t){var o=e&&e[t?"lastChild":"firstChild"];return o&&"BR"===o.nodeName?n.dom.getParent(o,"td,th"):o}function i(e){n.selection.setCursorLocation(e,0)}function s(e,t,a,s){var c=function(e,t){var n=0,a=0;return l(e.children,function(e,l){return n+=o(e,"colspan"),a=l,!(n>t)&&void 0}),a}(a,function(e){for(var t=0,n=e;n.previousSibling;)t+=o(n=n.previousSibling,"colspan");return t}(n.dom.getParent(t,"td,th"))),d=a.childNodes[c];i(r(d,s)||d)}function c(e){var t,o,l=n.selection.getNode(),a=n.dom.getParent(l,"td,th"),r=n.dom.getParent(e,"td,th");return a&&a!==r&&(t=a,o=r,n.dom.getParent(t,"TABLE")===n.dom.getParent(o,"TABLE"))}var d=t.keyCode;if((d==e.UP||d==e.DOWN)&&function(e){var t=e.selection.getNode();return null!==e.dom.getParent(t,"tr")}(n)){var u=n.selection.getNode();setTimeout(function(){c(u)&&a(!t.shiftKey&&d===e.UP,u)},0)}}n.on("KeyDown",function(e){t(e)})}(),function(){function e(){var e=n.selection.getRng(),t=n.selection.getNode(),o=n.dom.getParent(e.startContainer,"TD,TH");if(function(e,t,n,o){var l,a,r,i=e.dom.getParent(t.startContainer,"TABLE");return i&&(l=i.parentNode),a=3==t.startContainer.nodeType&&0===t.startOffset&&0===t.endOffset&&o&&("TR"==n.nodeName||n==l),r=("TD"==n.nodeName||"TH"==n.nodeName)&&!o,a||r}(n,e,t,o)){o||(o=t);for(var l=o.lastChild;l.lastChild;)l=l.lastChild;3==l.nodeType&&(e.setEnd(l,l.data.length),n.selection.setRng(e))}}n.on("KeyDown",function(){e()}),n.on("MouseDown",function(t){2!=t.button&&e()})}()),t.gecko&&(a(),r()),t.ie>10&&(a(),r())}}),n("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(e,t,n){return function(o){function l(e){o.getBody().style.webkitUserSelect="",(e||u)&&(o.dom.removeClass(o.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),u=!1)}function a(t){var n,l,a=t.target;if(!c&&i&&(r||a!=i)&&("TD"==a.nodeName||"TH"==a.nodeName)){(l=d.getParent(a,"table"))==s&&(r||((r=new e(o,l)).setStartCell(i),o.getBody().style.webkitUserSelect="none"),r.setEndCell(a),u=!0),n=o.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(e){}t.preventDefault()}}var r,i,s,c,d=o.dom,u=!0;return o.on("MouseDown",function(e){2==e.button||c||(l(),i=d.getParent(e.target,"td,th"),s=d.getParent(i,"table"))}),o.on("mouseover",a),o.on("remove",function(){d.unbind(o.getDoc(),"mouseover",a)}),o.on("MouseUp",function(){function e(e,o){var a=new t(e,e);do{if(3==e.nodeType&&0!==n.trim(e.nodeValue).length)return void(o?l.setStart(e,0):l.setEnd(e,e.nodeValue.length));if("BR"==e.nodeName)return void(o?l.setStartBefore(e):l.setEndBefore(e))}while(e=o?a.next():a.prev())}var l,a,c,u,m,f=o.selection;if(i){if(r&&(o.getBody().style.webkitUserSelect=""),(a=d.select("td.mce-item-selected,th.mce-item-selected")).length>0){l=d.createRng(),u=a[0],l.setStartBefore(u),l.setEndAfter(u),e(u,1),c=new t(u,d.getParent(a[0],"table"));do{if("TD"==u.nodeName||"TH"==u.nodeName){if(!d.hasClass(u,"mce-item-selected"))break;m=u}}while(u=c.next());e(m),f.setRng(l)}o.nodeChanged(),i=r=s=null}}),o.on("KeyUp Drop SetContent",function(e){l("setcontent"==e.type),i=r=s=null,c=!1}),o.on("ObjectResizeStart ObjectResized",function(e){c="objectresized"!=e.type}),{clear:l}}}),n("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(e,t){var n=e.each;return function(o){function l(){var e=o.settings.color_picker_callback;return e?function(){var t=this;e.call(o,function(e){t.value(e).fire("change")},t.value())}:void 0}function a(e){return{title:"Advanced",type:"form",defaults:{onchange:function(){d(e,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:l()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:l()}]}]}}function r(e){return e?e.replace(/px$/,""):""}function i(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function s(e){n("left center right".split(" "),function(t){o.formatter.remove("align"+t,{},e)})}function c(t,n,o){return function t(o,l){return l=l||[],e.each(o,function(e){var o={text:e.text||e.title};e.menu?o.menu=t(e.menu):(o.value=e.value,n&&n(o)),l.push(o)}),l}(t,o||[])}function d(e,t,n){var o=t.toJSON(),l=e.parseStyle(o.style);n?(t.find("#borderColor").value(l["border-color"]||"")[0].fire("change"),t.find("#backgroundColor").value(l["background-color"]||"")[0].fire("change")):(l["border-color"]=o.borderColor,l["background-color"]=o.backgroundColor),t.find("#style").value(e.serializeStyle(e.parseStyle(e.serializeStyle(l))))}function u(e,t,n){var o=e.parseStyle(e.getAttrib(n,"style"));o["border-color"]&&(t.borderColor=o["border-color"]),o["background-color"]&&(t.backgroundColor=o["background-color"]),t.style=e.serializeStyle(o)}var m=this;m.tableProps=function(){m.table(!0)},m.table=function(l){function m(){var n;d(v,this),y=e.extend(y,this.toJSON()),e.each("backgroundColor borderColor".split(" "),function(e){delete y[e]}),!1===y.class&&delete y.class,o.undoManager.transact(function(){if(f||(f=o.plugins.table.insertTable(y.cols||1,y.rows||1)),""!==y.d3){var e=f.getElementsByTagName("tr")[0].getElementsByTagName("td");Array.from(e).forEach(function(e){var t=document.createElement("th");t.innerHTML=e.innerHTML,e.parentNode.replaceChild(t,e)}),y.class.includes("d3")||(y.class=y.class+" d3")}else{e=f.getElementsByTagName("tr")[0].getElementsByTagName("th");Array.from(e).forEach(function(e){var t=document.createElement("td");t.innerHTML=e.innerHTML,e.parentNode.replaceChild(t,e)}),y.class.includes("d3")&&(y.class=y.class.replace(" d3",""))}o.dom.setAttribs(f,{cellspacing:y.cellspacing,cellpadding:y.cellpadding,border:y.border,style:y.style,class:y.class}),v.getAttrib(f,"width")?v.setAttrib(f,"width",r(y.width)):v.setStyle(f,"width",i(y.width)),y.d3?v.setAttrib(f,"data-d3-chart",y.d3):v.setAttrib(f,"data-d3-chart",null),v.setStyle(f,"height",i(y.height)),(n=v.select("caption",f)[0])&&!y.caption&&v.remove(n),!n&&y.caption&&((n=v.create("caption")).innerHTML=t.ie?" ":'<br data-mce-bogus="1"/>',f.insertBefore(n,f.firstChild)),s(f),y.align&&o.formatter.apply("align"+y.align,{},f),o.focus(),o.addVisual()})}var f,g,p,b,h,v=o.dom,y={};!0===l?(f=v.getParent(o.selection.getStart(),"table"))&&(y={width:r(v.getStyle(f,"width")||v.getAttrib(f,"width")),height:r(v.getStyle(f,"height")||v.getAttrib(f,"height")),cellspacing:f?v.getAttrib(f,"cellspacing"):"",cellpadding:f?v.getAttrib(f,"cellpadding"):"",border:f?v.getAttrib(f,"border"):"",caption:!!v.select("caption",f)[0],class:v.getAttrib(f,"class"),d3:v.getAttrib(f,"data-d3-chart")},n("left center right".split(" "),function(e){o.formatter.matchNode(f,"align"+e)&&(y.align=e)})):(g={label:"Cols",name:"cols"},p={label:"Rows",name:"rows"}),o.settings.table_class_list&&(y.class&&(y.class=y.class.replace(/\s*mce\-item\-table\s*/g,"")),b={name:"class",type:"listbox",label:"Class",values:c(o.settings.table_class_list,function(e){e.value&&(e.textStyle=function(){return o.formatter.getCssText({block:"table",classes:[e.value]})})})}),h={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[g,p,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{type:"label",text:"Note: When using a D3 table type, be sure that the first row of your table contains the table headers."},{label:"D3 Table",name:"d3",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Donut",value:"donut"},{text:"Bar",value:"bar"},{text:"Pie",value:"pie"}]},b]},!1!==o.settings.table_advtab?(u(v,y,f),o.windowManager.open({title:"Table properties",data:y,bodyType:"tabpanel",body:[{title:"General",type:"form",items:h},a(v)],onsubmit:m})):o.windowManager.open({title:"Table properties",data:y,body:h,onsubmit:m})},m.merge=function(e,t){o.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var n=this.toJSON();o.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})},m.cell=function(){function t(){d(g,this),m=e.extend(m,this.toJSON()),o.undoManager.transact(function(){n(p,function(e){var t;o.dom.setAttribs(e,{scope:m.scope,style:m.style,class:m.class}),o.dom.setStyles(e,{width:i(m.width),height:i(m.height)}),m.type&&e.nodeName.toLowerCase()!=m.type&&(e=g.rename(e,m.type)),s(e),m.align&&o.formatter.apply("align"+m.align,{},e),t=e,n("top middle bottom".split(" "),function(e){o.formatter.remove("valign"+e,{},t)}),m.valign&&o.formatter.apply("valign"+m.valign,{},e)}),o.focus()})}var l,m,f,g=o.dom,p=[];if(p=o.dom.select("td.mce-item-selected,th.mce-item-selected"),l=o.dom.getParent(o.selection.getStart(),"td,th"),!p.length&&l&&p.push(l),l=l||p[0]){(m={width:r(g.getStyle(l,"width")||g.getAttrib(l,"width")),height:r(g.getStyle(l,"height")||g.getAttrib(l,"height")),scope:g.getAttrib(l,"scope"),class:g.getAttrib(l,"class")}).type=l.nodeName.toLowerCase(),n("left center right".split(" "),function(e){o.formatter.matchNode(l,"align"+e)&&(m.align=e)}),n("top middle bottom".split(" "),function(e){o.formatter.matchNode(l,"valign"+e)&&(m.valign=e)}),o.settings.table_cell_class_list&&(f={name:"class",type:"listbox",label:"Class",values:c(o.settings.table_cell_class_list,function(e){e.value&&(e.textStyle=function(){return o.formatter.getCssText({block:"td",classes:[e.value]})})})});var b={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},f]};!1!==o.settings.table_cell_advtab?(u(g,m,l),o.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:m,body:[{title:"General",type:"form",items:b},a(g)],onsubmit:t})):o.windowManager.open({title:"Cell properties",data:m,body:b,onsubmit:t})}},m.row=function(){function t(){var t,l,a;d(h,this),p=e.extend(p,this.toJSON()),o.undoManager.transact(function(){var e=p.type;n(v,function(n){o.dom.setAttribs(n,{scope:p.scope,style:p.style,class:p.class}),o.dom.setStyles(n,{height:i(p.height)}),e!=n.parentNode.nodeName.toLowerCase()&&(t=h.getParent(n,"table"),l=n.parentNode,(a=h.select(e,t)[0])||(a=h.create(e),t.firstChild?t.insertBefore(a,t.firstChild):t.appendChild(a)),a.appendChild(n),l.hasChildNodes()||h.remove(l)),s(n),p.align&&o.formatter.apply("align"+p.align,{},n)}),o.focus()})}var l,m,f,g,p,b,h=o.dom,v=[];l=o.dom.getParent(o.selection.getStart(),"table"),m=o.dom.getParent(o.selection.getStart(),"td,th"),n(l.rows,function(e){n(e.cells,function(t){return h.hasClass(t,"mce-item-selected")||t==m?(v.push(e),!1):void 0})}),(f=v[0])&&((p={height:r(h.getStyle(f,"height")||h.getAttrib(f,"height")),scope:h.getAttrib(f,"scope"),class:h.getAttrib(f,"class")}).type=f.parentNode.nodeName.toLowerCase(),n("left center right".split(" "),function(e){o.formatter.matchNode(f,"align"+e)&&(p.align=e)}),o.settings.table_row_class_list&&(g={name:"class",type:"listbox",label:"Class",values:c(o.settings.table_row_class_list,function(e){e.value&&(e.textStyle=function(){return o.formatter.getCssText({block:"tr",classes:[e.value]})})})}),b={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},g]},!1!==o.settings.table_row_advtab?(u(h,p,f),o.windowManager.open({title:"Row properties",data:p,bodyType:"tabpanel",body:[{title:"General",type:"form",items:b},a(h)],onsubmit:t})):o.windowManager.open({title:"Row properties",data:p,body:b,onsubmit:t}))}}}),n("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(e,t,n,o,l,a,r,i){var s=l.each;i.add("plugin_edu.msu.anr.tinymce_table2",function(l){function a(e){return function(){l.execCommand(e)}}function i(e,t){var n,o,a,i;for(a='<table id="__mce"><tbody>',n=0;t>n;n++){for(a+="<tr>",o=0;e>o;o++)a=a+"<td>"+(r.ie?" ":"<br>")+"</td>";a+="</tr>"}return a+="</tbody></table>",l.undoManager.transact(function(){l.insertContent(a),i=l.dom.get("__mce"),l.dom.setAttrib(i,"id",null),l.dom.setAttribs(i,l.settings.table_default_attributes||{}),l.dom.setStyles(i,l.settings.table_default_styles||{})}),i}function c(e,t){function n(){e.disabled(!l.dom.getParent(l.selection.getStart(),t)),l.selection.selectorChanged(t,function(t){e.disabled(!t)})}l.initialized?n():l.on("init",n)}function d(){c(this,"table")}function u(){c(this,"td,th")}function m(e,t,n){var o,a,r,i,s,c=n.getEl().getElementsByTagName("table")[0],d=n.isRtl()||"tl-tr"==n.parent().rel;for(c.nextSibling.innerHTML=e+1+" x "+(t+1),d&&(e=9-e),a=0;10>a;a++)for(o=0;10>o;o++)i=c.rows[a].childNodes[o].firstChild,s=(d?o>=e:e>=o)&&t>=a,l.dom.toggleClass(i,"mce-active",s),s&&(r=i);return r.parentNode}var f,g=this,p=new o(l);!1===l.settings.table_grid?l.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:p.table}):l.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),p.table())},onshow:function(){m(0,0,this.menu.items()[0])},onhide:function(){var e=this.menu.items()[0].getEl().getElementsByTagName("a");l.dom.removeClass(e,"mce-active"),l.dom.addClass(e[0],"mce-active")},menu:[{type:"container",html:function(){var e="";e='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var t=0;10>t;t++){e+="<tr>";for(var n=0;10>n;n++)e=e+'<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*t+n)+'" href="#" data-mce-x="'+n+'" data-mce-y="'+t+'"></a></td>';e+="</tr>"}return(e+="</table>")+'<div class="mce-text-center" role="presentation">1 x 1</div>'}(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var t,n,o=e.target;"A"==o.tagName.toUpperCase()&&(t=parseInt(o.getAttribute("data-mce-x"),10),n=parseInt(o.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(t=9-t),t===this.lastX&&n===this.lastY||(m(t,n,e.control),this.lastX=t,this.lastY=n))},onclick:function(e){var t=this;"A"==e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),t.parent().cancel(),l.undoManager.transact(function(){i(t.lastX+1,t.lastY+1)}),l.addVisual())}}]}),l.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:d,onclick:p.tableProps}),l.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:d,cmd:"mceTableDelete"}),l.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:a("mceTableCellProps"),onPostRender:u},{text:"Merge cells",onclick:a("mceTableMergeCells"),onPostRender:u},{text:"Split cell",onclick:a("mceTableSplitCells"),onPostRender:u}]}),l.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:a("mceTableInsertRowBefore"),onPostRender:u},{text:"Insert row after",onclick:a("mceTableInsertRowAfter"),onPostRender:u},{text:"Delete row",onclick:a("mceTableDeleteRow"),onPostRender:u},{text:"Row properties",onclick:a("mceTableRowProps"),onPostRender:u},{text:"-"},{text:"Cut row",onclick:a("mceTableCutRow"),onPostRender:u},{text:"Copy row",onclick:a("mceTableCopyRow"),onPostRender:u},{text:"Paste row before",onclick:a("mceTablePasteRowBefore"),onPostRender:u},{text:"Paste row after",onclick:a("mceTablePasteRowAfter"),onPostRender:u}]}),l.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:a("mceTableInsertColBefore"),onPostRender:u},{text:"Insert column after",onclick:a("mceTableInsertColAfter"),onPostRender:u},{text:"Delete column",onclick:a("mceTableDeleteCol"),onPostRender:u}]});var b=[];s("inserttable tableprops deletetable | cell row column".split(" "),function(e){b.push("|"==e?{text:"-"}:l.menuItems[e])}),l.addButton("table",{type:"menubutton",title:"Table",menu:b}),r.isIE||l.on("click",function(e){"TABLE"===(e=e.target).nodeName&&(l.selection.select(e),l.nodeChanged())}),g.quirks=new t(l),l.on("Init",function(){g.cellSelection=new n(l)}),s({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t;t=l.dom.getParent(l.selection.getStart(),"th,td"),l.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():p.merge(e,t)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){f=e.cutRows()},mceTableCopyRow:function(e){f=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(f,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(f)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){l.addCommand(n,function(){var n=new e(l);n&&(t(n),l.execCommand("mceRepaint"),g.cellSelection.clear())})}),s({mceInsertTable:p.table,mceTableProps:function(){p.table(!0)},mceTableRowProps:p.row,mceTableCellProps:p.cell},function(e,t){l.addCommand(t,function(t,n){e(n)})}),!1!==l.settings.table_tab_navigation&&l.on("keydown",function(t){var n,o,a;9==t.keyCode&&(n=l.dom.getParent(l.selection.getStart(),"th,td"))&&(t.preventDefault(),o=new e(l),a=t.shiftKey?-1:1,l.undoManager.transact(function(){!o.moveRelIdx(n,a)&&a>0&&(o.insertRow(),o.refresh(),o.moveRelIdx(n,a))}))}),g.insertTable=i})})}(this);
\ No newline at end of file
diff --git a/tiny_mce/youtube2/plugin.js b/tiny_mce/youtube2/plugin.js
index 246f921..acdd88a 100755
--- a/tiny_mce/youtube2/plugin.js
+++ b/tiny_mce/youtube2/plugin.js
@@ -3,11 +3,18 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_youtube2', function(editor
     function openInsertWindow() {
         let selectedNode = editor.selection.getNode();
         let videoId = '';
+        var responsive = false;
+        console.log(selectedNode.getAttribute('data-mce-p-data-isresponsive'));
+        console.log(responsive+1);
 
         // Get current ID if cursor's on a YouTube video
         if (isYoutubeNode(selectedNode)) {
-            videoId = parseVideoId(selectedNode.getAttribute('src'));
+            console.log(responsive+2);
+            videoId = parseVideoId(selectedNode.getAttribute('data-mce-p-src'));
+            responsive = (selectedNode.getAttribute('data-mce-p-data-isresponsive') === 'true');
+            console.log(responsive+3);
         }
+        console.log(responsive+4);
 
         editor.windowManager.open({
             title: 'Insert/Edit YouTube Video',
@@ -18,27 +25,27 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_youtube2', function(editor
                     label: 'Video URL or Code',
                     value: videoId
                 },
-                {name: 'responsive', type: 'checkbox', checked: false, text: 'Make Responsive'},
+                {name: 'responsive', type: 'checkbox', checked: responsive, text: 'Make Responsive'},
             ],
             onsubmit: function(e) {
                 let videoId = parseVideoId(e.data.videoUrlOrCode);
-                let responsive = e.data.responsive;
+                isresponsive = e.data.responsive;
                 if (videoId) {
-                    insertVideo(videoId, responsive);
+                    insertVideo(videoId, isresponsive);
                 }
             }
         });
     }
 
     function isYoutubeNode(node) {
-        let matchTag = node.tagName == 'IFRAME';
+        let matchTag = node.tagName == 'IMG';
         let srcSet = matchTag
-            && node.getAttribute('src') !== null
-            && node.getAttribute('src') !== "";
+            && node.getAttribute('data-mce-p-src') !== null
+            && node.getAttribute('data-mce-p-src') !== "";
         let srcYoutube = srcSet
             && (
-                node.getAttribute('src').includes('youtu.be')
-                || node.getAttribute('src').includes('youtube.com'));
+                node.getAttribute('data-mce-p-src').includes('youtu.be')
+                || node.getAttribute('data-mce-p-src').includes('youtube.com'));
 
         return matchTag && srcSet && srcYoutube;
     }
@@ -60,12 +67,13 @@ tinymce.PluginManager.add('plugin_edu.msu.anr.tinymce_youtube2', function(editor
     }
 
     function insertVideo(videoId, responsive) {
-        videoElement = editor.dom.createHTML('iframe', {width: "560", height: "315", src: "https://www.youtube.com/embed/"+videoId, frameborder:"0", allowfullscreen: "true"},'');
+        let selectedNode = editor.selection.getNode();
+        videoElement = editor.dom.createHTML('iframe', {width: "560", height: "315", src: "https://www.youtube.com/embed/"+videoId, frameborder:"0", allowfullscreen: "true", 'data-isResponsive': responsive},'');
 
         if(responsive){
             editor.insertContent(editor.dom.createHTML('div', {class: 'responsive-embed widescreen'}, videoElement));
         } else {
-            editor.insertContent('<iframe width="560" height="315" src="https://www.youtube.com/embed/'+videoId+'" frameborder="0" allowfullscreen></iframe>');
+            editor.setContent(videoElement);
         }
     }
 
diff --git a/tiny_mce/youtube2/plugin.min.js b/tiny_mce/youtube2/plugin.min.js
index f5b1cb7..fcaee7f 100644
--- a/tiny_mce/youtube2/plugin.min.js
+++ b/tiny_mce/youtube2/plugin.min.js
@@ -1 +1 @@
-tinymce.PluginManager.add("plugin_edu.msu.anr.tinymce_youtube2",function(e){function t(){let t=e.selection.getNode(),n="";(function(e){let t="IFRAME"==e.tagName,o=t&&null!==e.getAttribute("src")&&""!==e.getAttribute("src"),n=o&&(e.getAttribute("src").includes("youtu.be")||e.getAttribute("src").includes("youtube.com"));return t&&o&&n})(t)&&(n=o(t.getAttribute("src"))),e.windowManager.open({title:"Insert/Edit YouTube Video",body:[{type:"textbox",name:"videoUrlOrCode",label:"Video URL or Code",value:n},{name:"responsive",type:"checkbox",checked:!1,text:"Make Responsive"}],onsubmit:function(t){let n=o(t.data.videoUrlOrCode),u=t.data.responsive;n&&function(t,o){videoElement=e.dom.createHTML("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/"+t,frameborder:"0",allowfullscreen:"true"},""),o?e.insertContent(e.dom.createHTML("div",{class:"responsive-embed widescreen"},videoElement)):e.insertContent('<iframe width="560" height="315" src="https://www.youtube.com/embed/'+t+'" frameborder="0" allowfullscreen></iframe>')}(n,u)}})}function o(e){let t=e.match(/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\??v?=?))([^#\&\?]*).*/);if(null!=t&&11==t[7].length)return t[7];return!!new RegExp("^[a-zA-Z0-9]{11}$").test(e)&&e}e.addButton("youtube2",{image:"https://www.youtube.com/yts/img/favicon_144-vflWmzoXw.png",tooltip:"Insert YouTube Video",onclick:t}),e.addMenuItem("youtube2",{text:"YouTube Video",tooltip:"Insert YouTube Video",onclick:t,context:"insert"})});
\ No newline at end of file
+tinymce.PluginManager.add("plugin_edu.msu.anr.tinymce_youtube2",function(e){function t(){let t=e.selection.getNode(),n="";var i=!1;console.log(t.getAttribute("data-mce-p-data-isresponsive")),console.log(i+1),function(e){let t="IMG"==e.tagName,o=t&&null!==e.getAttribute("data-mce-p-src")&&""!==e.getAttribute("data-mce-p-src"),n=o&&(e.getAttribute("data-mce-p-src").includes("youtu.be")||e.getAttribute("data-mce-p-src").includes("youtube.com"));return t&&o&&n}(t)&&(console.log(i+2),n=o(t.getAttribute("data-mce-p-src")),i="true"===t.getAttribute("data-mce-p-data-isresponsive"),console.log(i+3)),console.log(i+4),e.windowManager.open({title:"Insert/Edit YouTube Video",body:[{type:"textbox",name:"videoUrlOrCode",label:"Video URL or Code",value:n},{name:"responsive",type:"checkbox",checked:i,text:"Make Responsive"}],onsubmit:function(t){let n=o(t.data.videoUrlOrCode);isresponsive=t.data.responsive,n&&function(t,o){e.selection.getNode();videoElement=e.dom.createHTML("iframe",{width:"560",height:"315",src:"https://www.youtube.com/embed/"+t,frameborder:"0",allowfullscreen:"true","data-isResponsive":o},""),o?e.insertContent(e.dom.createHTML("div",{class:"responsive-embed widescreen"},videoElement)):e.setContent(videoElement)}(n,isresponsive)}})}function o(e){let t=e.match(/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\??v?=?))([^#\&\?]*).*/);if(null!=t&&11==t[7].length)return t[7];return!!new RegExp("^[a-zA-Z0-9]{11}$").test(e)&&e}e.addButton("youtube2",{image:"https://www.youtube.com/yts/img/favicon_144-vflWmzoXw.png",tooltip:"Insert YouTube Video",onclick:t}),e.addMenuItem("youtube2",{text:"YouTube Video",tooltip:"Insert YouTube Video",onclick:t,context:"insert"})});
\ No newline at end of file
-- 
GitLab