{"version":3,"sources":["webpack:///./app/javascript/components/vof/common/icons/Loading.js","webpack:///./app/javascript/packs/vof/pages/home/index.js","webpack:///./app/javascript/components/vof/pages/home/index sync ^\\.\\/.*$","webpack:///./node_modules/classnames/index.js","webpack:///./app/javascript/components/vof/common/Loading.jsx","webpack:///./app/javascript/components/common/helpers/general.js","webpack:///./node_modules/moment/locale sync \\b\\B","webpack:///./app/javascript/components/common/ecommerce/common/CcIcons.jsx","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./app/javascript/components/vof/hero/hooks/useSetDestinationListBarPos.js","webpack:///./app/javascript/components/common/footer/RotateRandomizedText.jsx","webpack:///./app/javascript/components/vof/contexts/HeroContext.jsx","webpack:///./app/javascript/components/vof/helpers/general.js","webpack:///./app/javascript/components/vof/hero/hooks/useSetBackgroundImage.js","webpack:///./app/javascript/components/vof/pages/home/index/common/CcIcons.jsx","webpack:///./app/javascript/components/vof/pages/home/index/common/RotateRandomizedText.jsx","webpack:///./node_modules/react-tabs/esm/helpers/elementTypes.js","webpack:///./node_modules/react-tabs/esm/helpers/childrenDeepMap.js","webpack:///./node_modules/react-tabs/esm/components/UncontrolledTabs.js","webpack:///./node_modules/react-tabs/esm/helpers/uuid.js","webpack:///./node_modules/react-tabs/esm/helpers/count.js","webpack:///./node_modules/react-tabs/esm/components/Tabs.js","webpack:///./node_modules/react-tabs/esm/components/TabList.js","webpack:///./node_modules/react-tabs/esm/components/Tab.js","webpack:///./node_modules/react-tabs/esm/components/TabPanel.js","webpack:///./app/javascript/components/vof/hero/featured/DestinationList.jsx","webpack:///./app/javascript/components/vof/hero/featured/DestinationsFeaturedList.jsx","webpack:///./app/javascript/components/vof/hero/DestinationsHero.jsx","webpack:///./app/javascript/components/vof/helpers/heroHelper.js","webpack:///./app/javascript/components/vof/hero/HomepageHero.jsx","webpack:///./app/javascript/components/vof/pages/home/index/HomepageHero.jsx"],"names":["Loading","style","height","width","className","viewBox","xmlns","preserveAspectRatio","cx","cy","r","fill","ng-attr-stroke","ng-attr-stroke-width","stroke","strokeWidth","attributeName","calcMode","values","keyTimes","dur","keySplines","begin","repeatCount","componentRequireContext","require","useContext","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","_typeof","Symbol","iterator","obj","constructor","prototype","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","key","call","join","window","defaultProps","addIEClassToBody","body","document","querySelector","isIE","isEdge","classList","add","prettifyDate","date","moment","format","webpackEmptyContext","CcIcons","displayCardsOnly","useEffect","wrapperEl","getElementById","authScript","createElement","type","src","async","appendChild","data-type","data-width","data-height","value","defineProperty","enumerable","configurable","writable","useSetDestinationListBarPos","destSelection","useState","destinationSelection","setListBarSelection","$listBarContainer","$listBar","$activeDestListItem","selection","clientWidth","xPos","offsetLeft","transform","randomize","textArray","Math","floor","random","RotateRandomizedText","timeout","text","setText","newText","setTimeout","clearTimeout","dangerouslySetInnerHTML","__html","displayRandomText","initialState","destinations","destinationsAll","destinationsDropdownList","featuredDestinations","ticketDestinations","activeDestination","activeDestinationHeading","activeDestinationTitle","activeDestinationNav","activeFeaturedDestination","playing","undefined","animationCount","dropdown","destination","open","selected","hovered","spinnerActive","nights","arrival","earliestStartDate","HERO","DESTINATIONS","SET","FEATURED","ALL","DROPDOWN","ACTIVE_DESTINATION","HEADING","TITLE","NAV","TICKET_DESTINATIONS","PLAYING","ANIMATION_COUNT","SPINNER_ACTIVE","NIGHTS","ARRIVAL","reducer","state","action","payload","HeroContext","createContext","HeroProvider","children","useReducer","dispatch","Provider","Consumer","scrollToHotels","hotelEl","scrollToEl","scrollToOrderThankYou","orderThankYouEl","scrollToEcommerce","scrollEl","el","block","scrollIntoView","behavior","inline","currentHoursInMDT","Date","toLocaleTimeString","timeZone","hour12","split","parseInt","hours","isDateBlockedForSelection","day","momentObjectToDateObject","newDate","setHours","isSmallScreen","isMobile","innerWidth","formatCurrency","amount","currency","seperator","Number","parseFloat","toFixed","setDelay","Promise","hideHotelsPageDetails","display","showHotelsPageDetails","useSetBackgroundImage","backgroundImage","setBackgroundImage","$hero","$heroBG","opacity","transition","image","url","$clonedBG","cloneNode","animationPlayState","insertBefore","firstChild","then","querySelectorAll","removeChild","makeTypeChecker","tabsRole","element","isTab","isTabList","isTabPanel","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_defineProperty","deepMap","callback","child","isTabChild","props","target","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","deepForEach","canUseActiveElement","uuid","tabCount","_extends","assign","this","isNode","node","isTabNode","getAttribute","isTabDisabled","activeElement","_Component","subClass","superClass","UncontrolledTabs","_this","_len","args","_key","concat","tabNodes","handleKeyDown","direction","isTabFromContainer","index","selectedIndex","preventDefault","useSelectedIndex","keyCode","handleClick","getNextTab","getPrevTab","getLastTab","getFirstTab","setSelected","slice","parentNode","indexOf","create","__proto__","_proto","event","getTabsCount","_this$props","onSelect","count","getTab","_i","getPanelsCount","panelCount","getChildren","_this2","_this$props2","disabledTabClassName","focus","forceRenderTabPanel","selectedTabClassName","selectedTabPanelClassName","tabIds","panelIds","diff","result","listIndex","wasTabFocused","Children","toArray","some","tab","tabRef","panelId","selectedClassName","disabledClassName","tabId","forceRender","nodeAncestor","parentElement","render","_this3","_this$props3","domRef","attributes","excluded","sourceKeys","_objectWithoutPropertiesLoose","onClick","onKeyDown","ref","Tabs","handleSelected","last","mode","setState","copyPropsToState","defaultFocus","getDerivedStateFromProps","getModeFromProps","newState","maxTabIndex","min","defaultIndex","_this$state","TabList","role","Tab","componentDidMount","checkFocus","componentDidUpdate","_cx","disabled","tabIndex","DEFAULT_CLASS","TabPanel","DestinationList","active","selectDropdownOption","setActiveDestinationNavElement","dest","item","data-item","data","aria-hidden","city","$packagesSection","DestinationsFeaturedList","listRef","_setPlaying","getActiveDropdown","_playPause","activeDropdown","togglePlaying","dropdownTmp","_setDropdown","nav","TabsPackageDeal","lazy","TabsTickets","DestinationsHero","_setActiveDestinationHeading","heading","_setActiveDestinationNav","_setNights","_setAnimationCount","_setSpinnerActive","setHeight","lowestStay","lowestNightsList","orgMinNights","slug","minNights","setMinNights","webPSupport","setWebPSupport","destinationListRef","useRef","containerRef","placeholder","_detectWebPSupport","_setInnerHeight","_setDestinationsFromProps","_setDestinationsAllFromProps","_setTicketDestinationsfromProps","addEventListener","zIndex","_keyListener","removeEventListener","Image","imageResult","onload","onerror","innerHeight","_setBottomMargin","listHeight","current","clientHeight","newHeight","isMobileOnly","marginBottom","which","toggleOffDropdowns","_normalizeDesinations","reduce","normalizedDestinations","slugs","firstDest","firstSlug","verb","title","webp_image","normalized","dropDownEntries","entries","label","ticketPayload","getDestinationData","property","initSpinner","_setActiveFeaturedDestination","setDestinationLoop","interval","dropdownList","_destinationInterval_","clearInterval","$circle","animation","setInterval","check","checkAnimationCount","indexOfActive","indexOfNext","next","heroBG","spinnerEl","setActiveDestination","setDropdownContent","lastIndex","fallback","menu","option","animated","$heroBg","HomepageHero","nightsList"],"mappings":"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","file":"js/vof/pages/home/index-c0679cc72e8677d83bcf.chunk.js","sourcesContent":["import React from \"react\"\nimport PropTypes from 'prop-types'\n\nconst Loading = ({\n style = {},\n height = \"100%\",\n width = \"100%\",\n className = \"loading\",\n viewBox = \"0 0 100 100\"\n}) => (\n \n \n \n \n \n \n \n \n \n \n)\n\nLoading.propTypes = {\n style: PropTypes.object,\n height: PropTypes.string,\n width: PropTypes.string,\n className: PropTypes.string,\n viewBox: PropTypes.string\n}\n\nexport default Loading\n","var componentRequireContext = require.context(\"components/vof/pages/home/index\", true)\nvar ReactRailsUJS = require(\"react_ujs\")\n\nReactRailsUJS.useContext(componentRequireContext)\n","var map = {\n\t\"./HomepageHero\": 949,\n\t\"./HomepageHero.jsx\": 949,\n\t\"./common/CcIcons\": 932,\n\t\"./common/CcIcons.jsx\": 932,\n\t\"./common/RotateRandomizedText\": 933,\n\t\"./common/RotateRandomizedText.jsx\": 933\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 1287;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n\n/* global define */\n(function () {\n 'use strict';\n\n var hasOwn = {}.hasOwnProperty;\n\n function classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = _typeof(arg);\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n }\n\n if (typeof module !== 'undefined' && module.exports) {\n classNames[\"default\"] = classNames;\n module.exports = classNames;\n } else if (typeof define === 'function' && _typeof(define.amd) === 'object' && define.amd) {\n // register as 'classnames', consistent with npm package name\n define('classnames', [], function () {\n return classNames;\n });\n } else {\n window.classNames = classNames;\n }\n})();","import React from \"react\"\nimport PropTypes from 'prop-types'\nimport {default as LoadingIcon} from './icons/Loading'\n\nconst Loading = ({className}) =>
\n\nLoading.propTypes = {\n className: PropTypes.string\n}\n\nLoading.defaultProps = {\n className: 'loading'\n}\n\nexport default Loading\n","import { isIE, isEdge } from 'react-device-detect'\nimport moment from 'moment'\n\nexport const addIEClassToBody = () => {\n let body = document.querySelector(\"body\")\n if (body && (isIE || isEdge) ) {\n body.classList.add(`ie ${isEdge ? 'edge': ''}`)\n }\n}\n\nexport const prettifyDate = (date) => {\n return moment(date).format(\"MM/DD/YYYY\")\n}","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 500;","import React, { useEffect, Fragment } from 'react'\nimport PropTypes from 'prop-types'\n\nconst CcIcons = ({displayCardsOnly = false, className=''}) => {\n\n // script being writen everytime component loads, prevent\n useEffect(() => {\n if(!displayCardsOnly) {\n let wrapperEl = document.getElementById(\"authorize-net-seal\")\n const authScript = document.createElement('script')\n authScript.type = 'text/javascript'\n authScript.src = \"/auth.min.js\"\n authScript.async = true\n wrapperEl.appendChild(authScript)\n }\n }, [])\n\n return (\n \n )\n}\n\nCcIcons.propTypes = {\n displayCardsOnly: PropTypes.bool,\n className: PropTypes.string\n}\n\nexport default CcIcons\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","import { useEffect, useState } from 'react'\n\nconst getActiveDestinationNav = (selection) => {\n return document.querySelector(\n `.destination-list [data-item='${selection}']`\n )\n}\n\n// Set Position of the bar above destinations list\nconst useSetDestinationListBarPos = (destSelection) => {\n\n const [destinationSelection, setListBarSelection] = useState(destSelection)\n let $listBarContainer = document.querySelector(\n '.hero .destination-list-bar-container'\n )\n\n useEffect(\n () => {\n if($listBarContainer &&\n destinationSelection) {\n const $listBar = document.querySelector('.destination-list-bar')\n const $activeDestListItem = getActiveDestinationNav(destinationSelection)\n if($activeDestListItem) {\n const width = $activeDestListItem.clientWidth\n const xPos = $activeDestListItem.offsetLeft - $listBarContainer.offsetLeft\n $listBar.style.width = width + 'px'\n $listBar.style.transform = `translateX(${xPos}px)`\n }\n }\n }, [destinationSelection]\n )\n\n return { setListBarSelection }\n}\n\nexport default useSetDestinationListBarPos","import React, { useState, useEffect } from 'react'\nimport PropTypes from 'prop-types'\n\nconst displayRandomText = (text) => \n\nconst randomize = textArray => textArray[Math.floor(Math.random() * textArray.length)]\n\nconst RotateRandomizedText = ({textArray}) => {\n const [ text, setText ] = useState(randomize(textArray))\n let timeout\n\n useEffect(\n () => {\n timeout = setTimeout(newText, 8000)\n return () => {\n clearTimeout(timeout)\n }\n }, []\n )\n\n function newText() {\n setText(randomize(textArray))\n timeout = setTimeout(newText, 8000)\n }\n\n return displayRandomText(text)\n}\n\nRotateRandomizedText.propTypes = {\n textArray: PropTypes.array.isRequired\n}\n\nexport default RotateRandomizedText\n","import React, { createContext, useReducer } from 'react'\nimport PropTypes from 'prop-types'\n\nimport { earliestStartDate } from '../helpers/general'\n\nconst initialState = {\n destinations: {},\n destinationsAll: {},\n destinationsDropdownList: {},\n featuredDestinations: [],\n ticketDestinations: [],\n activeDestination: \"\",\n activeDestinationHeading: \"\",\n activeDestinationTitle: \"\",\n activeDestinationNav: \"\",\n activeFeaturedDestination: \"\",\n playing: undefined,\n animationCount: 0,\n dropdown: {\n destination: {\n open: false,\n selected: \"\",\n hovered: null,\n }\n },\n spinnerActive: true,\n nights: 3,\n arrival: earliestStartDate()\n}\n\nexport const HERO = {\n DESTINATIONS: {\n SET: 'HERO/DESTINATIONS/SET',\n FEATURED: 'HERO/DESTINATIONS/FEATURED',\n ALL: 'HERO/DESTINATIONS/ALL',\n DROPDOWN: 'HERO/DESTINATIONS/DROPDOWN'\n },\n ACTIVE_DESTINATION: {\n SET: 'HERO/ACTIVE_DESTINATION/SET',\n HEADING: 'HERO/ACTIVE_DESTINATION/HEADING',\n TITLE: 'HERO/ACTIVE_DESTINATION/TITLE',\n NAV: 'HERO/ACTIVE_DESTINATION/NAV',\n FEATURED: 'HERO/ACTIVE_DESTINATION/FEATURED'\n },\n TICKET_DESTINATIONS: {\n SET: 'HERO/TICKET_DESTINATIONS/SET'\n },\n PLAYING: {\n SET: 'HERO/PLAYING/SET'\n },\n ANIMATION_COUNT: {\n SET: 'HERO/ANIMATION_COUNT/SET'\n },\n DROPDOWN: {\n SET: 'HERO/DROPDOWN/SET'\n },\n SPINNER_ACTIVE: {\n SET: 'HERO/SPINNER_ACTIVE/SET'\n },\n NIGHTS: {\n SET: 'HERO/NIGHTS/SET'\n },\n ARRIVAL: {\n SET: 'HERO/ARRIVAL/SET'\n }\n}\n\nlet reducer = ( state, action ) => {\n switch(action.type) {\n case \"reset\":\n return initialState\n case HERO.DESTINATIONS.SET:\n return { ...state, destinations: action.payload }\n case HERO.DESTINATIONS.ALL:\n return { ...state, destinationsAll: action.payload }\n case HERO.DESTINATIONS.DROPDOWN:\n return { ...state, destinationsDropdownList: action.payload }\n case HERO.DESTINATIONS.FEATURED:\n return { ...state, featuredDestinations: action.payload }\n case HERO.TICKET_DESTINATIONS.SET:\n return { ...state, ticketDestinations: action.payload }\n case HERO.ACTIVE_DESTINATION.SET:\n return { ...state, activeDestination: action.payload }\n case HERO.ACTIVE_DESTINATION.TITLE:\n return { ...state, activeDestinationTitle: action.payload }\n case HERO.ACTIVE_DESTINATION.HEADING:\n return { ...state, activeDestinationHeading: action.payload }\n case HERO.ACTIVE_DESTINATION.NAV:\n return { ...state, activeDestinationNav: action.payload }\n case HERO.ACTIVE_DESTINATION.FEATURED:\n return { ...state, activeFeaturedDestination: action.payload }\n case HERO.PLAYING.SET:\n return { ...state, playing: action.payload }\n case HERO.ANIMATION_COUNT.SET:\n return { ...state, animationCount: action.payload }\n case HERO.DROPDOWN.SET:\n return { ...state, dropdown: action.payload }\n case HERO.SPINNER_ACTIVE.SET:\n return { ...state, spinnerActive: action.payload }\n case HERO.NIGHTS.SET:\n return { ...state, nights: action.payload }\n case HERO.ARRIVAL.SET:\n return { ...state, arrival: action.payload }\n default:\n return state\n }\n}\n\nexport const HeroContext = createContext()\n\nexport const HeroProvider = ({ children }) => {\n let [state, dispatch] = useReducer(reducer, initialState)\n let value = { state, dispatch }\n\n return (\n \n { children }\n \n )\n}\n\nHeroProvider.propTypes = {\n children: PropTypes.node\n}\n\nexport const HeroConsumer = HeroContext.Consumer\n","import moment from \"moment\"\nimport { isMobile } from 'react-device-detect'\n\nexport const isInViewport = (elem) => {\n var bounding = elem.getBoundingClientRect()\n return (\n bounding.top >= 0 &&\n bounding.left >= 0 &&\n bounding.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\n bounding.right <= (window.innerWidth || document.documentElement.clientWidth)\n )\n}\n\nexport const scrollToHotels = () => {\n let hotelEl = document.querySelector(\".hotels\")\n if (hotelEl) scrollToEl(hotelEl, \"nearest\")\n}\n\nexport const scrollToOrderThankYou = () => {\n var orderThankYouEl = document.querySelector('.order-thank-you')\n if (orderThankYouEl) scrollToEl(orderThankYouEl, \"start\")\n}\n\nexport const scrollToSubmitOrder = () => {\n var submitOrderEl = document.querySelector('.checkout-summary .actions')\n scrollToEl(submitOrderEl)\n}\n\nexport const scrollToCheckout = () => {\n let scrollEl = document.querySelector(\".checkout-page\")\n if (scrollEl) scrollToEl(scrollEl, \"start\")\n}\n\nexport const scrollToEcommerce = () => {\n let scrollEl = document.querySelector(\".ecommerce-wrapper\")\n if (scrollEl) scrollToEl(scrollEl, \"start\")\n}\n\nexport const scrollToEl = (el, block = \"end\") => {\n if (el) {\n el.scrollIntoView({\n behavior: \"smooth\",\n block: block,\n inline: \"nearest\"\n })\n }\n}\n\nexport const captializeFirst = (item) => {\n let lowercase = item.toLowerCase()\n return lowercase.charAt(0).toUpperCase() + lowercase.slice(1)\n}\n\nexport const earliestStartDate = () => {\n let today = new Date()\n let currentHoursInMDT = today.toLocaleTimeString('en-US', {timeZone: 'America/Denver', hour12: false }).split(':')[0]\n if (parseInt(currentHoursInMDT) >= 22) {\n return moment().hours(0).add(1, \"days\")\n } else {\n return moment().hours(0)\n }\n}\n\nexport const isDateBlockedForSelection = (day) => day <= earliestStartDate()\n\n// Convert moment date object to date object\nexport const momentObjectToDateObject = (date) => {\n let newDate = new Date(date)\n newDate.setHours(0,0,0,0)\n return newDate\n}\n\nexport const isSmallScreen = () => isMobile || window.innerWidth < 765\n\nexport const formatCurrency = (amount, currency = 'USD', seperator =' ') => {\n return `${currency}${seperator}${Number.parseFloat(amount).toFixed(2)}`\n}\n\nexport const setDelay = (timeout) => {\n return new Promise((resolve) => {\n setTimeout(resolve, timeout)\n })\n}\n\nexport const hideHotelsPageDetails = () => {\n let pageTitleContent = document.querySelector(\".package-hotels.subpage .package-hero .container\")\n pageTitleContent.style.display = \"none\"\n}\n\nexport const showHotelsPageDetails = () => {\n let pageTitleContent = document.querySelector(\".package-hotels.subpage .package-hero .container\")\n pageTitleContent.style.display = \"block\"\n}\n","import { useEffect, useState } from 'react'\nimport { setDelay } from '../../helpers/general'\n\nconst useSetBackgroundImage = () => {\n const [backgroundImage, setBackgroundImage] = useState(null)\n const BACKGROUND_ANIMATION_DUATION = 150\n\n useEffect(\n () => {\n\n if (!backgroundImage) return\n\n const $hero = document.querySelector('.hero')\n const $heroBG = $hero.querySelector('.hero-bg')\n\n $heroBG.style.opacity = 1\n $heroBG.style.transition = `opacity ${BACKGROUND_ANIMATION_DUATION}ms linear`\n\n const image = `\n linear-gradient(\n to bottom,\n rgba(0, 0, 0, 0.6) 0%,\n rgba(0, 0, 0, 0.3) 70%,\n rgba(0, 0, 0, 0.9) 100%\n ),\n url(${backgroundImage.url})\n `\n const $clonedBG = $heroBG.cloneNode(true)\n $clonedBG.style.backgroundImage = image\n\n if (!backgroundImage.playing) {\n $clonedBG.style.animationPlayState = 'paused'\n } else {\n $clonedBG.style.animationPlayState = 'running'\n }\n\n $hero.insertBefore($clonedBG, $hero.firstChild)\n $heroBG.style.opacity = 0\n\n setDelay(BACKGROUND_ANIMATION_DUATION).then(() => {\n let el = document.querySelectorAll('.hero-bg')\n $hero.removeChild(el[1])\n })\n }, [backgroundImage]\n )\n\n return { setBackgroundImage }\n}\n\nexport default useSetBackgroundImage","import CcIcons from '../../../../../common/ecommerce/common/CcIcons'\n\nexport default CcIcons\n","import RotateRandomizedText from '../../../../../common/footer/RotateRandomizedText'\n\nexport default RotateRandomizedText\n","function makeTypeChecker(tabsRole) {\n return function (element) {\n return !!element.type && element.type.tabsRole === tabsRole;\n };\n}\n\nexport var isTab = makeTypeChecker('Tab');\nexport var isTabList = makeTypeChecker('TabList');\nexport var isTabPanel = makeTypeChecker('TabPanel');","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { Children, cloneElement } from 'react';\nimport { isTabPanel, isTab, isTabList } from './elementTypes';\n\nfunction isTabChild(child) {\n return isTab(child) || isTabList(child) || isTabPanel(child);\n}\n\nexport function deepMap(children, callback) {\n return Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return null;\n\n if (isTabChild(child)) {\n return callback(child);\n }\n\n if (child.props && child.props.children && _typeof(child.props.children) === 'object') {\n // Clone the child that has children and map them too\n return cloneElement(child, _objectSpread({}, child.props, {\n children: deepMap(child.props.children, callback)\n }));\n }\n\n return child;\n });\n}\nexport function deepForEach(children, callback) {\n return Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) return;\n\n if (isTab(child) || isTabPanel(child)) {\n callback(child);\n } else if (child.props && child.props.children && _typeof(child.props.children) === 'object') {\n if (isTabList(child)) callback(child);\n deepForEach(child.props.children, callback);\n }\n });\n}","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport React, { cloneElement, Component } from 'react';\nimport cx from 'classnames';\nimport uuid from '../helpers/uuid';\nimport { childrenPropType } from '../helpers/propTypes';\nimport { getPanelsCount as _getPanelsCount, getTabsCount as _getTabsCount } from '../helpers/count';\nimport { deepMap } from '../helpers/childrenDeepMap';\nimport { isTabList, isTabPanel, isTab } from '../helpers/elementTypes';\n\nfunction isNode(node) {\n return node && 'getAttribute' in node;\n} // Determine if a node from event.target is a Tab element\n\n\nfunction isTabNode(node) {\n return isNode(node) && node.getAttribute('role') === 'tab';\n} // Determine if a tab node is disabled\n\n\nfunction isTabDisabled(node) {\n return isNode(node) && node.getAttribute('aria-disabled') === 'true';\n}\n\nvar canUseActiveElement;\n\ntry {\n canUseActiveElement = !!(typeof window !== 'undefined' && window.document && window.document.activeElement);\n} catch (e) {\n // Work around for IE bug when accessing document.activeElement in an iframe\n // Refer to the following resources:\n // http://stackoverflow.com/a/10982960/369687\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12733599\n canUseActiveElement = false;\n}\n\nvar UncontrolledTabs =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(UncontrolledTabs, _Component);\n\n function UncontrolledTabs() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.tabNodes = [];\n\n _this.handleKeyDown = function (e) {\n var direction = _this.props.direction;\n\n if (_this.isTabFromContainer(e.target)) {\n var index = _this.props.selectedIndex;\n var preventDefault = false;\n var useSelectedIndex = false;\n\n if (e.keyCode === 32 || e.keyCode === 13) {\n preventDefault = true;\n useSelectedIndex = false;\n\n _this.handleClick(e);\n }\n\n if (e.keyCode === 37 || e.keyCode === 38) {\n // Select next tab to the left\n if (direction === 'rtl') {\n index = _this.getNextTab(index);\n } else {\n index = _this.getPrevTab(index);\n }\n\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 39 || e.keyCode === 40) {\n // Select next tab to the right\n if (direction === 'rtl') {\n index = _this.getPrevTab(index);\n } else {\n index = _this.getNextTab(index);\n }\n\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 35) {\n // Select last tab (End key)\n index = _this.getLastTab();\n preventDefault = true;\n useSelectedIndex = true;\n } else if (e.keyCode === 36) {\n // Select first tab (Home key)\n index = _this.getFirstTab();\n preventDefault = true;\n useSelectedIndex = true;\n } // This prevents scrollbars from moving around\n\n\n if (preventDefault) {\n e.preventDefault();\n } // Only use the selected index in the state if we're not using the tabbed index\n\n\n if (useSelectedIndex) {\n _this.setSelected(index, e);\n }\n }\n };\n\n _this.handleClick = function (e) {\n var node = e.target;\n\n do {\n if (_this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).filter(isTabNode).indexOf(node);\n\n _this.setSelected(index, e);\n\n return;\n } // eslint-disable-next-line no-cond-assign\n\n } while ((node = node.parentNode) != null);\n };\n\n return _this;\n }\n\n var _proto = UncontrolledTabs.prototype;\n\n _proto.setSelected = function setSelected(index, event) {\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n var _this$props = this.props,\n onSelect = _this$props.onSelect,\n selectedIndex = _this$props.selectedIndex; // Call change event handler\n\n onSelect(index, selectedIndex, event);\n };\n\n _proto.getNextTab = function getNextTab(index) {\n var count = this.getTabsCount(); // Look for non-disabled tab from index to the last tab on the right\n\n for (var i = index + 1; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // If no tab found, continue searching from first on left to index\n\n\n for (var _i = 0; _i < index; _i++) {\n if (!isTabDisabled(this.getTab(_i))) {\n return _i;\n }\n } // No tabs are disabled, return index\n\n\n return index;\n };\n\n _proto.getPrevTab = function getPrevTab(index) {\n var i = index; // Look for non-disabled tab from index to first tab on the left\n\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // If no tab found, continue searching from last tab on right to index\n\n\n i = this.getTabsCount();\n\n while (i-- > index) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n } // No tabs are disabled, return index\n\n\n return index;\n };\n\n _proto.getFirstTab = function getFirstTab() {\n var count = this.getTabsCount(); // Look for non disabled tab from the first tab\n\n for (var i = 0; i < count; i++) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n return null;\n };\n\n _proto.getLastTab = function getLastTab() {\n var i = this.getTabsCount(); // Look for non disabled tab from the last tab\n\n while (i--) {\n if (!isTabDisabled(this.getTab(i))) {\n return i;\n }\n }\n\n return null;\n };\n\n _proto.getTabsCount = function getTabsCount() {\n var children = this.props.children;\n return _getTabsCount(children);\n };\n\n _proto.getPanelsCount = function getPanelsCount() {\n var children = this.props.children;\n return _getPanelsCount(children);\n };\n\n _proto.getTab = function getTab(index) {\n return this.tabNodes[\"tabs-\" + index];\n };\n\n _proto.getChildren = function getChildren() {\n var _this2 = this;\n\n var index = 0;\n var _this$props2 = this.props,\n children = _this$props2.children,\n disabledTabClassName = _this$props2.disabledTabClassName,\n focus = _this$props2.focus,\n forceRenderTabPanel = _this$props2.forceRenderTabPanel,\n selectedIndex = _this$props2.selectedIndex,\n selectedTabClassName = _this$props2.selectedTabClassName,\n selectedTabPanelClassName = _this$props2.selectedTabPanelClassName;\n this.tabIds = this.tabIds || [];\n this.panelIds = this.panelIds || [];\n var diff = this.tabIds.length - this.getTabsCount(); // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n\n while (diff++ < 0) {\n this.tabIds.push(uuid());\n this.panelIds.push(uuid());\n } // Map children to dynamically setup refs\n\n\n return deepMap(children, function (child) {\n var result = child; // Clone TabList and Tab components to have refs\n\n if (isTabList(child)) {\n var listIndex = 0; // Figure out if the current focus in the DOM is set on a Tab\n // If it is we should keep the focus on the next selected tab\n\n var wasTabFocused = false;\n\n if (canUseActiveElement) {\n wasTabFocused = React.Children.toArray(child.props.children).filter(isTab).some(function (tab, i) {\n return document.activeElement === _this2.getTab(i);\n });\n }\n\n result = cloneElement(child, {\n children: deepMap(child.props.children, function (tab) {\n var key = \"tabs-\" + listIndex;\n var selected = selectedIndex === listIndex;\n var props = {\n tabRef: function tabRef(node) {\n _this2.tabNodes[key] = node;\n },\n id: _this2.tabIds[listIndex],\n panelId: _this2.panelIds[listIndex],\n selected: selected,\n focus: selected && (focus || wasTabFocused)\n };\n if (selectedTabClassName) props.selectedClassName = selectedTabClassName;\n if (disabledTabClassName) props.disabledClassName = disabledTabClassName;\n listIndex++;\n return cloneElement(tab, props);\n })\n });\n } else if (isTabPanel(child)) {\n var props = {\n id: _this2.panelIds[index],\n tabId: _this2.tabIds[index],\n selected: selectedIndex === index\n };\n if (forceRenderTabPanel) props.forceRender = forceRenderTabPanel;\n if (selectedTabPanelClassName) props.selectedClassName = selectedTabPanelClassName;\n index++;\n result = cloneElement(child, props);\n }\n\n return result;\n });\n };\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n\n\n _proto.isTabFromContainer = function isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n } // Check if the first occurrence of a Tabs container is `this` one.\n\n\n var nodeAncestor = node.parentElement;\n\n do {\n if (nodeAncestor === this.node) return true;\n if (nodeAncestor.getAttribute('data-tabs')) break;\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n };\n\n _proto.render = function render() {\n var _this3 = this; // Delete all known props, so they don't get added to DOM\n\n\n var _this$props3 = this.props,\n children = _this$props3.children,\n className = _this$props3.className,\n disabledTabClassName = _this$props3.disabledTabClassName,\n domRef = _this$props3.domRef,\n focus = _this$props3.focus,\n forceRenderTabPanel = _this$props3.forceRenderTabPanel,\n onSelect = _this$props3.onSelect,\n selectedIndex = _this$props3.selectedIndex,\n selectedTabClassName = _this$props3.selectedTabClassName,\n selectedTabPanelClassName = _this$props3.selectedTabPanelClassName,\n attributes = _objectWithoutPropertiesLoose(_this$props3, [\"children\", \"className\", \"disabledTabClassName\", \"domRef\", \"focus\", \"forceRenderTabPanel\", \"onSelect\", \"selectedIndex\", \"selectedTabClassName\", \"selectedTabPanelClassName\"]);\n\n return React.createElement(\"div\", _extends({}, attributes, {\n className: cx(className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n ref: function ref(node) {\n _this3.node = node;\n if (domRef) domRef(node);\n },\n \"data-tabs\": true\n }), this.getChildren());\n };\n\n return UncontrolledTabs;\n}(Component);\n\nUncontrolledTabs.defaultProps = {\n className: 'react-tabs',\n focus: false\n};\nexport { UncontrolledTabs as default };","// Get a universally unique identifier\nvar count = 0;\nexport default function uuid() {\n return \"react-tabs-\" + count++;\n}\nexport function reset() {\n count = 0;\n}","import { deepForEach } from './childrenDeepMap';\nimport { isTab, isTabPanel } from './elementTypes';\nexport function getTabsCount(children) {\n var tabCount = 0;\n deepForEach(children, function (child) {\n if (isTab(child)) tabCount++;\n });\n return tabCount;\n}\nexport function getPanelsCount(children) {\n var panelCount = 0;\n deepForEach(children, function (child) {\n if (isTabPanel(child)) panelCount++;\n });\n return panelCount;\n}","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport React, { Component } from 'react';\nimport { childrenPropType, onSelectPropType, selectedIndexPropType } from '../helpers/propTypes';\nimport UncontrolledTabs from './UncontrolledTabs';\nimport { getTabsCount } from '../helpers/count';\nvar MODE_CONTROLLED = 0;\nvar MODE_UNCONTROLLED = 1;\n\nvar Tabs =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Tabs, _Component);\n\n function Tabs(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n\n _this.handleSelected = function (index, last, event) {\n var onSelect = _this.props.onSelect;\n var mode = _this.state.mode; // Call change event handler\n\n if (typeof onSelect === 'function') {\n // Check if the change event handler cancels the tab change\n if (onSelect(index, last, event) === false) return;\n }\n\n var state = {\n // Set focus if the change was triggered from the keyboard\n focus: event.type === 'keydown'\n };\n\n if (mode === MODE_UNCONTROLLED) {\n // Update selected index\n state.selectedIndex = index;\n }\n\n _this.setState(state);\n };\n\n _this.state = Tabs.copyPropsToState(_this.props, {}, props.defaultFocus);\n return _this;\n }\n\n Tabs.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n return Tabs.copyPropsToState(props, state);\n };\n\n Tabs.getModeFromProps = function getModeFromProps(props) {\n return props.selectedIndex === null ? MODE_UNCONTROLLED : MODE_CONTROLLED;\n }; // preserve the existing selectedIndex from state.\n // If the state has not selectedIndex, default to the defaultIndex or 0\n\n\n Tabs.copyPropsToState = function copyPropsToState(props, state, focus) {\n if (focus === void 0) {\n focus = false;\n }\n\n if (process.env.NODE_ENV !== 'production' && state.mode !== undefined && state.mode !== Tabs.getModeFromProps(props)) {\n throw new Error(\"Switching between controlled mode (by using `selectedIndex`) and uncontrolled mode is not supported in `Tabs`.\\nFor more information about controlled and uncontrolled mode of react-tabs see the README.\");\n }\n\n var newState = {\n focus: focus,\n mode: Tabs.getModeFromProps(props)\n };\n\n if (newState.mode === MODE_UNCONTROLLED) {\n var maxTabIndex = getTabsCount(props.children) - 1;\n var selectedIndex = null;\n\n if (state.selectedIndex != null) {\n selectedIndex = Math.min(state.selectedIndex, maxTabIndex);\n } else {\n selectedIndex = props.defaultIndex || 0;\n }\n\n newState.selectedIndex = selectedIndex;\n }\n\n return newState;\n };\n\n var _proto = Tabs.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n defaultIndex = _this$props.defaultIndex,\n defaultFocus = _this$props.defaultFocus,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"defaultIndex\", \"defaultFocus\"]);\n\n var _this$state = this.state,\n focus = _this$state.focus,\n selectedIndex = _this$state.selectedIndex;\n props.focus = focus;\n props.onSelect = this.handleSelected;\n\n if (selectedIndex != null) {\n props.selectedIndex = selectedIndex;\n }\n\n return React.createElement(UncontrolledTabs, props, children);\n };\n\n return Tabs;\n}(Component);\n\nTabs.defaultProps = {\n defaultFocus: false,\n forceRenderTabPanel: false,\n selectedIndex: null,\n defaultIndex: null\n};\nexport { Tabs as default };\nTabs.tabsRole = 'Tabs';","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\n\nvar TabList =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(TabList, _Component);\n\n function TabList() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = TabList.prototype;\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"className\"]);\n\n return React.createElement(\"ul\", _extends({}, attributes, {\n className: cx(className),\n role: \"tablist\"\n }), children);\n };\n\n return TabList;\n}(Component);\n\nTabList.defaultProps = {\n className: 'react-tabs__tab-list'\n};\nexport { TabList as default };\nTabList.tabsRole = 'TabList';","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\nvar DEFAULT_CLASS = 'react-tabs__tab';\n\nvar Tab =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Tab, _Component);\n\n function Tab() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = Tab.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.checkFocus();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n this.checkFocus();\n };\n\n _proto.checkFocus = function checkFocus() {\n var _this$props = this.props,\n selected = _this$props.selected,\n focus = _this$props.focus;\n\n if (selected && focus) {\n this.node.focus();\n }\n };\n\n _proto.render = function render() {\n var _cx,\n _this = this;\n\n var _this$props2 = this.props,\n children = _this$props2.children,\n className = _this$props2.className,\n disabled = _this$props2.disabled,\n disabledClassName = _this$props2.disabledClassName,\n focus = _this$props2.focus,\n id = _this$props2.id,\n panelId = _this$props2.panelId,\n selected = _this$props2.selected,\n selectedClassName = _this$props2.selectedClassName,\n tabIndex = _this$props2.tabIndex,\n tabRef = _this$props2.tabRef,\n attributes = _objectWithoutPropertiesLoose(_this$props2, [\"children\", \"className\", \"disabled\", \"disabledClassName\", \"focus\", \"id\", \"panelId\", \"selected\", \"selectedClassName\", \"tabIndex\", \"tabRef\"]);\n\n return React.createElement(\"li\", _extends({}, attributes, {\n className: cx(className, (_cx = {}, _cx[selectedClassName] = selected, _cx[disabledClassName] = disabled, _cx)),\n ref: function ref(node) {\n _this.node = node;\n if (tabRef) tabRef(node);\n },\n role: \"tab\",\n id: id,\n \"aria-selected\": selected ? 'true' : 'false',\n \"aria-disabled\": disabled ? 'true' : 'false',\n \"aria-controls\": panelId,\n tabIndex: tabIndex || (selected ? '0' : null)\n }), children);\n };\n\n return Tab;\n}(Component);\n\nTab.defaultProps = {\n className: DEFAULT_CLASS,\n disabledClassName: DEFAULT_CLASS + \"--disabled\",\n focus: false,\n id: null,\n panelId: null,\n selected: false,\n selectedClassName: DEFAULT_CLASS + \"--selected\"\n};\nexport { Tab as default };\nTab.tabsRole = 'Tab';","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport React, { Component } from 'react';\nimport cx from 'classnames';\nvar DEFAULT_CLASS = 'react-tabs__tab-panel';\n\nvar TabPanel =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(TabPanel, _Component);\n\n function TabPanel() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = TabPanel.prototype;\n\n _proto.render = function render() {\n var _cx;\n\n var _this$props = this.props,\n children = _this$props.children,\n className = _this$props.className,\n forceRender = _this$props.forceRender,\n id = _this$props.id,\n selected = _this$props.selected,\n selectedClassName = _this$props.selectedClassName,\n tabId = _this$props.tabId,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"className\", \"forceRender\", \"id\", \"selected\", \"selectedClassName\", \"tabId\"]);\n\n return React.createElement(\"div\", _extends({}, attributes, {\n className: cx(className, (_cx = {}, _cx[selectedClassName] = selected, _cx)),\n role: \"tabpanel\",\n id: id,\n \"aria-labelledby\": tabId\n }), forceRender || selected ? children : null);\n };\n\n return TabPanel;\n}(Component);\n\nTabPanel.defaultProps = {\n className: DEFAULT_CLASS,\n forceRender: false,\n selectedClassName: DEFAULT_CLASS + \"--selected\"\n};\nexport { TabPanel as default };\nTabPanel.tabsRole = 'TabPanel';","import React, { useContext } from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport { HeroContext } from '../../contexts/HeroContext'\n\nconst DestinationList = ({\n active,\n selectDropdownOption,\n setActiveDestinationNavElement\n}) => {\n\n const { state: { destinations } } = useContext(HeroContext)\n\n const _handleOnClick = (data) => {\n selectDropdownOption(\"destination\", data)\n setActiveDestinationNavElement(data)\n }\n\n const outputItems = () => {\n return Object.keys(destinations).map((dest, i) => {\n let item = destinations[dest]\n return (\n _handleOnClick(dest)}\n >\n \n
{ item.city }
\n
{ item.state }
\n \n )\n })\n\n }\n\n const _handleArrowClick = () => {\n const $packagesSection = document.querySelector(\"section.packages\")\n if($packagesSection) {\n $packagesSection.scrollIntoView({\n behavior: \"smooth\",\n block: \"start\",\n inline: \"nearest\"\n })\n }\n\n // $ga.event(\"Hero\", \"Destination List Arrow\", \"Scroll Down\")\n }\n\n return (\n
\n { outputItems() }\n
_handleArrowClick() }>\n \n \n
\n
\n )\n}\n\nDestinationList.propTypes = {\n active: PropTypes.string,\n selectDropdownOption: PropTypes.func,\n setActiveDestinationNavElement: PropTypes.func\n}\n\nexport default DestinationList\n","import React, { useContext, useEffect } from 'react'\nimport PropTypes from 'prop-types'\nimport DestinationList from './DestinationList'\nimport useSetDestinationListBarPos from '../hooks/useSetDestinationListBarPos'\n\nimport { HERO, HeroContext } from '../../contexts/HeroContext'\n\nconst DestinationsFeaturedList = ({\n selectDropdownOption,\n listRef\n}) => {\n\n const { state: {\n activeDestination,\n activeDestinationNav,\n dropdown,\n playing,\n spinnerActive\n }, dispatch } = useContext(HeroContext)\n const { setListBarSelection } = useSetDestinationListBarPos()\n const _setPlaying = (playing) =>\n dispatch({ type: HERO.PLAYING.SET, payload: playing })\n const _setDropdown = (dropdown) =>\n dispatch({ type: HERO.DROPDOWN.SET, payload: dropdown })\n const _setActiveDestinationNav = (nav) =>\n dispatch({ type: HERO.ACTIVE_DESTINATION.NAV, payload: nav })\n\n useEffect(() => {\n // Set initial position for dest list\n setListBarSelection(activeDestination)\n }, [])\n\n useEffect(\n () => {\n if (getActiveDropdown() === 'destination') {\n setListBarSelection(activeDestination)\n }\n },\n [activeDestination]\n )\n\n const getActiveDropdown = () => dropdown.destination.open ? 'destination' : null\n\n const togglePlaying = (callback = null) => {\n _setPlaying(!playing)\n callback(!playing)\n }\n\n const _playPause = () => {\n const activeDropdown = getActiveDropdown()\n\n togglePlaying((value) => {\n if (value && activeDropdown) {\n const dropdownTmp = dropdown\n dropdownTmp[activeDropdown].open = false\n dropdownTmp[activeDropdown].hovered = false\n _setDropdown(dropdownTmp)\n }\n })\n }\n\n return (\n \n
\n _playPause()}\n >\n \n \n \n \n \n
\n

Featured Destinations

\n \n
\n
\n
\n \n
\n )\n}\n\nDestinationsFeaturedList.propTypes = {\n selectDropdownOption: PropTypes.func.isRequired,\n listRef: PropTypes.object.isRequired\n}\n\nexport default DestinationsFeaturedList\n","import React, { useState, useEffect, useContext, useRef, Suspense, lazy } from 'react'\nimport PropType from 'prop-types'\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs'\nimport { isMobileOnly } from 'react-device-detect'\n\nimport { HERO, HeroContext } from '../contexts/HeroContext'\n\nimport Loading from '../common/Loading'\nimport DestinationsFeaturedList from './featured/DestinationsFeaturedList'\nimport useSetDestinationListBarPos from './hooks/useSetDestinationListBarPos'\nimport useSetBackgroundImage from './hooks/useSetBackgroundImage'\n\nconst TabsPackageDeal = lazy(() => import('./tabs/packages/TabsPackageDeal'))\nconst TabsTickets = lazy(() => import('./tabs/tickets/TabsTickets'))\n\nimport {\n hidePlaceholder\n} from '../helpers/heroHelper'\nimport { addIEClassToBody } from '../../common/helpers/general'\n\nimport { setDelay } from '../helpers/general'\n\nconst DESINATION_LOOP_INTERVAL = 10000\n\nconst DestinationsHero = (props) => {\n const { state, dispatch } = useContext(HeroContext)\n const _setActiveDestinationTitle = (title) =>\n dispatch({ type: HERO.ACTIVE_DESTINATION.TITLE, payload: title })\n const _setActiveDesination = (active) =>\n dispatch({ type: HERO.ACTIVE_DESTINATION.SET, payload: active })\n const _setActiveFeaturedDesination = (active) =>\n dispatch({ type: HERO.ACTIVE_DESTINATION.FEATURED, payload: active })\n const _setActiveDestinationHeading = (heading) =>\n dispatch({ type: HERO.ACTIVE_DESTINATION.HEADING, payload: heading })\n const _setActiveDestinationNav = (nav) =>\n dispatch({ type: HERO.ACTIVE_DESTINATION.NAV, payload: nav })\n const _setDropdown = (dropdown) =>\n dispatch({ type: HERO.DROPDOWN.SET, payload: dropdown })\n const _setPlaying = (playing) =>\n dispatch({ type: HERO.PLAYING.SET, payload: playing })\n const _setNights = (nights) =>\n dispatch({ type: HERO.NIGHTS.SET, payload: nights })\n const _setAnimationCount = (count) =>\n dispatch({ type: HERO.ANIMATION_COUNT.SET, payload: count })\n const _setSpinnerActive = (active) =>\n dispatch({ type: HERO.SPINNER_ACTIVE.SET, payload: active })\n const [height, setHeight] = useState('100vh')\n\n const { destinations, destinationsAll, lowestStay, lowestNightsList, ticketDestinations } = props\n const orgMinNights = lowestNightsList ? lowestNightsList[destinations[0].slug] : lowestStay\n const [minNights, setMinNights] = useState(orgMinNights)\n const [webPSupport, setWebPSupport] = useState(true)\n\n const { setListBarSelection } = useSetDestinationListBarPos()\n const { setBackgroundImage } = useSetBackgroundImage()\n const destinationListRef = useRef()\n const containerRef = useRef()\n\n useEffect(\n () => {\n _detectWebPSupport()\n _setInnerHeight()\n _setDestinationsFromProps()\n _setDestinationsAllFromProps()\n _setTicketDestinationsfromProps()\n window.addEventListener('resize', _setInnerHeight)\n addIEClassToBody()\n hidePlaceholder()\n // keyboard listener for esc\n document.addEventListener('keydown', _keyListener)\n _setPlaying(true)\n\n return () => {\n window.removeEventListener('resize', _setInnerHeight)\n document.removeEventListener('keydown', _keyListener)\n }\n },[]\n )\n\n const _detectWebPSupport = () => {\n var image = new Image()\n const imageResult = (event) => {\n var result = event && event.type === 'load' ? image.width === 1 : false;\n setWebPSupport(result)\n }\n image.onload = imageResult\n image.onerror = imageResult\n image.src = 'data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA/vuUAAA=';\n }\n\n function _setInnerHeight() {\n setHeight(window.innerHeight + 'px')\n setTimeout(_setBottomMargin, 600)\n }\n\n const _setBottomMargin = () => {\n if(destinationListRef) {\n let listHeight = destinationListRef.current.clientHeight\n let newHeight = !isMobileOnly ? listHeight + 24 : listHeight\n if(containerRef) containerRef.current.style.marginBottom = `${newHeight}px`\n }\n }\n\n function _keyListener(e) {\n if (e.which === 27) toggleOffDropdowns()\n }\n\n const _normalizeDesinations = (destinations) => {\n return destinations.reduce((obj, destination) => {\n return {\n ...obj,\n [destination['slug']]: {\n 'title': destination['title'],\n 'city': destination['city'],\n 'state': destination['state'],\n 'image': destination['hero_bg_image'],\n 'webp_image': destination['hero_bg_image_webp'],\n 'verb': destination['hero_verb'],\n 'featured': destination['hero_featured']\n }\n }\n }, {})\n }\n\n const _setDestinationsFromProps = () => {\n if(destinations) {\n let normalizedDestinations = _normalizeDesinations(destinations),\n slugs = Object.keys(normalizedDestinations),\n firstDest = normalizedDestinations[slugs[0]],\n firstSlug = slugs[0]\n\n dispatch({ type: HERO.DESTINATIONS.SET, payload: normalizedDestinations })\n dispatch({ type: HERO.DESTINATIONS.FEATURED, payload: slugs })\n dispatch({ type: HERO.ACTIVE_DESTINATION.SET, payload: firstSlug })\n dispatch({ type: HERO.ACTIVE_DESTINATION.FEATURED, payload: firstSlug })\n _setActiveDestinationHeading(firstDest.verb)\n _setActiveDestinationTitle(firstDest.title)\n _setActiveDestinationNav(firstSlug)\n if(minNights) _setNights(minNights) // Set initial nights\n _setPlaying(true)\n setBackgroundImage({url: webPSupport ? firstDest.webp_image : firstDest.image, playing: true})\n setListBarSelection(firstSlug)\n }\n }\n\n const _setDestinationsAllFromProps = () => {\n if(destinationsAll) {\n let normalized = _normalizeDesinations(destinationsAll)//,\n //slugs = Object.keys(normalized)\n\n let dropDownEntries = []\n for (const [slug, dest] of Object.entries(normalized)) {\n dropDownEntries.push({value: slug, label: dest.title})\n }\n\n dispatch({ type: HERO.DESTINATIONS.ALL, payload: normalized })\n dispatch({ type: HERO.DESTINATIONS.DROPDOWN, payload: dropDownEntries })\n\n //dispatch({ type: HERO.DESTINATIONS.ALL, payload: normalized })\n //dispatch({ type: HERO.DESTINATIONS.DROPDOWN, payload: slugs })\n }\n }\n\n const _setTicketDestinationsfromProps = () => {\n if (ticketDestinations) {\n let ticketPayload = ticketDestinations.map((dest) => {\n return { value: dest, label: dest }\n })\n dispatch({type: HERO.TICKET_DESTINATIONS.SET, payload: ticketPayload })\n }\n }\n\n const setDropdownContent = (value) => {\n if (value) {\n _setActiveDestinationHeading(\n getDestinationData(value, 'verb')\n )\n }\n }\n\n const getDestinationData = (destination, property) => {\n switch (property) {\n case 'verb':\n return state.destinations[destination].verb\n case 'image':\n if (webPSupport) {\n return state.destinations[destination].webp_image\n }\n else {\n return state.destinations[destination].image\n }\n default:\n break\n }\n }\n\n const toggleOffDropdowns = () => {\n const dropdownTmp = {...state.dropdown}\n Object.keys(dropdownTmp).forEach((item) => {\n dropdownTmp[item].open = false\n dropdownTmp[item].hovered = null\n })\n _setDropdown(dropdownTmp)\n }\n\n const selectDropdownOption = (menu, option, animated) => {\n const dropdownTmp = {...state.dropdown}\n dropdownTmp[menu].open = false\n\n if (dropdownTmp[menu].selected !== option) {\n dropdownTmp[menu].selected = option\n dropdownTmp[menu].hovered = null\n\n if (menu === 'destination') {\n setActiveDestination(option)\n\n if(lowestNightsList) {\n _setNights(lowestNightsList[option])\n setMinNights(lowestNightsList[option])\n }\n\n if (!animated) {\n let $heroBg = document.querySelector('.hero-bg')\n $heroBg.style.transform = 'scale(1)'\n $heroBg.style.animation = 'none'\n }\n\n if (state.playing && !animated) {\n clearInterval(window._destinationInterval_)\n _setPlaying(false)\n }\n }\n }\n _setDropdown(dropdownTmp)\n }\n\n const initSpinner = () => _setSpinnerActive(true)\n\n // Stop playing if animation count = destination list\n const checkAnimationCount = (count) => {\n let check = count >= Object.keys(state.destinations).length - 1\n\n if (check) _setPlaying(false)\n return check\n }\n\n const clearDestinationLoopInterval = () => {\n clearInterval(window._destinationInterval_)\n window._destinationInterval_ = null\n _setAnimationCount(0)\n }\n\n const getDropdownState = () => state.dropdown.destination.open\n\n const _setActiveFeaturedDestination = (value) => {\n _setActiveFeaturedDesination(value)\n _setActiveDestinationNav(value)\n setListBarSelection(value)\n setBackgroundImage({url: getDestinationData(value, 'image'), playing: state.playing})\n }\n\n const setDestinationLoop = (interval) => {\n // Any function inside a component “sees” the\n // props and state from the render it was created in\n // not the latest, need to keep interal track of values\n // Have to update state and local\n let count = 0\n let activeDestination = state.activeFeaturedDestination\n let dropdownList = state.featuredDestinations\n\n if (window._destinationInterval_) {\n clearInterval(window._destinationInterval_)\n _setAnimationCount(0)\n count = 0\n }\n\n // Inital spinner animation( 1000ms shorter)\n const duration = DESINATION_LOOP_INTERVAL\n // TODO: useRef here\n const $circle = document.querySelector('.destination-spinner circle')\n\n if (count == 0)\n $circle.style.animation = `show100 ${duration}ms linear infinite`\n\n window._destinationInterval_ = setInterval(() => {\n if (checkAnimationCount(count)) return\n count = count + 1\n _setAnimationCount(count)\n\n initSpinner()\n $circle.style.animation = ''\n\n if (!getDropdownState()) {\n\n const indexOfActive = dropdownList.indexOf(\n activeDestination\n )\n const indexOfNext = dropdownList[indexOfActive + 1]\n ? indexOfActive + 1\n : 0\n const current = dropdownList[indexOfActive]\n const next = dropdownList[indexOfNext]\n _setActiveFeaturedDestination(current)\n\n setDelay(500)\n .then(() => {\n _setActiveFeaturedDestination(next)\n return setDelay(500)\n })\n .then(() => {\n activeDestination = next\n })\n }\n }, interval)\n }\n\n // Play/Pause actions\n useEffect(\n () => {\n if (state.playing !== undefined) {\n if (state.playing) {\n setDestinationLoop(DESINATION_LOOP_INTERVAL)\n initSpinner()\n const heroBG = document.querySelector('.hero-bg')\n if(heroBG) heroBG.style.animationPlayState = 'running'\n } else {\n clearDestinationLoopInterval()\n _setSpinnerActive(false)\n // remove inital animation if exists\n let spinnerEl = document.querySelector('.destination-spinner circle')\n if(spinnerEl) spinnerEl.style.animation = ''\n\n const heroBG = document.querySelector('.hero-bg')\n if(heroBG) heroBG.style.animationPlayState = 'paused'\n }\n }\n },\n [state.playing]\n )\n\n const setActiveDestination = (value) => {\n _setActiveDesination(value)\n _setActiveDestinationNav(value)\n setDropdownContent(value)\n setListBarSelection(value)\n setBackgroundImage({url: getDestinationData(value, 'image'), playing: state.playing})\n }\n\n const _handleTabSelection = (index, lastIndex) => {\n if(index == 1 && lastIndex !== 1) { //tickets tab\n if(state.playing) _setPlaying(false)\n }\n }\n\n return (\n
\n
\n
\n\n \n \n \n \n \n Package Deals\n \n \n \n Tickets\n \n \n\n \n }>\n \n \n \n \n }>\n \n \n \n \n
\n\n \n\n
\n )\n}\n\nDestinationsHero.propTypes = {\n destinations: PropType.array.isRequired,\n destinationsAll: PropType.array.isRequired,\n lowestStay: PropType.number.isRequired,\n lowestNightsList: PropType.object.isRequired,\n ticketDestinations: PropType.array.isRequired,\n}\n\nexport default DestinationsHero\n","\nexport const hidePlaceholder = () => {\n let placeholder = document.querySelector(\".hero-placeholder\")\n if(placeholder) {\n placeholder.style.height = 0\n placeholder.style.opacity = 0\n placeholder.style.zIndex = -1\n }\n placeholder.parentNode.removeChild(placeholder)\n}","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { HeroProvider } from '../contexts/HeroContext'\nimport DestinationsHero from './DestinationsHero'\n\nconst HomepageHero = ({ lowestStay, nightsList, destinations, destinationsAll, ticketDestinations }) => (\n \n \n \n)\n\nHomepageHero.propTypes = {\n lowestStay: PropTypes.number.isRequired,\n nightsList: PropTypes.object.isRequired,\n destinations: PropTypes.array.isRequired,\n destinationsAll: PropTypes.array.isRequired,\n ticketDestinations: PropTypes.array.isRequired,\n}\n\nexport default HomepageHero\n","import HomepageHero from '../../../hero/HomepageHero'\n\nexport default HomepageHero\n\n"],"sourceRoot":""}