├── Badge
└── Badge.tsx
├── ClickToReveal
└── ClickToReveal.tsx
├── DateSelector
└── Components
│ └── DateSelector
│ └── DateSelector.tsx
├── Divider
└── Divider.tsx
├── Expandable
├── Expandable.tsx
├── formats
│ ├── DisplayDefault
│ │ └── DisplayDefault.tsx
│ ├── DisplayLimitLines
│ │ └── DisplayLimitLines.tsx
│ ├── DisplayLimitTable
│ │ └── DisplayLimitTable.tsx
│ └── DisplayLimitText
│ │ └── DisplayLimitText.tsx
└── withExpandableBody
│ ├── hooks
│ └── useExpandContentTransition.ts
│ └── index.tsx
├── Flexbox
├── Components
│ ├── Col.tsx
│ ├── Grid.tsx
│ └── Row.tsx
├── Layouts
│ └── TwoArea.tsx
├── classNames.ts
└── createProps.ts
├── Link
└── Link.tsx
├── LoadingSpinner
└── LoadingSpinner.tsx
├── Mobile
└── SideNavMenu
│ ├── InPageNav
│ └── InPageNav.tsx
│ └── SideNavMenu.tsx
├── NPS
├── NPSSurvey.tsx
└── NPSSurveyModal
│ ├── ConfirmitURLBuilder
│ └── ConfirmitURLBuilder.ts
│ ├── NPSSurveyModal.tsx
│ └── translations
│ ├── en.ts
│ └── fr.ts
├── Navigation
├── Navigation
│ ├── Header
│ │ ├── Header.tsx
│ │ └── Title
│ │ │ └── Title.tsx
│ ├── ItemLink
│ │ └── ItemLink.tsx
│ ├── LinkTitle
│ │ └── LinkTitle.tsx
│ └── Navigation.tsx
└── SyncedNav
│ ├── ItemLink
│ └── ItemLink.tsx
│ ├── SyncedNav.tsx
│ └── utils
│ └── dataFormatting.ts
├── PercentageBar
└── PercentageBar.tsx
├── README.md
├── Screenshot.png
├── SelectableCards
├── SelectableCards.tsx
└── components
│ ├── SelectableCard
│ └── index.tsx
│ └── SelectableItem
│ └── index.tsx
├── StepIndicator
├── Step.tsx
└── StepIndicator.tsx
├── StoreStatusMessage
└── StoreStatusMessage.tsx
├── StyledTable
└── StyledTable.tsx
├── SuccessConfirmation
├── SuccessBody
│ └── SuccessBody.tsx
├── SuccessConfirmation.tsx
└── SuccessTitle
│ └── SuccessTitle.tsx
├── SvgIcons
├── Android
│ └── Android.tsx
├── Apple
│ └── Apple.tsx
├── ArrowUp
│ └── ArrowUp.tsx
├── AtoZ
│ └── AtoZ.tsx
├── Back
│ └── Back.tsx
├── BestBuyLogo
│ └── BestBuyLogo.tsx
├── BestBuyLogoWhite
│ └── BestBuyLogoWhite.tsx
├── Blog
│ └── Blog.tsx
├── Bookmark
│ └── Bookmark.tsx
├── Car
│ └── Car.tsx
├── Caret
│ └── Caret.tsx
├── Cart
│ └── Cart.tsx
├── CartEmpty
│ └── CartEmpty.tsx
├── CheckMarkAnimated
│ └── CheckmarkAnimated.tsx
├── Checkmark
│ └── Checkmark.tsx
├── CheckmarkLogo
│ └── CheckmarkLogo.tsx
├── ChevronDown
│ └── ChevronDown.tsx
├── ChevronLeft
│ └── ChevronLeft.tsx
├── ChevronRight
│ └── ChevronRight.tsx
├── ChevronUp
│ └── ChevronUp.tsx
├── Clear
│ └── Clear.tsx
├── Close
│ └── Close.tsx
├── DeliveryIcon
│ └── DeliveryIcon.tsx
├── Email
│ └── Email.tsx
├── FeaturedDeals
│ └── FeaturedDeals.tsx
├── FeedbackStarEmpty
│ └── FeedbackStarEmpty.tsx
├── FeedbackStarFull
│ └── FeedbackStarFull.tsx
├── FeedbackTextBubbleWarning
│ └── FeedbackTextBubbleWarning.tsx
├── Filter
│ └── Filter.tsx
├── GeekSquad
│ ├── GeekSquad.tsx
│ └── GeekSquadOrange.tsx
├── HaulAway
│ └── HaulAway.tsx
├── Info
│ └── Info.tsx
├── LatestAndGreatest
│ └── index.tsx
├── LocationFilled
│ └── LocationFilled.tsx
├── LowestPrice
│ └── LowestPrice.tsx
├── MarketplaceLogo
│ └── MarketplaceLogo.tsx
├── Menu
│ └── Menu.tsx
├── MinusCircle
│ └── MinusCircle.tsx
├── Monitor
│ └── Monitor.tsx
├── NotRecommended
│ └── NotRecommended.tsx
├── Offer
│ └── Offer.tsx
├── Phone
│ └── Phone.tsx
├── PlusCircle
│ └── PlusCircle.tsx
├── ProductPlaceholder
│ └── ProductPlaceholder.tsx
├── QuickStorePickup
│ └── QuickStorePickup.tsx
├── Recommended
│ └── Recommended.tsx
├── Search
│ └── Search.tsx
├── Social
│ ├── Facebook.tsx
│ ├── Instagram.tsx
│ ├── Linkedin.tsx
│ ├── Pinterest.tsx
│ ├── Twitter.tsx
│ └── Youtube.tsx
├── Store
│ └── Store.tsx
├── Survey
│ └── Survey.tsx
├── TextBubble
│ └── TextBubble.tsx
├── ThumbsDown
│ └── ThumbsDown.tsx
├── ThumbsUp
│ └── ThumbsUp.tsx
├── Trash
│ └── Trash.tsx
├── Unavailable
│ └── Unavailable.tsx
├── Verified
│ └── Verified.tsx
├── Warning
│ └── Warning.tsx
├── WarrantyShield
│ └── WarrantyShield.tsx
├── ZoomIn
│ └── ZoomIn.tsx
└── ZoomOut
│ └── ZoomOut.tsx
├── SystemWideAlert
└── SystemWideAlert.tsx
├── Tooltip
└── Tooltip.tsx
├── actions
├── errorActions
│ └── index.ts
└── navigationActions
│ └── index.ts
├── business-rules
├── entities
│ ├── Cart.ts
│ ├── CartStatus.ts
│ ├── Checkout.ts
│ ├── ManufacturerWarranty.ts
│ ├── OrderStatus.ts
│ ├── PaymentType.ts
│ ├── ServicePlanBenefit.ts
│ ├── errors
│ │ ├── BadRequestError.ts
│ │ ├── ConnectionError.ts
│ │ ├── HttpRequestError.ts
│ │ ├── InternalServerError.ts
│ │ ├── NotFoundError.ts
│ │ ├── StatusCode.ts
│ │ ├── UnauthorizedError.ts
│ │ └── index.ts
│ └── index.ts
└── use-cases
│ ├── CartAdder.ts
│ ├── CartPriceFormatter.ts
│ ├── CartRefiller
│ ├── GuestCartRefiller.ts
│ ├── UserCartRefiller.ts
│ └── index.ts
│ ├── CartRemover.ts
│ ├── CartUpdater.ts
│ └── cartMerger.ts
├── button
├── ButtonAppearanceEnum.ts
├── button.tsx
└── index.tsx
├── categories
└── redux
│ └── index.ts
├── client
├── Decide
│ ├── actions
│ │ ├── addOnsActions
│ │ │ └── index.ts
│ │ ├── availabilityActions
│ │ │ └── index.ts
│ │ ├── basketActions
│ │ │ └── index.ts
│ │ ├── bazaarVoiceJSActions
│ │ │ └── index.ts
│ │ ├── businessContactActions
│ │ │ └── index.ts
│ │ ├── geekSquadMembershipActions
│ │ │ └── index.ts
│ │ ├── geekSquadMembershipDialogActions
│ │ │ └── index.ts
│ │ ├── gspActions
│ │ │ └── index.ts
│ │ ├── healthContactActions
│ │ │ └── index.ts
│ │ ├── marketplaceActions
│ │ │ └── index.ts
│ │ ├── offerActions
│ │ │ └── index.ts
│ │ ├── productActions
│ │ │ ├── cellPhonePlan.ts
│ │ │ ├── customerReviews.ts
│ │ │ ├── index.ts
│ │ │ ├── product.ts
│ │ │ ├── productMedia.ts
│ │ │ └── utils
│ │ │ │ └── normalizeMediaApiResponse.ts
│ │ ├── productFinderActions
│ │ │ └── index.ts
│ │ ├── productListActions
│ │ │ └── index.ts
│ │ ├── productLoadActions
│ │ │ └── index.ts
│ │ ├── productRelatedProductsActions
│ │ │ └── index.ts
│ │ ├── productSellersActions
│ │ │ └── index.ts
│ │ ├── productVariantActions
│ │ │ └── index.ts
│ │ ├── recommendationActions
│ │ │ └── index.ts
│ │ ├── sellerActions
│ │ │ └── index.ts
│ │ ├── storesActions
│ │ │ └── index.ts
│ │ ├── storesStatusActions
│ │ │ └── index.ts
│ │ └── upgradeEligibilityCheckActions
│ │ │ ├── normalizeUpgradeEligibilityMetadataResponse.ts
│ │ │ └── upgradeEligibilityCheck.ts
│ ├── components
│ │ ├── BoughtAlsoBought
│ │ │ ├── BoughtAlsoBought.tsx
│ │ │ ├── ProductCard.tsx
│ │ │ ├── index.ts
│ │ │ ├── style-e6dfd56c4de1e.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── BreadcrumbPlaceholder
│ │ │ ├── index.tsx
│ │ │ ├── style-38f0d651cc39d.css
│ │ │ └── style.css
│ │ ├── CellPhonePlanPrice
│ │ │ ├── CellPhoneMonthlyPayment
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-564955dc6db57.css
│ │ │ │ └── style.css
│ │ │ ├── CellPhonePlanMessage
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-5633392609e97.css
│ │ │ │ └── style.css
│ │ │ ├── CellPhonePlanPricePlaceHolder
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-d22577a943ed.css
│ │ │ │ └── style.css
│ │ │ ├── CellPhonePriceDown
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-0b60018ef417.css
│ │ │ │ └── style.css
│ │ │ ├── index.tsx
│ │ │ ├── style-2f32e60b44804.css
│ │ │ ├── style.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ │ └── hasCents.ts
│ │ ├── ChildProductHeader
│ │ │ ├── index.tsx
│ │ │ ├── style-83b37bebe04df.css
│ │ │ └── style.css
│ │ ├── DeviceFingerprint
│ │ │ └── index.tsx
│ │ ├── EnterPostalCode
│ │ │ ├── index.tsx
│ │ │ ├── styles-895f3471f3e49.css
│ │ │ ├── styles.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── GeoLocation
│ │ │ ├── index.tsx
│ │ │ ├── style-d40f90c6718cb.css
│ │ │ └── style.css
│ │ ├── GspPlan
│ │ │ ├── index.tsx
│ │ │ ├── styles-497bfe95912f9.css
│ │ │ ├── styles.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── KeyConsiderations
│ │ │ ├── components
│ │ │ │ └── Attribute
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-1fcbf5b2ce65.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── index.tsx
│ │ │ ├── style-25c5b6a0b9eb4.css
│ │ │ ├── style.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── util
│ │ │ │ └── index.ts
│ │ ├── LocateByPostalCodeAndGeoLocation
│ │ │ ├── index.tsx
│ │ │ ├── style-261e8c8df3776.css
│ │ │ └── style.css
│ │ ├── MediaGallery
│ │ │ ├── Image.tsx
│ │ │ ├── MediaGallery.tsx
│ │ │ ├── SliderButtons.tsx
│ │ │ ├── Video.tsx
│ │ │ ├── assets
│ │ │ │ ├── Navigation-MediaExpand.svg
│ │ │ │ └── Thumbnail-MediaPlay.svg
│ │ │ ├── style-7fb3fa27dd1c6.css
│ │ │ ├── style.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils.ts
│ │ ├── NoVerifiedPurchaserMessage
│ │ │ ├── index.tsx
│ │ │ ├── style-57e00e6f902b4.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── OptionBox
│ │ │ ├── OptionBox.tsx
│ │ │ ├── OptionBoxText.tsx
│ │ │ ├── styles-41973717e10ff.css
│ │ │ └── styles.css
│ │ ├── Policy
│ │ │ ├── index.tsx
│ │ │ ├── style-7297919d67d33.css
│ │ │ └── style.css
│ │ ├── PostalCodeSubmit
│ │ │ ├── index.tsx
│ │ │ ├── style-4d24ca490f23f.css
│ │ │ └── style.css
│ │ ├── ProductDetailsBrief
│ │ │ ├── ProductDetailsBrief.tsx
│ │ │ ├── components
│ │ │ │ ├── SimpleProductDetailsBrief
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-e436da931555e.css
│ │ │ │ │ └── style.css
│ │ │ │ └── SimpleProductDetailsBriefPlaceholder
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-ae3fe45118db3.css
│ │ │ │ │ └── style.css
│ │ │ ├── style-a919c6b9a8121.css
│ │ │ └── style.css
│ │ ├── ReviewsSortDropdown
│ │ │ ├── index.tsx
│ │ │ ├── style-a5e5884850e6c.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── ReviewsToolbar
│ │ │ ├── index.tsx
│ │ │ ├── style-7f05befdd0765.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── SellerPolicy
│ │ │ ├── index.tsx
│ │ │ ├── style-4256ca9808799.css
│ │ │ └── style.css
│ │ ├── Tabs
│ │ │ ├── HorizontalTabs.tsx
│ │ │ ├── TabItem.tsx
│ │ │ ├── Tabs.tsx
│ │ │ ├── VerticalTabs.tsx
│ │ │ ├── style-1d86478f04abb.css
│ │ │ ├── style.css
│ │ │ └── utils.ts
│ │ ├── TermsAndConditions
│ │ │ ├── TermsAndConditions.tsx
│ │ │ ├── index.ts
│ │ │ ├── style-68ec753867744.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── VerticalDivider
│ │ │ ├── index.tsx
│ │ │ ├── style-b66cc1da3b227.css
│ │ │ └── style.css
│ │ ├── WarrantyBenefitsMessage
│ │ │ ├── index.tsx
│ │ │ ├── styles-206c1c9661548.css
│ │ │ ├── styles.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── WarrantyOptions
│ │ │ ├── WarrantyOptions.tsx
│ │ │ ├── WarrantyOptionsLoader.tsx
│ │ │ ├── index.ts
│ │ │ ├── styles-3284808316244.css
│ │ │ ├── styles.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ └── WriteReviewButton
│ │ │ ├── WriteReviewButton.tsx
│ │ │ ├── style-905176af99539.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ └── messages.ts
│ ├── constants
│ │ └── Seller
│ │ │ └── index.ts
│ ├── pages
│ │ ├── AddonsPage
│ │ │ ├── AddonsPage.tsx
│ │ │ ├── components
│ │ │ │ ├── MainContent
│ │ │ │ │ ├── RequiredPartsButtonsLoader.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-165d1d948e566.css
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProductAddonSection
│ │ │ │ │ ├── ProductAddonSection.tsx
│ │ │ │ │ └── ProductAddonSectionLoader.tsx
│ │ │ │ ├── RequiredPartsLineItem
│ │ │ │ │ ├── RequiredPartsLineItem.tsx
│ │ │ │ │ ├── styles-28708ebd05649.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── RequiredPartsOptIn
│ │ │ │ │ ├── RequiredPartsOptIn.tsx
│ │ │ │ │ ├── styles-631576991214b.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── RequiredProducts
│ │ │ │ │ ├── RequiredProducts.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ └── RequiredProductsLoader
│ │ │ │ │ └── index.tsx
│ │ │ ├── index.ts
│ │ │ ├── selectors
│ │ │ │ └── index.ts
│ │ │ ├── styles-62792ec7b946c.css
│ │ │ ├── styles.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ │ └── transformToMarkup.ts
│ │ ├── BasketPage
│ │ │ ├── CartPage.tsx
│ │ │ ├── components
│ │ │ │ ├── CheckoutButtons
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-8dcad89505ff1.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── CheckoutFlowSelector
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-7c51052fcfa5.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── EmptyCart
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-ce30ffb36fcc8.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── LineItem
│ │ │ │ │ ├── FreeItem
│ │ │ │ │ │ ├── FreeItems.tsx
│ │ │ │ │ │ ├── styles-861af5d55d9f4.css
│ │ │ │ │ │ ├── styles.css
│ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── LineItem.tsx
│ │ │ │ │ ├── ParentProduct
│ │ │ │ │ │ ├── ParentProduct.tsx
│ │ │ │ │ │ ├── QuantityStepper
│ │ │ │ │ │ │ └── QuantityStepper.tsx
│ │ │ │ │ │ ├── styles-043079b9ed67.css
│ │ │ │ │ │ ├── styles.css
│ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── PromotionItems
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── styles-6510209fddcfd.css
│ │ │ │ │ │ ├── styles.css
│ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── RequiredPartsItem
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── styles-20da90d2dae7b.css
│ │ │ │ │ │ └── styles.css
│ │ │ │ │ ├── Status
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── SubTotal
│ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ ├── styles-51fefa2409f9b.css
│ │ │ │ │ │ ├── styles.css
│ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── styles-907db45a0fee1.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── LinkButton
│ │ │ │ │ ├── LinkButton.tsx
│ │ │ │ │ ├── styles-d26527f69bf7a.css
│ │ │ │ │ └── styles.css
│ │ │ │ ├── OrderPromoItems
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-f9f39a5e6395a.css
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProductCard
│ │ │ │ │ └── ProductCardPrice
│ │ │ │ │ │ ├── ProductCardPrice.tsx
│ │ │ │ │ │ ├── styles-2c6019203ac14.css
│ │ │ │ │ │ └── styles.css
│ │ │ │ ├── ProductList
│ │ │ │ │ ├── ProductList.tsx
│ │ │ │ │ ├── styles-d56616b954a91.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ProductListLink
│ │ │ │ │ ├── ProductListLink.tsx
│ │ │ │ │ ├── styles-21669ae293626.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── RemovedItemMessaging
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── SaveForLaterButton
│ │ │ │ │ ├── SaveForLaterButton.tsx
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── SaveForLaterCard
│ │ │ │ │ ├── MainProduct
│ │ │ │ │ │ ├── MainProduct.tsx
│ │ │ │ │ │ ├── styles-6311f9c34a237.css
│ │ │ │ │ │ ├── styles.css
│ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── MoveToCartButton
│ │ │ │ │ │ ├── MoveToCartButton.tsx
│ │ │ │ │ │ ├── styles-86d54841233f.css
│ │ │ │ │ │ ├── styles.css
│ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── RemoveSavedItemButton
│ │ │ │ │ │ ├── RemoveSavedItemButton.tsx
│ │ │ │ │ │ ├── styles-c07980651a24e.css
│ │ │ │ │ │ ├── styles.css
│ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── SaveForLaterCard.tsx
│ │ │ │ │ ├── styles-91e415cdbadef.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── TermsAndConditions
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-835ad76886b13.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ └── VendorItem
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-de1b23e4262c2.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── constants
│ │ │ │ └── constants.ts
│ │ │ ├── index.ts
│ │ │ ├── selectors
│ │ │ │ └── index.tsx
│ │ │ ├── styles-3e19733ea8452.css
│ │ │ ├── styles.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ │ ├── hasQPUableItem
│ │ │ │ └── index.ts
│ │ │ │ └── termsChecked.ts
│ │ ├── BenefitsPage
│ │ │ ├── BenefitsPage.tsx
│ │ │ ├── style-93fdefb6f6a98.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── BusinessContactPage
│ │ │ ├── BusinessContactConfirmation.tsx
│ │ │ ├── BusinessContactForm.tsx
│ │ │ ├── BusinessContactPage.tsx
│ │ │ ├── components
│ │ │ │ └── CallUsCard
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-54ccc079fc81b.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── style-b6b25ce3e3bcb.css
│ │ │ ├── style.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ │ └── helper.ts
│ │ ├── CreateProductReviewPage
│ │ │ ├── CreateProductReviewPage.tsx
│ │ │ ├── components
│ │ │ │ ├── ReviewForm
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-0f0578c2b120b.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ReviewGuidelines
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-8c0295c35c47.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ReviewStarRate
│ │ │ │ │ ├── ReviewStarRate.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-2d258e8f07449.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ReviewSubmitConfirmation
│ │ │ │ │ ├── ReviewSubmitConfirmation.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-742f3700b277a.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ └── ReviewedProduct
│ │ │ │ │ └── index.tsx
│ │ │ ├── index.tsx
│ │ │ ├── style-9fce4313659f5.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── CreateSellerReviewPage
│ │ │ ├── CreateSellerReviewPage.tsx
│ │ │ ├── components
│ │ │ │ └── ReviewForm
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-04ab200ffa37e.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── index.ts
│ │ │ ├── style-25cff2ac91f7d.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── GeekSquadMembershipPage
│ │ │ ├── GeekSquadMembershipConfirmation.tsx
│ │ │ ├── GeekSquadMembershipForm.tsx
│ │ │ ├── GeekSquadMembershipPage.tsx
│ │ │ ├── styles-176bd9ad461cd.css
│ │ │ ├── styles.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ │ └── helper.ts
│ │ ├── HealthContactPage
│ │ │ ├── HealthContactConfirmation.tsx
│ │ │ ├── HealthContactForm.tsx
│ │ │ ├── HealthContactPage.tsx
│ │ │ ├── style-66d035b054fcb.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── InHomeConsultationSignUpPage
│ │ │ ├── InHomeConsultationSignUpConfirmation.tsx
│ │ │ ├── InHomeConsultationSignUpForm.tsx
│ │ │ ├── InHomeConsultationSignUpPage.tsx
│ │ │ ├── styles-79ffa675dc31c.css
│ │ │ ├── styles.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ │ └── helper.ts
│ │ ├── InjectedPage
│ │ │ ├── InjectedPage.tsx
│ │ │ ├── index.ts
│ │ │ └── marketingFormDomainWhitelistHandler.ts
│ │ ├── ManufacturerWarrantyPage
│ │ │ ├── ManufacturerWarrantyPage.tsx
│ │ │ ├── style-176d815745ad5.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── MarketplaceSignUpPage
│ │ │ ├── FormOptions.ts
│ │ │ ├── MarketplaceSellerSignUpPage.tsx
│ │ │ ├── MarketplaceSignUpConfirmation.tsx
│ │ │ ├── components
│ │ │ │ ├── CompanyInfo.tsx
│ │ │ │ ├── LegalPolicies.tsx
│ │ │ │ ├── OperationalDetail.tsx
│ │ │ │ ├── PrimaryContactInfo.tsx
│ │ │ │ ├── ProductInfo.tsx
│ │ │ │ ├── SellerOnboardingHeader.tsx
│ │ │ │ ├── styles-1bf432bb4b4dd.css
│ │ │ │ ├── styles.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── constants.ts
│ │ │ ├── serializeToSalesforceObject.ts
│ │ │ ├── styles-267c9a23fc0b3.css
│ │ │ ├── styles.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ │ └── helper.ts
│ │ ├── MobileActivationPage
│ │ │ ├── MobileActivationInquiryConfirmation.tsx
│ │ │ ├── MobileActivationPage.tsx
│ │ │ ├── components
│ │ │ │ ├── ActivationProgressHeader
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-7f5f35f79e32b.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── CitySelector
│ │ │ │ │ ├── CitySelector.tsx
│ │ │ │ │ ├── styles-ece592b6f1ca4.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── Controllers
│ │ │ │ │ ├── Controllers.tsx
│ │ │ │ │ ├── styles-815775b8fc1ed.css
│ │ │ │ │ └── styles.css
│ │ │ │ ├── CustomerDetails
│ │ │ │ │ ├── CustomerDetails.tsx
│ │ │ │ │ ├── CustomerDetailsForm.tsx
│ │ │ │ │ ├── styles-baca6d01c6f52.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── EligibilityResult
│ │ │ │ │ ├── BalanceResult.tsx
│ │ │ │ │ ├── DenyResult.tsx
│ │ │ │ │ ├── EligibilityResult.tsx
│ │ │ │ │ ├── EligibilityResultContainer.tsx
│ │ │ │ │ ├── EligibilityResultControllers.tsx
│ │ │ │ │ ├── NoBalanceResult.tsx
│ │ │ │ │ ├── NotEligibleResult.tsx
│ │ │ │ │ ├── styles-fee99e3339428.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── IconInfoItem
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-ed0d96cd4b7df.css
│ │ │ │ │ └── styles.css
│ │ │ │ ├── MobileActivationLineItem
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-b6545f3065db6.css
│ │ │ │ │ └── styles.css
│ │ │ │ ├── MobileActivationPlanOffer
│ │ │ │ │ └── MobileActivationPlanOffer.tsx
│ │ │ │ ├── MobileActivationStepsGuide
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-14662ef1aff0f.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── MobileActivationType
│ │ │ │ │ ├── ActivationOption.tsx
│ │ │ │ │ ├── Carrier.tsx
│ │ │ │ │ ├── MobileActivationType.tsx
│ │ │ │ │ ├── RenderControllers.tsx
│ │ │ │ │ ├── SelectableCardsContainer.tsx
│ │ │ │ │ ├── styles-4792d45e95877.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ └── StoreSelector
│ │ │ │ │ ├── StoreSelector.tsx
│ │ │ │ │ ├── styles-0982e786f3399.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── styles-546da1aafda1d.css
│ │ │ ├── styles.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ │ └── helper.ts
│ │ ├── ProductDetailPage
│ │ │ ├── Product.ts
│ │ │ ├── ProductDetailPage.tsx
│ │ │ ├── components
│ │ │ │ ├── ActivationGiftCard
│ │ │ │ │ ├── ActivationGiftCard.tsx
│ │ │ │ │ ├── style-b5b7acdb84137.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── BlueShirtChat
│ │ │ │ │ ├── brands.ts
│ │ │ │ │ ├── components
│ │ │ │ │ │ └── ChatStatus
│ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ ├── styles-7fe08c2918ec9.css
│ │ │ │ │ │ │ └── styles.css
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-0cff97f401ff4.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ ├── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ │ └── withBrandAssetsConfig.tsx
│ │ │ │ ├── BundleOverview
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-90cdd5537c991.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── CellPhonePlanOffer
│ │ │ │ │ └── CellPhonePlanOffer.tsx
│ │ │ │ ├── CorrectionNotice
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-2491f17ab2c3a.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── CustomerReviewItem
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-435a761e60314.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── CustomerReviewsList
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-8d449f903612.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── DeliveryAvailability
│ │ │ │ │ ├── DefaultWhiteGoodsDeliveryDateMessage.tsx
│ │ │ │ │ ├── DeliveryAvailability.tsx
│ │ │ │ │ ├── WhiteGoodsDeliveryMessage.tsx
│ │ │ │ │ ├── style-0f75f79a6bd9d.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── DeliveryNotice
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-10f4042631f23.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── ExploreReviewsButton
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-a4080d43ab98a.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── FlexBanner
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── FlexBannerContent
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ └── FlexBannerImage
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-62b474a8054b6.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── GeekSquadMembershipDialog
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-8493a7d73c371.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── GranularRatings
│ │ │ │ │ ├── GranularRatings.tsx
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── style-55f63567da51.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── MarketplaceSellerInformation
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-6c54f1d3a19e2.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── MessageBox
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-823df5187e0d4.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── MobileOfferDetails
│ │ │ │ │ ├── MobileOfferDetails.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ └── MobilePlansInquiryButton
│ │ │ │ │ │ │ ├── MobilePlansInquiryButton.tsx
│ │ │ │ │ │ │ ├── style-407a199803ddb.css
│ │ │ │ │ │ │ ├── style.css
│ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── style-2627aa749456a.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── OpenBoxOffer
│ │ │ │ │ ├── OpenBoxOffer.tsx
│ │ │ │ │ ├── OpenBoxOfferPure.tsx
│ │ │ │ │ ├── getRecommendedData.ts
│ │ │ │ │ ├── style-67b479320428a.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ProductAvailability
│ │ │ │ │ ├── BrownGoodsDeliveryMessage.tsx
│ │ │ │ │ ├── LowInventory.tsx
│ │ │ │ │ ├── NearbyStores.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-dcb7d3969bd81.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ProductBody
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProductDetailPlaceholder
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-68e2a3769b32a.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── ProductDetailTab
│ │ │ │ │ ├── ConstituentContainer.tsx
│ │ │ │ │ ├── ProductDetailTab.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── BazaarvoiceQuestionsTab
│ │ │ │ │ │ │ ├── BazaarVoiceQuestionsTab.tsx
│ │ │ │ │ │ │ ├── QuestionsList.tsx
│ │ │ │ │ │ │ ├── styles-56fdd2edddf32.css
│ │ │ │ │ │ │ ├── styles.css
│ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ │ ├── DetailsAndSpecs
│ │ │ │ │ │ │ ├── DetailsAndSpecs.tsx
│ │ │ │ │ │ │ ├── style-c38d2f5a56baa.css
│ │ │ │ │ │ │ ├── style.css
│ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ │ ├── FromTheManufacturer
│ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ └── FlixMedia
│ │ │ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ │ ├── MoreInformation
│ │ │ │ │ │ │ ├── MoreInformation.tsx
│ │ │ │ │ │ │ ├── components
│ │ │ │ │ │ │ │ └── ProductDescription
│ │ │ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ │ │ ├── style-fe72ec9a6d186.css
│ │ │ │ │ │ │ │ │ └── style.css
│ │ │ │ │ │ │ ├── style-03e64773d21f9.css
│ │ │ │ │ │ │ ├── style.css
│ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ │ ├── ProductSpecs
│ │ │ │ │ │ │ ├── ProductSpecItem.tsx
│ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ ├── style-71d77a9279174.css
│ │ │ │ │ │ │ └── style.css
│ │ │ │ │ │ ├── ProductWhatsIncluded
│ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ ├── style-91606e57d964a.css
│ │ │ │ │ │ │ └── style.css
│ │ │ │ │ │ ├── ReturnPolicy
│ │ │ │ │ │ │ ├── BundleReturnPolicy
│ │ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ │ ├── style-12bfba44fdf27.css
│ │ │ │ │ │ │ │ ├── style.css
│ │ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ │ │ └── ProductReturnPolicy
│ │ │ │ │ │ │ │ ├── ProductReturnPolicy.tsx
│ │ │ │ │ │ │ │ ├── ReturnPolicySpecs.tsx
│ │ │ │ │ │ │ │ ├── style-672908383d13a.css
│ │ │ │ │ │ │ │ ├── style.css
│ │ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ │ └── ReviewsTab
│ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ ├── style-778c60bd51e77.css
│ │ │ │ │ │ │ └── style.css
│ │ │ │ │ ├── style-fd103004373bb.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ ├── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ │ └── withWarrantySpecs.tsx
│ │ │ │ ├── ProductFooter
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-a7cb848b0eb7f.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ProductHeader
│ │ │ │ │ ├── ProductHeader.tsx
│ │ │ │ │ ├── styles-d2260f0d13592.css
│ │ │ │ │ ├── styles.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ProductLineItem
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-2018755099959.css
│ │ │ │ │ └── styles.css
│ │ │ │ ├── ProductOfferDetails
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-afff4edb9fb5f.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ProductSizeVariants
│ │ │ │ │ ├── DropdownSizeVariant.tsx
│ │ │ │ │ ├── PillSizeVariantNoPrice.tsx
│ │ │ │ │ ├── PillSizeVariantWithPrice.tsx
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-64d80ea5707fb.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ProductStateActions
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ProductToolbar
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-1e10a4fd36859.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ProductWarranties
│ │ │ │ │ └── ProductWarranties.tsx
│ │ │ │ ├── ReviewFeedback
│ │ │ │ │ ├── ReviewFeedback.tsx
│ │ │ │ │ ├── ReviewFeedbackButton.tsx
│ │ │ │ │ ├── style-fc789a16afd2b.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── ReviewsAggregation
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── RatingsSummary
│ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ ├── style-251ce0fbc7cd7.css
│ │ │ │ │ │ │ ├── style.css
│ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ │ └── RecommendationSummary
│ │ │ │ │ │ │ ├── index.tsx
│ │ │ │ │ │ │ ├── style-159c7a84efc63.css
│ │ │ │ │ │ │ ├── style.css
│ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-798e941bc913f.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── SaleMessageBox
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ShowcaseBanner
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-1670864de008e.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── SoldByBestBuy
│ │ │ │ │ ├── SoldByBestBuy.tsx
│ │ │ │ │ ├── style-77c3edca7d287.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── SpecialOffers
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-e03751774c4ca.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── SupportContent
│ │ │ │ │ ├── SupportContent.tsx
│ │ │ │ │ ├── style-b392d860a0892.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── TargettedContent
│ │ │ │ │ ├── TargettedContent.tsx
│ │ │ │ │ └── index.ts
│ │ │ │ ├── Variants
│ │ │ │ │ ├── Variants.tsx
│ │ │ │ │ ├── components
│ │ │ │ │ │ ├── VariantHeader.tsx
│ │ │ │ │ │ ├── VariantTextPillBox
│ │ │ │ │ │ │ ├── VariantTextPill.tsx
│ │ │ │ │ │ │ ├── VariantTextPillBox.tsx
│ │ │ │ │ │ │ ├── style-a7861902706ad.css
│ │ │ │ │ │ │ ├── style.css
│ │ │ │ │ │ │ └── translations
│ │ │ │ │ │ │ │ └── messages.ts
│ │ │ │ │ │ ├── VariantThumbnailBox
│ │ │ │ │ │ │ ├── VariantThumbnail.tsx
│ │ │ │ │ │ │ ├── VariantThumbnailBox.tsx
│ │ │ │ │ │ │ ├── style-55fbaaa926fa.css
│ │ │ │ │ │ │ └── style.css
│ │ │ │ │ │ ├── style-39cc1d8f7c87c.css
│ │ │ │ │ │ └── style.css
│ │ │ │ │ ├── style-b2f442e6b61c7.css
│ │ │ │ │ └── style.css
│ │ │ │ └── WarrantyBenefits
│ │ │ │ │ ├── WarrantyBenefits.tsx
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── style-f33e619f7c8fa.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── index.ts
│ │ │ ├── style-b31fd2d3ff121.css
│ │ │ ├── style.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ ├── utils
│ │ │ │ ├── bazaarVoiceAnalytics.ts
│ │ │ │ ├── formatDateForDeliveryMessage.ts
│ │ │ │ ├── getTargettedContent.ts
│ │ │ │ ├── isDateToday.ts
│ │ │ │ ├── isDateTomorrow.ts
│ │ │ │ ├── isSamePdp.ts
│ │ │ │ └── isSyndicated.ts
│ │ │ └── vendorScripts.ts
│ │ ├── ProductOffersPage
│ │ │ ├── index.tsx
│ │ │ ├── style-a09460cd09f19.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── ProductReviewVerificationPage
│ │ │ ├── ProductReviewVerification.tsx
│ │ │ ├── ProductReviewVerificationPage.tsx
│ │ │ ├── VerificationPlaceHolder
│ │ │ │ ├── VerificationPlaceHolder.tsx
│ │ │ │ ├── style-2f81d3a8659ea.css
│ │ │ │ └── style.css
│ │ │ ├── index.tsx
│ │ │ ├── style-2e4a1fddcadd3.css
│ │ │ ├── style.css
│ │ │ ├── translations
│ │ │ │ └── messages.ts
│ │ │ └── useRequestUserId.ts
│ │ ├── ProductReviewsPage
│ │ │ ├── ProductReviewsPage.tsx
│ │ │ ├── index.ts
│ │ │ ├── style-dc0ea01d31c2f.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── ProductSellersPage
│ │ │ ├── ProductSellersPage.tsx
│ │ │ ├── components
│ │ │ │ ├── ProductSeller.tsx
│ │ │ │ ├── ProductSellerPlaceholder
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-85c789be6cde3.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── ProductSellersPlaceholder
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-18fc41b232f41.css
│ │ │ │ │ └── style.css
│ │ │ │ ├── style-d7b17f4e78de5.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── index.ts
│ │ │ ├── style-aa357fa86ff93.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── SellerProfilePage
│ │ │ ├── SellerProfilePage.tsx
│ │ │ ├── components
│ │ │ │ ├── SellerFeedbackItem
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-6d1dd83afb298.css
│ │ │ │ │ ├── style.css
│ │ │ │ │ └── translations
│ │ │ │ │ │ └── messages.ts
│ │ │ │ ├── SellerProfilePlaceholder
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-fe206bcfd4ec2.css
│ │ │ │ │ └── style.css
│ │ │ │ └── SellerReviews
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-f37fa3e494bb1.css
│ │ │ │ │ └── style.css
│ │ │ ├── index.ts
│ │ │ ├── style-6ea593cdd46c3.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── SellerReviewsPage
│ │ │ ├── SellerReviewsPage.tsx
│ │ │ ├── index.ts
│ │ │ ├── style-5e97d897c0c02.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ └── StoreLocatorPage
│ │ │ ├── components
│ │ │ ├── ProductDetailsBriefPlaceholder
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-5a4992a9c4229.css
│ │ │ │ └── style.css
│ │ │ ├── StoreHoursTable
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-f0b49a33ae631.css
│ │ │ │ ├── styles.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── StoreResultsPlaceholder
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-e503245d6891.css
│ │ │ │ └── style.css
│ │ │ └── StoresListItem
│ │ │ │ ├── index.tsx
│ │ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ │ ├── index.tsx
│ │ │ ├── models.ts
│ │ │ ├── style-4a5fb1a3b3316.css
│ │ │ ├── style.css
│ │ │ ├── translations
│ │ │ └── messages.ts
│ │ │ └── utils
│ │ │ ├── calculateCurbsideHours
│ │ │ └── index.ts
│ │ │ ├── convertStoreHoursToMap
│ │ │ └── index.ts
│ │ │ ├── formatHoursForUI
│ │ │ └── index.ts
│ │ │ ├── getStoreCurbsideHours
│ │ │ └── index.ts
│ │ │ └── getWeekDayIndex
│ │ │ └── index.ts
│ ├── providers
│ │ ├── CartProvider
│ │ │ ├── ApiBasketProvider.ts
│ │ │ └── ApiCartProvider.ts
│ │ ├── CellPhonePlanPricingProvider
│ │ │ └── ApiCellPhonePlanPricingProvider.ts
│ │ ├── CellPhoneUpgradeEligibiltyProvider
│ │ │ ├── ApiCellPhoneUpgradeEligibilityProvider.ts
│ │ │ └── carrierMetaDataCache.ts
│ │ ├── CustomerReviewsProvider
│ │ │ ├── ApiCustomerReviewsProvider.ts
│ │ │ └── customerReviewsCache.ts
│ │ ├── MarketplaceSignUpProvider
│ │ │ └── index.ts
│ │ ├── MediaProvider
│ │ │ ├── ApiMediaProvider.ts
│ │ │ └── mediaCache.ts
│ │ ├── ProductListIdCookieProvider
│ │ │ └── ProductListIdCookieProvider.ts
│ │ ├── ProductListProvider
│ │ │ └── ProductListProvider.ts
│ │ ├── ProductProvider
│ │ │ ├── ApiProductProvider.ts
│ │ │ ├── productCache.ts
│ │ │ └── recommendationDataMapper.ts
│ │ ├── ProductRelationshipProvider
│ │ │ ├── ApiProductRelationshipProvider.ts
│ │ │ ├── compareProductVariant.ts
│ │ │ └── productRelationshipAPIInstrumentation.ts
│ │ ├── RelatedProductsProvider
│ │ │ └── APIRelatedProductsProvider.ts
│ │ ├── SellerProvider
│ │ │ ├── ApiSellerProvider.ts
│ │ │ └── sellerCache.ts
│ │ ├── SellerReviewsProvider
│ │ │ └── ApiSellerReviewsProvider.ts
│ │ ├── SpecialOffersProvider
│ │ │ ├── ApiSpecialOffersProvider.ts
│ │ │ └── index.ts
│ │ ├── StoresStatusProvider
│ │ │ └── ApiStoresStatusProvider.ts
│ │ ├── WebToCaseSignUpProvider
│ │ │ └── index.ts
│ │ ├── WebToLeadSignUpProvider
│ │ │ └── index.ts
│ │ └── index.ts
│ ├── reducers
│ │ ├── addOnsPageReducer
│ │ │ ├── index.ts
│ │ │ └── warrantyBenefitsMessageAdapter.ts
│ │ ├── bazaarVoiceJSReducer
│ │ │ └── index.ts
│ │ ├── cartPageReducer
│ │ │ └── index.ts
│ │ ├── eligibilityCheckReducer
│ │ │ └── index.ts
│ │ ├── geekSquadMembershipDialogReducer
│ │ │ └── index.ts
│ │ ├── gspReducer
│ │ │ └── index.ts
│ │ ├── productListReducer
│ │ │ └── index.ts
│ │ ├── productReducer
│ │ │ └── index.ts
│ │ ├── productRelatedProductsReducer
│ │ │ └── index.ts
│ │ ├── productSellersReducer
│ │ │ └── index.ts
│ │ └── sellerReducer
│ │ │ └── index.ts
│ ├── store
│ │ └── selectors
│ │ │ ├── cartPageSelectors
│ │ │ └── index.ts
│ │ │ ├── cartSelectors
│ │ │ └── index.ts
│ │ │ ├── geekSquadMembershipDialog
│ │ │ └── index.ts
│ │ │ ├── gspSelectors
│ │ │ └── index.ts
│ │ │ ├── productListSelectors
│ │ │ └── index.ts
│ │ │ ├── productSelectors
│ │ │ └── index.ts
│ │ │ ├── productServicesSelectors
│ │ │ └── index.ts
│ │ │ └── requiredProducts
│ │ │ └── index.ts
│ └── utils
│ │ ├── getProductListId
│ │ └── index.ts
│ │ ├── getStoresSortedByAvailabilityAndDistance
│ │ └── index.ts
│ │ ├── isCartEmpty
│ │ └── index.ts
│ │ └── validatePostalCode
│ │ └── index.ts
├── actions
│ ├── adActions
│ │ └── index.ts
│ ├── appActions
│ │ └── index.ts
│ ├── brandActions
│ │ └── index.ts
│ ├── configActions
│ │ └── index.ts
│ ├── dynamicContentActions
│ │ └── index.ts
│ ├── emailUsActions
│ │ └── index.ts
│ ├── errorActions
│ │ └── index.ts
│ ├── flyerActions
│ │ └── index.ts
│ ├── globalContentActions
│ │ └── index.ts
│ ├── helpActions
│ │ └── index.ts
│ ├── homeActions
│ │ └── index.ts
│ ├── inHomeConsultationActions
│ │ └── index.ts
│ ├── injectedPageActions
│ │ └── index.ts
│ ├── navigationActions
│ │ └── index.ts
│ ├── notificationActions
│ │ └── index.ts
│ ├── npsSurveyActions
│ │ └── index.ts
│ ├── offersActions
│ │ └── index.ts
│ ├── routingActions
│ │ └── index.ts
│ ├── searchActions
│ │ ├── index.ts
│ │ └── sponsoredProducts.ts
│ ├── sideNavigationActions
│ │ └── index.ts
│ ├── storeMessageActions
│ │ └── index.ts
│ ├── translationsActions
│ │ └── index.ts
│ └── userActions
│ │ └── index.ts
├── components
│ ├── ABTestAdSlot
│ │ ├── index.tsx
│ │ ├── style-5fa807304aa3b.css
│ │ └── style.css
│ ├── Advertisement
│ │ ├── AdLoader.tsx
│ │ ├── AdSlot.tsx
│ │ ├── AdSlotUtils.ts
│ │ ├── GooglePublisherTag.ts
│ │ ├── index.tsx
│ │ ├── styles-2f44af454260a.css
│ │ ├── styles.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── AdvertisementList
│ │ ├── index.tsx
│ │ ├── style-795ec2eae9c6b.css
│ │ └── style.css
│ ├── AgeGate
│ │ ├── AgeGate.tsx
│ │ ├── components
│ │ │ ├── AgeGatePortal
│ │ │ │ └── index.tsx
│ │ │ └── DateInput
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-9734b3d71db1a.css
│ │ │ │ ├── styles.css
│ │ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── index.tsx
│ │ ├── styles-102918f146c7e.css
│ │ ├── styles.css
│ │ ├── translations
│ │ │ └── messages.ts
│ │ └── utils
│ │ │ └── validators
│ │ │ └── index.ts
│ ├── AnchorNav
│ │ ├── index.tsx
│ │ ├── style-55810c972c62.css
│ │ └── style.css
│ ├── App
│ │ ├── index.tsx
│ │ ├── style-fecac253a9133.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── BackButton
│ │ ├── index.tsx
│ │ ├── style-298afd60449d5.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── Background
│ │ ├── index.tsx
│ │ ├── style-20051c230d034.css
│ │ └── style.css
│ ├── BadgeWrapper
│ │ ├── index.tsx
│ │ ├── style-458ebdf7f438b.css
│ │ └── style.css
│ ├── BreadcrumbList
│ │ ├── index.tsx
│ │ ├── style-607d7f7892678.css
│ │ └── style.css
│ ├── CategoryIconList
│ │ ├── components
│ │ │ └── CategoryIcon
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-565693076d333.css
│ │ │ │ └── style.css
│ │ ├── index.tsx
│ │ ├── style-da31b72dc3c4d.css
│ │ └── style.css
│ ├── ContactUs
│ │ ├── components
│ │ │ ├── AgentOffline
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-5fd6a67e1cc7c.css
│ │ │ │ ├── styles.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── CallUs
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-84eb75af43415.css
│ │ │ │ ├── styles.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── ContactBlock
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-ac80ab48529e.css
│ │ │ │ └── styles.css
│ │ │ ├── EmailUs
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-24fab9c867c04.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── LiveChat
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-44224c30d9e7.css
│ │ │ │ ├── styles.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ └── StatusColor
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-e1b9d4dc46201.css
│ │ │ │ └── styles.css
│ │ ├── index.tsx
│ │ ├── styles-5ffd84c25e305.css
│ │ ├── styles.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── CriteoSponsoredProducts
│ │ ├── hooks
│ │ │ ├── useCriteoProductAds.ts
│ │ │ └── useCriteoSponsoredProductList.ts
│ │ └── index.tsx
│ ├── Dropdown
│ │ ├── index.tsx
│ │ ├── style-e62850791959e.css
│ │ └── style.css
│ ├── DynamicContent
│ │ ├── ContentContainer
│ │ │ ├── index.tsx
│ │ │ ├── style-601a2acbc7285.css
│ │ │ └── style.css
│ │ ├── components
│ │ │ └── HtmlContent
│ │ │ │ └── index.tsx
│ │ ├── helpers
│ │ │ ├── buildRouteLinkProps.ts
│ │ │ ├── componentParsers
│ │ │ │ ├── barBanner.ts
│ │ │ │ ├── categoryIconList.ts
│ │ │ │ ├── columnContent.ts
│ │ │ │ ├── featureBanner.ts
│ │ │ │ ├── heroBanner.ts
│ │ │ │ ├── imageBlock.ts
│ │ │ │ ├── linkEvent.ts
│ │ │ │ ├── merchItem.ts
│ │ │ │ ├── offerItem.ts
│ │ │ │ ├── prodListingBanner.ts
│ │ │ │ ├── sectionImage.ts
│ │ │ │ ├── singleButton.ts
│ │ │ │ ├── skuList.ts
│ │ │ │ ├── slideShowFeatureBanner.tsx
│ │ │ │ ├── storyBanner.ts
│ │ │ │ ├── storyRow.ts
│ │ │ │ ├── textBlock.ts
│ │ │ │ ├── timeline.tsx
│ │ │ │ └── titleBanner.ts
│ │ │ └── getBackgroundSizing.ts
│ │ ├── index.tsx
│ │ ├── style-16fa2fae2c5b6.css
│ │ └── style.css
│ ├── EmbeddedVideo
│ │ ├── index.tsx
│ │ ├── style-07d3920991839.css
│ │ └── style.css
│ ├── Error
│ │ ├── InternalServerError.tsx
│ │ ├── NotFound.tsx
│ │ ├── index.tsx
│ │ ├── style-e5cb3f52c732.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── ErrorBoundary
│ │ ├── ErrorBoundary.tsx
│ │ └── index.tsx
│ ├── ExpandableList
│ │ ├── index.tsx
│ │ ├── style-2ac2c0e3b2685.css
│ │ └── style.css
│ ├── FeatureToggle
│ │ ├── FeatureToggleHOC.tsx
│ │ └── index.tsx
│ ├── FilterBar
│ │ ├── SortDropdown
│ │ │ ├── index.tsx
│ │ │ ├── style-b4f77a40f844c.css
│ │ │ └── style.css
│ │ ├── index.tsx
│ │ ├── style-8a6b198900976.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── Footer
│ │ └── index.tsx
│ ├── ForegroundImage
│ │ ├── index.tsx
│ │ ├── style-59f36a0d7bdb8.css
│ │ └── style.css
│ ├── GeeksquadChat
│ │ └── index.tsx
│ ├── GlobalContent
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── HeadTags
│ │ └── index.tsx
│ ├── Header
│ │ └── index.tsx
│ ├── Help
│ │ ├── HelpCategory
│ │ │ ├── index.tsx
│ │ │ ├── styles-0e599a49358b5.css
│ │ │ └── styles.css
│ │ └── HelpCategoryBox
│ │ │ ├── index.tsx
│ │ │ ├── styles-c7cedc7d4a319.css
│ │ │ ├── styles.css
│ │ │ └── translations
│ │ │ └── messages.ts
│ ├── Image
│ │ ├── index.tsx
│ │ ├── style-5acd1d0b97e26.css
│ │ └── style.css
│ ├── ImageBlock
│ │ ├── index.tsx
│ │ ├── style-ddd5f7374afb1.css
│ │ └── style.css
│ ├── ImageGallery
│ │ ├── index.tsx
│ │ ├── style-ebe6adf3025e7.css
│ │ └── style.css
│ ├── InjectedContent
│ │ ├── index.tsx
│ │ ├── style-9341f571a42a4.css
│ │ └── style.css
│ ├── Link
│ │ ├── index.tsx
│ │ ├── styles-5ff5e15c25a16.css
│ │ └── styles.css
│ ├── MarketplaceSeller
│ │ ├── index.tsx
│ │ ├── style-894778f3a9ce3.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── MerchBanner
│ │ ├── index.tsx
│ │ ├── style-4a6db15d7e1e3.css
│ │ └── style.css
│ ├── MessageBox
│ │ ├── index.tsx
│ │ ├── style-85b26c28123b2.css
│ │ └── style.css
│ ├── OverallRatingSummary
│ │ ├── index.tsx
│ │ ├── style-9a1283877fe7c.css
│ │ └── style.css
│ ├── PageContent
│ │ ├── index.tsx
│ │ ├── style-7ce55744a724b.css
│ │ └── style.css
│ ├── PencilBanner
│ │ ├── index.tsx
│ │ ├── styles-05b43dfd30927.css
│ │ └── styles.css
│ ├── Picture
│ │ └── index.tsx
│ ├── PillList
│ │ ├── index.tsx
│ │ ├── styles-2f1ff3cd11a26.css
│ │ └── styles.css
│ ├── Portal
│ │ └── index.tsx
│ ├── Price
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── ProdListingBanner
│ │ ├── index.tsx
│ │ ├── styles-72f7529a71fde.css
│ │ └── styles.css
│ ├── ProductAvailability
│ │ ├── components
│ │ │ ├── AvailabilityIcon
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-7421a30c51c2b.css
│ │ │ │ └── style.css
│ │ │ ├── AvailabilityPlaceHolder
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-fc5ade5dd25c7.css
│ │ │ │ └── style.css
│ │ │ ├── Shipping
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-b27666f89efbd.css
│ │ │ │ └── style.css
│ │ │ └── ShippingMessage
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-e25965176fea7.css
│ │ │ │ ├── styles.css
│ │ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── index.tsx
│ │ ├── style-c4085ccec3cc9.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── ProductCost
│ │ ├── ProductPrice
│ │ │ ├── index.tsx
│ │ │ ├── style-a9cfaa6d4aeb5.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── ProductPricing
│ │ │ ├── index.tsx
│ │ │ ├── style-ab2a5438ca23.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── ProductSaleEndDate
│ │ │ ├── index.tsx
│ │ │ ├── style-478764f4851ce.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ └── ProductSaving
│ │ │ ├── index.tsx
│ │ │ ├── style-0944d42f73b6b.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ └── messages.ts
│ ├── ProductFinder
│ │ ├── ProductFinder.tsx
│ │ ├── ProductFinderOptions.ts
│ │ ├── ProductFinderOptionsBuilder.ts
│ │ ├── assets
│ │ │ ├── bell-white.svg
│ │ │ ├── bell.svg
│ │ │ ├── fido-white.svg
│ │ │ ├── fido.svg
│ │ │ ├── koodo-white.svg
│ │ │ ├── koodo.svg
│ │ │ ├── rogers-white.svg
│ │ │ ├── rogers.svg
│ │ │ ├── sasktel-white.svg
│ │ │ ├── sasktel.svg
│ │ │ ├── telus-white.svg
│ │ │ ├── telus.svg
│ │ │ ├── virgin-mobile-white.svg
│ │ │ └── virgin-mobile.svg
│ │ ├── components
│ │ │ ├── AddToCartButton.tsx
│ │ │ ├── CarrierSelector.tsx
│ │ │ ├── ColourVariantOption.tsx
│ │ │ ├── Header.tsx
│ │ │ ├── ImageGallery.tsx
│ │ │ ├── OptionsHeader.tsx
│ │ │ ├── PhoneOption.tsx
│ │ │ ├── PickupStore.tsx
│ │ │ ├── PlanSelector.tsx
│ │ │ ├── PlanSelectorButtonLabel.tsx
│ │ │ └── Price.tsx
│ │ ├── data
│ │ │ └── pickup-stores.ts
│ │ ├── hooks
│ │ │ └── FetchHook.ts
│ │ ├── index.tsx
│ │ ├── styles-0c0e06dadf545.css
│ │ ├── styles.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── ProductImage
│ │ ├── index.tsx
│ │ ├── style-e86fa614b3def.css
│ │ └── style.css
│ ├── ProductImageSlider
│ │ ├── index.tsx
│ │ ├── styles-5a906737b6aee.css
│ │ ├── styles.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── ProductListing
│ │ ├── EndOfResults
│ │ │ ├── index.tsx
│ │ │ ├── style-3b9fb9beb1601.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── LoadMore
│ │ │ ├── index.tsx
│ │ │ ├── style-73a0c762e3ab6.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── ProductItem
│ │ │ ├── index.tsx
│ │ │ ├── style-df3d8c985a72.css
│ │ │ └── style.css
│ │ ├── ProductListItem
│ │ │ ├── index.tsx
│ │ │ ├── style-c2bf30d842703.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── ProductListPlaceHolder
│ │ │ ├── index.tsx
│ │ │ ├── style-3aa08b738ea67.css
│ │ │ └── style.css
│ │ ├── index.tsx
│ │ ├── style-1116f18cdb84e.css
│ │ └── style.css
│ ├── PromoBanner
│ │ ├── index.tsx
│ │ ├── style-f2549e7a6be55.css
│ │ └── style.css
│ ├── QueueItLoader
│ │ └── index.tsx
│ ├── SectionTitle
│ │ ├── index.tsx
│ │ ├── style-7a4590be6242d.css
│ │ └── style.css
│ ├── SingleButton
│ │ ├── components
│ │ │ └── VideoModal
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-93a031dc6c1b4.css
│ │ │ │ └── style.css
│ │ ├── index.tsx
│ │ ├── styles-152319368d67.css
│ │ └── styles.css
│ ├── SlideShow
│ │ └── index.tsx
│ ├── Snackbar
│ │ ├── index.tsx
│ │ ├── style-a133ceb03358b.css
│ │ └── style.css
│ ├── StarRate
│ │ ├── FeedbackStar.tsx
│ │ ├── index.tsx
│ │ ├── style-7aa99c3da09fc.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── StoryBanner
│ │ ├── index.tsx
│ │ ├── style-cd4502a47b03.css
│ │ └── style.css
│ ├── StyledHTML
│ │ ├── index.tsx
│ │ ├── styles-68736c791c84a.css
│ │ └── styles.css
│ ├── SvgIcons
│ │ └── ProductImagePlaceholder
│ │ │ ├── index.tsx
│ │ │ ├── style-62185754143c8.css
│ │ │ └── style.css
│ ├── TextBlock
│ │ ├── index.tsx
│ │ ├── styles-03a56385b059b.css
│ │ └── styles.css
│ ├── TextInput
│ │ ├── index.tsx
│ │ ├── style-ed8203062dd87.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── Themes
│ │ └── BestBuyTheme.tsx
│ ├── TitleHeader
│ │ ├── index.tsx
│ │ ├── style-1effa90b04192.css
│ │ └── style.css
│ ├── TruncateText
│ │ └── index.tsx
│ ├── VariantSwatch
│ │ ├── VariantSwatchPlaceHolder
│ │ │ ├── index.tsx
│ │ │ ├── style-53fefa1044fb2.css
│ │ │ └── style.css
│ │ ├── index.tsx
│ │ ├── style-7fa0274525b84.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── WebVitalsMetrics
│ │ └── index.tsx
│ ├── YouTubePlayer
│ │ ├── index.tsx
│ │ ├── style-5c2a6198a7dff.css
│ │ ├── style.css
│ │ ├── youTubeIframeAPIReady.ts
│ │ ├── youTubePlayerReady.ts
│ │ └── ytPlayerEvents.ts
│ ├── Zoomable
│ │ ├── index.tsx
│ │ ├── style-0978bb3bd883e.css
│ │ └── style.css
│ ├── banners
│ │ ├── BarBanner
│ │ │ ├── index.tsx
│ │ │ ├── styles-2a0878bfab474.css
│ │ │ └── styles.css
│ │ ├── ColumnContent
│ │ │ ├── index.tsx
│ │ │ ├── style-89d0df245521c.css
│ │ │ └── style.css
│ │ ├── FeatureBanner
│ │ │ ├── index.tsx
│ │ │ ├── styles-d550b5d6d2458.css
│ │ │ └── styles.css
│ │ ├── HeroBanner
│ │ │ ├── index.tsx
│ │ │ ├── styles-15c7cb3c7613c.css
│ │ │ └── styles.css
│ │ ├── MerchSkuList
│ │ │ ├── index.tsx
│ │ │ ├── styles-755fd1e83d48b.css
│ │ │ └── styles.css
│ │ ├── SlideShowFeatureBanner
│ │ │ ├── index.tsx
│ │ │ ├── style-5f195256ae07c.css
│ │ │ └── style.css
│ │ ├── Story
│ │ │ ├── components
│ │ │ │ └── StoryRow
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── style-086975196c87f.css
│ │ │ │ │ └── style.css
│ │ │ ├── index.tsx
│ │ │ ├── style-dbc626ed1778e.css
│ │ │ └── style.css
│ │ ├── Timeline
│ │ │ ├── hooks
│ │ │ │ └── syncActiveStage.ts
│ │ │ ├── index.tsx
│ │ │ ├── styles-cbd60c32ede03.css
│ │ │ └── styles.css
│ │ ├── TitleBanner
│ │ │ ├── index.tsx
│ │ │ ├── styles-259641bdd78a7.css
│ │ │ └── styles.css
│ │ └── components
│ │ │ ├── CTABlock
│ │ │ ├── index.tsx
│ │ │ ├── styles-f2a58965bb941.css
│ │ │ └── styles.css
│ │ │ ├── Countdown
│ │ │ ├── components
│ │ │ │ └── FlipCard
│ │ │ │ │ ├── index.tsx
│ │ │ │ │ ├── styles-75781d9a10ba2.css
│ │ │ │ │ └── styles.css
│ │ │ ├── hooks
│ │ │ │ └── countdownHook.ts
│ │ │ ├── index.tsx
│ │ │ ├── styles-50d4c9c128093.css
│ │ │ ├── styles.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ │ ├── DateOverride
│ │ │ ├── index.tsx
│ │ │ ├── styles-8886dc95fbab6.css
│ │ │ └── styles.css
│ │ │ ├── Disclaimer
│ │ │ ├── index.tsx
│ │ │ ├── style-5db3cf7c00b45.css
│ │ │ └── style.css
│ │ │ ├── Headline
│ │ │ ├── index.tsx
│ │ │ ├── styles-436424ed493a3.css
│ │ │ └── styles.css
│ │ │ └── Logo
│ │ │ ├── index.tsx
│ │ │ ├── styles-464051a46770d.css
│ │ │ └── styles.css
│ └── recommendations
│ │ ├── RecentlyViewed
│ │ ├── RecentlyViewed.tsx
│ │ ├── style-f0201dddeff26.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ │ ├── TopSellers
│ │ ├── TopSellers.tsx
│ │ ├── style-8bc088eb37c31.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ │ └── components
│ │ └── RecommendedSkuList
│ │ ├── index.tsx
│ │ ├── style-5000462d595ad.css
│ │ └── style.css
├── constants
│ ├── Analytics
│ │ └── index.ts
│ ├── Breakpoints
│ │ └── index.ts
│ ├── Environment
│ │ └── index.ts
│ ├── Search
│ │ └── index.ts
│ ├── SponsoredProducts
│ │ └── index.ts
│ └── User
│ │ └── index.ts
├── errors
│ ├── ConnectionError.ts
│ ├── GeoLocationError.ts
│ ├── GetAvailabilitiesError.ts
│ ├── HttpRequestError.ts
│ ├── HttpRequestType.ts
│ ├── RedirectError.ts
│ ├── RequestError.ts
│ ├── SellerReviewDuplicateError.ts
│ ├── SpecialOfferError.ts
│ ├── StatusCode.ts
│ ├── WebappError.ts
│ └── index.ts
├── hooks
│ └── useTrackVisit
│ │ └── index.ts
├── index.tsx
├── models
│ ├── App
│ │ └── index.ts
│ ├── Availability
│ │ └── index.ts
│ ├── Basket
│ │ └── index.ts
│ ├── BlueShirtChat
│ │ └── index.ts
│ ├── CellPhonePlan
│ │ └── index.ts
│ ├── Content
│ │ └── index.ts
│ ├── CustomerReviews
│ │ └── index.ts
│ ├── DetailedProduct
│ │ └── index.ts
│ ├── DynamicContent
│ │ └── index.ts
│ ├── GlobalContent
│ │ └── index.ts
│ ├── HomePage
│ │ └── index.ts
│ ├── Intl
│ │ └── index.ts
│ ├── ProductBase
│ │ └── index.ts
│ ├── ProductMedia
│ │ └── index.ts
│ ├── ProductRelatedProduct
│ │ └── index.ts
│ ├── Region
│ │ └── index.ts
│ ├── Search
│ │ └── index.ts
│ ├── SimpleProduct
│ │ └── index.ts
│ ├── SponsoredProduct
│ │ └── index.ts
│ ├── User
│ │ └── index.ts
│ └── index.ts
├── pages
│ ├── CategoryPage
│ │ ├── CategoryPage.tsx
│ │ ├── components
│ │ │ ├── Categories
│ │ │ │ ├── Category.tsx
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-5b29a88fc608b.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ └── ShopByCategory
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-e000dd970b4bd.css
│ │ │ │ └── style.css
│ │ ├── index.ts
│ │ ├── style-fbd09f111e2c1.css
│ │ └── style.css
│ ├── DynamicContentPage
│ │ ├── DynamicContentPage.tsx
│ │ ├── components
│ │ │ ├── LoadingSkeleton
│ │ │ │ ├── LoadingSkeleton.tsx
│ │ │ │ ├── style-f0c75ea2857d6.css
│ │ │ │ └── style.css
│ │ │ └── SideNavigation
│ │ │ │ └── index.tsx
│ │ ├── index.tsx
│ │ ├── style-142778de16b5d.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── EmailUsPage
│ │ ├── components
│ │ │ ├── ContactInformation
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-d8a5e419c5234.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── ConversationContextMenu
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-b1ba95d5dde3d.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── CtaButtons
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-b91375e59c85d.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── EmailUsForm
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-e5a740ed8d619.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── FormSuccessContent
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-8bef188e0d195.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── GeneralQuestionForm
│ │ │ │ ├── index.tsx
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── Marketplace
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-f074cf35c6d6f.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── OrderStatusForm
│ │ │ │ ├── index.tsx
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── PriceMatchForm
│ │ │ │ ├── index.tsx
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ └── ReturnForm
│ │ │ │ ├── index.tsx
│ │ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── index.tsx
│ │ ├── style-fa67871eb7c7b.css
│ │ └── style.css
│ ├── FlyerPage
│ │ ├── components
│ │ │ └── Flyer
│ │ │ │ └── index.tsx
│ │ ├── index.tsx
│ │ ├── styles-6a41d02bb8b06.css
│ │ ├── styles.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── HelpPage
│ │ ├── containers
│ │ │ ├── HelpLandingPage
│ │ │ │ └── index.tsx
│ │ │ └── HelpPage
│ │ │ │ └── index.tsx
│ │ ├── index.tsx
│ │ ├── style-fd337a6229495.css
│ │ ├── style.css
│ │ └── translations
│ │ │ └── messages.ts
│ ├── HomePage
│ │ ├── components
│ │ │ ├── HomePageContainer
│ │ │ │ ├── index.tsx
│ │ │ │ └── style.css
│ │ │ └── HomePageLayout
│ │ │ │ └── index.tsx
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── PageLayouts
│ │ ├── Base
│ │ │ ├── index.tsx
│ │ │ ├── styles-c3c2c59e6fae3.css
│ │ │ └── styles.css
│ │ ├── SingleColumn
│ │ │ ├── index.tsx
│ │ │ ├── styles-c4c9122836a2.css
│ │ │ └── styles.css
│ │ ├── TwoColumn
│ │ │ ├── index.tsx
│ │ │ ├── styles-ee1f11d36e2e7.css
│ │ │ └── styles.css
│ │ └── index.tsx
│ ├── ProductListingPage
│ │ ├── components
│ │ │ ├── Footer
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-59217499e5e32.css
│ │ │ │ └── style.css
│ │ │ ├── Header
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-cbbcc51b1f49f.css
│ │ │ │ └── style.css
│ │ │ ├── HeaderDynamicContent
│ │ │ │ └── index.tsx
│ │ │ ├── Navigation
│ │ │ │ ├── index.tsx
│ │ │ │ ├── styles-91455f09ad168.css
│ │ │ │ └── styles.css
│ │ │ └── SEOBlock
│ │ │ │ ├── index.tsx
│ │ │ │ ├── style-52143a33cb82d.css
│ │ │ │ ├── style.css
│ │ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── containers
│ │ │ ├── BrandContainer.tsx
│ │ │ ├── BrandL2Container.tsx
│ │ │ ├── CategoryContainer.tsx
│ │ │ ├── SSCContainer.tsx
│ │ │ └── SearchContainer.tsx
│ │ ├── helpers
│ │ │ ├── breadcrumbListParser.ts
│ │ │ ├── navigationContentParser.ts
│ │ │ └── parseBrandData.ts
│ │ ├── index.tsx
│ │ ├── styles-5c1058faac43a.css
│ │ ├── styles.css
│ │ └── translations
│ │ │ └── messages.ts
│ └── SearchPage
│ │ ├── SearchPage.tsx
│ │ ├── components
│ │ ├── Facets
│ │ │ ├── Facet.tsx
│ │ │ ├── FacetFilter.tsx
│ │ │ ├── FacetFilterPlaceholder.tsx
│ │ │ ├── PriceSearchBar.tsx
│ │ │ ├── index.tsx
│ │ │ ├── style-e21dd51030de9.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ └── ResultHeader
│ │ │ ├── index.tsx
│ │ │ ├── style-be7b4d1c811e5.css
│ │ │ ├── style.css
│ │ │ └── translations
│ │ │ └── messages.ts
│ │ ├── index.ts
│ │ ├── style-d6b617ef17ba6.css
│ │ ├── style.css
│ │ └── translations
│ │ └── messages.ts
├── providers
│ ├── AvailabilityProvider
│ │ └── ApiAvailabilityProvider.ts
│ ├── BrandProvider
│ │ ├── ApiBrandProvider.ts
│ │ └── index.ts
│ ├── CategoryProvider
│ │ ├── ApiCategoryProvider.ts
│ │ ├── CachedCategoryProvider.ts
│ │ ├── CategoryCache.ts
│ │ ├── index.ts
│ │ └── translations
│ │ │ ├── en.ts
│ │ │ └── fr.ts
│ ├── ContentProvider
│ │ ├── ApiBrandPageContentProvider.ts
│ │ ├── ApiBrandStoreContentProvider.ts
│ │ ├── ApiCareersContentProvider.ts
│ │ ├── ApiCategoryContentProvider.ts
│ │ ├── ApiCollectionContentProvider.ts
│ │ ├── ApiCorporateContentProvider.ts
│ │ ├── ApiEventMarketingContentProvider.ts
│ │ ├── ApiHomePageContentProvider.ts
│ │ ├── ApiHomePageFallbackContentProvider.ts
│ │ ├── ApiPersonalizedContentProvider.ts
│ │ ├── ApiProductContentProvider.ts
│ │ ├── ApiSearchContentProvider.ts
│ │ ├── ApiServiceContentProvider.ts
│ │ ├── ApiShowcaseContentProvider.ts
│ │ ├── MarketingContentProvider.ts
│ │ ├── contentCache.ts
│ │ └── index.ts
│ ├── GlobalContentProvider
│ │ ├── ApiGlobalContentProvider.ts
│ │ └── globalContentCache.ts
│ ├── HelpProvider
│ │ ├── ApiHelpProvider.ts
│ │ └── index.ts
│ ├── LocalStorageProvider
│ │ └── index.ts
│ ├── LocationProvider
│ │ └── ApiLocationProvider.ts
│ ├── OfferProvider
│ │ ├── ApiOfferProvider.ts
│ │ ├── MockOfferProvider.ts
│ │ ├── NullOfferProvider.ts
│ │ └── index.ts
│ ├── RemoteConfigProvider
│ │ ├── ApiRemoteConfigProvider.ts
│ │ ├── CachedRemoteConfigProvider.ts
│ │ ├── RemoteConfigCache.ts
│ │ └── RemoteConfigProviderFactory.ts
│ ├── SearchProvider
│ │ ├── ApiSearchProvider.ts
│ │ └── translations
│ │ │ ├── en.ts
│ │ │ └── fr.ts
│ ├── SessionStorageProvider
│ │ └── index.ts
│ ├── SideNavigationProvider
│ │ ├── ApiBrandStoreNavigationProvider.ts
│ │ ├── SideNavigationProvider.ts
│ │ └── index.ts
│ ├── SponsoredProductsProvider
│ │ ├── ApiSponsoredProductsProvider.ts
│ │ └── index.ts
│ ├── StoreLocationProvider
│ │ └── ApiStoreLocationProvider.ts
│ ├── StoreMessageProvider
│ │ └── ApiStoreMessageProvider.ts
│ └── index.ts
├── reducers
│ ├── adReducer
│ │ └── index.ts
│ ├── appReducer
│ │ └── index.ts
│ ├── brandReducer
│ │ └── index.ts
│ ├── configReducer
│ │ └── index.ts
│ ├── dynamicContentReducer
│ │ └── index.ts
│ ├── errorReducer
│ │ └── index.ts
│ ├── helpReducer
│ │ └── index.ts
│ ├── homePageReducer
│ │ └── index.ts
│ ├── notificationReducer
│ │ └── index.ts
│ ├── npsSurveyReducer
│ │ └── index.ts
│ ├── offersReducer
│ │ └── index.ts
│ ├── promotionalBadgesReducer
│ │ └── index.ts
│ ├── recommendationsReducer
│ │ └── index.ts
│ ├── routingReducer
│ │ └── index.ts
│ ├── searchReducer
│ │ ├── index.ts
│ │ └── utils
│ │ │ └── index.ts
│ ├── sideNavigationReducer
│ │ └── index.ts
│ ├── storeMessageReducer
│ │ └── index.ts
│ ├── storesStatusReducer
│ │ └── index.ts
│ ├── translationsReducer
│ │ └── index.ts
│ └── userReducer
│ │ └── index.ts
├── store
│ ├── configureStore.ts
│ └── selectors
│ │ ├── appSelectors
│ │ └── index.ts
│ │ ├── configSelectors
│ │ └── index.ts
│ │ ├── intlSelectors
│ │ └── index.ts
│ │ ├── offersSelectors
│ │ └── index.ts
│ │ ├── promotionalBadgesSelectors
│ │ └── index.ts
│ │ ├── routingSelectors
│ │ └── index.ts
│ │ ├── searchSelectors
│ │ └── index.ts
│ │ ├── storeStatusSelectors
│ │ └── index.ts
│ │ └── userSelectors
│ │ └── index.ts
└── utils
│ ├── analytics
│ ├── adobeCookie.ts
│ ├── eventBuffer.ts
│ ├── gspInCart.ts
│ ├── middleware.ts
│ ├── pdpFindingMethodMapper.ts
│ └── performanceInstrumentation.ts
│ ├── builders
│ ├── breadcrumbBuilder
│ │ ├── createBreadcrumbList.ts
│ │ ├── index.ts
│ │ └── translations
│ │ │ └── messages.ts
│ └── productSwatchBuilder.ts
│ ├── classname
│ └── index.ts
│ ├── colorUtils
│ └── index.ts
│ ├── criteo
│ └── index.ts
│ ├── date
│ └── index.ts
│ ├── decodeString
│ └── index.tsx
│ ├── detectAdBlocker
│ └── index.ts
│ ├── environment
│ └── index.ts
│ ├── fetch
│ └── index.ts
│ ├── flatteners
│ └── objectFlattener.ts
│ ├── geolocation
│ └── index.ts
│ ├── globalContent
│ └── index.ts
│ ├── groupBy
│ └── index.ts
│ ├── imageUtils
│ └── index.ts
│ ├── isMobileApp
│ └── index.ts
│ ├── isPurchasable
│ └── index.ts
│ ├── localization
│ └── makeGetMsgFunction.ts
│ ├── numberUtils
│ └── index.ts
│ ├── postalCodeUtils
│ └── index.ts
│ ├── productContentCollection
│ └── index.ts
│ ├── productDetail
│ └── index.ts
│ ├── productWarranty
│ ├── getManufacturersWarrantyUrl.ts
│ ├── getProductWarranties.ts
│ ├── getProductWarrantiesBySubType.ts
│ └── isBothPspPrpWarranty.ts
│ ├── queryString
│ └── index.ts
│ ├── routeManager
│ ├── index.tsx
│ ├── injectedRoutes.ts
│ └── routes.ts
│ ├── search
│ └── index.ts
│ ├── serializer
│ └── index.ts
│ ├── serviceWorker
│ └── index.ts
│ ├── stringUtils
│ └── index.ts
│ ├── typeGuards
│ └── index.ts
│ ├── urlUtils
│ └── index.ts
│ ├── warrantyText
│ ├── index.ts
│ └── translations
│ │ └── messages.ts
│ └── withRouterLink
│ └── index.tsx
├── collapsible-block
└── index.tsx
├── common
└── logging
│ ├── AzureJSLogger.ts
│ ├── ConsoleLogger.ts
│ ├── getLogger.ts
│ └── index.ts
├── components.ts
├── components
├── ClickAwayListener
│ ├── ClickAwayListener.tsx
│ └── index.ts
├── Content
│ └── state.ts
├── GlobalFooter
│ ├── NewsLetterSignUp
│ │ ├── SocialIcons.tsx
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── PrimaryLinks
│ │ ├── components
│ │ │ ├── LinkGroup
│ │ │ │ └── index.tsx
│ │ │ └── icons
│ │ │ │ └── index.tsx
│ │ └── index.tsx
│ ├── SecondaryLinks
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── ValueProps
│ │ ├── components
│ │ │ └── icons
│ │ │ │ └── index.tsx
│ │ └── index.tsx
│ ├── index.tsx
│ └── utils
│ │ ├── appMap.ts
│ │ └── contentParser.ts
├── GlobalHeader
│ ├── BestBuyLogoButton.tsx
│ ├── FlyoutNavigation
│ │ ├── BrandsMenu
│ │ │ ├── BrandGroup
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── FlyoutContainer
│ │ │ └── index.tsx
│ │ ├── FlyoutNavigation.tsx
│ │ ├── ShopMenu
│ │ │ ├── CategoryGroup
│ │ │ │ └── index.tsx
│ │ │ ├── SubCategory
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── index.ts
│ │ └── translations
│ │ │ └── messages.ts
│ ├── GlobalOverlay
│ │ └── index.tsx
│ ├── Link
│ │ └── index.tsx
│ ├── MainLinks
│ │ └── index.tsx
│ ├── Navigation
│ │ ├── AccountList
│ │ │ └── index.tsx
│ │ ├── DrawerMenuButton
│ │ │ └── index.tsx
│ │ ├── Menu
│ │ │ ├── index.tsx
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── SearchBar
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── SecondaryLinks
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── StoresLink
│ │ ├── index.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── index.tsx
│ ├── setAnalyticVariable.ts
│ └── utils
│ │ ├── brandMenuDataParser.ts
│ │ ├── deduplicateSearchSuggestions.ts
│ │ ├── getParsedEvent.ts
│ │ ├── menuDataParser.ts
│ │ └── shopMenuDataParser.ts
├── Loader
│ └── index.tsx
└── MenuPanel
│ ├── components
│ ├── MenuHeader
│ │ └── index.tsx
│ ├── MenuItem
│ │ └── index.tsx
│ └── MenuSection
│ │ └── index.tsx
│ ├── index.tsx
│ └── translations
│ └── messages.ts
├── config
├── featureToggles.ts
├── getClientConfig.ts
└── getServerConfig.ts
├── constants.ts
├── containers
├── AddToCartContainer.ts
├── BasketPageContainer.ts
├── BenefitPageContainer.ts
├── CartIndicatorContainer.ts
├── CheckoutButtonContainer.ts
├── ManufacturersWarrantyPageContainer.ts
└── connectors
│ ├── ReduxBenefitLinkConnector.ts
│ ├── ReduxBenefitPageConnector.ts
│ ├── ReduxConnectorBasket.ts
│ ├── ReduxConnectorCheckout.ts
│ ├── ReduxManufacturersWarrantyPageConnector.ts
│ ├── ServicePlanProviderConnector.ts
│ └── TermsAndConditionsMsgConnector.ts
├── contentSections
└── collapsible
│ ├── Collapsible.tsx
│ └── CollapsibleControlled.tsx
├── dtm-tracker
└── index.ts
├── errors
├── ConnectionError.ts
├── ContentError.ts
├── NotFoundError.ts
├── ValidationMessagesError.ts
└── WebappError.ts
├── events.ts
├── flexbox-grid
├── components
│ ├── col.tsx
│ └── row.tsx
└── create-props.tsx
├── forms
├── form
│ └── Form.tsx
└── formItems
│ ├── CanadaPostAutoComplete
│ └── CanadaPostAddressComplete.ts
│ ├── FormItem.tsx
│ ├── ProvinceSelector
│ ├── ProvinceSelector.tsx
│ └── translations
│ │ ├── en.ts
│ │ └── fr.ts
│ ├── RadioButton
│ ├── RadioButton.tsx
│ └── RadioGroup.tsx
│ ├── RangeSelection
│ └── RangeSelection.tsx
│ ├── StateSelector
│ ├── StateSelector.tsx
│ └── translations
│ │ ├── en.ts
│ │ └── fr.ts
│ ├── Toggle
│ └── Toggle.tsx
│ ├── checkbox
│ ├── Checkbox.tsx
│ └── icon
│ │ └── CheckMarkSvg.tsx
│ ├── hiddenInput
│ └── HiddenInput.tsx
│ ├── input
│ ├── Input.tsx
│ └── formatter
│ │ └── index.tsx
│ ├── password
│ └── Password.tsx
│ ├── select
│ └── Select.tsx
│ ├── textarea
│ └── TextArea.tsx
│ └── validationRules
│ └── validationRules.ts
├── globalMessages
├── globalErrorMessage
│ └── GlobalErrorMessage.tsx
├── globalInfoMessage
│ └── GlobalInfoMessage.tsx
├── globalSuccessMessage
│ └── GlobalSuccessMessage.tsx
└── globalWarningMessage
│ └── GlobalWarningMessage.tsx
├── heading
└── heading.tsx
├── icons
├── CartSvg.tsx
├── MinusIcon.tsx
└── PlusIcon.tsx
├── index-21880cf4fc6a6.ts
├── index.ts
├── loading-indicator
└── loading-indicator.tsx
├── modal
├── errorToaster
│ └── ErrorToaster.tsx
└── modal.tsx
├── models
├── GlobalMenuContent
│ └── index.ts
├── Intl
│ └── index.ts
├── Routing
│ └── index.ts
└── index.ts
├── providers
├── ContentProvider
│ ├── ApiMenusContentProvider.ts
│ ├── fallbacks
│ │ ├── brandsMenuFallbackContentEn.ts
│ │ ├── brandsMenuFallbackContentFr.ts
│ │ ├── globalMenuFallbackContentEn.ts
│ │ ├── globalMenuFallbackContentFr.ts
│ │ ├── shopMenuFallbackContentEn.ts
│ │ └── shopMenuFallbackContentFr.ts
│ └── menuContentCache.ts
├── SearchSuggestionsProvider
│ └── ApiSearchSuggestionsProvider.ts
├── SplitIOABTestProvider
│ └── index.ts
└── index.ts
├── react
├── AddToCart
│ ├── AddToCart.tsx
│ └── components
│ │ └── AddToCartForm
│ │ ├── AddToCartForm.tsx
│ │ └── translations
│ │ └── messages.ts
├── BasketPage
│ ├── BasketPage.tsx
│ ├── components
│ │ ├── ageVerification
│ │ │ ├── AgeVerification.tsx
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── checkoutButtons
│ │ │ ├── PaypalButton
│ │ │ │ ├── PaypalButton.tsx
│ │ │ │ └── translations
│ │ │ │ │ └── messages.ts
│ │ │ ├── core
│ │ │ │ └── CheckoutButtonWrapper.tsx
│ │ │ ├── masterpassButton
│ │ │ │ └── MasterpassButton.tsx
│ │ │ └── visaCheckoutButton
│ │ │ │ └── VisaCheckoutButton.tsx
│ │ ├── lineItem
│ │ │ ├── BadgeWrapper.tsx
│ │ │ ├── BenefitLink.tsx
│ │ │ ├── ChildItems.tsx
│ │ │ ├── FreeItem.tsx
│ │ │ ├── FreeItems.tsx
│ │ │ ├── LineItem.tsx
│ │ │ ├── Offer.tsx
│ │ │ ├── RemovedLineItem.tsx
│ │ │ ├── RequiredPartsItem.tsx
│ │ │ ├── Rpu.tsx
│ │ │ ├── ServicePlanItems.tsx
│ │ │ ├── Status.tsx
│ │ │ ├── TermsAndConditionsMsg.tsx
│ │ │ └── translations
│ │ │ │ └── messages.ts
│ │ ├── orderPromotionItems
│ │ │ └── index.tsx
│ │ ├── quantityStepper
│ │ │ └── QuantityStepper.tsx
│ │ └── shipment
│ │ │ ├── Shipment.tsx
│ │ │ └── translations
│ │ │ └── messages.ts
│ ├── helpers
│ │ └── ItemCount.tsx
│ └── translations
│ │ └── messages.ts
├── BenefitPage
│ ├── BenefitPage.tsx
│ ├── ServiceBenefits.tsx
│ └── translations
│ │ └── messages.ts
├── CartIndicator
│ ├── CartIndicator.tsx
│ └── components
│ │ ├── BasketIcon
│ │ ├── BasketIcon.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ │ ├── Confirmation
│ │ ├── Confirmation.tsx
│ │ ├── ErrorCode.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ │ └── Toaster
│ │ └── index.tsx
├── CostSummary
│ ├── CostSummary.tsx
│ └── translations
│ │ └── messages.ts
├── EnterPostalCode
│ ├── EnterPostalCode.tsx
│ └── translations
│ │ └── messages.ts
├── LineItem
│ ├── ProductDetailsLineItem
│ │ ├── ProductDetailsLineItem.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── ProductImage.tsx
│ ├── ProductLineItem
│ │ └── ProductLineItem.tsx
│ └── RequiredPartsLineItem
│ │ ├── RequiredPartsLineItem.tsx
│ │ └── translations
│ │ └── messages.ts
├── ManufacturersWarrantyPage
│ ├── ManufacturersWarrantyPage.tsx
│ └── translations
│ │ └── messages.ts
├── ProductServices
│ ├── ProductService.tsx
│ ├── ProductServices.tsx
│ ├── index.tsx
│ └── translations
│ │ └── messages.ts
├── Remove
│ ├── index.tsx
│ └── translations
│ │ └── messages.ts
├── components
│ ├── LiveAgent
│ │ └── LiveAgent.tsx
│ ├── Newsletter
│ │ ├── Newsletter.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ ├── OrderCommunicationsForm
│ │ ├── OrderCommunicationsForm.tsx
│ │ └── translations
│ │ │ └── messages.ts
│ └── ReplyBox
│ │ ├── ReplyBox.tsx
│ │ ├── index.ts
│ │ └── translations
│ │ └── messages.ts
├── index.ts
└── utilities
│ ├── formatting.ts
│ ├── helpers.ts
│ └── shippingStatusHelper.ts
├── reducers
└── navigationReducer
│ ├── index.tsx
│ └── initialNavigationState.tsx
├── redux
├── addOnsPage
│ └── index.ts
├── cart
│ ├── actionTypes.ts
│ ├── index.ts
│ └── selectors.ts
├── checkout
│ ├── actionTypes.ts
│ ├── index.ts
│ ├── payment.ts
│ └── shipping.ts
├── manufacturerWarranty
│ └── index.ts
├── providers
│ ├── BaseProvider
│ │ └── ApiBaseProvider.ts
│ ├── CommunicationProvider
│ │ ├── ApiContactUsProvider.ts
│ │ └── requests
│ │ │ └── SendMessageRequest.ts
│ └── newsletterProvider.ts
├── requiredProducts
│ └── index.ts
├── selectors
│ └── offerIdsWithNoServicePlanAcceptedSelector.ts
├── servicePlan
│ └── index.ts
└── servicePlanBenefits
│ └── index.ts
├── services
├── AvailabilityProvider
│ └── ApiAvailabilityProvider.ts
├── BasketProvider
│ ├── ApiBasketProvider.ts
│ └── ApiBasketProviderFactory.ts
├── BenefitProvider
│ └── ApiBenefitProvider.ts
├── CartStoreProvider
│ └── index.ts
├── CheckoutApiClient
│ └── CheckoutApiClient.ts
├── CheckoutEvents
│ └── CheckoutEvents.ts
├── ManufacturerWarrantyProvider
│ └── ApiManufacturerWarrantyProvider.ts
├── OfferProvider
│ └── ApiOfferProvider.ts
├── RequiredProductsProvider
│ ├── ApiRequiredProductsProvider.ts
│ ├── constants.ts
│ └── dateFormatter.ts
├── SplitIOClientBuilder
│ └── index.ts
├── SplitIOService
│ └── index.ts
└── index.ts
├── stores
├── actions
│ └── index.ts
├── providers
│ └── ApiStoreProvider.ts
└── reducers
│ └── index.ts
├── utilities
├── isCheckoutPath
│ └── index.ts
├── removeDuplicateSlashInURL
│ └── index.ts
└── removeQueryParam
│ └── index.ts
├── utils
├── Analytics.ts
├── Cookie
│ └── Cookie.ts
├── CookieUtils
│ └── CookieUtils.ts
├── OrderMessageHistoryHelpers
│ └── orderMessageHistoryEnums.ts
├── builders
│ ├── objectBuilder.ts
│ └── urlBuilder.ts
├── cookies
│ ├── Cookie
│ │ └── Cookie.ts
│ └── CookieUtils
│ │ └── CookieUtils.ts
├── fetch
│ └── index.ts
├── helpTopics
│ └── index.tsx
├── index.ts
├── isMobileApp
│ └── index.ts
├── linkEvent
│ └── index.ts
├── linkPropsBuilder
│ └── index.ts
├── loader
│ └── Loader.tsx
├── loadingSkeleton
│ └── LoadingSkeleton.tsx
├── logging
│ └── index.ts
├── makeId.ts
├── ripples
│ └── ripples.tsx
├── routeManager
│ ├── index.tsx
│ ├── patternUtils.ts
│ └── routes.ts
├── scrollStyle
│ └── ScrollStyle.tsx
└── scrollToTarget
│ └── index.ts
└── wdyr.js
/Divider/Divider.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import classnames from "classnames";
3 | import * as styles from "./styles.css";
4 | const Divider = ({ className }) => {
5 | return React.createElement("hr", { className: classnames([styles.hr, className]) });
6 | };
7 | export default Divider;
8 | //# sourceMappingURL=Divider.js.map
--------------------------------------------------------------------------------
/Flexbox/Components/Grid.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import getClass from "../classNames";
3 | import createProps from "../createProps";
4 | export const Grid = (props) => {
5 | const containerClass = getClass("container-fluid");
6 | const classNames = [props.className, containerClass];
7 | return React.createElement(props.tagName || "div", createProps(props, classNames));
8 | };
9 | export default Grid;
10 | //# sourceMappingURL=Grid.js.map
--------------------------------------------------------------------------------
/Flexbox/classNames.ts:
--------------------------------------------------------------------------------
1 | import * as styles from "./styles/style.css";
2 | export const getClass = (className) => {
3 | return styles && styles[className] ? styles[className] : className;
4 | };
5 | export default getClass;
6 | //# sourceMappingURL=classNames.js.map
--------------------------------------------------------------------------------
/Flexbox/createProps.ts:
--------------------------------------------------------------------------------
1 | export const createProps = (props, classNames) => {
2 | const newProps = {};
3 | Object.keys(props)
4 | .filter((key) => key === "children")
5 | .forEach((key) => (newProps[key] = props[key]));
6 | const className = classNames.filter((cn) => cn).join(" ");
7 | return Object.assign({}, newProps, { className });
8 | };
9 | export default createProps;
10 | //# sourceMappingURL=createProps.js.map
--------------------------------------------------------------------------------
/NPS/NPSSurveyModal/translations/en.ts:
--------------------------------------------------------------------------------
1 | export const messages = {
2 | headingText: "Your feedback matters!",
3 | infoText: "Help us make your Best Buy Canada shopping experience even better!",
4 | optInButton: "Sounds Good",
5 | optOutButton: "No Thanks",
6 | questionText: "Please take part in our 3-minute survey when you're done shopping.",
7 | beginSurvey: "Begin Survey",
8 | };
9 | export default messages;
10 | //# sourceMappingURL=en.js.map
--------------------------------------------------------------------------------
/NPS/NPSSurveyModal/translations/fr.ts:
--------------------------------------------------------------------------------
1 | export const messages = {
2 | headingText: "Votre opinion compte!",
3 | infoText: "Aidez-nous à rendre votre expérience de magasinage à Best Buy encore meilleure!",
4 | optInButton: "D’accord",
5 | optOutButton: "Non, merci",
6 | questionText: "Après votre magasinage, prenez part à notre sondage de 3 minutes.",
7 | beginSurvey: "Commencer le sondage",
8 | };
9 | export default messages;
10 | //# sourceMappingURL=fr.js.map
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## NOTE
2 |
3 | Following the entry point: **/client** folder
4 |
5 | **Cong Nguyen**
--------------------------------------------------------------------------------
/Screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ladifire-opensource/bestbuy.ca--source-code/570890d55cc3a928486ffa106960eb0213c5b0f1/Screenshot.png
--------------------------------------------------------------------------------
/SuccessConfirmation/SuccessBody/SuccessBody.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import * as styles from "./style.css";
3 | const SuccessBody = (props) => {
4 | const { children, className } = props;
5 | return (React.createElement("div", { className: `${styles.body} ${className ? className : ""}`, "data-automation": "details-body" }, children));
6 | };
7 | export default SuccessBody;
8 | //# sourceMappingURL=SuccessBody.js.map
--------------------------------------------------------------------------------
/SuccessConfirmation/SuccessConfirmation.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import { CheckmarkAnimated } from "../SvgIcons";
3 | const SuccessConfirmation = ({ children, className = "" }) => {
4 | return (React.createElement("div", { className: className },
5 | React.createElement(CheckmarkAnimated, null),
6 | children));
7 | };
8 | export default SuccessConfirmation;
9 | //# sourceMappingURL=SuccessConfirmation.js.map
--------------------------------------------------------------------------------
/SuccessConfirmation/SuccessTitle/SuccessTitle.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import * as styles from "./style.css";
3 | const SuccessTitle = (props) => {
4 | const { children, className } = props;
5 | return (React.createElement("div", { className: `${styles.header} ${className ? className : ""}`, "data-automation": "success-header" }, children));
6 | };
7 | export default SuccessTitle;
8 | //# sourceMappingURL=SuccessTitle.js.map
--------------------------------------------------------------------------------
/actions/errorActions/index.ts:
--------------------------------------------------------------------------------
1 | export const errorActiontype = {
2 | clearState: "ERROR_CLEAR_STATE",
3 | error: "ERROR_OCCURED",
4 | trackPageNotFoundView: "PAGE_NOT_FOUND_LOAD",
5 | };
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/business-rules/entities/Checkout.ts:
--------------------------------------------------------------------------------
1 | export class CreatedBasket {
2 | }
3 | //# sourceMappingURL=Checkout.js.map
--------------------------------------------------------------------------------
/business-rules/entities/ManufacturerWarranty.ts:
--------------------------------------------------------------------------------
1 | export var GetManufacturerWarrantyStatus;
2 | (function (GetManufacturerWarrantyStatus) {
3 | GetManufacturerWarrantyStatus["FAILURE"] = "FAILURE";
4 | GetManufacturerWarrantyStatus["PROCESSING"] = "PROCESSING";
5 | GetManufacturerWarrantyStatus["SUCCESS"] = "SUCCESS";
6 | })(GetManufacturerWarrantyStatus || (GetManufacturerWarrantyStatus = {}));
7 | //# sourceMappingURL=ManufacturerWarranty.js.map
--------------------------------------------------------------------------------
/business-rules/entities/OrderStatus.ts:
--------------------------------------------------------------------------------
1 | export var OrderStatus;
2 | (function (OrderStatus) {
3 | OrderStatus["CONFIRMED"] = "CONFIRMED";
4 | OrderStatus["PENDING"] = "PENDING";
5 | OrderStatus["REVIEW"] = "REVIEW";
6 | })(OrderStatus || (OrderStatus = {}));
7 | //# sourceMappingURL=OrderStatus.js.map
--------------------------------------------------------------------------------
/business-rules/entities/PaymentType.ts:
--------------------------------------------------------------------------------
1 | export var PaymentType;
2 | (function (PaymentType) {
3 | PaymentType["creditDebit"] = "credit/debit";
4 | PaymentType["giftCardOnly"] = "giftcardonly";
5 | PaymentType["masterpass"] = "masterpass";
6 | PaymentType["paypal"] = "paypal";
7 | PaymentType["visaCheckout"] = "visacheckout";
8 | })(PaymentType || (PaymentType = {}));
9 | //# sourceMappingURL=PaymentType.js.map
--------------------------------------------------------------------------------
/business-rules/entities/ServicePlanBenefit.ts:
--------------------------------------------------------------------------------
1 | export var GetBenefitsStatus;
2 | (function (GetBenefitsStatus) {
3 | GetBenefitsStatus["FAILURE"] = "FAILURE";
4 | GetBenefitsStatus["PROCESSING"] = "PROCESSING";
5 | GetBenefitsStatus["SUCCESS"] = "SUCCESS";
6 | })(GetBenefitsStatus || (GetBenefitsStatus = {}));
7 | //# sourceMappingURL=ServicePlanBenefit.js.map
--------------------------------------------------------------------------------
/business-rules/entities/errors/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./ErrorType";
2 | export * from "./HttpRequestError";
3 | export * from "./InternalServerError";
4 | export * from "./StatusCode";
5 | export * from "./NotFoundError";
6 | export * from "./BadRequestError";
7 | export * from "./ConnectionError";
8 | export * from "./UnauthorizedError";
9 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/business-rules/entities/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./errors";
2 | export * from "./EmailCampaigns";
3 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/button/ButtonAppearanceEnum.ts:
--------------------------------------------------------------------------------
1 | export var ButtonAppearanceEnum;
2 | (function (ButtonAppearanceEnum) {
3 | ButtonAppearanceEnum["Primary"] = "primary";
4 | ButtonAppearanceEnum["Secondary"] = "secondary";
5 | ButtonAppearanceEnum["Tertiary"] = "tertiary";
6 | ButtonAppearanceEnum["Transparent"] = "transparent";
7 | })(ButtonAppearanceEnum || (ButtonAppearanceEnum = {}));
8 | export default ButtonAppearanceEnum;
9 | //# sourceMappingURL=ButtonAppearanceEnum.js.map
--------------------------------------------------------------------------------
/button/index.tsx:
--------------------------------------------------------------------------------
1 | export { default as Button } from "./button";
2 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/client/Decide/components/BoughtAlsoBought/index.ts:
--------------------------------------------------------------------------------
1 | import {
2 | default as BoughtAlsoBought,
3 | BoughtAlsoBoughtProps,
4 | RecommendationsProps,
5 | ProductProps,
6 | } from "./BoughtAlsoBought";
7 |
8 | export {BoughtAlsoBoughtProps, RecommendationsProps, ProductProps};
9 | export default BoughtAlsoBought;
10 |
--------------------------------------------------------------------------------
/client/Decide/components/BreadcrumbPlaceholder/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 |
3 | import * as styles from "./style.css";
4 |
5 | export default (props) => {
6 | return (
7 |
10 | );
11 | };
12 |
--------------------------------------------------------------------------------
/client/Decide/components/BreadcrumbPlaceholder/style-38f0d651cc39d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"breadcrumbPlaceholderContainer":"breadcrumbPlaceholderContainer_2PSKe","breadcrumbPlaceholder":"breadcrumbPlaceholder_13xIx"};
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/CellPhoneMonthlyPayment/style-564955dc6db57.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"pricePerMonth":"pricePerMonth_3KgGO","hideDecimals":"hideDecimals_3_X3S"};
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/CellPhoneMonthlyPayment/style.css:
--------------------------------------------------------------------------------
1 | .pricePerMonth_3KgGO {
2 | display: inline-block;
3 | }
4 |
5 | .pricePerMonth_3KgGO [class^="price"] {
6 | font-weight: 700;
7 | font-size: 16px;
8 | margin: 0;
9 | padding: 0 0 0 8px;
10 | border-left: 1px solid #c5cbd5;
11 | }
12 |
13 | .pricePerMonth_3KgGO.hideDecimals_3_X3S [class^="rightEndPrice"] {
14 | display: none;
15 | }
16 |
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/CellPhonePlanMessage/style-5633392609e97.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"plan":"plan_2-HXD"};
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/CellPhonePlanMessage/style.css:
--------------------------------------------------------------------------------
1 | .plan_2-HXD {
2 | font-size: 14px;
3 | margin-bottom: 24px;
4 | line-height: 20px;
5 | }
6 |
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/CellPhonePlanPricePlaceHolder/style-d22577a943ed.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"pricePlaceholder":"pricePlaceholder_3Fpa0","downPlaceholder":"downPlaceholder_3GkOd","monthlyPlaceholder":"monthlyPlaceholder_3bZFA","cellPhonePlanPricePlaceHolder":"cellPhonePlanPricePlaceHolder_dhsgX","pricing":"pricing_1j6Gn","half":"half_w-Tox"};
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/CellPhonePriceDown/style-0b60018ef417.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"priceDown":"priceDown_3Tdkk","price":"price_1_EAw","decimalPrice":"decimalPrice_1QYK9","taxes":"taxes_182q9"};
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/CellPhonePriceDown/style.css:
--------------------------------------------------------------------------------
1 | .priceDown_3Tdkk {
2 | display: inline-block;
3 | margin: 0 8px 0 0;
4 | }
5 |
6 | .price_1_EAw {
7 | font-size: 32px;
8 | font-weight: 700;
9 | line-height: 32px;
10 | margin: 0 4px 0 0;
11 | display: inline-block;
12 | }
13 |
14 | .decimalPrice_1QYK9 {
15 | margin-right: -4px;
16 | }
17 |
18 | .taxes_182q9 {
19 | font-size: 16px;
20 | font-weight: 100;
21 | }
22 |
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/style-2f32e60b44804.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"cellPhonePrice":"cellPhonePrice_2pHRa","priceSection":"priceSection_2x95f","pricePerMonth":"pricePerMonth_26-8V","monthly":"monthly_2W_t0","taxes":"taxes_3PBx2","down":"down_2xaaa"};
--------------------------------------------------------------------------------
/client/Decide/components/CellPhonePlanPrice/utils/hasCents.ts:
--------------------------------------------------------------------------------
1 | export const hasCents = (price: number | string) => {
2 | // we validate if we have an int number in a float format (40.00), if so we want to return false
3 | const formattedValue = Math.round((parseFloat("" + price) % 1) * 100);
4 |
5 | if (formattedValue <= 0) {
6 | return false;
7 | }
8 | return true;
9 | };
10 |
--------------------------------------------------------------------------------
/client/Decide/components/ChildProductHeader/style-83b37bebe04df.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_hqcLK","logoContainer":"logoContainer_2m9RC","title":"title_1NUxI","subHeader":"subHeader_3D-1a"};
--------------------------------------------------------------------------------
/client/Decide/components/ChildProductHeader/style.css:
--------------------------------------------------------------------------------
1 | .container_hqcLK p {
2 | margin-bottom: 0;
3 | font-size: 14px;
4 | line-height: 20px;
5 | }
6 |
7 | .logoContainer_2m9RC {
8 | width: 40px;
9 | height: 26px;
10 | margin-bottom: 8px;
11 | }
12 |
13 | .title_1NUxI {
14 | font-weight: 600;
15 | }
16 |
17 | .subHeader_3D-1a {
18 | margin-top: 8px;
19 | }
20 |
--------------------------------------------------------------------------------
/client/Decide/components/EnterPostalCode/styles-895f3471f3e49.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"updatePostalCode":"updatePostalCode_3C6cq","epcHeader":"epcHeader_fRkVs","imgCol":"imgCol_2IlO-","textCol":"textCol_1DN1y","epcHeaderRow":"epcHeaderRow_2h2kJ","zipCodeButton":"zipCodeButton__8xwJ","deliveryIcon":"deliveryIcon_CV3wI","epcInputContainer":"epcInputContainer_3jtwe"};
--------------------------------------------------------------------------------
/client/Decide/components/GeoLocation/style-d40f90c6718cb.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"locationIcon":"locationIcon_2vH5G","geoLocateButton":"geoLocateButton_2WRgl"};
--------------------------------------------------------------------------------
/client/Decide/components/GeoLocation/style.css:
--------------------------------------------------------------------------------
1 | .locationIcon_2vH5G {
2 | position: absolute;
3 | left: 50%;
4 | margin-top: -15px;
5 | margin-left: -15px;
6 | width: 30px;
7 | }
8 |
9 | .geoLocateButton_2WRgl {
10 | height: 48px;
11 | width: 48px;
12 | margin-top: 23px;
13 | margin-left: 16px;
14 | }
15 |
--------------------------------------------------------------------------------
/client/Decide/components/GspPlan/styles-497bfe95912f9.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_2haQT","footer":"footer_1LyDZ","priceContainer":"priceContainer_1WY68","price":"price_3zm7E","blockCap":"blockCap_XOFJP","cap":"cap_KNuvQ","warrantyOptionsTitle":"warrantyOptionsTitle_14UDG","warrantyOptions":"warrantyOptions_2vs-x","warrantyBenefitsContainer":"warrantyBenefitsContainer_1GGdf","warrantyBenefits":"warrantyBenefits_3wvZi"};
--------------------------------------------------------------------------------
/client/Decide/components/KeyConsiderations/components/Attribute/style-1fcbf5b2ce65.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"attributeSection":"attributeSection_2BS3C","rangeSelection":"rangeSelection_Nx2hl"};
--------------------------------------------------------------------------------
/client/Decide/components/KeyConsiderations/components/Attribute/style.css:
--------------------------------------------------------------------------------
1 | .attributeSection_2BS3C button {
2 | font-size: 12px;
3 | }
4 |
5 | .rangeSelection_Nx2hl [class*="tile"]:first-child {
6 | border-radius: 16px 0 0 16px;
7 | }
8 |
9 | .rangeSelection_Nx2hl [class*="tile"]:last-child {
10 | border-radius: 0 16px 16px 0;
11 | }
12 |
13 | .rangeSelection_Nx2hl [class*="tile"] {
14 | height: 16px;
15 | }
16 |
--------------------------------------------------------------------------------
/client/Decide/components/KeyConsiderations/style-25c5b6a0b9eb4.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"heading":"heading_25QQB","description":"description_tnKF6","keyConsiderationsContainer":"keyConsiderationsContainer_1z8pv"};
--------------------------------------------------------------------------------
/client/Decide/components/KeyConsiderations/util/index.ts:
--------------------------------------------------------------------------------
1 | export const isValidAttributeValue = (value: number, maxTiles: number = 5) =>
2 | typeof value === "number" && value > 0 && value <= maxTiles;
3 |
--------------------------------------------------------------------------------
/client/Decide/components/LocateByPostalCodeAndGeoLocation/style-261e8c8df3776.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"inputContainer":"inputContainer_255PK"};
--------------------------------------------------------------------------------
/client/Decide/components/LocateByPostalCodeAndGeoLocation/style.css:
--------------------------------------------------------------------------------
1 | .inputContainer_255PK {
2 | display: -webkit-box;
3 | display: -webkit-flex;
4 | display: flex;
5 | -webkit-box-orient: horizontal;
6 | -webkit-box-direction: normal;
7 | -webkit-flex-direction: row;
8 | flex-direction: row;
9 | }
10 |
11 | .inputContainer_255PK label {
12 | margin: 0 0 3px;
13 | }
14 |
--------------------------------------------------------------------------------
/client/Decide/components/MediaGallery/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | showingNumOfTotal: { id: "pdp.productDetails.imageGallery.SlideShow.showingNumOfTotal"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/components/NoVerifiedPurchaserMessage/style-57e00e6f902b4.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"noVerifiedPurchaserReviewsContainer":"noVerifiedPurchaserReviewsContainer_HMxVw"};
--------------------------------------------------------------------------------
/client/Decide/components/NoVerifiedPurchaserMessage/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | noVerifiedPurchaserMessage: {id: "productReviewsPage.components.NoVerifiedPurchaserMessage.message"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/components/OptionBox/styles-41973717e10ff.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"optionBox":"optionBox_3I57G","price":"price_3O7LI","text":"text_3WOvY","flexCenter":"flexCenter_7ucOS","isSelected":"isSelected_3g8j6","disabled":"disabled_3UoxZ"};
--------------------------------------------------------------------------------
/client/Decide/components/Policy/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 |
3 | import * as styles from "./style.css";
4 |
5 | export interface PolicyProps {
6 | html: string;
7 | }
8 |
9 | export function Policy(props: PolicyProps) {
10 | return ;
11 | }
12 |
13 | Policy.displayName = "Policy";
14 |
--------------------------------------------------------------------------------
/client/Decide/components/Policy/style-7297919d67d33.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"policy":"policy_3KLxX"};
--------------------------------------------------------------------------------
/client/Decide/components/PostalCodeSubmit/style-4d24ca490f23f.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"searchButton":"searchButton_26Jer","postalCodeInput":"postalCodeInput_3Gl7R","inputContainer":"inputContainer_12LiZ","buttonMargin":"buttonMargin_2ixju"};
--------------------------------------------------------------------------------
/client/Decide/components/ProductDetailsBrief/components/SimpleProductDetailsBrief/style-e436da931555e.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"simpleProductDetailsBrief":"simpleProductDetailsBrief_3EGgd","hasPadding":"hasPadding_2WZPU","detailsContainer":"detailsContainer_2mqej","productName":"productName_3j_zD"};
--------------------------------------------------------------------------------
/client/Decide/components/ProductDetailsBrief/style-a919c6b9a8121.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"productDetailsBrief":"productDetailsBrief_3EGbL","detailsContainer":"detailsContainer_3wvvA","productName":"productName_WUrjJ"};
--------------------------------------------------------------------------------
/client/Decide/components/ReviewsSortDropdown/style-a5e5884850e6c.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewsSortContainer":"reviewsSortContainer_1Xmdr","reviewsSortDropdown":"reviewsSortDropdown_1_EuD","sortLabel":"sortLabel_Rnclc"};
--------------------------------------------------------------------------------
/client/Decide/components/ReviewsToolbar/style-7f05befdd0765.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewsToolbar":"reviewsToolbar_3cXgp","verifiedPurchaserToggle":"verifiedPurchaserToggle_1tB4X","filterSortContainer":"filterSortContainer__zp5g"};
--------------------------------------------------------------------------------
/client/Decide/components/ReviewsToolbar/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | const path = "productReviewsPage.components.verifiedPurchaserToggle.";
4 |
5 | export default defineMessages({
6 | verifiedPurchaserTitle: {id: `${path}title`, defaultMessage: "Verified Buyers Only"},
7 | });
8 |
--------------------------------------------------------------------------------
/client/Decide/components/SellerPolicy/style-4256ca9808799.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"dividerWithMargin":"dividerWithMargin_1R0EB"};
--------------------------------------------------------------------------------
/client/Decide/components/SellerPolicy/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .dividerWithMargin_1R0EB {
4 | margin-left: 16px !important;
5 | margin-right: 16px !important;
6 | }
7 |
--------------------------------------------------------------------------------
/client/Decide/components/Tabs/style-1d86478f04abb.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_Tw3DC","containerFluid":"containerFluid_3ArT2","tabSection":"tabSection_3LHm7","tabHeading":"tabHeading_zEUj5","primaryContent":"primaryContent_2TZpv","tabButton":"tabButton_2G4bb","tabButtonHeader":"tabButtonHeader_OSt7x","tabButtonActive":"tabButtonActive_1d0ux","tabItemContainer":"tabItemContainer_3agCS","isActive":"isActive_2A_5I","fullWidth":"fullWidth_1yFPz"};
--------------------------------------------------------------------------------
/client/Decide/components/Tabs/utils.ts:
--------------------------------------------------------------------------------
1 | import {Children, ReactElement} from "react";
2 | import {TabItemProps} from "./TabItem";
3 |
4 | export const hasTabData = (tabItem: ReactElement): boolean => {
5 | const tabItemChildren = Children.toArray(tabItem.props.children);
6 | return !!tabItemChildren.length;
7 | };
8 |
--------------------------------------------------------------------------------
/client/Decide/components/TermsAndConditions/index.ts:
--------------------------------------------------------------------------------
1 | import TermsAndConditions, {Props, TermsAndConditionsLink} from "./TermsAndConditions";
2 | import messages from "./translations/messages";
3 |
4 | export {messages, Props, TermsAndConditionsLink};
5 | export default TermsAndConditions;
6 |
--------------------------------------------------------------------------------
/client/Decide/components/TermsAndConditions/style-68ec753867744.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"warrantyList":"warrantyList_3BfSg","warrantyListItem":"warrantyListItem_zbT7E","warrantyLink":"warrantyLink_2KoEz","checkBox":"checkBox_tUxz4"};
--------------------------------------------------------------------------------
/client/Decide/components/TermsAndConditions/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .warrantyList_3BfSg {
4 | margin-left: 32px;
5 | }
6 |
7 | .warrantyListItem_zbT7E {
8 | padding-left: 0;
9 | font-size: 14px;
10 | }
11 |
12 | .warrantyLink_2KoEz {
13 | margin-bottom: 8px;
14 | display: block;
15 | color: #0046be;
16 | }
17 |
18 | .checkBox_tUxz4 .input-container.validation-error .error-msg {
19 | max-height: none;
20 | }
21 |
--------------------------------------------------------------------------------
/client/Decide/components/TermsAndConditions/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 | import makeGetMsgFunction from "utils/localization/makeGetMsgFunction";
3 |
4 | const get = makeGetMsgFunction("components.TermsAndConditions");
5 |
6 | export default defineMessages({
7 | agreement: get("agreement"),
8 | quebec: get("quebec"),
9 | manufacturer: get("manufacturer"),
10 | geeksquad: get("geeksquad"),
11 | });
12 |
--------------------------------------------------------------------------------
/client/Decide/components/VerticalDivider/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 |
3 | import * as styles from "./style.css";
4 |
5 | interface Props {
6 | className?: string;
7 | }
8 |
9 | const VerticalDivider = (props: Props) => {
10 | return (
11 |
12 | );
13 | };
14 |
15 | export default VerticalDivider;
16 |
--------------------------------------------------------------------------------
/client/Decide/components/VerticalDivider/style-b66cc1da3b227.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"verticalDivider":"verticalDivider_2EJt6"};
--------------------------------------------------------------------------------
/client/Decide/components/VerticalDivider/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .verticalDivider_2EJt6 {
4 | border-right: 1px solid #e0e6ef;
5 | width: 0;
6 | margin-left: 8px;
7 | }
8 |
--------------------------------------------------------------------------------
/client/Decide/components/WarrantyBenefitsMessage/styles-206c1c9661548.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"title":"title_BxiHg","container":"container_1etjN"};
--------------------------------------------------------------------------------
/client/Decide/components/WarrantyBenefitsMessage/styles.css:
--------------------------------------------------------------------------------
1 | .title_BxiHg {
2 | font-weight: 600;
3 | }
4 |
5 | .container_1etjN {
6 | font-size: 14px;
7 | line-height: 24px;
8 | }
9 |
10 | .container_1etjN p,
11 | .container_1etjN li {
12 | font-size: 14px;
13 | }
14 |
--------------------------------------------------------------------------------
/client/Decide/components/WarrantyOptions/index.ts:
--------------------------------------------------------------------------------
1 | import WarrantyOptions from "./WarrantyOptions";
2 |
3 | export default WarrantyOptions;
4 |
--------------------------------------------------------------------------------
/client/Decide/components/WarrantyOptions/styles-3284808316244.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"warrantyBoxContainer":"warrantyBoxContainer_3tzjj","warrantyBox":"warrantyBox_2Hr6N","warrantyConditionsText":"warrantyConditionsText_3Bk5b"};
--------------------------------------------------------------------------------
/client/Decide/components/WarrantyOptions/styles.css:
--------------------------------------------------------------------------------
1 | .warrantyBoxContainer_3tzjj {
2 | padding: 16px 0;
3 | }
4 |
5 | .warrantyBoxContainer_3tzjj .warrantyBox_2Hr6N:last-child {
6 | margin-bottom: 0;
7 | }
8 |
9 | .warrantyConditionsText_3Bk5b {
10 | color: #55555a;
11 | font-size: 12px;
12 | line-height: 16px;
13 | margin: 8px 0 0;
14 | }
15 |
16 | @media (min-width: 1025px) {
17 | .warrantyBoxContainer_3tzjj {
18 | width: 300px;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/client/Decide/components/WriteReviewButton/style-905176af99539.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"writeReviewButton":"writeReviewButton_1dIVg","innerButton":"innerButton_25y88"};
--------------------------------------------------------------------------------
/client/Decide/components/WriteReviewButton/style.css:
--------------------------------------------------------------------------------
1 | .writeReviewButton_1dIVg {
2 | margin: 16px 0 24px;
3 | }
4 |
5 | .innerButton_25y88 {
6 | width: 100%;
7 | height: 48px;
8 | }
9 |
10 | @media (min-width: 768px) {
11 | .writeReviewButton_1dIVg {
12 | margin: 12px 0 6px;
13 | }
14 |
15 | .innerButton_25y88 {
16 | width: auto;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/client/Decide/components/WriteReviewButton/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | writeReviewButton: {id: "components.writeReviewButton"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/constants/Seller/index.ts:
--------------------------------------------------------------------------------
1 | export const sellerReviewSubmissionStatus = {
2 | duplicate: "Duplicate",
3 | fail: "Fail",
4 | invalid: "Invalid",
5 | success: "Success",
6 | };
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/AddonsPage/components/RequiredPartsOptIn/styles-631576991214b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"required-parts-opt-in":"required-parts-opt-in_gGxal","radioButton":"radioButton_2luoM"};
--------------------------------------------------------------------------------
/client/Decide/pages/AddonsPage/components/RequiredPartsOptIn/styles.css:
--------------------------------------------------------------------------------
1 | .required-parts-opt-in_gGxal {
2 | margin-top: 16px;
3 | }
4 |
5 | .required-parts-opt-in_gGxal .radioButton_2luoM {
6 | margin-left: 8px;
7 | }
8 |
--------------------------------------------------------------------------------
/client/Decide/pages/AddonsPage/components/RequiredPartsOptIn/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 | import makeGetMsgFunction from "utils/localization/makeGetMsgFunction";
3 |
4 | const get = makeGetMsgFunction("pages.AddonsPage.components.RequiredPartsOptIn");
5 |
6 | export default defineMessages({
7 | requiredPartsOptInNo: get("option.no"),
8 | requiredPartsOptInYes: get("option.yes"),
9 | });
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/AddonsPage/components/RequiredProducts/index.ts:
--------------------------------------------------------------------------------
1 | import RequiredProducts from "./RequiredProducts";
2 |
3 | export default RequiredProducts;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/AddonsPage/index.ts:
--------------------------------------------------------------------------------
1 | import AddonsPage from "./AddonsPage";
2 |
3 | export default AddonsPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/AddonsPage/utils/transformToMarkup.ts:
--------------------------------------------------------------------------------
1 | const transformToUnorderedList = (list: string[]) => {
2 | const bulletPointsHtml = list.map((text) => `${text}`).join("");
3 | return ``;
4 | };
5 |
6 | export {transformToUnorderedList};
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/CheckoutButtons/styles-8dcad89505ff1.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"buttonSeparation":"buttonSeparation_nXYqH","checkoutOptionsPanel":"checkoutOptionsPanel_2V50X","optionsNotAvailable":"optionsNotAvailable_3l4wx","checkoutOptions":"checkoutOptions_1VB1L","continueToCheckout":"continueToCheckout_3Dgpe","disabled":"disabled_136zN"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/CheckoutFlowSelector/styles-7c51052fcfa5.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"checkoutFlowSelector":"checkoutFlowSelector_2GOHR","disabled":"disabled_2W4kh","form":"form_1WdAH","qpuInCartStateMessage":"qpuInCartStateMessage_12Gas"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/EmptyCart/styles-ce30ffb36fcc8.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"content":"content_bK_Rp","icon":"icon_WXhre","textContainer":"textContainer_1rcqI"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/EmptyCart/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | emptyCartHeader: {id: "components.BasketPage.EmptyCart.emptyCartHeader"},
5 | emptyCartText: {id: "components.BasketPage.EmptyCart.emptyCartText"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/LineItem/FreeItem/styles-861af5d55d9f4.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_3mL1K","freeItemHeader":"freeItemHeader_VIvPp","freeItemContent":"freeItemContent_bgqxc","details":"details_UbyPe","quantity":"quantity_1_0EH","thumbnail":"thumbnail_3UtLY","discount":"discount_xC3Ni","offer":"offer_1SmXQ","freeItems":"freeItems_3nBmk"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/LineItem/ParentProduct/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | removeItem: {
5 | defaultMessage: "Remove",
6 | id: "BasketPage.components.LineItem.ParentProduct.removeItem",
7 | },
8 | });
9 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/LineItem/PromotionItems/styles-6510209fddcfd.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"promoItemsTable":"promoItemsTable_OPNYj","itemLevelDiscountDescription":"itemLevelDiscountDescription_dYGvA","leftCol":"leftCol_1mUt1","rightCol":"rightCol_QIvlk","promoTotalText":"promoTotalText_a3Sck","promoTotalValue":"promoTotalValue_12OR0"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/LineItem/PromotionItems/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | PromotionalDiscount: {
5 | defaultMessage: "Promotional Discount",
6 | description: "Promotional Discount header",
7 | id: "BasketPage.components.LineItem.PromotionalItems.PromotionalDiscount",
8 | },
9 | });
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/LineItem/RequiredPartsItem/styles-20da90d2dae7b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reqPartsHeader":"reqPartsHeader_2nmH8","requiredPartsItemDetails":"requiredPartsItemDetails_3br-i","requiredPartsDesc":"requiredPartsDesc_1yfJ1","seeRequiredPartsItemLink":"seeRequiredPartsItemLink_12hC_"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/LineItem/SubTotal/styles-51fefa2409f9b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"subTotalTable":"subTotalTable_zIcPD","leftCol":"leftCol_1Th4v","rightCol":"rightCol_2T-9C","subTotalText":"subTotalText_2-4c1"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/LineItem/SubTotal/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | ItemSubtotal: {
5 | defaultMessage: "Item Subtotal",
6 | description: "line item subtotal heading",
7 | id: "BasketPage.components.LineItem.SubTotal.ItemSubtotal",
8 | },
9 | });
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/LinkButton/styles-d26527f69bf7a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"linkButton":"linkButton_IaSrD","content":"content_s_5J6"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/OrderPromoItems/styles-f9f39a5e6395a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"orderPromo":"orderPromo_3_ek_"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/OrderPromoItems/styles.css:
--------------------------------------------------------------------------------
1 | .orderPromo_3_ek_ ol {
2 | margin: 0 0 8px;
3 | padding: 0;
4 | overflow: hidden;
5 | }
6 | .orderPromo_3_ek_ li {
7 | box-sizing: border-box;
8 | list-style: none;
9 | padding: 16px 16px 16px 40px;
10 | font-size: 14px;
11 | font-weight: 600;
12 | margin-bottom: 8px;
13 | }
14 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/ProductCard/ProductCardPrice/styles-2c6019203ac14.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"productPricing":"productPricing_2Qo7t"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/ProductCard/ProductCardPrice/styles.css:
--------------------------------------------------------------------------------
1 | /* override price margin */
2 | .productPricing_2Qo7t > span > div {
3 | margin: 0;
4 | }
5 | @media (min-width: 1025px) {
6 | .productPricing_2Qo7t {
7 | text-align: right;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/ProductList/styles-d56616b954a91.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"header":"header_GllEs","itemCount":"itemCount_lOr9D","saveForLaterList":"saveForLaterList_GHOj8","productListError":"productListError_5S65x","savedItem":"savedItem_jl-WA","saveForLaterEmpty":"saveForLaterEmpty_O9Uwc"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/ProductListLink/styles-21669ae293626.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"productListLink":"productListLink_3qoO1"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/ProductListLink/styles.css:
--------------------------------------------------------------------------------
1 | .productListLink_3qoO1 {
2 | display: block;
3 | font-size: 14px;
4 | font-weight: 400;
5 | line-height: 20px;
6 | margin: 24px 0 8px;
7 | }
8 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/ProductListLink/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages, FormattedMessage} from "react-intl";
2 |
3 | const config = {
4 | youAlsoHave: {
5 | id: "productListLink.youAlsoHave",
6 | },
7 | items: {
8 | id: "productListLink.items",
9 | },
10 | };
11 |
12 | const messages: {[k in keyof typeof config]: FormattedMessage.MessageDescriptor} = defineMessages(config);
13 |
14 | export default messages;
15 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/SaveForLaterButton/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages, FormattedMessage} from "react-intl";
2 |
3 | const messages: {[key: string]: FormattedMessage.MessageDescriptor} = defineMessages({
4 | buttonText: {
5 | id: "saveForLater.buttonText",
6 | },
7 | });
8 |
9 | export default messages;
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/SaveForLaterCard/MainProduct/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages, FormattedMessage} from "react-intl";
2 |
3 | const messages: {[key: string]: FormattedMessage.MessageDescriptor} = defineMessages({
4 | offlineMessage: {id: "saveForLaterCard.mainProduct.offlineMessage"},
5 | });
6 |
7 | export default messages;
8 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/SaveForLaterCard/MoveToCartButton/styles-86d54841233f.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"moveButton":"moveButton_3OjoX","moveButtonIcon":"moveButtonIcon_23lKe"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/SaveForLaterCard/MoveToCartButton/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages, FormattedMessage} from "react-intl";
2 |
3 | const messages: {[key: string]: FormattedMessage.MessageDescriptor} = defineMessages({
4 | buttonText: {
5 | id: "moveToCart.buttonText",
6 | },
7 | });
8 |
9 | export default messages;
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/SaveForLaterCard/RemoveSavedItemButton/styles-c07980651a24e.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"removeSavedItemButton":"removeSavedItemButton_QckzF","removeSavedItemButtonIcon":"removeSavedItemButtonIcon_1pmnm"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/SaveForLaterCard/RemoveSavedItemButton/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages, FormattedMessage} from "react-intl";
2 |
3 | const messages: {[key: string]: FormattedMessage.MessageDescriptor} = defineMessages({
4 | buttonText: {
5 | id: "removeSavedItem.buttonText",
6 | },
7 | });
8 |
9 | export default messages;
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/TermsAndConditions/styles-835ad76886b13.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"geekSquadIcon":"geekSquadIcon_3chxu","geekSquadHeader":"geekSquadHeader_Hvutd","topWrapper":"topWrapper_8EdW6","geekSquadTC":"geekSquadTC_1ouoc"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/TermsAndConditions/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | geekSquadHeader: {
5 | id: "pages.BasketPage.components.TermsAndConditions.geekSquadHeader",
6 | },
7 | errorMsg: {
8 | id: "pages.BasketPage.components.TermsAndConditions.errorMsg",
9 | },
10 | });
11 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/VendorItem/styles-de1b23e4262c2.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"vendor":"vendor_2QFzx","header":"header_m7iIF","lineItems":"lineItems_2PRRQ","soldBy":"soldBy_2nCbc","sellerLogo":"sellerLogo_2hCpx"};
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/components/VendorItem/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages, FormattedMessage} from "react-intl";
2 |
3 | const messages: {[key: string]: FormattedMessage.MessageDescriptor} = defineMessages({
4 | soldByEWA: {id: "BasketPage.components.VendorItem.SoldByEWA"},
5 | });
6 |
7 | export default messages;
8 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/constants/constants.ts:
--------------------------------------------------------------------------------
1 | export const BBYCA = "bbyca";
2 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/index.ts:
--------------------------------------------------------------------------------
1 | import CartPage from "./CartPage";
2 |
3 | export default CartPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/BasketPage/utils/hasQPUableItem/index.ts:
--------------------------------------------------------------------------------
1 | import {CartLineItem} from "models/Basket";
2 |
3 | const hasQPUableItem = (lineItems: CartLineItem[]): boolean => {
4 | return (
5 | lineItems.filter(({removed, savedForLater, availability}) => {
6 | return availability?.pickup?.purchasable && removed !== true && savedForLater !== true;
7 | }).length > 0
8 | );
9 | };
10 |
11 | export default hasQPUableItem;
12 |
--------------------------------------------------------------------------------
/client/Decide/pages/BenefitsPage/style-93fdefb6f6a98.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"benefitsPageContainer":"benefitsPageContainer_Dl1EW","backBtnContainer":"backBtnContainer_2qvWp","backButton":"backButton_29WGZ","leftChevron":"leftChevron_3HmCt"};
--------------------------------------------------------------------------------
/client/Decide/pages/BenefitsPage/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | backBtn: { id: "checkout.containers.benefits.backBtn" },
5 | title: { id: "checkout.containers.benefits.title" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/BusinessContactPage/components/CallUsCard/style-54ccc079fc81b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"noMargin":"noMargin_2gN6C","title":"title_2wTp9","helpLink":"helpLink_1XWDK"};
--------------------------------------------------------------------------------
/client/Decide/pages/BusinessContactPage/components/CallUsCard/style.css:
--------------------------------------------------------------------------------
1 | .noMargin_2gN6C {
2 | margin: 0;
3 | }
4 |
5 | .title_2wTp9 {
6 | margin-bottom: 8px;
7 | font-weight: 600;
8 | }
9 |
10 | .helpLink_1XWDK {
11 | font-size: 14px;
12 | font-weight: 600;
13 | }
14 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewGuidelines/style-8c0295c35c47.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewGuidelines":"reviewGuidelines_QD8Ix"};
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewGuidelines/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .reviewGuidelines_QD8Ix {
4 | margin-top: 8px;
5 | }
6 |
7 | .reviewGuidelines_QD8Ix li {
8 | font-size: 14px;
9 | line-height: 20px;
10 | color: #1d252c;
11 | }
12 |
13 | @media (min-width: 1025px) {
14 | .reviewGuidelines_QD8Ix {
15 | width: 380px;
16 | margin: 0 0 0 128px;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewStarRate/index.tsx:
--------------------------------------------------------------------------------
1 | import ReviewStarRate from "./ReviewStarRate";
2 |
3 | export default ReviewStarRate;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewStarRate/style-2d258e8f07449.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"overallRatingLabel":"overallRatingLabel_37W0e","ratingContent":"ratingContent_2xvyW"};
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewStarRate/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .overallRatingLabel_37W0e {
4 | font-size: 16px;
5 | line-height: 24px;
6 | margin-bottom: 8px;
7 | font-weight: 700;
8 | }
9 |
10 | .ratingContent_2xvyW {
11 | height: 70%;
12 | }
13 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewStarRate/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | overallRating: {id: "pages.productReview.overallRating"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewSubmitConfirmation/index.tsx:
--------------------------------------------------------------------------------
1 | import ReviewSubmitConfirmation from "./ReviewSubmitConfirmation";
2 |
3 | export default ReviewSubmitConfirmation;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewSubmitConfirmation/styles-742f3700b277a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewSubmitConfirmationContainer":"reviewSubmitConfirmationContainer_2qDX3","thanksHeadline":"thanksHeadline_66slj","startShoppingLink":"startShoppingLink_2JfF_","rightArrowIcon":"rightArrowIcon_2K0A4"};
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/components/ReviewSubmitConfirmation/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | headline: { id: "pages.productReview.thankYou.headline" },
5 | legacyParagraph: { id: "pages.productReview.thankYou.legacyParagraph" },
6 | paragraph: { id: "pages.productReview.thankYou.paragraph" },
7 | startShoppingLink: { id: "pages.productReview.thankYou.startShoppingLink" },
8 | });
9 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/index.tsx:
--------------------------------------------------------------------------------
1 | import CreateProductReviewPage from "./CreateProductReviewPage";
2 |
3 | export enum CreateReviewPageDisplayModes {
4 | form = "form",
5 | success = "success",
6 | failure = "failure",
7 | }
8 |
9 | export default CreateProductReviewPage;
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateProductReviewPage/style-9fce4313659f5.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"headline":"headline_tk6r1","productDetailsBriefLink":"productDetailsBriefLink_1TrCi","reviewSubmitErrorContainer":"reviewSubmitErrorContainer_3DO8v","customBreadcrumbListPadding":"customBreadcrumbListPadding_1uwIq","muiOverride":"muiOverride_3no6Q","dividerWithMargin":"dividerWithMargin_2GHAm"};
--------------------------------------------------------------------------------
/client/Decide/pages/CreateSellerReviewPage/index.ts:
--------------------------------------------------------------------------------
1 | import CreateSellerReviewPage from "./CreateSellerReviewPage";
2 |
3 | export default CreateSellerReviewPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/CreateSellerReviewPage/style-25cff2ac91f7d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"formContainer":"formContainer_39gYH","instructionContainer":"instructionContainer_3VZah","instructionContent":"instructionContent_3Zz4u","termsContainer":"termsContainer_25Njr","ratingValue":"ratingValue_9Xg1Q","error":"error_2KEWu","returnButton":"returnButton_6S_K7","circularProgress":"circularProgress_3CrUF","container":"container_EwahQ","divider":"divider_3l_kk"};
--------------------------------------------------------------------------------
/client/Decide/pages/InHomeConsultationSignUpPage/styles-79ffa675dc31c.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"submitButton":"submitButton_jKmyh","title":"title_f3-gJ","pageContainer":"pageContainer_2qmeI","contentContainer":"contentContainer_2JApC","label":"label_3BGsJ","input":"input_22qJL","select":"select_2OmIg","mutliSelect":"mutliSelect_1PB1_","hidden":"hidden_1BYFx","footerText":"footerText_FnSQT","fullHeight":"fullHeight_1fxO_"};
--------------------------------------------------------------------------------
/client/Decide/pages/InjectedPage/index.ts:
--------------------------------------------------------------------------------
1 | import InjectedPage from "./InjectedPage";
2 |
3 | export default InjectedPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/ManufacturerWarrantyPage/style-176d815745ad5.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"manufacturerPageContainer":"manufacturerPageContainer_Pxzfy","backBtnContainer":"backBtnContainer_ochVQ","backButton":"backButton_2lbXM","leftChevron":"leftChevron_2O3PF"};
--------------------------------------------------------------------------------
/client/Decide/pages/ManufacturerWarrantyPage/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | backBtn: { id: "checkout.containers.manufacturer.backBtn" },
5 | title: { id: "checkout.containers.manufacturer.title" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/MarketplaceSignUpPage/FormOptions.ts:
--------------------------------------------------------------------------------
1 | export enum RadioButtonOption {
2 | yes = "Yes",
3 | no = "No",
4 | }
5 |
6 | export enum CountryOption {
7 | canada = "Canada",
8 | usa = "United States",
9 | other = "Other Country",
10 | }
11 |
--------------------------------------------------------------------------------
/client/Decide/pages/MarketplaceSignUpPage/utils/helper.ts:
--------------------------------------------------------------------------------
1 | export const mapToValues = (data: {}, acc: {}, fieldName: string) => {
2 | acc[fieldName] = data[fieldName].value;
3 | return acc;
4 | };
5 |
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/ActivationProgressHeader/styles-7f5f35f79e32b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"activationProgressHeaderContainer":"activationProgressHeaderContainer_372ZN","activationProgressHeader":"activationProgressHeader_vzl66","pageTitle":"pageTitle_95_UJ","stylesOverride":"stylesOverride_1Puhf"};
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/CitySelector/styles-ece592b6f1ca4.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"mediumInput":"mediumInput_FXMXx"};
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/CitySelector/styles.css:
--------------------------------------------------------------------------------
1 | .mediumInput_FXMXx {
2 | width: 100%;
3 | padding-bottom: 24px;
4 | }
5 | @media (min-width: 768px) {
6 | .mediumInput_FXMXx {
7 | width: 190px;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/Controllers/styles-815775b8fc1ed.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"stepsControllers":"stepsControllers_3FBJI","continueButton":"continueButton_2xP9h","cancelButton":"cancelButton_ZWmi9"};
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/IconInfoItem/styles-ed0d96cd4b7df.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"iconInfoItem":"iconInfoItem_3U0m9","column":"column_21NsT","icon":"icon_2UpYh","row":"row_1ciRT"};
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/MobileActivationLineItem/styles-b6545f3065db6.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"mobileActivationLineItem":"mobileActivationLineItem_2SIEf","container":"container_3uExB","productImage":"productImage_35oEX","productImageColumn":"productImageColumn_2c4b7","productNameColumn":"productNameColumn_27D3U","productPriceColumn":"productPriceColumn_3jaZr"};
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/MobileActivationStepsGuide/styles-14662ef1aff0f.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"mobileActivationStepsGuide":"mobileActivationStepsGuide_3bO0f","row":"row_36k1E","column":"column_1VMh6"};
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/MobileActivationStepsGuide/styles.css:
--------------------------------------------------------------------------------
1 | .mobileActivationStepsGuide_3bO0f {
2 | margin-bottom: 24px;
3 | }
4 |
5 | .row_36k1E {
6 | margin: 0;
7 | }
8 |
9 | .column_1VMh6 {
10 | padding: 0;
11 | }
12 |
13 | @media (max-width: 767px) {
14 | .column_1VMh6 {
15 | padding: 12px;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/MobileActivationType/ActivationOption.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import {ReactNode} from "react-redux";
3 |
4 | interface ActivationOptionProps {
5 | header: ReactNode;
6 | body: ReactNode;
7 | }
8 |
9 | export const ActivationOption: React.FC = ({header, body}) => (
10 | <>
11 | {header}
12 | {body}
13 | >
14 | );
15 |
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/StoreSelector/styles-0982e786f3399.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"mediumInput":"mediumInput_HH_hm"};
--------------------------------------------------------------------------------
/client/Decide/pages/MobileActivationPage/components/StoreSelector/styles.css:
--------------------------------------------------------------------------------
1 | .mediumInput_HH_hm {
2 | width: 100%;
3 | padding-bottom: 24px;
4 | }
5 | @media (min-width: 768px) {
6 | .mediumInput_HH_hm {
7 | width: 395px;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ActivationGiftCard/style-b5b7acdb84137.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"giftCardSection":"giftCardSection_2eifY","activationTitle":"activationTitle_P6zn1"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ActivationGiftCard/style.css:
--------------------------------------------------------------------------------
1 | .giftCardSection_2eifY {
2 | margin-bottom: 24px;
3 | }
4 |
5 | .activationTitle_P6zn1,
6 | .giftCardSection_2eifY p {
7 | font-size: 14px;
8 | line-height: 20px;
9 | margin: 0;
10 | }
11 |
12 | .activationTitle_P6zn1 {
13 | font-weight: 600;
14 | margin-bottom: 8px;
15 | }
16 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ActivationGiftCard/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | activationTitle: {id: "components.ProductPricing.CellPhonePrice.activationTitle"},
5 | activationOffer: {id: "components.ProductPricing.CellPhonePrice.activationOffer"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/BlueShirtChat/components/ChatStatus/styles-7fe08c2918ec9.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"chatStatus":"chatStatus_1ogtJ"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/BlueShirtChat/components/ChatStatus/styles.css:
--------------------------------------------------------------------------------
1 | .chatStatus_1ogtJ {
2 | font-size: 12px;
3 | line-height: 16px;
4 | display: inline-block;
5 | font-weight: 600;
6 | }
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/BundleOverview/style-90cdd5537c991.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"packageOverviewContainer":"packageOverviewContainer_28Ybg","bundleText":"bundleText_3E03T"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/BundleOverview/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | packageOverviewSubTitle: { id: "browse.components.BundleOverview.packageOverviewSubTitle" },
5 | packageOverviewTitle: { id: "browse.components.BundleOverview.packageOverviewTitle" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/CorrectionNotice/style-2491f17ab2c3a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"correctionNoticeContainer":"correctionNoticeContainer_l2Lnz"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/CorrectionNotice/style.css:
--------------------------------------------------------------------------------
1 | .correctionNoticeContainer_l2Lnz {
2 | margin: 24px 0;
3 | }
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/DeliveryNotice/style-10f4042631f23.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"icon":"icon_3wC1X","iconStyle":"iconStyle_2PywI","deliveryNoticeMessageTitle":"deliveryNoticeMessageTitle_2EJpa","deliveryNotice":"deliveryNotice_3-C9v","hasEventLink":"hasEventLink_60gyf","deliveryNoticeMessageBody":"deliveryNoticeMessageBody_1ulBo","deliveryNoticeLink":"deliveryNoticeLink_3Say-","rightArrowIcon":"rightArrowIcon_zfzpd"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ExploreReviewsButton/style-a4080d43ab98a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"divider":"divider_1WwJd","exploreAllReviewsButtonDivider":"exploreAllReviewsButtonDivider_1p_Cs","innerButton":"innerButton_1SLzU"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ExploreReviewsButton/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | seeAllReviews: {id: "pages.productDetailPage.components.exploreReviewsButton.seeAllReviews"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/GranularRatings/index.ts:
--------------------------------------------------------------------------------
1 | import GranularRatings from "./GranularRatings";
2 |
3 | export default GranularRatings;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/GranularRatings/style-55f63567da51.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"heading":"heading_2sZrs","scaleTitle":"scaleTitle_3qt8b","scaleValue":"scaleValue_2PopJ","reviewFilterContainer":"reviewFilterContainer_1ePMh","reviewFilterItem":"reviewFilterItem_3cQMQ","starContainer":"starContainer_ByC6X","percentageBarContainer":"percentageBarContainer_2YWBI","percentageBar":"percentageBar_3ONek"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/GranularRatings/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | heading: {id: "components.SortByRating.heading"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/MarketplaceSellerInformation/style-6c54f1d3a19e2.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_3A34n","marketplaceContainer":"marketplaceContainer_1gGCu","marketplaceLogo":"marketplaceLogo_1z8LD","marketplaceNameLink":"marketplaceNameLink_2PX6p","marketplaceInfo":"marketplaceInfo_3JskU","marketplaceRating":"marketplaceRating_2CkfG","secondarySellerLink":"secondarySellerLink_3L82s","soldBy":"soldBy_1zL9W"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/MarketplaceSellerInformation/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | sellerRating: { id: "product.containers.pdpPage.sellerRating" },
5 | soldAndShippedBy: { id: "browse.components.marketplaceSeller.soldAndShippedBy" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/MobileOfferDetails/components/MobilePlansInquiryButton/style-407a199803ddb.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"mobileFormLink":"mobileFormLink_mlWXD","mobileFormButton":"mobileFormButton_4SDiw"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/MobileOfferDetails/components/MobilePlansInquiryButton/style.css:
--------------------------------------------------------------------------------
1 | .mobileFormLink_mlWXD {
2 | width: 100%;
3 | }
4 |
5 | .mobileFormLink_mlWXD:hover {
6 | text-decoration: none;
7 | }
8 |
9 | .mobileFormButton_4SDiw {
10 | display: block;
11 | height: 48px;
12 | width: 100%;
13 | padding: 0;
14 | }
15 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/MobileOfferDetails/components/MobilePlansInquiryButton/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | mobileFormButton: {id: "pdpPage.mobileOfferDetails.mobileFormButton"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/MobileOfferDetails/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | storeStatusMessage: {id: "pdpPage.mobileOfferDetails.storeStatusMessage"},
5 | storeStatusMessageCta: {id: "pdpPage.mobileOfferDetails.storeStatusMessageCta"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/OpenBoxOffer/style-67b479320428a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_3lJl_","price":"price_AI11M","icon":"icon_1ymbj","link":"link_2GHIn"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/OpenBoxOffer/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | brandNew: {id: "components.openBoxOffer.brandNew"},
5 | getItFor: {id: "components.openBoxOffer.getItFor"},
6 | shopNew: {id: "components.openBoxOffer.shopNew"},
7 | shopOutlet: {id: "components.openBoxOffer.shopOutlet"},
8 | shopOther: {id: "components.openBoxOffer.shopOther"},
9 | });
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/BazaarvoiceQuestionsTab/styles-56fdd2edddf32.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"containerText":"containerText_3bisX"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/BazaarvoiceQuestionsTab/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | errorLoadingQuestions: {id: "components.QuestionsList.errorLoadingQuestions"},
5 | pageIntroCopy: {id: "components.QuestionsList.pageIntroCopy"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/DetailsAndSpecs/style-c38d2f5a56baa.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"showMoreDetailsToggle":"showMoreDetailsToggle_3j2aQ","showMoreDetailsBody":"showMoreDetailsBody_J9bLJ"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/DetailsAndSpecs/style.css:
--------------------------------------------------------------------------------
1 | .showMoreDetailsToggle_3j2aQ button {
2 | margin: 8px 0 0;
3 | }
4 |
5 | .showMoreDetailsToggle_3j2aQ button {
6 | padding-left: 16px;
7 | }
8 |
9 | .showMoreDetailsBody_J9bLJ {
10 | padding: 0;
11 | }
12 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/DetailsAndSpecs/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | specsExpandableShowMoreDetails: {id: "components.ProductDetailTab.DetailsAndSpecs.expandableShowMoreDetails"},
5 | specsExpandableShowLessDetails: {id: "components.ProductDetailTab.DetailsAndSpecs.expandableShowLessDetails"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/MoreInformation/components/ProductDescription/style-fe72ec9a6d186.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"productDescription":"productDescription_2WBlx"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/MoreInformation/style-03e64773d21f9.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"readMoreToggle":"readMoreToggle_3HkvG","readMoreBody":"readMoreBody_OAsbp","moreInformation":"moreInformation_1u1Nn","bundle":"bundle_2RaA_","supportContent":"supportContent_2_u6f"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/MoreInformation/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | moreInformationExpandableReadMore: {id: "components.ProductDetailTab.MoreInformation.expandableReadMore"},
5 | moreInformationExpandableShowLess: {id: "components.ProductDetailTab.MoreInformation.expandableShowLess"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/ProductSpecs/style-71d77a9279174.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"specCategory":"specCategory_2rDp2","groupName":"groupName_3O9-v","itemContainer":"itemContainer_uqm6b","itemName":"itemName_GaNqp","itemValue":"itemValue_3FLTX"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/ProductWhatsIncluded/style-91606e57d964a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"boxContentsContainer":"boxContentsContainer_1bKGR","boxContents":"boxContents_2Q4kV"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/ReturnPolicy/BundleReturnPolicy/style-12bfba44fdf27.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"bundleReturnPolicy":"bundleReturnPolicy_2heuu"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/ReturnPolicy/BundleReturnPolicy/style.css:
--------------------------------------------------------------------------------
1 | .bundleReturnPolicy_2heuu {
2 | font-size: 16px;
3 | line-height: 24px;
4 | color: #1d252c;
5 | margin: 0;
6 | padding: 8px 16px 24px;
7 | }
8 | @media (min-width: 768px) {
9 | .bundleReturnPolicy_2heuu {
10 | padding: 0;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/ReturnPolicy/BundleReturnPolicy/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | content: {id: "components.BundleReturnPolicy.content"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/ReturnPolicy/ProductReturnPolicy/style-672908383d13a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"specCategory":"specCategory_1KbYe","container":"container_1XvFQ","overwriteContainer":"overwriteContainer_cqIma","specContainer":"specContainer_2iBkq","icon":"icon_2C0wN","arrowIcon":"arrowIcon_Q5JmT","disclaimer":"disclaimer_3wcXI","ctaContainer":"ctaContainer_1SODH"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductDetailTab/components/ReviewsTab/style-778c60bd51e77.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewsListContainer":"reviewsListContainer_34mWL","reviewsTabContainer":"reviewsTabContainer_1y4c0","customMargin":"customMargin_3YLAT","exploreReviewContainer":"exploreReviewContainer_3pLTA","customButtonMargin":"customButtonMargin_15NhW"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductFooter/style-a7cb848b0eb7f.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"header":"header_3X4FQ","divider":"divider_1EIyV","productFooter":"productFooter_3kgRq"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductFooter/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | customersAlsoViewed: {id: "pdp.recommendations.customersAlsoViewed"},
5 | recentlyViewed: {id: "pdp.recommendations.recentlyViewed"},
6 | sponsoredProducts: {id: "pdp.recommendations.sponsoredProducts"},
7 | });
8 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductLineItem/styles-2018755099959.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"productLineItem":"productLineItem_2Xx2_","productDetails":"productDetails_21w-h","productSku":"productSku_2t4GT"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductOfferDetails/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | seeAllVendors: { id: "product.containers.pdpPage.seeAllVendors" },
5 | soldByBestBuy: { id: "product.containers.pdpPage.soldByBestBuy" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductSizeVariants/style-64d80ea5707fb.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"selectedScreenSizeMessage":"selectedScreenSizeMessage_L2cTo","sizeVariantWrapper":"sizeVariantWrapper_1VGei","sizeVariantsLoading":"sizeVariantsLoading_2zevG"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductSizeVariants/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .selectedScreenSizeMessage_L2cTo {
4 | font-size: 14px;
5 | margin-bottom: 8px;
6 | line-height: 20px;
7 | }
8 |
9 | .sizeVariantWrapper_1VGei {
10 | margin: 16px;
11 | }
12 |
13 | .sizeVariantsLoading_2zevG {
14 | margin: 16px;
15 | }
16 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ProductSizeVariants/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | selectedScreenSizeMessage: { id: "components.ProductSizeVariants.selectedScreenSizeMessage" },
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ReviewFeedback/style-fc789a16afd2b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewFeedbackContainer":"reviewFeedbackContainer_2ulTr","reviewFeedbackInnerContainer":"reviewFeedbackInnerContainer_tSrG5","feedbackIcon":"feedbackIcon_N7x5r","feedbackCount":"feedbackCount_1WYja","reportButton":"reportButton_k-ZYW","feedbackSubmitted":"feedbackSubmitted_2dFYm","reportedText":"reportedText_2s6hL"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ReviewsAggregation/components/RecommendationSummary/style-159c7a84efc63.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"recommendationSummaryTitle":"recommendationSummaryTitle_36z18","recommendationSummaryDescription":"recommendationSummaryDescription_Rw2SR","boldedText":"boldedText_3-Yzd","percentageContainer":"percentageContainer_1Xk9N","percentage":"percentage_34Ose","happyFace":"happyFace_2xA3C"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ReviewsAggregation/style-798e941bc913f.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewsStatsContainer":"reviewsStatsContainer_37pYP","reviewsTabContainer":"reviewsTabContainer_2eeqn","reviewsStatsRightPane":"reviewsStatsRightPane_1t9yW","noBorder":"noBorder_1QYzn","recommendationSummary":"recommendationSummary_2irZy","reviewsStatsLeftPane":"reviewsStatsLeftPane_3VWQY"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/ShowcaseBanner/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | cta: { id: "components.ShowcaseBanner.cta" },
5 | bannerLabel: { id: "components.ShowcaseBanner.bannerLabel" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/SoldByBestBuy/style-77c3edca7d287.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"soldByBestBuy":"soldByBestBuy_44tSZ"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/SoldByBestBuy/style.css:
--------------------------------------------------------------------------------
1 | .soldByBestBuy_44tSZ {
2 | font-size: 14px;
3 | font-weight: 600;
4 | display: -webkit-box;
5 | display: -webkit-flex;
6 | display: flex;
7 | -webkit-box-align: center;
8 | -webkit-align-items: center;
9 | align-items: center;
10 | box-sizing: border-box;
11 | }
12 |
13 | .soldByBestBuy_44tSZ svg {
14 | margin-right: 8px;
15 | position: relative;
16 | }
17 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/SoldByBestBuy/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | soldByBestBuy: {id: "pdpPage.soldByBestBuy"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/SpecialOffers/style-e03751774c4ca.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"offersContainer":"offersContainer_3qj_5","offerItem":"offerItem_1gsnn","showClickable":"showClickable_VgLuA","container":"container_BGGX_","callOutTitle":"callOutTitle_NRbU7","callOutMessage":"callOutMessage_2pO-x","addToCartIcon":"addToCartIcon_13OSn"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/TargettedContent/index.ts:
--------------------------------------------------------------------------------
1 | import TargettedContent from "./TargettedContent";
2 | export default TargettedContent;
3 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/Variants/components/VariantTextPillBox/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | showMore: {id: "pdp.productOfferDetails.variants.showMore"},
5 | showFewer: {id: "pdp.productOfferDetails.variants.showFewer"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/Variants/components/style-39cc1d8f7c87c.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"variantContainer":"variantContainer_3yRVs","header":"header_2NfdC","variantValue":"variantValue_wU-VZ"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/Variants/components/style.css:
--------------------------------------------------------------------------------
1 | .variantContainer_3yRVs {
2 | margin: 0;
3 | }
4 |
5 | .header_2NfdC {
6 | margin: 0 0 8px;
7 | line-height: 20px;
8 | font-size: 14px;
9 | }
10 |
11 | .variantValue_wU-VZ {
12 | font-weight: normal;
13 | }
14 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/Variants/style-b2f442e6b61c7.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"variantContainer":"variantContainer_1RSWe"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/Variants/style.css:
--------------------------------------------------------------------------------
1 | .variantContainer_1RSWe {
2 | margin-top: 24px;
3 | }
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/WarrantyBenefits/index.ts:
--------------------------------------------------------------------------------
1 | import WarrantyBenefits from "./WarrantyBenefits";
2 | export default WarrantyBenefits;
3 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/components/WarrantyBenefits/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 | import makeGetMsgFunction from "utils/localization/makeGetMsgFunction";
3 |
4 | const get = makeGetMsgFunction("pages.productDetailPage.components.warrantyBenefits");
5 |
6 | export default defineMessages({
7 | benefits: get("benefits"),
8 | okay: get("okay"),
9 | gsp: get("gsp"),
10 | grp: get("grp"),
11 | });
12 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/index.ts:
--------------------------------------------------------------------------------
1 | import ProductDetailPage from "./ProductDetailPage";
2 |
3 | export default ProductDetailPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/utils/formatDateForDeliveryMessage.ts:
--------------------------------------------------------------------------------
1 | import * as moment from "moment";
2 |
3 | const formatDateForDeliveryMessage = (year: number, month: number, day: number) => {
4 | const FULL_MONTH_DAY_YEAR_FORMAT = "LL";
5 | return moment(new Date(year, month, day)).format(FULL_MONTH_DAY_YEAR_FORMAT);
6 | };
7 |
8 | export default formatDateForDeliveryMessage;
9 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/utils/isDateToday.ts:
--------------------------------------------------------------------------------
1 | import {validateDateObjects, isSameDay} from "utils/date";
2 |
3 | const isDateToday = (year: number, month: number, day: number) => {
4 | const today = new Date(Date.now());
5 | const compare = new Date(year, month, day);
6 | validateDateObjects(compare);
7 | return isSameDay(compare, today);
8 | };
9 | export default isDateToday;
10 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/utils/isDateTomorrow.ts:
--------------------------------------------------------------------------------
1 | import {validateDateObjects, isSameDay} from "utils/date";
2 |
3 | const isDateTomorrow = (year: number, month: number, day: number): boolean => {
4 | const tomorrow = new Date(Date.now());
5 | const compare = new Date(year, month, day);
6 | tomorrow.setDate(tomorrow.getDate() + 1);
7 | validateDateObjects(compare);
8 | return isSameDay(compare, tomorrow);
9 | };
10 |
11 | export default isDateTomorrow;
12 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductDetailPage/utils/isSyndicated.ts:
--------------------------------------------------------------------------------
1 | import {SyndicationSource} from "models";
2 |
3 | export default (syndicationSource: SyndicationSource) =>
4 | !!syndicationSource && !!Object.keys(syndicationSource).length && !!syndicationSource.name;
5 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductOffersPage/style-a09460cd09f19.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"loadingIndicator":"loadingIndicator_16pdJ","link":"link_GKRoG","backArrow":"backArrow_3zcaN","offerContainer":"offerContainer_1QGad","content":"content_3hXD3","divider":"divider_NCImL"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductOffersPage/translations/messages.ts:
--------------------------------------------------------------------------------
1 |
2 | import { defineMessages } from "react-intl";
3 |
4 | export default defineMessages({
5 | back: { id: "offer.back" },
6 | title: { id: "offer.title" },
7 | });
8 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductReviewVerificationPage/VerificationPlaceHolder/style-2f81d3a8659ea.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_1czpQ","verificationPlaceholder":"verificationPlaceholder_1GK5l","titlePlaceholder":"titlePlaceholder_VVZ0L","paragraphPlaceholder":"paragraphPlaceholder_1jbDj","linkPlaceholder":"linkPlaceholder_2jffp"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductReviewVerificationPage/index.tsx:
--------------------------------------------------------------------------------
1 | import ProductReviewVerificationPage from "./ProductReviewVerificationPage";
2 |
3 | export default ProductReviewVerificationPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductReviewVerificationPage/style-2e4a1fddcadd3.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewEmailVerificationContainer":"reviewEmailVerificationContainer_1hpkA","thanksHeadline":"thanksHeadline_2-Etj","startShoppingLink":"startShoppingLink_15k8_","rightArrowIcon":"rightArrowIcon_2aNG3"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductReviewsPage/index.ts:
--------------------------------------------------------------------------------
1 | import ProductReviewsPage from "./ProductReviewsPage";
2 |
3 | export default ProductReviewsPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/ProductSellersPage/components/ProductSellerPlaceholder/style-85c789be6cde3.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"pricePlaceholder":"pricePlaceholder_3eQ1C","addToCartPlaceholder":"addToCartPlaceholder_1kpCh","sellerNamePlaceholder":"sellerNamePlaceholder_3UPBA","sellerReviewPlaceholder":"sellerReviewPlaceholder_1NfST","sellerProfilePlaceholder":"sellerProfilePlaceholder_32vFj","offerPlaceholder":"offerPlaceholder_3cjrw"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductSellersPage/components/ProductSellersPlaceholder/style-18fc41b232f41.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"productNamePlaceholder":"productNamePlaceholder_2eK2O","productImagePlaceholder":"productImagePlaceholder_1fpxS","productPlaceholder":"productPlaceholder_3iKP7"};
--------------------------------------------------------------------------------
/client/Decide/pages/ProductSellersPage/index.ts:
--------------------------------------------------------------------------------
1 | import ProductSellersPage from "./ProductSellersPage";
2 |
3 | export default ProductSellersPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/SellerProfilePage/components/SellerFeedbackItem/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | fullname: { id: "accountsCommunication.components.Reviews.fullName" },
5 | locationDate: { id: "accountsCommunication.components.Reviews.locationDate" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/Decide/pages/SellerProfilePage/components/SellerReviews/style-f37fa3e494bb1.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"reviewWrapper":"reviewWrapper_13L37","reviewListWrapper":"reviewListWrapper_2Ob53","rightArrowIcon":"rightArrowIcon_32xbq","icon":"icon_d4REG"};
--------------------------------------------------------------------------------
/client/Decide/pages/SellerProfilePage/index.ts:
--------------------------------------------------------------------------------
1 | import SellerProfilePage from "./SellerProfilePage";
2 |
3 | export default SellerProfilePage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/SellerReviewsPage/index.ts:
--------------------------------------------------------------------------------
1 | import SellerReviewsPage from "./SellerReviewsPage";
2 |
3 | export default SellerReviewsPage;
4 |
--------------------------------------------------------------------------------
/client/Decide/pages/SellerReviewsPage/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | headTitle: { id: "pages.sellerReviewPage.headTitle" },
5 | title: { id: "pages.sellerReviewPage.title" },
6 | loadMore: { id: "pages.sellerReviewPage.loadMore" },
7 | preHeadTitle: { id: "pages.sellerReviewPage.preHeadTitle" },
8 | });
9 |
--------------------------------------------------------------------------------
/client/Decide/pages/StoreLocatorPage/components/StoreHoursTable/styles-f0b49a33ae631.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"storeHoursTable":"storeHoursTable_1wQ4D","tableHeader":"tableHeader_3GEdi"};
--------------------------------------------------------------------------------
/client/Decide/pages/StoreLocatorPage/components/StoreHoursTable/styles.css:
--------------------------------------------------------------------------------
1 | .storeHoursTable_1wQ4D .tableHeader_3GEdi {
2 | background: #fff;
3 | color: #1d252c;
4 | font-size: 16px;
5 | line-height: 24px;
6 | font-weight: 600;
7 | padding: 0 0 8px;
8 | }
9 | @media (min-width: 768px) {
10 | .storeHoursTable_1wQ4D .tableHeader_3GEdi {
11 | padding-left: 35%;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/client/Decide/pages/StoreLocatorPage/components/StoreResultsPlaceholder/style-e503245d6891.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_1KZFd","topHr":"topHr_38cdD","listTitlePlaceholder":"listTitlePlaceholder_UHNnw","listItemPlaceholder":"listItemPlaceholder_bUMT6"};
--------------------------------------------------------------------------------
/client/Decide/providers/CellPhoneUpgradeEligibiltyProvider/carrierMetaDataCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 | import {CarrierMetaDataApiResponse} from "../../../models";
3 |
4 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
5 | export default LRU({max: 1000, maxAge});
6 |
--------------------------------------------------------------------------------
/client/Decide/providers/CustomerReviewsProvider/customerReviewsCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 | import {CustomerReviews} from "../../../models";
3 |
4 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
5 | export default LRU({max: 1000, maxAge});
6 |
--------------------------------------------------------------------------------
/client/Decide/providers/MediaProvider/mediaCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 | import {MediaApiResponse} from "../../../models";
3 |
4 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
5 | export default LRU({max: 1000, maxAge});
6 |
--------------------------------------------------------------------------------
/client/Decide/providers/ProductProvider/productCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 | import {DetailedProduct} from "../../../models";
3 |
4 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
5 | export default LRU({max: 1000, maxAge});
6 |
--------------------------------------------------------------------------------
/client/Decide/providers/ProductRelationshipProvider/compareProductVariant.ts:
--------------------------------------------------------------------------------
1 | import {ProductVariant} from "models";
2 |
3 | export const compareProductVariant = (variant1: ProductVariant, variant2: ProductVariant): number => {
4 | const sku1 = variant1.sku.toUpperCase();
5 | const sku2 = variant2.sku.toUpperCase();
6 | if (sku1 > sku2) {
7 | return 1;
8 | } else if (sku1 < sku2) {
9 | return -1;
10 | } else {
11 | return 0;
12 | }
13 | };
14 |
--------------------------------------------------------------------------------
/client/Decide/providers/SellerProvider/sellerCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 |
3 | import {Seller, SellerReviews, Rating} from "models";
4 |
5 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
6 | export default LRU({max: 1000, maxAge});
7 |
--------------------------------------------------------------------------------
/client/Decide/utils/isCartEmpty/index.ts:
--------------------------------------------------------------------------------
1 | import {CartLineItem} from "models/Basket";
2 |
3 | const isCartEmpty = (lineItems: CartLineItem[]) => {
4 | if (!lineItems?.length) {
5 | return true;
6 | }
7 | const hasPurchasableProduct = lineItems.some((lineItem) => {
8 | return !Boolean(lineItem.removed) && !Boolean(lineItem.savedForLater);
9 | });
10 |
11 | return !hasPurchasableProduct;
12 | };
13 |
14 | export default isCartEmpty;
15 |
--------------------------------------------------------------------------------
/client/Decide/utils/validatePostalCode/index.ts:
--------------------------------------------------------------------------------
1 | export const validatePostalCode = (
2 | val: string,
3 | minPostalCodeLength: number,
4 | validateCompletePostalCode: boolean,
5 | ): boolean => {
6 | if (val.length === minPostalCodeLength && !validateCompletePostalCode) {
7 | return /^[A-Za-z]\d[A-Za-z][ ]?$/.test(val);
8 | } else {
9 | return /^[A-Za-z]\d[A-Za-z][ ]?\d[A-Za-z]\d$/.test(val);
10 | }
11 | };
12 |
--------------------------------------------------------------------------------
/client/components/ABTestAdSlot/style-5fa807304aa3b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"hardCodedAdSlot":"hardCodedAdSlot_3-u_t","superLeaderboard":"superLeaderboard_2Sp0u","pencilAd":"pencilAd_iKfnd","hide":"hide_3yVPj"};
--------------------------------------------------------------------------------
/client/components/Advertisement/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | sponsoredLabel: {id: "components.ads.sponsoredLabel"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/components/AdvertisementList/style-795ec2eae9c6b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"advertisementListContainer":"advertisementListContainer_1HIqu","advertisementListItemWrapper":"advertisementListItemWrapper_2VURs"};
--------------------------------------------------------------------------------
/client/components/AgeGate/components/DateInput/styles-9734b3d71db1a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"dateInputs":"dateInputs_1oSo8","input":"input_aKBY6","year":"year_3j0qZ"};
--------------------------------------------------------------------------------
/client/components/AgeGate/styles-102918f146c7e.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_1-MnH","restrictedItem":"restrictedItem_3GDiE","clickOverlay":"clickOverlay_RtN01","accessibleContent":"accessibleContent_1UuJx","ageGate":"ageGate_1ahyL","active":"active_2P-tS","appear":"appear_1ZL83","background":"background_2dRx9","content":"content_21_yE","heading":"heading_2dr4F","restrictedMsg":"restrictedMsg_quNvd","errorMsg":"errorMsg_3lvKn"};
--------------------------------------------------------------------------------
/client/components/AgeGate/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | heading: {id: "ageGate.heading"},
5 | restrictedMsg: {id: "ageGate.restrictedMsg"},
6 | validationError: {id: "ageGate.validationError"},
7 | overlayCta: {id: "ageGate.overlayCta"},
8 | });
9 |
--------------------------------------------------------------------------------
/client/components/AgeGate/utils/validators/index.ts:
--------------------------------------------------------------------------------
1 | export const isNumeric = (val: any): boolean => Number.isInteger(parseInt(val, 10));
2 |
3 | export const inRange = (min: number, max: number) => (val: any): boolean => isNumeric(val) && val >= min && val <= max;
4 |
--------------------------------------------------------------------------------
/client/components/AnchorNav/style-55810c972c62.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"anchorNavWrp":"anchorNavWrp_1jwr8","navTitle":"navTitle_2zZ1c","anchorNav":"anchorNav_1w8wp"};
--------------------------------------------------------------------------------
/client/components/App/style-fecac253a9133.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"pencilAdABCDTestContainer":"pencilAdABCDTestContainer_1ocOE","pageLoader":"pageLoader_YBA42","container":"container_3ohj7"};
--------------------------------------------------------------------------------
/client/components/App/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | homeLink: {id: "components.app.homeLink"},
5 | title: {id: "components.app.title"},
6 | rpuDisabled: { id: "product.containers.productStateActions.pickup.disabled" },
7 | rpuDisabledInfo: { id: "product.containers.productStateActions.pickup.disabled.info" },
8 | });
9 |
--------------------------------------------------------------------------------
/client/components/BackButton/style-298afd60449d5.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"button":"button_1di-3","backButton":"backButton_IOfhe","backButtonIcon":"backButtonIcon_1NCZS"};
--------------------------------------------------------------------------------
/client/components/BackButton/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | backButton: { id: "components.backButton.back" },
5 | });
6 |
--------------------------------------------------------------------------------
/client/components/Background/style-20051c230d034.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"backgroundContainer":"backgroundContainer_ryHAa","backgroundImage":"backgroundImage_3czwH","repeat":"repeat_1iz4C","light":"light_1tmAh","dark":"dark_xMnu-","extraSmallBanner":"extraSmallBanner_1TtGG","smallBanner":"smallBanner_2woD2","mediumBanner":"mediumBanner_2conJ"};
--------------------------------------------------------------------------------
/client/components/BadgeWrapper/style-458ebdf7f438b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"badgeWrpDefault":"badgeWrpDefault_2Eb6h"};
--------------------------------------------------------------------------------
/client/components/BadgeWrapper/style.css:
--------------------------------------------------------------------------------
1 | .badgeWrpDefault_2Eb6h > div {
2 | max-width: 132px;
3 | word-break: break-all;
4 | overflow: hidden;
5 | }
6 | .badgeWrpDefault_2Eb6h > div::after {
7 | top: 0;
8 | right: 0;
9 | z-index: 10;
10 | border-right-color: white;
11 | }
12 |
--------------------------------------------------------------------------------
/client/components/BreadcrumbList/style-607d7f7892678.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"breadcrumbList":"breadcrumbList_16xQ3","breadcrumbLink":"breadcrumbLink_2wEUw","icon":"icon_2YxvQ","lastCrumb":"lastCrumb_7W0V8","hide":"hide_uev7D"};
--------------------------------------------------------------------------------
/client/components/CategoryIconList/components/CategoryIcon/style-565693076d333.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"link":"link_ldnKD","image":"image_1EvX_"};
--------------------------------------------------------------------------------
/client/components/CategoryIconList/style-da31b72dc3c4d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_23b42","category":"category_LRby8","shopByCategoryHeader":"shopByCategoryHeader_rDFfi","sectionTitle":"sectionTitle_36HOf"};
--------------------------------------------------------------------------------
/client/components/ContactUs/components/AgentOffline/styles-5fd6a67e1cc7c.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"disabledComponent":"disabledComponent_2FHEc","logo":"logo_VB5xC","chatStatus":"chatStatus_3nPIy"};
--------------------------------------------------------------------------------
/client/components/ContactUs/components/AgentOffline/styles.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .disabledComponent_2FHEc {
4 | background-color: #f4f6f9;
5 | box-shadow: inset 0 0 8px 0 rgba(0, 0, 0, .08);
6 | }
7 |
8 | .logo_VB5xC {
9 | height: 42px;
10 | width: 42px;
11 | fill: var(--gray);
12 | }
13 |
14 | .chatStatus_3nPIy {
15 | font-size: 12px;
16 | line-height: 16px;
17 | display: inline-block;
18 | font-weight: 600;
19 | }
20 |
--------------------------------------------------------------------------------
/client/components/ContactUs/components/AgentOffline/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | const messages = defineMessages({
4 | chatHeading: {id: "components.contactUs.chat.heading"},
5 | chatAvailability: {id: "components.contactUs.chat.availability"},
6 | chatOffline: {id: "components.contactUs.chat.offline"},
7 | });
8 |
9 | export default messages;
10 |
--------------------------------------------------------------------------------
/client/components/ContactUs/components/CallUs/styles-84eb75af43415.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"boxComponent":"boxComponent_3aqdP","link":"link_3RFs8","enabledComponent":"enabledComponent_3-rw9","callUs":"callUs_1byZv","callUsAvailability":"callUsAvailability_Xby8K","phoneLogo":"phoneLogo_3dzqs"};
--------------------------------------------------------------------------------
/client/components/ContactUs/components/CallUs/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | const messages = defineMessages({
4 | callUsMessage: {id: "components.contactUs.callUs.call"},
5 | callUsAvailability: {id: "components.contactUs.callUs.availability"},
6 | });
7 |
8 | export default messages;
9 |
--------------------------------------------------------------------------------
/client/components/ContactUs/components/ContactBlock/styles-ac80ab48529e.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"boxComponent":"boxComponent_2fuaZ","link":"link_3eQrU","enabledComponent":"enabledComponent_2PQxh"};
--------------------------------------------------------------------------------
/client/components/ContactUs/components/EmailUs/style-24fab9c867c04.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"boxComponent":"boxComponent_3vpZH","link":"link_pljq7","enabledComponent":"enabledComponent_1H0lo","emailLogo":"emailLogo_9Nr2H","emailHeader":"emailHeader_1v2iJ","emailBody":"emailBody_3wsNI"};
--------------------------------------------------------------------------------
/client/components/ContactUs/components/EmailUs/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | const messages = defineMessages({
4 | emailHeading: {id: "components.contactUs.emailUs.email" },
5 | emailSubheading: {id: "components.contactUs.emailUs.emailSubheading"},
6 | });
7 |
8 | export default messages;
9 |
--------------------------------------------------------------------------------
/client/components/ContactUs/components/LiveChat/styles-44224c30d9e7.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"boxComponent":"boxComponent_fPMe4","link":"link_2Yr7v","enabledComponent":"enabledComponent_DED53","agentUnavailable":"agentUnavailable_3UGF_","chatStatus":"chatStatus_2-43W","liveChat":"liveChat_2txLI","textBubbleLogo":"textBubbleLogo_2OkSZ"};
--------------------------------------------------------------------------------
/client/components/ContactUs/components/LiveChat/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | const messages = defineMessages({
4 | chatHeading: {id: "components.contactUs.chat.heading"},
5 | chatAvailability: {id: "components.contactUs.chat.availability"},
6 | chatOnline: {id: "components.contactUs.chat.online"},
7 | });
8 |
9 | export default messages;
10 |
--------------------------------------------------------------------------------
/client/components/ContactUs/components/StatusColor/styles-e1b9d4dc46201.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"liveAgentStatus":"liveAgentStatus_1-q4g","offline":"offline_277g7","online":"online_Io4fA","busy":"busy_3CNAU"};
--------------------------------------------------------------------------------
/client/components/ContactUs/components/StatusColor/styles.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .liveAgentStatus_1-q4g {
4 | height: 12px;
5 | width: 12px;
6 | border-radius: 50%;
7 | display: inline-block;
8 | margin-right: 8px;
9 | }
10 |
11 | .offline_277g7 {
12 | background-color: #bb0628;
13 | }
14 |
15 | .online_Io4fA {
16 | background-color: #308800;
17 | }
18 |
19 | .busy_3CNAU {
20 | background-color: #e37222;
21 | }
22 |
--------------------------------------------------------------------------------
/client/components/ContactUs/styles-5ffd84c25e305.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"contactUs":"contactUs_30gSY","sectionTitle":"sectionTitle_3JCyb","contactUsSections":"contactUsSections_Ehi-I","contactBlock":"contactBlock_1bLGw","callToActionHeading":"callToActionHeading_3pQEv","phoneNumber":"phoneNumber_r1R68","availability":"availability_38vFx"};
--------------------------------------------------------------------------------
/client/components/ContactUs/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | const messages = defineMessages({
4 | callToActionHeading: {id: "components.ContactUs.heading"},
5 | callToAction: {id: "components.ContactUs.callToAction"},
6 | chatDisclaimer: {id: "components.ContactUs.chatDisclaimer"},
7 | });
8 |
9 | export default messages;
10 |
--------------------------------------------------------------------------------
/client/components/Dropdown/style-e62850791959e.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"select":"select_A7zY8"};
--------------------------------------------------------------------------------
/client/components/Dropdown/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .select_A7zY8 {
4 | padding-bottom: 0;
5 | }
6 |
7 | .select_A7zY8 label {
8 | display: none;
9 | }
10 |
--------------------------------------------------------------------------------
/client/components/EmbeddedVideo/style-07d3920991839.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"videoAspectContainer":"videoAspectContainer_3ka4Y","videoIframe":"videoIframe_2Mi8N"};
--------------------------------------------------------------------------------
/client/components/EmbeddedVideo/style.css:
--------------------------------------------------------------------------------
1 | .videoAspectContainer_3ka4Y {
2 | position: relative;
3 | width: 100%;
4 | height: 0;
5 | background-color: black;
6 | padding-top: 56.25%;
7 | }
8 |
9 | .videoAspectContainer_3ka4Y .videoIframe_2Mi8N {
10 | position: absolute;
11 | width: 100%;
12 | height: 100%;
13 | top: 0;
14 | left: 0;
15 | }
16 |
--------------------------------------------------------------------------------
/client/components/Error/style-e5cb3f52c732.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"anchor":"anchor_2LIdS","container":"container_1ASvp","header":"header_263-p","subheader":"subheader_3lUU2","homepageButton":"homepageButton_2JRTC","timestamp":"timestamp_1vYVG","frenchToggle":"frenchToggle_QAZg4"};
--------------------------------------------------------------------------------
/client/components/ExpandableList/style-2ac2c0e3b2685.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"expandable":"expandable_3zjp6","expandableIcon":"expandableIcon_2Q_VK","topBorder":"topBorder_3cb0L","bottomBorder":"bottomBorder_JCu-s"};
--------------------------------------------------------------------------------
/client/components/FilterBar/SortDropdown/style-b4f77a40f844c.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"sortLabel":"sortLabel_1M6yJ","container":"container_MIc_k","select":"select_2DHZW","productSortDropdown":"productSortDropdown_1VTnZ"};
--------------------------------------------------------------------------------
/client/components/FilterBar/style-8a6b198900976.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_uHvrD","element":"element_3ZxQf","icon":"icon_3mc-4","filterBtnContent":"filterBtnContent_1zFM6","filterBtnLabel":"filterBtnLabel__zgEL"};
--------------------------------------------------------------------------------
/client/components/ForegroundImage/style-59f36a0d7bdb8.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"foregroundImageContainer":"foregroundImageContainer_Cbjke","extraSmall":"extraSmall_1OJ0Z","left":"left_BFZNs","right":"right_18RnA","small":"small_2eBND","medium":"medium_3hwTM"};
--------------------------------------------------------------------------------
/client/components/GlobalContent/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | rpuDisabled: { id: "product.containers.productStateActions.pickup.disabled" },
5 | rpuDisabledInfo: { id: "product.containers.productStateActions.pickup.disabled.info" },
6 | browseOnly: { id: "product.containers.productStateActions.browseOnly" },
7 | browseOnlyInfo: { id: "product.containers.productStateActions.browseOnly.info" },
8 | });
9 |
--------------------------------------------------------------------------------
/client/components/Help/HelpCategory/styles-0e599a49358b5.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"categoryBox":"categoryBox_2kiOy","categoryWrapper":"categoryWrapper_1Dr6m","categoryList":"categoryList_3HJPM","seeAllLink":"seeAllLink_2TADZ","logo":"logo_CYjWT"};
--------------------------------------------------------------------------------
/client/components/Help/HelpCategoryBox/styles-c7cedc7d4a319.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"sectionWrapper":"sectionWrapper_2KAdo","helpCategoryBox":"helpCategoryBox_2Cw6_","helpCategoryContainer":"helpCategoryContainer_2q-aw","helpCategory":"helpCategory_aIrIa","sectionTitle":"sectionTitle_2dWCr"};
--------------------------------------------------------------------------------
/client/components/Help/HelpCategoryBox/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | const messages = defineMessages({
4 | helpHeading: {
5 | id: "components.helpCategoryBox.helpHeading",
6 | },
7 | });
8 |
9 | export default messages;
10 |
--------------------------------------------------------------------------------
/client/components/Image/style-5acd1d0b97e26.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"hidden":"hidden_3LpeU","displayingImage":"displayingImage_3xp0y","sliderTarget":"sliderTarget_2Q87g","middle":"middle_1qXv8"};
--------------------------------------------------------------------------------
/client/components/ImageBlock/style-ddd5f7374afb1.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"imageBlock":"imageBlock_1CFC3","noMargin":"noMargin__53YJ","browserSize":"browserSize_1kQJ2","siteSize":"siteSize_2ra2Q","trueSize":"trueSize_Roedv"};
--------------------------------------------------------------------------------
/client/components/ImageGallery/style-ebe6adf3025e7.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"sliderContainer":"sliderContainer_9JFkq","container":"container_1icpG","sliderIndexTitle":"sliderIndexTitle_3gNH_","productImageContainer":"productImageContainer_3LL_Q"};
--------------------------------------------------------------------------------
/client/components/InjectedContent/style-9341f571a42a4.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"loadingIframe":"loadingIframe_16NDY","iframe":"iframe_3O3Xf","circularProgress":"circularProgress_2En2i"};
--------------------------------------------------------------------------------
/client/components/Link/styles-5ff5e15c25a16.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"link":"link_3hcyN","withChevron":"withChevron_3KAQS","chevron":"chevron_sDSzx","disabled":"disabled_rA8jh"};
--------------------------------------------------------------------------------
/client/components/MarketplaceSeller/style-894778f3a9ce3.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"soldAndShippedBy":"soldAndShippedBy_319gh","marketplaceLogo":"marketplaceLogo_14OwV","marketplaceName":"marketplaceName_3FG8H"};
--------------------------------------------------------------------------------
/client/components/MarketplaceSeller/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | marketplaceSeller: {
5 | id: "search.components.marketplaceSeller.marketplaceSeller",
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/MerchBanner/style-4a6db15d7e1e3.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_10ITx","limitedSize":"limitedSize_3ejVZ","link":"link_21ndV","bannerImage":"bannerImage_2WaFv"};
--------------------------------------------------------------------------------
/client/components/MessageBox/style-85b26c28123b2.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"messageBoxRebranding":"messageBoxRebranding_3AXfa","messageTitle":"messageTitle_3_SC0","messageDetails":"messageDetails_1diL7","icon":"icon_12AwQ","iconStyleMessage":"iconStyleMessage_4lars","messageDetailsWrapper":"messageDetailsWrapper_1RWji"};
--------------------------------------------------------------------------------
/client/components/OverallRatingSummary/style-9a1283877fe7c.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"overallRatingSummary":"overallRatingSummary_h3WOS","overallScore":"overallScore_1vKOX","overallRating":"overallRating_2kAeM"};
--------------------------------------------------------------------------------
/client/components/PageContent/style-7ce55744a724b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_3Sp8P","globalOverlay":"globalOverlay_3Vudt","npsSurveyModal":"npsSurveyModal_2lrZ_"};
--------------------------------------------------------------------------------
/client/components/PencilBanner/styles-05b43dfd30927.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"globalPencilBanner":"globalPencilBanner_JDDsP","messageContent":"messageContent_1N18a","messageTitle":"messageTitle_2OhEa","messageDetails":"messageDetails_2OzI3","light":"light_v4N41","dark":"dark_InT3m","ctaLink":"ctaLink_2qI7d","messageSubcontent":"messageSubcontent_2h4Gz"};
--------------------------------------------------------------------------------
/client/components/PillList/styles-2f1ff3cd11a26.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_1lbbF","pill":"pill_2ra42","remove":"remove_3-4v1","removeBtn":"removeBtn_TuiyL","clearAll":"clearAll_1WS6s"};
--------------------------------------------------------------------------------
/client/components/Portal/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import ReactDOM from "react-dom";
3 |
4 | const Portal: React.FunctionComponent<{target: HTMLElement}> = ({children, target}) =>
5 | ReactDOM.createPortal(children, target);
6 |
7 | export default Portal;
8 |
--------------------------------------------------------------------------------
/client/components/Price/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | price: {
5 | id: "components.price",
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/ProdListingBanner/styles-72f7529a71fde.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"prodListingBanner":"prodListingBanner_WvZTx","dark":"dark_GBP3X","background":"background_33crN","foregroundImage":"foregroundImage_36PZm","bannerContent":"bannerContent_7L96a","headline":"headline_2yztI","ctaBlock":"ctaBlock_2mSFQ","logoContainer":"logoContainer_2QJi8","textOnly":"textOnly_3ok8-"};
--------------------------------------------------------------------------------
/client/components/ProductAvailability/components/AvailabilityIcon/style-7421a30c51c2b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"icon":"icon_DeHIB","purchasable":"purchasable_34Eak","nonePurchasable":"nonePurchasable_1QCO9"};
--------------------------------------------------------------------------------
/client/components/ProductAvailability/components/AvailabilityIcon/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .icon_DeHIB.purchasable_34Eak {
4 | fill: #308800;
5 | }
6 |
7 | .icon_DeHIB.nonePurchasable_1QCO9 {
8 | fill: #55555a;
9 | }
10 |
--------------------------------------------------------------------------------
/client/components/ProductAvailability/components/AvailabilityPlaceHolder/style-fc5ade5dd25c7.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_2dyp6","availabilityContainer":"availabilityContainer_3khtV","placeholderContainer":"placeholderContainer_239Er","titlePlaceholder":"titlePlaceholder_3yNBK","descriptionPlaceholder":"descriptionPlaceholder_2oSPX","iconPlaceholder":"iconPlaceholder_3whgT"};
--------------------------------------------------------------------------------
/client/components/ProductAvailability/components/Shipping/style-b27666f89efbd.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"shippingAvailability":"shippingAvailability_2X3xt"};
--------------------------------------------------------------------------------
/client/components/ProductAvailability/components/ShippingMessage/styles-e25965176fea7.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_1DAvI"};
--------------------------------------------------------------------------------
/client/components/ProductAvailability/components/ShippingMessage/styles.css:
--------------------------------------------------------------------------------
1 | .container_1DAvI {
2 | font-size: 12px;
3 | line-height: 20px;
4 | margin-bottom: 0;
5 | display: inline-block;
6 | font-weight: 400;
7 | }
8 |
--------------------------------------------------------------------------------
/client/components/ProductAvailability/style-c4085ccec3cc9.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"availabilityMessageSearch":"availabilityMessageSearch_1KfqF","availabilityMessageSearchPickup":"availabilityMessageSearchPickup_1h9CR","iconStyle":"iconStyle_H9oNs","availabilityMessage":"availabilityMessage_Ev_6A"};
--------------------------------------------------------------------------------
/client/components/ProductAvailability/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | InStock: {
5 | id: "search.components.ProductAvailability.Pickup.InStock",
6 | },
7 | OutOfStock: {
8 | id: "search.components.ProductAvailability.Pickup.OutOfStock",
9 | },
10 | ActivateOnline: {
11 | id: "search.components.ProductAvailability.Pickup.ActivateOnline",
12 | },
13 | });
14 |
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductPrice/style-a9cfaa6d4aeb5.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"rightEndPrice":"rightEndPrice_6y_hS","small":"small_3ifZO","medium":"medium_za6t1","large":"large_3aP7Z","hidden":"hidden_2dkHX","salePrice":"salePrice_kTFZ3","price":"price_FHDfG","screenReaderOnly":"screenReaderOnly_3anTj"};
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductPrice/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | formattedPriceWithSuperscriptCent: {
5 | id: "components.price.formattedPriceWithSuperscriptCent",
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductPricing/style-ab2a5438ca23.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"ehf":"ehf_2So0v","large":"large_vfLww","monthlyPayment":"monthlyPayment_3fKOU","salePrice":"salePrice_1BZ3X","medium":"medium_6sGt-","productPricingContainer":"productPricingContainer_3gTS3"};
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductPricing/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | ehf: {
5 | id: "search.components.productItemPricing.ehf",
6 | },
7 | monthlyPayment: {
8 | id: "search.components.productItemPricing.monthlyPayment",
9 | },
10 | });
11 |
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductSaleEndDate/style-478764f4851ce.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"productSaleEnds":"productSaleEnds_5TuMK"};
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductSaleEndDate/style.css:
--------------------------------------------------------------------------------
1 | .productSaleEnds_5TuMK {
2 | font-size: 12px;
3 | line-height: 16px;
4 | color: #55555a;
5 | }
6 |
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductSaleEndDate/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | saleEnds: {
5 | id: "search.components.productItemPricing.saleEnds",
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductSaving/style-0944d42f73b6b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"productSaving":"productSaving_3YmNX","top":"top_3XDS1"};
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductSaving/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .productSaving_3YmNX {
4 | font-size: 12px;
5 | font-weight: 600;
6 | color: #bb0628;
7 | white-space: nowrap;
8 | }
9 |
10 | .productSaving_3YmNX.top_3XDS1 {
11 | display: block;
12 | }
13 |
--------------------------------------------------------------------------------
/client/components/ProductCost/ProductSaving/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | save: {
5 | id: "search.components.productItemPricing.save",
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/ProductFinder/index.tsx:
--------------------------------------------------------------------------------
1 | import ProductFinder from "./ProductFinder";
2 |
3 | export default ProductFinder;
4 |
--------------------------------------------------------------------------------
/client/components/ProductImage/style-e86fa614b3def.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"applyResponsiveSquareTrick":"applyResponsiveSquareTrick_35RAF","touchActionManipulation":"touchActionManipulation_31CMi","cursorDefault":"cursorDefault_2p1ri","cursorPointer":"cursorPointer_37cTx","productImageContainer":"productImageContainer_1V2HD"};
--------------------------------------------------------------------------------
/client/components/ProductImageSlider/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | showingNumOfTotal: { id: "pdp.productDetails.productImageSlider.showingNumOfTotal"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/components/ProductListing/EndOfResults/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import { FormattedMessage } from "react-intl";
3 | import * as styles from "./style.css";
4 | import messages from "./translations/messages";
5 |
6 | const EndOfResults = () => {
7 |
8 | return
;
9 |
10 | };
11 |
12 | export default EndOfResults;
13 |
--------------------------------------------------------------------------------
/client/components/ProductListing/EndOfResults/style-3b9fb9beb1601.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"endOfList":"endOfList_b04RG"};
--------------------------------------------------------------------------------
/client/components/ProductListing/EndOfResults/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .endOfList_b04RG {
4 | background: #f4f6f9;
5 | color: #55555a;
6 | padding: 24px 0;
7 | text-align: center;
8 | }
9 |
10 | @media (min-width: 1025px) {
11 | .endOfList_b04RG {
12 | margin: 0 24px;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/client/components/ProductListing/EndOfResults/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | endOfList: {
5 | id: "search.components.endOfResults.endOfList",
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/ProductListing/LoadMore/style-73a0c762e3ab6.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_3gLZK","loadingContainer":"loadingContainer_15JRy","loadMoreButtonContainer":"loadMoreButtonContainer_35w02","button":"button_1Yg9v","loadMore":"loadMore_3AoXT","circularProgress":"circularProgress_23dxR","loadMoreRow":"loadMoreRow_1TEZj","loadMoreLink":"loadMoreLink_2cY6X"};
--------------------------------------------------------------------------------
/client/components/ProductListing/LoadMore/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | buttonText: {
5 | id: "search.components.loadMore.buttonText",
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/ProductListing/ProductListItem/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | sponsoredProductLabel: {
5 | id: "sponsoredProductLabel",
6 | },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/ProductListing/style-1116f18cdb84e.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_24wJV","productLine":"productLine_2N9kG","productList":"productList_31W-E","materialOverride":"materialOverride_OOX2O","list":"list_3khgt","dynamicContent":"dynamicContent_2xNEP","productsRow":"productsRow_DcaXn"};
--------------------------------------------------------------------------------
/client/components/PromoBanner/style-f2549e7a6be55.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_2sKRg","bannerContainer":"bannerContainer_2FEdi","noPadding":"noPadding_7T0nB","textContainer":"textContainer_ZrwdC","ctaContainer":"ctaContainer_1eJhJ","icon":"icon_3ZAnE","arrowIcon":"arrowIcon_2jsAP","headline1":"headline1_297K7","headline2":"headline2_lGqUd","dividerWithMargin":"dividerWithMargin_3F7Cj"};
--------------------------------------------------------------------------------
/client/components/SectionTitle/style-7a4590be6242d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"sectionTitle":"sectionTitle_2nLse","h1":"h1_2pnAz","d1":"d1_1sgH6","d2":"d2_aJX9F"};
--------------------------------------------------------------------------------
/client/components/SingleButton/components/VideoModal/style-93a031dc6c1b4.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"videoLoader":"videoLoader_2lFQK","videoContainer":"videoContainer_P3NbV"};
--------------------------------------------------------------------------------
/client/components/SingleButton/styles-152319368d67.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"link":"link_3iw9l","dark":"dark_3Mlwh","singleButton":"singleButton_1pewo","secondary":"secondary_24Gtx","tertiary":"tertiary_2dxg8"};
--------------------------------------------------------------------------------
/client/components/Snackbar/style-a133ceb03358b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"snackBarActionButton":"snackBarActionButton_2XiNu","snackBarActionButtonText":"snackBarActionButtonText_1a_Lr"};
--------------------------------------------------------------------------------
/client/components/Snackbar/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .snackBarActionButton_2XiNu .snackBarActionButtonText_1a_Lr {
4 | color: #fff200;
5 | }
6 |
--------------------------------------------------------------------------------
/client/components/StarRate/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | reviews: {
5 | id: "components.StarRate.reviews",
6 | },
7 | reviewsCount: {
8 | id: "components.StarRate.reviewsCount",
9 | },
10 | oneReviewCount: {
11 | id: "components.StarRate.oneReviewCount",
12 | },
13 | });
14 |
--------------------------------------------------------------------------------
/client/components/StoryBanner/style-cd4502a47b03.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"storyBannerRow":"storyBannerRow_303_Q","productMedia":"productMedia_2Xbs8","column":"column_2YVMi","textContainer":"textContainer_2SwTp","title":"title_1yqmG","body":"body_3YU2j","linkTextContainer":"linkTextContainer_1OPti","ctaIcon":"ctaIcon_1Ln0x","arrowIcon":"arrowIcon_Woddn","right":"right_135aq","left":"left_2K8j1"};
--------------------------------------------------------------------------------
/client/components/StyledHTML/styles-68736c791c84a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"text":"text_2go6_"};
--------------------------------------------------------------------------------
/client/components/SvgIcons/ProductImagePlaceholder/style-62185754143c8.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_2eR50","icon":"icon_1np5B"};
--------------------------------------------------------------------------------
/client/components/TextBlock/styles-03a56385b059b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"textBlockContainer":"textBlockContainer_2M49a","light":"light_1fhGs","sectionTitle":"sectionTitle_26Hh7","dark":"dark_11r4Q","wPadding":"wPadding_3PFy_","textcenter":"textcenter_3d-VF","textcentre":"textcentre_gIoaK","textright":"textright_2xs_n","textBlock":"textBlock_34z0e","legal":"legal_LtvdX","title":"title_2kEQ2"};
--------------------------------------------------------------------------------
/client/components/TextInput/style-ed8203062dd87.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"input":"input_1HDAU","error":"error_38sn_","messageContainer":"messageContainer_3SM0B","label":"label_1oORe"};
--------------------------------------------------------------------------------
/client/components/TextInput/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | overMaxLength:
5 | { id: "components.TextInput.overMaxLength" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/components/TitleHeader/style-1effa90b04192.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_1l_Qd","title":"title_3A6Uh","noPaddingTop":"noPaddingTop_8SwHq","noPaddingBottom":"noPaddingBottom_21dD_"};
--------------------------------------------------------------------------------
/client/components/VariantSwatch/VariantSwatchPlaceHolder/style-53fefa1044fb2.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_jLN1I","variantHeaderPlaceholder":"variantHeaderPlaceholder_vbsgN","variantSwatchesPlaceholder":"variantSwatchesPlaceholder_1adu6","swatchContainer":"swatchContainer_VDuED"};
--------------------------------------------------------------------------------
/client/components/VariantSwatch/style-7fa0274525b84.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"container":"container_3Jmmq","expandableContainer":"expandableContainer_JvbIp","header":"header_3oHKT","variantContainer":"variantContainer_2dac9","swatchContainer":"swatchContainer_2uQQH","expandableInnerBody":"expandableInnerBody_hm6su","swatchImage":"swatchImage_23WRt","itemContainer":"itemContainer_1p4EA","selected":"selected_2LwLi","colorName":"colorName_2CCer"};
--------------------------------------------------------------------------------
/client/components/VariantSwatch/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | colour: { id: "pdp.productOfferDetails.variantSwatch.colour" },
5 | showMoreColours: { id: "pdp.productOfferDetails.variantSwatch.showMoreColours" },
6 | showLessColours: { id: "pdp.productOfferDetails.variantSwatch.showLessColours" },
7 | });
8 |
--------------------------------------------------------------------------------
/client/components/YouTubePlayer/style-5c2a6198a7dff.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"videoContainer":"videoContainer_2xHTb","video-container":"video-container_2Dw7I","videoTitle":"videoTitle_2ut39","videoLine":"videoLine_2aP54"};
--------------------------------------------------------------------------------
/client/components/Zoomable/style-0978bb3bd883e.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"zoomButtonsContainer":"zoomButtonsContainer_3k7DO","cursorGrab":"cursorGrab_24Zo5","zoomButton":"zoomButton_2UWGG","zoomableContainer":"zoomableContainer_1brxx"};
--------------------------------------------------------------------------------
/client/components/banners/BarBanner/styles-2a0878bfab474.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"barBanner":"barBanner_3ONwb","bannerContent":"bannerContent_2iL-v","foregroundImage":"foregroundImage_1e8w_","logoContainer":"logoContainer_1vrKp","dark":"dark_xmsks","featureBanner":"featureBanner_1HsEj","headline":"headline_3zEWk","left":"left_3VhXy","right":"right_WPACX","centre":"centre_3YSaT","ctaBlock":"ctaBlock_2nasZ"};
--------------------------------------------------------------------------------
/client/components/banners/FeatureBanner/styles-d550b5d6d2458.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"featureBanner":"featureBanner_HhtAC","bannerContent":"bannerContent_ToVRk","foregroundImage":"foregroundImage_ISCMO","dark":"dark_WYRQY","logoContainer":"logoContainer_ZNutH","logo":"logo_KWbD6","left":"left_2XLcg","right":"right_1Z_t0","centre":"centre_2MetX","ctaBlock":"ctaBlock_vIBWj"};
--------------------------------------------------------------------------------
/client/components/banners/HeroBanner/styles-15c7cb3c7613c.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"heroBanner":"heroBanner_11atp","bannerContent":"bannerContent_2n9PU","foregroundImage":"foregroundImage_153SW","dark":"dark_16jbu","featureBanner":"featureBanner_3aZoZ","logoContainer":"logoContainer_2NOBm","logo":"logo_3efxt","left":"left_3iq-5","right":"right_19K5n","centre":"centre_3NpyQ","ctaBlock":"ctaBlock_1nEyA"};
--------------------------------------------------------------------------------
/client/components/banners/SlideShowFeatureBanner/style-5f195256ae07c.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"icon":"icon_1ucxw","sliderPrevArrow":"sliderPrevArrow_VaXfd","sliderNextArrow":"sliderNextArrow_1Uf-W","disabled":"disabled_305W8","dots":"dots_1R5EX","featureBanner":"featureBanner_287l8","adSlot":"adSlot_2G2GF","featureBannerSlideshow":"featureBannerSlideshow_3AsgK","featureBannerContainer":"featureBannerContainer_1V7Mo"};
--------------------------------------------------------------------------------
/client/components/banners/Story/components/StoryRow/style-086975196c87f.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"storyRow":"storyRow_3LqAa","primaryCta":"primaryCta_3W9YN","ctaWrp":"ctaWrp_1xfrE","light":"light_3fFWX","dark":"dark_My4CV","long":"long_248eD","withBackground":"withBackground_3-7JR","body":"body_3CYPR","foregroundImage":"foregroundImage_GH9ri","lastRow":"lastRow_YD61k","left":"left_1XUwr"};
--------------------------------------------------------------------------------
/client/components/banners/Story/style-dbc626ed1778e.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"StoryContainer":"StoryContainer_2Afaq","hasBackground":"hasBackground_1ri3E","SectionTitle":"SectionTitle_2vLn-","dark":"dark_1UjlC","StoryBackground":"StoryBackground_1URlx","lastChild":"lastChild_1upon","singleStory":"singleStory_2YHQZ","bgImg":"bgImg_2wYXP","bgColor":"bgColor_3eI8q","longRow":"longRow_33yZb","storyRowItem":"storyRowItem_1zTTs"};
--------------------------------------------------------------------------------
/client/components/banners/Timeline/styles-cbd60c32ede03.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"timeline":"timeline_1l9Eg","stage":"stage_9ISTN","enter":"enter_2Kq0F","slideUp":"slideUp_2y5wu","zoomIn":"zoomIn_23EJx","active":"active_2FWJt","leave":"leave_3uZMj","fadeOut":"fadeOut_Zjo_z"};
--------------------------------------------------------------------------------
/client/components/banners/TitleBanner/styles-259641bdd78a7.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"titleBanner":"titleBanner_3QLvg","bannerContent":"bannerContent_3fP1d","ctaBlock":"ctaBlock_1QXIZ","headline":"headline_1muyV","subHeadline":"subHeadline_1_rfU","disclaimer":"disclaimer_2HQjJ","dark":"dark_3KRqp"};
--------------------------------------------------------------------------------
/client/components/banners/components/CTABlock/styles-f2a58965bb941.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"ctaWrp":"ctaWrp_19kCR","primaryCta":"primaryCta_oTAT9","secondaryCta":"secondaryCta_1iTwM","videoLink":"videoLink_1sJmg","dark":"dark_3ua7w"};
--------------------------------------------------------------------------------
/client/components/banners/components/Countdown/components/FlipCard/styles-75781d9a10ba2.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"card":"card_2lloB","next":"next_33nIv","current":"current_1oIRA","unit":"unit_wrr0S","cube":"cube_1oYWF","flip":"flip_3OMTR","rotate":"rotate_mtLtx"};
--------------------------------------------------------------------------------
/client/components/banners/components/Countdown/styles-50d4c9c128093.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"countdownClock":"countdownClock_6dpKv","label":"label_1o5Jf","counter":"counter_1cC41","unitSection":"unitSection_1q_Ex","cardContainer":"cardContainer_qL1iF","title":"title_3Yw-r","flipCard":"flipCard_B-FBM"};
--------------------------------------------------------------------------------
/client/components/banners/components/Countdown/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | days: {id: "countdown.days"},
5 | hours: {id: "countdown.hours"},
6 | minutes: {id: "countdown.minutes"},
7 | seconds: {id: "countdown.seconds"},
8 | });
9 |
--------------------------------------------------------------------------------
/client/components/banners/components/DateOverride/styles-8886dc95fbab6.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"dateOverride":"dateOverride_39h6k","label":"label_2jiHh","input":"input_rNjUZ","icon":"icon_1suKf","hidden":"hidden_2zF2Z"};
--------------------------------------------------------------------------------
/client/components/banners/components/Disclaimer/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import {classname} from "utils/classname";
3 | import * as styles from "./style.css";
4 |
5 | interface Props {
6 | text: string;
7 | className?: string;
8 | }
9 |
10 | const Disclaimer: React.FC = ({text, className}) => (
11 | {text}
12 | );
13 |
14 | export default Disclaimer;
15 |
--------------------------------------------------------------------------------
/client/components/banners/components/Disclaimer/style-5db3cf7c00b45.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"disclaimer":"disclaimer_3_wHO"};
--------------------------------------------------------------------------------
/client/components/banners/components/Disclaimer/style.css:
--------------------------------------------------------------------------------
1 | .disclaimer_3_wHO {
2 | margin-top: 16px;
3 | font-size: 12px;
4 | line-height: 16px;
5 | }
6 |
--------------------------------------------------------------------------------
/client/components/banners/components/Headline/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import * as styles from "./styles.css";
3 | import {classname} from "utils/classname";
4 |
5 | interface HeadlineProps {
6 | className?: string;
7 | }
8 | const Headline: React.FC = ({children, className = ""}) => (
9 | {children}
10 | );
11 | export default Headline;
12 |
--------------------------------------------------------------------------------
/client/components/banners/components/Headline/styles-436424ed493a3.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"headline":"headline_2Ik-v"};
--------------------------------------------------------------------------------
/client/components/banners/components/Headline/styles.css:
--------------------------------------------------------------------------------
1 | .headline_2Ik-v {
2 | font-size: 20px;
3 | font-weight: 700;
4 | line-height: 24px;
5 | }
6 | @media (min-width: 768px) {
7 | .headline_2Ik-v {
8 | font-size: 24px;
9 | line-height: 32px;
10 | }
11 | }
12 | @media (min-width: 1025px) {
13 | .headline_2Ik-v {
14 | font-size: 32px;
15 | line-height: 40px;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/client/components/banners/components/Logo/styles-464051a46770d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"logoContainer":"logoContainer_BUPkH","logo":"logo_wQp4G"};
--------------------------------------------------------------------------------
/client/components/banners/components/Logo/styles.css:
--------------------------------------------------------------------------------
1 | .logoContainer_BUPkH {
2 | margin-bottom: 8px;
3 | text-align: center;
4 | }
5 |
6 | .logoContainer_BUPkH .logo_wQp4G {
7 | width: auto;
8 | max-width: 70%;
9 | margin: 0 auto;
10 | }
11 | @media (min-width: 768px) {
12 | .logoContainer_BUPkH {
13 | text-align: left;
14 | }
15 |
16 | .logoContainer_BUPkH .logo_wQp4G {
17 | max-width: 50%;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/client/components/recommendations/RecentlyViewed/style-f0201dddeff26.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"titleCenter":"titleCenter_2iWSE","dividerWithMargin":"dividerWithMargin_22olB"};
--------------------------------------------------------------------------------
/client/components/recommendations/RecentlyViewed/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | recentlyViewed: {id: "components.recommendations.RecentlyViewed.heading"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/components/recommendations/TopSellers/style-8bc088eb37c31.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"titleCenter":"titleCenter_2tAyz","dividerWithMargin":"dividerWithMargin_2EGTm"};
--------------------------------------------------------------------------------
/client/components/recommendations/TopSellers/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | topSeller: {id: "pages.CategoryPage.components.TopSellers.heading"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/components/recommendations/components/RecommendedSkuList/style-5000462d595ad.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"header":"header_3F_1L","recommendedSkuList":"recommendedSkuList_dYRMC"};
--------------------------------------------------------------------------------
/client/components/recommendations/components/RecommendedSkuList/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .header_3F_1L {
4 | -webkit-box-flex: 1;
5 | -webkit-flex: 1 100%;
6 | flex: 1 100%;
7 | margin: 24px 0 16px;
8 | font-size: 20px;
9 | font-weight: 600;
10 | }
11 |
12 | .recommendedSkuList_dYRMC {
13 | margin-bottom: 16px;
14 | }
15 |
16 | @media (min-width: 1025px) {
17 | .header_3F_1L {
18 | margin: 32px 0 16px;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/client/constants/Analytics/index.ts:
--------------------------------------------------------------------------------
1 | export const geoLocationErrorCode = {
2 | 1: "PERMISSION_DENIED",
3 | 2: "POSITION_UNAVAILABLE",
4 | 3: "TIMEOUT",
5 | };
6 |
--------------------------------------------------------------------------------
/client/constants/Environment/index.ts:
--------------------------------------------------------------------------------
1 | export const productionStackEnv: string[] = ["production", "staging", "dr"];
2 |
--------------------------------------------------------------------------------
/client/constants/SponsoredProducts/index.ts:
--------------------------------------------------------------------------------
1 | export const maxSearchResultSponsoredProducts = 4;
2 |
--------------------------------------------------------------------------------
/client/constants/User/index.ts:
--------------------------------------------------------------------------------
1 | export const positionErrorCode = {
2 | deny: 1,
3 | timeout: 3,
4 | unavailable: 2,
5 | };
6 |
--------------------------------------------------------------------------------
/client/errors/GeoLocationError.ts:
--------------------------------------------------------------------------------
1 | import WebappError from "./WebappError";
2 |
3 | export class GeoLocationError extends WebappError {
4 | constructor(code: number, message: string) {
5 | super(message);
6 | this.name = "GeoLocationError";
7 | Object.setPrototypeOf(this, GeoLocationError.prototype);
8 | }
9 | }
10 |
11 | export default GeoLocationError;
12 |
--------------------------------------------------------------------------------
/client/errors/RequestError.ts:
--------------------------------------------------------------------------------
1 | import WebappError from "./WebappError";
2 |
3 | export abstract class RequestError extends WebappError {
4 | constructor(public uri: string, message?: string, innerError?: Error) {
5 | super(message, innerError);
6 | this.name = "RequestError";
7 | Object.setPrototypeOf(this, RequestError.prototype);
8 | }
9 | }
10 |
11 | export default RequestError;
12 |
--------------------------------------------------------------------------------
/client/errors/SpecialOfferError.ts:
--------------------------------------------------------------------------------
1 | import WebappError from "./WebappError";
2 |
3 | export class SpecialOfferError extends WebappError {
4 |
5 | constructor(code: number, message?: string) {
6 | super(message);
7 | this.name = "SpecialOfferError";
8 | this.statusCode = code;
9 | Object.setPrototypeOf(this, SpecialOfferError.prototype);
10 | }
11 | }
12 |
13 | export default SpecialOfferError;
14 |
--------------------------------------------------------------------------------
/client/errors/StatusCode.ts:
--------------------------------------------------------------------------------
1 | export enum StatusCode {
2 | OK = 200,
3 | Delete = 204,
4 | BadRequest = 400,
5 | NotFound = 404,
6 | InternalServerError = 500,
7 | }
8 |
9 | export default StatusCode;
10 |
--------------------------------------------------------------------------------
/client/errors/WebappError.ts:
--------------------------------------------------------------------------------
1 | import * as serializeError from "serialize-error";
2 |
3 | export class WebappError extends Error {
4 |
5 | constructor(message?: string, public innerError?: Error) {
6 | super(message);
7 | this.name = "WebappError";
8 | Object.setPrototypeOf(this, WebappError.prototype);
9 | }
10 |
11 | public toJSON() {
12 | return serializeError(this);
13 | }
14 | }
15 |
16 | export default WebappError;
17 |
--------------------------------------------------------------------------------
/client/errors/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./HttpRequestType";
2 | export * from "./StatusCode";
3 | export * from "./ConnectionError";
4 | export * from "./ErrorType";
5 | export * from "./GeoLocationError";
6 | export * from "./GetAvailabilitiesError";
7 | export * from "./HttpRequestError";
8 | export * from "./RedirectError";
9 | export * from "./RequestError";
10 | export * from "./WebappError";
11 | export * from "./SellerReviewDuplicateError";
12 | export * from "./SpecialOfferError";
13 |
--------------------------------------------------------------------------------
/client/models/Content/index.ts:
--------------------------------------------------------------------------------
1 | export enum ContentContexts {
2 | saleMessage = "sale_message",
3 | vendorFunded = "vendor_funded",
4 | }
5 |
--------------------------------------------------------------------------------
/client/pages/CategoryPage/components/Categories/style-5b29a88fc608b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"expandableList":"expandableList_2K0VR","container":"container_ZVvkg","categoryName":"categoryName_1ljEf","categoryActive":"categoryActive_30b1J","facetName":"facetName_3uuRc","subCategories":"subCategories_1rXnz","productCount":"productCount_1bTjO"};
--------------------------------------------------------------------------------
/client/pages/CategoryPage/components/Categories/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | category: {id: "pages.CategoryPage.components.Categories.category"},
5 | });
6 |
--------------------------------------------------------------------------------
/client/pages/CategoryPage/index.ts:
--------------------------------------------------------------------------------
1 | import CategoryPage from "./CategoryPage";
2 |
3 | export default CategoryPage;
4 |
--------------------------------------------------------------------------------
/client/pages/DynamicContentPage/index.tsx:
--------------------------------------------------------------------------------
1 | import DynamicContentPage from "./DynamicContentPage";
2 |
3 | export default DynamicContentPage;
4 |
--------------------------------------------------------------------------------
/client/pages/DynamicContentPage/style-142778de16b5d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"pageContentContainer":"pageContentContainer_3slMV","titleHeader":"titleHeader_2koDC","sectionContainer":"sectionContainer_1kzTq","navigationContainer":"navigationContainer_kmv09","breadcrumbs":"breadcrumbs_2Fhb8"};
--------------------------------------------------------------------------------
/client/pages/DynamicContentPage/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | description: {id: "dynamicContentPage.header.seo.description"},
5 | title: { id: "dynamicContentPage.header.seo.title" },
6 | backTo: { id: "navigation.backTo"},
7 | overviewReadMore: { id: "overview.readMore" },
8 | overviewReadLess: { id: "overview.readLess" },
9 | });
10 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/ContactInformation/style-d8a5e419c5234.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"contactInfo":"contactInfo_11hCt","nameField":"nameField_Km9gO","firstName":"firstName_1B_w1"};
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/ContactInformation/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .contactInfo_11hCt {
4 | margin-top: 24px;
5 | }
6 |
7 | @media (min-width: 768px) {
8 | .nameField_Km9gO {
9 | width: 292px;
10 | display: inline-block;
11 | }
12 |
13 | .firstName_1B_w1 {
14 | margin-right: 16px;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/ConversationContextMenu/style-b1ba95d5dde3d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"dropdwonMenu":"dropdwonMenu_3KJUG","conversationContextMenu":"conversationContextMenu_1J0kM"};
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/ConversationContextMenu/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .dropdwonMenu_3KJUG {
4 | color: #1d252c;
5 | font-size: 14px;
6 | line-height: 20px;
7 | display: block;
8 | margin: 0 0 5px;
9 | }
10 |
11 | .conversationContextMenu_1J0kM {
12 | margin-bottom: 16px;
13 | }
14 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/CtaButtons/style-b91375e59c85d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"submitButton":"submitButton_3EuB5","cancelButton":"cancelButton_1xIbq"};
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/CtaButtons/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .submitButton_3EuB5 {
4 | background-color: #0046be;
5 | color: #fff;
6 | }
7 |
8 | .submitButton_3EuB5:hover {
9 | background-color: #001e73;
10 | }
11 |
12 | .cancelButton_1xIbq {
13 | margin-left: 24px;
14 | }
15 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/CtaButtons/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | submitButton: { id: "emailUs.submitButton" },
5 | cancelButton: { id: "emailUs.cancelButton" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/EmailUsForm/style-e5a740ed8d619.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"emailUsHeading":"emailUsHeading_3zkTR"};
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/EmailUsForm/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .emailUsHeading_3zkTR {
4 | color: #0046be;
5 | font-size: 56px;
6 | line-height: 60px;
7 | font-weight: bold;
8 | }
9 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/EmailUsForm/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | emailUs: { id: "emailUs.emailUsHeader" },
5 | emailUsSubheading: { id: "emailUs.emailUsSubheading" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/FormSuccessContent/style-8bef188e0d195.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"success":"success_z-20T","successBody":"successBody_1Kvx7","messageSent":"messageSent_1gvMe","keepBrowsing":"keepBrowsing_15TzK"};
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/FormSuccessContent/style.css:
--------------------------------------------------------------------------------
1 | .success_z-20T {
2 | font-size: 56px;
3 | margin-bottom: 8px;
4 | }
5 |
6 | .successBody_1Kvx7 {
7 | max-width: 768px;
8 | }
9 |
10 | .messageSent_1gvMe {
11 | margin-bottom: 24px;
12 | }
13 |
14 | .keepBrowsing_15TzK {
15 | font-weight: bold;
16 | }
17 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/FormSuccessContent/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | success: {id: "emailUs.formSuccess.success" },
5 | messageSent: {id: "emailUs.formSuccess.messageSent" },
6 | thankYou: {id: "emailUs.formSuccess.thankYou" },
7 | keepBrowsing: {id: "emailUs.formSuccess.keepBrowsing" },
8 | });
9 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/Marketplace/style-f074cf35c6d6f.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"marketplace":"marketplace_1MRCQ"};
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/Marketplace/style.css:
--------------------------------------------------------------------------------
1 | .marketplace_1MRCQ p,
2 | .marketplace_1MRCQ h3 {
3 | font-size: 14px;
4 | line-height: 20px;
5 | }
6 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/OrderStatusForm/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | orderNumber: { id: "emailUs.form.orderStatus.orderNumber" },
5 | orderNumberError: { id: "emailUs.form.orderStatus.orderNumberError" },
6 | bodyField: { id: "emailUs.form.orderStatus.bodyField" },
7 | bodyFieldError: { id: "emailUs.form.orderStatus.bodyFieldError" },
8 | });
9 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/components/ReturnForm/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | helpPage: {id: "emailUs.form.returns.helpPage" },
5 | selfHelpInfo: { id: "emailUs.form.returns.selfHelpInfo" },
6 | explanationField: { id: "emailUs.form.returns.explanationField" },
7 | explanationFieldError: { id: "emailUs.form.returns.explanationFieldError" },
8 | });
9 |
--------------------------------------------------------------------------------
/client/pages/EmailUsPage/style-fa67871eb7c7b.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"emailUsPage":"emailUsPage_17nAN","emailUsForm":"emailUsForm_Ica6Z"};
--------------------------------------------------------------------------------
/client/pages/FlyerPage/styles-6a41d02bb8b06.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"flyerPageContainer":"flyerPageContainer_1Iaaj","dividerWithMargin":"dividerWithMargin_1o_wB","flyerTitle":"flyerTitle_3ngDN"};
--------------------------------------------------------------------------------
/client/pages/FlyerPage/styles.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | .flyerPageContainer_1Iaaj,
4 | .dividerWithMargin_1o_wB {
5 | margin: 0 16px;
6 | }
7 |
8 | .flyerTitle_3ngDN {
9 | padding: 16px;
10 | }
11 |
12 | @media (min-width: 1025px) {
13 | .flyerTitle_3ngDN {
14 | padding: 24px;
15 | }
16 |
17 | .flyerPageContainer_1Iaaj,
18 | .dividerWithMargin_1o_wB {
19 | margin: 0 24px;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/client/pages/FlyerPage/translations/messages.ts:
--------------------------------------------------------------------------------
1 |
2 | import { defineMessages } from "react-intl";
3 |
4 | export default defineMessages({
5 | title: { id: "pages.flyer.title" },
6 | h1: { id: "pages.flyer.h1" },
7 | metaDescription: { id: "pages.flyer.meta.description" },
8 | });
9 |
--------------------------------------------------------------------------------
/client/pages/HelpPage/containers/HelpLandingPage/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import {default as HelpPageComponent} from "../../";
3 | import {WithRouterProps} from "react-router";
4 |
5 | const HelpLandingPage = (props: WithRouterProps) => {
6 | return ;
7 | };
8 |
9 | export default HelpLandingPage;
10 |
--------------------------------------------------------------------------------
/client/pages/HelpPage/containers/HelpPage/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import {default as HelpPageComponent} from "../../";
3 | import {WithRouterProps} from "react-router";
4 |
5 | const HelpPage = (props: WithRouterProps) => {
6 | return ;
7 | };
8 |
9 | export default HelpPage;
10 |
--------------------------------------------------------------------------------
/client/pages/HelpPage/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | backButton: {id: "help.topic.backButton"},
5 | backTo: {id: "help.topic.backTo"},
6 | helpMessage: {id: "help.topic.helpMessage"},
7 | });
8 |
--------------------------------------------------------------------------------
/client/pages/HomePage/components/HomePageContainer/style.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"pageContentContainer":"pageContentContainer_3J5wd"};
--------------------------------------------------------------------------------
/client/pages/HomePage/index.tsx:
--------------------------------------------------------------------------------
1 | import HomePage from "./components/HomePageContainer";
2 |
3 | export default HomePage;
4 |
--------------------------------------------------------------------------------
/client/pages/HomePage/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | description: {id: "home.components.homePage.index.description"},
5 | title: { id: "home.components.homePage.index.title" },
6 | });
7 |
--------------------------------------------------------------------------------
/client/pages/PageLayouts/Base/styles-c3c2c59e6fae3.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"loadingScreen":"loadingScreen_2TNc8","spinner":"spinner_iKwwW"};
--------------------------------------------------------------------------------
/client/pages/PageLayouts/Base/styles.css:
--------------------------------------------------------------------------------
1 | .loadingScreen_2TNc8 {
2 | height: 450px;
3 | position: relative;
4 | }
5 |
6 | .loadingScreen_2TNc8 .spinner_iKwwW {
7 | position: absolute;
8 | width: 40px;
9 | height: 40px;
10 | left: 50%;
11 | top: 50%;
12 | -webkit-transform: translate(-50%, -50%);
13 | transform: translate(-50%, -50%);
14 | }
15 |
--------------------------------------------------------------------------------
/client/pages/PageLayouts/SingleColumn/styles-c4c9122836a2.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"singleColumn":"singleColumn_BCnZ4","browserSizeLayout":"browserSizeLayout_2-Cw6","siteSizeLayout":"siteSizeLayout_2_W9H","backgroundMountedContent":"backgroundMountedContent_2guto","textContent":"textContent_2VGrK","footer":"footer_3g2Fp"};
--------------------------------------------------------------------------------
/client/pages/PageLayouts/TwoColumn/styles-ee1f11d36e2e7.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"twoColumn":"twoColumn_s09m6","sideBar":"sideBar_3fD3X","browserSizeLayout":"browserSizeLayout_1IYd4","siteSizeLayout":"siteSizeLayout_2G5t3","backgroundMountedContent":"backgroundMountedContent_2R9PO","textContent":"textContent_1rPoG","main":"main_7Bnep","header":"header_1MAAp","footer":"footer_3wlcT"};
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/components/Footer/style-59217499e5e32.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"dividerWithMargin":"dividerWithMargin_20XMD"};
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/components/Footer/style.css:
--------------------------------------------------------------------------------
1 |
2 |
3 | @media (min-width: 1025px) {
4 | .dividerWithMargin_20XMD {
5 | margin-right: 24px;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/components/Header/style-cbbcc51b1f49f.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"titleHeader":"titleHeader_srY8W","desktopOnly":"desktopOnly__j8hc","breadcrumb":"breadcrumb_iafPH","titleHeaderOnly":"titleHeaderOnly_2Uydi"};
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/components/Navigation/styles-91455f09ad168.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"desktopNavigation":"desktopNavigation_32iob","mobileNavigation":"mobileNavigation_3oJKy"};
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/components/Navigation/styles.css:
--------------------------------------------------------------------------------
1 | .desktopNavigation_32iob {
2 | display: none;
3 | }
4 | @media (min-width: 1025px) {
5 | .mobileNavigation_3oJKy {
6 | display: none;
7 | }
8 |
9 | .desktopNavigation_32iob {
10 | display: block;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/components/SEOBlock/style-52143a33cb82d.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"seoContainer":"seoContainer_3yFBJ","seoTextContent":"seoTextContent_2ff79","seoText":"seoText_o9Fa4"};
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/components/SEOBlock/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | categoryOverviewReadLess: {id: "pages.categoryPage.categoryOverviewReadLess"},
5 | categoryOverviewReadMore: {id: "pages.categoryPage.categoryOverviewReadMore"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/styles-5c1058faac43a.css:
--------------------------------------------------------------------------------
1 | // extracted by mini-css-extract-plugin
2 | module.exports = {"bodyContent":"bodyContent_2CbIN","desktopTitle":"desktopTitle_3NWgU","breadCrumbs":"breadCrumbs_3tBD-","mobileTitle":"mobileTitle_1A8ib"};
--------------------------------------------------------------------------------
/client/pages/ProductListingPage/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | titleH1: {id: "search.containers.searchPage.titleH1"},
5 | breadcrumb: {id: "search.containers.searchPage.breadcrumb"},
6 | backTo: {id: "help.topic.backTo"},
7 | });
8 |
--------------------------------------------------------------------------------
/client/pages/SearchPage/components/ResultHeader/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | bestBuyOnly: {id: "search.containers.searchPage.components.Toolbar.bestBuyOnly"},
5 | results: {id: "search.containers.searchPage.components.Header.results"},
6 | rpuFilter: {id: "search.containers.searchPage.components.Header.rpuFilter"},
7 | });
8 |
--------------------------------------------------------------------------------
/client/pages/SearchPage/index.ts:
--------------------------------------------------------------------------------
1 | import SearchPage from "./SearchPage";
2 |
3 | export default SearchPage;
4 |
--------------------------------------------------------------------------------
/client/providers/BrandProvider/index.ts:
--------------------------------------------------------------------------------
1 | import {DynamicContentModel, RegionCode} from "models";
2 | import ApiBrandProvider from "./ApiBrandProvider";
3 |
4 | export interface BrandProvider {
5 | getBrandsContent(brandPath: Array): Promise;
6 | }
7 |
8 | export function getBrandProvider(baseUrl: string, locale: Locale, regionCode: RegionCode): BrandProvider {
9 | return new ApiBrandProvider(baseUrl, locale, regionCode);
10 | }
11 |
--------------------------------------------------------------------------------
/client/providers/CategoryProvider/CategoryCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 | import { Category } from "../../models";
3 |
4 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
5 | export default LRU({ max: 1000, maxAge });
6 |
--------------------------------------------------------------------------------
/client/providers/CategoryProvider/translations/en.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | allCategoriesFilterName: "All Categories",
3 | };
4 |
--------------------------------------------------------------------------------
/client/providers/CategoryProvider/translations/fr.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | allCategoriesFilterName: "Toutes les catégories",
3 | };
4 |
--------------------------------------------------------------------------------
/client/providers/ContentProvider/contentCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 |
3 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
4 | export default LRU({ max: 1000, maxAge });
5 |
--------------------------------------------------------------------------------
/client/providers/GlobalContentProvider/globalContentCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 | import { GlobalContent } from "../../models";
3 |
4 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
5 | export default LRU({ max: 1000, maxAge });
6 |
--------------------------------------------------------------------------------
/client/providers/OfferProvider/NullOfferProvider.ts:
--------------------------------------------------------------------------------
1 | import { Offer } from "models";
2 | import { OfferProvider } from ".";
3 |
4 | export default class NullOfferProvider implements OfferProvider {
5 |
6 | public async getOffers(sku: string): Promise {
7 | return [];
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/client/providers/RemoteConfigProvider/RemoteConfigCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 | import { RemoteConfig } from "../../models";
3 |
4 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
5 | export default LRU({ max: 1000, maxAge });
6 |
--------------------------------------------------------------------------------
/client/providers/SearchProvider/translations/en.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | allCategoriesFilterName: "All Categories",
3 | categoryFacetName: "Categories",
4 | availabilityFacetName: "Availability",
5 | availableStockFilter: "Available Stock",
6 | };
7 |
--------------------------------------------------------------------------------
/client/providers/SearchProvider/translations/fr.ts:
--------------------------------------------------------------------------------
1 | export default {
2 | allCategoriesFilterName: "Toutes Catégories",
3 | categoryFacetName: "Catégories",
4 | availabilityFacetName: "Disponibilité",
5 | availableStockFilter: "Stocks disponibles",
6 | };
7 |
--------------------------------------------------------------------------------
/client/providers/SideNavigationProvider/index.ts:
--------------------------------------------------------------------------------
1 | import ApiBrandStoreSideNavigationProvider from "./ApiBrandStoreNavigationProvider";
2 |
3 | export function createBrandStoreNavigationProvider(baseUrl: string, locale: Locale, ...ids: string[]) {
4 | const brandName = "0"; // hardcoded for now b/c ContentService only accepts 0 for now
5 | const brandStoreId = ids[1];
6 | return new ApiBrandStoreSideNavigationProvider(baseUrl, locale, brandName, brandStoreId);
7 | }
8 |
--------------------------------------------------------------------------------
/client/providers/StoreMessageProvider/ApiStoreMessageProvider.ts:
--------------------------------------------------------------------------------
1 | import fetch from "../../utils/fetch";
2 | import * as url from "url";
3 |
4 | export default class StoreMessageProvider {
5 | constructor(private baseUrl: string) {}
6 |
7 | public async getStoreMessages() {
8 | const storeStatusUrl = url.format(url.parse(`${this.baseUrl}/all.json`));
9 | const response = await fetch(storeStatusUrl);
10 | return response.json();
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/client/reducers/promotionalBadgesReducer/index.ts:
--------------------------------------------------------------------------------
1 | import {PromotionalBadges} from "../../models";
2 |
3 | export const initialPromotionalBadges: PromotionalBadges = {};
4 |
5 | export const promotionalBadges = (state = initialPromotionalBadges, action) => {
6 | switch (action.type) {
7 | default:
8 | return state;
9 | }
10 | };
11 |
12 | export default promotionalBadges;
13 |
--------------------------------------------------------------------------------
/client/reducers/recommendationsReducer/index.ts:
--------------------------------------------------------------------------------
1 | import {Recommendations} from "../../models";
2 |
3 | export const initialRecommendationsState: Partial = {
4 | recentlyViewed: [],
5 | };
6 |
7 | export const recommendations = (state = initialRecommendationsState, action) => {
8 | switch (action.type) {
9 | default:
10 | return state;
11 | }
12 | };
13 |
14 | export default recommendations;
15 |
--------------------------------------------------------------------------------
/client/store/selectors/promotionalBadgesSelectors/index.ts:
--------------------------------------------------------------------------------
1 | import {Selector} from "reselect";
2 | import {State} from "store";
3 | import {PromotionalBadges} from "../../../models";
4 |
5 | export const getPromotionalBadges: Selector = (state: State) => state.promotionalBadges;
6 |
--------------------------------------------------------------------------------
/client/utils/analytics/adobeCookie.ts:
--------------------------------------------------------------------------------
1 | import {CookieUtils} from "@bbyca/bbyca-components";
2 |
3 | const patt = /(?:MCMID\|)([0-9a-zA-Z]*|)/;
4 |
5 | export const getAdobeVisitorId = (): string => {
6 | const cookieVal = CookieUtils.getCookie("AMCV_[^=]*");
7 | const str = cookieVal ? decodeURIComponent(cookieVal.value) : "";
8 | const id = patt.exec(str);
9 | if (id === null || id.length < 2) {
10 | return "";
11 | }
12 | return id[1];
13 | };
14 |
--------------------------------------------------------------------------------
/client/utils/analytics/middleware.ts:
--------------------------------------------------------------------------------
1 | export default ({getState}) => (next) => (action) => {
2 | next(action);
3 | if (typeof window !== "undefined") {
4 | const event = new CustomEvent("analytics-event", {
5 | detail: {event: action.type, payload: action.payload, state: getState()},
6 | });
7 | document.dispatchEvent(event);
8 | }
9 | };
10 |
--------------------------------------------------------------------------------
/client/utils/builders/breadcrumbBuilder/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import {defineMessages} from "react-intl";
2 |
3 | export default defineMessages({
4 | home: {id: "utils.breadcrumbBuilder.home"},
5 | searchResults: {id: "utils.breadcrumbBuilder.searchResults"},
6 | });
7 |
--------------------------------------------------------------------------------
/client/utils/builders/productSwatchBuilder.ts:
--------------------------------------------------------------------------------
1 | export const buildProductSwatchUrl = (sku: string, baseUrl: string): string => {
2 | const lowerCaseSku = sku.toLowerCase();
3 | return `${baseUrl}/multimedia/products/swatches/${lowerCaseSku.slice(0, 3)}/${lowerCaseSku.slice(0, 5)}/${lowerCaseSku}.gif`;
4 | };
5 |
--------------------------------------------------------------------------------
/client/utils/colorUtils/index.ts:
--------------------------------------------------------------------------------
1 |
2 | export const addNumberSignPrefix = (color: string):string => {
3 | const numberSign = "#";
4 | if (color.trim().indexOf(numberSign) !== 0) {
5 | return numberSign + color.trim();
6 | }
7 | return color;
8 | }
9 |
--------------------------------------------------------------------------------
/client/utils/environment/index.ts:
--------------------------------------------------------------------------------
1 | import {productionStackEnv} from "../../constants/Environment";
2 |
3 | export type CmsEnvironment = "development" | "production";
4 |
5 | export const getCmsEnvironment = (environment: string): CmsEnvironment => {
6 | return productionStackEnv.indexOf(environment) === -1 ? "development" : "production";
7 | };
8 |
--------------------------------------------------------------------------------
/client/utils/flatteners/objectFlattener.ts:
--------------------------------------------------------------------------------
1 | export const objectFlattener = (obj: {}) => {
2 | const flattenedArray = [];
3 | for (const key in obj) {
4 | if (obj[key]) {
5 | flattenedArray.push(obj[key]);
6 | }
7 | }
8 |
9 | return flattenedArray;
10 | };
11 |
--------------------------------------------------------------------------------
/client/utils/isMobileApp/index.ts:
--------------------------------------------------------------------------------
1 | import {AppMode} from "models";
2 | /**
3 | * isMobileApp.
4 | *
5 | * Note: this function requires AppMode from the app state
6 | *
7 | */
8 |
9 | export const isMobileApp = (appMode: AppMode) => {
10 | return appMode === AppMode.iphone || appMode === AppMode.android;
11 | };
12 |
--------------------------------------------------------------------------------
/client/utils/numberUtils/index.ts:
--------------------------------------------------------------------------------
1 | // a toFixed() method that returns a number instead of a string
2 | export const getNumToFixed = (num: number, numDecimalPlaces: number): number => (
3 | parseFloat(num.toFixed(numDecimalPlaces))
4 | );
5 |
--------------------------------------------------------------------------------
/client/utils/productWarranty/getManufacturersWarrantyUrl.ts:
--------------------------------------------------------------------------------
1 | import routeManager from "utils/routeManager";
2 |
3 | const getManufacturersWarrantyUrl = (locale: Language, sku: string): string => {
4 | return routeManager.getPathByKey(locale, "manufacturerWarranty", sku);
5 | };
6 |
7 | export default getManufacturersWarrantyUrl;
8 |
--------------------------------------------------------------------------------
/client/utils/productWarranty/isBothPspPrpWarranty.ts:
--------------------------------------------------------------------------------
1 | import {Warranty, WarrantyType} from "models";
2 | const isBothPspPrpWarranty = (warranties: Warranty[] = []): boolean =>
3 | !!warranties.find((warranty) => warranty.type === WarrantyType.PSP) &&
4 | !!warranties.find((warranty) => warranty.type === WarrantyType.PRP);
5 |
6 | export default isBothPspPrpWarranty;
7 |
--------------------------------------------------------------------------------
/client/utils/stringUtils/index.ts:
--------------------------------------------------------------------------------
1 | export const replaceAllSpacesBy = (str: string, by: string): string => {
2 | if (str) {
3 | return str.replace(/ /g, by);
4 | }
5 |
6 | return "";
7 | };
8 |
--------------------------------------------------------------------------------
/client/utils/urlUtils/index.ts:
--------------------------------------------------------------------------------
1 | export const extractDomain = (hostname: string): string => {
2 | const result = hostname.match(/\w+\.?\w+$/);
3 | return result ? result[0] : "";
4 | };
5 |
6 | export const getDomain = (): string => {
7 | let baseDomain: string = "";
8 | if (typeof document !== "undefined") {
9 | baseDomain = extractDomain(document.location.hostname);
10 | }
11 | return baseDomain;
12 | };
13 |
--------------------------------------------------------------------------------
/client/utils/warrantyText/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 |
3 | export default defineMessages({
4 | WarrantyDaysLabel: { id: "utils.warrantyText.WarrantyDaysLabel" },
5 | WarrantyYearsLabel: { id: "utils.warrantyText.WarrantyYearsLabel" },
6 | WarrantyOneYearLabel: { id: "utils.warrantyText.WarrantyOneYearLabel" },
7 | WarrantyLifetimeLabel: { id: "utils.warrantyText.WarrantyLifetimeLabel" },
8 | });
9 |
--------------------------------------------------------------------------------
/common/logging/getLogger.ts:
--------------------------------------------------------------------------------
1 | import WebappError from "../../client/errors/WebappError";
2 | import { Logger } from "./";
3 |
4 | let appLogger: Logger;
5 |
6 | export const setLogger = (logger: Logger) => {
7 | appLogger = logger;
8 | };
9 |
10 | export default () => {
11 |
12 | if (!appLogger) {
13 | throw new WebappError("Logger has not been initialized");
14 | }
15 |
16 | return appLogger;
17 | };
18 |
--------------------------------------------------------------------------------
/common/logging/index.ts:
--------------------------------------------------------------------------------
1 | export enum Level {
2 | Info,
3 | Warn,
4 | Error,
5 | }
6 |
7 | export interface Logger {
8 | level: Level;
9 | info: (message: string) => void;
10 | warn: (message: string) => void;
11 | error: (error: Error | string) => void;
12 | trace: (message: string) => void;
13 | }
14 |
--------------------------------------------------------------------------------
/components/ClickAwayListener/index.ts:
--------------------------------------------------------------------------------
1 | import { default as ClickAwayListener } from "./ClickAwayListener";
2 | export default ClickAwayListener;
3 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/components/GlobalFooter/utils/contentParser.ts:
--------------------------------------------------------------------------------
1 | const regex = /\{(.*?)\}/gi;
2 | const contentParser = (expressionMap) => ({
3 | parse: (str) => str.replace(regex, (match, key) => expressionMap.hasOwnProperty(key) ? expressionMap[key] : ""),
4 | });
5 | export default contentParser;
6 | //# sourceMappingURL=contentParser.js.map
--------------------------------------------------------------------------------
/components/GlobalHeader/FlyoutNavigation/index.ts:
--------------------------------------------------------------------------------
1 | import { default as FlyoutNavigation } from "./FlyoutNavigation";
2 | export default FlyoutNavigation;
3 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/components/GlobalHeader/StoresLink/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 | export default defineMessages({
3 | storeAriaLabel: {
4 | id: "components.header.storesLink.ariaLabel",
5 | },
6 | storeHref: {
7 | id: "components.header.storesLink.storeHref",
8 | },
9 | storeText: {
10 | id: "components.header.storesLink.storeText",
11 | },
12 | });
13 | //# sourceMappingURL=messages.js.map
--------------------------------------------------------------------------------
/components/GlobalHeader/utils/getParsedEvent.ts:
--------------------------------------------------------------------------------
1 | const getParsedEvent = ({ ctaText = "", eventType = "brand", eventId = null, seoText = "", url = null, query = null, altCtaText = null, }) => ({
2 | ctaText,
3 | eventType,
4 | eventId: eventId || ctaText,
5 | seoText,
6 | url,
7 | query,
8 | altCtaText,
9 | });
10 | export default getParsedEvent;
11 | //# sourceMappingURL=getParsedEvent.js.map
--------------------------------------------------------------------------------
/components/GlobalHeader/utils/shopMenuDataParser.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * parseShopMenuData() will be depricated once the Shop Menu is connected
3 | * to the Global Menu API
4 | */
5 | const parseShopMenuData = (data) => {
6 | if (!data) {
7 | return null;
8 | }
9 | return {
10 | categories: data.shopCategories,
11 | };
12 | };
13 | export default parseShopMenuData;
14 | //# sourceMappingURL=shopMenuDataParser.js.map
--------------------------------------------------------------------------------
/components/MenuPanel/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 | export default defineMessages({
3 | back: {
4 | id: "components.navigation.back",
5 | },
6 | exploreMore: {
7 | id: "components.navigation.exploreMore",
8 | },
9 | });
10 | //# sourceMappingURL=messages.js.map
--------------------------------------------------------------------------------
/constants.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 | Object.defineProperty(exports, "__esModule", { value: true });
3 | exports.DEFAULT_BLOCKED_EVENT_TYPES = [
4 | "redux-responsive/*",
5 | "@@INIT",
6 | "@@router/*"
7 | ];
8 | exports.CLIENT_ID_COOKIE_NAME = "clientId";
9 | exports.EVENTS_MAP = {
10 | ANALYTICS_CONFIRMATION_PAGELOAD: 'analytics-confirmation-pageload'
11 | };
12 | //# sourceMappingURL=constants.js.map
--------------------------------------------------------------------------------
/containers/AddToCartContainer.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Point of contact for redux-connected component modules
3 | *
4 | * ie: import { AddToCartComponent, Toaster } from 'components';
5 | *
6 | */
7 | import { AddToCart } from "../react/";
8 | import ReduxConnectorCheckout from "./connectors/ReduxConnectorCheckout";
9 | const AddToCartContainer = ReduxConnectorCheckout(AddToCart); // TODO Figure out proper types
10 | export { AddToCartContainer, };
11 | //# sourceMappingURL=AddToCartContainer.js.map
--------------------------------------------------------------------------------
/containers/BasketPageContainer.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Point of contact for redux-connected component modules
3 | *
4 | * ie: import { AddToCartComponent, Toaster } from 'components';
5 | *
6 | */
7 | import { BasketPage } from "../react/";
8 | import ReduxConnectorBasket from "./connectors/ReduxConnectorBasket";
9 | const BasketPageContainer = ReduxConnectorBasket(BasketPage); // TODO Figure out proper types
10 | export { BasketPageContainer, };
11 | //# sourceMappingURL=BasketPageContainer.js.map
--------------------------------------------------------------------------------
/containers/BenefitPageContainer.ts:
--------------------------------------------------------------------------------
1 | import { BenefitPage } from "../react/";
2 | import BenefitPageConnector from "./connectors/ReduxBenefitPageConnector";
3 | const BenefitPageContainer = BenefitPageConnector(BenefitPage);
4 | export { BenefitPageContainer, };
5 | //# sourceMappingURL=BenefitPageContainer.js.map
--------------------------------------------------------------------------------
/containers/ManufacturersWarrantyPageContainer.ts:
--------------------------------------------------------------------------------
1 | import { ManufacturersWarrantyPage } from "../react/";
2 | import ManufacturersWarrantyPageConnector from "./connectors/ReduxManufacturersWarrantyPageConnector";
3 | const ManufacturersWarrantyPageContainer = ManufacturersWarrantyPageConnector(ManufacturersWarrantyPage);
4 | export { ManufacturersWarrantyPageContainer, };
5 | //# sourceMappingURL=ManufacturersWarrantyPageContainer.js.map
--------------------------------------------------------------------------------
/containers/connectors/ReduxBenefitLinkConnector.ts:
--------------------------------------------------------------------------------
1 | import { connect } from "react-redux";
2 | import { getSkuByLineItemId } from "../../redux/cart/selectors";
3 | const mapStateToProps = (state, ownProps) => ({
4 | sku: getSkuByLineItemId(state.cart, ownProps.lineItemId),
5 | });
6 | export default connect(mapStateToProps);
7 | //# sourceMappingURL=ReduxBenefitLinkConnector.js.map
--------------------------------------------------------------------------------
/errors/ConnectionError.ts:
--------------------------------------------------------------------------------
1 | import ContentError from "./ContentError";
2 | export default class ConnectionError extends ContentError {
3 | constructor(url, message, innerError) {
4 | super(message, innerError);
5 | this.url = url;
6 | Object.setPrototypeOf(this, ConnectionError.prototype);
7 | }
8 | }
9 | //# sourceMappingURL=ConnectionError.js.map
--------------------------------------------------------------------------------
/errors/ContentError.ts:
--------------------------------------------------------------------------------
1 | export default class ContentError extends Error {
2 | constructor(message, innerError) {
3 | super(message);
4 | this.innerError = innerError;
5 | Object.setPrototypeOf(this, ContentError.prototype);
6 | }
7 | }
8 | //# sourceMappingURL=ContentError.js.map
--------------------------------------------------------------------------------
/errors/NotFoundError.ts:
--------------------------------------------------------------------------------
1 | export class NotFoundError extends Error {
2 | constructor(message, innerError, context) {
3 | super(message);
4 | this.innerError = innerError;
5 | this.context = context;
6 | this.name = NotFoundError.NAME;
7 | Object.setPrototypeOf(this, NotFoundError.prototype);
8 | }
9 | }
10 | NotFoundError.NAME = "NotFoundError";
11 | //# sourceMappingURL=NotFoundError.js.map
--------------------------------------------------------------------------------
/errors/ValidationMessagesError.ts:
--------------------------------------------------------------------------------
1 | export class ValidationMessagesError extends Error {
2 | constructor(validationMessages) {
3 | super(validationMessages);
4 | this.name = ValidationMessagesError.NAME;
5 | this.validationMessages = validationMessages || [];
6 | Object.setPrototypeOf(this, ValidationMessagesError.prototype);
7 | }
8 | }
9 | ValidationMessagesError.NAME = "ValidationMessagesError";
10 | //# sourceMappingURL=ValidationMessagesError.js.map
--------------------------------------------------------------------------------
/events.ts:
--------------------------------------------------------------------------------
1 | import CheckoutEvents from "./services/CheckoutEvents/CheckoutEvents";
2 | export default CheckoutEvents;
3 | //# sourceMappingURL=events.js.map
--------------------------------------------------------------------------------
/flexbox-grid/create-props.tsx:
--------------------------------------------------------------------------------
1 | export default function createProps(props, className) {
2 | const newProps = {};
3 | Object.keys(props)
4 | .filter((key) => (key === "children"))
5 | .forEach((key) => (newProps[key] = props[key]));
6 | return Object.assign(Object.assign({}, newProps), { className });
7 | }
8 | //# sourceMappingURL=create-props.js.map
--------------------------------------------------------------------------------
/forms/formItems/hiddenInput/HiddenInput.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import FormItem from "../FormItem";
3 | export class HiddenInput extends React.Component {
4 | render() {
5 | return (React.createElement("input", Object.assign({ type: "hidden", name: this.props.name, id: this.props.name, value: this.props.value || "" }, this.props.extraAttrs)));
6 | }
7 | }
8 | export default FormItem({ hideUI: true })(HiddenInput);
9 | //# sourceMappingURL=HiddenInput.js.map
--------------------------------------------------------------------------------
/globalMessages/globalWarningMessage/GlobalWarningMessage.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import { GlobalErrorMessage } from "./../globalErrorMessage";
3 | // TODO: get rid of this after rebranding cutover
4 | class GlobalWarningMessage extends React.Component {
5 | render() {
6 | return React.createElement(GlobalErrorMessage, Object.assign({}, this.props));
7 | }
8 | }
9 | export default GlobalWarningMessage;
10 | //# sourceMappingURL=GlobalWarningMessage.js.map
--------------------------------------------------------------------------------
/heading/heading.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import * as styles from "./style.css";
3 | export class Heading extends React.Component {
4 | render() {
5 | const { as: Element = "h2" } = this.props;
6 | return React.createElement(Element, { className: styles[Element] }, this.props.children);
7 | }
8 | }
9 | export default Heading;
10 | //# sourceMappingURL=heading.js.map
--------------------------------------------------------------------------------
/icons/CartSvg.tsx:
--------------------------------------------------------------------------------
1 | import { Cart } from "@bbyca/bbyca-components";
2 | import * as React from "react";
3 | export const CartSvg = ({ viewBox = "0 1 32 32", className = "", color = "white", }) => (React.createElement(Cart, { className: className, color: color, viewBox: viewBox }));
4 | export default CartSvg;
5 | //# sourceMappingURL=CartSvg.js.map
--------------------------------------------------------------------------------
/index-21880cf4fc6a6.ts:
--------------------------------------------------------------------------------
1 | export * from "./business-rules/entities";
2 | export * from "./react";
3 | export * from "./utils";
4 | export * from "./redux";
5 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/models/GlobalMenuContent/index.ts:
--------------------------------------------------------------------------------
1 | export var templateExpressions;
2 | (function (templateExpressions) {
3 | templateExpressions["ordersWebAppUrl"] = "ordersWebAppUrl";
4 | templateExpressions["accountsWebAppUrl"] = "accountsWebAppUrl";
5 | })(templateExpressions || (templateExpressions = {}));
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/models/Intl/index.ts:
--------------------------------------------------------------------------------
1 | const convertLocaleToLang = (locale = "en-CA") => locale.split("-")[0];
2 | export { convertLocaleToLang, };
3 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/models/index.ts:
--------------------------------------------------------------------------------
1 | export * from "./Intl";
2 | export * from "./LinkGroup";
3 | export * from "./Category";
4 | export * from "./Routing";
5 | export * from "./ShopMenuContent";
6 | export * from "./BrandMenuContent";
7 | export * from "./GlobalMenuContent";
8 | export * from "./HelpTopics";
9 | export * from "./Environment";
10 | export * from "./SearchSuggestion";
11 | export * from "./UrlConfig";
12 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/providers/ContentProvider/menuContentCache.ts:
--------------------------------------------------------------------------------
1 | import * as LRU from "lru-cache";
2 | const maxAge = Number(process.env.API_CACHE_MAX_AGE) || 1000 * 60;
3 | export default new LRU({ max: 1000, maxAge });
4 | //# sourceMappingURL=menuContentCache.js.map
--------------------------------------------------------------------------------
/providers/index.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
4 | };
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | var SplitIOABTestProvider_1 = __importDefault(require("./SplitIOABTestProvider"));
7 | exports.SplitIOABTestProvider = SplitIOABTestProvider_1.default;
8 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/react/BasketPage/components/shipment/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 | export default defineMessages({
3 | productTotal: { id: "components.Cart.shipment.ProductTotal" },
4 | soldBy: {
5 | defaultMessage: "Sold & Shipped By",
6 | description: "sold and shipped by text",
7 | id: "components.Cart.shipment.soldBy",
8 | },
9 | });
10 | //# sourceMappingURL=messages.js.map
--------------------------------------------------------------------------------
/react/BasketPage/helpers/ItemCount.tsx:
--------------------------------------------------------------------------------
1 | import * as React from "react";
2 | import { injectIntl } from "react-intl";
3 | import messages from "../translations/messages";
4 | const itemCount = ({ intl, quantity }) => {
5 | return (React.createElement("small", null, intl.formatMessage(messages.items, { quantity })));
6 | };
7 | export const ItemCount = injectIntl(itemCount);
8 | //# sourceMappingURL=ItemCount.js.map
--------------------------------------------------------------------------------
/react/CartIndicator/components/BasketIcon/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 | export default defineMessages({
3 | basketLabel: {
4 | defaultMessage: "Cart",
5 | description: "the label for the cart icon",
6 | id: "components.BasketIcon.label",
7 | },
8 | });
9 | //# sourceMappingURL=messages.js.map
--------------------------------------------------------------------------------
/react/LineItem/ProductDetailsLineItem/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 | export default defineMessages({
3 | ehf: { id: "components.ProductDetailsLineItem.ehf" },
4 | saleEndsOn: { id: "components.ProductDetailsLineItem.saleEndsOn" },
5 | });
6 | //# sourceMappingURL=messages.js.map
--------------------------------------------------------------------------------
/react/LineItem/RequiredPartsLineItem/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 | export default defineMessages({
3 | requiredPart: { id: "requiredPart" },
4 | requiredPartsOptInNo: { id: "requiredPartsOptIn.no" },
5 | requiredPartsOptInYes: { id: "requiredPartsOptIn.yes" },
6 | });
7 | //# sourceMappingURL=messages.js.map
--------------------------------------------------------------------------------
/react/ProductServices/index.tsx:
--------------------------------------------------------------------------------
1 | import ProductServices from "./ProductServices";
2 | export default ProductServices;
3 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/react/Remove/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 | export default defineMessages({
3 | remove: {
4 | defaultMessage: "Remove",
5 | id: "components.Remove.Remove",
6 | },
7 | });
8 | //# sourceMappingURL=messages.js.map
--------------------------------------------------------------------------------
/react/components/ReplyBox/index.ts:
--------------------------------------------------------------------------------
1 | export const replyBoxformItemName = {
2 | form: "replyMessageThread",
3 | textarea: "replybox",
4 | };
5 | export { default as ReplyBox } from "./ReplyBox";
6 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/react/components/ReplyBox/translations/messages.ts:
--------------------------------------------------------------------------------
1 | import { defineMessages } from "react-intl";
2 | export default defineMessages({
3 | replyBoxButton: { id: "components.replyBox.form.button" },
4 | replyBoxGlobalErrorMessage: { id: "components.replyBox.form.global.error.message" },
5 | replyBoxInputErrorMessage: { id: "components.replyBox.input.error.message" },
6 | replyBoxInputPlaceholder: { id: "components.replyBox.input.placeholder" },
7 | });
8 | //# sourceMappingURL=messages.js.map
--------------------------------------------------------------------------------
/react/utilities/helpers.ts:
--------------------------------------------------------------------------------
1 | export function noop() {
2 | return;
3 | }
4 | //# sourceMappingURL=helpers.js.map
--------------------------------------------------------------------------------
/reducers/navigationReducer/initialNavigationState.tsx:
--------------------------------------------------------------------------------
1 | export const initialNavigationState = {
2 | categories: [],
3 | flyoutOverlay: false,
4 | loading: false,
5 | selectedCategory: "",
6 | showAccountLinks: false,
7 | viewCart: false,
8 | customerFirstName: "",
9 | brandsMenuContent: null,
10 | shopMenuContent: null,
11 | globalMenuContent: null,
12 | };
13 | //# sourceMappingURL=initialNavigationState.js.map
--------------------------------------------------------------------------------
/redux/checkout/actionTypes.ts:
--------------------------------------------------------------------------------
1 | export const SET_ORDER_NUMBER = "checkout/SET_ORDER_NUMBER";
2 | export const RESET_CHECKOUT = "checkout/RESET_CHECKOUT";
3 | export const UPDATE_REVIEW_ORDER = "checkout/UPDATE_REVIEW_ORDER";
4 | //# sourceMappingURL=actionTypes.js.map
--------------------------------------------------------------------------------
/utilities/isCheckoutPath/index.ts:
--------------------------------------------------------------------------------
1 | export const isCheckoutPath = (url = "") => url.indexOf("checkout") > -1;
2 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/utilities/removeDuplicateSlashInURL/index.ts:
--------------------------------------------------------------------------------
1 | export default function removeDuplicateSlashInURL(url) {
2 | return typeof url === "string" ? url.replace(/([^:]\/)\/+/g, "$1") : url;
3 | }
4 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/utils/index.ts:
--------------------------------------------------------------------------------
1 | "use strict";
2 | function __export(m) {
3 | for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4 | }
5 | Object.defineProperty(exports, "__esModule", { value: true });
6 | __export(require("./Cookie/Cookie"));
7 | __export(require("./CookieUtils/CookieUtils"));
8 | __export(require("./makeId"));
9 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/utils/isMobileApp/index.ts:
--------------------------------------------------------------------------------
1 | export default (appMode) => {
2 | return appMode && (appMode === "iphone" || appMode === "android");
3 | };
4 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/utils/logging/index.ts:
--------------------------------------------------------------------------------
1 | export var Level;
2 | (function (Level) {
3 | Level[Level["Info"] = 0] = "Info";
4 | Level[Level["Warn"] = 1] = "Warn";
5 | Level[Level["Error"] = 2] = "Error";
6 | })(Level || (Level = {}));
7 | //# sourceMappingURL=index.js.map
--------------------------------------------------------------------------------
/wdyr.js:
--------------------------------------------------------------------------------
1 | import React from "react";
2 |
3 | if (process.env.NODE_ENV === "development" && process.env.DEBUG_CLIENT_PERFORMANCE) {
4 | const whyDidYouRender = require("@welldone-software/why-did-you-render");
5 | whyDidYouRender(React, {
6 | trackAllPureComponents: true,
7 | });
8 | }
9 |
--------------------------------------------------------------------------------