function _toConsumableArray(n){if(Array.isArray(n)){for(var t=0,i=Array(n.length);t<n.length;t++)i[t]=n[t];return i}return Array.from(n)}function _classCallCheck(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function");}var _createClass=function(){function n(n,t){for(var i,r=0;r<t.length;r++)i=t[r],i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(n,i.key,i)}return function(t,i,r){return i&&n(t.prototype,i),r&&n(t,r),t}}(),MH=MH||{};MH.Sticky=function(){function n(t){var i=this;if(_classCallCheck(this,n),this.targetElement=t.targetElement,this.targetNode=document.querySelector(this.targetElement)||!1,!this.targetNode)return!1;this.referenceElement=t.referenceElement||"body";this.referenceNode=document.querySelector(this.referenceElement);this.referencePoint=t.referencePoint||"bottom";this.breakpoints=t.breakpoints||null;this.desiredTriggerPoint=t.desiredTriggerPoint||0;this.cssSetSticky=t.cssSetSticky||["is-sticky"];this.cssSetUnsticky=t.cssSetUnsticky||["is-unsticky"];this.scrollPosition=null;this.targetElementHeight=null;window.addEventListener("load",function(){return i._initialiseSticky()},!1);window.addEventListener("orientationChange",function(){return i._reInitialiseSticky()},!1);window.addEventListener("resize",function(){return i._reInitialiseSticky()},!1);window.addEventListener("scroll",function(){return i._reInitialiseSticky()},!1)}return _createClass(n,[{key:"calcHeight",value:function(n){return document.querySelector(n).offsetHeight}},{key:"haystack",value:function(n){var t=n!==n,i;return i=t||typeof Array.prototype.indexOf!="function"?function(n){for(var i=-1,u=-1,r,i=0;i<this.length;i++)if(r=this[i],t&&r!==r||r===n){u=i;break}return u}:Array.prototype.indexOf,i.call(this,n)>-1}},{key:"pageHeight",value:function(){var t=document.body,n=document.documentElement;return Math.max(t.scrollHeight,t.offsetHeight,n.clientHeight,n.scrollHeight,n.offsetHeight)}},{key:"_scrollYPosition",value:function(){return document.documentElement.scrollTop||document.body.scrollTop}},{key:"update",value:function(){this.scrollPosition=this._scrollYPosition();this.targetElementHeight=this.calcHeight(this.targetElement)}},{key:"_getTriggerPoint",value:function(){this._referenceElementHeight=parseInt(window.getComputedStyle(this.referenceNode,null).getPropertyValue("height"))}},{key:"_initialiseSticky",value:function(){var n,t,i,r,u,f,e;this.haystack.call(this.breakpoints,MH.param.currentBreakpoint)||this.breakpoints==null?(this.update(),n=!!navigator.userAgent.match(/Trident/g)||!!navigator.userAgent.match(/MSIE/g),this.scrollPosition>this.desiredTriggerPoint&&((t=this.targetNode.classList).remove.apply(t,_toConsumableArray(this.cssSetUnsticky)),(i=this.targetNode.classList).add.apply(i,_toConsumableArray(this.cssSetSticky)),n&&(args1=this.cssSetUnsticky,el=this.targetNode,args1.map(function(n){return el.classList.remove(n)}),args2=this.cssSetSticky,el=this.targetNode,args2.map(function(n){return el.classList.add(n)})),this.targetNode.style.bottom=null,document.documentElement.style.marginBottom=this.targetNode.clientHeight+"px"),this.scrollPosition<this.desiredTriggerPoint&&((r=this.targetNode.classList).remove.apply(r,_toConsumableArray(this.cssSetSticky)),(u=this.targetNode.classList).add.apply(u,_toConsumableArray(this.cssSetUnsticky)),n&&(args1=this.cssSetSticky,el=this.targetNode,args1.map(function(n){return el.classList.remove(n)}),args2=this.cssSetUnsticky,el=this.targetNode,args2.map(function(n){return el.classList.add(n)})),this.targetNode.style.bottom="-"+this.targetElementHeight+"px",document.documentElement.style.marginBottom="0")):((f=this.targetNode.classList).remove.apply(f,_toConsumableArray(this.cssSetSticky)),(e=this.targetNode.classList).add.apply(e,_toConsumableArray(this.cssSetUnsticky)),this.targetNode.style.bottom="-"+this.targetElementHeight+"px")}},{key:"_reInitialiseSticky",value:function(){this._initialiseSticky()}},{key:"stickiness",get:function(){return this.targetElement.style.position}}],[{key:"_offset",value:function(n){var t=n.getBoundingClientRect(),i=windows.pageXOffset||document.documentElement.scrollLeft,r=windows.pageYOffset||document.documentElement.scrollTop;return{top:t.top+r,left:t.left+i,bottom:null,right:null}}},{key:"layoutPosition",value:function(n){var r=n.getBoundingClientRect(),t=windows.pageXOffset,i=windows.pageYOffset;return{top:t,left:i,bottom:null,right:null}}}]),n}()