nnnjjj123
2020-11-17 1b2c1edb61190eeb19f465ff031eaa3b2a1b8dbc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//>>built
define("dojo/_base/kernel dojo/_base/declare dojo/_base/connect dojo/_base/array dojo/_base/lang dojo/_base/html dojo/_base/json dojo/_base/window dojo/query dojo/keys dojo/dnd/Source dojo/dnd/Avatar ../_Plugin ../../EnhancedGrid dojo/dnd/Manager ./Selector ./Rearrange".split(" "),function(y,x,B,k,r,f,C,p,z,A,D,E,F,G,H){var I=function(a){a.sort(function(a,b){return a-b});for(var c=[[a[0]]],b=1,e=0;b<a.length;++b)a[b]==a[b-1]+1?c[e].push(a[b]):c[++e]=[a[b]];return c},u=function(a){for(var c=a[0],b=
1;b<a.length;++b)c=c.concat(a[b]);return c},J=x("dojox.grid.enhanced.plugins.GridDnDElement",null,{constructor:function(a){this.plugin=a;this.node=f.create("div");this._items={}},destroy:function(){this.plugin=null;f.destroy(this.node);this._items=this.node=null},createDnDNodes:function(a){this.destroyDnDNodes();var c=["grid/"+a.type+"s"],b=this.plugin.grid.id+"_dndItem";k.forEach(a.selected,function(a,d){d=b+d;this._items[d]={type:c,data:a,dndPlugin:this.plugin};this.node.appendChild(f.create("div",
{id:d}))},this)},getDnDNodes:function(){return k.map(this.node.childNodes,function(a){return a})},destroyDnDNodes:function(){f.empty(this.node);this._items={}},getItem:function(a){return this._items[a]}}),K=x("dojox.grid.enhanced.plugins.GridDnDSource",D,{accept:["grid/cells","grid/rows","grid/cols"],constructor:function(a,c){this.grid=c.grid;this.dndElem=c.dndElem;this.dndPlugin=c.dnd;this.sourcePlugin=null},destroy:function(){this.inherited(arguments);this.sourcePlugin=this.dndPlugin=this.dndElem=
this.grid=null},getItem:function(a){return this.dndElem.getItem(a)},checkAcceptance:function(a,c){if(this!=a&&c[0]){var b=a.getItem(c[0].id);if(b.dndPlugin)for(var e=b.type,d=0;d<e.length;++d){if(e[d]in this.accept){if(this.dndPlugin._canAccept(b.dndPlugin))this.sourcePlugin=b.dndPlugin;else return!1;break}}else if("grid/rows"in this.accept){var l=[];k.forEach(c,function(b){b=a.getItem(b.id);if(b.data&&0<=k.indexOf(b.type,"grid/rows")){var c=b.data;"string"==typeof b.data&&(c=C.fromJson(b.data));
c&&l.push(c)}});if(l.length)this.sourcePlugin={_dndRegion:{type:"row",selected:[l]}};else return!1}}return this.inherited(arguments)},onDraggingOver:function(){this.dndPlugin.onDraggingOver(this.sourcePlugin)},onDraggingOut:function(){this.dndPlugin.onDraggingOut(this.sourcePlugin)},onDndDrop:function(a,c,b,e){this.onDndCancel();if(this!=a&&this==e)this.dndPlugin.onDragIn(this.sourcePlugin,b)}}),L=x("dojox.grid.enhanced.plugins.GridDnDAvatar",E,{construct:function(){this._itemType=this.manager._dndPlugin._dndRegion.type;
this._itemCount=this._getItemCount();this.isA11y=f.hasClass(p.body(),"dijit_a11y");var a=f.create("table",{border:"0",cellspacing:"0","class":"dojoxGridDndAvatar",style:{position:"absolute",zIndex:"1999",margin:"0px"}}),c=this.manager.source,b=f.create("tbody",null,a),b=f.create("tr",null,b),e=f.create("td",{"class":"dojoxGridDnDIcon"},b);this.isA11y&&f.create("span",{id:"a11yIcon",innerHTML:this.manager.copy?"+":"\x3c"},e);e=f.create("td",{"class":"dojoxGridDnDItemIcon "+this._getGridDnDIconClass()},
b);e=f.create("td",null,b);f.create("span",{"class":"dojoxGridDnDItemCount",innerHTML:c.generateText?this._generateText():""},e);f.style(b,{opacity:.9});this.node=a},_getItemCount:function(){var a=this.manager._dndPlugin._dndRegion.selected,c=0;switch(this._itemType){case "cell":var a=a[0],c=this.manager._dndPlugin.grid.layout.cells,b=a.max.col-a.min.col+1,e=a.max.row-a.min.row+1;if(1<b)for(var d=a.min.col;d<=a.max.col;++d)c[d].hidden&&--b;c=b*e;break;case "row":case "col":c=u(a).length}return c},
_getGridDnDIconClass:function(){return{row:["dojoxGridDnDIconRowSingle","dojoxGridDnDIconRowMulti"],col:["dojoxGridDnDIconColSingle","dojoxGridDnDIconColMulti"],cell:["dojoxGridDnDIconCellSingle","dojoxGridDnDIconCellMulti"]}[this._itemType][1==this._itemCount?0:1]},_generateText:function(){return"("+this._itemCount+")"}});y=x("dojox.grid.enhanced.plugins.DnD",F,{name:"dnd",_targetAnchorBorderWidth:2,_copyOnly:!1,_config:{row:{within:!0,"in":!0,out:!0},col:{within:!0,"in":!0,out:!0},cell:{within:!0,
"in":!0,out:!0}},constructor:function(a,c){this.grid=a;this._config=r.clone(this._config);c=r.isObject(c)?c:{};this.setupConfig(c.dndConfig);this._copyOnly=!!c.copyOnly;this._mixinGrid();this.selector=a.pluginMgr.getPlugin("selector");this.rearranger=a.pluginMgr.getPlugin("rearrange");this.rearranger.setArgs(c);this._clear();this._elem=new J(this);this._source=new K(this._elem.node,{grid:a,dndElem:this._elem,dnd:this});this._container=z(".dojoxGridMasterView",this.grid.domNode)[0];this._initEvents()},
destroy:function(){this.inherited(arguments);this._clear();this._source.destroy();this._elem.destroy();this._config=this.rearranger=this.selector=this.grid=this._container=null},_mixinGrid:function(){this.grid.setupDnDConfig=r.hitch(this,"setupConfig");this.grid.dndCopyOnly=r.hitch(this,"copyOnly")},setupConfig:function(a){if(a&&r.isObject(a)){var c=["row","col","cell"],b=["within","in","out"],e=this._config;k.forEach(c,function(c){if(c in a){var d=a[c];d&&r.isObject(d)?k.forEach(b,function(a){a in
d&&(e[c][a]=!!d[a])}):k.forEach(b,function(a){e[c][a]=!!d})}});k.forEach(b,function(b){if(b in a){var d=a[b];d&&r.isObject(d)?k.forEach(c,function(a){a in d&&(e[a][b]=!!d[a])}):k.forEach(c,function(a){e[a][b]=!!d})}})}},copyOnly:function(a){"undefined"!=typeof a&&(this._copyOnly=!!a);return this._copyOnly},_isOutOfGrid:function(a){var c=f.position(this.grid.domNode),b=a.clientX;a=a.clientY;return a<c.y||a>c.y+c.h||b<c.x||b>c.x+c.w},_onMouseMove:function(a){if(!this._dndRegion||this._dnding||this._externalDnd){this._isMouseDown&&
!this._dndRegion&&(delete this._isMouseDown,this._oldCursor=f.style(p.body(),"cursor"),f.style(p.body(),"cursor","not-allowed"));var c=this._isOutOfGrid(a);!this._alreadyOut&&c?(this._alreadyOut=!0,this._dnding&&this._destroyDnDUI(!0,!1),this._moveEvent=a,this._source.onOutEvent()):this._alreadyOut&&!c&&(this._alreadyOut=!1,this._dnding&&this._createDnDUI(a,!0),this._moveEvent=a,this._source.onOverEvent())}else this._dnding=!0,this._startDnd(a)},_onMouseUp:function(){if(!this._extDnding&&!this._isSource){var a=
this._dnding&&!this._alreadyOut;a&&this._config[this._dndRegion.type].within&&this._rearrange();this._endDnd(a)}f.style(p.body(),"cursor",this._oldCursor||"");delete this._isMouseDown},_initEvents:function(){var a=this.grid,c=this.selector;this.connect(p.doc,"onmousemove","_onMouseMove");this.connect(p.doc,"onmouseup","_onMouseUp");this.connect(a,"onCellMouseOver",function(a){this._dnding||c.isSelecting()||a.ctrlKey||(this._dndReady=c.isSelected("cell",a.rowIndex,a.cell.index),c.selectEnabled(!this._dndReady))});
this.connect(a,"onHeaderCellMouseOver",function(a){this._dndReady&&c.selectEnabled(!0)});this.connect(a,"onRowMouseOver",function(a){this._dndReady&&!a.cell&&c.selectEnabled(!0)});this.connect(a,"onCellMouseDown",function(a){!a.ctrlKey&&this._dndReady&&(this._dndRegion=this._getDnDRegion(a.rowIndex,a.cell.index),this._isMouseDown=!0)});this.connect(a,"onCellMouseUp",function(a){this._dndReady||c.isSelecting()||!a.cell||(this._dndReady=c.isSelected("cell",a.rowIndex,a.cell.index),c.selectEnabled(!this._dndReady))});
this.connect(a,"onCellClick",function(a){!this._dndReady||a.ctrlKey||a.shiftKey||c.select("cell",a.rowIndex,a.cell.index)});this.connect(a,"onEndAutoScroll",function(a,c,d,f,g){this._dnding&&this._markTargetAnchor(g)});this.connect(p.doc,"onkeydown",function(a){a.keyCode==A.ESCAPE?this._endDnd(!1):a.keyCode==A.CTRL&&(c.selectEnabled(!0),this._isCopy=!0)});this.connect(p.doc,"onkeyup",function(a){a.keyCode==A.CTRL&&(c.selectEnabled(!this._dndReady),this._isCopy=!1)})},_clear:function(){this._moveEvent=
this._target=this._dndRegion=null;this._targetAnchor={};this._extDnding=this._alreadyOut=this._isSource=this._externalDnd=this._dnding=!1},_getDnDRegion:function(a,c){var b=this.selector,e=b._selected,d=!!e.cell.length|!!e.row.length<<1|!!e.col.length<<2,f;switch(d){case 1:f="cell";if(!this._config[f].within&&!this._config[f].out)break;var g=this.grid.layout.cells,d=function(a){for(var b=0,c=a.min.col;c<=a.max.col;++c)g[c].hidden&&++b;return(a.max.row-a.min.row+1)*(a.max.col-a.min.col+1-b)},h={max:{row:-1,
col:-1},min:{row:Infinity,col:Infinity}};k.forEach(e[f],function(a){a.row<h.min.row&&(h.min.row=a.row);a.row>h.max.row&&(h.max.row=a.row);a.col<h.min.col&&(h.min.col=a.col);a.col>h.max.col&&(h.max.col=a.col)});if(k.some(e[f],function(b){return b.row==a&&b.col==c})&&d(h)==e[f].length&&k.every(e[f],function(a){return a.row>=h.min.row&&a.row<=h.max.row&&a.col>=h.min.col&&a.col<=h.max.col}))return{type:f,selected:[h],handle:{row:a,col:c}};break;case 2:case 4:if(f=2==d?"row":"col",this._config[f].within||
this._config[f].out)if(e=b.getSelected(f),e.length)return{type:f,selected:I(e),handle:2==d?a:c}}return null},_startDnd:function(a){this._createDnDUI(a)},_endDnd:function(a){this._destroyDnDUI(!1,a);this._clear()},_createDnDUI:function(a,c){var b=f.position(this.grid.views.views[0].domNode);f.style(this._container,"height",b.h+"px");try{c||this._createSource(a),this._createMoveable(a),this._oldCursor=f.style(p.body(),"cursor"),f.style(p.body(),"cursor","default")}catch(e){console.warn("DnD._createDnDUI() error:",
e)}},_destroyDnDUI:function(a,c){try{c&&this._destroySource(),this._unmarkTargetAnchor(),a||this._destroyMoveable(),f.style(p.body(),"cursor",this._oldCursor)}catch(b){console.warn("DnD._destroyDnDUI() error:",this.grid.id,b)}},_createSource:function(a){this._elem.createDnDNodes(this._dndRegion);var c=H.manager(),b=c.makeAvatar;c._dndPlugin=this;c.makeAvatar=function(){var a=new L(c);delete c._dndPlugin;return a};c.startDrag(this._source,this._elem.getDnDNodes(),a.ctrlKey);c.makeAvatar=b;c.onMouseMove(a)},
_destroySource:function(){B.publish("/dnd/cancel")},_createMoveable:function(a){this._markTagetAnchorHandler||(this._markTagetAnchorHandler=this.connect(p.doc,"onmousemove","_markTargetAnchor"))},_destroyMoveable:function(){this.disconnect(this._markTagetAnchorHandler);delete this._markTagetAnchorHandler},_calcColTargetAnchorPos:function(a,c){var b,e,d;d=a.clientX;var l=this.grid.layout.cells,g=f._isBodyLtr(),h=this._getVisibleHeaders();for(a=0;a<h.length;++a)if(b=f.position(h[a].node),g?(0===a||
d>=b.x)&&d<b.x+b.w:(0===a||d<b.x+b.w)&&d>=b.x){e=b.x+(g?0:b.w);break}else if(g?a===h.length-1&&d>=b.x+b.w:a===h.length-1&&d<b.x){++a;e=b.x+(g?b.w:0);break}if(a<h.length){if(d=h[a].cell.index,this.selector.isSelected("col",d)&&this.selector.isSelected("col",d-1))for(b=this._dndRegion.selected,a=0;a<b.length;++a)if(0<=k.indexOf(b[a],d)){d=b[a][0];b=f.position(l[d].getHeaderNode());e=b.x+(g?0:b.w);break}}else d=l.length;this._target=d;return e-c.x},_calcRowTargetAnchorPos:function(a,c){for(var b=this.grid,
e=0,d=b.layout.cells;d[e].hidden;)++e;var l=b.layout.cells[e],d=b.scroller.firstVisibleRow,e=l.getNode(d);if(!e)return this._target=-1,0;for(var g=f.position(e);g.y+g.h<a.clientY&&!(++d>=b.rowCount);)g=f.position(l.getNode(d));if(d<b.rowCount){if(this.selector.isSelected("row",d)&&this.selector.isSelected("row",d-1))for(a=this._dndRegion.selected,e=0;e<a.length;++e)if(0<=k.indexOf(a[e],d)){d=a[e][0];g=f.position(l.getNode(d));break}a=g.y}else a=g.y+g.h;this._target=d;return a-c.y},_calcCellTargetAnchorPos:function(a,
c,b){var e=this._dndRegion.selected[0],d=this._dndRegion.handle,l=this.grid,g=f._isBodyLtr(),h=l.layout.cells,k,m,q,p,r,u,t,v,n;m=d.col-e.min.col;q=e.max.col-d.col;var w;b.childNodes.length?(w=z(".dojoxGridCellBorderLeftTopDIV",b)[0],b=z(".dojoxGridCellBorderRightBottomDIV",b)[0]):(w=f.create("div",{"class":"dojoxGridCellBorderLeftTopDIV"},b),b=f.create("div",{"class":"dojoxGridCellBorderRightBottomDIV"},b));for(n=e.min.col+1;n<d.col;++n)h[n].hidden&&--m;for(n=d.col+1;n<e.max.col;++n)h[n].hidden&&
--q;p=this._getVisibleHeaders();for(n=m;n<p.length-q;++n)if(k=f.position(p[n].node),a.clientX>=k.x&&a.clientX<k.x+k.w||n==m&&(g?a.clientX<k.x:a.clientX>=k.x+k.w)||n==p.length-q-1&&(g?a.clientX>=k.x+k.w:a<k.x)){t=p[n-m];v=p[n+q];m=f.position(t.node);q=f.position(v.node);t=t.cell.index;v=v.cell.index;u=g?m.x:q.x;r=g?q.x+q.w-m.x:m.x+m.w-q.x;break}for(n=0;h[n].hidden;)++n;g=h[n];m=l.scroller.firstVisibleRow;for(q=f.position(g.getNode(m));q.y+q.h<a.clientY;)if(++m<l.rowCount)q=f.position(g.getNode(m));
else break;d=m>=d.row-e.min.row?m-d.row+e.min.row:0;a=d+e.max.row-e.min.row;a>=l.rowCount&&(a=l.rowCount-1,d=a-e.max.row+e.min.row);m=f.position(g.getNode(d));q=f.position(g.getNode(a));e=m.y;l=q.y+q.h-m.y;this._target={min:{row:d,col:t},max:{row:a,col:v}};g=(f.marginBox(w).w-f.contentBox(w).w)/2;t=f.position(h[t].getNode(d));f.style(w,{width:t.w-g+"px",height:t.h-g+"px"});h=f.position(h[v].getNode(a));f.style(b,{width:h.w-g+"px",height:h.h-g+"px"});return{h:l,w:r,l:u-c.x,t:e-c.y}},_markTargetAnchor:function(a){try{var c=
this._dndRegion.type;if(!(this._alreadyOut||this._dnding&&!this._config[c].within||this._extDnding&&!this._config[c]["in"])){var b,e,d,l,g=this._targetAnchor[c],h=f.position(this._container);g||(g=this._targetAnchor[c]=f.create("div",{"class":"cell"==c?"dojoxGridCellBorderDIV":"dojoxGridBorderDIV"}),f.style(g,"display","none"),this._container.appendChild(g));switch(c){case "col":b=h.h;e=this._targetAnchorBorderWidth;d=this._calcColTargetAnchorPos(a,h);l=0;break;case "row":b=this._targetAnchorBorderWidth;
e=h.w;d=0;l=this._calcRowTargetAnchorPos(a,h);break;case "cell":var k=this._calcCellTargetAnchorPos(a,h,g);b=k.h;e=k.w;d=k.l;l=k.t}"number"==typeof b&&"number"==typeof e&&"number"==typeof d&&"number"==typeof l?(f.style(g,{height:b+"px",width:e+"px",left:d+"px",top:l+"px"}),f.style(g,"display","")):this._target=null}}catch(m){console.warn("DnD._markTargetAnchor() error:",m)}},_unmarkTargetAnchor:function(){this._dndRegion&&this._targetAnchor[this._dndRegion.type]&&f.style(this._targetAnchor[this._dndRegion.type],
"display","none")},_getVisibleHeaders:function(){return k.map(k.filter(this.grid.layout.cells,function(a){return!a.hidden}),function(a){return{node:a.getHeaderNode(),cell:a}})},_rearrange:function(){if(null!==this._target){var a=this._dndRegion.type,c=this._dndRegion.selected;if("cell"===a)this.rearranger[this._isCopy||this._copyOnly?"copyCells":"moveCells"](c[0],-1===this._target?null:this._target);else this.rearranger["col"==a?"moveColumns":"moveRows"](u(c),-1===this._target?null:this._target);
this._target=null}},onDraggingOver:function(a){!this._dnding&&a&&(this._extDnding=a._isSource=!0,this._externalDnd||(this._externalDnd=!0,this._dndRegion=this._mapRegion(a.grid,a._dndRegion)),this._createDnDUI(this._moveEvent,!0),this.grid.pluginMgr.getPlugin("autoScroll").readyForAutoScroll=!0)},_mapRegion:function(a,c){if("cell"===c.type){var b=c.selected[0],e=this.grid.layout.cells;a=a.layout.cells;var d,f=0;for(d=b.min.col;d<=b.max.col;++d)a[d].hidden||++f;for(d=0;0<f;++d)e[d].hidden||--f;var g=
r.clone(c);g.selected[0].min.col=0;g.selected[0].max.col=d-1;for(d=b.min.col;d<=c.handle.col;++d)a[d].hidden||++f;for(d=0;0<f;++d)e[d].hidden||--f;g.handle.col=d}return c},onDraggingOut:function(a){this._externalDnd&&(this._extDnding=!1,this._destroyDnDUI(!0,!1),a&&(a._isSource=!1))},onDragIn:function(a,c){var b=!1;if(null!==this._target){b=a._dndRegion.selected;switch(a._dndRegion.type){case "cell":this.rearranger.changeCells(a.grid,b[0],this._target);break;case "row":b=u(b),this.rearranger.insertRows(a.grid,
b,this._target)}b=!0}this._endDnd(!0);if(a.onDragOut)a.onDragOut(b&&!c)},onDragOut:function(a){if(a&&!this._copyOnly)switch(a=this._dndRegion.selected,this._dndRegion.type){case "cell":this.rearranger.clearCells(a[0]);break;case "row":this.rearranger.removeRows(u(a))}this._endDnd(!0)},_canAccept:function(a){if(!a)return!1;var c=a._dndRegion,b=c.type;if(!this._config[b]["in"]||!a._config[b].out)return!1;var e=this.grid,d=c.selected,c=k.filter(e.layout.cells,function(a){return!a.hidden}).length,f=e.rowCount,
g=!0;switch(b){case "cell":d=d[0],g=e.store.getFeatures()["dojo.data.api.Write"]&&d.max.row-d.min.row<=f&&k.filter(a.grid.layout.cells,function(a){return a.index>=d.min.col&&a.index<=d.max.col&&!a.hidden}).length<=c;case "row":if(a._allDnDItemsLoaded())return g}return!1},_allDnDItemsLoaded:function(){if(this._dndRegion){var a=this._dndRegion.selected,c=[];switch(this._dndRegion.type){case "cell":for(var b=a[0].min.row,a=a[0].max.row;b<=a;++b)c.push(b);break;case "row":c=u(a);break;default:return!1}var e=
this.grid._by_idx;return k.every(c,function(a){return!!e[a]})}return!1}});G.registerPlugin(y,{dependency:["selector","rearrange"]});return y});