{"version":3,"file":"chunk.6012.ae9601e257ddc17d.js","mappings":"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","sources":["webpack://tombras/./js/classes/Card.js","webpack://tombras/./js/components/FourCards.js","webpack://tombras/./js/components/ProductLine.js","webpack://tombras/./js/components/RecipeSlider.js","webpack://tombras/./js/components/ThreeLargeCards.js","webpack://tombras/./js/components/TinyCards.js"],"sourcesContent":["import { DESKTOP_SIZE } from \"../utils\";\nimport gsap from \"gsap\";\nimport { DEFAULT_TIME_SHORT } from \"../animations/config\";\nimport Draggable from \"gsap/Draggable\";\nimport InertiaPlugin from '../vendors/gsap-bonus/InertiaPlugin';\ngsap.registerPlugin(Draggable, InertiaPlugin);\n\n/**\n * Arrows\n * @typedef {{\n * \tprev: HTMLElement,\n * \tnext: HTMLElement,\n * }} Arrows\n */\nclass Cards {\n\tconstructor(el, margin) {\n\t\tthis.el = el;\n\t\tthis.margin = margin;\n\t\tthis.draggable = null;\n\t\tthis.isDragEnabled = false;\n\t\tthis.cardSelector = null;\n\t\tthis.container = null;\n\t}\n\n\t/**\n\t * Converts container into a draggable element based off\n\t * elements matching the selector. Can / will be disabled\n\t * as needed based on scroll sizes\n\t * @param {HTMLElement} container\n\t * @param {string} selector\n\t * @return void\n\t */\n\tmakeDraggable(container, selector = \".card\") {\n\t\t// doing this to make it easier\n\t\tthis.cardSelector = selector;\n\t\tthis.container = container;\n\n\t\t// Added this line because of layout pages sometimes freaking out\n\t\tif (!this.container) return false;\n\t\tconst snapPoints = this.calculateSnapPoints(selector);\n\t\tconst [slider] = Draggable.create(container, {\n\t\t\ttype: \"x\",\n\t\t\tbound: window,\n\t\t\tallowContextMenu: true,\n\t\t\tedgeResistance: 0.9,\n\t\t\tdragClickables: true,\n\t\t\tdragResistance: 0.2,\n\t\t\tthrowResistance: 10000,\n\t\t\tinertia: true,\n\t\t\tsnap: {\n\t\t\t\tx: snapPoints,\n\t\t\t},\n\t\t});\n\n\t\tif (!snapPoints) {\n\t\t\tthis.isDragEnabled = false;\n\t\t\tslider.disable();\n\t\t} else {\n\t\t\tthis.isDragEnabled = true;\n\t\t}\n\t\tthis.draggable = slider;\n\n\t\tconst nextEl = this.container.nextElementSibling;\n\t\tif (nextEl && nextEl.classList.contains(\"mobile-indicator\")) {\n\t\t\tthis.attachIndicatorStatus(nextEl);\n\t\t}\n\n\t\tthis.handleArrows();\n\n\t\tconsole.log(\"DRAG STATUS\", this.isDragEnabled);\n\t\t// setup a kill switch for search page\n\t\tconsole.log(this.container, \"kill draggable setup\");\n\t\tthis.container.addEventListener(\"killDraggable\", e => {\n\t\t\tconsole.log(this.container, \"kill draggable yo\");\n\t\t\tif (this.draggable) this.killDraggable();\n\t\t});\n\t\tthis.container.addEventListener(\"resumeDraggable\", e => {\n\t\t\tconsole.log(this.container, \"resume draggable yo\");\n\t\t\tif (this.draggable) this.resumeDraggable();\n\t\t});\n\t}\n\n\ttoggleDraggable({ status = false } = {}) {\n\t\tconsole.log(status);\n\t\tif (this.draggable) {\n\t\t\tthis.isDragEnabled = status;\n\t\t\tconst dFn = status ? \"enable\" : \"disable\";\n\t\t\tthis.draggable[dFn]();\n\t\t\tconst classFn = status ? \"remove\" : \"add\";\n\t\t\tthis.container.parentNode.classList[classFn](\"no-wrap\");\n\t\t\tif (this.container.closest(\".card-with-arrows\")) {\n\t\t\t\tthis.container\n\t\t\t\t\t.closest(\".card-with-arrows\")\n\t\t\t\t\t.classList[classFn](\"killed\");\n\t\t\t}\n\t\t\tthis.container.style.transform = \"\";\n\n\t\t\tconsole.log(dFn, classFn);\n\t\t}\n\t}\n\n\tkillDraggable() {\n\t\tif (this.draggable) {\n\t\t\tthis.toggleDraggable({ status: false });\n\t\t}\n\t}\n\n\tresumeDraggable() {\n\t\tif (this.draggable && !this.isDragEnabled) {\n\t\t\tthis.toggleDraggable({ status: true });\n\t\t}\n\t}\n\n\t/**\n\t * @return number\n\t */\n\tgetCurrentPosition() {\n\t\tconst { x } = this.draggable;\n\t\tconst snapX = this.draggable.vars.snap.x;\n\t\tif (!(snapX && snapX.findIndex)) {\n\t\t\treturn 0;\n\t\t}\n\t\tconst foundIndex = snapX.findIndex(pt => {\n\t\t\treturn Math.abs(pt) === Math.abs(x);\n\t\t});\n\t\treturn foundIndex;\n\t}\n\n\t/**\n\t *\n\t * @param {HTMLElement} indicatorBar\n\t * @return void\n\t */\n\tattachIndicatorStatus(indicatorBar) {\n\t\tthis.updateIndicatorWidth();\n\t\tthis.draggable.addEventListener(\"throwcomplete\", data => {\n\t\t\tthis.updateIndicatorWidth();\n\t\t});\n\t}\n\n\tupdateIndicatorWidth() {\n\t\tconst nextEl = this.container.nextElementSibling;\n\t\tif (nextEl && nextEl.classList.contains(\"mobile-indicator\")) {\n\t\t\tconst percentageBar = nextEl.querySelector(\".percentage\");\n\t\t\tconst { x } = this.draggable;\n\t\t\tconst snapX = this.draggable.vars.snap.x;\n\t\t\tif (snapX && snapX.findIndex) {\n\t\t\t\tconst foundIndex = snapX.findIndex(pt => pt === x);\n\t\t\t\tpercentageBar.style.width = `${((foundIndex + 1) / snapX.length) *\n\t\t\t\t\t100}%`;\n\t\t\t} else {\n\t\t\t\tpercentageBar.style.width = `0%`;\n\t\t\t}\n\t\t}\n\t}\n\t/**\n\t *\n\t * @param {Arrows} arrows\n\t * @param {number} position\n\t * @param {number} numItems\n\t */\n\tarrowsData({ prev, next }, position, numItems) {\n\t\tconsole.log({ prev, next }, position, numItems);\n\t\tif (position <= 0) {\n\t\t\tprev.classList.add(\"hide\");\n\t\t} else {\n\t\t\tprev.classList.remove(\"hide\");\n\t\t}\n\t\tconsole.log(position, numItems, numItems - 1);\n\t\tif (position < numItems - 1) {\n\t\t\tnext.classList.remove(\"hide\");\n\t\t} else {\n\t\t\tnext.classList.add(\"hide\");\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @param {number} pos\n\t * @return void\n\t */\n\tprogrammaticallyTweenPosition(pos) {\n\t\tgsap.to(this.draggable.target, DEFAULT_TIME_SHORT, {\n\t\t\tx: pos,\n\t\t\tonComplete: () => {\n\t\t\t\tthis.draggable.update();\n\t\t\t\tthis.updateIndicatorWidth();\n\t\t\t},\n\t\t});\n\t}\n\n\t/**\n\t * If arrows are present, this will hook up all of their functionality\n\t */\n\thandleArrows() {\n\t\tconst arrows = this.container.closest(\".card-with-arrows\");\n\t\tif (!arrows) return false;\n\t\tconst numItems = this.container.querySelectorAll(this.cardSelector).length;\n\t\tconst prev = arrows.querySelector(\".prev-btn\");\n\t\tconst next = arrows.querySelector(\".next-btn\");\n\n\t\tif (arrows) {\n\t\t\tthis.arrowsData(\n\t\t\t\t{ prev, next },\n\t\t\t\tthis.getCurrentPosition(),\n\t\t\t\tthis.draggable.vars.snap.x.length,\n\t\t\t);\n\t\t\tnext.addEventListener(\"click\", e => {\n\t\t\t\tconst pos = this.getCurrentPosition() + 1;\n\t\t\t\tconst { x } = this.draggable.vars.snap;\n\t\t\t\tconst newPos = x[pos];\n\n\t\t\t\tif (pos < numItems) {\n\t\t\t\t\tthis.programmaticallyTweenPosition(newPos);\n\t\t\t\t\tthis.arrowsData({ prev, next }, pos, x.length);\n\t\t\t\t}\n\t\t\t});\n\t\t\tprev.addEventListener(\"click\", e => {\n\t\t\t\tconst pos = this.getCurrentPosition() - 1;\n\t\t\t\tconst { x } = this.draggable.vars.snap;\n\t\t\t\tconst newPos = x[pos];\n\t\t\t\tif (pos >= 0) {\n\t\t\t\t\tthis.programmaticallyTweenPosition(newPos);\n\t\t\t\t\tthis.arrowsData({ prev, next }, pos, x.length);\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.draggable.addEventListener(\"throwcomplete\", data => {\n\t\t\t\tthis.arrowsData(\n\t\t\t\t\t{ prev, next },\n\t\t\t\t\tthis.getCurrentPosition(),\n\t\t\t\t\tthis.draggable.vars.snap.x.length,\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Calculates all the x-axis snap points for scrolling\n\t * @param {string} selector\n\t */\n\tcalculateSnapPoints(selector = \".card, .sleek-card\") {\n\t\tconsole.log(this, selector, this.el);\n\t\tif (!this.el) return [];\n\t\tconst cards = this.el.querySelectorAll(selector);\n\t\tif (!cards.length) return [];\n\n\t\t// get the total width\n\t\tconst computedCardStyle = window.getComputedStyle(\n\t\t\tcards.length > 1 ? cards[1] : cards[0],\n\t\t);\n\t\tconst cardMargin =\n\t\t\tparseInt(computedCardStyle.marginLeft, 10) +\n\t\t\tparseInt(computedCardStyle.marginRight, 10);\n\t\tconsole.log(\n\t\t\t\"CARD MARGIN\",\n\t\t\tparseInt(computedCardStyle.marginRight, 10),\n\t\t\tparseInt(computedCardStyle.marginLeft, 10),\n\t\t\tcardMargin,\n\t\t);\n\t\tlet totalWidth = [...cards].reduce((acc, curr, idx) => {\n\t\t\treturn (acc += curr.offsetWidth + cardMargin);\n\t\t}, 0);\n\n\t\t// compare to see if we need to have this enabled\n\t\tconst containerWidth = Math.min(\n\t\t\tcards[0].parentNode.offsetWidth,\n\t\t\tcards[0].parentNode.parentNode.offsetWidth,\n\t\t);\n\t\tconsole.log(totalWidth, containerWidth);\n\t\tif (totalWidth <= containerWidth) {\n\t\t\tconsole.log(243);\n\t\t\treturn false;\n\t\t}\n\n\t\t// now we're calculating how to move the cards around\n\t\tconst cardCount = cards.length;\n\t\tconst cardSize = cards[0].offsetWidth;\n\t\tconst cardsPerPage =\n\t\t\tMath.floor(containerWidth / (cardSize + cardMargin)) || 1;\n\t\tconst sizeArr = Math.ceil(cardCount / cardsPerPage);\n\n\t\t// in case something is hidden, all of our math just fails\n\t\t// and we don't need this anyways, so disable!\n\t\tif (isNaN(sizeArr)) return false;\n\n\t\tconst snapsArr = Array(sizeArr);\n\t\t// const snapsArr = Array(cardCount);\n\n\t\tlet _width = 0;\n\t\tconst positions = [...snapsArr].map((_, idx) => {\n\t\t\tif (idx === 0) return 0; // force to 0 so we always align on left\n\t\t\tlet cardsInSection = [...cards].slice(\n\t\t\t\tidx * cardsPerPage,\n\t\t\t\tidx * cardsPerPage + cardsPerPage,\n\t\t\t).length;\n\n\t\t\t// console.log(227, cardsPerPage, cardCount);\n\t\t\t_width += cardSize * cardsInSection + cardsInSection * cardMargin;\n\t\t\t// _width += cardSize + cardMargin;\n\t\t\t// console.log(`${idx}: -${_width}`);\n\t\t\treturn -_width;\n\t\t});\n\n\t\tconsole.log(`SNAP POSITIONS:`, positions);\n\t\treturn positions;\n\t}\n\n\t/**\n\t * Wraps calculateSnapPoints and sets the object\n\t * @param {*} selector\n\t */\n\tupdateSnapPoints(selector = \".card\") {\n\t\tconst snapPoints = this.calculateSnapPoints(selector);\n\t\tthis.draggable.vars.snap.x = snapPoints;\n\t\treturn snapPoints;\n\t}\n\n\tdebug() {\n\t\tconsole.log(this);\n\t}\n\n\t/**\n\t * Handles turning cards on / off as required by screen sizes\n\t * @param {string} selector\n\t */\n\trecalculate(selector) {\n\t\tconst snapPoints = this.updateSnapPoints(selector);\n\n\t\t// is drag enabled and now we have no snap points?\n\t\t// is drag disabled and we have snap points\n\t\t// is drag enabled and we're now on desktop but we don't want to do that?\n\t\tif (this.disabledOnDesktop && window.innerWidth >= DESKTOP_SIZE) {\n\t\t\tthis.draggable.disable();\n\t\t\tthis.isDragEnabled = false;\n\t\t} else if (this.isDragEnabled && !snapPoints) {\n\t\t\tthis.draggable.disable();\n\t\t\tthis.isDragEnabled = false;\n\t\t} else if (!this.isDragEnabled && snapPoints) {\n\t\t\tthis.draggable.enable();\n\t\t\tthis.isDragEnabled = true;\n\t\t}\n\n\t\tconst arrows = this.container.closest(\".card-with-arrows\");\n\t\tif (arrows) {\n\t\t\tconst prev = arrows.querySelector(\".prev-btn\");\n\t\t\tconst next = arrows.querySelector(\".next-btn\");\n\n\t\t\tthis.arrowsData(\n\t\t\t\t{ prev, next },\n\t\t\t\tthis.getCurrentPosition(),\n\t\t\t\tthis.draggable.vars.snap.x.length,\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport default Cards;\n","import Cards from \"../classes/Card\";\n\nimport { tweenCards } from \"../animations\";\nimport { componentAnimationHandler } from \"../animations/AnimationHandler\";\nimport { paused } from \"../animations/config\";\nimport { windowResizeEvents } from \"../events\";\nimport gsap from \"gsap\";\n\nclass FourCards {\n\tconstructor(el, margin) {\n\t\tthis.el = el;\n\n\t\tthis.cards = null;\n\t\tthis.cardContainer = null;\n\t\tthis.init(margin);\n\t\tthis.setupEvents();\n\t\tcomponentAnimationHandler.add(this.el);\n\t}\n\n\tsetupEvents() {\n\t\twindowResizeEvents.push(this.recalculate.bind(this));\n\t\tthis.el.addEventListener(\"inview\", this.animate.bind(this));\n\t}\n\n\tinit(margin) {\n\t\tconst cardContainer = this.el.querySelector(\".card-container-inner\");\n\t\tconsole.log(\"the container\", cardContainer);\n\t\tthis.cardContainer = cardContainer;\n\t\t// const cardContainer = document.querySelector(\".card-container-inner\");\n\t\tthis.cards = new Cards(cardContainer, margin);\n\t\tthis.cards.makeDraggable(cardContainer);\n\t\tconsole.log(this.cards);\n\t}\n\n\tanimate() {\n\t\tlet tl = gsap.timeline({ paused });\n\t\ttl = tweenCards(this.cardContainer, tl);\n\t\ttl.play();\n\t}\n\n\trecalculate() {\n\t\tif (this.cards) {\n\t\t\tthis.cards.recalculate();\n\t\t}\n\t}\n}\n\nexport default FourCards;\nexport const instantiatedCards = [\n\t...document.querySelectorAll(\".four-cards\"),\n].map(el => {\n\treturn new FourCards(el, 20);\n});\n","import Cards from \"../classes/Card\";\nimport { windowResizeEvents } from \"../events\";\nimport { componentAnimationHandler } from \"../animations/AnimationHandler\";\nimport { tweenCards } from \"../animations\";\nimport { paused } from \"../animations/config\";\nimport gsap from \"gsap\";\n\nclass ProductLine {\n\tconstructor(el, margin) {\n\t\tthis.el = el;\n\n\t\tthis.cards = null;\n\t\tthis.cardContainer = null;\n\t\tthis.init(margin);\n\t\tthis.setupEvents();\n\t\tcomponentAnimationHandler.add(el);\n\t}\n\n\tsetupEvents() {\n\t\twindowResizeEvents.push(this.recalculate.bind(this));\n\t\tthis.el.addEventListener(\"inview\", this.animate.bind(this));\n\t}\n\n\tinit(margin) {\n\t\tconst cardContainer = this.el.querySelector(\".card-container-inner\");\n\t\tthis.cardContainer = cardContainer;\n\t\tthis.cards = new Cards(cardContainer, margin);\n\t\tthis.cards.makeDraggable(cardContainer);\n\t}\n\n\tanimate() {\n\t\tconst cards = this.cardContainer.children;\n\t\tlet tl = gsap.timeline({ paused });\n\t\tif (cards) {\n\t\t\tconsole.log(cards);\n\t\t\ttl = tweenCards(this.cardContainer, tl);\n\t\t}\n\t\ttl.play();\n\t}\n\n\trecalculate() {\n\t\tif (this.cards) {\n\t\t\tthis.cards.recalculate();\n\t\t}\n\t}\n}\n\nexport default ProductLine;\nexport const instantiatedCards = [\n\t...document.querySelectorAll(\".product-line\"),\n].map(el => {\n\treturn new ProductLine(el, 20);\n});\n","import Cards from \"../classes/Card\";\nimport { windowResizeEvents } from \"../events\";\n\nclass RecipeSlider {\n\tconstructor(el, margin) {\n\t\tthis.el = el;\n\n\t\tthis.cards = null;\n\n\t\tthis.init(margin);\n\t}\n\n\tinit(margin) {\n\t\tconst cardContainer = this.el.querySelector(\".card-container-inner\");\n\t\tconsole.log(\"the container\", cardContainer);\n\t\t// const cardContainer = document.querySelector(\".card-container-inner\");\n\t\tif (cardContainer) {\n\t\t\tthis.cards = new Cards(cardContainer, margin);\n\t\t\tthis.cards.makeDraggable(cardContainer);\n\t\t\tconsole.log(this.cards);\n\n\t\t\twindowResizeEvents.push(this.recalculate.bind(this));\n\t\t}\n\t}\n\n\tanimate() {}\n\n\trecalculate() {\n\t\tif (this.cards) {\n\t\t\tthis.cards.recalculate();\n\t\t}\n\t}\n}\n\nexport default RecipeSlider;\nexport const instantiatedCards = [\n\t...document.querySelectorAll(\".recipe-slider\"),\n].map(el => {\n\tconsole.log(\"creating\");\n\treturn new RecipeSlider(el, 5);\n});\n","import Cards from \"../classes/Card\";\n\nimport { windowResizeEvents } from \"../events\";\n\nclass ThreeLargeCards {\n\tconstructor(el, margin) {\n\t\tthis.el = el;\n\n\t\tthis.cards = null;\n\n\t\tthis.init(margin);\n\t}\n\n\tinit(margin) {\n\t\tconst cardContainer = this.el.querySelector(\".card-container-inner\");\n\t\tconsole.log(\"the container\", cardContainer);\n\t\t// const cardContainer = document.querySelector(\".card-container-inner\");\n\t\tthis.cards = new Cards(cardContainer, margin);\n\t\tthis.cards.makeDraggable(cardContainer);\n\t\tconsole.log(this.cards);\n\t\twindowResizeEvents.push(this.recalculate.bind(this));\n\t}\n\n\tanimate() {}\n\n\trecalculate() {\n\t\tif (this.cards) {\n\t\t\tthis.cards.recalculate();\n\t\t}\n\t}\n}\n\nexport default ThreeLargeCards;\nexport const instantiatedCards = [\n\t...document.querySelectorAll(\".three-large-cards\"),\n].map(el => {\n\treturn new ThreeLargeCards(el, 20);\n});\n","import Cards from \"../classes/Card\";\nimport { windowResizeEvents } from \"../events\";\n\nclass TinyCards {\n\tconstructor(el, margin) {\n\t\tthis.el = el;\n\t\tthis.cards = null;\n\t\tthis.init(margin);\n\t}\n\n\tinit(margin) {\n\t\tconst cardContainer = this.el.querySelector(\".card-container-inner\");\n\t\tconsole.log(\"the container\", cardContainer);\n\t\t// const cardContainer = document.querySelector(\".card-container-inner\");\n\t\tthis.cards = new Cards(cardContainer, margin);\n\t\tthis.cards.makeDraggable(cardContainer);\n\t\tconsole.log(this.cards);\n\t\twindowResizeEvents.push(this.recalculate.bind(this));\n\t}\n\n\tanimate() {}\n\n\trecalculate() {\n\t\tif (this.cards) {\n\t\t\tthis.cards.recalculate();\n\t\t}\n\t}\n}\n\nexport default TinyCards;\nexport const instantiatedTinyCards = [\n\t...document.querySelectorAll(\".tiny-cards\"),\n].map(el => {\n\treturn new TinyCards(el, 20);\n});\n"],"names":["gsap","registerPlugin","Draggable","InertiaPlugin","Cards","constructor","el","margin","this","draggable","isDragEnabled","cardSelector","container","makeDraggable","selector","snapPoints","calculateSnapPoints","slider","create","type","bound","window","allowContextMenu","edgeResistance","dragClickables","dragResistance","throwResistance","inertia","snap","x","disable","nextEl","nextElementSibling","classList","contains","attachIndicatorStatus","handleArrows","addEventListener","e","killDraggable","resumeDraggable","toggleDraggable","status","dFn","classFn","parentNode","closest","style","transform","getCurrentPosition","snapX","vars","findIndex","foundIndex","pt","Math","abs","indicatorBar","updateIndicatorWidth","data","percentageBar","querySelector","width","length","arrowsData","prev","next","position","numItems","add","remove","programmaticallyTweenPosition","pos","to","target","DEFAULT_TIME_SHORT","onComplete","update","arrows","querySelectorAll","newPos","cards","computedCardStyle","getComputedStyle","cardMargin","parseInt","marginLeft","marginRight","totalWidth","reduce","acc","curr","idx","offsetWidth","containerWidth","min","cardCount","cardSize","cardsPerPage","floor","sizeArr","ceil","isNaN","snapsArr","Array","_width","positions","map","_","cardsInSection","slice","updateSnapPoints","debug","recalculate","disabledOnDesktop","innerWidth","DESKTOP_SIZE","enable","FourCards","cardContainer","init","setupEvents","componentAnimationHandler","windowResizeEvents","push","bind","animate","tl","timeline","paused","tweenCards","play","instantiatedCards","document","ProductLine","children","RecipeSlider","ThreeLargeCards","TinyCards","instantiatedTinyCards"],"sourceRoot":""}