define("paginatedGridGallery",["lodash","react","santaProps","core","utils","siteUtils","imageClientApi","galleriesCommon","image"],function(a,b,c,d,e,f,g,h,i){"use strict";var j={numCols:3,maxRows:3,margin:0,transition:"seq_crossFade_All",transDuration:1,autoplayInterval:3,autoplay:false,showAutoplay:true,showNavigation:true,showCounter:true};var k=d.compMixins;var l=d.componentUtils;var m=e.linkRenderer;var n=h.utils.matrixCalculations;var o=h.utils.galleriesHelperFunctions;var p=l.galleryPagingCalculations;var q=l.matrixAnimationManipulation;function r(a,b,c,d,e,f){var g=n.getItemWidth(a.margin,a.numCols,b,o.getSkinWidthDiff(e)),h=n.getItemHeight(a.margin,c,d,o.getSkinHeightDiff(e)),i=b-o.getSkinWidthDiff(e)+a.margin,j=c-o.getSkinHeightDiff(e)+a.margin;return{width:f==="Shrink"?g:i,height:f==="Shrink"?h:j}}function s(a,b){return{visibility:"visible",position:"absolute",cursor:"pointer",padding:0,left:parseInt(a.props.style.left,10)+o.getSkinWidthDiff(b)/2,top:parseInt(a.props.style.top,10),width:parseInt(a.props.containerWidth,10),height:parseInt(a.props.containerHeight,10)}}function t(b,c){var d=Math.max(b.length,c.length);var e="emptyDivToFillMatrix";a.times(d,function(a){if(!b[a]){b[a]=e}if(!c[a]){c[a]=e}})}function u(a,b){var c=b;if(!c){c=a===true?"zoomMode":"disabled"}return c}function v(c,d){var g=a.defaults({href:d.href||"#",style:a.assign({height:"100%",display:"block",width:"100%",position:"absolute",top:"0px",left:"0px",backgroundColor:"#ffffff",filter:"alpha(opacity=0)",opacity:"0",cursor:d.cursor},e.style.prefix({userSelect:"none",userDrag:"none",userModify:"read-only"}))},d);if(!d.href){g.onClick=function(a){function b(a){return{id:a,name:f.constants.ACTION_TYPES.ITEM_CLICKED,timeStamp:window.performance?window.performance.now():window.Date.now()}}this.props.handleAction({type:"comp",name:f.constants.ACTION_TYPES.ITEM_CLICKED,sourceId:this.props.id,pageId:this.props.rootId},b(c.id));a.preventDefault();a.stopPropagation()}.bind(this)}return b.DOM.a(g)}function w(b,c,d,e,f,g,h,i){var j={},k="Go to link",l="pointer",m=u(c.expandEnabled,c.galleryImageOnClickAction),n;if(b.link){n=e(g,i,d)}if(c.goToLinkText){k=c.goToLinkText}if(m==="zoomMode"){j=f(i,d,b,h)}else if(n&&m==="goToLink"){j=n}else{l="default"}a.assign(j,{linkData:n,goToLinkText:k,cursor:l,clickAction:m});return j}function x(a){return a?a.title:""}function y(a){return a?a.description:""}return{displayName:"PaginatedGridGallery",mixins:[k.skinBasedComp,h.mixins.galleryAutoPlayMixin,k.animationsMixin,k.timeoutsMixin,k.compStateMixin],propTypes:a.assign({compProp:c.Types.Component.compProp.isRequired,compData:c.Types.Component.compData.isRequired,id:c.Types.Component.id.isRequired,skin:c.Types.Component.skin.isRequired,style:c.Types.Component.style.isRequired,linkRenderInfo:c.Types.Link.linkRenderInfo.isRequired,rootNavigationInfo:c.Types.Component.rootNavigationInfo.isRequired,isZoomOpened:c.Types.isZoomOpened.isRequired,windowTouchEventsAspect:c.Types.SiteAspects.windowTouchEvents.isRequired,isMobileView:c.Types.isMobileView,isMobileDevice:c.Types.Device.isMobileDevice,isTabletDevice:c.Types.Device.isTabletDevice,isPlayingAllowed:c.Types.RenderFlags.isPlayingAllowed,onAnimationCompleteCallback:b.PropTypes.func,createGalleryItem:b.PropTypes.func,getItemRef:b.PropTypes.func,compActions:c.Types.Component.compActions.isRequired},c.santaTypesUtils.getSantaTypesByDefinition(i)),statics:{useSantaTypes:true,behaviors:{nextSlide:{methodName:"next"},prevSlide:{methodName:"prev"}},publicState:["currentIndex"]},getInitialState:function(){this.props.windowTouchEventsAspect.registerToWindowTouchEvent("touchStart",this);this.isAnimating=false;return{hoveredImage:null,currentIndex:0,$itemSelection:"idle",$mobile:this.props.isMobileDevice||this.props.isTabletDevice?"mobile":"notMobile",$displayDevice:this.props.isMobileView?"mobileView":"desktopView",$animationInProcess:null,$touchRollOverSupport:"touchRollOut"}},componentWillReceiveProps:function(a){var b=false;var c={$mobile:a.isMobileDevice||a.isTabletDevice?"mobile":"notMobile",$displayDevice:a.isMobileView?"mobileView":"desktopView"};if(this.props.compProp.autoplay!==a.compProp.autoplay){var d=a.compProp.autoplay&&!this.props.isZoomOpened&&this.props.isPlayingAllowed?"autoplayOn":"autoplayOff";b=true;c.shouldAutoPlay=a.compProp.autoplay;c.$slideshow=d}this.setState(c,function(){if(b){this.updateAutoplayState();this.handleAction(c.$slideshow)}}.bind(this))},componentDidMount:function(){this.updateAutoplayState()},componentWillUnmount:function(){this.props.windowTouchEventsAspect.unregisterFromWindowTouchEvent("touchStart",this)},getButtonVisibility:function(a,b){if(this.props.compProp.showNavigation===false||(this.state.currentIndex===a&&this.state.currentIndex===b||this.props.compProp.isHidden)){return"hidden"}return"visible"},getSkinProperties:function(){var b=a.defaults(this.props.compProp,j);var c=this.props.compData;var d=p.getPageItems(c.items,this.state.currentIndex,b.numCols,b.maxRows);var e=this.state.hoveredImage?this.state.hoveredImage.props.compData:null;var f=this.state.hoveredImage?w(e,b,this.props.rootNavigationInfo,m.renderLink,m.renderImageZoomLink,e.link,c.id,this.props.linkRenderInfo):{};var g=p.getNextPageItemIndex(this.state.currentIndex,b.numCols,b.maxRows,c.items.length);var h=p.getPrevPageItemIndex(this.state.currentIndex,b.numCols,b.maxRows,c.items.length);var i=p.getPageItems(c.items,g,b.numCols,b.maxRows);var k=p.getPageItems(c.items,h,b.numCols,b.maxRows);var l=this.getButtonVisibility(g,h);var n=!this.props.compProp.isHidden&&this.props.compProp.showCounter&&d.length>0?"visible":"hidden";var q=this.classSet({"show-counter":l!=="hidden"||n!=="hidden"});return{"":{"data-height-diff":o.getSkinHeightDiff(this.props.skin),"data-width-diff":o.getSkinWidthDiff(this.props.skin),onMouseLeave:function(a,b){this.onRollOut(a,b,true)}.bind(this),style:{overflow:"hidden"}},itemsContainer:{children:this.createDisplayedItems(d,i,k,g,h),"data-gallery-id":this.props.id,className:q,style:{position:"relative",overflow:"hidden",width:this.props.style.width-o.getSkinWidthDiff(this.props.skin),height:this.props.style.height-o.getSkinHeightDiff(this.props.skin)}},buttonPrev:{onClick:function(a){if(a){a.stopPropagation()}this.prev()}.bind(this),"data-gallery-id":this.props.id,style:{visibility:l}},buttonNext:{onClick:function(a){if(a){a.stopPropagation()}this.next()}.bind(this),"data-gallery-id":this.props.id,style:{visibility:l}},counter:{children:p.getCounterText(this.state.currentIndex,b.numCols,b.maxRows,c.items.length),style:{visibility:n},"data-gallery-id":this.props.id},autoplay:{onClick:this.toggleAutoPlay,"data-gallery-id":this.props.id,style:{cursor:"pointer",visibility:this.shouldShowAutoPlay()?"visible":"hidden"}},rolloverHolder:{style:this.state.hoveredImage?s(this.state.hoveredImage,this.props.skin):{visibility:"hidden",cursor:"pointer"},"data-gallery-id":this.props.id,addChildBefore:[v.call(this,e,f),"link"]},title:{children:this.state.hoveredImage?x(e):"","data-gallery-id":this.props.id},description:{children:this.state.hoveredImage?y(e):"","data-gallery-id":this.props.id},link:a.merge(f.linkData,{children:f.goToLinkText,"data-gallery-id":this.props.id,refInParent:"link",style:{display:f.clickAction==="goToLink"||!f.linkData?"none":"block"}}),textWrapper:{"data-gallery-id":this.props.id}}},onMouseEnter:function(a){var b=this.refs[a];if(this.state.hoveredImage!==b){this.setState({hoveredImage:b,$itemSelection:"rollover"})}},onRollOut:function(a,b,c){if(a.target.tagName!=="IMG"||c){this.setState({hoveredImage:null,$itemSelection:"idle"})}},onComponentTouchStart:function(a){this.onMouseEnter(a);if(this.state.$touchRollOverSupport==="touchRollOut"){this.setState({$touchRollOverSupport:"touchRollOver"})}},onWindowTouchStart:function(a){var b=a.target.getAttribute("data-gallery-id")||a.target.parentNode.getAttribute("data-gallery-id");if(this.state.$touchRollOverSupport==="touchRollOver"&&b!==this.props.id){this.onRollOut({target:""},null,true);this.setState({$touchRollOverSupport:"touchRollOut"})}},next:function(a){this.movePage(false,a)},prev:function(a){this.movePage(true,a)},movePage:function(a,b){var c=this.props.compProp;var d=this.props.compData;var e=a?p.getPrevPageItemIndex(this.state.currentIndex,c.numCols,c.maxRows,d.items.length):p.getNextPageItemIndex(this.state.currentIndex,c.numCols,c.maxRows,d.items.length);if(this.isAnimating||e===this.state.currentIndex){if(!this._movePageQueue){this._movePageQueue=[]}this._movePageQueue.push(a);return}var f=p.getPageItems(d.items,e,c.numCols,c.maxRows);var g=p.getPageItems(d.items,this.state.currentIndex,c.numCols,c.maxRows);var h=this.convertDataItemsToRefs(g,this.state.currentIndex);var i=this.convertDataItemsToRefs(f,e);if(f){this.setState({$animationInProcess:"animationInProcess",$itemSelection:"idle"});this.performAnimation(h,i,a,e,b)}},performAnimation:function(b,c,d,e,f){var g=this.props.compProp;var h=n.getAvailableRowsNumber(g.maxRows,g.numCols,this.props.compData.items.length);var i=q.getSortedArrayAndStagger(g.transition,b,c,h,g.numCols,this.timingFunctionIndex||0);var j=i.transName;var k=this.props.style.height;var l=r(g,this.props.style.width,k,h,this.props.skin,j);this.timingFunctionIndex=i.timingFunctionIndex+1;var m=g.transition==="none"?0:g.transDuration;var o=i.stagger;var p=this.sequence();var s=i.sporadicallyRandom&&i.sourceNodesArrSorted.length>1;if(i.sourceNodesArrSorted.length!==i.destNodesArrSorted.length){t(i.sourceNodesArrSorted,i.destNodesArrSorted)}a.forEach(i.sourceNodesArrSorted,function(a,b){var c=i.destNodesArrSorted[b];var e={width:l.width,height:l.height,reverse:s?Math.random()>.5:!!d};var f=o;if(j==="Shrink"||j==="CrossFade"){e.stagger=o;f=0}p.add({sourceRefs:a,destRefs:c},j,m,0,e,b*f)});p.onStartAll(function(){this.isAnimating=true}.bind(this)).onCompleteAll(function(){this.animationCompleteCallback(e,f)}.bind(this)).execute()},animationCompleteCallback:function(b,c){this.isAnimating=false;if(this.props.onAnimationCompleteCallback){this.props.onAnimationCompleteCallback()}this.setState({currentIndex:b,$animationInProcess:null},function(){this.updateAutoplayState();if(a.isFunction(c)){c()}}.bind(this));if(this._movePageQueue&&this._movePageQueue.length>0){setTimeout(function(){this.movePage(this._movePageQueue.shift())}.bind(this),100)}},createDisplayedItems:function(b,c,d,e,f){var g=this.props.compProp;var h=this.props.compData;var i=n.getItemWidth(g.margin,g.numCols,this.props.style.width,o.getSkinWidthDiff(this.props.skin));var j=n.getAvailableRowsNumber(g.maxRows,g.numCols,h.items.length);var k=n.getItemHeight(g.margin,this.props.style.height,j,o.getSkinHeightDiff(this.props.skin));var l=[];var m=[];var p=a.map(b,function(a,c){return this.createGalleryItem(a,c,i,k,this.state.currentIndex,b.length,"curr")},this);if(e!==this.state.currentIndex){l=a.map(c,function(a,b){return this.createGalleryItem(a,b,i,k,e,c.length,"next",{visibility:"hidden"})},this)}if(f!==e&&f!==this.state.currentIndex){m=a.map(d,function(a,b){return this.createGalleryItem(a,b,i,k,f,d.length,"prev",{visibility:"hidden"})},this)}return l.concat(m).concat(p)},createGalleryItem:function(a,b,c,d,e,f,g,h){if(this.props.createGalleryItem){return this.props.createGalleryItem(this.props.id,a,b,e,f,h,this.classSet)}return this.createImageItem(a,b,c,d,e,g,h)},convertDataItemsToRefs:function(a,b){var c=[];for(var d=0;d