PageSourceSearch

https://www.crayon.co/hubfs/hub_generated/template_assets/1/564638…/template_sticky-sidebar.min.js

js crayon.co collected 2026-10-02 05:45:22 UTC 14,793 bytes, 8 lines download raw bytes

1!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports):"function"==typeof define&&define.amd?define(["exports"],factory):factory(global.StickySidebar={})}(this,function(exports){"use strict";"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var x,stickySidebar=function(fn,module){return fn(module={exports:{}},module.exports),module.exports}(function(module,exports){var factory;factory=function(exports){Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}(),StickySidebar=function(){var EVENT_KEY=".stickySidebar",DEFAULTS={topSpacing:0,bottomSpacing:0,containerSelector:!1,innerWrapperSelector:".inner-wrapper-sticky",stickyClass:"is-affixed",resizeSensor:!0,minWidth:!1},StickySidebar=function(){function StickySidebar(sidebar){var _this=this,options=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(function(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}(this,StickySidebar),this.options=StickySidebar.extend(DEFAULTS,options),this.sidebar="string"==typeof sidebar?document.querySelector(sidebar):sidebar,void 0===this.sidebar)throw new Error("There is no specific sidebar element.");this.sidebarInner=!1,this.container=this.sidebar.parentElement,this.affixedType="STATIC",this.direction="down",this.support={transform:!1,transform3d:!1},this._initialized=!1,this._reStyle=!1,this._breakpoint=!1,this.dimensions={translateY:0,maxTranslateY:0,topSpacing:0,lastTopSpacing:0,bottomSpacing:0,lastBottomSpacing:0,sidebarHeight:0,sidebarWidth:0,containerTop:0,containerHeight:0,viewportHeight:0,viewportTop:0,lastViewportTop:0},["handleEvent"].forEach(function(method){_this[method]=_this[method].bind(_this)}),this.initialize()}return _createClass(StickySidebar,[{key:"initialize",value:function(){var _this2=this;if(this._setSupportFeatures(),this.options.innerWrapperSelector&&(this.sidebarInner=this.sidebar.querySelector(this.options.innerWrapperSelector),null===this.sidebarInner&&(this.sidebarInner=!1)),!this.sidebarInner){var wrapper=document.createElement("div");for(wrapper.setAttribute("class","inner-wrapper-sticky"),this.sidebar.appendChild(wrapper);this.sidebar.firstChild!=wrapper;)wrapper.appendChild(this.sidebar.firstChild);this.sidebarInner=this.sidebar.querySelector(".inner-wrapper-sticky")}if(this.options.containerSelector){var containers=document.querySelectorAll(this.options.containerSelector);
1if((containers=Array.prototype.slice.call(containers)).forEach(function(container,item){container.contains(_this2.sidebar)&&(_this2.container=container)}),!containers.length)throw new Error("The container does not contains on the sidebar.")}"function"!=typeof this.options.topSpacing&&(this.options.topSpacing=parseInt(this.options.topSpacing)||0),"function"!=typeof this.options.bottomSpacing&&(this.options.bottomSpacing=parseInt(this.options.bottomSpacing)||0),this._widthBreakpoint(),this.calcDimensions(),this.stickyPosition(),this.bindEvents(),this._initialized=!0}},{key:"bindEvents",value:function(){window.addEventListener("resize",this,{passive:!0,capture:!1}),window.addEventListener("scroll",this,{passive:!0,capture:!1}),this.sidebar.addEventListener("update"+EVENT_KEY,this),this.options.resizeSensor&&"undefined"!=typeof ResizeSensor&&(new ResizeSensor(this.sidebarInner,this.handleEvent),new ResizeSensor(this.container,this.handleEvent))}},{key:"handleEvent",value:function(event){this.updateSticky(event)}},{key:"calcDimensions",value:function(){if(!this._breakpoint){var dims=this.dimensions;dims.containerTop=StickySidebar.offsetRelative(this.container).top,dims.containerHeight=this.container.clientHeight,dims.containerBottom=dims.containerTop+dims.containerHeight,dims.sidebarHeight=this.sidebarInner.offsetHeight,dims.sidebarWidth=this.sidebarInner.offsetWidth,dims.viewportHeight=window.innerHeight,dims.maxTranslateY=dims.containerHeight-dims.sidebarHeight,this._calcDimensionsWithScroll()}}},{key:"_calcDimensionsWithScroll",value:function(){var dims=this.dimensions;dims.sidebarLeft=StickySidebar.offsetRelative(this.sidebar).left,dims.viewportTop=document.documentElement.scrollTop||document.body.scrollTop,dims.viewportBottom=dims.viewportTop+dims.viewportHeight,dims.viewportLeft=document.documentElement.scrollLeft||document.body.scrollLeft,dims.topSpacing=this.options.topSpacing,dims.bottomSpacing=this.options.bottomSpacing,"function"==typeof dims.topSpacing&&(dims.topSpacing=parseInt(dims.topSpacing(this.sidebar))||0),"function"==typeof dims.bottomSpacing&&(dims.bottomSpacing=parseInt(dims.bottomSpacing(this.sidebar))||0),"VIEWPORT-TOP"===this.affixedType?dims.topSpacing<dims.lastTopSpacing&&(dims.translateY+=dims.lastTopSpacing-dims.topSpacing,this._reStyle=!0):"VIEWPORT-BOTTOM"===this.affixedType&&dims.bottomSpacing<dims.lastBottomSpacing&&(dims.translateY+=dims.lastBottomSpacing-dims.bottomSpacing,this._reStyle=!0),dims.lastTopSpacing=dims.topSpacing,dims.lastBottomSpacing=dims.bottomSpacing}},{key:"isSidebarFitsViewport",value:function(){var dims=this.dimensions,offset="down"===this.scrollDirection?dims.lastBottomSpacing:dims.lastTopSpacing;return this.dimensions.sidebarHeight+offset<this.dimensions.viewportHeight}},{key:"observeScrollDir",value:function(){var dims=this.dimensions;if(dims.lastViewportTop!==dims.viewportTop){var furthest="down"===this.direction?Math.min:Math.max;dims.viewportTop===furthest(dims.viewportTop,dims.lastViewportTop)&&(this.direction="down"===this.direction?"up":"down")}}},{key:"getAffixType",value:function(){this._calcDimensionsWithScroll();var dims=this.dimensions,colliderTop=dims.viewportTop+dims.topSpacing,affixType=this.affixedType;return colliderTop<=dims.containerTop||dims.containerHeight<=dims.sidebarHeight?(dims.translateY=0,affixType="STATIC"):affixType="up"===this.direction?this._getAffixTypeScrollingUp():this._getAffixTypeScrollingDown(),dims.translateY=Math.max(0,dims.translateY),dims.translateY=Math.min(dims.containerHeight,dims.translateY),dims.translateY=Math.round(dims.translateY),dims.lastViewportTop=dims.viewportTop,affixType}},{key:"_getAffixTypeScrollingDown",value:function(){var dims=this.dimensions,sidebarBottom=dims.sidebarHeight+dims.containerTop,colliderTop=dims.viewportTop+dims.topSpacing,colliderBottom=dims.viewportBottom-dims.bottomSpacing,affixType=this.affixedType;return this.isSidebarFitsViewport()?dims.sidebarHeight+colliderTop>=dims.containerBottom?(dims.translateY=dims.containerBottom-sidebarBottom,affixType="CONTAINER-BOTTOM"):colliderTop>=dims.containerTop&&(dims.translateY=colliderTop-dims.containerTop,affixType="VIEWPORT-TOP"):dims.containerBottom<=colliderBottom?(dims.translateY=dims.containerBottom-sidebarBottom,affixType="CONTAINER-BOTTOM"):sidebarBottom+dims.translateY<=colliderBottom?(dims.translateY=colliderBottom-sidebarBottom,affixType="VIEWPORT-BOTTOM"):dims.containerTop+dims.translateY<=colliderTop&&0!==dims.translateY&&dims.maxTranslateY
1!==dims.translateY&&(affixType="VIEWPORT-UNBOTTOM"),affixType}},{key:"_getAffixTypeScrollingUp",value:function(){var dims=this.dimensions,sidebarBottom=dims.sidebarHeight+dims.containerTop,colliderTop=dims.viewportTop+dims.topSpacing,colliderBottom=dims.viewportBottom-dims.bottomSpacing,affixType=this.affixedType;return colliderTop<=dims.translateY+dims.containerTop?(dims.translateY=colliderTop-dims.containerTop,affixType="VIEWPORT-TOP"):dims.containerBottom<=colliderBottom?(dims.translateY=dims.containerBottom-sidebarBottom,affixType="CONTAINER-BOTTOM"):this.isSidebarFitsViewport()||dims.containerTop<=colliderTop&&0!==dims.translateY&&dims.maxTranslateY!==dims.translateY&&(affixType="VIEWPORT-UNBOTTOM"),affixType}},{key:"_getStyle",value:function(affixType){if(void 0!==affixType){var style={inner:{},outer:{}},dims=this.dimensions;switch(affixType){case"VIEWPORT-TOP":style.inner={position:"fixed",top:dims.topSpacing,left:dims.sidebarLeft-dims.viewportLeft,width:dims.sidebarWidth};break;case"VIEWPORT-BOTTOM":style.inner={position:"fixed",top:"auto",left:dims.sidebarLeft,bottom:dims.bottomSpacing,width:dims.sidebarWidth};break;case"CONTAINER-BOTTOM":case"VIEWPORT-UNBOTTOM":var translate=this._getTranslate(0,dims.translateY+"px");style.inner=translate?{transform:translate}:{position:"absolute",top:dims.translateY,width:dims.sidebarWidth}}switch(affixType){case"VIEWPORT-TOP":case"VIEWPORT-BOTTOM":case"VIEWPORT-UNBOTTOM":case"CONTAINER-BOTTOM":style.outer={height:dims.sidebarHeight,position:"relative"}}return style.outer=StickySidebar.extend({height:"",position:""},style.outer),style.inner=StickySidebar.extend({position:"relative",top:"",left:"",bottom:"",width:"",transform:""},style.inner),style}}},{key:"stickyPosition",value:function(force){if(!this._breakpoint){force=this._reStyle||force||!1,this.options.topSpacing,this.options.bottomSpacing;var affixType=this.getAffixType(),style=this._getStyle(affixType);if((this.affixedType!=affixType||force)&&affixType){var affixEvent="affix."+affixType.toLowerCase().replace("viewport-","")+EVENT_KEY;for(var key in StickySidebar.eventTrigger(this.sidebar,affixEvent),"STATIC"===affixType?StickySidebar.removeClass(this.sidebar,this.options.stickyClass):StickySidebar.addClass(this.sidebar,this.options.stickyClass),style.outer){var unit="number"==typeof style.outer[key]?"px":"";this.sidebar.style[key]=style.outer[key]+unit}for(var _key in style.inner){var _unit="number"==typeof style.inner[_key]?"px":"";this.sidebarInner.style[_key]=style.inner[_key]+_unit}var affixedEvent="affixed."+affixType.toLowerCase().replace("viewport-","")+EVENT_KEY;StickySidebar.eventTrigger(this.sidebar,affixedEvent)}else this._initialized&&(this.sidebarInner.style.left=style.inner.left);this.affixedType=affixType}}},{key:"_widthBreakpoint",value:function(){window.innerWidth<=this.options.minWidth?(this._breakpoint=!0,this.affixedType="STATIC",this.sidebar.removeAttribute("style"),StickySidebar.removeClass(this.sidebar,this.options.stickyClass),this.sidebarInner.removeAttribute("style")):this._breakpoint=!1}},{key:"updateSticky",value:function(){var eventType,_this3=this,event=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this._running||(this._running=!0,eventType=event.type,requestAnimationFrame(function(){"scroll"===eventType?(_this3._calcDimensionsWithScroll(),_this3.observeScrollDir(),_this3.stickyPosition()):(_this3._widthBreakpoint(),_this3.calcDimensions(),_this3.stickyPosition(!0)),_this3._running=!1}))}},{key:"_setSupportFeatures",value:function(){var support=this.support;support.transform=StickySidebar.supportTransform(),support.transform3d=StickySidebar.supportTransform(!0)}},{key:"_getTranslate",value:function(){var y=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,x=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,z=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return this.support.transform3d?"translate3d("+y+", "+x+", "+z+")":!!this.support.translate&&"translate("+y+", "+x+")"}},{key:"destroy",value:function(){window.removeEventListener("resize",this,{capture:!1}),window.removeEventListener("scroll",this,{capture:!1}),this.sidebar.classList.remove(this.options.stickyClass),this.sidebar.style.minHeight="",this.sidebar.removeEventListener("update"+EVENT_KEY,this);var styleReset={inner:{},outer:{}};for(var key in styleReset.inner={position:"",top:"",left:"",bottom:"",width:"",transform:""},styleReset.outer={height:"",position:""},styleReset.outer)this.sidebar.style[key]=styleReset.outer[key];for(var _key2 in styleReset.inner)this.sidebarInner.style[_key2]=styleReset.inner[_key2];this.options.resizeSensor&&"undefined"!=typeof ResizeSensor&&(ResizeSensor.detach(this.sidebarInner,this.handleEvent),ResizeSensor.detach(this.container,this.handleEvent))}}],[{key:"supportTransform",value:function(transform3d){var result=!1,property=transform3d?"perspective":"transform",upper=property.charAt(0).toUpperCase()+property.slice(1),style=document.createElement("support").style;return(property+" "+["Webkit","Moz","O","ms"].join(upper+" ")+upper).split(" ").forEach(function(property,i){if(void 0!==style[property])return result=property,!1}),result}},{key:"eventTrigger",value:function(element,eventName,data){try{var event=new CustomEvent(eventName,{detail:data})}catch(e){(event=document.createEvent("CustomEvent")).initCustomEvent(eventName,!0,!0,data)}element.dispatchEvent(event)}},{key:"extend",value:function(defaults,options){var results={};for(var key in defaults)void 0!==options[key]?results[key]=options[key]:results[key]=defaults[key];return results}},{key:"offsetRelative",value:function(element){var result={left:0,top:0};do{var offsetTop=element.offsetTop,offsetLeft=element.offsetLeft;isNaN(offsetTop)||(result.top+=offsetTop),isNaN(offsetLeft)||(result.left+=offsetLeft),element="BODY"===element.tagName?element.parentElement:element.offsetParent}while(element);return result}},{key:"addClass",value:function(element,className){StickySidebar.hasClass(element,className)||(element.classList?element.classList.add(className):element.className+=" "+className)}},{key:"removeClass",value:function(element,className){StickySidebar.hasClass(element,className)&&(element.classList?element.classList.remove(className):element.className=element.className.replace(new RegExp("(^|\\b)"+className.split(" ").join("|")+"(\\b|$)","gi")," "))}},{key:"hasClass",value:function(element,className){return element.classList?element.classList.contains(className):new RegExp("(^| )"+className+"( |$)","gi").test(element.className)}},{key:"defaults",get:function(){return DEFAULTS}}]),StickySidebar}();return StickySidebar}();
2/**
3   * Sticky Sidebar JavaScript Plugin.
4   * @version 3.3.4
5   * @author Ahmed Bouhuolia <[email protected]>
6   * @license The MIT License (MIT)
7   */exports.default=StickySidebar,window.StickySidebar=StickySidebar},factory(exports)}),stickySidebar$1=(x=stickySidebar)&&x.__esModule&&Object.prototype.hasOwnProperty.call(x,"default")?x.default:x;
7exports.default=stickySidebar$1,exports.__moduleExports=stickySidebar,Object.defineProperty(exports,"__esModule",{value:!0})});
8//# sourceURL=https://2355195.fs1.hubspotusercontent-na1.net/hubfs/2355195/hub_generated/template_assets/1/56463843616/1773952596338/template_sticky-sidebar.js

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.