/*!@license * Infragistics.Web.ClientUI Scroll 19.1.20 * * Copyright (c) 2011-2019 Infragistics Inc. * * http://www.infragistics.com/ * * Depends on: * jquery-1.9.1.js * jquery.ui-1.9.0.js * jquery.ui.widget.js * infragistics.util.js * infragistics.util.jquery.js * infragistics.ui.widget.js */ (function(factory){if(typeof define==="function"&&define.amd){define(["./infragistics.ui.widget"],factory)}else{return factory(jQuery)}})(function($){/*!@license * Infragistics.Web.ClientUI Scroll localization resources 19.1.20 * * Copyright (c) 2011-2019 Infragistics Inc. * * http://www.infragistics.com/ * */ (function($){$.ig=$.ig||{};$.ig.Scroll=$.ig.Scroll||{};$.ig.locale=$.ig.locale||{};$.ig.locale.en=$.ig.locale.en||{};$.ig.locale.en.Scroll={errorNoElementLink:"Element that is being linked does not exists.",errorNoScrollbarLink:"Scrollbar element that is being linked does not exists."};$.ig.Scroll.locale=$.ig.Scroll.locale||$.ig.locale.en.Scroll;return $.ig.locale.en.Scroll})($);var setPointerCaptureFName=typeof Element.prototype.msSetPointerCapture==="function"?"msSetPointerCapture":"setPointerCapture",releasePointerCaptureFName=typeof Element.prototype.msReleasePointerCapture==="function"?"msReleasePointerCapture":"releasePointerCapture";$.widget("ui.igScroll",$.ui.igWidget,{options:{alwaysVisible:false,scrollbarType:"custom",minThumbSize:15,modifyDOM:true,scrollHeight:null,scrollWidth:null,scrollTop:0,scrollLeft:0,wheelStep:50,smallIncrementStep:40,bigIncrementStep:null,smoothing:false,smoothingStep:1,smoothingDuration:1,inertiaStep:1,inertiaDuration:1,swipeToleranceX:30,inertiaDeltaX:1.25,inertiaDeltaY:2,syncedElemsH:[],syncedElemsV:[],scrollbarH:null,scrollbarV:null,scrollOnlyHBar:false,scrollOnlyVBar:false,scrollbarHParent:null,scrollbarVParent:null},events:{rendered:null,scrolling:null,scrolled:null,thumbDragStart:null,thumbDragMove:null,thumbDragEnd:null,resizing:null,resized:null},css:{scrollableElem:"igscroll-scrollable",touchScrollableElem:"igscroll-touchscrollable",scrollContent:"igscroll-content",scrollContainer:"igscroll-container",nativeVScrollOuter:"igscroll-vnative-outer",nativeVScrollOuterSingle:"igscroll-vnative-outer-single",nativeVScrollInner:"igscroll-vnative-inner",nativeHScrollOuter:"igscroll-hnative-outer",nativeHScrollOuterSingle:"igscroll-hnative-outer-single",nativeHScrollInner:"igscroll-hnative-inner",nativeScrollFiller:"igscroll-filler",verticalScrollContainer:"igscroll-vcontainer",verticalScrollTrack:"igscroll-vtrack",verticalScrollTrackSingleScrollbar:"igscroll-vtrack-single",verticalScrollArrow:"igscroll-varrow",verticalScrollArrowHidden:"igscroll-varrow-hidden",verticalScrollArrowUp:"igscroll-uparrow",verticalScrollArrowDown:"igscroll-downarrow",verticalScrollArrowDownSingleScrollbar:"igscroll-downarrow-single",verticalScrollThumbDrag:"igscroll-vdrag",verticalScrollThumbDragThin:"igscroll-vdrag-thin",verticalScrollThumbDragHidden:"igscroll-vdrag-hidden",verticalScrollThumbDragBig:"igscroll-vdrag-big",horizontalScrollContainer:"igscroll-hcontainer",horizontalScrollTrack:"igscroll-htrack",horizontalScrollTrackSingleScrollbar:"igscroll-htrack-single",horizontalScrollArrow:"igscroll-harrow",horizontalScrollArrowHidden:"igscroll-harrow-hidden",horizontalScrollArrowLeft:"igscroll-leftarrow",horizontalScrollArrowRight:"igscroll-rightarrow",horizontalScrollArrowRightSingleScrollbar:"igscroll-rightarrow-single",horizontalScrollThumbDrag:"igscroll-hdrag",horizontalScrollThumbDragThin:"igscroll-hdrag-thin",horizontalScrollThumbDragHidden:"igscroll-hdrag-hidden",horizontalScrollThumbDragBig:"igscroll-hdrag-big",disabledSelection:"igscroll-select-disabled",syncedElemContentV:"igscroll-vsynced-content",syncedElemContentH:"igscroll-hsynced-content"},refresh:function(){this._elemWidth=this.element.width();this._elemHeight=this.element.height();if(this.options.modifyDOM){this._container.css({width:this._elemWidth+"px",height:this._elemHeight+"px"})}this._contentWidth=this._getContentWidth();this._percentInViewH=this._elemWidth/this._contentWidth;this._isScrollableH=this._percentInViewH<1;this._contentHeight=this._getContentHeight();this._percentInViewV=this._elemHeight/this._contentHeight;this._isScrollableV=this._percentInViewV<1;this._refreshScrollbars();return this.element},_create:function(){var elem=this.element;this._bKeyboardNavigation=true;this._renderVerticalScrollbar=true;this._renderHorizontalScrollbar=true;this._bMixedEnvironment=$.ig.util.getScrollWidth()>0||!$.ig.util.isTouchDevice();this._linkedHElems=[];this._linkedVElems=[];this._linkedHBar=null;this._linkedVBar=null;this._elemWidth=elem.width();this._elemHeight=elem.height();this._showScrollbarsAnimId=0;this._hideScrollbarID=0;this._toSimpleScrollbarsID=0;this._touchInertiaAnimID=0;this._mOverContainer=false;this._mOverScrollbars=false;this._scrollFromSyncContentH=false;this._scrollFromSyncContentV=false;this._bInternalScroll=false;this._cancelScrolling=false;this._cancelThumbDrag=false;this._numSmoothAnimation=0;elem.addClass(this.css.touchScrollableElem);if(this.options.modifyDOM){elem.addClass(this.css.scrollableElem);this._content=$("
").addClass(this.css.scrollContent).appendTo(elem).append(elem.contents());this._container=$("
").addClass(this.css.scrollContainer).css({width:this._elemWidth+"px",height:this._elemHeight+"px"}).insertBefore(this._content).append(this._content);this._container.data("containerName","scrollContainer");if(this.element.attr("tabindex")){this._container.attr("tabindex",this.element.attr("tabindex"))}}else{this._container=elem;this._content=$(elem.children()[0]);this._contentX=null}this._contentHeight=this._content[0].scrollHeight;this._contentWidth=this._content[0].scrollWidth;this._percentInViewH=this._elemWidth/this._contentWidth;this._percentInViewV=this._elemHeight/this._contentHeight;this._isScrollableV=this._percentInViewV<1;this._isScrollableH=this._percentInViewH<1;this._initOptions(this.options);this._startX=0;this._startY=0;this._touchStartX=0;this._touchStartY=0;this._moving=false;this._evts={scroll:$.proxy(this._onScrollContainer,this),wheel:$.proxy(this._onWheelContainer,this),DOMMouseScroll:$.proxy(this._onWheelContainer,this),pointerdown:$.proxy(this._onPointerDownContainer,this),pointerup:$.proxy(this._onPointerUpContainer,this),MSPointerDown:$.proxy(this._onPointerDownContainer,this),MSGestureStart:$.proxy(this._onMSGestureStartContainer,this),MSGestureChange:$.proxy(this._onMSGestureChangeContainer,this),MSGestureEnd:$.proxy(this._onMSGestureEndContainer,this),touchstart:$.proxy(this._onTouchStartContainer,this),touchmove:$.proxy(this._onTouchMoveContainer,this),touchend:$.proxy(this._onTouchEndContainer,this),mouseenter:$.proxy(this._onMouseEnterContainer,this),mouseleave:$.proxy(this._onMouseLeaveContainer,this),keydown:$.proxy(this._onKeyDown,this)};this._container.on(this._evts);$(window).on("resize.igscroll_"+this.element[0].id,$.proxy(this._onDimensionsChange,this));if(typeof MutationObserver==="function"){this._observer=new MutationObserver($.proxy(this._onElementMutation,this));this._observer.observe(this.element[0],{attributes:true})}this._updateScrollBarsVisibility();this._hideScrollbars();if(this.options.alwaysVisible){if($.ig.util.isTouchDevice()){this._showScrollbars(true)}else{this._showScrollbars(false)}}else{this._showScrollbars(true,2e3)}this._trigger("rendered",null,{owner:this})},_initOptions:function(scrollOptions){if(scrollOptions){if(typeof scrollOptions.syncedElemsH[0]!=="undefined"){this._linkElementsH(scrollOptions.syncedElemsH)}if(typeof scrollOptions.syncedElemsV[0]!=="undefined"){this._linkElementsV(scrollOptions.syncedElemsV)}if(scrollOptions.scrollbarH!==null){this._bindHScrollbar(scrollOptions.scrollbarH)}if(scrollOptions.scrollbarV!==null){this._bindVScrollbar(scrollOptions.scrollbarV)}if(scrollOptions.scrollHeight!==null){this._setScrollHeight(scrollOptions.scrollHeight)}if(scrollOptions.scrollWidth!==null){this._setScrollWidth(scrollOptions.scrollWidth)}if(scrollOptions.scrollTop!==0){this._scrollTop(scrollOptions.scrollTop,false)}if(scrollOptions.scrollLeft!==0){this._scrollLeft(scrollOptions.scrollLeft,false)}}},changeLocale:function(){},_setOption:function(key,value){this._super(key,value);if(key==="alwaysVisible"){if(value===true){if($.ig.util.isTouchDevice()){this._showScrollbars(true)}else{this._showScrollbars(false)}}}if(key==="scrollbarType"){this._removeScrollbars();if(value!=="none"){this._updateScrollBarsVisibility();this._updateScrollbarsPos(this._getContentPositionX(),this._getContentPositionY())}}if(key==="minThumbSize"&&this.options.scrollbarType==="custom"){this._refreshScrollbars()}if(key==="scrollTop"){this._scrollTop(value,true)}if(key==="scrollLeft"){this._scrollLeft(value,true)}if(key==="scrollHeight"){this._setScrollHeight(value);this._refreshScrollbars();this._updateScrollbarsPos(this._getContentPositionX(),this._getContentPositionY())}if(key==="scrollWidth"){this._setScrollWidth(value);this._refreshScrollbars();this._updateScrollbarsPos(this._getContentPositionX(),this._getContentPositionY())}if(key==="syncedElemsH"){this._linkElementsH(value)}if(key==="syncedElemsV"){this._linkElementsV(value)}if(key==="scrollbarH"){this._bindHScrollbar(value)}if(key==="scrollbarV"){this._bindVScrollbar(value)}},option:function(optionName,value){if(optionName==="scrollTop"&&value===undefined){return this._scrollTop(null,true)}if(optionName==="scrollLeft"&&value===undefined){return this._scrollLeft(null,true)}if(optionName==="scrollHeight"&&value===undefined){return this._getContentHeight()}if(optionName==="scrollWidth"&&value===undefined){return this._getContentWidth()}return this._super(optionName,value)},_getContainerHeight:function(){return Math.ceil(this._container.height())},_getContainerWidth:function(){return Math.ceil(this._container.width())},_getContentHeight:function(){if(this.options.scrollHeight!==null){return this.options.scrollHeight}else{if($.ig.util.isIE){return Math.ceil(this._content[0].getBoundingClientRect().height)}else{return Math.ceil(this._content.outerHeight())}}},_getContentWidth:function(){if(this.options.scrollWidth!==null){return this.options.scrollWidth}else{if($.ig.util.isIE){return Math.ceil(this._content[0].getBoundingClientRect().width)}else{return Math.ceil(this._content.outerWidth())}}},_getContentPositionX:function(){if($.ig.util.isTouchDevice()&&!this._bMixedEnvironment){var posX=0;if(this._contentX){posX=-this._getTransform3dValueX(this._contentX)}else{posX=-this._getTransform3dValueX(this._content)}return posX}else{return this._container.scrollLeft()}},_getContentPositionY:function(){if($.ig.util.isTouchDevice()&&!this._bMixedEnvironment){var posY=-this._getTransform3dValueY(this._content);return posY}else{return this._container.scrollTop()}},_getTransform3dValueX:function(jqElem){var matrix,values,posX;if(jqElem.css("-webkit-transform")){matrix=jqElem.css("-webkit-transform");values=matrix?matrix.match(/-?[\d\.]+/g):undefined;posX=values?Number(values[4]):0}else if(jqElem.css("-moz-transform")){matrix=jqElem.css("-moz-transform");values=matrix?matrix.match(/-?[\d\.]+/g):undefined;posX=values?Number(values[4]):0}else if(jqElem.css("-ms-transform")){matrix=jqElem.css("-ms-transform");values=matrix?matrix.match(/-?[\d\.]+/g):undefined;posX=values?Number(values[13]):0}return posX},_getTransform3dValueY:function(jqElem){var matrix,values,posY;if(jqElem.css("-webkit-transform")){matrix=jqElem.css("-webkit-transform");values=matrix?matrix.match(/-?[\d\.]+/g):undefined;posY=values?Number(values[5]):0}else if(jqElem.css("-moz-transform")){matrix=jqElem.css("-moz-transform");values=matrix?matrix.match(/-?[\d\.]+/g):undefined;posY=values?Number(values[5]):0}else if(jqElem.css("-ms-transform")){matrix=jqElem.css("-ms-transform");values=matrix?matrix.match(/-?[\d\.]+/g):undefined;posY=values?Number(values[14]):0}return posY},_getScrollbarVPosition:function(){if(this._linkedVBar){return this._linkedVBar.scrollTop()}else{return this._getContentPositionY()}},_getScrollbarHPosition:function(){if(this._linkedHBar){return this._linkedHBar.scrollLeft()}else{return this._getContentPositionX()}},_scrollLeft:function(val,triggerEvents,bSyncElems){if(val==="undefined"||val===null){return this._getContentPositionX()}cancelAnimationFrame(this._touchInertiaAnimID);if($.ig.util.isTouchDevice()&&!this._bMixedEnvironment){var posY=this._getContentPositionY();this._scrollTouchToXY(val,posY,triggerEvents,bSyncElems)}else{this._scrollToX(val,triggerEvents,bSyncElems)}if(triggerEvents){this._trigger("scrolled",null,{owner:this,smallIncrement:0,bigIncrement:0,horizontal:true})}return this},_scrollTop:function(val,triggerEvents,bSyncElems){if(val==="undefined"||val===null){return this._getContentPositionY()}cancelAnimationFrame(this._touchInertiaAnimID);if($.ig.util.isTouchDevice()&&!this._bMixedEnvironment){var posX=this._getContentPositionX();this._scrollTouchToXY(posX,val,triggerEvents,bSyncElems)}else{this._scrollToY(val,triggerEvents,bSyncElems)}if(triggerEvents&&!this._cancelScrolling){this._trigger("scrolled",null,{owner:this,smallIncrement:0,bigIncrement:0,horizontal:false})}return this},_setScrollWidth:function(inWidth){this._elemWidth=this._getContainerWidth();this._contentWidth=inWidth;this._percentInViewH=this._elemWidth/this._contentWidth;this._isScrollableH=this._percentInViewH<1;if(this.options.modifyDOM){this._content.css("width",inWidth+"px")}return this.element},_setScrollHeight:function(inHeight){this._elemHeight=this._container.innerHeight();this._contentHeight=inHeight;this._percentInViewV=this._elemHeight/this._contentHeight;this._isScrollableV=this._percentInViewV<1;if(this.options.modifyDOM){this._content.css("height",inHeight+"px")}return this.element},_refreshScrollbars:function(){var css=this.css,nativeScrollSize=$.ig.util.getScrollWidth();this._elemHeight=this.element.height();this._elemWidth=this.element.width();if(this.options.scrollbarType==="custom"&&this._vBarTrack&&this._vBarDrag){this._vDragHeight=this._calculateVDragHeight();this._vBarDrag.css("height",this._vDragHeight+"%");if(this._percentInViewH>=1){this._vBarTrack.addClass(css.verticalScrollTrackSingleScrollbar);this._vBarArrowDown.addClass(css.verticalScrollArrowDownSingleScrollbar)}else{this._vBarTrack.removeClass(css.verticalScrollTrackSingleScrollbar);this._vBarArrowDown.removeClass(css.verticalScrollArrowDownSingleScrollbar)}}else if(this.options.scrollbarType==="native"&&this._vBarContainer&&this._vBarDrag){this._vDragHeight=this._content.height();this._vBarDrag.css("height",this._vDragHeight+"px");if(this._percentInViewH>=1&&!this._vBarContainer.hasClass(css.nativeVScrollOuterSingle)){this._vBarContainer.css("bottom","");this._vBarContainer.addClass(this.css.nativeVScrollOuterSingle)}else if(this._percentInViewH<1&&this._vBarContainer.hasClass(css.nativeVScrollOuterSingle)){this._vBarContainer.removeClass(css.nativeVScrollOuterSingle);this._vBarContainer.css("bottom",nativeScrollSize+"px")}}if(this.options.scrollbarType==="custom"&&this._hBarTrack&&this._hBarDrag){this._hDragWidth=this._calculateHDragWidth();this._hBarDrag.css("width",this._hDragWidth+"%");if(this._percentInViewV>=1){this._hBarTrack.addClass(css.horizontalScrollTrackSingleScrollbar);this._hBarArrowRight.addClass(css.horizontalScrollArrowRightSingleScrollbar)}else{this._hBarTrack.removeClass(css.horizontalScrollTrackSingleScrollbar);this._hBarArrowRight.removeClass(css.horizontalScrollArrowRightSingleScrollbar)}}else if(this.options.scrollbarType==="native"&&this._hBarContainer&&this._hBarDrag){this._hDragWidth=this._content.width();this._hBarDrag.css("width",this._hDragWidth+"px");if(this._percentInViewV>=1&&!this._hBarContainer.hasClass(css.nativeHScrollOuterSingle)){this._hBarContainer.css("right","");this._hBarContainer.addClass(css.nativeHScrollOuterSingle)}else if(this._percentInViewV<1&&this._hBarContainer.hasClass(css.nativeHScrollOuterSingle)){this._hBarContainer.removeClass(css.nativeHScrollOuterSingle);this._hBarContainer.css("right",nativeScrollSize+"px")}}this._updateScrollBarsVisibility();this._updateScrollbarsPos(this._getContentPositionX(),this._getContentPositionY())},_linkElementsH:function(inElements){this._linkedHElems=[];if(inElements){for(var index=0;index").addClass(this.css.syncedElemContentH).appendTo(elemObject).append(elemObject.contents())}this._linkedHElems.push(elemObject)}else{throw new Error(this._getLocaleValue("errorNoElementLink"))}}}return this._linkedHElems},_linkElementsV:function(inElements){this._linkedVElems=[];if(inElements){for(var index=0;index").addClass(this.css.syncedElemContentV).appendTo(elemObject).append(elemObject.contents())}this._linkedVElems.push(elemObject)}else{throw new Error(this._getLocaleValue("errorNoElementLink"))}}}return this._linkedVElems},_bindHScrollbar:function(inElement){var self=this;if(inElement){var elemObject=$(inElement);if(elemObject.length){elemObject.on({scroll:function(e){var ignoreSync=self._ignoreHScrollBarEvents;self._ignoreHScrollBarEvents=false;if(ignoreSync||self.options.scrollOnlyHBar){return false}else{if(self._bMixedEnvironment){self._syncContentX(e.target,false);self._syncElemsX(e.target,false)}else{self._syncContentX(e.target,true);self._syncElemsX(e.target,true)}}}});if(this._linkedHBar&&this._linkedHBar[0]!==elemObject[0]){this._linkedHBar.off()}this._linkedHBar=elemObject}else{throw new Error(this._getLocaleValue("errorNoScrollbarLink"))}}return this._linkedHBar},_bindVScrollbar:function(inElement){var self=this;if(inElement){var elemObject=$(inElement);if(elemObject.length){elemObject.on({scroll:function(e){var ignoreSync=self._ignoreVScrollBarEvents;self._ignoreVScrollBarEvents=false;if(ignoreSync||self.options.scrollOnlyVBar){return false}else{if(self._bMixedEnvironment){self._syncContentY(e.target,false);self._syncElemsY(e.target,false)}else{self._syncContentY(e.target,true);self._syncElemsY(e.target,true)}}}});if(this._linkedVBar&&this._linkedVBar[0]!==elemObject[0]){this._linkedVBar.off()}this._linkedVBar=elemObject}else{throw new Error(this._getLocaleValue("errorNoScrollbarLink"))}}return this._linkedVBar},_clampAxisCoords:function(target,min,max){if(target===undefined||targetmax){target=max}return target},_scrollToXY:function(destX,destY,triggerEvents){var curPosX=this._getContentPositionX(),curPosY=this._getContentPositionY();destX=this._clampAxisCoords(destX,0,Math.max(this._getContentWidth()-this._getContainerWidth(),0));destY=this._clampAxisCoords(destY,0,Math.max(this._getContentHeight()-this._getContainerHeight(),0));if(triggerEvents){var bNoCancel=this._trigger("scrolling",null,{owner:this,smallIncrement:0,bigIncrement:0,horizontal:destX-curPosX!==0,stepX:destX-curPosX,stepY:destY-curPosY});if(!bNoCancel){this._cancelScrolling=true;return{x:0,y:0}}}var scrolledX,scrolledY;scrolledX=this._scrollToX(destX,false);scrolledY=this._scrollToY(destY,false);return{x:scrolledX,y:scrolledY}},_scrollToX:function(destX,triggerEvents,bSyncElems){if(!this._isScrollableH&&!this.options.scrollOnlyHBar){return 0}var curPosX;if(this.options.scrollOnlyHBar){curPosX=this._getScrollbarHPosition()}else{curPosX=this._getContentPositionX()}destX=this._clampAxisCoords(destX,0,this._getContentWidth()-this._getContainerWidth());if(triggerEvents){var bNoCancel=this._trigger("scrolling",null,{owner:this,smallIncrement:0,bigIncrement:0,horizontal:true,stepX:destX-curPosX,stepY:0});if(!bNoCancel){this._cancelScrolling=true;return 0}}this._bInternalScroll=true;if(this.options.scrollOnlyHBar){this._moveHBarX(destX)}else{this._container.scrollLeft(destX);if(bSyncElems===undefined||bSyncElems===true){this._syncElemsX(this._container[0],false)}}var curPosY;if(this.options.scrollOnlyVBar){curPosY=this._getScrollbarVPosition()}else{curPosY=this._getContentPositionY()}this._updateScrollbarsPos(destX,curPosY,true);return destX-curPosX},_scrollToY:function(destY,triggerEvents,bSyncElems){if(!this._isScrollableV&&!this.options.scrollOnlyVBar){return 0}var curPosY,endOffsetEdge=0;if(this.options.scrollOnlyVBar){curPosY=this._getScrollbarVPosition()}else{curPosY=this._getContentPositionY()}if($.ig.util.isEdge){if(destY<0){endOffsetEdge=-1}else{endOffsetEdge=destY>this._getContentHeight()-this._getContainerHeight()?1:0}}destY=this._clampAxisCoords(destY,0,this._getContentHeight()-this._getContainerHeight());if(triggerEvents){var bNoCancel=this._trigger("scrolling",null,{owner:this,smallIncrement:0,bigIncrement:0,horizontal:false,stepX:0,stepY:destY-curPosY});if(!bNoCancel){this._cancelScrolling=!bNoCancel;return 0}}this._bInternalScroll=true;if(this.options.scrollOnlyVBar){this._moveVBarY(destY)}else{if($.ig.util.isIE&&Math.abs(destY-curPosY)<=1){return 0}this._container.scrollTop(destY+endOffsetEdge);if(bSyncElems===undefined||bSyncElems===true){this._syncElemsY(this._container[0],false)}}var curPosX;if(this.options.scrollOnlyHBar){curPosX=this._getScrollbarHPosition()}else{curPosX=this._getContentPositionX()}this._updateScrollbarsPos(curPosX,destY,true);return destY-curPosY},_smoothWheelScrollY:function(deltaY){var self=this,smoothingStep=this.options.smoothingStep,smoothingDuration=this.options.smoothingDuration,animationId;var x=-1;if(this.options.scrollOnlyVBar){this._nextY=this._getScrollbarVPosition()}else{this._nextY=this._getContentPositionY()}function inertiaStep(){if(x>1){cancelAnimationFrame(animationId);self._numSmoothAnimation-=1;if(!self._numSmoothAnimation&&!self._cancelScrolling){self._trigger("scrolled",null,{owner:self,smallIncrement:0,bigIncrement:0,horizontal:false})}return}self._nextY+=(-3*x*x+3)*deltaY*2*smoothingStep;if(self._bMixedEnvironment){self._scrollToY(self._nextY,true)}else{var curPosX=0;if(self.options.scrollOnlyHBar){curPosX=self._getScrollbarVPosition()}else{curPosX=self._getContentPositionY()}self._scrollTouchToXY(curPosX,self._nextY,true)}x+=.08*(1/smoothingDuration);animationId=requestAnimationFrame(inertiaStep)}this._numSmoothAnimation+=1;animationId=requestAnimationFrame(inertiaStep)},_applyTransformOnScrollTop:function(){var startX=-this._container.scrollLeft(),startY=-this._container.scrollTop();if(startX===0&&startY===0){return}if(this._contentX){startX+=this._getTransform3dValueX(this._contentX)}else{startX+=this._getTransform3dValueX(this._content)}startY+=this._getTransform3dValueY(this._content);this._scrollToXY(0,0,false);this._scrollTouchToXY(-startX,-startY,false)},_scrollTouchToXY:function(destX,destY,triggerEvents,bSyncElems){var bNoCancel,curPosX=this._getContentPositionX(),curPosY=this._getContentPositionY();destX=this._clampAxisCoords(destX,0,Math.max(this._getContentWidth()-this._getContainerWidth(),0));destY=this._clampAxisCoords(destY,0,Math.max(this._getContentHeight()-this._getContainerHeight(),0));if(triggerEvents){bNoCancel=this._trigger("scrolling",null,{owner:this,smallIncrement:0,bigIncrement:0,horizontal:destX-curPosX!==0,stepX:destX-curPosX,stepY:destY-curPosY});if(!bNoCancel){this._cancelScrolling=true;return{x:0,y:0}}}if(this.options.scrollOnlyVBar){this._scrollToY(destY,false);if(this.options.scrollOnlyHBar){this._scrollToX(destX)}else{if(this._contentX){this._contentX.css({"-webkit-transform":"translate3d("+-destX+"px, 0px, 0px)"});this._syncElemsX(this._contentX,true,-destX,true)}else{this._content.css({"-webkit-transform":"translate3d("+-destX+"px, 0px, 0px)"});this._syncElemsX(this._content,true,-destX,true)}}destY=this._getScrollbarVPosition();this._updateScrollbarsPos(destX,destY);return{x:destX-curPosX,y:destY-curPosY}}var distanceLeftX=-destX;var distanceTopY=-destY;if(!this.options.scrollOnlyVBar&&!this.options.scrollOnlyHBar){this._content.css({"-webkit-transform":"translate3d("+distanceLeftX+"px,"+distanceTopY+"px, 0px)"})}if(bSyncElems===undefined||bSyncElems===true){this._syncElemsX(this._content,true);this._syncElemsY(this._content,true)}this._updateScrollbarsPos(destX,destY);this._syncHBar(this._content,true);this._syncVBar(this._content,true);return{x:destX-curPosX,y:destY-curPosY}},_inertiaInit:function(speedX,speedY,bDefaultScroll){var self=this,x=0,stepModifer=this.options.inertiaStep,inertiaDuration=this.options.inertiaDuration;if(this.options.scrollOnlyVBar){this._nextY=this._getScrollbarVPosition()}else{this._nextY=this._getContentPositionY()}if(this.options.scrollOnlyHBar){this._nextX=this._getScrollbarHPosition()}else{this._nextX=this._getContentPositionX()}function inertiaStep(){if(x>6){self._hideScrollbars();cancelAnimationFrame(self._touchInertiaAnimID);if(!self._cancelScrolling){self._trigger("scrolled",null,{owner:self,smallIncrement:0,bigIncrement:0,horizontal:null})}return}if(Math.abs(speedX)>Math.abs(speedY)){x+=.05/(1*inertiaDuration)}else{x+=.05/(1*inertiaDuration)}if(x<=1){if(Math.abs(speedY)<=Math.abs(speedX)*self.options.inertiaDeltaY){self._nextX+=1*speedX*15*stepModifer}if(Math.abs(speedY)>=Math.abs(speedX)*self.options.inertiaDeltaX){self._nextY+=1*speedY*15*stepModifer}}else{if(Math.abs(speedY)<=Math.abs(speedX)*self.options.inertiaDeltaY){self._nextX+=Math.abs(2/(x+.55)-.3)*speedX*15*stepModifer}if(Math.abs(speedY)>=Math.abs(speedX)*self.options.inertiaDeltaX){self._nextY+=Math.abs(2/(x+.55)-.3)*speedY*15*stepModifer}}if(bDefaultScroll){self._scrollToXY(self._nextX,self._nextY,true)}else{self._scrollTouchToXY(self._nextX,self._nextY,true)}self._touchInertiaAnimID=requestAnimationFrame(inertiaStep)}this._touchInertiaAnimID=requestAnimationFrame(inertiaStep)},_getSpeedSlope:function(inLastFiveSpeeds){if(inLastFiveSpeeds.length===0){return 1}if(inLastFiveSpeeds.length<5){return-1}var numPoints=inLastFiveSpeeds.length,sumXY=0,sumX=0,sumY=0,sumXX=0;for(var pointIndex=0;pointIndex0){for(index=0;index0){for(index=0;index0){for(index=0;index0){for(index=0;index-.1||speedSlopeX>-.1){this._speedDecreasing=true}else{this._speedDecreasing=false}var timeFromLastTouch=(new Date).getTime()-this._lastTouchEnd;if(timeFromLastTouch!==0&&timeFromLastTouch<100){var speedX=(this._lastTouchX-touch.pageX)/timeFromLastTouch;var speedY=(this._lastTouchY-touch.pageY)/timeFromLastTouch;if(this._savedSpeedsX.length<5){this._savedSpeedsX.push(speedX)}else{this._savedSpeedsX.shift();this._savedSpeedsX.push(speedX)}if(this._savedSpeedsY.length<5){this._savedSpeedsY.push(speedY)}else{this._savedSpeedsY.shift();this._savedSpeedsY.push(speedY)}}this._lastTouchEnd=(new Date).getTime();this._lastMovedX=this._lastTouchX-touch.pageX;this._lastMovedY=this._lastTouchY-touch.pageY;this._lastTouchX=touch.pageX;this._lastTouchY=touch.pageY;this._totalMovedX+=this._lastMovedX;var scrolledXY;if(Math.abs(this._totalMovedX)-1||this._bMixedEnvironment){scrolledXY=this._scrollToXY(this._startX,destY,true)}else{scrolledXY=this._scrollTouchToXY(this._startX,destY,true)}}else{if(!this._offsetRecorded){this._offsetDirection=Math.sign(destX-this._startX);this._offsetRecorded=true}if(navigator.userAgent.indexOf("Firefox")>-1||this._bMixedEnvironment){scrolledXY=this._scrollToXY(destX-this._offsetDirection*this.options.swipeToleranceX,destY,true)}else{scrolledXY=this._scrollTouchToXY(destX-this._offsetDirection*this.options.swipeToleranceX,destY,true)}}if(scrolledXY.x===0&&scrolledXY.y===0){this._igScollTouchPrevented=true}if(!this._igScollTouchPrevented&&event.cancelable){event.preventDefault()}},_onTouchEndContainer:function(event){if(event.isDefaultPrevented()||typeof MSGesture==="function"){return}var speedX=0;var speedY=0;for(var i=0;i.1||Math.abs(speedY)>.1)&&(Math.abs(this._lastMovedX)>2||Math.abs(this._lastMovedY)>2)){this._showScrollbars(true);this._inertiaInit(speedX,speedY,this._bMixedEnvironment)}else{this._hideScrollbars();if(!this._cancelScrolling){this._trigger("scrolled",null,{owner:this,smallIncrement:0,bigIncrement:0,horizontal:null})}}},_onMouseEnterContainer:function(){this._mOverContainer=true;cancelAnimationFrame(this._showScrollbarsAnimId);clearTimeout(this._hideScrollbarID);if(!this._toSimpleScrollbarsID&&!this._bMouseDownH&&!this._bMouseDownV){this._showScrollbars(true)}},_onMouseLeaveContainer:function(){var self=this;this._mOverContainer=false;if(!this._bMouseDownV&&!this._bMouseDownH){clearTimeout(this._toSimpleScrollbarsID);this._toSimpleScrollbarsID=0;this._hideScrollbarID=setTimeout(function(){self._hideScrollbars()},2e3)}},_onDimensionsChange:function(){var bNoCancel,evtArgs={owner:this};bNoCancel=this._trigger("resizing",null,evtArgs);if(bNoCancel){this.refresh();this._trigger("resized",null,evtArgs)}},_onElementMutation:function(mutations){for(var index=0;index
").addClass(css.nativeVScrollOuter);if(!bRenderScrollbarH){this._vBarContainer.addClass(css.nativeVScrollOuterSingle)}else{this._vBarContainer.css("bottom",nativeScrollSize+"px")}this._vDragHeight=this._content.height();this._vBarDrag=$("
").addClass(css.nativeVScrollInner).css("height",this._vDragHeight+"px");if(this.options.scrollbarVParent){this._vBarContainer.append(this._vBarDrag).appendTo(this.options.scrollbarVParent)}else{this._vBarContainer.append(this._vBarDrag).appendTo(this._container[0].parentElement)}if($.ig.util.getScrollHeight()>0&&this.options.modifyDOM){this._content.css("padding-right",nativeScrollSize+"px")}if(bRenderScrollbarH&&this._bMixedEnvironment&&!this._desktopFiller){this._desktopFiller=$("
").addClass(css.nativeScrollFiller).css("height",nativeScrollSize+"px").css("width",nativeScrollSize+"px");this._desktopFiller.appendTo(this._container[0].parentElement)}this._vBarContainer.scrollTop(this._getContentPositionY());this._setOption("scrollbarV",this._vBarContainer)},_initNativeScrollBarH:function(bRenderScrollbarV){var css=this.css,nativeScrollSize=$.ig.util.getScrollWidth();this._hBarContainer=$("
").addClass(css.nativeHScrollOuter);if(!bRenderScrollbarV){this._hBarContainer.addClass(css.nativeHScrollOuterSingle)}else{this._hBarContainer.css("right",nativeScrollSize+"px")}this._hDragWidth=this._content.width();this._hBarDrag=$("
").addClass(css.nativeHScrollInner).css("width",this._hDragWidth+"px");if(this.options.scrollbarHParent){this._hBarContainer.append(this._hBarDrag).appendTo(this.options.scrollbarHParent)}else{this._hBarContainer.append(this._hBarDrag).appendTo(this._container[0].parentElement)}if(nativeScrollSize>0&&this.options.modifyDOM){this._content.css("padding-bottom",nativeScrollSize+"px")}if(bRenderScrollbarV&&this._bMixedEnvironment&&!this._desktopFiller){this._desktopFiller=$("
").addClass(css.nativeScrollFiller).css("height",nativeScrollSize+"px").css("width",nativeScrollSize+"px");this._desktopFiller.appendTo(this._container[0].parentElement)}this._hBarContainer.scrollLeft(this._getContentPositionX());this._setOption("scrollbarH",this._hBarContainer)},_removeScrollbars:function(){this._removeVerticalScrollbar();this._removeHorizontalScrollbar();if(this._desktopFiller){this._desktopFiller.remove();this._desktopFiller=null;this._content.css("padding-right","0px").css("padding-bottom","0px")}},_removeVerticalScrollbar:function(){if(this._vBarContainer){this._vBarContainer.remove();this._vBarContainer=null;this._vDragHeight=null;this._vBarDrag=null;this._vBarTrack=null;if(this.options.modifyDOM&&this.options.scrollbarType==="native"){this._content.css("padding-right","")}}if(this._onMouseMoveVDragHandler){$("body").off("mousemove.igscroll_"+this.element[0].id,this._onMouseMoveVDragHandler)}if(this._onMouseUpVScrollbarHandler){$(window).off("mouseup.igscroll_"+this.element[0].id,this._onMouseUpVScrollbarHandler)}},_removeHorizontalScrollbar:function(){if(this._hBarContainer){this._hBarContainer.remove();this._hBarContainer=null;this._hDragHeight=null;this._hBarDrag=null;this._hBarTrack=null;if(this.options.modifyDOM&&this.options.scrollbarType==="native"){this._content.css("padding-bottom","")}}if(this._onMouseMoveHDragHandler){$("body").off("mousemove.igscroll_"+this.element[0].id,this._onMouseMoveHDragHandler)}if(this._onMouseUpHScrollbarHandler){$(window).off("mouseup.igscroll_"+this.element[0].id,this._onMouseUpHScrollbarHandler)}},_initCustomScrollBarV:function(bRenderScrollbarH){var css=this.css;this._vBarContainer=$("
").addClass(css.verticalScrollContainer);this._vBarArrowUp=$("
").addClass(css.verticalScrollArrow).addClass(css.verticalScrollArrowUp);this._vBarTrack=$("
").addClass(css.verticalScrollTrack);this._vBarArrowDown=$("
").addClass(css.verticalScrollArrow).addClass(css.verticalScrollArrowDown);if(!bRenderScrollbarH){this._vBarTrack.addClass(css.verticalScrollTrackSingleScrollbar);this._vBarArrowDown.addClass(css.verticalScrollArrowDownSingleScrollbar)}if(this.options.scrollbarVParent){this._vBarContainer.append(this._vBarArrowUp).append(this._vBarTrack.append(this._vBarDrag)).append(this._vBarArrowDown).appendTo(this.options.scrollbarVParent)}else{this._vBarContainer.append(this._vBarArrowUp).append(this._vBarTrack.append(this._vBarDrag)).append(this._vBarArrowDown).appendTo(this._container[0].parentElement)}this._vDragHeight=this._calculateVDragHeight();this._vBarDrag=$("").addClass(css.verticalScrollThumbDrag+" "+css.verticalScrollThumbDragThin).css("height",this._vDragHeight+"%");if(this.options.scrollbarVParent){this._vBarTrack.append(this._vBarDrag)}else{this._vBarTrack.append(this._vBarDrag)}this._bindCustomScrollBarV()},_calculateVDragHeight:function(){var dragHeightPx,minSize=parseInt(this.options.minThumbSize,10);dragHeightPx=this._vBarTrack.height()/this._contentHeight*this._vBarTrack.height();dragHeightPx=dragHeightPx=0){return}var bNoCancel,eventArgs={owner:this,smallIncrement:0,bigIncrement:0,horizontal:false,stepX:0,stepY:step};if(bSmallIncement){eventArgs.smallIncrement=Math.sign(step)}else{var dragStartY=this._getTransform3dValueY(this._vBarDrag);if(this._mTrackLastPosV>dragStartY&&this._mTrackLastPosVdragStartY+this._vDragHeight){this._lastBigIncDirV=1;bNoCancel=this._trigger("scrolling",null,{owner:this,smallIncrement:0,bigIncrement:1,horizontal:false,stepX:0,stepY:scrollStep});this._cancelScrolling=!bNoCancel;if(bNoCancel){this._scrollTop(curPosY+scrollStep,false);this._holdTimeoutID=setTimeout(function(){self._scrollTimeoutY(scrollStep,false)},250)}}else if(event.offsetY
").addClass(css.horizontalScrollContainer);this._hBarArrowLeft=$("
").addClass(css.horizontalScrollArrow).addClass(css.horizontalScrollArrowLeft);this._hBarTrack=$("
").addClass(css.horizontalScrollTrack);this._hBarArrowRight=$("
").addClass(css.horizontalScrollArrow).addClass(css.horizontalScrollArrowRight);if(!bRenderScrollbarV){this._hBarTrack.addClass(css.horizontalScrollTrackSingleScrollbar);this._hBarArrowRight.addClass(css.horizontalScrollArrowRightSingleScrollbar)}if(this.options.scrollbarHParent){this._hBarContainer.append(this._hBarArrowLeft).append(this._hBarTrack.append(this._hBarDrag)).append(this._hBarArrowRight).appendTo(this.options.scrollbarHParent)}else{this._hBarContainer.append(this._hBarArrowLeft).append(this._hBarTrack.append(this._hBarDrag)).append(this._hBarArrowRight).appendTo(this._container[0].parentElement)}this._hDragWidth=this._calculateHDragWidth();this._hBarDrag=$("").addClass(css.horizontalScrollThumbDrag+" "+css.horizontalScrollThumbDragThin).css("width",this._hDragWidth+"%");if(this.options.scrollbarHParent){this._hBarTrack.append(this._hBarDrag)}else{this._hBarTrack.append(this._hBarDrag)}this._bindCustomScrollBarH()},_calculateHDragWidth:function(){var dragWidthPx,minSize=parseInt(this.options.minThumbSize,10);dragWidthPx=this._hBarTrack.width()/this._contentWidth*this._hBarTrack.width();dragWidthPx=dragWidthPx=0){return}var self=this,bNoCancel,eventArgs={owner:self,smallIncrement:0,bigIncrement:0,horizontal:true,stepX:step,stepY:0};if(bSmallIncement){eventArgs.smallIncrement=Math.sign(step)}else{var dragStartX=this._getTransform3dValueX(this._hBarDrag);if(this._mTrackLastPosH>dragStartX&&this._mTrackLastPosHdragStartX+this._hDragWidth){this._lastBigIncDirH=1;bNoCancel=this._trigger("scrolling",null,{owner:this,smallIncrement:0,bigIncrement:1,horizontal:true,stepX:scrollStep,stepY:0});if(bNoCancel){this._scrollLeft(curPosX+scrollStep,false);this._holdTimeoutID=setTimeout(function(){self._scrollTimeoutX(scrollStep,false)},250)}}else if(event.offsetX