{"version":3,"file":"js/src_js_modules_pb-row-sticky-sliding-content_index_js.13bfea03e739e8a42efc.bundle.js","mappings":"qzCAqEA,QAAG,W,SA9DGA,EACQC,EAAIC,I,kGADZF,GAEFG,KAAKF,GAAKA,EACVE,KAAKD,QAAUA,EAEfC,KAAKC,SAAUC,EAAAA,EAAAA,GAAE,iBAAkBF,KAAKF,IACxCE,KAAKG,SAAY,GAAGC,EAAAA,EAAAA,IAAG,mDAEvBJ,KAAKK,aAAeL,KAAKK,aAAaC,KAAKN,MAC3CA,KAAKO,UAAYP,KAAKO,UAAUD,KAAKN,K,oBATnCH,G,EAAAA,C,CAYJW,IAAAA,O,MAAAA,WACER,KAAKS,2BACLT,KAAKU,aACP,G,CACAC,IAAAA,U,MAAAA,WACEX,KAAKY,gBAELZ,KAAKF,GAAK,KACVE,KAAKD,QAAU,KAEfC,KAAKC,QAAU,KAEfD,KAAKK,aAAe,KACpBL,KAAKO,UAAY,IACnB,G,CAEAM,IAAAA,Q,MAAAA,WAAS,G,CACTC,IAAAA,O,MAAAA,WAAQ,G,CAERJ,IAAAA,c,MAAAA,WACEK,EAAAA,GAAAA,IAAsBf,KAAKO,WACvBP,KAAKD,SAASC,KAAKD,QAAQiB,GAAG,mDAAoDhB,KAAKK,aAC7F,G,CAEAO,IAAAA,gB,MAAAA,WACEG,EAAAA,GAAAA,OAAyBf,KAAKO,WAC1BP,KAAKD,SAASC,KAAKD,QAAQkB,IAAI,mDAAoDjB,KAAKK,aAC9F,G,CAEAA,IAAAA,e,MAAAA,SAAaa,EAAWC,GACtB,GAAGD,IAAcE,EAAAA,GAAjB,CAEA,IAAMC,EAAQF,EAAIrB,GAAGwB,QAAQD,MACzBrB,KAAKC,UAASD,KAAKC,QAAQsB,UAAYF,EAHN,CAIvC,G,CAEAd,IAAAA,Y,MAAAA,WACEP,KAAKS,0BACP,G,CAEAA,IAAAA,2B,MAAAA,WACE,GAAIT,KAAKG,SAAU,CACjB,IAAMqB,EAAyBxB,KAAKG,SAASH,KAAKG,SAASsB,OAAS,GAAGC,aAEvE1B,KAAKF,GAAG6B,MAAMC,YAAY,2BAA4B,GAA0B,OAAvBJ,EAAuB,MAClF,CACF,M,2BA1DI3B,C,CA8DH,E,gKCrEI,IAAMgC,EAAM,IAAO,GAEbC,EAAmB,YACnBV,EAAe,QACfW,EAAc,OAEdC,EAAiB,OACjBC,EAAe,KACfC,EAA2B,mBAC3BC,EAAyB,iBAEzBC,EAAiB,IACjBC,EAA2B,kBAC3BC,EAA6B,wBAE7BC,EAAoB,CAC/BC,OAAQ,EACRC,QAAQ,EACRC,UAAU,E,yDCjBL,IAAMC,EACX,2DAA2DC,KAAKC,UAAUC,YAClD,aAAvBD,UAAUE,UAA2BF,UAAUG,eAAiB,EAGvCC,OAAOC,WAAW,iBAAiBC,QACnCF,OAAOC,WAAW,kBAAkBC,O","sources":["webpack://moosehead/./src/js/modules/pb-row-sticky-sliding-content/index.js","webpack://moosehead/./src/js/scroll/constants.js","webpack://moosehead/./src/js/utils/mobile.js"],"sourcesContent":["import { $, $$ } from \"@utils/dom\";\nimport { on, off } from \"@utils/listener\";\nimport { mobile } from \"@utils/mobile\";\nimport ResizeOrientation from \"@utils/resize\";\n\nimport { INVIEW_ENTER, INVIEW_CLASSNAME } from \"@scroll/constants\";\n\nclass PbRowStickySlidingContent {\n constructor(el, emitter) {\n this.el = el;\n this.emitter = emitter;\n\n this.counter = $('[data-counter]', this.el);\n this.contents = [...$$(\".pb-row-sticky-sliding-content__contentContent\")];\n\n this._onScrollSpy = this._onScrollSpy.bind(this);\n this._onResize = this._onResize.bind(this);\n }\n\n init() {\n this._setContentBottomPadding();\n this._bindEvents();\n }\n destroy() {\n this._unbindEvents();\n\n this.el = null;\n this.emitter = null;\n\n this.counter = null;\n\n this._onScrollSpy = null;\n this._onResize = null;\n }\n\n start() {}\n stop() {}\n\n _bindEvents() {\n ResizeOrientation.add(this._onResize);\n if (this.emitter) this.emitter.on(\"SiteScroll.pb-row-sticky-sliding-content-content\", this._onScrollSpy);\n }\n\n _unbindEvents() {\n ResizeOrientation.remove(this._onResize);\n if (this.emitter) this.emitter.off(\"SiteScroll.pb-row-sticky-sliding-content-content\", this._onScrollSpy);\n }\n\n _onScrollSpy(direction, obj){\n if(direction !== INVIEW_ENTER) return;\n\n const index = obj.el.dataset.index;\n if (this.counter) this.counter.innerHTML = index;\n }\n\n _onResize(){\n this._setContentBottomPadding();\n }\n\n _setContentBottomPadding(){\n if (this.contents) {\n const content_bottom_padding = this.contents[this.contents.length - 1].offsetHeight;\n\n this.el.style.setProperty('--content-bottom-padding', `${content_bottom_padding}px`);\n }\n }\n\n}\n\nexport default PbRowStickySlidingContent;\n","export const FPS = 1000 / 60;\n\nexport const INVIEW_CLASSNAME = 'is-inview';\nexport const INVIEW_ENTER = 'enter';\nexport const INVIEW_EXIT = 'exit';\n\nexport const DIRECTION_DOWN = 'down';\nexport const DIRECTION_UP = 'up';\nexport const DIRECTION_DOWN_CLASSNAME = \"--js-scroll-down\";\nexport const DIRECTION_UP_CLASSNAME = \"--js-scroll-up\";\n\nexport const SCROLL_MINIMUM = 200;\nexport const SCROLL_MINIMUM_CLASSNAME = \"--js-scroll-min\";\nexport const SCROLLBAR_HIDDEN_CLASSNAME = \"--js-scrollbar-hidden\";\n\nexport const SCROLL_TO_OPTIONS = {\n offset: 0,\n smooth: true,\n callback: false,\n};\n\nexport default {\n FPS,\n INVIEW_CLASSNAME,\n INVIEW_ENTER,\n INVIEW_EXIT,\n DIRECTION_DOWN,\n DIRECTION_UP,\n DIRECTION_DOWN_CLASSNAME,\n DIRECTION_UP_CLASSNAME,\n SCROLL_MINIMUM,\n SCROLL_MINIMUM_CLASSNAME,\n SCROLLBAR_HIDDEN_CLASSNAME,\n SCROLL_TO_OPTIONS,\n};\n","// copied from locomotive-scroll to detect if device is mobile\nexport const mobile =\n /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ||\n (navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1);\n\n\nexport const touch_device = window.matchMedia('(hover: none)').matches;\nexport const hover_device = window.matchMedia('(hover: hover)').matches;\n\nexport default {\n mobile,\n touch_device,\n hover_device\n};\n"],"names":["PbRowStickySlidingContent","el","emitter","this","counter","$","contents","$$","_onScrollSpy","bind","_onResize","init","_setContentBottomPadding","_bindEvents","destroy","_unbindEvents","start","stop","ResizeOrientation","on","off","direction","obj","INVIEW_ENTER","index","dataset","innerHTML","content_bottom_padding","length","offsetHeight","style","setProperty","FPS","INVIEW_CLASSNAME","INVIEW_EXIT","DIRECTION_DOWN","DIRECTION_UP","DIRECTION_DOWN_CLASSNAME","DIRECTION_UP_CLASSNAME","SCROLL_MINIMUM","SCROLL_MINIMUM_CLASSNAME","SCROLLBAR_HIDDEN_CLASSNAME","SCROLL_TO_OPTIONS","offset","smooth","callback","mobile","test","navigator","userAgent","platform","maxTouchPoints","window","matchMedia","matches"],"sourceRoot":""}