AutorÃa | Ultima modificación | Ver Log |
YUI.add("moodle-atto_table-button",function(v,e){var m="atto_table",_="none",p="1",f="480px",l={CAPTION:"caption",CAPTIONPOSITION:"captionposition",HEADERS:"headers",ROWS:"rows",COLUMNS:"columns",SUBMIT:"submit",FORM:"atto_form",BORDERS:"borders",BORDERSIZE:"bordersize",BORDERSIZEUNIT:"px",BORDERCOLOUR:"bordercolour",BORDERSTYLE:"borderstyle",BACKGROUNDCOLOUR:"backgroundcolour",WIDTH:"customwidth",WIDTHUNIT:"%",AVAILABLECOLORS:"availablecolors",COLOURROW:"colourrow"},O={CAPTION:"."+l.CAPTION,CAPTIONPOSITION:"."+l.CAPTIONPOSITION,HEADERS:"."+l.HEADERS,ROWS:"."+l.ROWS,COLUMNS:"."+l.COLUMNS,SUBMIT:"."+l.SUBMIT,BORDERS:"."+l.BORDERS,BORDERSIZE:"."+l.BORDERSIZE,BORDERCOLOURS:"."+l.BORDERCOLOUR+' input[name="borderColour"]',SELECTEDBORDERCOLOUR:"."+l.BORDERCOLOUR+' input[name="borderColour"]:checked',BORDERSTYLE:"."+l.BORDERSTYLE,BACKGROUNDCOLOURS:"."+l.BACKGROUNDCOLOUR+' input[name="backgroundColour"]',SELECTEDBACKGROUNDCOLOUR:"."+l.BACKGROUNDCOLOUR+' input[name="backgroundColour"]:checked',FORM:".atto_form",WIDT
H:"."+l.WIDTH,AVAILABLECOLORS:"."+l.AVAILABLECOLORS};v.namespace("M.atto_table").Button=v.Base.create("button",v.M.editor_atto.EditorPlugin,[],{_currentSelection:null,_contextMenu:null,_lastTarget:null,_menuOptions:null,initializer:function(){var t=this.addButton({icon:"e/table",callback:this._displayTableEditor,tags:"table"});require(["editor_atto/events"],function(e){t.getDOMNode().addEventListener(e.eventTypes.attoButtonHighlightToggled,function(e){this._setAriaAttributes(e.detail.buttonName,e.detail.highlight)}.bind(this))}.bind(this)),v.UA.gecko&&(document.execCommand("enableInlineTableEditing",!1,!1),document.execCommand("enableObjectResizing",!1,!1))},_setAriaAttributes:function(e,t){e=this.buttons[e];e&&(t?(t=e.getAttribute("id"),e.setAttribute("aria-haspopup",!0),e.setAttribute("aria-controls",t+"_menu"),e.setAttribute("aria-expanded",!0)):(e.removeAttribute("aria-haspopup"),e.removeAttribute("aria-controls"),e.removeAttribute("aria-expanded")))},_displayDialogue:function(){this._currentSelection=th
is.get("host").getSelection(),!1===this._currentSelection||this._currentSelection.collapsed||(this.getDialogue({headerContent:M.util.get_string("createtable",m),focusAfterHide:!0,focusOnShowSelector:O.CAPTION,width:f}).set("bodyContent",this._getDialogueContent(!1)).show(),this._updateAvailableSettings())},_displayTableEditor:function(e){var t,o=this._getSuitableTableCell(),a=e.currentTarget.ancestor("button",!0);return o?(t=a.getAttribute("id"),a.setAttribute("aria-expanded",!0),e.tableCell=o,this._showTableMenu(e,t)):(a.removeAttribute("aria-expanded"),this._displayDialogue(e))},_stopAtContentEditableFilter:function(e){return this.editor.contains(e)},_getDialogueContent:function(e){var t=v.Handlebars.compile(
'<form class="{{CSS.FORM}}"><div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_caption">{{get_string "caption" component}}</label></div><div class="col-sm-8"><input type="text" class="form-control {{CSS.CAPTION}}" id="{{elementid}}_atto_table_caption" required /></div></div><div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_captionposition">{{get_string "captionposition" component}}</label></div><div class="col-sm-8"><select class="custom-select {{CSS.CAPTIONPOSITION}}" id="{{elementid}}_atto_table_captionposition"><option value=""></option><option value="top">{{get_string "top" "editor"}}</option><option value="bottom">{{get_string "bottom" "editor"}}</option></select></div></div><div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_headers">{{get_string "headers" component}}</label></div><div class="col-sm-8"><select class="custom-select {{CSS.HEADERS}}" id="{{elementid}}_atto_table_headers"><option value=
"columns">{{get_string "columns" component}}</option><option value="rows">{{get_string "rows" component}}</option><option value="both">{{get_string "both" component}}</option></select></div></div>{{#if nonedit}}<div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_rows">{{get_string "numberofrows" component}}</label></div><div class="col-sm-8"><input class="form-control w-auto {{CSS.ROWS}}" type="number" value="3" id="{{elementid}}_atto_table_rows" size="8" min="1" max="50"/></div></div><div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_columns" >{{get_string "numberofcolumns" component}}</label></div><div class="col-sm-8"><input class="form-control w-auto {{CSS.COLUMNS}}" type="number" value="3" id="{{elementid}}_atto_table_columns"size="8" min="1" max="20"/></div></div>{{/if}}{{#if allowStyling}}<fieldset><legend class="mdl-align">{{get_string "appearance" component}}</legend>{{#if allowBorders}}<div class="mb-1 mb-3 row"><div class="col-sm
-4"><label for="{{elementid}}_atto_table_borders">{{get_string "borders" component}}</label></div><div class="col-sm-8"><select name="borders" class="custom-select {{CSS.BORDERS}}" id="{{elementid}}_atto_table_borders"><option value="default">{{get_string "themedefault" component}}</option><option value="outer">{{get_string "outer" component}}</option><option value="all">{{get_string "all" component}}</option></select></div></div><div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_borderstyle">{{get_string "borderstyles" component}}</label></div><div class="col-sm-8"><select name="borderstyles" class="custom-select {{CSS.BORDERSTYLE}}" id="{{elementid}}_atto_table_borderstyle">{{#each borderStyles}}<option value="{{this}}">{{get_string this ../component}}</option>{{/each}}</select></div></div><div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_bordersize">{{get_string "bordersize" component}}</label></div><div class="col-sm-8"><div class="d-
flex flex-wrap align-items-center"><input name="bordersize" id="{{elementid}}_atto_table_bordersize" class="form-control w-auto mr-1 {{CSS.BORDERSIZE}}"type="number" value="1" size="8" min="1" max="50"/><label>{{CSS.BORDERSIZEUNIT}}</label></div></div></div><div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_bordercolour">{{get_string "bordercolour" component}}</label></div><div class="col-sm-8"><div id="{{elementid}}_atto_table_bordercolour"class="d-flex flex-wrap align-items-center {{CSS.BORDERCOLOUR}} {{CSS.AVAILABLECOLORS}}" size="1"><div class="tablebordercolor" style="background-color:transparent;color:transparent"><input id="{{../elementid}}_atto_table_bordercolour_-1"type="radio" class="m-0" name="borderColour" value="none" checked="checked"title="{{get_string "themedefault" component}}"></input><label for="{{../elementid}}_atto_table_bordercolour_-1" class="accesshide">{{get_string "themedefault" component}}</label></div>{{#each availableColours}}<div class="tablebo
rdercolor" style="background-color:{{this}};color:{{this}}"><input id="{{../elementid}}_atto_table_bordercolour_{{@index}}"type="radio" class="m-0" name="borderColour" value="{{this}}" title="{{this}}"><label for="{{../elementid}}_atto_table_bordercolour_{{@index}}" class="accesshide">{{this}}</label></div>{{/each}}</div></div></div>{{/if}}{{#if allowBackgroundColour}}<div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_backgroundcolour">{{get_string "backgroundcolour" component}}</label></div><div class="col-sm-8"><div id="{{elementid}}_atto_table_backgroundcolour"class="d-flex flex-wrap align-items-center {{CSS.BACKGROUNDCOLOUR}} {{CSS.AVAILABLECOLORS}}" size="1"><div class="tablebackgroundcolor" style="background-color:transparent;color:transparent"><input id="{{../elementid}}_atto_table_backgroundcolour_-1"type="radio" class="m-0" name="backgroundColour" value="none" checked="checked"title="{{get_string "themedefault" component}}"></input><label for="{{../elementid}}_atto
_table_backgroundcolour_-1" class="accesshide">{{get_string "themedefault" component}}</label></div>{{#each availableColours}}<div class="tablebackgroundcolor" style="background-color:{{this}};color:{{this}}"><input id="{{../elementid}}_atto_table_backgroundcolour_{{@index}}"type="radio" class="m-0" name="backgroundColour" value="{{this}}" title="{{this}}"><label for="{{../elementid}}_atto_table_backgroundcolour_{{@index}}" class="accesshide">{{this}}</label></div>{{/each}}</div></div></div>{{/if}}{{#if allowWidth}}<div class="mb-1 mb-3 row"><div class="col-sm-4"><label for="{{elementid}}_atto_table_width">{{get_string "width" component}}</label></div><div class="col-sm-8"><div class="d-flex flex-wrap align-items-center"><input name="width" id="{{elementid}}_atto_table_width" class="form-control w-auto mr-1 {{CSS.WIDTH}}" size="8" type="number" min="0" max="100"/><label>{{CSS.WIDTHUNIT}}</label></div></div></div>{{/if}}</fieldset>{{/if}}<div class="mdl-align"><br/>{{#if edit}}<button class="btn btn-secondary
submit" type="submit">{{get_string "updatetable" component}}</button>{{/if}}{{#if nonedit}}<button class="btn btn-secondary submit" type="submit">{{get_string "createtable" component}}</button>{{/if}}</div></form>'
),o=this.get("allowBorders");return this._content=v.Node.create(t({CSS:l,elementid:this.get("host").get("elementid"),component:m,edit:e,nonedit:!e,allowStyling:this.get("allowStyling"),allowBorders:o,borderStyles:this.get("borderStyles"),allowBackgroundColour:this.get("allowBackgroundColour"),availableColours:this.get("availableColors"),allowWidth:this.get("allowWidth")})),e?this._content.one(".submit").on("click",this._updateTable,this):this._content.one(".submit").on("click",this._setTable,this),o&&this._content.one('[name="borders"]').on("change",this._updateAvailableSettings,this),this._content},_updateAvailableSettings:function(){var e=this._content,t=e.one('[name="borders"]'),o=e.one('[name="borderstyles"]'),a=e.one('[name="bordersize"]'),e=e.all('[name="borderColour"]'),n="removeAttribute";t&&("default"===t.get("value")&&(n="setAttribute"),o&&o[n]("disabled"),a&&a[n]("disabled"),e&&e[n]("disabled"))},_getSuitableTableCell:function(){var e,o=null,t=this.get("host"),a=v.bind(this._stopAtContentEditableF
ilter,this);return t.getSelectedNodes().some(function(e){var t;if(e.ancestor("td, th, caption",!0,a))return(e=(o=e).ancestor("caption",!0,a))&&(t=e.get("parentNode"))&&(o=t.one("td, th")),!0}),o&&(e=t.getSelectionFromNode(o),t.setSelection(e)),o},_changeNodeType:function(e,t){var o=v.Node.create("<"+t+"></"+t+">");return o.setAttrs(e.getAttrs()),e.get("childNodes").each(function(e){o.append(e.remove())}),e.replace(o),o},_updateTable:function(e){var t,o,a,n,r,l,i,s,d;e.preventDefault(),this.getDialogue({focusAfterHide:null}).hide(),t=e.currentTarget.ancestor(O.FORM).one(O.CAPTION),o=e.currentTarget.ancestor(O.FORM).one(O.CAPTIONPOSITION),a=e.currentTarget.ancestor(O.FORM).one(O.HEADERS),d=e.currentTarget.ancestor(O.FORM).one(O.BORDERS),n=e.currentTarget.ancestor(O.FORM).one(O.BORDERSIZE),l=e.currentTarget.ancestor(O.FORM).one(O.SELECTEDBORDERCOLOUR),r=e.currentTarget.ancestor(O.FORM).one(O.BORDERSTYLE),i=e.currentTarget.ancestor(O.FORM).one(O.SELECTEDBACKGROUNDCOLOUR),e=e.currentTarget.ancestor(O.FORM).one(O.
WIDTH),s=this._lastTarget.ancestor("table"),this._setAppearance(s,{width:e,borders:d,borderColour:l,borderSize:n,borderStyle:r,backgroundColour:i}),(e=s.one("caption"))||(e=v.Node.create("<caption></caption>"),s.insert(e,0)),e.setHTML(t.get("value")),e.setStyle("caption-side",o.get("value")),e.getAttribute("style")||e.removeAttribute("style"),"rows"!==a.get("value")&&"both"!==a.get("value")||s.all("tr").each(function(e){var e=e.all("th, td"),t=e.shift();("TD"===t.get("tagName")?this._changeNodeType(t,"th"):t).setAttribute("scope","row"),e.each(function(e){"TH"===e.get("tagName")&&this._changeNodeType(e,"td").removeAttribute("scope")},this)},this),"columns"!==a.get("value")&&"both"!==a.get("value")||((d=s.all("tr")).shift().all("td, th").each(function(e){("TD"===e.get("tagName")?this._changeNodeType(e,"th"):e).setAttribute("scope","col")},this),d.each(function(e){e=e.all("th, td");"both"===a.get("value")&&e.shift(),e.each(function(e){"TH"===e.get("tagName")&&this._changeNodeType(e,"td").removeAttribute("scope
")},this)},this)),this.markUpdated()},_setTable:function(e){var t,c,u,b,g,h,o,a,n,m,r,l,i,_,s,d;if(e.preventDefault(),this.getDialogue({focusAfterHide:null}).hide(),t=e.currentTarget.ancestor(O.FORM).one(O.CAPTION),d=e.currentTarget.ancestor(O.FORM).one(O.CAPTIONPOSITION),c=e.currentTarget.ancestor(O.FORM).one(O.BORDERS),u=e.currentTarget.ancestor(O.FORM).one(O.BORDERSIZE),g=e.currentTarget.ancestor(O.FORM).one(O.SELECTEDBORDERCOLOUR),b=e.currentTarget.ancestor(O.FORM).one(O.BORDERSTYLE),m=e.currentTarget.ancestor(O.FORM).one(O.SELECTEDBACKGROUNDCOLOUR),h=e.currentTarget.ancestor(O.FORM).one(O.ROWS),o=e.currentTarget.ancestor(O.FORM).one(O.COLUMNS),a=e.currentTarget.ancestor(O.FORM).one(O.HEADERS),e=e.currentTarget.ancestor(O.FORM).one(O.WIDTH),this.get("host").setSelection(this._currentSelection),i="\n",n='<br/>\n<table id="'+(_=v.guid())+'">'+i,s="",n+="<caption"+(s=d.get("value")?' style="caption-side: '+d.get("value")+'"':s)+">"+v.Escape.html(t.get("value"))+"</caption>"+i,r=0,"columns"===a.get("value")|
|"both"===a.get("value")){for(r=1,n+="<thead>\n<tr>\n",l=0;l<parseInt(o.get("value"),10);l++)n+='<th scope="col"></th>\n';n+="</tr>\n</thead>\n"}for(n+="<tbody>\n";r<parseInt(h.get("value"),10);r++){for(n+="<tr>\n",l=0;l<parseInt(o.get("value"),10);l++)0!==l||"rows"!==a.get("value")&&"both"!==a.get("value")?n+="<td ></td>\n":n+='<th scope="row"></th>\n';n+="</tr>\n"}n+="</tbody>\n</table>\n<br/>",this.get("host").insertContentAtFocusPoint(n),d=v.one("#"+_),this._setAppearance(d,{width:e,borders:c,borderColour:g,borderSize:u,borderStyle:b,backgroundColour:m}),d.removeAttribute("id"),this.markUpdated()},_findColumnCells:function(){var a=this._getColumnIndex(this._lastTarget),e=this._lastTarget.ancestor("table").all("tr"),n=new v.NodeList,r=new v.NodeList,l=new v.NodeList;return e.each(function(e){var e=e.all("td, th"),t=e.item(a),o=e.item(a-1),e=e.item(a+1);n.push(t),o&&r.push(o),e&&l.push(e)}),{current:n,prev:r,next:l}},_hideInvalidEntries:function(e){var t=this._lastTarget.ancestor("table"),o=this._lastTarge
t.ancestor("tr"),t=t.all("tr"),a=t.indexOf(o),n=t.item(a-1),n=n?n.one("td"):null;o&&n?e.one('[data-change="moverowup"]').show():e.one('[data-change="moverowup"]').hide(),n=t.item(a+1),a=!!o&&o.one("td"),o&&n&&a?e.one('[data-change="moverowdown"]').show():e.one('[data-change="moverowdown"]').hide(),0<(t=this._findColumnCells()).prev.filter("td").size()?e.one('[data-change="movecolumnleft"]').show():e.one('[data-change="movecolumnleft"]').hide(),n=0<t.current.filter("td").size(),0<t.next.size()&&n?e.one('[data-change="movecolumnright"]').show():e.one('[data-change="movecolumnright"]').hide(),0<t.current.filter("td").size()?e.one('[data-change="deletecolumn"]').show():e.one('[data-change="deletecolumn"]').hide(),o&&o.one("td")?e.one('[data-change="deleterow"]').show():e.one('[data-change="deleterow"]').hide()},_showTableMenu:function(e,t){var o,a;e.preventDefault(),
a=this.buttons[this.name],this._contextMenu||(this._menuOptions=[{text:M.util.get_string("addcolumnafter",m),data:{change:"addcolumnafter"}},{text:M.util.get_string("addrowafter",m),data:{change:"addrowafter"}},{text:M.util.get_string("moverowup",m),data:{change:"moverowup"}},{text:M.util.get_string("moverowdown",m),data:{change:"moverowdown"}},{text:M.util.get_string("movecolumnleft",m),data:{change:"movecolumnleft"}},{text:M.util.get_string("movecolumnright",m),data:{change:"movecolumnright"}},{text:M.util.get_string("deleterow",m),data:{change:"deleterow"}},{text:M.util.get_string("deletecolumn",m),data:{change:"deletecolumn"}},{text:M.util.get_string("edittable",m),data:{change:"edittable"}}],a.insert(v.Node.create('<div class="menuplaceholder" id="'+t+'_menu"></div>'),"after"),this._contextMenu=new v.M.editor_atto.Menu({items:this._menuOptions,buttonId:t,attachmentPoint:"#"+t+"_menu"}),(o=this._contextMenu.get("boundingBox")).delegate("click",this._handleTableChange,"a",this)),o=this._contextMenu.get("b
oundingBox"),this._lastTarget=e.tableCell.ancestor(".editor_atto_content td, .editor_atto_content th",!0),this._hideInvalidEntries(o),v.Array.each(this.get("host").openMenus,function(e){e.set("focusAfterHide",null)}),this.get("host")._setTabFocus(a),this._contextMenu.show(),this._contextMenu.align(this.buttons.table,[v.WidgetPositionAlign.TL,v.WidgetPositionAlign.BL]),this._contextMenu.set("focusAfterHide",a),o.one("a")&&o.one("a").focus(),this.get("host").openMenus=[this._contextMenu]},_handleTableChange:function(e){switch(e.preventDefault(),this._contextMenu.set("focusAfterHide",this.get("host").editor),this._contextMenu.hide(e),e.target.getData("change")){case"addcolumnafter":this._addColumnAfter();break;case"addrowafter":this._addRowAfter();break;case"deleterow":this._deleteRow();break;case"deletecolumn":this._deleteColumn();break;case"edittable":this._editTable();break;case"moverowdown":this._moveRowDown();break;case"moverowup":this._moveRowUp();break;case"movecolumnleft":this._moveColumnLeft();break;ca
se"movecolumnright":this._moveColumnRight()}},_getRowIndex:function(e){var t=e.ancestor("table"),e=e.ancestor("tr");if(t&&e)return t.all("tr").indexOf(e)},_getColumnIndex:function(e){var t=e.ancestor("tr");if(t)return t.all("td, th").indexOf(e)},_deleteRow:function(){var e=this._lastTarget.ancestor("tr");e&&e.one("td")&&e.remove(!0),this.markUpdated()},_moveRowUp:function(){var e=this._lastTarget.ancestor("tr"),t=e.previous("tr");e&&t&&(e.swap(t),this.markUpdated())},_moveColumnLeft:function(){var e,t,o,a=this._findColumnCells();if(0<a.current.size()&&0<a.prev.size()&&a.current.size()===a.prev.size())for(e=e=0;e<a.current.size();e++)t=a.current.item(e),o=a.prev.item(e),t.swap(o);this.markUpdated()},_addCaption:function(){var e=this._lastTarget.ancestor("table");e.one("caption")||e.insert(v.Node.create("<caption> </caption>"),1)},_removeCaption:function(){var e=this._lastTarget.ancestor("table").one("caption");e&&e.remove(!0)},_moveColumnRight:function(){var e,t,o,a=this._findColumnCells();if(0<a.next.si
ze()&&a.current.size()===a.next.size()&&0<a.current.filter("td").size())for(e=e=0;e<a.current.size();e++)t=a.current.item(e),o=a.next.item(e),t.swap(o);this.markUpdated()},_moveRowDown:function(){var e=this._lastTarget.ancestor("tr"),t=e.next("tr");e&&t&&e.one("td")&&(e.swap(t),this.markUpdated())},_getBorderConfiguration:function(e){var e=e.cloneNode(!0),t=e.getStyle("borderStyle"),o=e.getStyle("borderColor"),e=e.getStyle("borderWidth");return!!(t||o||e)&&(o=v.Color.toHex(o),e=parseInt(e,10),{borderStyle:t,borderColor:"#"===o?null:o,borderWidth:isNaN(e)?null:e})},_setAppearance:function(e,t){var o,a,n,r;t.borderColour&&(o=t.borderColour.get("value")),t.borderSize&&(a=t.borderSize.get("value")),t.borderStyle&&(n=t.borderStyle.get("value")),t.backgroundColour&&(r=t.backgroundColour.get("value")),e.removeAttribute("style"),e.all("td, th").each(function(e){e.removeAttribute("style")},this),t.borders&&("outer"===t.borders.get("value")?(e.setStyle("borderWidth",a+l.BORDERSIZEUNIT),e.setStyle("borderStyle",n),"non
e"!==o&&e.setStyle("borderColor",o)):"all"===t.borders.get("value")&&e.all("td, th").each(function(e){e.setStyle("borderWidth",a+l.BORDERSIZEUNIT),e.setStyle("borderStyle",n),"none"!==o&&e.setStyle("borderColor",o)},this)),"none"!==r&&e.setStyle("backgroundColor",r),t.width&&t.width.get("value")&&e.setStyle("width",t.width.get("value")+l.WIDTHUNIT)},_editTable:function(){var e,t,o=this.getDialogue({headerContent:M.util.get_string("edittable",m),focusAfterHide:!1,focusOnShowSelector:O.CAPTION,width:f}),a=this._getDialogueContent(!0),n=a.one(O.CAPTION),r=a.one(O.CAPTIONPOSITION),c=a.one(O.HEADERS),u=a.one(O.BORDERS),b=a.one(O.BORDERSTYLE),g=a.all(O.BORDERCOLOURS),h=a.one(O.BORDERSIZE),l=a.all(O.BACKGROUNDCOLOURS),i=a.one(O.WIDTH),s=this._lastTarget.ancestor("table"),d=s.one("caption");d?n.set("value",d.getHTML()):n.set("value",""),i&&-1===s.getStyle("width").indexOf("px")&&i.set("value",parseInt(s.getStyle("width"),10)),r&&d&&d.getAttribute("style")?r.set("value",d.getStyle("caption-side")):r.set("value",""),s
.getStyle("backgroundColor")&&this.get("allowBackgroundColour")&&(e=v.Color.toHex(s.getStyle("backgroundColor")),(t=l.filter('[value="'+e+'"]'))&&t.set("checked",!0)),this.get("allowBorders")&&(n="default",(i=this._getBorderConfiguration(s))?n="outer":(i=this._getBorderConfiguration(s.one("td")))&&(n="all"),i&&(d=i.borderStyle||_,r=i.borderWidth||p,b.set("value",d),h.set("value",r),u.set("value",n),e=i.borderColor,(t=g.filter('[value="'+e+'"]'))&&t.set("checked",!0))),l="columns",s.one('th[scope="row"]')&&(l="rows",s.one('th[scope="col"]')&&(l="both")),c.set("value",l),o.set("bodyContent",a).show(),this._updateAvailableSettings()},_deleteColumn:function(){var t=this._getColumnIndex(this._lastTarget),e=this._lastTarget.ancestor("table").all("tr"),o=new v.NodeList,a=!1;e.each(function(e){e=e.all("td, th"),e=e.item(t);"TD"===e.get("tagName")&&(a=!0),o.push(e)}),a&&o.remove(!0
),this.markUpdated()},_addRowAfter:function(){var e,t=this._lastTarget.ancestor("tr"),o=this._lastTarget.ancestor("table").one("tbody"),o=o||this._lastTarget.ancestor("table"),a=o.one("tr"),a=a||this._lastTarget.ancestor("table").one("tr");a&&((e=a.cloneNode(!0)).all("th, td").each(function(e){var t;"TH"===e.get("tagName")&&"row"!==e.getAttribute("scope")&&(t=v.Node.create("<td></td>"),e.replace(t),e=t),e.setHTML(" ")}),t.ancestor("thead")?(t=a,o.insert(e,t)):t.insert(e,"after"),this.markUpdated())},_addColumnAfter:function(){var e=this._findColumnCells(),o=!0,t=e.next;e.next.size()<=0&&(o=!1,t=e.current),v.each(t,function(e){var t=e.cloneNode();t.setHTML(" "),o?e.get("parentNode").insert(t,e):(e.get("parentNode").insert(t,e),e.swap(t))},this),this.markUpdated()}},{ATTRS:{allowBorders:{value:!0},borderStyles:{value:["none","solid","dashed","dotted"]},allowBackgroundColour:{value:!0},allowWidth:{value:!0},allowStyling:{readOnly:!0,getter:function(){return this.get("allowBorders")||this.get("allowBac
kgroundColour")||this.get("allowWidth")}},availableColors:{value:["#FFFFFF","#EF4540","#FFCF35","#98CA3E","#7D9FD3","#333333"],readOnly:!0}}})},"@VERSION@",{requires:["moodle-editor_atto-plugin","moodle-editor_atto-menu","event","event-valuechange"]});