{"version":3,"sources":["constants/style.js","utils/Utils.js","utils/ReactFB.js","utils/Analytics.js","constants/screensize.js","components/RemoveButton.js","components/OrderSummaryLineItem.js","components/OrderSummary.js","constants/server.js","components/ItemBlocks.js","components/SectionHeader.js","components/SectionSubHeader.js","components/CategoryContainer.js","components/WelcomeHeader.js","components/SectionNavigator.js","components/Button.js","components/LowerNavigationSection.js","constants/stripe.js","components/CheckoutButton.js","components/TermsAndConditions.js","constants/terms.js","components/Calendar/calendarPhrases.js","components/Calendar/calendarConstants.js","components/Calendar/calendarInclusive.js","components/Calendar/SingleDatePickerWrapper.jsx","components/DateContainer.js","components/AddressContainer.js","components/LargeTextBox.js","constants/errorcodes.js","components/LoadingOverlay.js","components/SuccessNotification.js","App.js","serviceWorker.js","utils/PackageHelper.js","components/LandingPage.js","components/PackageThemePage.js","components/PackageHomeSizePage.js","components/PackageReviewPage.js","components/PackageUpsellPage.js","index.js"],"names":["Style","borderRadius","borderColor","primaryGreen","primaryGreenHighlight","darkGreen","transparentBlack","Utils","amount","toFixed","replace","initialized","debug","verifyInit","console","warn","log","args","info","concat","defaultOptions","autoConfig","init","pixelId","f","b","e","n","t","s","advancedMatching","options","window","document","fbq","callMethod","apply","arguments","queue","push","_fbq","loaded","version","createElement","async","src","getElementsByTagName","parentNode","insertBefore","pageView","track","title","data","trackCustom","event","slice","join","Category","GoogleAnalyticsWrapper","ReactGA","initialize","plugin","require","gtag","Date","pagename","pageToLog","pageview","orderId","fullAmount","execute","name","price","id","revenue","FacebookAnalyticsWrapper","ReactFB","value","currency","Analytics","logCurrentURL","location","pathname","search","logPageView","logPackageStarted","category","action","label","logNewOrderClicked","logContinueOrderClicked","logSectionChange","sectionName","logSaveButtonPressed","logQuantityEnteredForBuilderSection","quantity","logQuantitySkippedForBuilderSection","logAddAnotherItemForBuilderSection","logBuilderItemStartedDesgining","index","logBuilderItemSelected","categoryName","itemName","logBuilderItemRemovedFromSection","logItemSelected","logQuantityChangedForItem","newQuantity","logSelectableItemRemovedFromCart","logItemRemovedFromCart","logPackageHomeSizePicked","size","logPackageThemePicked","theme","logPackageUpsellSelected","upsell","logDateSelected","isSetupDate","dateAsString","logCheckoutPressed","isDeposit","logCheckoutSubmitted","nonInteraction","logCheckoutSuccess","logCheckoutFailed","reason","ScreenSize","Container","styled","div","props","absolute","RemoveButton","this","icon","faTimes","Component","defaultProps","OrderSummaryLineItem","prevProps","prevState","snapshot","children","OuterMargin","InlineContainer","Header","left","InlineContentRight","justify","OrderSummaryHeader","SummaryContainer","SectionContainer","SectionTitle","SectionLineItemContent","SectionLineItemName","notPre","SectionLineItemPrice","included","TotalCost","SendToTop","SendToBottom","OrderSummary","renderBasePrice","basePrice","renderSectionData","sections","map","section","type","key","renderSelectedItemsFor","categories","renderAddedItemsFor","sectionCategories","filter","includes","selectedItem","items","item","selected","shift","undefined","removable","onClick","removeSelectableItem","sectionIndex","remainingAllowance","allowance","addedItems","itemIndex","canRemove","Math","min","abs","removeAddedItem","categoryType","trim","onRemoveClickedForSelectableItem","onRemoveClickedForSectionItem","renderExtraServices","onLastSection","address","setupDate","format","teardownDate","comments","total","ImageBaseURL","MarginAutoContainer","SelectableItem","small","allowSelection","Image","img","QuantityContainer","QuantityLabel","QtyLabel","Dropdown","Select","ItemBlocks","isPartOfQuantityBuilder","onChangeSelection","sectionDataName","image","onChangeQuantity","selectedOption","imageBasePath","isSmall","smallOnMobile","isMobile","quantityOptions","Array","keys","v","searchable","onChange","option","h2","SectionHeader","h3","SectionSubHeader","ItemBlockContainer","CategoryContainer","sectionCategoryTypes","categoriesToRender","allCategories","renderCategories","humanTitle","renderSubtitle","subtitle","renderItemBlocksFor","imagesRelatedTo","innerCat","selectable","TextContainer","HeaderLabel","Link","a","Logo","WelcomeHeader","href","IconWrapper","span","Item","visited","noSelect","noHover","SectionNavigator","getMobileItems","previousItem","selectedSection","nextItem","length","ref","previousButton","current","blur","onSectionClicked","nextButton","twoFromNowButton","getFullItems","list","React","createRef","sectionElements","ButtonContainer","button","ButtonSpan","disabled","Button","showborder","minusAmount","LabelButtonContainer","showSaveButton","NotMobile","LowerNavigationSection","compareAmount","innerWidth","isFullscreen","labelAndButton","onSaveClicked","onNextClicked","nextSectionName","isLastSection","STRIPE_PUBLISHABLE","ButtonWrapper","Italic","StripeButton","StripeSpan","ErrorMessageLabel","CheckoutButton","renderCheckoutButton","description","deposit","token","submitPaymentDeposit","zipCode","billingAddress","locale","stripeKey","className","clone","subtract","submitPaymentFullAmount","renderErrorMessage","invalidReason","submitPayment","tokenId","amountPaid","params","stripeToken","stripeEmail","email","stripeBillingName","card","stripeBillingAddressStreet","address_line1","stripeBillingAddressCity","address_city","isReorder","isCustom","isPremadePackage","submittingStatusChanged","axios","post","then","successPayment","catch","errorPayment","store","clearAll","error","alert","enabled","TermsContainer","CheckboxContainer","Input","input","Label","TermsAndConditions","onCheckChanged","inputRef","checked","stopPropagation","source","accepted","target","focusStartDate","jumpToPrevMonth","jumpToNextMonth","pageUpPageDown","homeEnd","selectFocusedDate","moveFocusByOneDay","moveFocusByOneWeek","returnFocusToInput","keyboardForwardNavigationInstructions","keyboardBackwardNavigationInstructions","chooseAvailableStartDate","date","chooseAvailableEndDate","chooseAvailableDate","dateIsUnavailable","dateIsSelected","dateIsSelectedAsStartDate","dateIsSelectedAsEndDate","calendarLabel","roleDescription","closeDatePicker","clearDate","clearDates","keyboardShortcuts","showKeyboardShortcutsPanel","hideKeyboardShortcutsPanel","openThisPanel","enterKey","leftArrowRightArrow","upArrowDownArrow","escape","questionMark","moveFocusByOneMonth","moveFocustoStartAndEndOfWeek","SingleDatePickerPhrases","Set","isInclusivelyAfterDay","moment","isMoment","aYear","year","aMonth","month","bYear","bMonth","isSameYear","isBeforeDay","placeholder","required","screenReaderInputMessage","showClearDate","showDefaultInputIcon","customInputIcon","block","regular","verticalSpacing","keepFocusOnInput","renderMonthText","orientation","anchorDirection","horizontalMargin","withPortal","withFullScreenPortal","initialVisibleMonth","numberOfMonths","keepOpenOnDateSelect","reopenPickerOnClearDate","isRTL","navPrev","navNext","onPrevMonthClick","onNextMonthClick","onClose","transitionDuration","renderCalendarDay","renderDayContents","enableOutsideDays","isDayBlocked","isOutsideRange","day","add","isDayHighlighted","displayFormat","localeData","longDateFormat","monthFormat","phrases","SingleDatePickerWrapper","onFocusChange","MarginContainer","CalendarContainer","lookingAtCalendar","z","CalendarTitle","DateContainer","setupDateChanged","setState","lookingAtSetup","onSetupDateChanged","teardownDateChanged","lookingAtTeardown","onTeardownDateChanged","earliestDate","max","numberOfDays","state","earliestPossibleSetupDate","earliestPossibleTeardownDate","lastPossibleSetupDate","lastPossibleTeardownDate","blockedDays","daySize","isTablet","isLaptop","onDateChange","isInclusivelyBeforeDay","CalendarPhrases","focused","tight","SuggestionContainer","Suggestion","active","AddressContainer","checkForGoogle","count","google","placesLoaded","setTimeout","loading","shouldFetchSuggestions","getInputProps","suggestions","getSuggestionItemProps","autoFocus","suggestion","TextArea","textarea","LargeTextBox","FormCodes","BarLoadingContainer","LoadingOverlay","message","css","margin","sizeUnit","height","width","color","IconContainer","FlexContainer","LeftContainer","RightContainer","Title","SubTitle","SuccessNotification","faCheckCircle","OrderPageContainer","CenterContentContainer","fullscreen","LeftSideContainer","ContentContainer","CheckoutContainer","MarginAuto","padding","App","handleWindowSizeChange","findSectionBasedOnURL","indexOf","preloadedDataWithConvertedPrices","newData","preloadedData","newSectionCurrentItem","currentItem","resolveIssueFor","code","termsAccepted","changeToSectionAtIndex","removeSelectableItemFromCart","updatedData","categoryIndex","updatedCategory","includedWithBase","onCommentsChanged","newComments","handleSetupAddressChange","setupAddress","removeAddedItemFromCartAtIndex","indexOfClickedItem","updatedSections","updatedSection","itemBeingRemoved","cat","updatedItem","indexOfItemInCategory","getAddedItemsForBuilderSection","newIndex","ignorePush","showNotification","history","isBuilder","leftSideContainer","scrollTo","showSaveNotification","NotificationCenter","addNotification","content","insert","container","animationIn","animationOut","dismiss","duration","showIcon","nextSectionClicked","calculateTotalPrice","calculatePriceFor","reduce","incoming","totalForItems","prev","sect","itemPrice","affectsCategories","some","sectionCat","affectsPrices","prices","relatedItemIndex","foundCategories","additionalSelectedOptions","forEach","compiledName","indexOfItem","isFormValid","hasSelectedHomeSize","valid","earliestNumberOfDays","substr","localStorage","get","versionNumber","submitting","addEventListener","removeEventListener","set","subtotal","tax","ceil","totalPrice","onDateSection","onAddressSection","onCommentsSection","lowerSection","formValidityCheck","checkoutButton","status","tAndC","setupAddressSection","commentsSection","issueResolver","dateSection","breakpoint","Boolean","hostname","match","PackageHelper","getFullHomeFullListPackageItems","getHighLevelPackageItemsFor","getDetailedPackageItemsFor","isGround","returning","CompanyName","Slogan","h4","PackageName","Price","H4","ThemeContainer","ThemeButton","TopPictureArea","BottomStrip","MiniText","grey","BelowButtonContent","StrongAndLarger","NoBulletList","ul","LandingPage","onPackageClicked","route","onNewOrderClicked","onContinueClicked","returningCustomer","newCustomer","faCheck","PackageDescription","h5","PriceBlock","PackageThemePage","calculatePrice","onThemeClicked","homeSize","step","packageDescription","packageName","images","PackageHomeSizePage","onSizeClicked","sizeNumber","sizeName","large","Options","LeftList","PackageReviewPage","calculateBasePrice","upsells","showingError","amountToAdd","loadingOverlay","alternative","MiniH4","UpsellContainer","BelowUpsellsContainer","NextButtonWrapper","PackageUpsellPage","onUpsellSelected","yesOrNo","selectedUpsells","onReviewOrderClicked","rooflinePrice","upsellImage","upsellBenefits","alternativeImage","normalBenefits","names","benefit","faArrowRight","library","faHome","faTree","faShoppingCart","faCalendar","faSnowman","faAward","faLightbulb","faDharmachakra","faChevronUp","faChevronLeft","faChevronRight","faCommentAlt","faMapMarkerAlt","ReactDOM","render","exact","path","component","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.aa23c59b.chunk.js","sourcesContent":["\nconst Style = {\n\tborderRadius: 4,\n\tborderColor: \"#66cc33\",\n\tprimaryGreen: \"#A9ED53\",\n\tprimaryGreenHighlight: \"#5e9f0c\",\n\tdarkGreen: 'rgba(14,117,24,0.988)',\n\ttransparentBlack: \"rgba(0,0,0,0.75)\",\n};\n\nexport default Style;\n","export const Utils = {\n\tformatAsCurrency: (amount) => {\n\t\treturn \"$\" + amount.toFixed(0).replace(/\\d(?=(\\d{3})+\\.)/g, '$&,');\n\t}\n};\n","/**\n * React Facebook Pixel Module\n *\n * @package react-facebook-pixel\n * @author Zain Sajjad \n */\n\n//\nlet initialized = false;\nlet debug = false;\n\n/**\n * Utilities\n */\n\nconst verifyInit = () => {\n\tif (!initialized) {\n\t\tconsole.warn('Pixel not initialized before using call ReactPixel.init with required params');\n\t}\n\treturn initialized;\n};\n\n//\nconst log = (...args) => {\n\tconsole.info(...['[react-facebook-pixel]'].concat(args));\n};\n\n//\nconst defaultOptions = {\n\tautoConfig: true,\n\tdebug: true\n};\n\n//\nexport default {\n\tinit(pixelId, advancedMatching = {}, options = defaultOptions) {\n\t\t/* eslint-disable */\n\t\t!function (f, b, e, v, n, t, s) {\n\t\t\tif (f.fbq) return; n = f.fbq = function () {\n\t\t\t\tn.callMethod ?\n\t\t\t\t\tn.callMethod.apply(n, arguments) : n.queue.push(arguments)\n\t\t\t};\n\t\t\tif (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0';\n\t\t\tn.queue = []; t = b.createElement(e); t.async = !0;\n\t\t\tt.src = v; s = b.getElementsByTagName(e)[0];\n\t\t\ts.parentNode.insertBefore(t, s)\n\t\t}(window, document, 'script',\n\t\t\t'https://connect.facebook.net/en_US/fbevents.js');\n\t\t/* eslint-enable */\n\n\t\tif (!pixelId) {\n\t\t\tconsole.warn('Please insert pixel id for initializing');\n\t\t} else {\n\t\t\tif (options.autoConfig === false) {\n\t\t\t\tfbq('set', 'autoConfig', false, pixelId); // eslint-disable-line no-undef\n\t\t\t}\n\n\t\t\tfbq('init', pixelId, advancedMatching); // eslint-disable-line no-undef\n\n\t\t\tinitialized = true;\n\t\t\tdebug = options.debug;\n\t\t}\n\t},\n\n\tpageView() {\n\t\tif (!verifyInit()) {\n\t\t\treturn;\n\t\t}\n\n\t\tfbq('track', 'PageView'); // eslint-disable-line no-undef\n\n\t\tif (debug) {\n\t\t\tlog('called fbq(\\'track\\', \\'PageView\\');');\n\t\t}\n\t},\n\n\ttrack(title, data) {\n\t\tif (!verifyInit()) {\n\t\t\treturn;\n\t\t}\n\n\t\tfbq('track', title, data); // eslint-disable-line no-undef\n\n\t\tif (debug) {\n\t\t\tlog(`called fbq('track', '${title}');`);\n\n\t\t\tif (data) {\n\t\t\t\tlog('with data', data);\n\t\t\t}\n\t\t}\n\t},\n\n\ttrackCustom(event, data) {\n\t\tif (!verifyInit()) {\n\t\t\treturn;\n\t\t}\n\n\t\tfbq('trackCustom', event, data); // eslint-disable-line no-undef\n\n\t\tif (debug) {\n\t\t\tlog(`called fbq('trackCustom', '${event}');`);\n\n\t\t\tif (data) {\n\t\t\t\tlog('with data', data);\n\t\t\t}\n\t\t}\n\t},\n\n\tfbq(...args) {\n\t\tif (!verifyInit()) {\n\t\t\treturn;\n\t\t}\n\n\t\tfbq(...args); // eslint-disable-line no-undef\n\n\t\tif (debug) {\n\t\t\tlog(`called fbq('${args.slice(0, 2).join('\\', \\'')}')`);\n\n\t\t\tif (args[2]) {\n\t\t\t\tlog('with data', args[2]);\n\t\t\t}\n\t\t}\n\t},\n};\n","import ReactGA from 'react-ga';\nimport ReactFB from \"./ReactFB\";\nconst isAnalyticsAllowed = process.env.NODE_ENV === 'production';\n\nconst Category = {\n\tOrderBuilding: \"Order Building\",\n\tNavigation: \"Navigation\",\n\tCheckout: \"Checkout\"\n};\n\nconst GoogleAnalyticsWrapper = {\n\tinit: () => {\n\t\tif (!isAnalyticsAllowed) {\n\t\t\tconsole.log(\"init google analytics\");\n\t\t\treturn;\n\t\t}\n\n\t\tReactGA.initialize('UA-150294374-1');\n\t\tReactGA.plugin.require('ec');\n\t\twindow.gtag('js', new Date());\n\t\twindow.gtag('config', 'AW-697368105');\n\t},\n\n\n\t// ARGS:\n\t// event: object {\n\t// category: string\n\t// \taction: string\n\t// label: string (optional)\n\t// value: int (optional)\n\t// nonInteraction: bool (optional)\n\t// }\n\tlogEvent: (event) => {\n\t\tif (!isAnalyticsAllowed) {\n\t\t\tconsole.log(\"Log event:\");\n\t\t\tconsole.log(event);\n\t\t\treturn;\n\t\t}\n\n\t\tReactGA.event(event);\n\t},\n\n\t// ARGS:\n\t// pagename: string\n\tlogPageView: (pagename) => {\n\t\tconst pageToLog = pagename || \"/\";\n\n\t\tif (!isAnalyticsAllowed) {\n\t\t\tconsole.log(\"Log pageview:\");\n\t\t\tconsole.log(pageToLog);\n\t\t\treturn;\n\t\t}\n\n\t\tReactGA.pageview(pageToLog);\n\t},\n\n\tlogEcommercePurchase: (orderId, fullAmount) => {\n\t\tif (!isAnalyticsAllowed) {\n\t\t\tconsole.log(\"Log ecommerce:\");\n\t\t\tconsole.log(orderId, fullAmount);\n\t\t\treturn;\n\t\t}\n\n\t\twindow.gtag('event', 'conversion', {\n\t\t\t'send_to': 'AW-697368105/ZHNyCJG577IBEKn8w8wC',\n\t\t\t'value': fullAmount,\n\t\t\t'currency': 'USD',\n\t\t\t'transaction_id': orderId\n\t\t});\n\n\t\tReactGA.plugin.execute('ec', 'addProduct', {\n\t\t\tname: 'Holiday Glow Package 2019',\n\t\t\tprice: fullAmount\n\t\t});\n\n\t\tReactGA.plugin.execute('ec', 'setAction', 'purchase', {\n\t\t\tid: orderId,\n\t\t\trevenue: fullAmount\n\t\t});\n\t},\n};\n\nconst FacebookAnalyticsWrapper = {\n\tinit: () => {\n\t\tif (isAnalyticsAllowed) {\n\t\t\tReactFB.init(\"412704783013592\");\n\t\t}\n\t},\n\n\tlogPageView: () => {\n\t\tif (!isAnalyticsAllowed) {\n\t\t\treturn;\n\t\t}\n\n\t\tReactFB.track('ViewContent');\n\t},\n\n\tlogEvent: (name, data) => {\n\t\tif (!isAnalyticsAllowed) {\n\t\t\treturn;\n\t\t}\n\n\t\tReactFB.track(name, data);\n\t},\n\n\tlogEcommercePurchase: (fullAmount) => {\n\t\tif (!isAnalyticsAllowed) {\n\t\t\treturn;\n\t\t}\n\n\t\tReactFB.track('Purchase', {\n\t\t\tvalue: fullAmount,\n\t\t\tcurrency: 'USD'\n\t\t});\n\t}\n};\n\nexport const Analytics = {\n\tinit: () => {\n\t\tGoogleAnalyticsWrapper.init();\n\t\tFacebookAnalyticsWrapper.init();\n\t\tFacebookAnalyticsWrapper.logPageView();\n\t},\n\n\tlogCurrentURL: () => {\n\t\tGoogleAnalyticsWrapper.logPageView(window.location.pathname + window.location.search);\n\t},\n\n\t// ARGS:\n\t// pagename: string\n\tlogPageView: (pagename) => {\n\t\tGoogleAnalyticsWrapper.logPageView(\"/\" + pagename + window.location.search);\n\t\tFacebookAnalyticsWrapper.logPageView();\n\t},\n\n\t// ARGS:\n\t// name: string\n\tlogPackageStarted: (name) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Start Package\",\n\t\t\tlabel: name\n\t\t});\n\t},\n\n\tlogNewOrderClicked: () => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"New Order\",\n\t\t\tlabel: \"Landing Page\"\n\t\t});\n\t},\n\n\tlogContinueOrderClicked: () => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Continue Order\",\n\t\t\tlabel: \"Landing Page\"\n\t\t});\n\t},\n\n\t// ARGS:\n\t// sectionName: string\n\tlogSectionChange: (sectionName) => {\n\t\tAnalytics.logPageView(sectionName)\n\t},\n\n\t// ARGS:\n\t// sectionName: string\n\tlogSaveButtonPressed: (sectionName) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Save Clicked\",\n\t\t\tlabel: sectionName\n\t\t});\n\t},\n\n\t// ARGS:\n\t// sectionName: string\n\t// quantity: int\n\tlogQuantityEnteredForBuilderSection: (sectionName, quantity) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Builder Quantity Entered\",\n\t\t\tlabel: sectionName + \": \" + quantity\n\t\t});\n\t},\n\n\t// ARGS:\n\t// sectionName: string\n\tlogQuantitySkippedForBuilderSection: (sectionName) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Builder Quantity Skipped\",\n\t\t\tlabel: sectionName\n\t\t});\n\t},\n\n\t// ARGS:\n\t// sectionName: string\n\tlogAddAnotherItemForBuilderSection: (sectionName) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Builder Add Another Item\",\n\t\t\tlabel: sectionName\n\t\t});\n\t},\n\n\t// ARGS:\n\t// sectionName: string\n\t// index: int\n\tlogBuilderItemStartedDesgining: (sectionName, index) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Builder Item Started Designing\",\n\t\t\tlabel: sectionName + \": Row \" + (index + 1)\n\t\t})\n\t},\n\n\t// ARGS:\n\t// categoryName: string\n\t// itemName: string\n\tlogBuilderItemSelected: (categoryName, itemName) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Builder Item Selected\",\n\t\t\tlabel: categoryName + \": \" + itemName\n\t\t});\n\t},\n\n\t// ARGS:\n\t// sectionName: string\n\t// index: int\n\tlogBuilderItemRemovedFromSection: (sectionName, index) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Builder Item Removed\",\n\t\t\tlabel: sectionName + \": Row \" + (index + 1)\n\t\t});\n\t},\n\n\t// ARGS:\n\t// categoryName: string\n\t// itemName: string\n\tlogItemSelected: (categoryName, itemName) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Item Selected\",\n\t\t\tlabel: categoryName + \": \" + itemName\n\t\t});\n\t},\n\n\t// ARGS:\n\t// categoryName: string\n\t// itemName: string\n\t// newQuantity: string\n\tlogQuantityChangedForItem: (categoryName, itemName, newQuantity) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Item Quantity Changed\",\n\t\t\tlabel: itemName + \": \" + newQuantity\n\t\t});\n\t},\n\n\t// ARGS:\n\t// categoryName: string\n\t// itemName: string\n\tlogSelectableItemRemovedFromCart: (categoryName, itemName) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Item Removed From Cart\",\n\t\t\tlabel: categoryName + \": \" + itemName\n\t\t});\n\t},\n\n\t// ARGS:\n\t// itemName: string\n\tlogItemRemovedFromCart: (itemName) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Item Removed From Cart\",\n\t\t\tlabel: itemName\n\t\t});\n\t},\n\n\t// ARGS:\n\t// size: string\n\tlogPackageHomeSizePicked: (size) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Package Home Size Picked\",\n\t\t\tlabel: size\n\t\t});\n\t},\n\n\t// ARGS:\n\t// theme: string\n\tlogPackageThemePicked: (theme) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Package Theme Picked\",\n\t\t\tlabel: theme\n\t\t});\n\t},\n\n\t// ARGS:\n\t// upsell: string\n\tlogPackageUpsellSelected: (upsell) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Package Upsell Selected\",\n\t\t\tlabel: upsell\n\t\t});\n\t},\n\n\t// ARGS:\n\t// isSetupDate: bool\n\t// dateAsString: string\n\tlogDateSelected: (isSetupDate, dateAsString) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.OrderBuilding,\n\t\t\taction: \"Date Selected\",\n\t\t\tlabel: (isSetupDate ? \"Setup: \" : \"Teardown: \") + dateAsString\n\t\t});\n\t},\n\n\t// ARGS:\n\t// isDeposit: bool\n\tlogCheckoutPressed: (isDeposit, fullAmount) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.Checkout,\n\t\t\taction: \"Pay Button Clicked\",\n\t\t\tlabel: isDeposit ? \"Deposit\" : \"Full Amount\"\n\t\t});\n\n\t\tFacebookAnalyticsWrapper.logEvent('InitiateCheckout', {\n\t\t\tvalue: fullAmount,\n\t\t\tcurrency: 'USD'\n\t\t});\n\t},\n\n\tlogCheckoutSubmitted: () => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.Checkout,\n\t\t\taction: \"Order Submitted\",\n\t\t\tnonInteraction: true\n\t\t});\n\t},\n\n\t// ARGS:\n\t// orderId: string -- stripe customer id\n\t// isDeposit: bool\n\t// fullAmount: int -- in dollars\n\tlogCheckoutSuccess: (orderId, isDeposit, fullAmount) => {\n\t\tFacebookAnalyticsWrapper.logEcommercePurchase(fullAmount);\n\t\tGoogleAnalyticsWrapper.logEcommercePurchase(orderId, fullAmount);\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.Checkout,\n\t\t\taction: \"Order Success\",\n\t\t\tlabel: orderId + \": \" + (isDeposit ? \"Deposit\" : \"Full Amount\") + \", $\" + fullAmount,\n\t\t\tnonInteraction: true\n\t\t});\n\n\t},\n\n\t// ARGS:\n\t// reason: string\n\tlogCheckoutFailed: (reason) => {\n\t\tGoogleAnalyticsWrapper.logEvent({\n\t\t\tcategory: Category.Checkout,\n\t\t\taction: \"Order Failed\",\n\t\t\tlabel: reason,\n\t\t\tnonInteraction: true\n\t\t});\n\t}\n};\n","export const ScreenSize = {\n\tphone: 560,\n\ttablet: 800,\n\tlaptop: 1100,\n};\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\nimport {faTimes} from \"@fortawesome/free-solid-svg-icons\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport PropTypes from 'prop-types';\n\nconst Container = styled.div`\n\tcolor: lightgray;\n\tfont-size: 18px;\n\tdisplay: flex;\n\theight: 100%;\n\twidth: 100%;\n\tjustify-content: ${props => props.absolute ? 'flex-end' : 'center'};\n\talign-items: ${props => props.absolute ? 'flex-end' : 'center'};\n\tposition: ${props => props.absolute ? 'absolute' : 'flex'};\n\tright: 0;\n\tpadding-bottom: ${props => props.absolute ? 4 : 0}px;\n\tpadding-right: ${props => props.absolute ? 4 : 0}px;\n\n\t:hover {\n\t\tcolor: black !important;\n\t\tcursor: pointer;\n\t}\n`;\n\nclass RemoveButton extends Component {\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nRemoveButton.propTypes = {\n\tabsolute: PropTypes.bool.isRequired\n};\n\nRemoveButton.defaultProps = {\n\tabsolute: true\n};\n\nexport default RemoveButton;\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\n\nconst Container = styled.div`\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: flex-end;\n\tposition: relative;\n\t\n\t:hover {\n\t\tbackground-color: lightgray;\n\t\t\n\t\tspan {\n\t\t\tcolor: gray;\n\t\t}\n\t}\n`;\n\nclass OrderSummaryLineItem extends Component {\n\tcomponentDidMount() {\n\t\t// console.log(\"MOUNTED\");\n\t}\n\n\tcomponentWillUnmount() {\n\t\t// console.log(\"BYE\");\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState, snapshot) {\n\t\t// console.log(\"UPDATED\");\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.children}\n\t\t\t\n\t\t);\n\t}\n}\n\nOrderSummaryLineItem.propTypes = {};\n\nexport default OrderSummaryLineItem;\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport Style from '../constants/style';\nimport momentPropTypes from 'react-moment-proptypes';\nimport PropTypes from 'prop-types';\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faTimes} from \"@fortawesome/free-solid-svg-icons\";\nimport { Utils } from '../utils/Utils';\nimport {Analytics} from \"../utils/Analytics\";\nimport {ScreenSize} from \"../constants/screensize\";\nimport RemoveButton from \"./RemoveButton\";\nimport OrderSummaryLineItem from \"./OrderSummaryLineItem\";\n\nconst OuterMargin = styled.div`\n\tmargin: 0 30px;\n`;\n\nconst Container = styled.div`\n\tmax-width: 500px;\n\tmargin: auto;\n\tborder-radius: ${Style.borderRadius}px;\n\ttext-align: center;\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\talign-items: center;\n\n\t@media (max-width: ${ScreenSize.tablet}px) {\n\t\tmax-width: initial;\n\t}\n`;\n\nconst InlineContainer = styled.div`\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tpadding: 10px 0;\n`;\n\nconst Header = styled.div`\n\tfont-size: 20px;\n\tfont-weight: 800;\n\ttext-align: ${props => props.left ? 'left' : 'inherit'};\n\n\t@media (max-width: ${ScreenSize.laptop}px) {\n\t\tfont-size: 18px;\n\t}\n\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tfont-size: 16px;\n\t}\n`;\n\nconst InlineContentRight = styled.div`\n\ttext-align: ${props => props.justify ? 'justify' : 'right'};\n\tpadding-left: ${props => props.justify ? 15 : 0}px;\n`;\n\nconst OrderSummaryHeader = styled(Header)`\n\tfont-size: 30px;\n\tpadding-bottom: 20px;\n\n\t@media (max-width: ${ScreenSize.laptop}px) {\n\t\tfont-size: 24px;\n\t}\n\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tfont-size: 20px;\n\t}\n`;\n\nconst SummaryContainer = styled.div`\n\tpadding-top: 20px;\n\tpadding-bottom: 30px;\n`;\n\nconst SectionContainer = styled.div`\n\twidth: 100%;\n`;\n\nconst SectionTitle = styled.div`\n\tborder-top: 1px solid lightgray;\n\tpadding: 10px 0;\n\tmargin-top: 10px;\n\ttext-align: left;\n\tfont-size: larger;\n\tfont-weight: 800;\n\n\t@media (max-width: ${ScreenSize.laptop}px) {\n\t\tfont-size: 18px;\n\t}\n\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tfont-size: 16px;\n\t}\n`;\n\nconst SectionLineItemContent = styled.div`\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: flex-end;\n\twidth: 100%;\n\tpadding: 4px 30px 4px 4px;\n`;\n\nconst SectionLineItemName = styled.div`\n\ttext-align: left;\n\twhite-space: ${props => props.notPre ? '' : 'pre'};\n\n\t@media (max-width: ${ScreenSize.laptop}px) {\n\t\tfont-size: smaller;\n\t}\n`;\n\nconst SectionLineItemPrice = styled.div`\n\tfont-weight: ${props => props.included ? 'inherit' : 600};\n\tfont-style: ${props => props.included ? 'italic' : 'inherit'};\n\ttext-align: right;\n\n\t@media (max-width: ${ScreenSize.laptop}px) {\n\t\tfont-size: smaller;\n\t}\n`;\n\nconst TotalCost = styled.div`\n\tpadding: 20px;\n\tfont-size: 36px;\n\tfont-weight: 800;\n\tcolor: darkgreen;\n`;\n\nconst SendToTop = styled.div`\n\twidth: 100%;\n`;\n\nconst SendToBottom = styled.div`\n\tpadding-top: 30px;\n\twidth: 100%;\n`;\n\nclass OrderSummary extends Component {\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tORDER SUMMARY\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tYour personalized package includes:\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{this.renderBasePrice()}\n\t\t\t\t\t\t\t{this.renderSectionData()}\n\t\t\t\t\t\t\t{this.renderExtraServices()}\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.onLastSection && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\tSetup Address:\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{this.props.address}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tGuaranteed\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tSetup Date:\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{this.props.setupDate.format(\"dddd, MMMM Do, YYYY\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tGuaranteed\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tTeardown Date:\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{this.props.teardownDate.format(\"dddd, MMMM Do, YYYY\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{this.props.onLastSection && (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\tComments:\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{this.props.comments}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{/**/}\n\t\t\t\t\t\t{/*\t
*/}\n\t\t\t\t\t\t{/*\t\tSubtotal:*/}\n\t\t\t\t\t\t{/*\t
*/}\n\t\t\t\t\t\t{/*\t*/}\n\t\t\t\t\t\t{/*\t\t{Utils.formatAsCurrency(this.props.subtotal)}*/}\n\t\t\t\t\t\t{/*\t*/}\n\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t{/**/}\n\t\t\t\t\t\t{/*\t
*/}\n\t\t\t\t\t\t{/*\t\tTax:*/}\n\t\t\t\t\t\t{/*\t
*/}\n\t\t\t\t\t\t{/*\t*/}\n\t\t\t\t\t\t{/*\t\t{Utils.formatAsCurrency(this.props.tax)}*/}\n\t\t\t\t\t\t{/*\t*/}\n\t\t\t\t\t\t{/*
*/}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tWhich brings your total\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\tfor this season to:\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{Utils.formatAsCurrency(this.props.total)}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t);\n\t}\n\n\trenderBasePrice = () => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tHoliday Package\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tBase Price\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{Utils.formatAsCurrency(this.props.data.basePrice)}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t};\n\n\trenderSectionData = () => {\n\t\treturn this.props.data.sections.map((section, index) => {\n\t\t\treturn section.type === \"selector\" || section.type === \"builder\" ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{section.label}\n\t\t\t\t\t\n\t\t\t\t\t{section.type === \"selector\" ? this.renderSelectedItemsFor(section.categories) : this.renderAddedItemsFor(section, index)}\n\t\t\t\t\n\t\t\t) : null;\n\t\t});\n\t};\n\n\trenderSelectedItemsFor = (sectionCategories) => {\n\t\tconst foundCategories = this.props.data.categories.filter(category => sectionCategories.includes(category.type));\n\t\treturn foundCategories.map(category => {\n\t\t\tconst selectedItem = category.items.filter(item => item.selected).shift();\n\n\t\t\treturn selectedItem !== undefined ? (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{selectedItem.name}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{selectedItem.price === 0 ? 'INCLUDED' : '+$' + selectedItem.price}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{selectedItem.removable ? (\n\t\t\t\t\t\t this.removeSelectableItem(selectedItem.name, category.categoryName, category.type)} />\n\t\t\t\t\t) : null}\n\t\t\t\t\n\t\t\t) : null;\n\t\t});\n\t};\n\n\trenderAddedItemsFor = (section, sectionIndex) => {\n\t\tlet remainingAllowance = section.allowance;\n\t\treturn section.addedItems.map((item, itemIndex) => {\n\t\t\tremainingAllowance -= item.price;\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{item.name}\n\t\t\t\t\t\t\n\t\t\t\t\t\t= 0}>\n\t\t\t\t\t\t\t{remainingAllowance >= 0 ? 'INCLUDED' : '+$' + (Math.min(item.price, Math.abs(remainingAllowance)))}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t this.removeAddedItem(item.name, sectionIndex, itemIndex)}>\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t});\n\t};\n\n\tremoveSelectableItem = (itemName, categoryName, categoryType) => {\n\t\tAnalytics.logSelectableItemRemovedFromCart(categoryName, itemName.trim().replace(/\\n/g, \", \"));\n\t\tthis.props.onRemoveClickedForSelectableItem(itemName, categoryType);\n\t};\n\n\tremoveAddedItem = (itemName, sectionIndex, itemIndex) => {\n\t\tAnalytics.logItemRemovedFromCart(itemName.trim().replace(/\\n/g, \", \"));\n\t\tthis.props.onRemoveClickedForSectionItem(sectionIndex, itemIndex);\n\t};\n\n\trenderExtraServices() {\n\t\tconst services = [\n\t\t\t\"Lights and Decorations Setup\",\n\t\t\t\"Lights and Decorations Teardown\",\n\t\t\t\"Automatic On/Off Timer\",\n\t\t\t\"Custom-to-Home Wiring\",\n\t\t\t\"Guaranteed Fix-It Days\",\n\t\t\t\"Extension Cords\",\n\t\t\t\"Light Clips, Hooks, etc\"\n\t\t];\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tAdditional Services\n\t\t\t\t\n\t\t\t\t{services.map(item => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{item}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tINCLUDED\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\n\t\t);\n\t}\n}\n\nOrderSummary.propTypes = {\n\tonLastSection: PropTypes.bool.isRequired,\n\tsetupDate: momentPropTypes.momentObj,\n\tteardownDate: momentPropTypes.momentObj,\n\tsubtotal: PropTypes.number.isRequired,\n\ttax: PropTypes.number.isRequired,\n\ttotal: PropTypes.number.isRequired,\n\tdata: PropTypes.object.isRequired,\n\tcomments: PropTypes.string.isRequired,\n\taddress: PropTypes.string.isRequired,\n\tonRemoveClickedForSectionItem: PropTypes.func.isRequired,\n\tonRemoveClickedForSelectableItem: PropTypes.func.isRequired,\n\tonCommentsChanged: PropTypes.func.isRequired\n};\n\nexport default OrderSummary;\n","const PAYMENT_SERVER_URL = process.env.NODE_ENV === 'production'\n\t? 'https://fetusqgeq9.execute-api.us-east-2.amazonaws.com/default/SeasonalSetterCharge'\n\t: 'http://localhost:5000';\n\nexport default PAYMENT_SERVER_URL;\n\nexport const ImageBaseURL = process.env.NODE_ENV === 'production' ?\n\t'https://seasonalsetterimages.s3.us-east-2.amazonaws.com' :\n\t'http://localhost:4000';\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport Style from \"../constants/style\";\nimport { ImageBaseURL } from '../constants/server';\nimport {ScreenSize} from \"../constants/screensize\";\nimport Select from \"react-select\";\nimport PropTypes from 'prop-types';\n\nconst MarginAutoContainer = styled.div`\n\tmargin: auto;\n\tdisplay: flex;\n\tflex-flow: row wrap;\n\tjustify-content: center;\n`;\n\nconst SelectableItem = styled.div`\n\tborder-radius: ${Style.borderRadius}px;\n\twidth: 250px !important;\n\tmargin: 10px;\n\tposition: relative;\n\ttransition: all 0.15s ease-out;\n\tbackground: ${props => props.selected ? Style.primaryGreen : 'white'};\n\tcolor: ${props => props.selected ? Style.darkGreen : 'black'};\n\tborder: ${props => props.selected ? ('2px solid ' + Style.darkGreen) : '2px solid lightgrey'};\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: ${props => props.small ? 'row' : 'column'};\n\t\n\t@media (max-width: ${ScreenSize.laptop}px) {\n\t\twidth: 200px !important;\n\t\tmargin: 8px;\n\t}\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\twidth: 46vw !important;\n\t\tmargin: 3px;\n\t}\n\t\n\t:hover {\n\t\tcursor: ${props => props.allowSelection ? 'pointer' : ''};\n\t\tbackground: ${props => !props.allowSelection ? '' : (props.selected ? Style.primaryGreen : 'lightgray')};\n\t}\n\t\n\t:active {\n\t\tbackground: ${props => props.allowSelection ? 'gray' : ''};\n\t}\n`;\n\nconst Header = styled.div`\n\ttext-align: ${props => props.small ? 'left' : 'center'};\n\tfont-size: larger;\n\tpadding: ${props => props.small ? '0 15px' : '15px 0'};\n\tfont-weight: 800;\n\tjustify-content: center;\n\talign-items: center;\n\tdisplay: flex;\n\theight: 46px;\n\tuser-select: none;\n\t\n\t@media (max-width: ${ScreenSize.laptop}px) {\n\t\theight: 30px;\n\t\tfont-size: ${props => props.small ? 'smaller' : 'inherit'};\n\t\tpadding: ${props => props.small && '0 0 0 15px'};\n\t}\n`;\n\nconst Image = styled.img`\n\twidth: ${props => props.small ? '46px' : '100%'};\n\theight: ${props => props.small ? 46 : 200}px;\n\tobject-fit: cover;\n\tborder-top-right-radius: ${Style.borderRadius}px;\n\tborder-top-left-radius: ${Style.borderRadius}px;\n\t\n\t@media (max-width: ${ScreenSize.laptop}px) {\n\t\twidth: ${props => props.small ? '46px' : '100%'};\n\t\theight: ${props => props.small ? 46 : 160}px;\n\t}\n`;\n\nconst QuantityContainer = styled.div`\n\twidth: 90%;\n\tmargin: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tpadding-bottom: 20px;\n`;\n\nconst QuantityLabel = styled.div`\n\tflex: 1;\n\tpadding-right: 5px;\n\tuser-select: none;\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tdisplay: none;\n\t}\n`;\n\nconst QtyLabel = styled(QuantityLabel)`\n\tdisplay: none;\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tdisplay: initial;\n\t}\n`;\n\nconst Dropdown = styled(Select)`\n\tflex: 2;\n`;\n\nclass ItemBlocks extends Component {\n\trender() {\n\t\tconst items = this.props.category.items;\n\t\tconst options = items.map(item => {\n\t\t\tlet label = item.name;\n\t\t\tif (item.price > 0) {\n\t\t\t\tlabel += ` (+$${item.price})`\n\t\t\t}\n\t\t\tconst imageBasePath = this.props.imageBasePath || item.imageBasePath || \"\";\n\t\t\treturn {\n\t\t\t\tvalue: item.name,\n\t\t\t\tlabel: label,\n\t\t\t\tselected: item.selected,\n\t\t\t\timage: imageBasePath + item.image,\n\t\t\t\tprice: item.price,\n\t\t\t\tquantity: item.quantity\n\t\t\t}\n\t\t});\n\n\t\tconst isSmall = this.props.category.small || (this.props.category.smallOnMobile && this.props.isMobile) || false;\n\n\t\tconst quantityOptions = [...Array(21).keys()].map (v => ({ value: v, label: v }));\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{options.map((item, index) => (\n\t\t\t\t\t 0)} onClick={() => this.onClick(item, index)}>\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{item.value}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t{this.props.isPartOfQuantityBuilder ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tQuantity:\n\t\t\t\t\t\t\t\tQty:\n\t\t\t\t\t\t\t\t this.onChangeQuantity(item.value, option)} />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t
\n\t\t\t\t))}\n\t\t\t
\n\t\t);\n\t}\n\n\tonClick = (item, index) => {\n\t\tif ((!item.selected && !this.props.isPartOfQuantityBuilder)) {\n\t\t\tthis.props.onChangeSelection(this.props.sectionDataName, this.props.category.categoryName, item.value, item.price, index, item.image);\n\t\t}\n\t};\n\n\tonChangeQuantity = (itemName, selectedOption) => {\n\t\tthis.props.onChangeQuantity(this.props.sectionDataName, this.props.category.type, itemName, selectedOption.value);\n\t};\n}\nItemBlocks.propTypes = {\n\tisMobile: PropTypes.bool.isRequired,\n\tcategory: PropTypes.object.isRequired,\n\tsectionDataName: PropTypes.string.isRequired,\n\tisPartOfQuantityBuilder: PropTypes.bool.isRequired,\n\tonChangeSelection: PropTypes.func.isRequired,\n};\n\nexport default ItemBlocks;\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\nimport {ScreenSize} from \"../constants/screensize\";\n\nconst Container = styled.h2`\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\twidth: 90%;\n\t\tmargin: 20px auto;\n\t\tfont-size: 20px;\n\t}\n`;\n\nclass SectionHeader extends Component {\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.children}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default SectionHeader;\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\nimport {ScreenSize} from \"../constants/screensize\";\n\nconst Container = styled.h3`\n\twidth: 90%;\n\tmargin: 20px auto;\n\ttext-align: center;\n\tfont-weight: 600;\n\t\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tfont-size: 16px;\n\t}\n`;\n\nclass SectionSubHeader extends Component {\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.children}\n\t\t\t\n\t\t);\n\t}\n}\n\nexport default SectionSubHeader;\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport ItemBlocks from \"./ItemBlocks\";\nimport PropTypes from 'prop-types';\nimport SectionHeader from \"./SectionHeader\";\nimport SectionSubHeader from \"./SectionSubHeader\";\n\nconst SectionContainer = styled.div`\n\tborder-bottom: 1px lightgrey solid;\n\tpadding-top: 20px;\n\tpadding-bottom: 20px;\n\t\n\t:last-child {\n\t\tborder-bottom: none;\n\t}\n`;\n\nconst ItemBlockContainer = styled.div`\n padding: 0;\n margin: 0;\n display: flex;\n flex-flow: row wrap;\n`;\n\nclass CategoryContainer extends Component {\n\trender() {\n\t\tconst sectionCategoryTypes = this.props.section.categories || [];\n\t\tconst categoriesToRender = this.props.allCategories.filter(category => {\n\t\t\treturn sectionCategoryTypes.includes(category.type);\n\t\t});\n\n\t\treturn (\n\t\t\t
\n\t\t\t\t{this.renderCategories(categoriesToRender)}\n\t\t\t
\n\t\t);\n\t}\n\n\trenderCategories(categoriesToRender) {\n\t\treturn categoriesToRender.map (category => (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{category.humanTitle}\n\t\t\t\t\t\n\t\t\t\t\t{this.renderSubtitle(category.subtitle)}\n\t\t\t\t\t\n\t\t\t\t\t\t{this.renderItemBlocksFor(categoriesToRender, category)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t)\n\t\t);\n\t}\n\n\trenderSubtitle(subtitle) {\n\t\tif (subtitle) {\n\t\t\treturn {subtitle}\n\t\t}\n\t}\n\n\trenderItemBlocksFor(categoriesToRender, category) {\n\t\tlet imageBasePath = \"\";\n\n\t\tif (category.imagesRelatedTo) {\n\t\t\tconst relatedCategory = categoriesToRender.filter(innerCat => { return innerCat.categoryName === category.imagesRelatedTo })[0] || {};\n\t\t\tconst selectedItem = (relatedCategory.items || []).filter(item => item.selected)[0] || {};\n\t\t\timageBasePath = selectedItem.imageBasePath;\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t);\n\t}\n}\n\nCategoryContainer.propTypes = {\n\tisMobile: PropTypes.bool.isRequired,\n\tsection: PropTypes.object.isRequired,\n\tallCategories: PropTypes.array.isRequired,\n\tonChangeQuantity: PropTypes.func.isRequired,\n\tonChangeSelection: PropTypes.func.isRequired\n};\n\nexport default CategoryContainer;\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport {ScreenSize} from \"../constants/screensize\";\nimport {ImageBaseURL} from \"../constants/server\";\n\nconst Container = styled.div`\n\twidth: 100%;\n\tdisplay: flex;\n\tjustify-content: space-around;\n\talign-items: center;\n\tborder-bottom: 1px solid gray;\n\tflex-direction: row;\n\tbackground: white;\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tflex-direction: column;\n\t}\n`;\n\nconst TextContainer = styled.div`\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: center;\n\talign-items: center;\n`;\n\nconst HeaderLabel = styled.div`\n\tfont-size: 28px;\n\tfont-weight: 800;\n\tmargin-block-start: 0.67em;\n\tmargin-block-end: 0.67em;\n\t\n\t@media (max-width: ${ScreenSize.tablet}px) {\n\t\tfont-size: 18px;\n\t}\n`;\n\nconst Link = styled.a`\n\tposition: absolute;\n\tmax-width: 50px; \n\tleft: 50px;\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tposition: inherit;\n\t}\n`;\n\nconst Logo = styled.img`\n\twidth: 100%;\n`;\n\nexport default class WelcomeHeader extends Component {\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.children}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n","import React, {Component} from 'react';\r\nimport styled from 'styled-components';\r\nimport PropTypes from 'prop-types';\r\nimport Style from \"../constants/style\";\r\nimport WelcomeHeader from \"./WelcomeHeader\";\r\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\r\nimport {ScreenSize} from \"../constants/screensize\";\r\n\r\nconst Container = styled.div`\r\n\twidth: 100vw;\r\n\tfont: inherit;\r\n\tlist-style: none;\r\n\tmargin: 0;\r\n\tpadding: 0;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tjustify-content: space-around;\r\n\talign-items: center;\r\n\tbackground-color: white;\r\n\tborder-bottom: 1px solid gray;\r\n\ttext-align: center;\r\n`;\r\n\r\nconst SectionContainer = styled.div`\r\n\tdisplay: flex;\r\n\tflex-direction: row;\r\n\tjustify-content: space-around;\r\n\talign-items: center;\r\n\twidth: 100%;\r\n\theight: 100px;\r\n\t\r\n\t@media (max-width: ${ScreenSize.phone}px) {\r\n\t\theight: 80px;\r\n\t}\r\n`;\r\n\r\nconst IconWrapper = styled.span`\r\n\tfont-size: 24px;\r\n\tpadding: 5px;\r\n`;\r\n\r\nconst Item = styled.a`\r\n\tuser-select: none;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tbackground-color: ${props => props.selected ? Style.primaryGreen : 'white'};\r\n\tcolor: ${props => props.selected ? Style.darkGreen : 'black'};\r\n\tfont-weight: 800;\r\n\tfont-size: larger;\r\n\tborder-right: 1px solid lightgrey;\r\n\t\r\n\t@media (max-width: ${ScreenSize.laptop}px) {\r\n\t\tfont-size: inherit;\r\n\t}\r\n\t\r\n\t@media (max-width: ${ScreenSize.tablet}px) {\r\n\t\tfont-size: smaller;\r\n\t}\r\n\t\r\n\tspan {\r\n\t\tcolor: ${props => props.visited || props.selected ? Style.darkGreen : 'black'};\r\n\t}\r\n\t\r\n\t:hover, :hover span {\r\n\t\tcolor: ${props => !props.noSelect && !props.noHover && Style.darkGreen};\r\n\t\tbackground-color: ${props => !props.noSelect && !props.noHover && '#80cf1c'};\r\n\t\tcursor: ${props => !props.noSelect && !props.noHover && 'pointer'};\r\n\t}\r\n\t\r\n\t:active, :active span {\r\n\t\tcolor: ${props => !props.noSelect && 'white'};\r\n\t\tbackground-color: ${props => !props.noSelect && Style.primaryGreenHighlight};\r\n\t}\r\n\t\r\n\t:last-child {\r\n\t\tborder-right: none;\r\n\t}\r\n`;\r\n\r\nclass SectionNavigator extends Component {\r\n\tconstructor(props) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.previousButton = React.createRef();\r\n\t\tthis.nextButton = React.createRef();\r\n\t\tthis.twoFromNowButton = React.createRef();\r\n\t}\r\n\r\n\trender() {\r\n\t\tconst sectionElements = this.props.isMobile ? this.getMobileItems() : this.getFullItems();\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tCustomize Your Seasonal Setter Package\r\n\t\t\t\t\r\n\t\t\t\t{sectionElements}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\tgetMobileItems = () => {\r\n\t\tconst previousItem = this.props.selectedSection > 0 ? this.props.sections[this.props.selectedSection - 1] : null;\r\n\t\tconst selectedItem = this.props.sections[this.props.selectedSection];\r\n\t\tconst nextItem = this.props.selectedSection < this.props.sections.length - 1 ? this.props.sections[this.props.selectedSection + 1] : null;\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{previousItem !== null ? (\r\n\t\t\t\t\t {this.previousButton.current.blur(); this.props.onSectionClicked(this.props.selectedSection - 1);}}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{previousItem.label}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t) : null}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{selectedItem.label}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t{nextItem !== null ? (\r\n\t\t\t\t\t {this.nextButton.current.blur(); this.props.onSectionClicked(this.props.selectedSection + 1);}}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{nextItem.label}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t{previousItem === null ? (\r\n\t\t\t\t\t {this.twoFromNowButton.current.blur(); this.props.onSectionClicked(this.props.selectedSection + 2);}}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t{this.props.sections[this.props.selectedSection + 2].label}\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t) : null}\r\n\t\t\t
\r\n\t\t)\r\n\t};\r\n\r\n\tgetFullItems = () => {\r\n\t\tconst list = this.props.sections.map((item, index) => {\r\n\t\t\tconst icon = item.visited ? \"check\" : item.icon;\r\n\t\t\tconst selected = this.props.selectedSection === index;\r\n\t\t\treturn (\r\n\t\t\t\t this.props.onSectionClicked(index)} selected={selected} visited={item.visited}>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{item.label}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{list}\r\n\t\t\t\r\n\t\t)\r\n\t};\r\n}\r\n\r\nSectionNavigator.propTypes = {\r\n\tisMobile: PropTypes.bool.isRequired,\r\n\tsections: PropTypes.array.isRequired,\r\n\tselectedSection: PropTypes.number.isRequired,\r\n\tonSectionClicked: PropTypes.func.isRequired\r\n};\r\n\r\nexport default SectionNavigator;\r\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Style from \"../constants/style\";\nimport {ScreenSize} from \"../constants/screensize\";\n\nconst ButtonContainer = styled.button`\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tborder: 0;\n\tpadding: 0;\n\ttext-decoration: none;\n\tbox-shadow: rgba(0, 0, 0, 0.2) 0 1px 0;\n\tcursor: pointer;\n\tvisibility: visible;\n\tuser-select: none;\n\toutline: none;\n\twidth: 100%;\n\tborder-radius: 25px;\n\tbackground: ${Style.primaryGreen};\n\t\n\t:disabled {\n\t\tbackground: lightgray;\n\t\tcolor: white;\n\t}\n\t\n\t:disabled:hover {\n\t\tcursor: not-allowed;\n\t}\n\t\n\t:not(:disabled):hover {\n\t\tbackground: #80cf1c !important;\n\t}\n\n\t:not(:disabled):active {\n background: ${Style.primaryGreenHighlight} !important;\n color: white !important;\n\t}\n`;\n\nconst ButtonSpan = styled.span`\n\tfont-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\tposition: relative;\n\tdisplay: block;\n\theight: 30px;\n\tfont-weight: bold;\n\tbox-shadow: rgba(255, 255, 255, 0.25) 0 1px 0 inset;\n\tmin-height: 50px !important;\n\tfont-size: 20px !important;\n\tline-height: 50px !important;\n\tborder-radius: 25px;\n\t\n\tcolor: ${props => props.disabled ? 'white' : Style.darkGreen};\n\ttext-shadow: none !important;\n\n\t:not(:disabled):active {\n color: white !important;\n\t}\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tfont-size: 18px !important;\n\t}\n`;\n\nclass Button extends Component {\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{this.props.children}\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\tonClick = () => {\n\t\tif (!this.props.disabled) {\n\t\t\tthis.props.onClick();\n\t\t}\n\t};\n}\n\nButton.propTypes = {\n\tdisabled: PropTypes.bool.isRequired,\n\tonClick: PropTypes.func.isRequired\n};\n\nButton.defaultProps = {\n\tdisabled: false,\n};\n\nexport default Button;\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Button from \"./Button\";\nimport {ScreenSize} from \"../constants/screensize\";\n\nconst Container = styled.div`\n\tbackground-color: white;\n\tborder-top: 1px solid ${props => props.showborder ? 'grey' : 'white'};\n\theight: 100px;\n\tz-index: 500;\n\tposition: fixed;\n\tbottom: 0;\n\twidth: calc(100vw - ${props => props.minusAmount}px);\n\t\n\t@media (max-width: ${ScreenSize.tablet}px) {\n\t\theight: 80px;\n\t\twidth: 100vw;\n\t\tpadding-bottom: 20px;\n\t}\n`;\n\nconst LabelButtonContainer = styled.div`\n\tdisplay: flex;\n\tjustify-content: ${props => props.showSaveButton ? 'space-between' : 'flex-end'};\n\talign-items: center;\n\theight: 100%;\n\twidth: calc(100% - 100px);\n\tmargin: auto;\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tjustify-content: center;\n\t\twidth: 95%;\n\t}\n`;\n\nconst NotMobile = styled.span`\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tdisplay: none;\n\t}\n`;\n\nconst ButtonContainer = styled.div`\n\twidth: ${props => props.small ? 200 : 250}px;\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tmargin-right: ${props => props.small ? 10 : 0}px;\n\t\twidth: ${props => props.small ? 50 : 90}%;\n\t\tmax-width: ${props => props.small ? 100 : 350}px;\n\t}\n`;\n\nclass LowerNavigationSection extends Component {\n\trender() {\n\n\t\tconst compareAmount = window.innerWidth < ScreenSize.laptop ? 350 : 500;\n\t\tconst minusAmount = this.props.isFullscreen ? 0 : Math.min(window.innerWidth * 0.4, compareAmount) + 1;\n\n\t\tconst labelAndButton = (\n\t\t\t\n\t\t\t\t{this.props.showSaveButton &&\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.isLastSection ? null : labelAndButton}\n\t\t\t\n\t\t);\n\t}\n}\n\nLowerNavigationSection.propTypes = {\n\tnextSectionName: PropTypes.string.isRequired,\n\tisLastSection: PropTypes.bool.isRequired,\n\tisFullscreen: PropTypes.bool.isRequired,\n\tshowSaveButton: PropTypes.bool.isRequired,\n\tonSaveClicked: PropTypes.func.isRequired,\n\tonNextClicked: PropTypes.func.isRequired\n};\n\nLowerNavigationSection.defaultProps = {\n\tisFullscreen: false\n};\n\nexport default LowerNavigationSection;\n","const STRIPE_PUBLISHABLE = process.env.NODE_ENV === 'production'\n\t? 'pk_live_F5dyrZbjSBugg5RXw7musGWm'\n\t: 'pk_test_umIDmVXhWC2TcG2MEgsgga0x';\n\nexport default STRIPE_PUBLISHABLE;\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\nimport axios from 'axios';\nimport store from 'store';\nimport './CheckoutButtonStyle.css';\nimport StripeCheckout from 'react-stripe-checkout';\nimport STRIPE_PUBLISHABLE from '../constants/stripe';\nimport PAYMENT_SERVER_URL from '../constants/server';\nimport Style from \"../constants/style\";\nimport PropTypes from 'prop-types';\nimport momentPropTypes from 'react-moment-proptypes';\nimport {Utils} from \"../utils/Utils\";\nimport {Analytics} from \"../utils/Analytics\";\n\nconst Container = styled.div`\n\twidth: 90%;\n\tmargin: auto;\n`;\n\nconst ButtonWrapper = styled.div`\n\twidth: 100%;\n\tmax-width: 400px;\n\tmargin: auto;\n\tdisplay: flex;\n\tflex-direction: column;\n\tjustify-content: space-evenly;\n\theight: 350px;\n\ttext-align: center;\n`;\n\nconst Italic = styled.div`\n\tfont-style: italic;\n\tpadding-top: 5px;\n\tfont-size: larger;\n\tfont-weight: 800;\n`;\n\nconst StripeButton = styled.button`\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tborder: 0;\n\tpadding: 1px;\n\ttext-decoration: none;\n\tbox-shadow: rgba(0, 0, 0, 0.2) 0 1px 0;\n\tcursor: pointer;\n\tvisibility: visible;\n\tuser-select: none;\n\twidth: 100%;\n\tmax-width: 400px;\n\tmargin: auto;\n\n\tborder-radius: 25px;\n\tbackground: ${Style.primaryGreen} !important;\n`;\n\nconst StripeSpan = styled.span`\n\tfont-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\tposition: relative;\n\tpadding: 0 12px;\n\tdisplay: block;\n\theight: 30px;\n\tfont-weight: bold;\n\tbox-shadow: rgba(255, 255, 255, 0.25) 0 1px 0 inset;\n\tmin-height: 50px !important;\n\tfont-size: 20px !important;\n\tline-height: 50px !important;\n\tborder-radius: 25px;\n\tbackground: ${Style.primaryGreen} !important;\n\tcolor: ${Style.darkGreen} !important;\n\ttext-shadow: none !important;\n`;\n\nconst ErrorMessageLabel = styled.div`\n\tfont-size: 30px;\n\tcolor: darkred;\n\ttext-align: center;\n`;\n\nclass CheckoutButton extends Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.tokenId = \"\";\n\t\tthis.amountPaid = 0;\n\t\tthis.isDeposit = false;\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.enabled ? this.renderCheckoutButton() : this.renderErrorMessage()}\n\t\t\t\n\t\t);\n\t}\n\n\trenderCheckoutButton = () => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t Analytics.logCheckoutPressed(true, this.props.fullAmount)}>\n\t\t\t\t\t\tPay Deposit:   {Utils.formatAsCurrency(this.props.deposit)}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tRemaining {Utils.formatAsCurrency(this.props.fullAmount - this.props.deposit)} will be charged\n\t\t\t\t\t\t
\n\t\t\t\t\t\ton {this.props.setupDate.clone().subtract(5, 'd').format(\"MMM Do, YYYY\")}.\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t- OR -\n\t\t\t\t
\n\t\t\t\t\n\t\t\t\t\t Analytics.logCheckoutPressed(false)}>\n\t\t\t\t\t\tPay In\n\t\t\t\t\t\t\tFull:   {Utils.formatAsCurrency(this.props.fullAmount)}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t* We will send an order confirmation email and payment receipt to the email used at checkout.\n\t\t\t
\n\t\t);\n\t};\n\n\trenderErrorMessage = () => {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.invalidReason}\n\t\t\t\n\t\t);\n\t};\n\n\tsubmitPaymentDeposit = (token) => {\n\t\tthis.submitPayment(token, true);\n\t};\n\n\tsubmitPaymentFullAmount = (token) => {\n\t\tthis.submitPayment(token, false);\n\t};\n\n\tsubmitPayment = (token, isDeposit) => {\n\t\tthis.tokenId = token.id;\n\t\tthis.isDeposit = isDeposit;\n\t\tthis.amountPaid = isDeposit ? this.props.deposit : this.props.fullAmount;\n\n\t\tAnalytics.logCheckoutSubmitted();\n\n\t\tconst params = {\n\t\t\tstripeToken: token.id,\n\t\t\tstripeEmail: token.email,\n\t\t\tstripeBillingName: token.card.name,\n\t\t\tstripeBillingAddressStreet: token.card.address_line1,\n\t\t\tstripeBillingAddressCity: token.card.address_city,\n\t\t\tisDeposit: isDeposit,\n\t\t\tisReorder: false,\n\t\t\tisCustom: false,\n\t\t\tisPremadePackage: this.props.isPremadePackage,\n\t\t\toptions: this.props.options\n\t\t};\n\n\t\tthis.props.submittingStatusChanged(true);\n\n\t\taxios.post(PAYMENT_SERVER_URL, params)\n\t\t\t.then(this.successPayment)\n\t\t\t.catch(this.errorPayment);\n\t};\n\n\tsuccessPayment = () => {\n\t\tAnalytics.logCheckoutSuccess(this.tokenId, this.isDeposit, this.props.fullAmount);\n\t\tthis.props.submittingStatusChanged(false);\n\t\tstore.clearAll();\n\t\twindow.location.href = \"https://seasonalsetter.com#thankyou\";\n\t};\n\n\terrorPayment = (error) => {\n\t\tconsole.log(\"Error with payment:\");\n\t\tconsole.log(error);\n\t\tAnalytics.logCheckoutFailed(error);\n\t\tthis.props.submittingStatusChanged(false);\n\t\talert(\"Oops! Your payment didn't go through. Please contact us directly at: peter@seasonalsetter.com\");\n\t};\n}\n\nCheckoutButton.propTypes = {\n\tsubmittingStatusChanged: PropTypes.func.isRequired,\n\toptions: PropTypes.object.isRequired,\n\tsetupDate: momentPropTypes.momentObj,\n\tfullAmount: PropTypes.number.isRequired,\n\tdeposit: PropTypes.number.isRequired,\n\tisPremadePackage: PropTypes.bool.isRequired,\n\tinvalidReason: PropTypes.string.isRequired\n};\n\nCheckoutButton.defaultProps = {\n\tisPremadePackage: false\n};\n\nexport default CheckoutButton;\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport { Terms } from '../constants/terms';\nimport ReactMarkdown from \"react-markdown\";\nimport {ScreenSize} from \"../constants/screensize\";\n\nconst Container = styled.div`\n\twidth: 90%;\n\tmax-width: 800px;\n\tmargin: 50px auto 30px auto;\n`;\n\nconst TermsContainer = styled.div`\n\theight: 320px;\n\toverflow: scroll;\n\tborder: 1px solid grey;\n\tbackground: white;\n\tpadding: 20px;\n\ttext-align: justify;\n\twhite-space: pre-line;\n\t\n\t@media (max-width: ${ScreenSize.tablet}px) {\n\t\tfont-size: smaller;\n\t}\n`;\n\nconst CheckboxContainer = styled.div`\n\tdisplay: flex;\n\tpadding: 40px 0;\n\tfont-size: larger;\n\talign-items: center;\n\t\n\t:hover {\n\t\tcursor: pointer;\n\t}\n\t\n\t@media (max-width: ${ScreenSize.tablet}px) {\n\t\tfont-size: inherit;\n\t}\n`;\n\nconst Input = styled.input`\n\twidth: 30px;\n\ttransform: scale(2);\n\t\n\t@media (max-width: ${ScreenSize.tablet}px) {\n\t\twidth: 60px;\n\t}\n`;\n\nconst Label = styled.div`\n\tpadding-left: 20px;\n\ttext-align: left;\n`;\n\nclass TermsAndConditions extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.inputRef = React.createRef();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t this.props.onCheckChanged(e.target.checked)}/>\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n\n\tonClick = (e) => {\n\t\tthis.props.onCheckChanged(!this.inputRef.current.checked);\n\t\te.stopPropagation();\n\t};\n}\n\nTermsAndConditions.propTypes = {\n\taccepted: PropTypes.bool.isRequired,\n\tonCheckChanged: PropTypes.func.isRequired\n};\n\nTermsAndConditions.defaultProps = {\n\taccepted: false\n};\n\nexport default TermsAndConditions;\n","export const Terms = \"# Terms and Conditions \\n## 1. SCOPE OF WORK.\\n\" +\n\"Scope will be determined by package and options purchased. Client will be referred to as the person purchasing the package. Client’s property (or Recipient's property) shall be decorated using the scope of each package as per purchase. By agreeing to these terms and conditions, the client confirms acceptance of scope of work and all articles within.\\n\" +\n\"## 2. TERM.\\n\" +\n\"The term of this Agreement is for the winter holiday season of 2023 from the date of its execution by Seasonal Setter or until the completion of the work described in any Statement of Work, whichever is later. Specific set-up date will be determined by online calendar at time of purchase.\\n\" +\n\"## 3. PAYMENT.\\n\" +\n\"Client will have the option to pay either 20% of the total cost, or total cost of purchase. Seasonal Setter will charge the remaining balance using the same payment method within 5 calendar days after setup date. It is understood that payment to Seasonal Setter for services rendered shall be made in full as agreed, without any deductions of any kind whatsoever, in conformity with Seasonal Setter’s status as an independent contractor. Payment method will be through debit/credit transaction, unless otherwise specified prior to the time of purchase.\\n\" +\n\"## 4. ACCEPTANCE.\\n\" +\n\"The Decorations, as defined in each Statement of Work, shall be deemed accepted by Client upon completion of the following acceptance test: (a) immediately upon receipt of said Decorations, Client shall promptly, but in any event not more than 5 business days, perform testing of the Decorations to confirm that the Decorations perform in accordance with the documentation or other standards applicable thereto as set forth in the applicable Statement of Work; (b) notification of nonconformities in regards to decorations setup or product functionality to be corrected must before December 15th, 2023. Any such written statement of nonconformities shall provide sufficient detail to enable Seasonal Setter to remedy the failure to conform to the completion criteria contained in the written statement. Unless otherwise agreed to in writing by the parties, Seasonal Setter will redeliver corrected Decorations to Client within a reasonable amount of time after receipt of such statement of nonconformities or by December 15th, 2022. If Client fails to provide a written acceptance or a written statement of nonconformities about corrected decorations within the 5 days, the Deliverables shall be deemed accepted by Client.\\n\" +\n\"## 5. LIMITATION OF LIABILITY.\\n\" +\n\"Seasonal Setters LLC will be liable for any damages caused during the set-up or take-down of equipment (decorations) to the Client’s person or property. Seasonal Setter is also responsible to ensure all decorations that are set-up initially work and are securely fastened properly. Seasonal Setter will be responsible to make sure that any client concerns (such as burnt-out light bulbs) are addressed before December 20th, 2023 (weather permitting). Seasonal Setters LLC is NOT liable for any damages caused by electrical work, including but not limited to; fires, broken light bulb glass, power surges, etc.. Client is responsible for ensuring the electrical system on property is able to handle the electrical load, and has the sole responsibility to make sure it is able to provide proper power. Similarly, Seasonal Setter is not liable for providing any electricity to any equipment set up or provided. Client is fully responsible for any equipment that Seasonal Setter sets up during the duration of rental and/or service contract. Client will be liable for any lost or stolen equipment owned by Seasonal Setter during the duration of rental up until the date of actual teardown of decorations by Seasonal Setter.\\n\" +\n\"## 6. PROPERTY & EQUIPMENT POLICIES\\n\" +\n\"Client may not transfer, sell, or otherwise dispose of any Seasonal Setter equipment without the prior written consent of Seasonal Setter. Client will not alter, modify, add or subtract any form of adhesive, wire, hooks, clips, or any other items to the decorations or lights set up by Seasonal Setter. Client is responsible to notify Seasonal Setter if decorations are unsatisfactory or if they have a concern. This rental gives no title or ownership rights in related property to Client.\\n\" +\n\"## 7. ENTIRE AGREEMENT.\\n\" +\n\"This Agreement sets forth the entire agreement between Client and Seasonal Setter as to its subject matter. None of the terms of this Business Contract shall be amended except in writing signed by both parties unless otherwise communicated and agreed upon in writing.\\n\" +\n\"## 8. FORCE MAJEURE.\\n\" +\n\"Neither Client nor Seasonal Setter shall be liable for failure of, or delay in performing obligations set forth in this Agreement, and neither shall be deemed in breach of its obligations, if such failure or delay is due to natural disasters or any causes reasonably beyond the control of Client or Provider. This Agreement shall be construed in accordance with the laws of the State of OHIO. IN WITNESS WHEREOF the parties have caused this Business Contract to be executed and delivered by their duly authorized representatives.\\n\" +\n\"## 9. CANCELLATION POLICY.\\n\" +\n\"Seasonal Setter reserves the right to cancel any scope of work for a Client. If Seasonal Setter cancels any scope of work, the Client will be reimbursed for the work that was not done. Full cancellations initiated by Seasonal Setter will get a full refund. Reasons include but are not limited to: Safety risk, Order is too far outside of the Columbus Region, Irreconcilable differences, etc. Exclusions to reimbursement may apply if there are damages done to Seasonal Setter property. Client may also initiate a cancellation but could be subject to a restocking, order fee, or other penalties from Seasonal Setter within a reasonable manner.\\n\" +\n\"## 10. USE OF PHOTOGRAPHY.\\n\" +\n\"Client agrees to allow Seasonal Setter to take and use photos of the client's home in regard to showing the display and work that Seasonal Setter has displayed. Any exception of this must be documented in writing by the client and received by Seasonal Setter prior to the installation of the lights.\\n\" +\n\"## 11. LIMITS OF ORDERING.\\n\" +\n\"If the Client is purchasing a package as a gift to another party, referred to as Recipient, Seasonal Setter must be fully informed of this action and must have written permission from Recipient and the Homeowner of the Address being decorated. This must be disclosed at the time of ordering.\";\n","const calendarLabel = 'Calendar';\nconst roleDescription = 'datepicker';\nconst closeDatePicker = 'Close';\nconst focusStartDate = 'Interact with the calendar and add the check-in date for your trip.';\nconst clearDate = 'Clear Date';\nconst clearDates = 'Clear Dates';\nconst jumpToPrevMonth = 'Move backward to switch to the previous month.';\nconst jumpToNextMonth = 'Move forward to switch to the next month.';\nconst keyboardShortcuts = 'Keyboard Shortcuts';\nconst showKeyboardShortcutsPanel = 'Open the keyboard shortcuts panel.';\nconst hideKeyboardShortcutsPanel = 'Close the shortcuts panel.';\nconst openThisPanel = 'Open this panel.';\nconst enterKey = 'Enter key';\nconst leftArrowRightArrow = 'Right and left arrow keys';\nconst upArrowDownArrow = 'up and down arrow keys';\nconst pageUpPageDown = 'page up and page down keys';\nconst homeEnd = 'Home and end keys';\nconst escape = 'Escape key';\nconst questionMark = 'Question mark';\nconst selectFocusedDate = 'Select the date in focus.';\nconst moveFocusByOneDay = 'Move backward (left) and forward (right) by one day.';\nconst moveFocusByOneWeek = 'Move backward (up) and forward (down) by one week.';\nconst moveFocusByOneMonth = 'Switch months.';\nconst moveFocustoStartAndEndOfWeek = 'Go to the first or last day of a week.';\nconst returnFocusToInput = 'Return to the date input field.';\nconst keyboardForwardNavigationInstructions = 'Navigate forward to interact with the calendar and select a date. Press the question mark key to get the keyboard shortcuts for changing dates.';\nconst keyboardBackwardNavigationInstructions = 'Navigate backward to interact with the calendar and select a date. Press the question mark key to get the keyboard shortcuts for changing dates.';\n\nconst chooseAvailableStartDate = ({ date }) => `Choose ${date} as your check-in date. It’s available.`;\nconst chooseAvailableEndDate = ({ date }) => `Choose ${date} as your check-out date. It’s available.`;\nconst chooseAvailableDate = ({ date }) => date;\nconst dateIsUnavailable = ({ date }) => `Not available. ${date}`;\nconst dateIsSelected = ({ date }) => `Selected. ${date}`;\nconst dateIsSelectedAsStartDate = ({ date }) => `Selected as start date. ${date}`;\nconst dateIsSelectedAsEndDate = ({ date }) => `Selected as end date. ${date}`;\n\nexport default {\n\tcalendarLabel,\n\troleDescription,\n\tcloseDatePicker,\n\tfocusStartDate,\n\tclearDate,\n\tclearDates,\n\tjumpToPrevMonth,\n\tjumpToNextMonth,\n\tkeyboardShortcuts,\n\tshowKeyboardShortcutsPanel,\n\thideKeyboardShortcutsPanel,\n\topenThisPanel,\n\tenterKey,\n\tleftArrowRightArrow,\n\tupArrowDownArrow,\n\tpageUpPageDown,\n\thomeEnd,\n\tescape,\n\tquestionMark,\n\tselectFocusedDate,\n\tmoveFocusByOneDay,\n\tmoveFocusByOneWeek,\n\tmoveFocusByOneMonth,\n\tmoveFocustoStartAndEndOfWeek,\n\treturnFocusToInput,\n\tkeyboardForwardNavigationInstructions,\n\tkeyboardBackwardNavigationInstructions,\n\n\tchooseAvailableStartDate,\n\tchooseAvailableEndDate,\n\tdateIsUnavailable,\n\tdateIsSelected,\n\tdateIsSelectedAsStartDate,\n\tdateIsSelectedAsEndDate,\n};\n\nexport const DateRangePickerPhrases = {\n\tcalendarLabel,\n\troleDescription,\n\tcloseDatePicker,\n\tclearDates,\n\tfocusStartDate,\n\tjumpToPrevMonth,\n\tjumpToNextMonth,\n\tkeyboardShortcuts,\n\tshowKeyboardShortcutsPanel,\n\thideKeyboardShortcutsPanel,\n\topenThisPanel,\n\tenterKey,\n\tleftArrowRightArrow,\n\tupArrowDownArrow,\n\tpageUpPageDown,\n\thomeEnd,\n\tescape,\n\tquestionMark,\n\tselectFocusedDate,\n\tmoveFocusByOneDay,\n\tmoveFocusByOneWeek,\n\tmoveFocusByOneMonth,\n\tmoveFocustoStartAndEndOfWeek,\n\treturnFocusToInput,\n\tkeyboardForwardNavigationInstructions,\n\tkeyboardBackwardNavigationInstructions,\n\tchooseAvailableStartDate,\n\tchooseAvailableEndDate,\n\tdateIsUnavailable,\n\tdateIsSelected,\n\tdateIsSelectedAsStartDate,\n\tdateIsSelectedAsEndDate,\n};\n\nexport const DateRangePickerInputPhrases = {\n\tfocusStartDate,\n\tclearDates,\n\tkeyboardForwardNavigationInstructions,\n\tkeyboardBackwardNavigationInstructions,\n};\n\nexport const SingleDatePickerPhrases = {\n\tcalendarLabel,\n\troleDescription,\n\tcloseDatePicker,\n\tclearDate,\n\tjumpToPrevMonth,\n\tjumpToNextMonth,\n\tkeyboardShortcuts,\n\tshowKeyboardShortcutsPanel,\n\thideKeyboardShortcutsPanel,\n\topenThisPanel,\n\tenterKey,\n\tleftArrowRightArrow,\n\tupArrowDownArrow,\n\tpageUpPageDown,\n\thomeEnd,\n\tescape,\n\tquestionMark,\n\tselectFocusedDate,\n\tmoveFocusByOneDay,\n\tmoveFocusByOneWeek,\n\tmoveFocusByOneMonth,\n\tmoveFocustoStartAndEndOfWeek,\n\treturnFocusToInput,\n\tkeyboardForwardNavigationInstructions,\n\tkeyboardBackwardNavigationInstructions,\n\tchooseAvailableDate,\n\tdateIsUnavailable,\n\tdateIsSelected,\n};\n\nexport const SingleDatePickerInputPhrases = {\n\tclearDate,\n\tkeyboardForwardNavigationInstructions,\n\tkeyboardBackwardNavigationInstructions,\n};\n\nexport const DayPickerPhrases = {\n\tcalendarLabel,\n\troleDescription,\n\tjumpToPrevMonth,\n\tjumpToNextMonth,\n\tkeyboardShortcuts,\n\tshowKeyboardShortcutsPanel,\n\thideKeyboardShortcutsPanel,\n\topenThisPanel,\n\tenterKey,\n\tleftArrowRightArrow,\n\tupArrowDownArrow,\n\tpageUpPageDown,\n\thomeEnd,\n\tescape,\n\tquestionMark,\n\tselectFocusedDate,\n\tmoveFocusByOneDay,\n\tmoveFocusByOneWeek,\n\tmoveFocusByOneMonth,\n\tmoveFocustoStartAndEndOfWeek,\n\treturnFocusToInput,\n\tchooseAvailableStartDate,\n\tchooseAvailableEndDate,\n\tchooseAvailableDate,\n\tdateIsUnavailable,\n\tdateIsSelected,\n\tdateIsSelectedAsStartDate,\n\tdateIsSelectedAsEndDate,\n};\n\nexport const DayPickerKeyboardShortcutsPhrases = {\n\tkeyboardShortcuts,\n\tshowKeyboardShortcutsPanel,\n\thideKeyboardShortcutsPanel,\n\topenThisPanel,\n\tenterKey,\n\tleftArrowRightArrow,\n\tupArrowDownArrow,\n\tpageUpPageDown,\n\thomeEnd,\n\tescape,\n\tquestionMark,\n\tselectFocusedDate,\n\tmoveFocusByOneDay,\n\tmoveFocusByOneWeek,\n\tmoveFocusByOneMonth,\n\tmoveFocustoStartAndEndOfWeek,\n\treturnFocusToInput,\n};\n\nexport const DayPickerNavigationPhrases = {\n\tjumpToPrevMonth,\n\tjumpToNextMonth,\n};\n\nexport const CalendarDayPhrases = {\n\tchooseAvailableDate,\n\tdateIsUnavailable,\n\tdateIsSelected,\n\tdateIsSelectedAsStartDate,\n\tdateIsSelectedAsEndDate,\n};","export const DISPLAY_FORMAT = 'L';\nexport const ISO_FORMAT = 'YYYY-MM-DD';\nexport const ISO_MONTH_FORMAT = 'YYYY-MM'; // TODO delete this line of dead code on next breaking change\n\nexport const START_DATE = 'startDate';\nexport const END_DATE = 'endDate';\n\nexport const HORIZONTAL_ORIENTATION = 'horizontal';\nexport const VERTICAL_ORIENTATION = 'vertical';\nexport const VERTICAL_SCROLLABLE = 'verticalScrollable';\n\nexport const ICON_BEFORE_POSITION = 'before';\nexport const ICON_AFTER_POSITION = 'after';\n\nexport const INFO_POSITION_TOP = 'top';\nexport const INFO_POSITION_BOTTOM = 'bottom';\nexport const INFO_POSITION_BEFORE = 'before';\nexport const INFO_POSITION_AFTER = 'after';\n\nexport const ANCHOR_LEFT = 'left';\nexport const ANCHOR_RIGHT = 'right';\n\nexport const OPEN_DOWN = 'down';\nexport const OPEN_UP = 'up';\n\nexport const DAY_SIZE = 39;\nexport const BLOCKED_MODIFIER = 'blocked';\nexport const WEEKDAYS = [0, 1, 2, 3, 4, 5, 6];\n\nexport const FANG_WIDTH_PX = 20;\nexport const FANG_HEIGHT_PX = 10;\nexport const DEFAULT_VERTICAL_SPACING = 22;\n\nexport const MODIFIER_KEY_NAMES = new Set(['Shift', 'Control', 'Alt', 'Meta']);","import moment from 'moment';\n\nfunction isBeforeDay(a, b) {\n\tif (!moment.isMoment(a) || !moment.isMoment(b)) return false;\n\n\tconst aYear = a.year();\n\tconst aMonth = a.month();\n\n\tconst bYear = b.year();\n\tconst bMonth = b.month();\n\n\tconst isSameYear = aYear === bYear;\n\tconst isSameMonth = aMonth === bMonth;\n\n\tif (isSameYear && isSameMonth) return a.date() < b.date();\n\tif (isSameYear) return aMonth < bMonth;\n\treturn aYear < bYear;\n}\n\nexport default function isInclusivelyAfterDay(a, b) {\n\tif (!moment.isMoment(a) || !moment.isMoment(b)) return false;\n\treturn !isBeforeDay(a, b);\n}\n","import React from 'react';\nimport moment from 'moment';\nimport omit from 'lodash/omit';\n\nimport { SingleDatePicker } from 'react-dates';\n\nimport { SingleDatePickerPhrases } from './calendarPhrases';\nimport { SingleDatePickerShape } from 'react-dates';\nimport { HORIZONTAL_ORIENTATION, ANCHOR_LEFT } from './calendarConstants';\nimport isInclusivelyAfterDay from './calendarInclusive';\n\nconst propTypes = {\n\t...omit(SingleDatePickerShape, [\n\t\t'date',\n\t\t'onDateChange',\n\t\t'focused',\n\t\t'onFocusChange',\n\t]),\n};\n\nconst defaultProps = {\n\t// input related props\n\tid: 'date',\n\tplaceholder: 'Date',\n\tdisabled: true,\n\trequired: false,\n\tscreenReaderInputMessage: '',\n\tshowClearDate: false,\n\tshowDefaultInputIcon: false,\n\tcustomInputIcon: null,\n\tblock: false,\n\tsmall: false,\n\tregular: false,\n\tverticalSpacing: undefined,\n\tkeepFocusOnInput: false,\n\n\t// calendar presentation and interaction related props\n\trenderMonthText: null,\n\torientation: HORIZONTAL_ORIENTATION,\n\tanchorDirection: ANCHOR_LEFT,\n\thorizontalMargin: 0,\n\twithPortal: false,\n\twithFullScreenPortal: false,\n\tinitialVisibleMonth: null,\n\tnumberOfMonths: 1,\n\tkeepOpenOnDateSelect: false,\n\treopenPickerOnClearDate: false,\n\thideKeyboardShortcutsPanel: true,\n\tisRTL: false,\n\n\t// navigation related props\n\tnavPrev: null,\n\tnavNext: null,\n\tonPrevMonthClick() {},\n\tonNextMonthClick() {},\n\tonClose() {},\n\ttransitionDuration: 0,\n\n\t// day presentation and interaction related props\n\trenderCalendarDay: undefined,\n\trenderDayContents: null,\n\tenableOutsideDays: false,\n\tisDayBlocked: () => false,\n\tisOutsideRange: day => !isInclusivelyAfterDay(day, moment().add(7, 'd')),\n\tisDayHighlighted: () => {},\n\n\t// internationalization props\n\tdisplayFormat: () => moment.localeData().longDateFormat('LL'),\n\tmonthFormat: 'MMMM YYYY',\n\tphrases: SingleDatePickerPhrases,\n};\n\nclass SingleDatePickerWrapper extends React.Component {\n\trender() {\n\t\treturn (\n\t\t\t {}}\n\t\t\t/>\n\t\t);\n\t}\n}\n\nSingleDatePickerWrapper.propTypes = propTypes;\nSingleDatePickerWrapper.defaultProps = defaultProps;\n\nexport default SingleDatePickerWrapper;\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport moment from \"moment\";\nimport SingleDatePickerWrapper from \"./Calendar/SingleDatePickerWrapper\";\nimport CalendarPhrases from \"./Calendar/calendarPhrases\";\nimport { isInclusivelyAfterDay, isInclusivelyBeforeDay } from 'react-dates';\nimport momentPropTypes from 'react-moment-proptypes';\nimport Style from \"../constants/style\";\nimport {Analytics} from \"../utils/Analytics\";\nimport {ScreenSize} from \"../constants/screensize\";\nimport Button from \"./Button\";\nimport SectionHeader from \"./SectionHeader\";\nimport SectionSubHeader from \"./SectionSubHeader\";\n\n\nconst MarginContainer = styled.div`\n\tpadding-top: 20px;\n\tpadding-bottom: 40px;\n\ttext-align: center;\n\tmax-width: 900px;\n\tmargin: auto;\n\n\t:last-child {\n\t\tborder-bottom: none;\n\t}\n\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tpadding-bottom: 120px;\n\t}\n`;\n\nconst Container = styled.div`\n\tmax-width: 700px;\n\tpadding-top: 30px;\n\tdisplay: flex;\n\tjustify-content: space-around;\n\talign-items: center;\n\tmargin: auto;\n\tflex-direction: row;\n\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tflex-direction: column;\n\t}\n`;\n\nconst CalendarContainer = styled.div`\n\twidth: 318px;\n\theight: ${props => props.lookingAtCalendar ? '480' : '200'}px;\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\ttext-align: center;\n\tz-index: ${props => props.z};\n`;\n\nconst CalendarTitle = styled.div`\n\tfont-size: 24px;\n\tpadding-bottom: 30px;\n\tcolor: ${Style.darkGreen};\n\n\t@media (min-width: ${ScreenSize.phone+1}px) and (max-width: ${ScreenSize.laptop}px) {\n\t\tfont-size: 20px;\n\t}\n\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tpadding-bottom: 10px;\n\t}\n`;\n\nclass DateContainer extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst earliestDate = moment.max([moment().add(props.numberOfDays, 'd'), moment('2023-11-01')]);\n\n\t\tthis.state = {\n\t\t\tearliestPossibleSetupDate: earliestDate,\n\t\t\tearliestPossibleTeardownDate: moment('2024-01-03'),\n\t\t\tlastPossibleSetupDate: moment('2023-12-18'),\n\t\t\tlastPossibleTeardownDate: moment('2024-01-31'),\n\t\t\tlookingAtSetup: false,\n\t\t\tlookingAtTeardown: false,\n\t\t\tblockedDays: [\n\t\t\t\tmoment('2023-12-16').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-12-15').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-12-08').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-12-01').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-11-24').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-11-23').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-11-03').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-11-10').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-11-17').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-01-20').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-11-21').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2023-11-18').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-08').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-07').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-09').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-10').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-11').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-12').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-13').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-14').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-15').format('YYYY-MM-DD'),\n\t\t\t\tmoment('2024-01-17').format('YYYY-MM-DD'),\n\t\t\t]\n\t\t}\n\t}\n\n\tsetupDateChanged = (date) => {\n\t\tconst dateAsString = date.format('YYYY-MM-DD');\n\t\tAnalytics.logDateSelected(true, dateAsString);\n\t\tthis.setState({\n\t\t\tlookingAtSetup: false\n\t\t});\n\t\tthis.props.onSetupDateChanged(date);\n\t};\n\n\tteardownDateChanged = (date) => {\n\t\tconst dateAsString = date.format('YYYY-MM-DD');\n\t\tAnalytics.logDateSelected(false, dateAsString);\n\t\tthis.setState({\n\t\t\tlookingAtTeardown: false\n\t\t});\n\t\tthis.props.onTeardownDateChanged(date);\n\t};\n\n\trender() {\n\t\tconst daySize = this.props.isTablet || this.props.isLaptop ? 30 : 39;\n\n\t\treturn (\n\t\t\t\n\n\t\t\t\t\n\t\t\t\t\tWhen would you like us to come out?\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tChoose the setup and teardown date. It is possible we will come out prior to selected date.\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tGuaranteed Setup Date:\n\t\t\t\t\t\t this.state.blockedDays.includes(day.format('YYYY-MM-DD'))}\n\t\t\t\t\t\t\tisDayHighlighted={function noRefCheck() {}}\n\t\t\t\t\t\t\tonNextMonthClick={function noRefCheck() {}}\n\t\t\t\t\t\t\tonPrevMonthClick={function noRefCheck() {}}\n\t\t\t\t\t\t\tonDateChange={this.setupDateChanged}\n\t\t\t\t\t\t\tisOutsideRange={day => !isInclusivelyAfterDay(day, this.state.earliestPossibleSetupDate) || !isInclusivelyBeforeDay(day, this.state.lastPossibleSetupDate)}\n\t\t\t\t\t\t\tphrases={CalendarPhrases}\n\t\t\t\t\t\t\tplaceholder=\"Start Date\"\n\t\t\t\t\t\t\tdaySize={daySize}\n\t\t\t\t\t\t\tfocused={this.props.isMobile ? this.state.lookingAtSetup : true}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{this.props.isMobile && !this.state.lookingAtSetup ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tGuaranteed Teardown Date:\n\t\t\t\t\t\t this.state.blockedDays.includes(day.format('YYYY-MM-DD'))}\n\t\t\t\t\t\t\tisDayHighlighted={function noRefCheck() {}}\n\t\t\t\t\t\t\tonNextMonthClick={function noRefCheck() {}}\n\t\t\t\t\t\t\tonPrevMonthClick={function noRefCheck() {}}\n\t\t\t\t\t\t\tonDateChange={this.teardownDateChanged}\n\t\t\t\t\t\t\tisOutsideRange={day => !isInclusivelyAfterDay(day, this.state.earliestPossibleTeardownDate) || !isInclusivelyBeforeDay(day, this.state.lastPossibleTeardownDate)}\n\t\t\t\t\t\t\tphrases={CalendarPhrases}\n\t\t\t\t\t\t\tplaceholder=\"Teardown Date\"\n\t\t\t\t\t\t\tdaySize={daySize}\n\t\t\t\t\t\t\tfocused={this.props.isMobile ? this.state.lookingAtTeardown : true}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{this.props.isMobile && !this.state.lookingAtTeardown ? (\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tWe do not need you to be present/home during setup or teardown, but feel free to choose a date that works best for you.\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n\nDateContainer.propTypes = {\n\tnumberOfDays: PropTypes.number.isRequired,\n\tisMobile: PropTypes.bool.isRequired,\n\tisTablet: PropTypes.bool.isRequired,\n\tisLaptop: PropTypes.bool.isRequired,\n\tsetupDate: momentPropTypes.momentObj,\n\tteardownDate: momentPropTypes.momentObj,\n\tonSetupDateChanged: PropTypes.func.isRequired,\n\tonTeardownDateChanged: PropTypes.func.isRequired\n};\n\nexport default DateContainer;\n","import React, {Component} from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport PlacesAutocomplete from 'react-places-autocomplete';\nimport Style from \"../constants/style\";\nimport SectionHeader from \"./SectionHeader\";\nimport SectionSubHeader from \"./SectionSubHeader\";\nimport {ScreenSize} from \"../constants/screensize\";\n\nconst Container = styled.div`\n\twidth: 90%;\n\tmax-width: 700px;\n\tmargin: 0 auto ${props => props.tight ? 100 : 400}px auto;\n\tpadding-top: 20px;\n\ttext-align: center;\n`;\n\nconst Input = styled.input`\n\tmargin-top: 40px;\n\tborder: 2px solid grey;\n\tdisplay: block;\n\twidth: calc(100% - 33px);\n\tpadding: 16px;\n\tfont-size: 24px;\n\tborder-radius: ${Style.borderRadius}px;\n\toutline: none;\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tfont-size: 18px;\n\t}\n`;\n\nconst SuggestionContainer = styled.div`\n\twidth: 100%;\n\tmargin-top: 10px;\n\ttext-align: left;\n`;\n\nconst Suggestion = styled.div`\n\twidth: calc(100% - 33px);\n\tpadding: 8px 16px;\n\tbackground: ${props => props.active ? Style.primaryGreen : 'white'};\n\tcursor: ${props => props.active ? 'pointer' : 'initial'};\n\tfont-weight: ${props => props.active ? 600 : 400};\n\tfont-size: 20px;\n\tborder-bottom: 1px solid grey;\n\t\n\t:last-child {\n\t\tborder-bottom: none;\n\t}\n\t\n\t@media (max-width: ${ScreenSize.phone}px) {\n\t\tfont-size: 16px;\n\t}\n`;\n\nclass AddressContainer extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tloading: false,\n\t\t\tplacesLoaded: false\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tsetTimeout(() => {\n\t\t\tthis.checkForGoogle(0);\n\t\t}, 10);\n\t}\n\n\tcheckForGoogle = (count) => {\n\t\tif (window.google) {\n\t\t\tthis.setState({placesLoaded: true});\n\t\t} else if (count < 100) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.checkForGoogle(count + 1);\n\t\t\t}, 100);\n\t\t}\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\tWhat address are we setting this up at?\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\tWe just want to show up to the right place. It might be that you're ordering for someone else, possibly as a gift, so we have to ask to be sure.\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\tNote that this does not have to be the same as the billing address.\n\t\t\t\t
\n\t\t\t\t{this.state.placesLoaded ?\n\t\t\t\t\t 1}\n\t\t\t\t\t>\n\t\t\t\t\t\t{({ getInputProps, suggestions, getSuggestionItemProps, loading }) => (\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{loading &&
Loading...
}\n\t\t\t\t\t\t\t\t\t{suggestions.map(suggestion => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t{suggestion.description}\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t)}\n\t\t\t\t\t :\n\t\t\t\t\t this.props.onChange(e.target.value)} placeholder={'Type your address'} />\n\t\t\t\t}\n\t\t\t
\n\t\t);\n\t}\n}\n\nAddressContainer.propTypes = {\n\tvalue: PropTypes.string.isRequired,\n\tautoFocus: PropTypes.bool.isRequired,\n\ttight: PropTypes.bool.isRequired,\n\tonChange: PropTypes.func.isRequired\n};\n\nAddressContainer.defaultProps = {\n\ttight: false,\n\tautoFocus: true\n};\n\nexport default AddressContainer;\n","import React, { Component } from 'react';\nimport styled from 'styled-components';\nimport PropTypes from 'prop-types';\nimport Style from \"../constants/style\";\nimport SectionHeader from \"./SectionHeader\";\nimport SectionSubHeader from \"./SectionSubHeader\";\n\nconst Container = styled.div`\n\twidth: 100%;\n\ttext-align: center;\n\tmargin: 0 auto ${props => props.tight ? 100 : 400}px auto;\n\tmax-width: 800px;\n\tpadding-top: 20px;\n`;\n\nconst TextArea = styled.textarea`\n\tborder-radius: ${Style.borderRadius}px;\n\twidth: 90%;\n max-width: calc(100% - 64px) !important;\n height: 120px;\n border: 2px solid grey;\n padding: 16px;\n font-family: inherit;\n font-size: larger;\n line-height: inherit;\n`;\n\nclass LargeTextBox extends Component {\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.title}\n\t\t\t\t{this.props.subtitle}\n\t\t\t\t