{"version":3,"file":"js/src_js_modules_text-ticker_index_js.1fd66d197584cc5aead1.bundle.js","mappings":"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","sources":["webpack://moosehead/./src/js/utils/wheel.js","webpack://moosehead/./src/js/modules/text-ticker/index.js","webpack://moosehead/./src/js/utils/mobile.js"],"sourcesContent":["/*\n\n──────────────────────────────────────────\n──────────────────────────────────────────\nWHEEL\n──────────────────────────────────────────\n──────────────────────────────────────────\n\nconst wt = Wheel(cb);\n wt.on(); // start listening to mouse wheel events\n wt.off(); // stop listening to mouse wheel events\n\nfunction cb(delta, event) {\n // do something\n}\n\n*/\n\nimport { on, off } from \"./listener\";\n\nconst Wheel = (cb) => {\n let tick = false,\n event,\n delta;\n\n // PRIVATE API\n const gRaf = (e) => {\n event = e;\n\n if (event.cancelable) event.preventDefault();\n if (!tick) {\n requestAnimationFrame(_run);\n tick = true;\n }\n };\n const onWheel = () => {\n delta = event.wheelDeltaY || event.deltaY * -1;\n getCb();\n };\n const onMouseWheel = () => {\n delta = event.wheelDeltaY ? event.wheelDeltaY : event.wheelDelta;\n getCb();\n };\n const getCb = () => {\n cb(delta, event);\n tick = false;\n };\n\n // PUBLIC API\n const _on = () => {\n on(document, \"mouseWheel\", gRaf);\n };\n const _off = () => {\n off(document, \"mouseWheel\", gRaf);\n };\n const _run = () => {\n if (!event) return;\n const eType = event.type;\n\n if (eType === \"wheel\") onWheel();\n else if (eType === \"mousewheel\") onMouseWheel();\n };\n\n const ctx = {\n on: _on,\n off: _off\n };\n\n return ctx;\n};\n\nexport default Wheel;\n","import { $, $$, rect } from \"@utils/dom\";\nimport ImagesLoaded from \"@utils/imagesloaded\";\nimport { lerp } from \"@utils/math\";\nimport { mobile } from \"@utils/mobile\";\nimport ResizeOrientation from \"@utils/resize\";\nimport Wheel from \"@utils/wheel\";\n\nconst FRICTION = 0.9;\nconst VELOCITY = 1;\n\nconst MODE_CSS = 'css';\nconst MODE_JS = 'js';\nconst MODE_SCROLL = 'scroll';\n\nconst DIRECTION_LEFT = -1;\nconst DIRECTION_RIGHT = 1;\nconst DIRECTION_TOP = -1;\nconst DIRECTION_BOTTOM = 1;\nconst DIRECTION_BOTH = 0;\n\nclass TextTicker {\n constructor(el, emitter) {\n this.el = el;\n this.emitter = emitter;\n this.template = $(\".text-ticker__text\", this.el);\n this.images = [ ...$$('img', this.template) ];\n this.texts = [this.template];\n\n this._mode = this._getMode();\n this._direction = this._getDirection();\n this._directionAxis = this._getDirectionAxis();\n this._speed = this._getSpeed();\n this._velocity = { target: this._speed * this._direction, current: this._speed * this._direction };\n this._position = 0;\n this._maximum = 0;\n this._raf = null;\n this._wheel = null;\n this._ro = null;\n this._inView = false;\n this._paused = false;\n this._imagesLoader = null;\n\n this._onScroll = this._onScroll.bind(this);\n this._onRaf = this._onRaf.bind(this);\n this._onScrollStart = this._onScrollStart.bind(this);\n this._onScrollStop = this._onScrollStop.bind(this);\n this._onScrollCall = this._onScrollCall.bind(this);\n this._onResize = this._onResize.bind(this);\n this._onResume = this._onResume.bind(this);\n this._onPause = this._onPause.bind(this);\n }\n\n init() {\n // set velocity to zero on scroll mode\n if(this._mode === MODE_SCROLL) this._velocity.target = this._velocity.current = 0;\n\n if(this._mode === MODE_JS || this._mode === MODE_SCROLL ) {\n this.el.classList.add(\"--mode-js\");\n this._wheel = Wheel(this._onScroll);\n\n // if element does'nt have data-scroll, assume he's always inView\n if( !this.el.hasAttribute('data-scroll') ) this._inView = true;\n } else {\n this.el.classList.add('--mode-css');\n }\n\n // if ticker contains images, force size recalculation when images are loaded\n if(this.images && this.images.length > 0) this._imagesLoader = new ImagesLoaded(this.images, this._onResize);\n\n this._onResize();\n this._bindEvents();\n }\n destroy() {\n if( this._imagesLoader ) this._imagesLoader.destroy();\n\n this.el = null;\n this.emitter = null;\n this.template = null;\n this.images = null;\n this.texts = null;\n\n this._mode = null;\n this._direction = null;\n this._directionAxis = null;\n this._speed = null;\n this._velocity = null;\n this._position = null;\n this._maximum = null;\n this._raf = null;\n this._wheel = null;\n this._ro = null;\n this._inView = null;\n this._imagesLoader = null;\n\n this._onScroll = null;\n this._onRaf = null;\n this._onScrollStart = null;\n this._onScrollStop = null;\n this._onScrollCall = null;\n this._onResize = null;\n }\n\n start() { this._onResize(); }\n stop() { this._unbindEvents(); }\n\n _bindEvents() {\n ResizeOrientation.add(this._onResize);\n\n if (this._wheel) this._wheel?.on();\n if (this._mode === MODE_JS || this._mode === MODE_SCROLL) {\n this.emitter?.on(\"SiteScroll.start\", this._onScrollStart);\n this.emitter?.on(\"SiteScroll.stop\", this._onScrollStop);\n this.emitter?.on(\"SiteScroll.text-ticker\", this._onScrollCall);\n this.emitter?.on(\"TextTicker.pause\", this._onPause);\n this.emitter?.on(\"TextTicker.resume\", this._onResume);\n\n this._raf = requestAnimationFrame(this._onRaf);\n }\n }\n _unbindEvents() {\n ResizeOrientation.remove(this._onResize);\n\n this.emitter?.off(\"SiteScroll.start\", this._onScrollStart);\n this.emitter?.off(\"SiteScroll.stop\", this._onScrollStop);\n this.emitter?.off(\"SiteScroll.text-ticker\", this._onScrollCall);\n this.emitter?.off(\"TextTicker.pause\", this._onPause);\n this.emitter?.off(\"TextTicker.resume\", this._onResume);\n\n if (this._wheel) this._wheel?.off();\n if (this._raf) cancelAnimationFrame(this._raf);\n\n this._raf = null;\n }\n\n // method for pausing ticker emitted from another module\n _onPause(el) {\n if(el !== this.el) return;\n this._paused = true;\n }\n\n // method for resuming ticker emitted from another module\n _onResume(el) {\n if(el !== this.el) return;\n this._paused = false;\n }\n\n _onScroll(delta) {\n this._velocity.target = delta * this._speed * 0.05;\n\n // apply directional restriction on velocity\n if( this._direction !== DIRECTION_BOTH ) this._velocity.target = Math.abs(this._velocity.target) * this._direction;\n }\n _onRaf() {\n // do nothing if we have no text to move\n if (!this.texts) return;\n\n this._raf = requestAnimationFrame(this._onRaf);\n\n // stop here when not inView or paused\n if(!this._inView || this._paused) return;\n\n // apply friction\n this._velocity.target *= FRICTION;\n\n // set minimal velocity based on is current direction (only for JS mode)\n if( this._mode === MODE_JS ) {\n if (this._velocity.target > 0) this._velocity.target = Math.max(VELOCITY * this._speed, this._velocity.target);\n else this._velocity.target = Math.min(VELOCITY * this._speed * -1, this._velocity.target);\n }\n\n // lerp velocity\n this._velocity.current = lerp(this._velocity.current, this._velocity.target, 0.2);\n\n // update position\n this._position += this._velocity.current;\n\n // limits to [maximum, 0]\n if( this._position < this._maximum ) this._position -= this._maximum;\n else if( this._position > 0 ) this._position += this._maximum;\n\n let translateValue = null;\n if (this._directionAxis === 'x') translateValue = `translate3d(${this._position}px, 0, 0)`;\n else if (this._directionAxis === 'y') translateValue = `translate3d(0, ${this._position}px, 0)`;\n\n // apply transformations if inView\n if( this._inView ) this.texts.forEach(text => text.style.transform = translateValue);\n }\n _onScrollStart() {\n this._wheel?.on();\n this._raf = requestAnimationFrame(this._onRaf);\n }\n _onScrollStop() {\n this._wheel?.off();\n\n if (this._raf) cancelAnimationFrame(this._raf);\n this._raf = null;\n }\n _onScrollCall(direction, obj) {\n // if scroll call is not related to this element, do nothing\n if( obj.el !== this.el ) return;\n\n // update inView status\n this._inView = direction === 'enter';\n }\n _onResize() {\n const elRect = rect(this.el);\n const textRect = rect(this.template);\n\n // if one of the two elements rect is null, do nothing\n if( this._directionAxis === 'y' ) {\n if( elRect.height < 1 || textRect.height < 1 ) return;\n } else {\n if( elRect.width < 1 || textRect.width < 1 ) return;\n }\n\n this._maximum = textRect[this._directionAxis === 'y' ? 'height' : 'width'] * -1;\n this._speed = this._getSpeed();\n\n const quantity = Math.ceil(this._directionAxis === 'y' ? elRect.height / textRect.height : elRect.width / textRect.width) + 1;\n\n while( this.texts.length < quantity ) {\n const copy = this.template.cloneNode(true);\n copy.setAttribute('aria-hidden', true);\n copy.style.setProperty('--ticker-index', this.texts.length);\n\n this.texts.push(copy);\n this.el.appendChild(copy);\n }\n }\n\n _getDirection() {\n if( this.el.classList.contains('--direction-left') ) return DIRECTION_LEFT;\n else if( this.el.classList.contains('--direction-both') ) return DIRECTION_BOTH;\n else if( this.el.classList.contains('--direction-right') ) return DIRECTION_RIGHT;\n else if( this.el.classList.contains('--direction-top') ) return DIRECTION_TOP;\n else if( this.el.classList.contains('--direction-bottom') ) return DIRECTION_BOTTOM;\n }\n _getDirectionAxis() {\n if( this.el.classList.contains('--direction-left') || this.el.classList.contains('--direction-right') ) return 'x';\n else if( this.el.classList.contains('--direction-top') || this.el.classList.contains('--direction-bottom') ) return 'y';\n }\n _getMode() {\n if( mobile ) return MODE_CSS;\n\n switch( this.el.dataset.textTicker ){\n case MODE_CSS: return MODE_CSS;\n case MODE_SCROLL: return MODE_SCROLL;\n default: return MODE_JS;\n }\n }\n _getSpeed() {\n return Math.abs( parseFloat( getComputedStyle(this.el).getPropertyValue('--speed')) ?? 1 );\n }\n}\n\nexport default TextTicker;\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":["cb","event","delta","tick","gRaf","e","cancelable","preventDefault","requestAnimationFrame","_run","getCb","eType","type","wheelDeltaY","deltaY","wheelDelta","on","document","off","MODE_CSS","MODE_JS","MODE_SCROLL","TextTicker","el","emitter","this","template","$","images","$$","texts","_mode","_getMode","_direction","_getDirection","_directionAxis","_getDirectionAxis","_speed","_getSpeed","_velocity","target","current","_position","_maximum","_raf","_wheel","_ro","_inView","_paused","_imagesLoader","_onScroll","bind","_onRaf","_onScrollStart","_onScrollStop","_onScrollCall","_onResize","_onResume","_onPause","init","classList","add","Wheel","hasAttribute","length","ImagesLoaded","_bindEvents","destroy","start","stop","_unbindEvents","ResizeOrientation","cancelAnimationFrame","Math","abs","max","min","lerp","translateValue","forEach","text","style","transform","direction","obj","elRect","rect","textRect","height","width","quantity","ceil","copy","cloneNode","setAttribute","setProperty","push","appendChild","contains","mobile","dataset","textTicker","parseFloat","getComputedStyle","getPropertyValue","test","navigator","userAgent","platform","maxTouchPoints","window","matchMedia","matches"],"sourceRoot":""}