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
//>>built
define("dojo/_base/kernel dojo/_base/lang dojo/_base/declare dojo/_base/array dojo/_base/connect dojo/_base/event dojo/_base/sniff dojo/_base/html dojo/keys dijit/a11y dijit/focus ../_FocusManager".split(" "),function(v,e,q,f,k,g,p,l,h,t,m,u){var r=q("dojox.grid.enhanced._FocusArea",null,{constructor:function(a,b){this._fm=b;this._evtStack=[a.name];b=function(){return!0};a.onFocus=a.onFocus||b;a.onBlur=a.onBlur||b;a.onMove=a.onMove||b;a.onKeyUp=a.onKeyUp||b;a.onKeyDown=a.onKeyDown||b;e.mixin(this,
a)},move:function(a,b,c){if(this.name){var d;for(d=this._evtStack.length-1;0<=d;--d)if(!1===this._fm._areas[this._evtStack[d]].onMove(a,b,c))return!1}return!0},_onKeyEvent:function(a,b){if(this.name){var c,d=this._evtStack.length;for(c=d-1;0<=c;--c)if(!1===this._fm._areas[this._evtStack[c]][b](a,!1))return!1;for(c=0;c<d;++c)if(!1===this._fm._areas[this._evtStack[c]][b](a,!0))return!1}return!0},keydown:function(a){return this._onKeyEvent(a,"onKeyDown")},keyup:function(a){return this._onKeyEvent(a,
"onKeyUp")},contentMouseEventPlanner:function(){return 0},headerMouseEventPlanner:function(){return 0}});return q("dojox.grid.enhanced._FocusManager",u,{_stopEvent:function(a){try{a&&a.preventDefault&&g.stop(a)}catch(b){}},constructor:function(a){this.grid=a;this._areas={};this._areaQueue=[];this._contentMouseEventHandlers=[];this._headerMouseEventHandlers=[];this._currentAreaIdx=-1;this._gridBlured=!0;this._connects.push(k.connect(a,"onBlur",this,"_doBlur"));this._connects.push(k.connect(a.scroller,
"renderPage",this,"_delayedCellFocus"));this.addArea({name:"header",onFocus:e.hitch(this,this.focusHeader),onBlur:e.hitch(this,this._blurHeader),onMove:e.hitch(this,this._navHeader),getRegions:e.hitch(this,this._findHeaderCells),onRegionFocus:e.hitch(this,this.doColHeaderFocus),onRegionBlur:e.hitch(this,this.doColHeaderBlur),onKeyDown:e.hitch(this,this._onHeaderKeyDown)});this.addArea({name:"content",onFocus:e.hitch(this,this._focusContent),onBlur:e.hitch(this,this._blurContent),onMove:e.hitch(this,
this._navContent),onKeyDown:e.hitch(this,this._onContentKeyDown)});this.addArea({name:"editableCell",onFocus:e.hitch(this,this._focusEditableCell),onBlur:e.hitch(this,this._blurEditableCell),onKeyDown:e.hitch(this,this._onEditableCellKeyDown),onContentMouseEvent:e.hitch(this,this._onEditableCellMouseEvent),contentMouseEventPlanner:function(a,c){return-1}});this.placeArea("header");this.placeArea("content");this.placeArea("editableCell");this.placeArea("editableCell","above","content")},destroy:function(){for(var a in this._areas){var b=
this._areas[a];f.forEach(b._connects,k.disconnect);b._connects=null;b.uninitialize&&b.uninitialize()}this.inherited(arguments)},addArea:function(a){a.name&&e.isString(a.name)&&(this._areas[a.name]&&f.forEach(a._connects,k.disconnect),this._areas[a.name]=new r(a,this),a.onHeaderMouseEvent&&this._headerMouseEventHandlers.push(a.name),a.onContentMouseEvent&&this._contentMouseEventHandlers.push(a.name))},getArea:function(a){return this._areas[a]},_bindAreaEvents:function(){var a,b,c=this._areas;f.forEach(this._areaQueue,
function(d){a=c[d];!a._initialized&&e.isFunction(a.initialize)&&(a.initialize(),a._initialized=!0);a.getRegions&&(a._regions=a.getRegions()||[],f.forEach(a._connects||[],k.disconnect),a._connects=[],f.forEach(a._regions,function(c){a.onRegionFocus&&(b=k.connect(c,"onfocus",a.onRegionFocus),a._connects.push(b));a.onRegionBlur&&(b=k.connect(c,"onblur",a.onRegionBlur),a._connects.push(b))}))})},removeArea:function(a){var b=this._areas[a];if(b){this.ignoreArea(a);var c=f.indexOf(this._contentMouseEventHandlers,
a);0<=c&&this._contentMouseEventHandlers.splice(c,1);c=f.indexOf(this._headerMouseEventHandlers,a);0<=c&&this._headerMouseEventHandlers.splice(c,1);f.forEach(b._connects,k.disconnect);b.uninitialize&&b.uninitialize();delete this._areas[a]}},currentArea:function(a,b){var c,d=this._currentAreaIdx;if(e.isString(a)&&0<=(c=f.indexOf(this._areaQueue,a))){if(d!=c){this.tabbingOut=!1;if(b&&0<=d&&d<this._areaQueue.length)this._areas[this._areaQueue[d]].onBlur();this._currentAreaIdx=c}}else return 0>d||d>=
this._areaQueue.length?new r({},this):this._areas[this._areaQueue[this._currentAreaIdx]];return null},placeArea:function(a,b,c){if(this._areas[a]){var d=f.indexOf(this._areaQueue,c);switch(b){case "after":0<=d&&++d;case "before":if(0<=d){this._areaQueue.splice(d,0,a);break}default:this._areaQueue.push(a);break;case "above":var e=!0;case "below":(b=this._areas[c])&&(e?b._evtStack.push(a):b._evtStack.splice(0,0,a))}}},ignoreArea:function(a){this._areaQueue=f.filter(this._areaQueue,function(b){return b!=
a})},focusArea:function(a,b){a="number"==typeof a?0>a?this._areaQueue.length+a:a:f.indexOf(this._areaQueue,e.isString(a)?a:a&&a.name);0>a&&(a=0);a-=this._currentAreaIdx;this._gridBlured=!1;if(a)this.tab(a,b);else this.currentArea().onFocus(b,a)},tab:function(a,b){this.tabbingOut=this._gridBlured=!1;if(0!==a){var c=this._currentAreaIdx,d=0<a?1:-1;if(0>c||c>=this._areaQueue.length)c=this._currentAreaIdx+=a;else{var n=this._areas[this._areaQueue[c]].onBlur(b,a);!0===n?c=this._currentAreaIdx+=a:e.isString(n)&&
this._areas[n]&&(c=this._currentAreaIdx=f.indexOf(this._areaQueue,n))}for(;0<=c&&c<this._areaQueue.length;c+=d)if(this._currentAreaIdx=c,this._areaQueue[c]&&this._areas[this._areaQueue[c]].onFocus(b,a))return;this.tabbingOut=!0;0>a?(this._currentAreaIdx=-1,m.focus(this.grid.domNode)):(this._currentAreaIdx=this._areaQueue.length,m.focus(this.grid.lastFocusNode))}},_onMouseEvent:function(a,b){for(var c=a.toLowerCase(),d=this["_"+c+"MouseEventHandlers"],e=f.map(d,function(a){return{area:a,idx:this._areas[a][c+
"MouseEventPlanner"](b,d)}},this).sort(function(a,b){return b.idx-a.idx}),h=f.map(e,function(a){return e.area}),g=e.length;0<=--g&&!1!==this._areas[e[g].area]["on"+a+"MouseEvent"](b,h););},contentMouseEvent:function(a){this._onMouseEvent("Content",a)},headerMouseEvent:function(a){this._onMouseEvent("Header",a)},initFocusView:function(){this.focusView=this.grid.views.getFirstScrollingView()||this.focusView||this.grid.views.views[0];this._bindAreaEvents()},isNavHeader:function(){return"header"==this._areaQueue[this._currentAreaIdx]},
previousKey:function(a){this.tab(-1,a)},nextKey:function(a){this.tab(1,a)},setFocusCell:function(a,b){a&&(this.currentArea(this.grid.edit.isEditing()?"editableCell":"content",!0),this._focusifyCellNode(!1),this.cell=a,this.rowIndex=b,this._focusifyCellNode(!0));this.grid.onCellFocus(this.cell,this.rowIndex)},doFocus:function(a){a&&a.target==a.currentTarget&&!this.tabbingOut?this._gridBlured&&(this._gridBlured=!1,0>this._currentAreaIdx||this._currentAreaIdx>=this._areaQueue.length?this.focusArea(0,
a):this.focusArea(this._currentAreaIdx,a)):this.tabbingOut=!1;g.stop(a)},_doBlur:function(){this._gridBlured=!0},doLastNodeFocus:function(a){this.tabbingOut?this.tabbingOut=!1:this.focusArea(-1,a)},_delayedHeaderFocus:function(){this.isNavHeader()&&!p("ie")&&this.focusHeader()},_delayedCellFocus:function(){},_changeMenuBindNode:function(a,b){var c=this.grid.headerMenu;c&&this._contextMenuBindNode==a&&(c.unBindDomNode(a),c.bindDomNode(b),this._contextMenuBindNode=b)},focusHeader:function(a,b){var c=
!1;this.inherited(arguments);this._colHeadNode&&"none"!=l.style(this._colHeadNode,"display")&&(m.focus(this._colHeadNode),this._stopEvent(a),c=!0);return c},_blurHeader:function(a,b){this._colHeadNode&&l.removeClass(this._colHeadNode,this.focusClass);l.removeAttr(this.grid.domNode,"aria-activedescendant");this._changeMenuBindNode(this.grid.domNode,this.grid.viewsHeaderNode);this._colHeadNode=this._colHeadFocusIdx=null;return!0},_navHeader:function(a,b,c){var d=0>b?-1:1,e=f.indexOf(this._findHeaderCells(),
this._colHeadNode);0<=e&&c.shiftKey&&c.ctrlKey?this.colSizeAdjust(c,e,5*d):this.move(a,b)},_onHeaderKeyDown:function(a,b){if(b)switch(a.keyCode){case h.ENTER:case h.SPACE:b=this.getHeaderIndex(),0<=b&&!this.grid.pluginMgr.isFixedCell(a.cell)&&(this.grid.setSortIndex(b,null,a),g.stop(a))}return!0},_setActiveColHeader:function(){this.inherited(arguments);m.focus(this._colHeadNode)},findAndFocusGridCell:function(){this._focusContent()},_focusContent:function(a,b){b=!0;var c=0===this.grid.rowCount;if(this.isNoFocusCell()&&
!c){for(var c=0,d=this.grid.getCell(0);d&&d.hidden;d=this.grid.getCell(++c));this.setFocusIndex(0,d?c:0)}else this.cell&&!c?this.focusView&&!this.focusView.rowNodes[this.rowIndex]?(this.grid.scrollToRow(this.rowIndex),this.focusGrid()):this.setFocusIndex(this.rowIndex,this.cell.index):b=!1;b&&this._stopEvent(a);return b},_blurContent:function(a,b){this._focusifyCellNode(!1);return!0},_navContent:function(a,b,c){0===this.rowIndex&&0>a||this.rowIndex===this.grid.rowCount-1&&0<a||(this._colHeadNode=
null,this.move(a,b,c),c&&g.stop(c))},_onContentKeyDown:function(a,b){if(b)switch(b=this.grid.scroller,a.keyCode){case h.ENTER:case h.SPACE:b=this.grid;if(b.indirectSelection)break;b.selection.clickSelect(this.rowIndex,k.isCopyKey(a),a.shiftKey);b.onRowClick(a);g.stop(a);break;case h.PAGE_UP:0!==this.rowIndex&&(this.rowIndex!=b.firstVisibleRow+1?this._navContent(b.firstVisibleRow-this.rowIndex,0):(this.grid.setScrollTop(b.findScrollTop(this.rowIndex-1)),this._navContent(b.firstVisibleRow-b.lastVisibleRow+
1,0)),g.stop(a));break;case h.PAGE_DOWN:this.rowIndex+1!=this.grid.rowCount&&(g.stop(a),this.rowIndex!=b.lastVisibleRow-1?this._navContent(b.lastVisibleRow-this.rowIndex-1,0):(this.grid.setScrollTop(b.findScrollTop(this.rowIndex+1)),this._navContent(b.lastVisibleRow-b.firstVisibleRow-1,0)),g.stop(a))}return!0},_blurFromEditableCell:!1,_isNavigating:!1,_navElems:null,_focusEditableCell:function(a,b){var c=!1;if(this._isNavigating)c=!0;else if(this.grid.edit.isEditing()&&this.cell){if(this._blurFromEditableCell||
!this._blurEditableCell(a,b))this.setFocusIndex(this.rowIndex,this.cell.index),c=!0;this._stopEvent(a)}return c},_applyEditableCell:function(){try{this.grid.edit.apply()}catch(a){console.warn("_FocusManager._applyEditableCell() error:",a)}},_blurEditableCell:function(a,b){this._blurFromEditableCell=!1;if(this._isNavigating){var c=!0;if(a)var d=this._navElems,c=d.lowest||d.first,d=d.last||d.highest||c,c=(p("ie")?a.srcElement:a.target)==(0<b?d:c);return c?(this._isNavigating=!1,l.setSelectable(this.cell.getNode(this.rowIndex),
!1),"content"):!1}if(this.grid.edit.isEditing()&&this.cell){if(!b||"number"!=typeof b)return!1;a=0<b?1:-1;b=this.grid.layout.cellCount;for(d=this.cell.index+a;0<=d&&d<b;d+=a)if(c=this.grid.getCell(d),c.editable)return this.cell=c,this._blurFromEditableCell=!0,!1;if((0<this.rowIndex||1==a)&&(this.rowIndex<this.grid.rowCount||-1==a)){this.rowIndex+=a;for(d=0<a?0:b-1;0<=d&&d<b;d+=a)if(c=this.grid.getCell(d),c.editable){this.cell=c;break}this._applyEditableCell();return"content"}}return!0},_initNavigatableElems:function(){this._navElems=
t._getTabNavigable(this.cell.getNode(this.rowIndex))},_onEditableCellKeyDown:function(a,b){var c=this.grid,d=c.edit,e=!1,f=!0;switch(a.keyCode){case h.ENTER:b&&d.isEditing()&&(this._applyEditableCell(),e=!0,g.stop(a));case h.SPACE:if(!b&&this._isNavigating){f=!1;break}if(b){if(!this.cell.editable&&this.cell.navigatable&&(this._initNavigatableElems(),b=this._navElems.lowest||this._navElems.first)){this._isNavigating=!0;l.setSelectable(this.cell.getNode(this.rowIndex),!0);m.focus(b);g.stop(a);this.currentArea("editableCell",
!0);break}e||d.isEditing()||c.pluginMgr.isFixedCell(this.cell)||d.setEditCell(this.cell,this.rowIndex);e?this.currentArea("content",!0):this.cell.editable&&c.canEdit()&&this.currentArea("editableCell",!0)}break;case h.PAGE_UP:case h.PAGE_DOWN:!b&&d.isEditing()&&(f=!1);break;case h.ESCAPE:b||(d.cancel(),this.currentArea("content",!0))}return f},_onEditableCellMouseEvent:function(a){if("click"==a.type){var b=this.cell||a.cell;if(b&&!b.editable&&b.navigatable){if(this._initNavigatableElems(),this._navElems.lowest||
this._navElems.first){var c=p("ie")?a.srcElement:a.target;if(c!=b.getNode(a.rowIndex))return this._isNavigating=!0,this.focusArea("editableCell",a),l.setSelectable(b.getNode(a.rowIndex),!0),m.focus(c),!1}}else if(this.grid.singleClickEdit)return this.currentArea("editableCell"),!1}return!0}})});