{"version":3,"sources":["webpack://@verndale/toolkit/./src/js/constants.js","webpack://@verndale/toolkit/./src/js/modules/product-image-gallery-row.js"],"names":[],"mappings":"2JACO,KAAM,GAAc,CACzB,OAAQ,IACR,iBAAkB,KAClB,YAAa,IACb,QAAS,KACT,KAAM,O,sICUR,eAAqB,YAAU,CAC7B,eAAgB,CACd,KAAK,IAAM,GAIX,cAAmB,KACnB,IAAe,WAAY,IAAU,KAErC,KAAK,SAAW,CAAC,OAAO,WAAW,eAAe,2BAAmC,QACrF,KAAK,eAGP,cAAe,EAEf,cAAe,CACb,KAAM,GAAkB,IAAE,qCAC1B,EAAoB,QAClB,EAAgB,KAAK,CAAC,EAAG,IAAO,CAC9B,KAAM,GAAM,IAAE,GACR,EAAc,EAAI,KAAK,2CACvB,EAAa,EAAI,KAAK,0CACtB,EAAU,EAAI,KAAK,2CAEzB,KAAS,SACP,EAAY,SAAS,CACnB,gBAAiB,GACjB,gBAAiB,GACjB,SAAU,KAGZ,GAAY,SAAS,CACnB,SAAU,GACV,gBAAiB,KAGnB,EAAW,SAAS,CAClB,SAAU,0CACV,gBAAiB,GACjB,QAAS,GACT,SAAU,GACV,gBAAiB,MAIrB,KAAM,GAAQ,EAAY,KAAK,YAE/B,YAAwB,CACtB,KAAM,GACJ,GAAS,EAAM,cAAgB,EAAM,cAAgB,EAAI,EAC3D,EAAQ,KACN,GAAG,OAAO,KAAO,KAAc,MAAM,SAEnC,OAAO,KAAO,EAAM,MAAM,UAAU,MAAM,OAGhD,IAEA,EAAY,GAAG,kBAAmB,MAM1C,UAAe","file":"scripts/930.bundle.js","sourcesContent":["// eslint-disable-next-line import/prefer-default-export\nexport const BREAKPOINTS = {\n TABLET: 768,\n TABLET_LANDSCAPE: 1024,\n DESKTOP_MAP: 992,\n DESKTOP: 1280,\n WIDE: 1600\n};\n","import { Component } from '@verndale/core';\nimport $ from 'jquery';\nimport jQueryBridget from 'jquery-bridget';\nimport Flickity from 'flickity';\nimport 'flickity-as-nav-for/as-nav-for'\nimport { BREAKPOINTS } from '../constants';\n\n\n// Please consider that this is using latest version of Flickity\n// Some stuff may change, such as event names\n// Also extra stuff may be installed separately like \"As Nav For\"\n// Please refer to:\n// https://flickity.metafizzy.co/options.html#asnavfor\n// https://flickity.metafizzy.co/extras.html#module-loaders\n// https://flickity.metafizzy.co/events.html\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {};\n\n // This is needed for Flickity to work properly with Webpack and the toolkit\n // Aside from the original MarineMax (Galeon) repo code :(\n Flickity.setJQuery($);\n jQueryBridget( 'flickity', Flickity, $ );\n\n this.isMobile = !window.matchMedia(`(min-width: ${BREAKPOINTS.TABLET_LANDSCAPE}px)`).matches;\n this.initCarousel();\n }\n\n addListeners() {}\n\n initCarousel() {\n const $imageGalleries = $('section.product-image-gallery-row');\n if ($imageGalleries.length) {\n $imageGalleries.each((i, el) => {\n const $el = $(el);\n const $mainSlider = $el.find('.product-image-gallery-row__main-slider');\n const $navSlider = $el.find('.product-image-gallery-row__nav-slider');\n const $status = $el.find('.product-image-gallery-row__slide-count');\n\n if (this.isMobile) {\n $mainSlider.flickity({\n prevNextButtons: true,\n percentPosition: false,\n pageDots: false\n });\n } else {\n $mainSlider.flickity({\n pageDots: false,\n prevNextButtons: true\n });\n\n $navSlider.flickity({\n asNavFor: '.product-image-gallery-row__main-slider',\n percentPosition: false,\n contain: true,\n pageDots: false,\n prevNextButtons: false\n });\n }\n\n const flkty = $mainSlider.data('flickity');\n\n function updateStatus() {\n const cellNumber =\n flkty && flkty.selectedIndex ? flkty.selectedIndex + 1 : 1;\n $status.text(\n `${String(`00${ cellNumber}`).slice(-2) \n } / ${ \n String(`00${ flkty.cells.length}`).slice(-2)}`\n );\n }\n updateStatus();\n\n $mainSlider.on('select.flickity', updateStatus);\n });\n }\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}