Pager.js
10.7 KB
//>>built
require({cache:{"url:dojox/widget/Pager/Pager.html":'\x3cdiv dojoAttachPoint\x3d"pagerContainer" tabIndex\x3d"0" dojoAttachEvent\x3d"onkeypress: _handleKey, onfocus: _a11yStyle, onblur:_a11yStyle" class\x3d"${orientation}PagerContainer"\x3e\r\n \x3cdiv class\x3d"pagerContainer"\x3e\r\n\t\t\x3cdiv dojoAttachPoint\x3d"pagerContainerStatus" class\x3d"${orientation}PagerStatus"\x3e\x3c/div\x3e\r\n\t\t\x3cdiv dojoAttachPoint\x3d"pagerContainerView" class\x3d"${orientation}PagerView"\x3e\r\n\t\t \x3cdiv dojoAttachPoint\x3d"pagerItemContainer"\x3e\x3cul dojoAttachPoint\x3d"pagerItems" class\x3d"pagerItems"\x3e\x3c/ul\x3e\x3c/div\x3e\r\n\t\t\x3c/div\x3e\r\n\t\t\x3cdiv dojoAttachPoint\x3d"pagerContainerPager" class\x3d"${orientation}PagerPager"\x3e\r\n\t\t\t\x3cdiv tabIndex\x3d"0" dojoAttachPoint\x3d"pagerNext" class\x3d"pagerIconContainer" dojoAttachEvent\x3d"onclick: _next"\x3e\x3cimg dojoAttachPoint\x3d"pagerIconNext" src\x3d"${iconNext}" alt\x3d"Next" /\x3e\x3c/div\x3e\r\n\t\t\t\x3cdiv tabIndex\x3d"0" dojoAttachPoint\x3d"pagerPrevious" class\x3d"pagerIconContainer" dojoAttachEvent\x3d"onclick: _previous"\x3e\x3cimg dojoAttachPoint\x3d"pagerIconPrevious" src\x3d"${iconPrevious}" alt\x3d"Previous" /\x3e\x3c/div\x3e\r\n\t\t\x3c/div\x3e\r\n \x3c/div\x3e\r\n\t\x3cdiv dojoAttachPoint\x3d"containerNode" style\x3d"display:none"\x3e\x3c/div\x3e\r\n\x3c/div\x3e'}});
define("dojo/aspect dojo/_base/array dojo/_base/declare dojo/dom dojo/dom-attr dojo/dom-class dojo/dom-construct dojo/dom-geometry dojo/dom-style dojo/fx dojo/_base/kernel dojo/keys dojo/_base/lang dojo/on dijit/_WidgetBase dijit/_TemplatedMixin ./PagerItem dojo/text!./Pager/Pager.html".split(" "),function(t,v,w,g,x,q,y,p,a,h,z,k,n,u,A,B,C,D){z.experimental("dojox.widget.Pager");return w("dojox.widget.Pager",[A,B],{templateString:D,iconPrevious:"",iconNext:"",iconPage:require.toUrl("dojox/widget/Pager/images/pageInactive.png"),
iconPageActive:require.toUrl("dojox/widget/Pager/images/pageActive.png"),store:null,orientation:"horizontal",statusPos:"leading",pagerPos:"center",duration:500,itemSpace:2,resizeChildren:!0,itemClass:C,itemsPage:3,postMixInProperties:function(){var c="horizontal"==this.orientation;n.mixin(this,{_totalPages:0,_currentPage:1,dirClass:"pager"+(c?"Horizontal":"Vertical"),iconNext:require.toUrl("dojox/widget/Pager/images/"+(c?"h":"v")+"Next.png"),iconPrevious:require.toUrl("dojox/widget/Pager/images/"+
(c?"h":"v")+"Previous.png")})},_next:function(){this.isLeftToRight()?this._pagerNext():this._pagerPrevious()},_previous:function(){this.isLeftToRight()?this._pagerPrevious():this._pagerNext()},postCreate:function(){this.inherited(arguments);this.store.fetch({onComplete:n.hitch(this,"_init")})},_a11yStyle:function(c){q.toggle(c.target,"pagerFocus","focus"==c.type)},_handleKey:function(c){switch(c.charCode==k.SPACE?k.SPACE:c.keyCode){case k.UP_ARROW:case k.RIGHT_ARROW:case 110:case 78:c.preventDefault();
this._next();break;case k.DOWN_ARROW:case k.LEFT_ARROW:case 112:case 80:c.preventDefault();this._previous();break;case k.ENTER:switch(c.target){case this.pagerNext:this._next();break;case this.pagerPrevious:this._previous()}}},_init:function(c){this.items=c;this._renderPages();this._renderStatus();this._renderPager()},generatePagerItem:function(c,a){var b=this.itemClass,b="string"==typeof b?n.getObject(b):b;c=y.create("div",{innerHTML:c.content});return new b({id:this.id+"-item-"+(a+1)},c)},_renderPages:function(){var c=
this.pagerContainerView,e="horizontal"==this.orientation;if(e){var b=p.getMarginBox(this.pagerContainerPager).h,d=p.getMarginBox(this.pagerContainerStatus).h;if("center"!=this.pagerPos)var f=b+d;else{var f=d,m=this.pagerIconNext.width,l=a.get(c,"width");a.set(c,{width:l-2*m+"px",marginLeft:this.pagerIconNext.width+"px",marginRight:this.pagerIconNext.width+"px"})}f=a.get(this.pagerContainer,"height")-f;a.set(this.pagerContainerView,"height",f+"px");var g=Math.floor(a.get(c,"width")/this.itemsPage);
"trailing"==this.statusPos?("center"!=this.pagerPos&&a.set(c,"marginTop",b+"px"),a.set(c,"marginBottom",d+"px")):(a.set(c,"marginTop",d+"px"),"center"!=this.pagerPos&&a.set(c,"marginTop",b+"px"))}else b=p.getMarginBox(this.pagerContainerPager).w,d=p.getMarginBox(this.pagerContainerStatus).w,a.get(this.pagerContainer,"width"),"center"!=this.pagerPos?f=b+d:(f=d,m=this.pagerIconNext.height,l=a.get(c,"height"),a.set(c,{height:l-2*m+"px",marginTop:this.pagerIconNext.height+"px",marginBottom:this.pagerIconNext.height+
"px"})),f=a.get(this.pagerContainer,"width")-f,a.set(c,"width",f+"px"),g=Math.floor(a.get(c,"height")/this.itemsPage),"trailing"==this.statusPos?("center"!=this.pagerPos&&a.set(c,"marginLeft",b+"px"),a.set(c,"marginRight",d+"px")):(a.set(c,"marginLeft",d+"px"),"center"!=this.pagerPos&&a.set(c,"marginRight",b+"px"));var h="padding"+(e?"Left":"Top"),n="padding"+(e?"Right":"Bottom");v.forEach(this.items,function(b,d){b=this.generatePagerItem(b,d);var f={};this.pagerItems.appendChild(b.domNode);f[e?"width":
"height"]=g-this.itemSpace+"px";var m=e?"height":"width";f[m]=a.get(c,m)+"px";a.set(b.containerNode,f);this.resizeChildren&&b.resizeChildren();b.parseChildren();a.set(b.domNode,"position","absolute");d<this.itemsPage?(d*=g,f=e?"left":"top",a.set(b.domNode,e?"top":"left","0px"),a.set(b.domNode,f,d+"px")):(a.set(b.domNode,"top","-1000px"),a.set(b.domNode,"left","-1000px"));a.set(b.domNode,n,this.itemSpace/2+"px");a.set(b.domNode,h,this.itemSpace/2+"px")},this)},_renderPager:function(){var c=this.pagerContainerPager;
"horizontal"==this.orientation?("center"!=this.statusPos&&("trailing"==this.statusPos?a.set(c,"top","0px"):a.set(c,"bottom","0px")),a.set(this.pagerNext,"right","0px"),a.set(this.pagerPrevious,"left","0px")):("trailing"==this.statusPos?a.set(c,"left","0px"):a.set(c,"right","0px"),a.set(this.pagerNext,"bottom","0px"),a.set(this.pagerPrevious,"top","0px"))},_renderStatus:function(){this._totalPages=Math.ceil(this.items.length/this.itemsPage);this.iconsLoaded=this.iconHeight=this.iconWidth=0;this._iconConnects=
[];for(var c=1;c<=this._totalPages;c++){var e=new Image,b=c;u(e,"click",n.hitch(this,"_pagerSkip",b));this._iconConnects[b]=u(e,"load",n.hitch(this,function(c){this.iconWidth+=e.width;this.iconHeight+=e.height;this.iconsLoaded++;if(this._totalPages==this.iconsLoaded)if("horizontal"==this.orientation){if("trailing"==this.statusPos){if("center"==this.pagerPos){var b=a.get(this.pagerContainer,"height"),d=a.get(this.pagerContainerStatus,"height");a.set(this.pagerContainerPager,"top",b/2-d/2+"px")}a.set(this.pagerContainerStatus,
"bottom","0px")}else"center"==this.pagerPos&&(b=a.get(this.pagerContainer,"height"),d=a.get(this.pagerContainerStatus,"height"),a.set(this.pagerContainerPager,"bottom",b/2-d/2+"px")),a.set(this.pagerContainerStatus,"top","0px");b=a.get(this.pagerContainer,"width")/2-this.iconWidth/2;a.set(this.pagerContainerStatus,this.isLeftToRight()?"paddingLeft":"paddingRight",b+"px")}else"trailing"==this.statusPos?("center"==this.pagerPos&&(b=a.get(this.pagerContainer,"width"),d=a.get(this.pagerContainerStatus,
"width"),a.set(this.pagerContainerPager,"left",b/2-d/2+"px")),a.set(this.pagerContainerStatus,"right","0px")):("center"==this.pagerPos&&(b=a.get(this.pagerContainer,"width"),d=a.get(this.pagerContainerStatus,"width"),a.set(this.pagerContainerPager,"right",b/2-d/2+"px")),a.set(this.pagerContainerStatus,"left","0px")),b=a.get(this.pagerContainer,"height")/2-this.iconHeight/2,a.set(this.pagerContainerStatus,"paddingTop",b+"px");this._iconConnects[c].remove()},b));e.src=c==this._currentPage?this.iconPageActive:
this.iconPage;b=c;q.add(e,this.orientation+"PagerIcon");x.set(e,"id",this.id+"-status-"+c);this.pagerContainerStatus.appendChild(e);"vertical"==this.orientation&&a.set(e,"display","block")}},_pagerSkip:function(c){if(this._currentPage!=c){var a;c<this._currentPage?(a=this._currentPage-c,c=this._totalPages+c-this._currentPage):(a=this._totalPages+this._currentPage-c,c-=this._currentPage);var b=c>a;this._toScroll=b?a:c;var d=b?"_pagerPrevious":"_pagerNext",f=t.after(this,"onScrollEnd",n.hitch(this,
function(){this._toScroll--;if(1>this._toScroll)f.remove();else this[d]()}),!0);this[d]()}},_pagerNext:function(){if(!this._anim){for(var c=[],e=this._currentPage*this.itemsPage;e>(this._currentPage-1)*this.itemsPage;e--)if(g.byId(this.id+"-item-"+e)){var b=g.byId(this.id+"-item-"+e),d=p.getMarginBox(b);"horizontal"==this.orientation?(d=d.l-this.itemsPage*d.w,c.push(h.slideTo({node:b,left:d,duration:this.duration}))):(d=d.t-this.itemsPage*d.h,c.push(h.slideTo({node:b,top:d,duration:this.duration})))}var f=
this._currentPage;this._currentPage==this._totalPages?this._currentPage=1:this._currentPage++;for(var m=this.itemsPage,e=this._currentPage*this.itemsPage;e>(this._currentPage-1)*this.itemsPage;e--){if(g.byId(this.id+"-item-"+e))if(b=g.byId(this.id+"-item-"+e),d=p.getMarginBox(b),"horizontal"==this.orientation){var l=a.get(this.pagerContainerView,"width")+(m-1)*d.w-1;a.set(b,"left",l+"px");a.set(b,"top","0px");d=l-this.itemsPage*d.w;c.push(h.slideTo({node:b,left:d,duration:this.duration}))}else l=
a.get(this.pagerContainerView,"height")+(m-1)*d.h-1,a.set(b,"top",l+"px"),a.set(b,"left","0px"),d=l-this.itemsPage*d.h,c.push(h.slideTo({node:b,top:d,duration:this.duration}));m--}this._anim=h.combine(c);var k=t.after(this._anim,"onEnd",n.hitch(this,function(){delete this._anim;this.onScrollEnd();k.remove()}),!0);this._anim.play();g.byId(this.id+"-status-"+f).src=this.iconPage;g.byId(this.id+"-status-"+this._currentPage).src=this.iconPageActive}},_pagerPrevious:function(){if(!this._anim){for(var c=
[],e=this._currentPage*this.itemsPage;e>(this._currentPage-1)*this.itemsPage;e--)if(g.byId(this.id+"-item-"+e)){var b=g.byId(this.id+"-item-"+e),d=p.getMarginBox(b);if("horizontal"==this.orientation){var f=a.get(b,"left")+this.itemsPage*d.w;c.push(h.slideTo({node:b,left:f,duration:this.duration}))}else f=a.get(b,"top")+this.itemsPage*d.h,c.push(h.slideTo({node:b,top:f,duration:this.duration}))}var m=this._currentPage;1==this._currentPage?this._currentPage=this._totalPages:this._currentPage--;for(var l=
this.itemsPage,k=1,e=this._currentPage*this.itemsPage;e>(this._currentPage-1)*this.itemsPage;e--){if(g.byId(this.id+"-item-"+e))if(b=g.byId(this.id+"-item-"+e),d=p.getMarginBox(b),"horizontal"==this.orientation){var r=-(k*d.w)+1;a.set(b,"left",r+"px");a.set(b,"top","0px");f=(l-1)*d.w;c.push(h.slideTo({node:b,left:f,duration:this.duration}));f=r+this.itemsPage*d.w;c.push(h.slideTo({node:b,left:f,duration:this.duration}))}else r=-(k*d.h+1),a.set(b,"top",r+"px"),a.set(b,"left","0px"),f=(l-1)*d.h,c.push(h.slideTo({node:b,
top:f,duration:this.duration}));l--;k++}this._anim=h.combine(c);var q=t.after(this._anim,"onEnd",n.hitch(this,function(){delete this._anim;this.onScrollEnd();q.remove()}),!0);this._anim.play();g.byId(this.id+"-status-"+m).src=this.iconPage;g.byId(this.id+"-status-"+this._currentPage).src=this.iconPageActive}},onScrollEnd:function(){}})});