AutorÃa | Ultima modificación | Ver Log |
YUI.add("moodle-core-dragdrop",function(h,t){var d="moodle-core-dragdrop-draghandle",e=function(){e.superclass.constructor.apply(this,arguments)};h.extend(e,h.Base,{goingup:null,absgoingup:null,samenodeclass:null,parentnodeclass:null,samenodelabel:null,parentnodelabel:null,groups:[],lastdroptarget:null,detectkeyboarddirection:!1,listeners:null,initializer:function(){this.listeners=[],this.listeners.push(h.DD.DDM.on("drag:start",this.global_drag_start,this)),this.listeners.push(h.DD.DDM.on("drag:over",this.globalDragOver,this)),this.listeners.push(h.DD.DDM.on("drag:end",this.global_drag_end,this)),this.listeners.push(h.DD.DDM.on("drag:drag",this.global_drag_drag,this)),this.listeners.push(h.DD.DDM.on("drop:over",this.global_drop_over,this)),this.listeners.push(h.DD.DDM.on("drop:hit",this.global_drop_hit,this)),this.listeners.push(h.DD.DDM.on("drag:dropmiss",this.global_drag_dropmiss,this)),this.listeners.push(h.one(h.config.doc.body).delegate("key",this.global_keydown,"down:32, enter, esc","."+d,this)),this.l
isteners.push(h.one(h.config.doc.body).delegate("click",this.global_keydown,"."+d,this))},destructor:function(){new h.EventHandle(this.listeners).detach()},get_drag_handle:function(t,e,o){var r=h.Node.create("<span></span>").addClass(e).setAttribute("title",t).setAttribute("tabIndex",0).setAttribute("data-draggroups",this.groups).setAttribute("role","button");return r.addClass(d),window.require(["core/templates"],function(t){t.renderPix("i/move_2d","core").then(function(t){t=h.Node.create(t);t.setStyle("cursor","move"),void 0!==o&&t.addClass(o),r.appendChild(t)})}),r},lock_drag_handle:function(t,e){t.removeHandle("."+e)},unlock_drag_handle:function(t,e){t.addHandle("."+e),t.get("activeHandle").focus()},ajax_failure:function(t){t={name:t.status+" "+t.statusText,message:t.responseText};return new M.core.exception(t)},in_group:function(e){var o=!1;return h.each(this.groups,function(t){e._groups[t]&&(o=!0)},this),o},global_drag_start:function(t){var e=t.target;this.in_group(e)&&(this.originalstyle=e.get("node").
getAttribute("style"),e.get("node").setStyle("opacity",".25"),e.get("dragNode").setStyles({opacity:".75",borderColor:e.get("node").getStyle("borderColor"),backgroundColor:e.get("node").getStyle("backgroundColor")}),e.get("dragNode").empty(),this.drag_start(t))},globalDragOver:function(t){this.dragOver(t)},global_drag_end:function(t){var e=t.target;this.in_group(e)&&(e.get("node").setAttribute("style",this.originalstyle),this.drag_end(t))},global_drag_drag:function(t){var e=t.target,o=t.info;this.in_group(e)&&(o.start[1]<o.xy[1]?this.absgoingup=!0:o.start[1]>o.xy[1]&&(this.absgoingup=!1),o.delta[1]<0?this.goingup=!0:0<o.delta[1]&&(this.goingup=!1),this.drag_drag(t))},global_drop_over:function(t){var e,o,r;t.drop&&t.drop.inGroup(this.groups)&&(e=t.drag.get("node"),o=t.drop.get("node"),this.lastdroptarget=t.drop,o.hasClass(this.samenodeclass)?(r=this.goingup?"before":"after",o.insert(e,r)):!o.hasClass(this.parentnodeclass)&&!o.test('[data-droptarget="1"]')||o.contains(e)||(this.goingup?o.append(e):o.prepend(e))
,this.drop_over(t))},global_drag_dropmiss:function(t){t.drag=t.target,t.drop=this.lastdroptarget,this.in_group(t.drag)&&t.drop&&t.drop.inGroup(this.groups)&&this.drag_dropmiss(t)},global_drop_hit:function(t){t.drop&&t.drop.inGroup(this.groups)&&this.drop_hit(t)},find_element_text:function(t){var e,o,r="",r=t.get("aria-label")||"";return 0<r.length?r:(e=t.get("aria-labelledby"))&&(o=h.one("#"+e))&&0<o.get("text").length?o.get("text"):(t.all("h2, h3, h4, h5, span:not(.actions):not(.menu-action-text), p, div.no-overflow, div.dimmed_text").each(function(){""===r&&""!==h.Lang.trim(this.get("text"))&&(r=this.get("text"))}),""!==r?r:M.util.get_string("emptydragdropregion","moodle"))},global_start_keyboard_drag:function(t,e,d){var s,l,g,p,u;M.core.dragdrop.keydragcontainer=d,M.core.dragdrop.keydraghandle=e,s=this.find_element_text(d),e=M.util.get_string("movecontent","moodle",s),(l=h.Node.create("<ul></ul>")).addClass("dragdrop-keyboard-drag"),h.all("."+this.samenodeclass+", ."+this.parentnodeclass).each(function(t)
{var e,o,r,a=!1,n=t,i=t.getAttribute("class").split(" ").join(", .");if(t.drop&&t.drop.inGroup(this.groups)&&t.drop.get("node")!==d&&(t.next(i)!==d||this.detectkeyboarddirection))a=!0;else for(e=t.getAttribute("data-draggroups").split(" "),o=0;o<e.length;o++){for(r=0;r<this.groups.length;r++)if(e[o]===this.groups[r]&&!t.ancestor(".yui3-dd-proxy")&&t!=d&&t.next(i)!==d&&t.get("children").item(0)!=d){a=!0,n=t.get("parentNode");break}if(a)break}a&&(g=h.Node.create("<li></li>"),p=h.Node.create("<a></a>"),s=this.find_element_text(n),u=this.samenodelabel&&t.hasClass(this.samenodeclass)?M.util.get_string(this.samenodelabel.identifier,this.samenodelabel.component,s):this.parentnodelabel&&t.hasClass(this.parentnodeclass)?M.util.get_string(this.parentnodelabel.identifier,this.parentnodelabel.component,s):M.util.get_string("tocontent","moodle",s),p.setContent(u),p.setAttribute("data-drop-target",t.get("id")),p.setAttribute("tabindex","0"),p.setAttribute("role","button"),p.on("click",this.global_keyboard_drop,this),p.on(
"key",this.global_keyboard_drop,"down:enter,32",this),g.append(p),l.append(g))},this),M.core.dragdrop.dropui=new M.core.dialogue({headerContent:e,bodyContent:l,draggable:!0,visible:!0,center:!0,modal:!0}),M.core.dragdrop.dropui.after("visibleChange",function(t){t.prevVal&&!t.newVal&&this.global_cancel_keyboard_drag()},this),l.one("a")&&l.one("a").focus()},simulated_drag_drop_event:function(t,e){var o=function(t){this.node=t};o.prototype.get=function(t){return"node"===t||"dragNode"===t||"dropNode"===t?this.node:"activeHandle"===t?this.node.one(".editing_move"):null},o.prototype.inGroup=function(){return!0},o.prototype.addHandle=function(){},o.prototype.removeHandle=function(){},this.drop=new o(e),this.drag=new o(t),this.target=this.drop},global_keyboard_drop:function(t){var e,o=M.core.dragdrop.keydragcontainer,r=h.one("#"+t.target.getAttribute("data-drop-target"));
M.core.dragdrop.dropui.hide(),t.preventDefault(),this.detectkeyboarddirection&&o.getY()>r.getY()?(this.absgoingup=!0,this.goingup=!0):(this.absgoingup=!1,this.goingup=!1),t=new this.simulated_drag_drop_event(o,o),e=new this.simulated_drag_drop_event(o,r),this.drag_start(t),this.global_drop_over(e),r.hasClass(this.parentnodeclass)&&r.contains(o)&&r.prepend(o),this.global_drop_hit(e)},global_cancel_keyboard_drag:function(){M.core.dragdrop.keydragcontainer&&(M.core.dragdrop.keydraghandle.focus(),M.core.dragdrop.keydragcontainer=null),M.core.dragdrop.dropui&&M.core.dragdrop.dropui.destroy()},global_keydown:function(t){var e,o,r,a,n,i=t.target.ancestor("."+d,!0);if(null!==i){if(27===t.keyCode)return this.global_cancel_keyboard_drag(),void t.preventDefault();if(i.hasClass(d)&&(13===t.keyCode||32===t.keyCode||"click"===t.type)){for(o=i.getAttribute("data-draggroups").split(" "),n=!1,r=0;r<o.length;r++){for(a=0;a<this.groups.length;a++)if(o[r]===this.groups[a]){n=!0;break}if(n)break}n&&(e=i.ancestor(".yui3-dd-drop")
,this.global_start_keyboard_drag(t,i,e),t.preventDefault())}}},drag_start:function(){},dragOver:function(){},drag_end:function(){},drag_drag:function(){},drag_dropmiss:function(){},drop_over:function(){},drop_hit:function(){}},{NAME:"dragdrop",ATTRS:{}}),M.core=M.core||{},M.core.dragdrop=e},"@VERSION@",{requires:["base","node","io","dom","dd","event-key","event-focus","moodle-core-notification"]});