polardbxengine/storage/ndb/mcc/frontend/dojo/dojox/calendar/SimpleColumnView.js

852 lines
24 KiB
JavaScript

//>>built
require({cache:{"url:dojox/calendar/templates/SimpleColumnView.html":"<div data-dojo-attach-events=\"keydown:_onKeyDown\">\t\n\t<div data-dojo-attach-point=\"header\" class=\"dojoxCalendarHeader\">\n\t\t<div class=\"dojoxCalendarYearColumnHeader\" data-dojo-attach-point=\"yearColumnHeader\">\n\t\t\t<table><tr><td><span data-dojo-attach-point=\"yearColumnHeaderContent\"></span></td></tr></table>\t\t\n\t\t</div>\n\t\t<div data-dojo-attach-point=\"columnHeader\" class=\"dojoxCalendarColumnHeader\">\n\t\t\t<table data-dojo-attach-point=\"columnHeaderTable\" class=\"dojoxCalendarColumnHeaderTable\" cellpadding=\"0\" cellspacing=\"0\"></table>\n\t\t</div>\n\t</div>\t\n\t<div data-dojo-attach-point=\"vScrollBar\" class=\"dojoxCalendarVScrollBar\">\n\t\t<div data-dojo-attach-point=\"vScrollBarContent\" style=\"visibility:hidden;position:relative; width:1px; height:1px;\" ></div>\n\t</div>\t\n\t<div data-dojo-attach-point=\"scrollContainer\" class=\"dojoxCalendarScrollContainer\">\n\t\t<div data-dojo-attach-point=\"sheetContainer\" style=\"position:relative;left:0;right:0;margin:0;padding:0\">\n\t\t\t<div data-dojo-attach-point=\"rowHeader\" class=\"dojoxCalendarRowHeader\">\n\t\t\t\t<table data-dojo-attach-point=\"rowHeaderTable\" class=\"dojoxCalendarRowHeaderTable\" cellpadding=\"0\" cellspacing=\"0\"></table>\n\t\t\t</div>\n\t\t\t<div data-dojo-attach-point=\"grid\" class=\"dojoxCalendarGrid\">\n\t\t\t\t<table data-dojo-attach-point=\"gridTable\" class=\"dojoxCalendarGridTable\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%\"></table>\n\t\t\t</div>\n\t\t\t<div data-dojo-attach-point=\"itemContainer\" class=\"dojoxCalendarContainer\" data-dojo-attach-event=\"mousedown:_onGridMouseDown,mouseup:_onGridMouseUp,ondblclick:_onGridDoubleClick,touchstart:_onGridTouchStart,touchmove:_onGridTouchMove,touchend:_onGridTouchEnd\">\n\t\t\t\t<table data-dojo-attach-point=\"itemContainerTable\" class=\"dojoxCalendarContainerTable\" cellpadding=\"0\" cellspacing=\"0\" style=\"width:100%\"></table>\n\t\t\t</div>\n\t\t</div> \n\t</div>\n</div>\n\n"}});
define("dojox/calendar/SimpleColumnView",["./ViewBase","dijit/_TemplatedMixin","./_VerticalScrollBarBase","dojo/text!./templates/SimpleColumnView.html","dojo/_base/declare","dojo/_base/event","dojo/_base/lang","dojo/_base/array","dojo/_base/sniff","dojo/_base/fx","dojo/_base/html","dojo/on","dojo/dom","dojo/dom-class","dojo/dom-style","dojo/dom-geometry","dojo/dom-construct","dojo/mouse","dojo/query","dojox/html/metrics"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,fx,_a,on,_b,_c,_d,_e,_f,_10,_11,_12){
return _5("dojox.calendar.SimpleColumnView",[_1,_2],{baseClass:"dojoxCalendarSimpleColumnView",templateString:_4,viewKind:"columns",_setTabIndexAttr:"domNode",renderData:null,startDate:null,columnCount:7,minHours:8,maxHours:18,hourSize:100,timeSlotDuration:15,verticalRenderer:null,percentOverlap:70,horizontalGap:4,_columnHeaderHandlers:null,constructor:function(){
this.invalidatingProperties=["columnCount","startDate","minHours","maxHours","hourSize","verticalRenderer","rowHeaderTimePattern","columnHeaderDatePattern","timeSlotDuration","percentOverlap","horizontalGap","scrollBarRTLPosition","itemToRendererKindFunc","layoutPriorityFunction","formatItemTimeFunc","textDir","items"];
this._columnHeaderHandlers=[];
},destroy:function(_13){
this._cleanupColumnHeader();
if(this.scrollBar){
this.scrollBar.destroy(_13);
}
this.inherited(arguments);
},_scrollBar_onScroll:function(_14){
this._setScrollPosition(_14);
},buildRendering:function(){
this.inherited(arguments);
if(this.vScrollBar){
this.scrollBar=new _3({content:this.vScrollBarContent},this.vScrollBar);
this.scrollBar.on("scroll",_7.hitch(this,this._scrollBar_onScroll));
this._viewHandles.push(on(this.scrollContainer,_10.wheel,dojo.hitch(this,this._mouseWheelScrollHander)));
}
},postscript:function(){
this.inherited(arguments);
this._initialized=true;
if(!this.invalidRendering){
this.refreshRendering();
}
},_setVerticalRendererAttr:function(_15){
this._destroyRenderersByKind("vertical");
this._set("verticalRenderer",_15);
},_createRenderData:function(){
var _16={};
_16.minHours=this.get("minHours");
_16.maxHours=this.get("maxHours");
_16.hourSize=this.get("hourSize");
_16.hourCount=_16.maxHours-_16.minHours;
_16.slotDuration=this.get("timeSlotDuration");
_16.slotSize=Math.ceil(_16.hourSize/(60/_16.slotDuration));
_16.hourSize=_16.slotSize*(60/_16.slotDuration);
_16.sheetHeight=_16.hourSize*_16.hourCount;
_16.scrollbarWidth=_12.getScrollbar().w+1;
_16.dateLocaleModule=this.dateLocaleModule;
_16.dateClassObj=this.dateClassObj;
_16.dateModule=this.dateModule;
_16.dates=[];
_16.columnCount=this.get("columnCount");
var d=this.get("startDate");
if(d==null){
d=new _16.dateClassObj();
}
d=this.floorToDay(d,false,_16);
this.startDate=d;
for(var col=0;col<_16.columnCount;col++){
_16.dates.push(d);
d=_16.dateModule.add(d,"day",1);
d=this.floorToDay(d,false,_16);
}
_16.startTime=new _16.dateClassObj(_16.dates[0]);
_16.startTime.setHours(_16.minHours);
_16.endTime=new _16.dateClassObj(_16.dates[_16.columnCount-1]);
_16.endTime.setHours(_16.maxHours);
if(this.displayedItemsInvalidated){
this.displayedItemsInvalidated=false;
this._computeVisibleItems(_16);
if(this._isEditing){
this._endItemEditing(null,false);
}
}else{
if(this.renderData){
_16.items=this.renderData.items;
}
}
return _16;
},_validateProperties:function(){
this.inherited(arguments);
var v=this.minHours;
if(v<0||v>24||isNaN(v)){
this.minHours=0;
}
v=this.maxHours;
if(v<0||v>24||isNaN(v)){
this.minHours=24;
}
if(this.minHours>this.maxHours){
var t=this.maxHours;
this.maxHours=this.minHours;
this.maxHours=t;
}
if(v-this.minHours<1){
this.minHours=0;
this.maxHours=24;
}
if(this.columnCount<1||isNaN(this.columnCount)){
this.columnCount=1;
}
v=this.percentOverlap;
if(this.percentOverlap<0||this.percentOverlap>100||isNaN(this.percentOverlap)){
this.percentOverlap=70;
}
if(this.hourSize<5||isNaN(this.hourSize)){
this.hourSize=10;
}
v=this.timeSlotDuration;
if(v<1||v>60||isNaN(v)){
v=15;
}
},_setStartDateAttr:function(_17){
this.displayedItemsInvalidated=true;
this._set("startDate",_17);
},_setColumnCountAttr:function(_18){
this.displayedItemsInvalidated=true;
this._set("columnCount",_18);
},__fixEvt:function(e){
e.sheet="primary";
e.source=this;
return e;
},_formatRowHeaderLabel:function(d){
return this.renderData.dateLocaleModule.format(d,{selector:"time",timePattern:this.rowHeaderTimePattern});
},_formatColumnHeaderLabel:function(d){
return this.renderData.dateLocaleModule.format(d,{selector:"date",datePattern:this.columnHeaderDatePattern,formatLength:"medium"});
},startTimeOfDay:null,scrollBarRTLPosition:"left",_getStartTimeOfDay:function(){
var v=(this.get("maxHours")-this.get("minHours"))*this._getScrollPosition()/this.renderData.sheetHeight;
return {hours:this.renderData.minHours+Math.floor(v),minutes:(v-Math.floor(v))*60};
},_getEndTimeOfDay:function(){
var v=(this.get("maxHours")-this.get("minHours"))*(this._getScrollPosition()+this.scrollContainer.offsetHeight)/this.renderData.sheetHeight;
return {hours:this.renderData.minHours+Math.floor(v),minutes:(v-Math.floor(v))*60};
},_setStartTimeOfDayAttr:function(_19){
this._setStartTimeOfDay(_19.hours,_19.minutes,_19.duration,_19.easing);
},_getStartTimeOfDayAttr:function(){
return this._getStartTimeOfDay();
},_setStartTimeOfDay:function(_1a,_1b,_1c,_1d){
var rd=this.renderData;
_1a=_1a||rd.minHours;
_1b=_1b||0;
_1c=_1c||0;
if(_1b<0){
_1b=0;
}else{
if(_1b>59){
_1b=59;
}
}
if(_1a<0){
_1a=0;
}else{
if(_1a>24){
_1a=24;
}
}
var _1e=_1a*60+_1b;
var _1f=rd.minHours*60;
var _20=rd.maxHours*60;
if(_1e<_1f){
_1e=_1f;
}else{
if(_1e>_20){
_1e=_20;
}
}
var pos=(_1e-_1f)*rd.sheetHeight/(_20-_1f);
pos=Math.min(rd.sheetHeight-this.scrollContainer.offsetHeight,pos);
this._scrollToPosition(pos,_1c,_1d);
},_scrollToPosition:function(_21,_22,_23){
if(_22){
if(this._scrollAnimation){
this._scrollAnimation.stop();
}
var _24=this._getScrollPosition();
var _25=Math.abs(((_21-_24)*_22)/this.renderData.sheetHeight);
this._scrollAnimation=new fx.Animation({curve:[_24,_21],duration:_25,easing:_23,onAnimate:_7.hitch(this,function(_26){
this._setScrollImpl(_26);
})});
this._scrollAnimation.play();
}else{
this._setScrollImpl(_21);
}
},_setScrollImpl:function(v){
this._setScrollPosition(v);
if(this.scrollBar){
this.scrollBar.set("value",v);
}
},ensureVisibility:function(_27,end,_28,_29,_2a){
_29=_29==undefined?this.renderData.slotDuration:_29;
if(this.scrollable&&this.autoScroll){
var s=_27.getHours()*60+_27.getMinutes()-_29;
var e=end.getHours()*60+end.getMinutes()+_29;
var vs=this._getStartTimeOfDay();
var ve=this._getEndTimeOfDay();
var _2b=vs.hours*60+vs.minutes;
var _2c=ve.hours*60+ve.minutes;
var _2d=false;
var _2e=null;
switch(_28){
case "start":
_2d=s>=_2b&&s<=_2c;
_2e=s;
break;
case "end":
_2d=e>=_2b&&e<=_2c;
_2e=e-(_2c-_2b);
break;
case "both":
_2d=s>=_2b&&e<=_2c;
_2e=s;
break;
}
if(!_2d){
this._setStartTimeOfDay(Math.floor(_2e/60),_2e%60,_2a);
}
}
},scrollView:function(dir){
var t=this._getStartTimeOfDay();
t=t.hours*60+t.minutes+(dir*this.timeSlotDuration);
this._setStartTimeOfDay(Math.floor(t/60),t%60);
},_mouseWheelScrollHander:function(e){
this.scrollView(e.wheelDelta>0?-1:1);
},refreshRendering:function(){
if(!this._initialized){
return;
}
this._validateProperties();
var _2f=this.renderData;
var rd=this._createRenderData();
this.renderData=rd;
this._createRendering(rd,_2f);
this._layoutRenderers(rd);
},_createRendering:function(_30,_31){
_d.set(this.sheetContainer,"height",_30.sheetHeight+"px");
this._configureScrollBar(_30);
this._buildColumnHeader(_30,_31);
this._buildRowHeader(_30,_31);
this._buildGrid(_30,_31);
this._buildItemContainer(_30,_31);
},_configureScrollBar:function(_32){
if(_9("ie")&&this.scrollBar){
_d.set(this.scrollBar.domNode,"width",(_32.scrollbarWidth+1)+"px");
}
var _33=this.isLeftToRight()?true:this.scrollBarRTLPosition=="right";
var _34=_33?"right":"left";
var _35=_33?"left":"right";
if(this.scrollBar){
this.scrollBar.set("maximum",_32.sheetHeight);
_d.set(this.scrollBar.domNode,_34,0);
_d.set(this.scrollBar.domNode,_33?"left":"right","auto");
}
_d.set(this.scrollContainer,_34,_32.scrollbarWidth+"px");
_d.set(this.scrollContainer,_35,"0");
_d.set(this.header,_34,_32.scrollbarWidth+"px");
_d.set(this.header,_35,"0");
if(this.buttonContainer&&this.owner!=null&&this.owner.currentView==this){
_d.set(this.buttonContainer,_34,_32.scrollbarWidth+"px");
_d.set(this.buttonContainer,_35,"0");
}
},_columnHeaderClick:function(e){
_6.stop(e);
var _36=_11("td",this.columnHeaderTable).indexOf(e.currentTarget);
this._onColumnHeaderClick({index:_36,date:this.renderData.dates[_36],triggerEvent:e});
},_buildColumnHeader:function(_37,_38){
var _39=this.columnHeaderTable;
if(!_39){
return;
}
var _3a=_37.columnCount-(_38?_38.columnCount:0);
if(_9("ie")==8){
if(this._colTableSave==null){
this._colTableSave=_7.clone(_39);
}else{
if(_3a<0){
this._cleanupColumnHeader();
this.columnHeader.removeChild(_39);
_f.destroy(_39);
_39=_7.clone(this._colTableSave);
this.columnHeaderTable=_39;
this.columnHeader.appendChild(_39);
_3a=_37.columnCount;
}
}
}
var _3b=_11("tbody",_39);
var trs=_11("tr",_39);
var _3c,tr,td;
if(_3b.length==1){
_3c=_3b[0];
}else{
_3c=_a.create("tbody",null,_39);
}
if(trs.length==1){
tr=trs[0];
}else{
tr=_f.create("tr",null,_3c);
}
if(_3a>0){
for(var i=0;i<_3a;i++){
td=_f.create("td",null,tr);
var h=[];
h.push(on(td,"click",_7.hitch(this,this._columnHeaderClick)));
if(_9("touch")){
h.push(on(td,"touchstart",function(e){
_6.stop(e);
_c.add(e.currentTarget,"Active");
}));
h.push(on(td,"touchend",function(e){
_6.stop(e);
_c.remove(e.currentTarget,"Active");
}));
}else{
h.push(on(td,"mousedown",function(e){
_6.stop(e);
_c.add(e.currentTarget,"Active");
}));
h.push(on(td,"mouseup",function(e){
_6.stop(e);
_c.remove(e.currentTarget,"Active");
}));
h.push(on(td,"mouseover",function(e){
_6.stop(e);
_c.add(e.currentTarget,"Hover");
}));
h.push(on(td,"mouseout",function(e){
_6.stop(e);
_c.remove(e.currentTarget,"Hover");
}));
}
this._columnHeaderHandlers.push(h);
}
}else{
_3a=-_3a;
for(var i=0;i<_3a;i++){
td=tr.lastChild;
tr.removeChild(td);
_f.destroy(td);
var _3d=this._columnHeaderHandlers.pop();
while(_3d.length>0){
_3d.pop().remove();
}
}
}
_11("td",_39).forEach(function(td,i){
td.className="";
if(i==0){
_c.add(td,"first-child");
}else{
if(i==this.renderData.columnCount-1){
_c.add(td,"last-child");
}
}
var d=_37.dates[i];
this._setText(td,this._formatColumnHeaderLabel(d));
this.styleColumnHeaderCell(td,d,_37);
},this);
if(this.yearColumnHeaderContent){
var d=_37.dates[0];
this._setText(this.yearColumnHeaderContent,_37.dateLocaleModule.format(d,{selector:"date",datePattern:"yyyy"}));
}
},_cleanupColumnHeader:function(){
while(this._columnHeaderHandlers.length>0){
var _3e=this._columnHeaderHandlers.pop();
while(_3e.length>0){
_3e.pop().remove();
}
}
},styleColumnHeaderCell:function(_3f,_40,_41){
if(this.isToday(_40)){
return _c.add(_3f,"dojoxCalendarToday");
}else{
if(this.isWeekEnd(_40)){
return _c.add(_3f,"dojoxCalendarWeekend");
}
}
},_buildRowHeader:function(_42,_43){
var _44=this.rowHeaderTable;
if(!_44){
return;
}
_d.set(_44,"height",_42.sheetHeight+"px");
var _45=_11("tbody",_44);
var _46,tr,td;
if(_45.length==1){
_46=_45[0];
}else{
_46=_f.create("tbody",null,_44);
}
var _47=_42.hourCount-(_43?_43.hourCount:0);
if(_47>0){
for(var i=0;i<_47;i++){
tr=_f.create("tr",null,_46);
td=_f.create("td",null,tr);
}
}else{
_47=-_47;
for(var i=0;i<_47;i++){
_46.removeChild(_46.lastChild);
}
}
var d=new Date(2000,0,1,0,0,0);
_11("tr",_44).forEach(function(tr,i){
var td=_11("td",tr)[0];
td.className="";
var _48=_42.hourSize;
if(_9("ie")==7){
_48-=2;
}
_d.set(tr,"height",_48+"px");
d.setHours(this.renderData.minHours+(i));
this.styleRowHeaderCell(td,d.getHours(),_42);
this._setText(td,this._formatRowHeaderLabel(d));
},this);
},styleRowHeaderCell:function(_49,h,_4a){
},_buildGrid:function(_4b,_4c){
var _4d=this.gridTable;
if(!_4d){
return;
}
_d.set(_4d,"height",_4b.sheetHeight+"px");
var _4e=Math.floor(60/_4b.slotDuration)*_4b.hourCount;
var _4f=_4e-(_4c?Math.floor(60/_4c.slotDuration)*_4c.hourCount:0);
var _50=_4f>0;
var _51=_4b.columnCount-(_4c?_4c.columnCount:0);
if(_9("ie")==8){
if(this._gridTableSave==null){
this._gridTableSave=_7.clone(_4d);
}else{
if(_51<0){
this.grid.removeChild(_4d);
_f.destroy(_4d);
_4d=_7.clone(this._gridTableSave);
this.gridTable=_4d;
this.grid.appendChild(_4d);
_51=_4b.columnCount;
_4f=_4e;
_50=true;
}
}
}
var _52=_11("tbody",_4d);
var _53;
if(_52.length==1){
_53=_52[0];
}else{
_53=_f.create("tbody",null,_4d);
}
if(_50){
for(var i=0;i<_4f;i++){
_f.create("tr",null,_53);
}
}else{
_4f=-_4f;
for(var i=0;i<_4f;i++){
_53.removeChild(_53.lastChild);
}
}
var _54=Math.floor(60/_4b.slotDuration)*_4b.hourCount-_4f;
var _55=_50||_51>0;
_51=_55?_51:-_51;
_11("tr",_4d).forEach(function(tr,i){
if(_55){
var len=i>=_54?_4b.columnCount:_51;
for(var i=0;i<len;i++){
_f.create("td",null,tr);
}
}else{
for(var i=0;i<_51;i++){
tr.removeChild(tr.lastChild);
}
}
});
_11("tr",_4d).forEach(function(tr,i){
_d.set(tr,"height",_4b.slotSize+"px");
if(i==0){
_c.add(tr,"first-child");
}else{
if(i==_4e-1){
_c.add(tr,"last-child");
}
}
var m=(i*this.renderData.slotDuration)%60;
_11("td",tr).forEach(function(td,col){
td.className="";
if(col==0){
_c.add(td,"first-child");
}else{
if(col==this.renderData.columnCount-1){
_c.add(td,"last-child");
}
}
var d=_4b.dates[col];
this.styleGridColumn(td,d,_4b);
switch(m){
case 0:
_c.add(td,"hour");
break;
case 30:
_c.add(td,"halfhour");
break;
case 15:
case 45:
_c.add(td,"quarterhour");
break;
}
},this);
},this);
},styleGridColumn:function(_56,_57,_58){
if(this.isToday(_57)){
return _c.add(_56,"dojoxCalendarToday");
}else{
if(this.isWeekEnd(_57)){
return _c.add(_56,"dojoxCalendarWeekend");
}
}
},_buildItemContainer:function(_59,_5a){
var _5b=this.itemContainerTable;
if(!_5b){
return;
}
var _5c=[];
_d.set(_5b,"height",_59.sheetHeight+"px");
var _5d=_59.columnCount-(_5a?_5a.columnCount:0);
if(_9("ie")==8){
if(this._itemTableSave==null){
this._itemTableSave=_7.clone(_5b);
}else{
if(_5d<0){
this.itemContainer.removeChild(_5b);
this._recycleItemRenderers(true);
_f.destroy(_5b);
_5b=_7.clone(this._itemTableSave);
this.itemContainerTable=_5b;
this.itemContainer.appendChild(_5b);
_5d=_59.columnCount;
}
}
}
var _5e=_11("tbody",_5b);
var trs=_11("tr",_5b);
var _5f,tr,td;
if(_5e.length==1){
_5f=_5e[0];
}else{
_5f=_f.create("tbody",null,_5b);
}
if(trs.length==1){
tr=trs[0];
}else{
tr=_f.create("tr",null,_5f);
}
if(_5d>0){
for(var i=0;i<_5d;i++){
td=_f.create("td",null,tr);
_f.create("div",{"className":"dojoxCalendarContainerColumn"},td);
}
}else{
_5d=-_5d;
for(var i=0;i<_5d;i++){
tr.removeChild(tr.lastChild);
}
}
_11("td>div",_5b).forEach(function(div,i){
_d.set(div,{"height":_59.sheetHeight+"px"});
_5c.push(div);
},this);
_59.cells=_5c;
},_overlapLayoutPass2:function(_60){
var i,j,_61,_62;
_61=_60[_60.length-1];
for(j=0;j<_61.length;j++){
_61[j].extent=1;
}
for(i=0;i<_60.length-1;i++){
_61=_60[i];
for(var j=0;j<_61.length;j++){
_62=_61[j];
if(_62.extent==-1){
_62.extent=1;
var _63=0;
var _64=false;
for(var k=i+1;k<_60.length&&!_64;k++){
var _65=_60[k];
for(var l=0;l<_65.length&&!_64;l++){
var _66=_65[l];
if(_62.start<_66.end&&_66.start<_62.end){
_64=true;
}
}
if(!_64){
_63++;
}
}
_62.extent+=_63;
}
}
}
},_defaultItemToRendererKindFunc:function(_67){
return "vertical";
},_layoutInterval:function(_68,_69,_6a,end,_6b){
var _6c=[];
_68.colW=this.itemContainer.offsetWidth/_68.columnCount;
for(var i=0;i<_6b.length;i++){
var _6d=_6b[i];
if(this._itemToRendererKind(_6d)=="vertical"){
_6c.push(_6d);
}
}
if(_6c.length>0){
this._layoutVerticalItems(_68,_69,_6a,end,_6c);
}
},_layoutVerticalItems:function(_6e,_6f,_70,_71,_72){
if(this.verticalRenderer==null){
return;
}
var _73=_6e.cells[_6f];
var _74=[];
for(var i=0;i<_72.length;i++){
var _75=_72[i];
var _76=this.computeRangeOverlap(_6e,_75.startTime,_75.endTime,_70,_71);
var top=this.computeProjectionOnDate(_6e,_70,_76[0],_6e.sheetHeight);
var _77=this.computeProjectionOnDate(_6e,_70,_76[1],_6e.sheetHeight);
if(_77>top){
var _78=_7.mixin({start:top,end:_77,range:_76,item:_75},_75);
_74.push(_78);
}
}
var _79=this.computeOverlapping(_74,this._overlapLayoutPass2).numLanes;
var _7a=this.percentOverlap/100;
for(i=0;i<_74.length;i++){
_75=_74[i];
var _7b=_75.lane;
var _7c=_75.extent;
var w;
var _7d;
if(_7a==0){
w=_79==1?_6e.colW:((_6e.colW-(_79-1)*this.horizontalGap)/_79);
_7d=_7b*(w+this.horizontalGap);
w=_7c==1?w:w*_7c+(_7c-1)*this.horizontalGap;
w=100*w/_6e.colW;
_7d=100*_7d/_6e.colW;
}else{
w=_79==1?100:(100/(_79-(_79-1)*_7a));
_7d=_7b*(w-_7a*w);
w=_7c==1?w:w*(_7c-(_7c-1)*_7a);
}
var ir=this._createRenderer(_75,"vertical",this.verticalRenderer,"dojoxCalendarVertical");
_d.set(ir.container,{"top":_75.start+"px","left":_7d+"%","width":w+"%","height":(_75.end-_75.start+1)+"px"});
var _7e=this.isItemBeingEdited(_75);
var _7f=this.isItemSelected(_75);
var _80=this.isItemHovered(_75);
var _81=this.isItemFocused(_75);
var _82=ir.renderer;
_82.set("hovered",_80);
_82.set("selected",_7f);
_82.set("edited",_7e);
_82.set("focused",this.showFocus?_81:false);
_82.set("moveEnabled",this.isItemMoveEnabled(_75,"vertical"));
_82.set("resizeEnabled",this.isItemResizeEnabled(_75,"vertical"));
this.applyRendererZIndex(_75,ir,_80,_7f,_7e,_81);
if(_82.updateRendering){
_82.updateRendering(w,_75.end-_75.start+1);
}
_f.place(ir.container,_73);
_d.set(ir.container,"display","block");
}
},_sortItemsFunction:function(a,b){
var res=this.dateModule.compare(a.startTime,b.startTime);
if(res==0){
res=-1*this.dateModule.compare(a.endTime,b.endTime);
}
return this.isLeftToRight()?res:-res;
},getTime:function(e,x,y,_83){
if(e!=null){
var _84=_e.position(this.itemContainer,true);
if(e.touches){
_83=_83==undefined?0:_83;
x=e.touches[_83].pageX-_84.x;
y=e.touches[_83].pageY-_84.y;
}else{
x=e.pageX-_84.x;
y=e.pageY-_84.y;
}
}
var r=_e.getContentBox(this.itemContainer);
if(!this.isLeftToRight()){
x=r.w-x;
}
if(x<0){
x=0;
}else{
if(x>r.w){
x=r.w-1;
}
}
if(y<0){
y=0;
}else{
if(y>r.h){
y=r.h-1;
}
}
var col=Math.floor(x/(_e.getMarginBox(this.itemContainer).w/this.renderData.columnCount));
var t=this.getTimeOfDay(y,this.renderData);
var _85=null;
if(col<this.renderData.dates.length){
_85=this.newDate(this.renderData.dates[col]);
_85=this.floorToDay(_85,true);
_85.setHours(t.hours);
_85.setMinutes(t.minutes);
}
return _85;
},_onGridMouseUp:function(e){
this.inherited(arguments);
if(this._gridMouseDown){
this._gridMouseDown=false;
this._onGridClick({date:this.getTime(e),triggerEvent:e});
}
},_onGridTouchStart:function(e){
this.inherited(arguments);
var g=this._gridProps;
g.moved=false;
g.start=e.touches[0].screenY;
g.scrollTop=this._getScrollPosition();
},_onGridTouchMove:function(e){
this.inherited(arguments);
if(e.touches.length>1&&!this._isEditing){
_6.stop(e);
return;
}
if(this._gridProps&&!this._isEditing){
var _86={x:e.touches[0].screenX,y:e.touches[0].screenY};
var p=this._edProps;
if(!p||p&&(Math.abs(_86.x-p.start.x)>25||Math.abs(_86.y-p.start.y)>25)){
this._gridProps.moved=true;
var d=e.touches[0].screenY-this._gridProps.start;
var _87=this._gridProps.scrollTop-d;
var max=this.itemContainer.offsetHeight-this.scrollContainer.offsetHeight;
if(_87<0){
this._gridProps.start=e.touches[0].screenY;
this._setScrollImpl(0);
this._gridProps.scrollTop=0;
}else{
if(_87>max){
this._gridProps.start=e.touches[0].screenY;
this._setScrollImpl(max);
this._gridProps.scrollTop=max;
}else{
this._setScrollImpl(_87);
}
}
}
}
},_onGridTouchEnd:function(e){
this.inherited(arguments);
var g=this._gridProps;
if(g){
if(!this._isEditing){
if(!g.moved){
if(!g.fromItem&&!g.editingOnStart){
this.selectFromEvent(e,null,null,true);
}
if(!g.fromItem){
if(this._pendingDoubleTap&&this._pendingDoubleTap.grid){
this._onGridDoubleClick({date:this.getTime(this._gridProps.event),triggerEvent:this._gridProps.event});
clearTimeout(this._pendingDoubleTap.timer);
delete this._pendingDoubleTap;
}else{
this._onGridClick({date:this.getTime(this._gridProps.event),triggerEvent:this._gridProps.event});
this._pendingDoubleTap={grid:true,timer:setTimeout(_7.hitch(this,function(){
delete this._pendingDoubleTap;
}),this.doubleTapDelay)};
}
}
}
}
this._gridProps=null;
}
},_onColumnHeaderClick:function(e){
this._dispatchCalendarEvt(e,"onColumnHeaderClick");
},onColumnHeaderClick:function(e){
},getTimeOfDay:function(pos,rd){
var _88=rd.minHours*60;
var _89=rd.maxHours*60;
var _8a=_88+(pos*(_89-_88)/rd.sheetHeight);
var d={hours:Math.floor(_8a/60),minutes:Math.floor(_8a%60)};
return d;
},_isItemInView:function(_8b){
var res=this.inherited(arguments);
if(res){
var rd=this.renderData;
var len=rd.dateModule.difference(_8b.startTime,_8b.endTime,"millisecond");
var _8c=(24-rd.maxHours+rd.minHours)*3600000;
if(len>_8c){
return true;
}
var _8d=_8b.startTime.getHours()*60+_8b.startTime.getMinutes();
var _8e=_8b.endTime.getHours()*60+_8b.endTime.getMinutes();
var sV=rd.minHours*60;
var eV=rd.maxHours*60;
if(_8d>0&&_8d<sV||_8d>eV&&_8d<=1440){
return false;
}
if(_8e>0&&_8e<sV||_8e>eV&&_8e<=1440){
return false;
}
}
return res;
},_ensureItemInView:function(_8f){
var _90;
var _91=_8f.startTime;
var _92=_8f.endTime;
var rd=this.renderData;
var cal=rd.dateModule;
var len=Math.abs(cal.difference(_8f.startTime,_8f.endTime,"millisecond"));
var _93=(24-rd.maxHours+rd.minHours)*3600000;
if(len>_93){
return false;
}
var _94=_91.getHours()*60+_91.getMinutes();
var _95=_92.getHours()*60+_92.getMinutes();
var sV=rd.minHours*60;
var eV=rd.maxHours*60;
if(_94>0&&_94<sV){
this.floorToDay(_8f.startTime,true,rd);
_8f.startTime.setHours(rd.minHours);
_8f.endTime=cal.add(_8f.startTime,"millisecond",len);
_90=true;
}else{
if(_94>eV&&_94<=1440){
this.floorToDay(_8f.startTime,true,rd);
_8f.startTime=cal.add(_8f.startTime,"day",1);
_8f.startTime.setHours(rd.minHours);
_8f.endTime=cal.add(_8f.startTime,"millisecond",len);
_90=true;
}
}
if(_95>0&&_95<sV){
this.floorToDay(_8f.endTime,true,rd);
_8f.endTime=cal.add(_8f.endTime,"day",-1);
_8f.endTime.setHours(rd.maxHours);
_8f.startTime=cal.add(_8f.endTime,"millisecond",-len);
_90=true;
}else{
if(_95>eV&&_95<=1440){
this.floorToDay(_8f.endTime,true,rd);
_8f.endTime.setHours(rd.maxHours);
_8f.startTime=cal.add(_8f.endTime,"millisecond",-len);
_90=true;
}
}
_90=_90||this.inherited(arguments);
return _90;
},_onScrollTimer_tick:function(){
this._scrollToPosition(this._getScrollPosition()+this._scrollProps.scrollStep);
},snapUnit:"minute",snapSteps:15,minDurationUnit:"minute",minDurationSteps:15,liveLayout:false,stayInView:true,allowStartEndSwap:true,allowResizeLessThan24H:true});
});