{"version":3,"file":"js/app.0ea0fc2b.js","mappings":"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","sources":["webpack://cs-gordons/./src/js/channelsight-widget.js","webpack://cs-gordons/./src/js/model.js","webpack://cs-gordons/./src/components/inlineRetailers.vue","webpack://cs-gordons/./src/components/inlineRetailers.vue?b386","webpack://cs-gordons/./src/components/hero.vue","webpack://cs-gordons/./src/components/hero.vue?5a9c","webpack://cs-gordons/./src/components/recipes.vue","webpack://cs-gordons/./src/components/recipes.vue?6942","webpack://cs-gordons/./src/components/terms.vue","webpack://cs-gordons/./src/components/preload.vue","webpack://cs-gordons/./src/components/preload.vue?87ea","webpack://cs-gordons/./src/App.vue","webpack://cs-gordons/./src/App.vue?7ccd","webpack://cs-gordons/./src/js/fetch.js","webpack://cs-gordons/./src/main.js","webpack://cs-gordons/webpack/bootstrap","webpack://cs-gordons/webpack/runtime/chunk loaded","webpack://cs-gordons/webpack/runtime/define property getters","webpack://cs-gordons/webpack/runtime/global","webpack://cs-gordons/webpack/runtime/hasOwnProperty shorthand","webpack://cs-gordons/webpack/runtime/jsonp chunk loading","webpack://cs-gordons/webpack/startup"],"sourcesContent":["var channelsightWidget = function() {!function(){\"use strict\";!function(){window.appInsightsSDK=\"channelsightTelemetry\";var e=window.appInsightsSDK,t=window[e]||function(e){function t(e){n[e]=function(){var t=arguments;n.queue.push((function(){n[e].apply(n,t)}))}}var n={config:e,initialize:!0},i=document,a=window;setTimeout((function(){var t=i.createElement(\"script\");t.src=e.url||\"https://js.monitor.azure.com/scripts/b/ai.2.gbl.min.js\",i.getElementsByTagName(\"script\")[0].parentNode.appendChild(t)}));try{n.cookie=i.cookie}catch(e){}n.queue=[],n.version=2;for(var r=[\"Event\",\"PageView\",\"Exception\",\"Trace\",\"DependencyData\",\"Metric\",\"PageViewPerformance\"];r.length;)t(\"track\"+r.pop());t(\"startTrackPage\"),t(\"stopTrackPage\");var c=\"Track\"+r[0];if(t(\"start\"+c),t(\"stop\"+c),t(\"addTelemetryInitializer\"),t(\"setAuthenticatedUserContext\"),t(\"clearAuthenticatedUserContext\"),t(\"flush\"),!(!0===e.disableExceptionTracking||e.extensionConfig&&e.extensionConfig.ApplicationInsightsAnalytics&&!0===e.extensionConfig.ApplicationInsightsAnalytics.disableExceptionTracking)){t(\"_\"+(r=\"onerror\"));var s=a[r];a[r]=function(e,t,i,a,c){var o=s&&s(e,t,i,a,c);return!0!==o&&n[\"_\"+r]({message:e,url:t,lineNumber:i,columnNumber:a,error:c}),o},e.autoExceptionInstrumented=!0}return n}({instrumentationKey:\"64e0819b-102f-4031-bafb-5ccc8ddafd22\",disableExceptionTracking:!0,enableDebug:!1,disableAjaxTracking:!0,disableFetchTracking:!0,disableCorrelationHeaders:!0,isCookieUseDisabled:!0,disableCookiesUsage:!0,enableSessionStorageBuffer:!1,namePrefix:\"channelsight\"});window[e]=t,t.queue&&0===t.queue.length&&t.trackPageView({})}(),function(){if(!document.getElementById(\"cswidgetjs\")){var e=document.createElement(\"script\");e.src=\"https://cdn.channelsight.com/widget/scripts/cswidget.js\",e.id=\"cswidgetjs\",document.body.appendChild(e)}}()}()};\n\nexport default channelsightWidget;","var dataModel = {\n '1': {\n 'apiEndpoint': 'https://api.channelsight.com/api/1.47/feed?key=b0d332b1-2100-40ad-89e1-c696c042a3c4&assetId=2653',\n 'retailers': {},\n 'ui': {\n 'primaryColor': '#bed5c1'\n }\n }\n}\n\n\nexport { dataModel as default };","<template>\n <div class=\"api__bg\">\n <div class=\"api__title\">\n ROE & CO BLENDED IRISH WHISKEY <br class=\"mob-br\" />45% ABV (70CL)\n </div>\n <div class=\"api\">\n <div\n v-for=\"item in dataModel[props.brandExperience].retailers\"\n :key=\"item.retailer\"\n class=\"api__retailer\"\n >\n <a :href=\"item.url\" class=\"api__a\" target=\"_blank\">\n <div class=\"api__img-wrapper temp__center\">\n <img :src=\"item.logo\" class=\"api__img--logo\" />\n </div>\n <div class=\"api__price\">FROM €{{ item.price }}</div>\n </a>\n </div>\n <div v-if=\"Object.keys(dataModel[props.brandExperience].retailers) == 0\">\n <div><img src=\"hero/out-of-stock.png\" width=\"100\" /></div>\n <div>OUT OF STOCK</div>\n </div>\n </div>\n </div>\n</template>\n\n<script setup>\nimport dataModel from \"../js/model.js\";\n\nconst props = defineProps({\n brandExperience: {\n type: String,\n default: \"1\",\n },\n});\n$(document).ready(function () {\n $(\".api__price\").css({\n backgroundColor: dataModel[props.brandExperience].ui.primaryColor,\n border: \"1px solid \" + dataModel[props.brandExperience].ui.primaryColor,\n });\n});\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\" scoped>\n.api__title {\n @include flexbox();\n @include align-items(center);\n @include justify-content(center);\n background: #bed5c1;\n font-family: acumin-pro, sans-serif;\n font-weight: 700;\n font-style: normal;\n font-size: 14px;\n line-height: 15px;\n height: 50px;\n padding: 0px 20px;\n width: 100%;\n}\n.api__bg {\n background: #ffffff;\n box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.2);\n border-radius: 10px;\n bottom: -50px;\n display: inline-block;\n max-width: 700px;\n min-width: none;\n overflow-y: hidden;\n position: absolute;\n @media screen and (max-width: 475px) {\n border-radius: 0px;\n bottom: 0px;\n left: 0px;\n margin-right: 10px;\n overflow: scroll;\n position: fixed;\n width: 100%;\n z-index: 150;\n }\n}\n.api {\n @include flexbox();\n @include align-items(center);\n @include justify-content(center);\n padding: 10px;\n width: 100%;\n\n @media screen and (max-width: 475px) {\n @include justify-content(flex-start);\n }\n}\n.api__retailer {\n border-radius: 5px;\n max-width: 100px;\n min-width: 70px;\n position: relative;\n &:not(:last-child) {\n margin-right: 10px;\n }\n &:last-child:after {\n content: \"\";\n position: absolute;\n height: 100%;\n right: -10px;\n top: 0;\n background: none;\n width: 20px;\n }\n}\n.api__img-wrapper {\n border: 1px solid #f0f0f0;\n border-radius: 5px 5px 0px 0px;\n padding: 5px;\n}\n.api__img--logo {\n display: block;\n width: 100%;\n}\n.api__a {\n color: #333333;\n text-decoration: none;\n}\n.api__price {\n border-radius: 0px 0px 5px 5px;\n color: #000000;\n font-size: 12px;\n font-family: acumin-pro, sans-serif;\n font-weight: 700;\n font-style: normal;\n padding: 5px 0px;\n text-align: center;\n}\n.mob-br {\n display: none;\n @media screen and (max-width: 475px) {\n display: block;\n }\n}\n</style>","import script from \"./inlineRetailers.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./inlineRetailers.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./inlineRetailers.vue?vue&type=style&index=0&id=52671d46&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/jamiehall/Documents/GitHub/_cs-org/roeandco-cs-ie/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52671d46\"]])\n\nexport default __exports__","<template>\n <div class=\"hero\" :style=\"styleHeroBg\">\n <div class=\"hero__img-wrapper\">\n <img class=\"hero__img hero__img--logo\" :src=\"logoSrc\" />\n </div>\n <div class=\"hero__img-wrapper--drinkaware\">\n <a href=\"https://drinkaware.ie\" target=\"_blank\"><img class=\"hero__img hero__img--drinkaware\" :src=\"drinkawareSrc\" /></a>\n </div>\n <div class=\"hero__text-wrapper\">\n <div class=\"hero__flex\">\n <div class=\"hero__flex-child\">\n <div class=\"hero__inline-block\">\n <div\n v-for=\"(item, index) in copy\"\n :key=\"item.id\"\n :class=\"'hero__title-line--' + (index + 1)\"\n class=\"hero__title-line\"\n >\n {{ item }}\n </div>\n <div class=\"hero__line\"></div>\n <div class=\"hero__mobile-logo\">\n <img class=\"hero__img hero__img--mob-logo\" :src=\"logoSrcMobile\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n <inlineRetailers />\n </div>\n</template>\n<script>\nexport default {\n data() {\n return {\n bgImgDesktop: \"hero/hero--desktop.jpg\",\n bgImgMobile: \"hero/logo--white.png\",\n logoSrc: \"hero/logo--white.png\",\n logoSrcMobile: \"hero/logo--mobile.png\",\n drinkawareSrc: \"hero/drinkaware.png\",\n lineSrc: \"#912b88\",\n copy: [\"SMOOTH IRISH\", \"WHISKEY, WITH A\", \"TREACLE TOFFEE BITE\"],\n styleHeroBg: {\n background: \"url('hero/hero--desktop.jpg')\",\n backgroundSize: \"cover\",\n backgroundPosition: 'center'\n },\n };\n },\n methods: {\n logoBar: function (event) {\n $(\".hero\").css({\n \"background-size\": \"cover\",\n });\n },\n },\n //invoke on load\n mounted() {\n //this.logoBar();\n },\n};\n</script>\n<script setup>\nimport dataModel from \"../js/model.js\";\nimport inlineRetailers from '../components/inlineRetailers.vue';\nimport gsap from \"gsap\";\nconst props = defineProps({\n brandExperience: {\n type: String,\n default: \"1\",\n },\n});\n\n$(document).ready(function () {\n \n gsap.set('.api__bg', {\n height: 0\n });\n gsap.set('.hero__img-wrapper', {\n x: -300\n });\n gsap.set('.hero__mobile-logo', {\n x: -300\n });\n gsap.set('.hero__img-wrapper--drinkaware', {\n opacity: 0\n });\n gsap.set('.hero__line', {\n width: 0\n });\n gsap.set('.hero__title-line--1', {\n x: () => {\n return -50\n },\n opacity: 0\n });\n gsap.set('.hero__title-line--2', {\n x: () => {\n return window.innerWidth < 600 ? -50 : 50\n },\n opacity: 0\n });\n gsap.set('.hero__title-line--3', {\n x: -50,\n opacity: 0\n });\n\n var tl_heroText = gsap.timeline();\n\n if(window.innerWidth < 600 && window.inner) {\n\n } else {\n\n }\n tl_heroText.to('.hero__title-line', {\n opacity: 1,\n x: 0,\n stagger: .25\n })\n .to('.hero__line', {\n width: '100%'\n })\n .to(['.hero__img-wrapper', '.hero__mobile-logo'], {\n x: 0,\n ease: 'back',\n duration: .75\n })\n .to('.hero__img-wrapper--drinkaware', {\n opacity: 1\n }) \n .to('.api__bg', {\n height: 'auto',\n duration: .5,\n ease: 'back'\n }, '-=.5') \n});\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\" scoped>\n.hero {\n @include flexbox();\n @include justify-content(center);\n @include align-items(center);\n height: 650px;\n position: relative;\n width: 100%;\n @media screen and (max-width: 475px) {\n background: url('/public/hero/hero--mobile.jpg') !important;\n background-size: cover !important;\n background-position: right !important;\n padding-left: 20px;\n padding-top: 20px;\n }\n}\n.hero__img-wrapper {\n left: 5vw;\n position: absolute;\n @media screen and (max-width: 475px) {\n display: none;\n }\n}\n.hero__img {\n display: block;\n}\n.hero__img--logo {\n display: block;\n width: 80px;\n}\n.hero__text-wrapper {\n @include flexbox();\n @include justify-content(center);\n @include align-items(center);\n height: 100%;\n width: 100%;\n @media screen and (max-width: 475px) {\n @include align-items(flex-start);\n @include justify-content(flex-start);\n }\n}\n.hero__flex {\n @include flexbox();\n @include justify-content(flex-end);\n @include align-items(flex-end);\n max-width: 1280px;\n width: 100%;\n @media screen and (max-width: 475px) {\n @include align-items(flex-start);\n @include justify-content(flex-start);\n }\n}\n.hero__flex-child {\n text-align: left;\n width: 50%;\n @media screen and (max-width: 475px) {\n width: 80%;\n }\n & > div {\n color: #ffffff;\n font-size: 64px;\n line-height: 56px;\n @media screen and (max-width: 769px) {\n font-size: 45px;\n line-height: 40px;\n }\n @media screen and (max-width: 375px) {\n font-size: 40px;\n line-height: 36px;\n }\n @media screen and (max-width: 321px) {\n font-size: 36px;\n line-height: 32px;\n }\n }\n}\n.hero__inline-block {\n display: inline-block;\n}\n.hero__line {\n background: url('/public/hero/line.png');\n background-size: 700px;\n height: 5px;\n margin-top: 30px;\n}\n.hero__img-wrapper--drinkaware {\n left: 50px;\n bottom: 50px;\n position: absolute;\n @media screen and (max-width: 1100px) {\n bottom: auto;\n top: 50px;\n }\n @media screen and (max-width: 475px) {\n bottom: 20px;\n left: 20px;\n top: auto;\n }\n & img {\n width: 200px;\n }\n}\n.hero__mobile-logo {\n display: none;\n padding-top: 30px;\n @media screen and (max-width: 475px) {\n display: block;\n }\n}\n.hero__img--mob-logo {\n width: 180px;\n}\n</style>","import script from \"./hero.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./hero.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./hero.vue?vue&type=style&index=0&id=a3f6e548&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/jamiehall/Documents/GitHub/_cs-org/roeandco-cs-ie/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-a3f6e548\"]])\n\nexport default __exports__","<template>\n <div class=\"recipes\">\n <div class=\"recipes__scroll-prompt\">\n <div class=\"recipes__prompt-text\">Scroll for delicious recipes below</div>\n <div class=\"recipes__prompt-img-wrapper\"><img class=\"recipes__img--prompt bounce\" src=\"body/arrow--down.png\"></div>\n </div>\n <div class=\"recipes__introduction\">\n Another golden era of Irish whiskey is bubbling underneath the surface. This premium blend was co-created with some of Ireland’s best bartenders, to build a viciously smooth whiskey with notes of vanilla, toffee and spiced orchard fruits.\n </div>\n <div class=\"recipes__wrapper\">\n <div\n class=\"recipes__recipe\"\n v-for=\"(recipe, index) in recipes\"\n :key=\"recipe\"\n :data-id=\"index\"\n :class=\"[index % 2 == 0 ? 'fd--rr my--100' : 'fd--r']\"\n >\n <div\n class=\"recipes__recipe-col recipes__recipe-col--img\"\n >\n <div class=\"recipes__title-wrapper--mobile\">\n <div class=\"recipes__title recipes__title--1\" :data-id=\"index\">ROE & CO</div>\n <div class=\"recipes__title recipes__title--2\" :data-id=\"index\">\n {{ recipes[index].name }}\n </div>\n </div>\n <video :src=\"recipes[index].vid\" autoplay loop muted playsinline></video>\n </div>\n <div class=\"recipes__recipe-col recipes__recipe-col--text\">\n <div\n class=\"recipes__title-wrapper\"\n :class=\"[index % 2 == 0 ? 'pl--20' : 'ml---50']\"\n >\n <div class=\"recipes__title recipes__title--1\" :data-id=\"index\">ROE & CO</div>\n <div class=\"recipes__title recipes__title--2\" :data-id=\"index\">\n {{ recipes[index].name }}\n </div>\n </div>\n <div class=\"recipes__quantity-wrapper\">\n <div class=\"recipes__quantity-chevron\">\n <img class=\"recipes__img--arrow\" src=\"body/arrow.png\"\n :data-id=\"index\" />\n </div>\n <div class=\"recipes__quantity\">\n {{ recipes[index].quantity }}\n </div>\n </div>\n <div class=\"recipes__ingredients\">\n <div class=\"recipes__item-title\">INGREDIENTS</div>\n <div\n class=\"recipes__list-item\"\n v-for=\"(item, child_index) in recipes[index].ingredients\"\n :key=\"item\"\n >\n <div class=\"recipes__list-bullet\">•</div>\n <div class=\"recipes__list-text\">\n {{ recipes[index].ingredients[child_index] }}\n </div>\n </div>\n </div>\n <div class=\"recipes__method\">\n <div class=\"recipes__item-title recipes__item-title--method\">\n METHOD\n </div>\n <div class=\"recipes__method-text recipes__list-item\">\n {{ recipes[index].method }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n<script>\nimport gsap from \"gsap\";\nimport { CSSRulePlugin } from \"gsap/CSSRulePlugin\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\ngsap.registerPlugin(CSSRulePlugin, ScrollTrigger);\nexport default {\n data() {\n return {\n exportPath: \"\",\n recipes: {\n 1: {\n name: \"OLD FASHIONED\",\n img: \"body/recipe-img--1.jpg\",\n vid: \"body/vid--1.mp4\",\n quantity: \"MAKE ONE\",\n ingredients: [\n \"50ml Roe & Co\",\n \"10ml Sugar Syrup\",\n \"3 Dashes of Angostura Bitters\",\n \"Garnish with the zest of an orange\",\n ],\n method:\n \"Add all ingredients to a mixing glass and fill with ice. Stir for 20 seconds. Strain over fresh ice in a rocks glass. Garnish with the zest of an orange.\",\n },\n 2: {\n name: \"IRISH COFFEE\",\n img: \"body/recipe-img--2.jpg\",\n vid: \"body/vid--2.mp4\",\n quantity: \"MAKE ONE\",\n ingredients: [\n \"40ml Roe & Co\",\n \"75ml Hot Coffee\",\n \"1 tsp Demerara Sugar\",\n \"Top with whipped double cream\",\n \"Garnish with the grated nutmeg\",\n ],\n method:\n \"Add all ingredients (apart from cream) to an Irish coffee glass and stir to dissolve sugar, top with cream. Garnish with grated nutmeg.\",\n },\n 3: {\n name: \"HIGHBALL\",\n img: \"body/recipe-img--3.jpg\",\n vid: \"body/vid--3.mp4\",\n quantity: \"MAKE ONE\",\n ingredients: [\n \"50ml Roe & Co\",\n \"Top with good Soda or Tonic (if you have a sweet tooth)\",\n \"Garnish with a slice of fresh grapefruit\",\n ],\n method:\n \"Add all ingredients to a highball glass and fill with ice. Stir briefly. Garnish with a slice of fresh grapefruit.\",\n },\n },\n };\n },\n methods: {\n enterViewRecipe: function (event) {\n gsap.set(\".recipes__title--1\", {\n x: () => {\n return -50;\n },\n opacity: 0,\n });\n gsap.set(\".recipes__title--2\", {\n x: () => {\n return window.innerWidth < 600 ? -50 : 50;\n },\n opacity: 0,\n });\n gsap.set(\".recipes__recipe\", {\n opacity: 0,\n });\n\n gsap.to(\".recipes__recipe[data-id='1']\", {\n // Animate .recipes__recipe\n // properties to animate here\n opacity: 1,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='1']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.to(\".recipes__recipe[data-id='2']\", {\n // Animate .recipes__recipe\n // properties to animate here\n opacity: 1,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='2']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.to(\".recipes__recipe[data-id='3']\", {\n // Animate .recipes__recipe\n // properties to animate here\n opacity: 1,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='3']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n ////////////////////-----ARROW ANIMATION-----//////////////////////////////\n\n gsap.from(\".recipes__img--arrow[data-id='1']\", {\n delay: 0.2,\n duration: 1.5,\n x: \"-100%\",\n ease: \"bounce\",\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='1']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.from(\".recipes__img--arrow[data-id='2']\", {\n delay: 0.2,\n duration: 1.5,\n x: \"-100%\",\n ease: \"bounce\",\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='2']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.from(\".recipes__img--arrow[data-id='3']\", {\n delay: 0.2,\n duration: 1.5,\n x: \"-100%\",\n ease: \"bounce\",\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='3']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n\n //////////////////////------TITLE ANIMATION------////////////////////////////\n\n gsap.to(\".recipes__title--1[data-id='1']\", {\n opacity: 1,\n x: 0,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='1']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.to(\".recipes__title--2[data-id='1']\", {\n opacity: 1,\n x: 0,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='1']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.to(\".recipes__title--1[data-id='2']\", {\n opacity: 1,\n x: 0,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='2']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.to(\".recipes__title--2[data-id='2']\", {\n opacity: 1,\n x: 0,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='2']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.to(\".recipes__title--1[data-id='3']\", {\n opacity: 1,\n x: 0,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='3']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n gsap.to(\".recipes__title--2[data-id='3']\", {\n opacity: 1,\n x: 0,\n scrollTrigger: {\n trigger: \".recipes__recipe[data-id='3']\", // what element the animation should start at\n start: () => {\n return window.innerWidth < 600 ? \"50% bottom\" : \"100% bottom\"\n }, // 10% of .recipes__recipe[data-id='2'] enters the bottom of the viewport\n toggleActions: \"play none none reverse\", //onEnter, onLeave, onEnterBack, and onLeaveBack\n },\n });\n },\n },\n //invoke on load\n mounted() {\n this.enterViewRecipe();\n },\n};\n</script>\n<script setup>\nimport dataModel from \"../js/model.js\";\nimport inlineRetailers from \"./inlineRetailers.vue\";\nconst props = defineProps({\n brandExperience: {\n type: String,\n default: \"1\",\n },\n});\n\n$(document).ready(function () {});\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\" scoped>\n@font-face {\n font-family: \"News Plantin MT Std\";\n src: url(\"/public/NewsPlantinMTStd-Italic.woff2\") format(\"woff2\"),\n url(\"/public/NewsPlantinMTStd-Italic.woff\") format(\"woff\");\n font-weight: normal;\n font-style: italic;\n font-display: swap;\n}\nvideo {\n object-fit: cover;\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n}\n.fd--rr {\n @include flex-direction(row-reverse);\n}\n.fd--r {\n @include flex-direction(row);\n}\n.ml---50 {\n margin-left: -30px;\n}\n.my--100 {\n margin: 100px 0px;\n}\n.pl--20 {\n padding-left: 20px;\n}\n.recipes {\n @include flexbox();\n @include justify-content(center);\n @include align-items(center);\n @include flex-direction(column);\n background: url(\"/public/body/green-bg.jpg\");\n background-size: 100% auto;\n padding-top: 150px;\n padding-bottom: 100px;\n width: 100%;\n @media (max-width: 600px) {\n padding: 0px;\n }\n}\n.recipes__introduction {\n font-size: 25px;\n font-family: 'News Plantin MT Std', sans-serif;\n font-style: italic;\n font-weight: normal;\n line-height: 32px;\n max-width: 900px;\n padding-bottom: 100px;\n text-transform: none;\n width: 100%;\n @media (max-width: 600px) {\n padding: 30px;\n }\n}\n.recipes__wrapper {\n max-width: 1000px;\n width: 100%;\n @media (max-width: 600px) {\n padding: 15px;\n }\n}\n.recipes__recipe {\n @include flexbox();\n @include justify-content(center);\n @include align-items(center);\n width: 100%;\n @media (max-width: 600px) {\n @include flex-direction(column);\n margin: 0px;\n margin-bottom: 15px;\n\n &:not(:first-child) {\n padding-top: 100px;\n }\n &:first-child{\n padding-top: 50px;\n }\n \n }\n}\n.recipes__recipe-col {\n height: 450px;\n position: relative;\n width: 50%;\n @media (max-width: 600px) {\n height: auto;\n width: 100%;\n }\n}\n.recipes__recipe-col--img {\n @media (max-width: 600px) {\n height: 300px;\n }\n}\n.recipes__recipe-col--text {\n background: #ffffff;\n}\n.recipes__title-wrapper {\n margin-top: -40px;\n @media (max-width: 600px) {\n display: none;\n margin-left: 0px;\n }\n}\n.recipes__title-wrapper--mobile {\n display: none;\n position: relative;\n z-index: 5;\n @media (max-width: 600px) {\n display: block;\n margin-left: 10px;\n margin-top: -16vw;\n }\n & .recipes__title--1 {\n font-size: 24px;\n line-height: 24px;\n }\n & .recipes__title--2 {\n font-size: 16vw;\n line-height: 14vw;\n }\n}\n.recipes__title {\n text-align: left;\n width: 100%;\n}\n.recipes__title--1 {\n font-size: 50px;\n line-height: 50px;\n}\n.recipes__title--2 {\n font-size: 70px;\n line-height: 70px;\n}\n.recipes__quantity-wrapper {\n @include flexbox();\n @include justify-content(flex-start);\n @include align-items(center);\n padding: 25px 50px;\n @media (max-width: 600px) {\n padding-top: 50px;\n }\n}\n.recipes__img--arrow {\n display: block;\n width: 15px;\n}\n.recipes__quantity {\n color: #934d21;\n font-size: 24px;\n letter-spacing: 1px;\n padding-left: 7px;\n}\n.recipes__ingredients {\n padding: 0px 50px;\n text-align: left;\n width: 100%;\n}\n.recipes__list-item {\n @include flexbox();\n @include justify-content(flex-start);\n @include align-items(flex-start);\n &:not(:first-child) {\n padding-top: 5px;\n }\n}\n.recipes__item-title {\n color: #934d21;\n letter-spacing: 1px;\n text-decoration: underline;\n}\n.recipes__list-bullet {\n color: #934d21;\n font-size: 14px;\n font-family: acumin-pro, sans-serif;\n font-weight: 400;\n font-style: normal;\n line-height: 18px;\n text-transform: none;\n width: 20px;\n min-width: 20px;\n}\n.recipes__list-text {\n font-size: 14px;\n font-family: acumin-pro, sans-serif;\n font-weight: 400;\n font-style: normal;\n line-height: 18px;\n text-transform: none;\n}\n.recipes__method {\n padding: 25px 50px 0px 50px;\n text-align: left;\n width: 100%;\n}\n.recipes__method-text {\n font-size: 14px;\n font-family: acumin-pro, sans-serif;\n font-weight: 400;\n font-style: normal;\n line-height: 18px;\n text-transform: none;\n @media (max-width: 600px) {\n padding-bottom: 50px;\n }\n}\n.recipes__item-title--method {\n position: relative;\n margin-top: 25px;\n &:before {\n content: \"\";\n position: absolute;\n font-size: 20px;\n border-top: 2px dotted #934d21;\n margin-top: -25px;\n width: 210px;\n }\n}\n.recipes__prompt-text {\n color: #934d21;\n font-size: 20px;\n padding-bottom: 20px;\n \n @media (max-width: 600px) {\n padding-top: 30px;\n }\n}\n.recipes__prompt-img-wrapper {\n padding-bottom: 50px;\n @media (max-width: 600px) {\n padding-bottom: 0px;\n }\n}\n.bounce {\n animation: bounce 2s ease infinite;\n}\n@keyframes bounce {\n\t0%, 20%, 50%, 80%, 100% {transform: translateY(0);}\n\t40% {transform: translateY(-10px);}\n\t60% {transform: translateY(-5px);}\n}\n</style>","import script from \"./recipes.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./recipes.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./recipes.vue?vue&type=style&index=0&id=c993fb86&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/jamiehall/Documents/GitHub/_cs-org/roeandco-cs-ie/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c993fb86\"]])\n\nexport default __exports__","import script from \"./terms.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./terms.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./terms.vue?vue&type=style&index=0&id=ebbe71e4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/Users/jamiehall/Documents/GitHub/_cs-org/roeandco-cs-ie/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-ebbe71e4\"]])\n\nexport default __exports__","<template>\n <div class=\"hero__spinner temp__flexbox temp__ai--c temp__jc--c\">\n <img src=\"hero/loading.svg\" width=\"100\" height=\"100\" />\n </div>\n</template>\n<script setup>\nimport dataModel from \"../js/model.js\";\nimport gsap from \"gsap\";\nimport { ExpoScaleEase, RoughEase, SlowMo } from \"gsap/EasePack\";\nimport { CSSRulePlugin } from \"gsap/CSSRulePlugin\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\ngsap.registerPlugin(\n ExpoScaleEase,\n RoughEase,\n SlowMo,\n CSSRulePlugin,\n ScrollTrigger\n);\n\nconst props = defineProps({\n brandExperience: {\n type: String,\n default: \"1\",\n },\n});\n\n$(document).ready(function () {\n var pPath = '';\n //PRELOAD IMAGES\n function preloadImages(urls, allImagesLoadedCallback) {\n var loadedCounter = 0;\n var toBeLoadedNumber = urls.length;\n urls.forEach(function (url) {\n preloadImage(url, function () {\n loadedCounter++;\n console.log(\"Number of loaded images: \" + loadedCounter);\n if (loadedCounter == toBeLoadedNumber) {\n allImagesLoadedCallback();\n }\n });\n });\n function preloadImage(url, anImageLoadedCallback) {\n var img = new Image();\n img.onload = anImageLoadedCallback;\n img.src = url;\n }\n }\n //pass array of images to be preloaded\n preloadImages(\n [\n `${pPath}hero/hero--desktop.jpg`,\n `${pPath}hero/hero--mobile.jpg`,\n `${pPath}body/green-bg.jpg`,\n ],\n function () {\n //hero elements\n gsap.fromTo(\".hero__spinner\", {\n opacity: 1,\n duration: .5\n },\n {\n opacity: 0,\n delay: 1,\n onComplete: function () {\n document.querySelector(\"body\").classList.remove(\"overflow--hidden\");\n $(\".hero__spinner\").remove();\n },\n }\n );\n }\n );\n function debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n }\n var lastWidth = $(window).width();\n var resizeReload = debounce(function () {\n if ($(window).width() != lastWidth) {\n {\n location.reload();\n }\n }\n }, 250);\n $(window).resize(function () {\n resizeReload();\n });\n});\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n.hero__spinner {\n color: #ffffff;\n font-size: 50px;\n height: 100%;\n position: fixed;\n top: 0px;\n left: 0px;\n width: 100%;\n z-index: 99999999999;\n background: rgb(190, 213, 93);\n background: radial-gradient(\n circle,\n rgba(240, 241, 231, 1) 0%,\n rgba(190, 213, 193, 1) 65%\n );\n}\n</style>","import script from \"./preload.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./preload.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./preload.vue?vue&type=style&index=0&id=5a767a6d&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","<script setup>\nimport channelsightWidget from './js/channelsight-widget.js';\nimport dataModel from './js/model.js';\nimport inlineRetailers from './components/inlineRetailers.vue';\nimport hero from './components/hero.vue';\nimport recipes from './components/recipes.vue';\nimport terms from './components/terms.vue';\nimport preload from './components/preload.vue';\n\n//invoke the channelsight widget, if needed\nchannelsightWidget();\n\n//grab URL parameter to determine experience\nlet params = new URLSearchParams(document.location.search);\nlet brandContextParam = params.get(\"brandContext\");\n\n//parse URL parameter ready to pass to component\nvar brandContext = (!brandContextParam == '' && brandContextParam <= Object.keys(dataModel).length) ? brandContext=brandContextParam : console.log('Generating experience ' + brandContextParam);\n\n\n\n</script>\n\n<template>\n <preload :brandExperience=\"brandContext\" />\n <hero :brandExperience=\"brandContext\" />\n <recipes :brandExperience=\"brandContext\" />\n <terms :brandExperience=\"brandContext\" />\n</template>\n\n<style>\nbody {\n margin: 0;\n}\n#app {\n text-align: center;\n}\n</style>\n","import script from \"./App.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./App.vue?vue&type=style&index=0&id=145d0a3e&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","import dataModel from './model.js';\n\nvar apiCounter = 1;\n\nvar urlParams = new URLSearchParams(window.location.search);\n \nvar utm_source = urlParams.get('utm_source');\nvar utm_medium = urlParams.get('utm_medium');\nvar utm_campaign = urlParams.get('utm_campaign');\nvar utm_term = urlParams.get('utm_term');\nvar utm_content = urlParams.get('utm_content');\n\nlet csApiCall = () => {\n var api_obj;\n // Defining async function\n async function getapi(url, index) { // Storing response\n var response = await fetch(url)\n .then(res => res.json())\n .then(data => api_obj = data)\n .then(function () {\n\n //iterate over the channelsight object and store required values \n //in our dataModel object\n Object.keys(api_obj[0].RetailerProducts).forEach(function(k) {\n var k = parseInt(k, 10)\n dataModel[index].retailers[k + 1] = {\n retailer: api_obj[0].RetailerProducts[k].RetailerName,\n url: api_obj[0].RetailerProducts[k].ClickThruUrl + '&csi_utm_source=' + utm_source + '&csi_utm_medium=' + utm_medium + '&csi_utm_campaign=' + utm_campaign + '&csi_utm_content=' + utm_content,\n price: api_obj[0].RetailerProducts[k].Price.toFixed(2),\n logo: api_obj[0].RetailerProducts[k].RetailerLogoUrl,\n name: api_obj[0].RetailerProducts[k].RetailerProductName\n }\n })\n \n })\n .then(function() {\n\n if (apiCounter < Object.keys(dataModel).length) {\n apiCounter++;\n getapi(dataModel[apiCounter].apiEndpoint, apiCounter);\n }\n \n });\n \n console.log(response)\n }\n\n getapi(dataModel[apiCounter].apiEndpoint, apiCounter);\n\n};\n\nexport { csApiCall as default };","import { createApp } from 'vue'\nimport App from './App.vue'\nimport apiCall from './js/fetch.js';\nimport dataModel from './js/model.js';\n\n//call the api to get data from channelsight\napiCall();\nvar checkCounter = 0;\n//check the data has loaded, if not try again in 1 second\nvar checkData = function() {\n if(Object.keys(dataModel[1].retailers).length < 1 && checkCounter < 6) {\n console.log('Data is still loading...');\n setTimeout(function() {\n checkCounter++;\n checkData();\n }, 500)\n } else {\n console.log('Data is loaded: \\n');\n console.log(dataModel);\n setTimeout(function() {\n createApp(App).mount('#app')\n }, 250)\n }\n}\ncheckData();\n\n\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcs_gordons\"] = self[\"webpackChunkcs_gordons\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(203); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["channelsightWidget","window","appInsightsSDK","e","t","n","arguments","queue","push","apply","config","initialize","i","document","a","setTimeout","createElement","src","url","getElementsByTagName","parentNode","appendChild","cookie","version","r","length","pop","c","disableExceptionTracking","extensionConfig","ApplicationInsightsAnalytics","s","o","message","lineNumber","columnNumber","error","autoExceptionInstrumented","instrumentationKey","enableDebug","disableAjaxTracking","disableFetchTracking","disableCorrelationHeaders","isCookieUseDisabled","disableCookiesUsage","enableSessionStorageBuffer","namePrefix","trackPageView","getElementById","id","body","dataModel","$","ready","css","backgroundColor","props","brandExperience","ui","primaryColor","border","__exports__","__default__","data","bgImgDesktop","bgImgMobile","logoSrc","logoSrcMobile","drinkawareSrc","lineSrc","copy","styleHeroBg","background","backgroundSize","backgroundPosition","methods","logoBar","event","mounted","gsap","height","x","opacity","width","innerWidth","tl_heroText","inner","to","stagger","ease","duration","CSSRulePlugin","ScrollTrigger","exportPath","recipes","name","img","vid","quantity","ingredients","method","enterViewRecipe","scrollTrigger","trigger","start","toggleActions","delay","this","ExpoScaleEase","RoughEase","SlowMo","pPath","preloadImages","urls","allImagesLoadedCallback","loadedCounter","toBeLoadedNumber","preloadImage","anImageLoadedCallback","Image","onload","forEach","console","log","debounce","func","wait","immediate","timeout","context","args","later","callNow","clearTimeout","onComplete","querySelector","classList","remove","lastWidth","resizeReload","location","reload","resize","params","URLSearchParams","search","brandContextParam","get","brandContext","Object","keys","apiCounter","urlParams","utm_source","utm_medium","utm_campaign","utm_content","csApiCall","api_obj","async","getapi","index","response","fetch","then","res","json","RetailerProducts","k","parseInt","retailers","retailer","RetailerName","ClickThruUrl","price","Price","toFixed","logo","RetailerLogoUrl","RetailerProductName","apiEndpoint","apiCall","checkCounter","checkData","createApp","App","mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","key","splice","d","definition","defineProperty","enumerable","g","globalThis","Function","obj","prop","prototype","hasOwnProperty","call","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","__webpack_exports__"],"sourceRoot":""}