{"version":3,"file":"js/pages-ProductDetailsPage-ProductDetailsPage-2574092c41359f5b42a7.chunk.js","mappings":"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","sources":["webpack://printivity/./client/app/api/CmsPages.ts","webpack://printivity/./client/app/api/persephone/persephone.ts","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/Dynamic.imports-loadable.tsx","webpack://printivity/./client/app/styleguide/components/ProdeuctJsonLd/ProductJsonLd.tsx","webpack://printivity/./client/app/utils/flattenTaxons.ts","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/AddToCart/BlockWithIcon/BlockWithIcon.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/AddToCart/CallEmailUs/CallEmailUs.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/AddToCart/NeedAssistance/NeedAssistance.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/AddToCart/RushDeliveryAvailable/RushDeliveryAvailable.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/AddToCart/WorriedAboutDesign/WorriedAboutDesign.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/AddToCart/AddToCartButtonPrice/AddToCartButtonPrice.scss?2201","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/AddToCart/AddToCartButtonPrice/AddToCartButtonPrice.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/AddToCart/AddToCart.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/InstantQuote/InstantQuote.scss?cc77","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/ProductSelector/ProductSelector.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/ProductSelector/ProductSelector.scss?ed7a","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/InstantQuote/InstantQuote.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/InstantQuote/galleryThumbs.scss?0ff9","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/InstantQuote/modalGalleryThumbs.scss?bdf3","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/BackToTop/BackToTop.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/ProductDetailsNavbar/ProductDetailsNavbar.scss?94ff","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/ProductDetailsNavbar/ProductDetailsNavbar.tsx","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/hooks/useQuoteParams.ts","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/utils/utils.ts","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/hooks/useSelected.ts","webpack://printivity/./client/app/bundles/App/pages/ProductDetailsPage/ProductDetailsPage.tsx","webpack://printivity/./client/app/contexts/PersephoneContextContainer/PersephoneContext.tsx","webpack://printivity/./client/app/styleguide/components/Breadcrumb/Breadcrumb.tsx","webpack://printivity/./client/app/styleguide/components/Conditional/IfMobile.tsx","webpack://printivity/./client/app/styleguide/components/Conditional/IfTabletOrDesktop.tsx","webpack://printivity/./client/app/styleguide/components/Footer/BottomPart/BottomPart.tsx","webpack://printivity/./client/app/styleguide/components/Footer/BottomPart/BottomPartMobile.tsx","webpack://printivity/./client/app/styleguide/components/Footer/BottomPart/Copyright.tsx","webpack://printivity/./client/app/styleguide/components/Footer/BottomPart/Links.tsx","webpack://printivity/./client/app/styleguide/components/Footer/Footer.tsx","webpack://printivity/./client/app/styleguide/components/Footer/Menu/Menu.tsx","webpack://printivity/./client/app/styleguide/components/Footer/Menu/MenuBlock.tsx","webpack://printivity/./client/app/styleguide/components/Formik/RadioTabs/index.tsx","webpack://printivity/./client/app/styleguide/components/LoaderWrapper/LoaderWrapper.tsx","webpack://printivity/./client/app/styleguide/components/Meta/Meta.tsx","webpack://printivity/./client/app/styleguide/components/Modal/ModalFooter/ModalFooter.tsx","webpack://printivity/./client/app/styleguide/components/Modal/ModalFooter/ModalFooter.scss?7944","webpack://printivity/./client/app/styleguide/components/Modal/Modal.tsx","webpack://printivity/./client/app/styleguide/components/Modal/Modal.scss?367c","webpack://printivity/./client/app/styleguide/components/NavigationCard/NavigationCard.tsx","webpack://printivity/./client/app/styleguide/components/NavigationCard/NavigationCard.scss?4db1","webpack://printivity/./client/app/styleguide/components/PageLevelError/PageLevelError.tsx","webpack://printivity/./client/app/styleguide/components/PageLevelError/PageLevelErrorItem.tsx","webpack://printivity/./client/app/styleguide/components/PromotionBannner/PromotionBanner.tsx","webpack://printivity/./client/app/styleguide/components/Tooltip/Tooltip.tsx","webpack://printivity/./client/app/styleguide/components/forms/Field/TwoColumnFormField.tsx","webpack://printivity/./client/app/styleguide/icons/IconArrowLeft.tsx","webpack://printivity/./client/app/styleguide/icons/IconArrowRight.tsx","webpack://printivity/./client/app/styleguide/icons/IconMegaphone.tsx","webpack://printivity/./client/app/utils/LocalStorageService.ts","webpack://printivity/./client/app/utils/dimensions.ts","webpack://printivity/./client/app/utils/hooks/useCms.ts","webpack://printivity/./client/app/styleguide/components/forms/Field/Field.scss?dfed"],"sourcesContent":["import { buildUrl } from 'libs/utils/api';\nimport apiCall from 'libs/utils/api/apiCall';\nimport { BasicResponse } from 'api/types';\nimport { SharedErrors } from 'libs/utils/api/types';\n\n// GET /cms_pages/:id/track\nexport const trackCmsPage = (id: number) => {\n const url = buildUrl(`/cms_pages/${id}/track`);\n apiCall.get({ url }).then();\n};\n\n// GET /cms_pages/:id/track_product\nexport const trackProductChange = (id: number) => {\n const url = buildUrl(`/cms_pages/${id}/track_product`);\n apiCall.get({ url }).then();\n};\n\n// POST /cms_pages/:id/track_clicked_template_link\nexport const trackClickedTemplateLink = (id: number, templateName: string) => {\n const url = buildUrl(`/cms_pages/${id}/track_clicked_template_link`);\n apiCall.post({ url, data: { templateName } }).then();\n};\n","import apiCall from 'libs/utils/api/apiCall';\nimport queryString from 'qs';\nimport { Product } from './productTypes';\nimport { ApiResponse, SharedErrors } from 'libs/utils/api/types';\nimport { ConsumedMaterial, PrintingSpec } from 'api/admin/orders/types';\nimport { BasicResponse } from 'api/types';\n\nexport interface Catalog {\n [key: string]: Product;\n}\n\nexport interface MaterialInventory {\n quantity: number;\n materialInventoryKey: string;\n materialInventoryName: string;\n materialKey: string;\n materialName: string;\n materialShortName: string;\n weight: number;\n cost: number;\n width: string;\n height: string;\n categoryKey: string;\n categoryName: string;\n}\n\nexport const doCatalogRequest = (endpoint, token): ApiResponse =>\n apiCall.get({\n url: `${endpoint}/instant_quoter/get_product_catalog?${queryString.stringify({\n token,\n })}`,\n remote: true,\n });\n\nexport const doMaterialInventoryRequest = (endpoint, token): ApiResponse =>\n apiCall.get({\n url: `${endpoint}/materials-api/material-inventory-list?${queryString.stringify({\n token,\n })}`,\n remote: true,\n });\n\nexport interface LineItem {\n lineItem: {\n total: string;\n productionRange: string;\n weight?: string;\n cost?: string;\n description?: string;\n printingSpecsAttributes?: PrintingSpec[];\n consumedMaterialsAttributes?: ConsumedMaterial[];\n };\n}\n\nexport interface Error {\n message: string;\n status: string;\n data?: {\n type: 'minRequirementsError' | 'CustomQuoteError';\n total: number;\n };\n}\n\nexport const doQuoteRequest = (\n endpoint,\n token,\n values,\n productionDays,\n options,\n): ApiResponse =>\n apiCall.get({\n url: `${endpoint}/calculate/line_item?${queryString.stringify(\n {\n quoter_json: JSON.stringify(values),\n production_days: productionDays,\n token,\n optional_attributes: options,\n },\n { arrayFormat: 'brackets' },\n )}`,\n remote: true,\n });\n\nexport const submitQuoteRequest = (\n orderNumber,\n userId,\n productKey,\n values,\n url,\n price,\n): ApiResponse =>\n apiCall.post({\n url: '/line_item_quotes',\n data: {\n orderNumber,\n lineItemQuote: { userId, productKey, referring_url: url, quoterJson: values, price },\n },\n unscoped: true,\n });\n","import loadable from '@loadable/component';\nimport retry from 'utils/retry';\n\nexport const Reviews = loadable(() => retry(() => import(/* webpackPrefetch: true */ './Reviews/Reviews')));\nexport const RelatedItems = loadable(() =>\n retry(() => import(/* webpackPrefetch: true */ 'styleguide/components/RelatedItems/RelatedItems')),\n);\nexport const InnerNavigation = loadable(() =>\n retry(() => import(/* webpackPrefetch: true */ './InnerNavigation/InnerNavigation')),\n);\nexport const CmsContentSection = loadable(() =>\n retry(\n () =>\n import(\n /* webpackPrefetch: true */ 'bundles/App/pages/ProductDetailsPage/CmsContentSection/CmsContentSection'\n ),\n ),\n);\nexport const AdditionalInfo = loadable(() =>\n retry(() => import(/* webpackPrefetch: true */ './AdditionalInfo/AdditionalInfo')),\n);\nexport const FAQ = loadable(() =>\n retry(() => import(/* webpackPrefetch: true */ './AdditionalInfo/FAQ/FAQ')),\n);\nexport const Articles = loadable(() =>\n retry(() => import(/* webpackPrefetch: true */ './AdditionalInfo/Articles/Articles')),\n);\nexport const TemplateSpecs = loadable(() =>\n retry(() => import(/* webpackPrefetch: true */ './AdditionalInfo/TemplateSpecs/TemplateSpecs')),\n);\n","import * as React from 'react';\nimport { Helmet } from 'react-helmet-async';\nimport { CmsProductPage, Product } from 'contexts/AppContext/types';\nimport QuoteContext from 'contexts/QuoteContext/QuoteContext';\n\ninterface Props {\n product: Product;\n productPage?: CmsProductPage;\n}\n\nconst createProductJson = (price: number, product: Product, productPage: CmsProductPage): string =>\n JSON.stringify({\n '@context': `https://schema.org`,\n '@type': 'Product',\n image: product.image?.url,\n name: product.name,\n description: productPage.merchantProductInfo.merchantDescription,\n category: productPage.merchantProductInfo.merchantCategory,\n mpn: productPage.merchantProductInfo.merchantMpn,\n sku: product.slug,\n brand: 'Printivity',\n offers: {\n '@type': 'Offer',\n price,\n priceCurrency: 'USD',\n url: productPage.metaData.metaCanonicalLink,\n itemCondition: 'NewCondition',\n availability: 'InStock',\n },\n });\n\nconst ProductJsonLd = ({ product, productPage }: Props) => {\n const quoteContext = React.useContext(QuoteContext);\n const [init, setInit] = React.useState(false);\n const [price, setPrice] = React.useState(null);\n\n React.useEffect(() => {\n if (quoteContext && quoteContext.price && !init) {\n setPrice(quoteContext.price);\n setInit(true);\n }\n }, [quoteContext.price]);\n\n return (\n \n {!!price && (\n \n )}\n \n );\n};\n\nexport default ProductJsonLd;\n","import compact from 'lodash-es/compact';\nimport { Taxon } from '../contexts/AppContext/types';\n\nexport const flattenTaxons = (taxons: Taxon[]): Taxon[] =>\n taxons.reduce((acc, x) => {\n const flattened = [...acc, x];\n if (x.taxons) {\n return [...flattened, ...flattenTaxons(x.taxons)];\n }\n return flattened;\n }, []);\n\nexport const findTaxon = (taxons: Taxon[], taxonName: string): Taxon => {\n const foundNodes: Taxon[] = taxons.reduce((acc, t) => {\n let nodes;\n if (t.name === taxonName) {\n nodes = [...acc, t];\n } else {\n nodes = [...acc, t.taxons.length > 0 ? findTaxon(t.taxons, taxonName) : null];\n }\n return nodes;\n }, []);\n return compact(foundNodes)[0];\n};\n\nexport const findTaxonBySlug = (taxons: Taxon[], taxonSlug: string, prefix: string | null = null): Taxon => {\n let searchSlug = taxonSlug;\n if (prefix) {\n searchSlug = prefix + searchSlug;\n }\n const foundNodes: Taxon[] = taxons.reduce((acc, t) => {\n let nodes;\n if (t.permalink === searchSlug) {\n nodes = [...acc, t];\n } else {\n nodes = [...acc, t.taxons.length > 0 ? findTaxonBySlug(t.taxons, taxonSlug, prefix) : null];\n }\n return nodes;\n }, []);\n return compact(foundNodes)[0];\n};\n","import * as React from 'react';\nimport cn from 'classnames';\n\ninterface Props {\n icon: React.ReactNode;\n title: string;\n children?: React.ReactNode;\n className?: string;\n}\n\nconst BlockWithIcon = ({ title, icon, ...props }: Props) => (\n
\n
{icon}
\n
\n {title}\n {props.children}\n
\n
\n);\n\nexport default BlockWithIcon;\n","import * as React from 'react';\nimport Link from 'styleguide/components/Links/Link';\nimport { clickEmailUs } from 'api/gtm';\n\ninterface Props {\n emailUsUrl: string;\n phone: string;\n}\n\nconst CallEmailUs = ({ phone, emailUsUrl }: Props) => (\n
\n
{`Call ${phone}`}
\n clickEmailUs({ location: 'pdp_sticky_nav' })}\n >\n Email Us\n \n
\n);\n\nexport default CallEmailUs;\n","import * as React from 'react';\nimport BlockWithIcon from '../BlockWithIcon/BlockWithIcon';\nimport CallEmailUs from '../CallEmailUs/CallEmailUs';\nimport { IconPhone } from 'styleguide/icons';\n\ninterface Props {\n contactPhone: string;\n emailUsUrl: string;\n}\n\nconst NeedAssistance = ({ contactPhone, emailUsUrl }: Props) => (\n }\n >\n \n \n);\n\nexport default NeedAssistance;\n","import * as React from 'react';\nimport BlockWithIcon from '../BlockWithIcon/BlockWithIcon';\nimport { IconShipping } from 'styleguide/icons';\nimport { getDurationString, weekdayAndDate } from 'utils/time';\n\ninterface Props {\n hidden?: boolean;\n date: string;\n durationSeconds: number;\n}\n\nconst RushDeliveryAvailable = ({ date, durationSeconds, ...props }: Props) =>\n !props.hidden ? (\n }\n className=\"md:!text-sm lg:!text-base \"\n >\n
\n
\n Want it {weekdayAndDate(date)}?\n
\n
\n Order within:{' '}\n {getDurationString(durationSeconds)}\n
\n
\n \n ) : null;\n\nexport default RushDeliveryAvailable;\n","import * as React from 'react';\nimport { HashLink as Link } from 'react-router-hash-link';\nimport { servicePath } from 'bundles/App/routes';\n\nconst WorriedAboutDesign = () => (\n
\n \n Worried about design issues delaying your print job?\n \n\n \n
\n);\n\nexport default WorriedAboutDesign;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"AddToCartButtonPrice__icon__P8V6i\";\nvar _2 = \"AddToCartButtonPrice__priceContainerTabletMobile__ydLW4\";\nvar _3 = \"AddToCartButtonPrice__priceDiscounted__IqUts\";\nvar _4 = \"AddToCartButtonPrice__priceMobile__sgD55\";\nvar _5 = \"AddToCartButtonPrice__showOptions__dToJK\";\nexport { _1 as \"icon\", _2 as \"priceContainerTabletMobile\", _3 as \"priceDiscounted\", _4 as \"priceMobile\", _5 as \"showOptions\" }\n","import * as React from 'react';\nimport cn from 'classnames';\nimport { useLocation } from 'react-router-dom';\nimport * as css from './AddToCartButtonPrice.scss';\nimport { formatMoney } from 'utils/money';\nimport { Button } from 'styleguide/components';\nimport { ErrorMessage } from 'styleguide/components/forms';\nimport Loader from 'styleguide/components/Loader/Loader';\nimport QuoteContext from 'contexts/QuoteContext/QuoteContext';\nimport HtmlContent from 'styleguide/components/HtmlContent/HtmlContent';\nimport { useFormikContext } from 'formik';\nimport { KeyVal } from 'libs/utils/common-types';\nimport { submitQuoteRequest } from 'api/persephone/persephone';\nimport OrderContext from 'contexts/OrderContext/OrderContext';\nimport UserContext from 'contexts/UserContextContainer/UserContext';\nimport merge from 'lodash-es/merge';\nimport { clickRefreshQuote } from 'api/gtm';\n\ninterface Props {\n showDiscountMessage: boolean;\n}\n\nconst AddToCartButtonPrice = ({ showDiscountMessage }: Props) => {\n const { order } = React.useContext(OrderContext);\n const { currentUser } = React.useContext(UserContext);\n const quoteContext = React.useContext(QuoteContext);\n const location = useLocation();\n const { values, isValid } = useFormikContext();\n const { price, onSubmit, discountPrice, discountMessage } = quoteContext;\n const isLoading =\n quoteContext.status === 'addingToCart' ||\n quoteContext.status === 'quoting' ||\n (price === null && quoteContext.status !== 'quoteError' && quoteContext.instantQuote);\n\n return (\n
\n {showDiscountMessage && discountMessage ? (\n \n ) : (\n
 
\n )}\n\n
\n {isLoading ? (\n \n ) : (\n
\n {discountPrice ? (\n <>\n {formatMoney(price)}\n \n {/* ADNAN: discount max value 500. move hardcode to CMS? */}\n {formatMoney(discountPrice)}\n \n \n ) : (\n \n {formatMoney(price)}\n \n )}\n
\n )}\n\n {['quoteError', 'minRequirementsError'].includes(quoteContext.status) && (\n \n )}\n {quoteContext.instantQuote || (!quoteContext.instantQuote && quoteContext.price !== null) ? (\n <>\n {\n onSubmit(merge(values, { product: quoteContext.product.getProductKey() }));\n }}\n type=\"button\"\n color=\"orange\"\n >\n {isLoading ? : 'Add to cart'}\n \n {\n onSubmit(merge(values, { product: quoteContext.product.getProductKey() }));\n }}\n type=\"button\"\n color=\"orange\"\n >\n {isLoading ? : 'Add to cart'}\n \n \n ) : (\n <>\n {\n quoteContext.onChange(quoteContext.initialValues, values, true).then(res => {\n submitQuoteRequest(\n order.number,\n currentUser ? currentUser.id : null,\n quoteContext.product.getProductKey(),\n values,\n location.pathname,\n res,\n ).then(() => {\n clickRefreshQuote({\n location: 'sticky_nav',\n ...values,\n error: quoteContext.errorMessage,\n });\n });\n });\n }}\n type=\"button\"\n color=\"blue\"\n >\n Refresh Quote\n \n {\n quoteContext.onChange(quoteContext.initialValues, values, true).then(res => {\n submitQuoteRequest(\n order.number,\n currentUser ? currentUser.id : null,\n quoteContext.product.getProductKey(),\n values,\n location.pathname,\n res,\n ).then(() => {\n clickRefreshQuote({\n location: 'sticky_nav',\n ...values,\n error: quoteContext.errorMessage,\n });\n });\n });\n }}\n type=\"button\"\n color=\"blue\"\n >\n Refresh Quote\n \n \n )}\n
\n {['quoteError', 'minRequirementsError'].includes(quoteContext.status) && (\n
\n );\n};\n\nexport default AddToCartButtonPrice;\n","import * as React from 'react';\nimport { contactPhone } from 'app/constants';\nimport NeedAssistance from './NeedAssistance/NeedAssistance';\nimport RushDeliveryAvailable from './RushDeliveryAvailable/RushDeliveryAvailable';\nimport WorriedAboutDesign from './WorriedAboutDesign/WorriedAboutDesign';\nimport AddToCartButtonPrice from './AddToCartButtonPrice/AddToCartButtonPrice';\nimport { RushDeliveryData } from '../ProductDetailsPage';\nimport QuoteContext from 'contexts/QuoteContext/QuoteContext';\nimport Loader from 'styleguide/components/Loader/Loader';\nimport A from 'styleguide/components/Links/A';\n\ninterface Props {\n rushDeliveryData: RushDeliveryData | null;\n informational?: boolean;\n}\n\nconst minRushDeliveryWidth = 'min-w-[215px]';\n\nconst AddToCart = ({ rushDeliveryData, informational }: Props) => {\n const minDate = rushDeliveryData === null ? null : rushDeliveryData.minDate;\n const seconds = rushDeliveryData === null ? 0 : rushDeliveryData.seconds;\n const quoteContext = React.useContext(QuoteContext);\n const isLoading =\n quoteContext.status === 'addingToCart' ||\n quoteContext.status === 'quoting' ||\n (quoteContext.price === null && quoteContext.status !== 'quoteError' && quoteContext.instantQuote);\n\n return (\n // positioning and z-index needed here for nav bar overlay to work properly\n
\n \n {informational ? (\n
\n
\n Interested in this product?\n
\n
\n Call{' '}\n \n 1-877-649-5463\n {' '}\n or email{' '}\n \n service@printivity.com\n {' '}\n for a custom quote.\n
\n
\n ) : (\n
\n
\n \n \n
\n
\n )}\n
\n \n );\n};\n\nexport default AddToCart;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"InstantQuote__featuresContent__nFqU_\";\nvar _2 = \"InstantQuote__image__BVFQ3\";\nvar _3 = \"InstantQuote__imageDynamicWidthHeight__vYIXS\";\nvar _4 = \"InstantQuote__imageFullHeight__XYdgy\";\nvar _5 = \"InstantQuote__imageFullWidth__gkTke\";\nvar _6 = \"InstantQuote__imageSlideContainer__sxWOH\";\nvar _7 = \"InstantQuote__imageSlideContainerMobile__VzGJ2\";\nvar _8 = \"InstantQuote__imageWithError__i2HnQ\";\nvar _9 = \"InstantQuote__imageWrapper__IgWsZ\";\nvar _a = \"InstantQuote__instantQuote__FuTJC\";\nvar _b = \"InstantQuote__instantQuoterLoadError__TJ7KB\";\nvar _c = \"InstantQuote__instantQuoterTitle__RaAqT\";\nvar _d = \"InstantQuote__loaderContainer__C7fLc\";\nvar _e = \"InstantQuote__modalContentContainer__ztNA8\";\nvar _f = \"InstantQuote__modalImageWrapper__ankwU\";\nvar _10 = \"InstantQuote__productImage__Rcht3\";\nvar _11 = \"InstantQuote__productTitle__Xe29a\";\nvar _12 = \"InstantQuote__productTitleContainer__aaYco\";\nvar _13 = \"InstantQuote__rightPanel__rcPyh\";\nexport { _1 as \"featuresContent\", _2 as \"image\", _3 as \"imageDynamicWidthHeight\", _4 as \"imageFullHeight\", _5 as \"imageFullWidth\", _6 as \"imageSlideContainer\", _7 as \"imageSlideContainerMobile\", _8 as \"imageWithError\", _9 as \"imageWrapper\", _a as \"instantQuote\", _b as \"instantQuoterLoadError\", _c as \"instantQuoterTitle\", _d as \"loaderContainer\", _e as \"modalContentContainer\", _f as \"modalImageWrapper\", _10 as \"productImage\", _11 as \"productTitle\", _12 as \"productTitleContainer\", _13 as \"rightPanel\" }\n","import * as React from 'react';\nimport cn from 'classnames';\nimport * as css from './ProductSelector.scss';\nimport Grid from 'styleguide/components/Grid/Grid';\nimport Image from 'styleguide/components/Image/Image';\nimport Label from 'styleguide/components/forms/Label/Label';\nimport { Product } from 'contexts/AppContext/types';\n\ninterface Props {\n products: Product[];\n selectedProduct: Product;\n productSelectionHandler: (productName: string, e: React.MouseEvent) => void;\n}\n\nconst ProductCard = ({ image, name, slug, isSelected, productSelectionHandler }) => (\n \n productSelectionHandler(slug, e)}\n onKeyDown={e => productSelectionHandler(slug, e)}\n role=\"button\"\n tabIndex={0}\n >\n {image && {image.alt}}\n

{name}

\n \n
\n);\nconst ProductSelector = ({ products, ...props }: Props) => (\n \n \n \n \n \n \n {\n // Todo: Added this i<4 Condition in filter to ensure not more than 4 Selection Card Appears as styling for more than that isn't discussed\n }\n {products\n .filter((el: Product, i: number) => i < 4)\n .map((item: Product, i: number) => (\n \n ))}\n \n \n \n);\n\nexport default ProductSelector;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"ProductSelector__productDescription__NL5nB\";\nvar _2 = \"ProductSelector__productImage__r5u06\";\nvar _3 = \"ProductSelector__productName__EESuS\";\nvar _4 = \"ProductSelector__productSelectorCard__rFCMc\";\nvar _5 = \"ProductSelector__productSelectorLabel__DctFs\";\nvar _6 = \"ProductSelector__round__Zjgvb\";\nvar _7 = \"ProductSelector__selectedProductSelectorCard__QYJxF\";\nvar _8 = \"ProductSelector__selectedProductSelectorLabel__m1IOx\";\nvar _9 = \"ProductSelector__selectedRound__N20ke\";\nexport { _1 as \"productDescription\", _2 as \"productImage\", _3 as \"productName\", _4 as \"productSelectorCard\", _5 as \"productSelectorLabel\", _6 as \"round\", _7 as \"selectedProductSelectorCard\", _8 as \"selectedProductSelectorLabel\", _9 as \"selectedRound\" }\n","import * as React from 'react';\nimport cn from 'classnames';\nimport * as css from './InstantQuote.scss';\nimport Grid from 'styleguide/components/Grid/Grid';\nimport Image from 'styleguide/components/Image/Image';\nimport PageLevelErrorItem from 'styleguide/components/PageLevelError/PageLevelErrorItem';\nimport PageLevelError from 'styleguide/components/PageLevelError/PageLevelError';\nimport QuoteEditForm from 'styleguide/components/QuoteEditForm/QuoteEditForm';\nimport HtmlContent from 'styleguide/components/HtmlContent/HtmlContent';\nimport ProductSelector from '../ProductSelector/ProductSelector';\nimport CustomQuoteWarning from 'styleguide/components/CustomQuoteWarning/CustomQuoteWarning';\nimport IfDesktop from 'styleguide/components/Conditional/IfDesktop';\nimport { Product, CmsProductPage, CmsCategoryPage } from 'contexts/AppContext/types';\nimport PersephoneContext from 'contexts/PersephoneContextContainer/PersephoneContext';\nimport IfTabletOrDesktop from 'styleguide/components/Conditional/IfTabletOrDesktop';\nimport Loader from 'styleguide/components/Loader/Loader';\nimport IfMobile from 'styleguide/components/Conditional/IfMobile';\nimport QuoteContext from 'contexts/QuoteContext/QuoteContext';\nimport Slider from 'react-slick';\nimport 'slick-carousel/slick/slick.css';\nimport 'slick-carousel/slick/slick-theme.css';\nimport './sliderStyleCustomizations.css';\nimport './zoom.css';\nimport * as galleryThumbs from './galleryThumbs.scss';\nimport * as modalGalleryThumbs from './modalGalleryThumbs.scss';\nimport ReactImageMagnify from '@blacklab/react-image-magnify';\nimport Modal from 'styleguide/components/Modal/Modal';\nimport useWindowDimensions from 'utils/dimensions';\nimport IconArrowLeft from 'styleguide/icons/IconArrowLeft';\nimport IconArrowRight from 'styleguide/icons/IconArrowRight';\nimport Breadcrumb from 'styleguide/components/Breadcrumb/Breadcrumb';\nimport camelCase from 'lodash-es/camelCase';\nimport { clickCarousel } from 'api/gtm';\n\nfunction SlickArrowLeft(arrowProps) {\n const { className, onClick, slideIndex, selectedProduct } = arrowProps;\n\n return (\n {\n clickCarousel(\n {\n item_name: selectedProduct.name,\n item_id: selectedProduct.slug,\n },\n {\n action: 'LeftArrow',\n page: 'PDP',\n },\n );\n onClick();\n }}\n onKeyDown={onClick}\n role=\"button\"\n tabIndex={0}\n >\n \n \n );\n}\n\nfunction SlickArrowRight(arrowProps) {\n const { className, onClick, slideIndex, images, selectedProduct } = arrowProps;\n\n return (\n {\n clickCarousel(\n {\n item_name: selectedProduct.name,\n item_id: selectedProduct.slug,\n },\n {\n action: 'RightArrow',\n page: 'PDP',\n },\n );\n onClick();\n }}\n onKeyDown={onClick}\n role=\"button\"\n tabIndex={0}\n >\n \n \n );\n}\n\ninterface Props {\n selectedProduct: Product;\n selectedCategoryCms?: CmsCategoryPage;\n selectedProductCms?: CmsProductPage;\n products: Product[];\n cms: CmsProductPage;\n shortDescription: string;\n reviewsCount: number;\n reviewsScore: number;\n informational?: boolean;\n productSelectionHandler?: (productName: string, e: React.MouseEvent) => void;\n}\n\nconst InstantQuote = ({ ...props }: Props) => {\n const persephone = React.useContext(PersephoneContext);\n const quoteContext = React.useContext(QuoteContext);\n const [showImageGalleryModal, setShowImageGalleryModal] = React.useState(false);\n const { width, height } = useWindowDimensions();\n const [slideIndex, setSlideIndex] = React.useState(0);\n const sliderRef = React.useRef();\n\n const images = [\n ...(props.selectedProduct.images[camelCase(quoteContext.alias)] || []),\n ...(props.selectedProduct.images.master || []),\n ];\n\n React.useEffect(() => {\n if (!!sliderRef && !!sliderRef.current) {\n sliderRef.current.slickGoTo(0);\n }\n }, [props.selectedProduct]);\n\n const isLandscape = (): boolean => width > height;\n\n function renderCustomPaging(i) {\n const img = images[i];\n return (\n \n {img?.alt}\n \n );\n }\n\n function appendDots(dots) {\n return (\n
    \n {dots.map((item, index) => (\n
  • \n {item.props.children}\n
  • \n ))}\n
\n );\n }\n\n const settings = {\n customPaging: renderCustomPaging,\n dots: true,\n dotsClass: galleryThumbs.thumbnails,\n infinite: false,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n swipeToSlide: true,\n lazyLoad: true,\n afterChange: current => setSlideIndex(current),\n nextArrow: (\n \n ),\n prevArrow: ,\n };\n\n const modalSettings = {\n customPaging: renderCustomPaging,\n dots: true,\n dotsClass: isLandscape()\n ? modalGalleryThumbs.modalThumbnailsVertical\n : modalGalleryThumbs.modalThumbnails,\n appendDots,\n arrows: false,\n infinite: false,\n speed: 500,\n slidesToShow: 1,\n slidesToScroll: 1,\n swipeToSlide: true,\n fade: true,\n accessibility: true,\n initialSlide: slideIndex,\n nextArrow: ,\n prevArrow: ,\n };\n\n return (\n \n {!!showImageGalleryModal && (\n setShowImageGalleryModal(false)}>\n {/* The classnames are used scope for modal version. Slick-slider does not support modules */}\n
\n \n {images.map(image => (\n
\n \n
\n ))}\n
\n
\n
\n )}\n \n \n \n
\n {props.selectedCategoryCms.label.toLowerCase() !== 'landing' && (\n \n )}\n \n \n

{props.cms.label}

\n {quoteContext.status === 'customQuote' && }\n
\n
\n \n \n {images && images.length === 1 && (\n \n )}\n {images && images.length > 1 && (\n
\n \n {images.map(image => (\n <>\n \n \n \n \n {\n clickCarousel(\n {\n item_name: props.selectedProduct.name,\n item_id: props.selectedProduct.slug,\n },\n {\n action: 'ZoomIn',\n page: 'PDP',\n },\n );\n setShowImageGalleryModal(true);\n }}\n fetchpriority=\"high\"\n />\n \n \n ))}\n \n
\n )}\n
\n
\n \n \n {!!quoteContext.errorMessage && (\n \n {quoteContext.errorMessage}\n \n )}\n {props.shortDescription && (\n <>\n
Description
\n \n \n )}\n
\n
\n
\n
\n {!props.informational && (\n <>\n \n \n \n \n
\n Instant Price Quoter\n
\n {props.cms.productTiles && props.cms.productTiles.productTiles.length > 1 && (\n \n )}\n \n {persephone.available && !persephone.catalog && (\n <>\n \n \n \n \n \n \n \n )}\n {!persephone.available && (\n
\n \n \n Please refresh the page. If that does not work, please try again later.\n \n \n
\n )}\n
\n
\n
\n \n )}\n
\n
\n
\n );\n};\nexport default InstantQuote;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"galleryThumbs__thumbnails__pfJxi\";\nexport { _1 as \"thumbnails\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"modalGalleryThumbs__modalThumbnails__rF3eS\";\nvar _2 = \"modalGalleryThumbs__modalThumbnailsVertical__zA1r2\";\nexport { _1 as \"modalThumbnails\", _2 as \"modalThumbnailsVertical\" }\n","import * as React from 'react';\nimport { IconArrowUp } from 'styleguide/icons';\n\nconst BackToTop = () => (\n window.scrollTo({ top: 0, behavior: 'smooth' })}\n onKeyDown={() => window.scrollTo({ top: 0, behavior: 'smooth' })}\n role=\"button\"\n tabIndex={0}\n >\n \n Back to top\n \n);\nexport default BackToTop;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"ProductDetailsNavbar__navScroll__cHamO\";\nexport { _1 as \"navScroll\" }\n","import * as React from 'react';\nimport * as css from './ProductDetailsNavbar.scss';\nimport cn from 'classnames';\nimport { NavContainer } from 'styleguide/components';\nimport Link from 'styleguide/components/Links/Link';\nimport Image from 'styleguide/components/Image/Image';\nimport logo from 'assets/images/printivity-logo-mobile.png';\nimport CartIcon from 'styleguide/components/Nav/CartIcon/CartIcon';\nimport IfDesktop from 'styleguide/components/Conditional/IfDesktop';\nimport IfTabletOrMobile from 'styleguide/components/Conditional/IfTabletOrMobile';\nimport { Transition } from '@headlessui/react';\n\ninterface Props {\n disableFeatures?: boolean;\n disableTemplates?: boolean;\n disableFAQ?: boolean;\n disableBranding?: boolean;\n disableReviews?: boolean;\n disableMoreResources?: boolean;\n disableSEOBlock?: boolean;\n disableArticles?: boolean;\n}\n\nconst ProductDetailsNavbar = ({\n disableFeatures,\n disableTemplates,\n disableFAQ,\n disableBranding,\n disableReviews,\n disableMoreResources,\n disableSEOBlock,\n disableArticles,\n}: Props) => {\n const [scrollTop, setScrollTop] = React.useState(0);\n const [innerNavOffset, setInnerNavOffset] = React.useState(0);\n const [innerNavigationIsSticky, setInnerNavigationIsSticky] = React.useState(false);\n const [currentSection, setCurrentSection] = React.useState('features');\n const sections = [\n 'features',\n 'why-printivity',\n 'reviews',\n 'templates-and-specs',\n 'articles',\n 'faq',\n 'more-resources',\n 'more-information',\n ];\n const elIsOnTop = (el: HTMLElement) => {\n if (el.offsetHeight + el.getBoundingClientRect().top > 78) {\n return true;\n }\n return false;\n };\n\n const findElOnTop = () => {\n const elOnTop = sections.find(section => {\n const el = document.getElementById(`${section}-body`);\n if (el && elIsOnTop(el)) {\n return true;\n }\n return false;\n });\n return elOnTop;\n };\n\n const scrollTo = (id: string) => {\n const el = document.getElementById(id);\n if (el) {\n el.scrollIntoView({ behavior: 'smooth' });\n }\n };\n\n React.useEffect(() => {\n const innerNav = document.getElementById('innerNav');\n\n const onScroll = e => {\n if (innerNavOffset && innerNavOffset < window.pageYOffset) {\n setInnerNavigationIsSticky(true);\n } else {\n setInnerNavigationIsSticky(false);\n }\n setScrollTop(e.target.documentElement.scrollTop);\n setInnerNavOffset(window.pageYOffset + innerNav.getBoundingClientRect().y);\n setCurrentSection(findElOnTop());\n };\n\n window.addEventListener('scroll', onScroll);\n\n return () => window.removeEventListener('scroll', onScroll);\n }, [scrollTop]);\n\n return (\n
\n \n \n \n \n \"Printivity\"\n \n {!disableFeatures && (\n scrollTo('features')}\n className={cn(\n `paragraph-underline-mobile flex h-[54px]\n cursor-pointer items-center font-hvMedium text-default no-underline hover:underline \n -md:mx-3 -md:h-[46px] -md:min-w-fit`,\n currentSection === 'features' ? 'border-0 border-b-2 border-solid border-b-blue-700' : '',\n )}\n onKeyDown={() => scrollTo('features')}\n role=\"tab\"\n tabIndex={0}\n >\n Product Features\n
\n )}\n {!disableBranding && (\n scrollTo('why-printivity')}\n className={cn(\n `paragraph-underline-mobile flex h-[54px]\n cursor-pointer items-center font-hvMedium text-default no-underline hover:underline \n -md:mx-3 -md:h-[46px] -md:min-w-fit`,\n currentSection === 'why-printivity'\n ? 'border-0 border-b-2 border-solid border-b-blue-700'\n : '',\n )}\n onKeyDown={() => scrollTo('why-printivity')}\n role=\"tab\"\n tabIndex={0}\n >\n Why Printivity\n \n )}\n {!disableReviews && (\n scrollTo('reviews')}\n onKeyDown={() => scrollTo('reviews')}\n className={cn(\n `paragraph-underline-mobile flex h-[54px]\n cursor-pointer items-center font-hvMedium text-default no-underline hover:underline \n -md:mx-3 -md:h-[46px] -md:min-w-fit`,\n currentSection === 'reviews' ? 'border-0 border-b-2 border-solid border-b-blue-700' : '',\n )}\n role=\"tab\"\n tabIndex={0}\n >\n Reviews\n \n )}\n {!disableTemplates && (\n scrollTo('templates-and-specs')}\n onKeyDown={() => scrollTo('templates-and-specs')}\n className={cn(\n `paragraph-underline-mobile flex h-[54px]\n cursor-pointer items-center font-hvMedium text-default no-underline hover:underline \n -md:mx-3 -md:h-[46px] -md:min-w-fit`,\n currentSection === 'templates-and-specs'\n ? 'border-0 border-b-2 border-solid border-b-blue-700'\n : '',\n )}\n role=\"tab\"\n tabIndex={0}\n >\n Templates & Specs\n \n )}\n {!disableArticles && (\n scrollTo('articles')}\n onKeyDown={() => scrollTo('articles')}\n className={cn(\n `paragraph-underline-mobile flex h-[54px]\n cursor-pointer items-center font-hvMedium text-default no-underline hover:underline \n -md:mx-3 -md:h-[46px] -md:min-w-fit`,\n currentSection === 'articles' ? 'border-0 border-b-2 border-solid border-b-blue-700' : '',\n )}\n role=\"tab\"\n tabIndex={0}\n >\n Articles\n \n )}\n {!disableFAQ && (\n scrollTo('faq')}\n onKeyDown={() => scrollTo('faq')}\n className={cn(\n `paragraph-underline-mobile flex h-[54px]\n cursor-pointer items-center font-hvMedium text-default no-underline hover:underline \n -md:mx-3 -md:h-[46px] -md:min-w-fit`,\n currentSection === 'faq' ? 'border-0 border-b-2 border-solid border-b-blue-700' : '',\n )}\n role=\"tab\"\n tabIndex={0}\n >\n FAQ\n \n )}\n {!disableMoreResources && (\n scrollTo('more-resources')}\n onKeyDown={() => scrollTo('more-resources')}\n className={cn(\n `paragraph-underline-mobile flex h-[54px]\n cursor-pointer items-center font-hvMedium text-default no-underline hover:underline \n -md:mx-3 -md:h-[46px] -md:min-w-fit`,\n currentSection === 'more-resources'\n ? 'border-0 border-b-2 border-solid border-b-blue-700'\n : '',\n )}\n role=\"tab\"\n tabIndex={0}\n >\n More Resources\n \n )}\n {!disableSEOBlock && (\n scrollTo('more-information')}\n onKeyDown={() => scrollTo('more-information')}\n className={cn(\n `paragraph-underline-mobile flex h-[54px]\n cursor-pointer items-center font-hvMedium text-default no-underline hover:underline \n -md:mx-3 -md:h-[46px] -md:min-w-fit`,\n currentSection === 'more-information'\n ? 'border-0 border-b-2 border-solid border-b-blue-700'\n : 'transition-width after:m-auto after:block after:h-[2px] after:w-0 after:bg-blue-700 after:content-[\"\"] hover:text-gray-300 hover:after:w-full',\n )}\n role=\"tab\"\n tabIndex={0}\n >\n More Information\n \n )}\n \n \n \n \n {!innerNavigationIsSticky && (\n <>\n \n \n \n \n \n \n \n )}\n \n );\n};\nexport default ProductDetailsNavbar;\n","import { useLocation } from 'react-router-dom';\nimport queryString from 'qs';\nimport { KeyVal } from 'app/libs/utils/common-types';\nimport { useMemo } from 'react';\n\nconst parseQuote = (values: KeyVal) =>\n Object.keys(values).reduce((acc, key) => {\n const keyWithoutQuestionMark = key.replace('?', '');\n if (keyWithoutQuestionMark.startsWith('quote_')) {\n acc[keyWithoutQuestionMark.replace('quote_', '')] = values[key];\n } else if (keyWithoutQuestionMark === 'product') {\n acc[keyWithoutQuestionMark] = values[key];\n }\n return acc;\n }, {} as KeyVal);\n\nconst useQuoteParams = () => {\n const location = useLocation();\n\n const memoizedValues = useMemo(() => {\n const values = parseQuote(queryString.parse(location.search) as KeyVal);\n const valuesNotEmpty =\n values && Object.keys(values).length > 0 && !(Object.keys(values).length === 1 && values.product);\n\n return { values, valuesNotEmpty };\n }, [location.search]);\n\n return memoizedValues;\n};\n\nexport default useQuoteParams;\n","import { CmsProductPage } from 'app/contexts/AppContext/types';\n\nconst isValidSlug = (slugValue: string, checkFn: (slug: string) => boolean) =>\n slugValue && checkFn(slugValue);\n\nexport const getProductSlugs = ({\n cmsPage,\n quoteValues,\n checkSlugFn,\n}: {\n cmsPage: CmsProductPage;\n quoteValues: { product?: string };\n checkSlugFn: (slug: string) => boolean;\n}) => {\n let productSlug;\n\n if (isValidSlug(quoteValues.product, checkSlugFn)) {\n productSlug = quoteValues.product;\n } else if (cmsPage.productTiles && isValidSlug(cmsPage.productTiles.productTiles[0].slug, checkSlugFn)) {\n productSlug = cmsPage.productTiles.productTiles[0].slug;\n } else {\n productSlug = cmsPage.fullPath.split('/').slice(-1)[0];\n }\n\n return {\n rootSlug: cmsPage.fullPath,\n productSlug,\n };\n};\n","import AppContext from 'app/contexts/AppContext/AppContext';\nimport { CmsCategoryPage, CmsProductPage, CmsServicePage, Product } from 'app/contexts/AppContext/types';\nimport PersephoneContext from 'app/contexts/PersephoneContextContainer/PersephoneContext';\nimport { filter } from 'lodash-es';\nimport { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport useCms from 'utils/hooks/useCms';\nimport { getProductSlugs } from '../utils/utils';\nimport useQuoteParams from './useQuoteParams';\n\nconst getProduct = (products: Product[], slug: string) => products.find(elem => elem.slug === slug);\n\nconst getPage = (cmsPages: (CmsProductPage | CmsCategoryPage | CmsServicePage)[], path: string) => {\n let page = cmsPages.find(elem => elem.fullPath === path) as CmsProductPage | undefined;\n\n if (\n page &&\n (page.description === null || page.description === undefined || page.description === '') &&\n page.fullPath.includes('/landing/')\n ) {\n const basePath = path.split('/').pop();\n page = cmsPages.find(elem => elem.fullPath.includes(basePath) && !elem.fullPath.includes('/landing/')) as\n | CmsProductPage\n | undefined;\n }\n\n return page;\n};\n\nconst getProducts = (products: Product[], cmsPage: CmsProductPage, productSlug: string) =>\n filter(products, pr =>\n cmsPage.productTiles\n ? cmsPage.productTiles.productTiles.map(e => e.slug).includes(pr.slug)\n : pr.slug === productSlug,\n );\n\nconst getCategoryCms = (\n cmsPages: (CmsProductPage | CmsCategoryPage | CmsServicePage)[],\n selectedProductCms: CmsProductPage,\n) =>\n cmsPages.find(elem => elem.fullPath === `/${selectedProductCms.fullPath.split('/')[1]}`) as CmsCategoryPage;\n\nconst useSelected = () => {\n const persephoneContext = useContext(PersephoneContext);\n const appContext = useContext(AppContext);\n const cms = useCms();\n const { values: quoteValues } = useQuoteParams();\n const storeProducts = appContext.store.products;\n const storePages = appContext.store.cmsPages;\n\n const { rootSlug, productSlug } = useMemo(\n () =>\n getProductSlugs({\n cmsPage: cms,\n quoteValues,\n checkSlugFn: slug => storeProducts.find(elem => elem.slug === slug) !== undefined,\n }),\n [cms?.id, persephoneContext.catalog],\n );\n\n const [firstRender, setFirstRender] = useState(true);\n const [selectedProduct, setSelectedProduct] = useState(getProduct(storeProducts, productSlug));\n const [products, setProducts] = useState(getProducts(storeProducts, cms, productSlug));\n\n const handleSelectProduct = useCallback(\n (slug: string) => {\n const newSelectedProduct = getProduct(products, slug);\n setSelectedProduct(newSelectedProduct);\n },\n [products],\n );\n\n useEffect(() => {\n // avoid changing products twice on first render\n if (firstRender) {\n setFirstRender(false);\n return;\n }\n const newProducts = getProducts(storeProducts, cms, productSlug);\n const newSelectedProduct = getProduct(newProducts, productSlug);\n\n setProducts(newProducts);\n setSelectedProduct(newSelectedProduct);\n }, [rootSlug, productSlug, cms?.id]);\n\n const selectedProductCms = useMemo(() => getPage(storePages, rootSlug), [rootSlug]);\n const selectedCategoryCms = useMemo(\n () => getCategoryCms(storePages, selectedProductCms),\n [selectedProductCms.id],\n );\n\n return {\n selectedProduct,\n selectedProductCms,\n selectedCategoryCms,\n products,\n selectProduct: handleSelectProduct,\n rootSlug,\n productSlug,\n };\n};\n\nexport default useSelected;\n","import * as React from 'react';\nimport { trackCmsPage, trackProductChange } from 'api/CmsPages';\nimport {\n addToCart,\n productPage,\n productSelection,\n clickRelatedProduct,\n clickAddToCart,\n pdpUserProperties,\n} from 'api/gtm';\nimport { doRushDeliveryRequest } from 'api/simplyShip';\nimport {\n CmsContentSection,\n RelatedItems,\n InnerNavigation,\n AdditionalInfo,\n Reviews,\n FAQ,\n Articles,\n TemplateSpecs,\n} from './Dynamic.imports-loadable';\nimport { cartPath } from 'bundles/App/routes';\nimport AppContext from 'contexts/AppContext/AppContext';\nimport { CmsProductPage, Taxon } from 'contexts/AppContext/types';\nimport { doAddLineItem } from 'contexts/OrderContext/actions';\nimport OrderContext from 'contexts/OrderContext/OrderContext';\nimport PersephoneContext from 'contexts/PersephoneContextContainer/PersephoneContext';\nimport QuoteContextContainer from 'contexts/QuoteContext/QuoteContextContainer';\nimport UserContext from 'contexts/UserContextContainer/UserContext';\nimport { Status } from 'libs/utils/api/types';\nimport { KeyVal } from 'libs/utils/common-types';\nimport { useHistory } from 'react-router';\nimport Footer from 'styleguide/components/Footer/Footer';\nimport Grid from 'styleguide/components/Grid/Grid';\nimport { H4 } from 'styleguide/components/Heading';\nimport Meta from 'styleguide/components/Meta/Meta';\nimport ProductCard from 'styleguide/components/NavigationCard/NavigationCard';\nimport ProductJsonLd from 'styleguide/components/ProdeuctJsonLd/ProductJsonLd';\nimport PromotionBanner from 'styleguide/components/PromotionBannner/PromotionBanner';\nimport { findTaxon } from 'utils/flattenTaxons';\nimport AddToCart from './AddToCart/AddToCart';\nimport InstantQuote from './InstantQuote/InstantQuote';\nimport BackToTop from './BackToTop/BackToTop';\nimport ProductDetailsNavbar from './ProductDetailsNavbar/ProductDetailsNavbar';\nimport { quoteKey } from 'app/constants';\nimport { setLocalStorage, getLocalStorage } from 'utils/LocalStorageService';\nimport { useLocation } from 'react-router-dom';\nimport useQuoteParams from './hooks/useQuoteParams';\nimport useCms from 'utils/hooks/useCms';\nimport useSelected from './hooks/useSelected';\nimport LoaderWrapper from 'styleguide/components/LoaderWrapper/LoaderWrapper';\nimport LazyLoad from 'react-lazyload';\n\nexport interface RushDeliveryData {\n minDate: string;\n seconds: number;\n}\n\nconst relatedItemsLoadWrapperHeight = 'h-[338px]';\n\nconst ProductDetailsPage = () => {\n const location = useLocation();\n const history = useHistory();\n const { currentUser } = React.useContext(UserContext);\n const { dispatch } = React.useContext(OrderContext);\n const persephoneContext = React.useContext(PersephoneContext);\n const appContext = React.useContext(AppContext);\n const taxonomy = appContext.store.taxonomies.find(elem => elem.name === 'Products');\n const cms = useCms();\n const [rushDeliveryData, setRushDeliveryData] = React.useState(null);\n const { values: quoteValues, valuesNotEmpty: quoteValuesNotEmpty } = useQuoteParams();\n\n const { products, selectedProduct, selectedProductCms, selectedCategoryCms, selectProduct, productSlug } =\n useSelected();\n\n const alias = cms.productTiles ? cms.fullPath.split('/').slice(-1)[0] : null;\n const isMPDP = products.length > 1;\n const hideNewCustomerPromotion: boolean = location.pathname.includes('hardcover-books');\n\n const onChange = ({ lineItem }) => {\n setRushDeliveryData(null);\n doRushDeliveryRequest(selectedProduct.slug, lineItem.productionRange).then(res2 => {\n if (res2.status === Status.Ok) {\n setRushDeliveryData(res2.payload);\n }\n });\n };\n\n const productSelectionHandler = (selectedProductSlug: string, e) => {\n e.preventDefault();\n selectProduct(selectedProductSlug);\n };\n\n React.useEffect(() => {\n trackCmsPage(cms.id);\n }, [cms?.id, persephoneContext.catalog]);\n\n React.useEffect(() => {\n productPage(\n cms.label,\n products.map(elem => ({ item_name: elem.name, item_id: elem.slug })),\n );\n }, [products]);\n\n React.useEffect(() => {\n productSelection(cms.label, {\n item_name: selectedProduct.name,\n item_id: selectedProduct.slug,\n });\n }, [selectedProduct]);\n\n React.useEffect(() => {\n if (currentUser && cms.productTiles) {\n trackProductChange(selectedProductCms.id);\n }\n pdpUserProperties({ loggedIn: !!currentUser, email: currentUser?.email });\n }, [selectedProductCms, currentUser]);\n\n const onAddToCartClick = (values: KeyVal, price: number) => {\n const quote = getLocalStorage>(quoteKey);\n doAddLineItem(dispatch, values, alias).then(res => {\n if (res) {\n Promise.all([\n addToCart({\n item_name: selectedProduct.name,\n item_id: selectedProduct.slug,\n price: price / parseFloat(values['document-count']),\n quantity: parseFloat(values['document-count']),\n }),\n clickAddToCart({\n item_name: selectedProduct.name,\n item_id: selectedProduct.slug,\n price: price / parseFloat(values['document-count']),\n quantity: parseFloat(values['document-count']),\n ...values,\n }),\n ]).then(() => {\n const updatedQuote = { ...quote };\n delete updatedQuote[`${productSlug}_${location.pathname}`];\n setLocalStorage(quoteKey, updatedQuote);\n history.push(cartPath);\n });\n }\n });\n };\n\n const getBanner = () => {\n let banner = null;\n\n if (!!cms.displayPromotion && !!cms.displayPromotion.showBanner) {\n banner = cms.displayPromotion;\n }\n return banner;\n };\n\n const getDiscountInfo = () => {\n let percent = 0;\n let message = '';\n\n if (cms.displayPromotion) {\n percent = cms.displayPromotion.discountPercent;\n message = cms.displayPromotion.discountMessage;\n }\n return { discountPercent: percent, discountMessage: message };\n };\n\n const isLoading = !selectedProduct;\n\n // TODO: temporary show shortDesc if shortDescription not set\n const shortDescription = isMPDP\n ? cms && cms.shortDesc\n : !!selectedProductCms && selectedProductCms.shortDesc;\n const features = isMPDP ? !!cms && cms.features : !!selectedProductCms && selectedProductCms.features;\n const branding = isMPDP ? !!cms && cms.branding : !!selectedProductCms && selectedProductCms.branding;\n const additionalContent = !!selectedProductCms && selectedProductCms.additionalContent;\n const description = isMPDP\n ? !!cms && cms.description\n : !!selectedProductCms && selectedProductCms.description;\n const relatedItems = !!selectedProductCms && selectedProductCms.relatedItems;\n const isTemplateSpecsDisabled = !!selectedProductCms && !cms.downloads && !selectedProductCms.specs;\n const isFaqDisabled = isMPDP ? !!cms && !cms.faqs : !!selectedProductCms && !selectedProductCms.faqs;\n const articlesRow = null; // selectedCategoryCms.rows[3];\n const isArticlesDisabled = !(\n !!selectedProductCms &&\n !!articlesRow &&\n articlesRow?.type === 'Comfy::Cms::Page::Row::InfoBlock' &&\n articlesRow?.content\n );\n const promotionBanner = getBanner();\n const { discountPercent, discountMessage } = getDiscountInfo();\n const informational = false;\n const useStandardButton: boolean = true;\n\n return (\n <>\n \n \n \n {!isLoading && (\n <>\n \n \n \n \n \n \n {promotionBanner ? : null}\n \n \n \n \n \n \n \n {!!relatedItems && (\n \n {relatedItems.items.map((item, index) => {\n const txn: Taxon = findTaxon(taxonomy.taxons, item.name);\n return (\n txn && (\n {\n clickRelatedProduct({\n item_name: txn.name,\n item_id: `${txn.pageId}`,\n });\n }}\n onKeyDown={() => {}}\n role=\"button\"\n tabIndex={0}\n >\n \n \n )\n );\n })}\n \n )}\n \n
\n \n {!!features && (\n \n )}\n {!!description && (\n \n )}\n {!!branding && (\n Why Printivity}\n content={isMPDP ? cms.branding : selectedProductCms.branding}\n />\n )}\n \n \n )\n }\n Articles={\n isArticlesDisabled\n ? null\n : articlesRow.type === 'Comfy::Cms::Page::Row::InfoBlock' && (\n \n )\n }\n FAQ={isFaqDisabled ? null : }\n SEOBlock={!!cms.content && isMPDP ? cms.content : selectedProductCms.content}\n additionalContent={\n !!additionalContent && isMPDP ? cms.additionalContent : selectedProductCms.additionalContent\n }\n />\n
\n \n \n \n )}\n \n \n );\n};\n\nexport default ProductDetailsPage;\n","import * as React from 'react';\nimport { ApiResponse } from 'libs/utils/api/types';\nimport { Catalog, LineItem, Error, MaterialInventory } from 'api/persephone/persephone';\n\nexport interface PersephoneContextType {\n doQuoteRequest: (data, productionDays, options?) => ApiResponse;\n catalog: Catalog | null;\n materialInventory: MaterialInventory[];\n available: boolean;\n}\n\nconst PersephoneContext = React.createContext(null);\n\nexport default PersephoneContext;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport Link from 'styleguide/components/Links/Link';\nimport Span from 'styleguide/components/Span/Span';\n\ninterface Page {\n label: string;\n link?: string;\n}\n\nexport interface Props {\n pages: Page[];\n className?: string;\n}\n\nconst Breadcrumb = ({ pages, ...props }: Props) => (\n
\n {pages.map((page, index) => (\n \n {' '}\n {page.link ? (\n \n {page.label}\n \n ) : (\n {page.label}\n )}{' '}\n {index !== pages.length - 1 && /}\n \n ))}\n
\n);\n\nexport default Breadcrumb;\n","import * as React from 'react';\nimport cn from 'classnames';\n\nconst IfMobile = ({\n className,\n children,\n ...otherProps\n}: React.DetailedHTMLProps, HTMLDivElement>) => (\n
\n {children}\n
\n);\n\nexport default IfMobile;\n","import * as React from 'react';\nimport cn from 'classnames';\n\nexport interface Props\n extends React.DetailedHTMLProps, HTMLDivElement> {}\n\nconst IfTabletOrDesktop = ({ className, children, ...otherProps }: Props) => (\n
\n {children}\n
\n);\n\nexport default IfTabletOrDesktop;\n","import * as React from 'react';\nimport Links from './Links';\nimport Copyright from 'styleguide/components/Footer/BottomPart/Copyright';\n\nconst BottomPart = () => (\n
\n \n \n
\n);\n\nexport default BottomPart;\n","import * as React from 'react';\nimport Copyright from 'styleguide/components/Footer/BottomPart/Copyright';\nimport Links from 'styleguide/components/Footer/BottomPart/Links';\n\nconst BottomPartMobile = () => (\n
\n
\n \n
\n
\n \n
\n
\n);\n\nexport default BottomPartMobile;\n","import * as React from 'react';\nimport Span from 'styleguide/components/Span/Span';\nimport { format } from 'date-fns';\nimport cn from 'classnames';\n\ninterface Props {\n className?: string;\n isEnterprise?: boolean;\n}\n\nconst Copyright = ({ className = '', isEnterprise = false }: Props) => (\n \n © Printivity {isEnterprise ? 'Enterprise Solutions' : 'LLC'}. All Rights Reserved{' '}\n {format(new Date(), 'yyyy')}\n \n);\n\nexport default Copyright;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport Span from 'styleguide/components/Span/Span';\nimport Link from 'styleguide/components/Links/Link';\nimport { privacyPath, siteMapPath, termsAndConditionsPath } from 'bundles/App/routes';\n\nconst Links = () => (\n <>\n |\n \n Site Map\n \n |\n \n Privacy Policy\n \n |\n \n Terms of Use\n \n \n);\n\nexport default Links;\n","import * as React from 'react';\nimport LazyLoad from 'react-lazyload';\nimport loadable from '@loadable/component';\nimport Grid from '../Grid/Grid';\nimport Menu from './Menu/Menu';\nimport A from '../Links/A';\nimport BottomPart from './BottomPart/BottomPart';\nimport BottomPartMobile from './BottomPart/BottomPartMobile';\nimport MenuBlock from 'styleguide/components/Footer/Menu/MenuBlock';\nimport Span from 'styleguide/components/Span/Span';\nimport Image from 'styleguide/components/Image/Image';\nimport Link from 'styleguide/components/Links/Link';\nimport IfMobile from 'styleguide/components/Conditional/IfMobile';\nimport IfTabletOrDesktop from 'styleguide/components/Conditional/IfTabletOrDesktop';\nimport {\n accountPath,\n blogPath,\n careersPath,\n cartPath,\n contactUsPath,\n helpCenterPath,\n hoursAndLocationPath,\n ourStoryPath,\n products,\n servicePath,\n siteMapPath,\n socialPath,\n} from 'bundles/App/routes';\nimport UserContext from 'contexts/UserContextContainer/UserContext';\nimport AppContext from 'contexts/AppContext/AppContext';\nimport logo from 'assets/images/printivity-logo.png';\nimport { preloadComponent } from 'app/bundles/App/DynamicPages.imports-loadable';\nimport { clickEmailUs, clickGraphicDesignLink } from 'api/gtm';\nimport { isProductPage } from 'libs/utils/pageUtils';\nimport { useLocation } from 'react-router-dom';\nimport LoaderWrapper from 'styleguide/components/LoaderWrapper/LoaderWrapper';\n\ninterface Props {\n withoutSubscriptionForm?: boolean;\n}\n\nconst MobileFooter = loadable(() => import('styleguide/components/MobileFooter/MobileFooter'));\nconst SubscriptionForm = loadable(() => import('styleguide/components/SubscriptionForm/SubscriptionForm'));\n\nconst Footer = ({ withoutSubscriptionForm }: Props) => {\n const { currentUser } = React.useContext(UserContext);\n const appContext = React.useContext(AppContext);\n const location = useLocation();\n\n return (\n <>\n {!currentUser && !withoutSubscriptionForm && }\n \n \n \n \n \n \n \n \n \n preloadComponent('ProductListingPage')}\n >\n All Products\n \n preloadComponent('ProductDetailsPage')}\n >\n Business Cards\n \n preloadComponent('ProductDetailsPage')}\n >\n Postcards\n \n preloadComponent('ProductDetailsPage')}\n >\n Banners\n \n preloadComponent('ProductDetailsPage')}\n >\n Booklets\n \n preloadComponent('CategoryPage')}\n >\n Books\n \n \n Flyers\n \n preloadComponent('ProductDetailsPage')}\n >\n Copies\n \n \n \n preloadComponent('RushCritical')}\n >\n Rush Critical\n \n preloadComponent('FranchiseSolutions')}\n >\n Franchise Solutions\n \n preloadComponent('BoxDesign')}\n >\n Box Design\n \n preloadComponent('DesignServices')}\n onClick={() =>\n isProductPage(location.pathname, appContext.store.cmsPages) &&\n clickGraphicDesignLink({ location: 'pdp_footer' })\n }\n >\n Graphic Design Services\n \n preloadComponent('CloudEnterpriseServices')}\n >\n Cloud Enterprise Services\n \n \n \n preloadComponent('OurStoryPage')}\n >\n Our Story\n \n \n preloadComponent('CareersPage')}\n >\n Careers\n \n \n Blog\n \n preloadComponent('SiteMap')}\n >\n Sitemap\n \n \n \n \n preloadComponent('HelpCenterPage')}\n >\n Help Center\n \n preloadComponent('ContactUsPage')}\n >\n Contact\n \n preloadComponent('HoursAndLocation')}\n >\n Hours and Location\n \n \n \n Instagram\n \n \n Facebook\n \n \n X (Twitter)\n \n \n LinkedIn\n \n \n \n \n preloadComponent('OrderHistoryPage')}\n >\n Orders\n \n preloadComponent('OrderHistoryPage')}\n >\n Account\n \n preloadComponent('CartPage')}\n >\n Cart\n \n preloadComponent('HomePage')}>\n \n \n \n \n Monday-Friday | 8am-9pm ET\n \n \n 1-877-649-5463\n \n \n \n preloadComponent('ContactUsPage')}\n onClick={() =>\n isProductPage(location.pathname, appContext.store.cmsPages) &&\n clickEmailUs({ location: 'pdp_footer' })\n }\n >\n Email Us\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Footer;\n","import * as React from 'react';\nimport Grid from 'styleguide/components/Grid/Grid';\nimport MenuBlock from './MenuBlock';\n\nconst Menu = ({ ...props }) => (\n \n \n {props.children.map((elem, i) => (\n \n {elem}\n \n ))}\n \n \n);\n\nMenu.Block = MenuBlock;\n\nexport default Menu;\n","import * as React from 'react';\nimport Span from 'styleguide/components/Span/Span';\n\ninterface Props {\n title: string;\n children?: React.ReactNode;\n className?: string;\n}\n\nconst MenuBlock = ({ title, children, ...props }: Props) => (\n
\n {title}\n
{children}
\n
\n);\n\nexport default MenuBlock;\n","import InPlaceMessage from 'styleguide/components/InPlaceMessage/InPlaceMessage';\nimport cn from 'classnames';\nimport { FormikErrors, FormikTouched, FormikValues, getIn, useFormikContext } from 'formik';\nimport * as React from 'react';\nimport { ErrorMessage } from 'styleguide/components/forms';\n\nimport RadioTab from './RadioTab';\nimport { RadioGroup as HRadioGroup } from '@headlessui/react';\n\ninterface Props {\n className?: string;\n children?: React.ReactNode;\n errors?: FormikErrors;\n name: string;\n touched?: FormikTouched;\n Note?: React.ReactNode;\n inPlaceError?: boolean;\n hideErrorMessage?: boolean;\n onChange?: (value: string | boolean) => void;\n}\n\nconst RadioTabs = ({\n className,\n children,\n errors,\n name,\n touched,\n Note,\n inPlaceError,\n hideErrorMessage,\n onChange,\n}: Props) => {\n const { values, setFieldValue } = useFormikContext();\n return (\n <>\n {\n setFieldValue(name, newValue);\n if (onChange) {\n onChange(newValue);\n }\n }}\n className={cn('flex w-full flex-row flex-nowrap', className)}\n >\n {children}\n \n {inPlaceError && !hideErrorMessage && (\n \n )}\n {!inPlaceError && !hideErrorMessage && getIn(touched, name) && getIn(errors, name) && (\n \n )}\n {!!Note &&
{Note}
}\n \n );\n};\n\nRadioTabs.Tab = RadioTab;\n\nexport default RadioTabs;\n","import * as React from 'react';\nimport Loader from 'styleguide/components/Loader/Loader';\n\nconst LoaderWrapper = loaderStyle => (\n
\n \n
\n);\n\nexport default LoaderWrapper;\n","import * as React from 'react';\nimport { Helmet } from 'react-helmet-async';\nimport { Faq } from 'bundles/App/pages/HelpCenter/types';\n\nexport type RobotsType =\n | 'all'\n | 'noindex'\n | 'nofollow'\n | 'index'\n | 'follow'\n | 'none'\n | 'noarchive'\n | 'nosnippet'\n | 'notranslate'\n | 'noimageindex';\n\ninterface Props {\n title: string;\n description?: string;\n keywords?: string;\n canonical?: string;\n robots?: RobotsType[];\n faqs?: Faq[];\n}\n\nconst createFaqJson = (faqs: Faq[]): string =>\n JSON.stringify({\n '@context': `https://schema.org`,\n '@type': 'FAQPage',\n mainEntity: faqs.map(faq => ({\n '@type': 'Question',\n name: faq.question,\n acceptedAnswer: {\n '@type': 'Answer',\n text: faq.answer,\n },\n })),\n });\n\nconst Meta = ({ canonical, description, faqs, keywords, robots, title }: Props) => (\n \n {title}\n {!!description && }\n {!!keywords && }\n {!!canonical && }\n {!!robots && }\n {!!faqs && }\n \n);\nexport default Meta;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport * as css from './ModalFooter.scss';\nimport Grid from 'styleguide/components/Grid/Grid';\n\ninterface Props {\n className?: string;\n children: React.ReactNode;\n}\n\nconst ModalFooter = ({ children, ...props }: Props) => (\n <>\n
\n
\n \n \n \n {children}\n \n \n \n
\n \n);\n\nexport default ModalFooter;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"ModalFooter__container__MKZJX\";\nvar _2 = \"ModalFooter__grid__sNUZ0\";\nvar _3 = \"ModalFooter__modalFooter__GA678\";\nvar _4 = \"ModalFooter__row__AeHth\";\nexport { _1 as \"container\", _2 as \"grid\", _3 as \"modalFooter\", _4 as \"row\" }\n","import * as React from 'react';\nimport ROModal from 'react-overlays/Modal';\nimport cn from 'classnames';\nimport * as css from './Modal.scss';\nimport { IconClose } from 'styleguide/icons';\nimport ModalFooter from './ModalFooter/ModalFooter';\n\nconst modalStyle: React.CSSProperties = {\n position: 'fixed',\n zIndex: 1040,\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n};\n\nconst Backdrop = props => (\n // eslint-disable-next-line react/self-closing-comp\n
\n);\n\n// TODO: pulkit. types should be in sync with FileStatus.tsx and Modal.stories\ninterface Props {\n children?: React.ReactNode;\n onClose?: () => void;\n shown?: boolean;\n className?: string;\n title?: React.ReactNode;\n footer?: React.ReactNode;\n fullWidth?: boolean;\n hideScroll?: boolean;\n disableClickOutside?: boolean;\n}\n\nconst Modal = ({\n shown,\n children,\n onClose,\n title,\n footer,\n fullWidth,\n hideScroll,\n disableClickOutside,\n ...props\n}: Props) => {\n const [modalShown, setModalShown] = React.useState(false);\n\n const renderBackdrop = React.useCallback(backdropProps => , []);\n\n const hideModal = () => {\n setModalShown(false);\n if (onClose) {\n onClose();\n }\n };\n\n const handleClickOutside = event => {\n let clickInsideSomeModal = false;\n document.querySelectorAll('div[data-modal=\"modal\"]').forEach(element => {\n if (element.contains(event.target)) {\n clickInsideSomeModal = true;\n }\n if (element) {\n const rect = element.getBoundingClientRect();\n const isInModal =\n event.clientX >= rect.left &&\n event.clientX <= rect.right &&\n event.clientY >= rect.top &&\n event.clientY <= rect.bottom;\n if (isInModal) {\n clickInsideSomeModal = true;\n }\n }\n });\n\n if (!clickInsideSomeModal) {\n if (onClose && !disableClickOutside) {\n onClose();\n }\n }\n };\n\n React.useEffect(() => {\n document.addEventListener('mousedown', handleClickOutside);\n setModalShown(shown);\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [shown]);\n\n return (\n \n \n \n {!!title && title}\n \n \n {children}\n
\n
\n {!!footer && {footer}}\n \n \n );\n};\nexport default Modal;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"Modal__close__wvOKL\";\nvar _2 = \"Modal__dialog__iECyz\";\nvar _3 = \"Modal__modalContent__J8MQ6\";\nvar _4 = \"Modal__modalContentInner__MP1xZ\";\nvar _5 = \"Modal__modalContentScroll__OnT0q\";\nexport { _1 as \"close\", _2 as \"dialog\", _3 as \"modalContent\", _4 as \"modalContentInner\", _5 as \"modalContentScroll\" }\n","import * as React from 'react';\nimport cn from 'classnames';\nimport * as css from './NavigationCard.scss';\nimport Image from '../Image/Image';\nimport Span from '../Span/Span';\nimport Link from 'styleguide/components/Links/Link';\n\nexport interface NavigationCard {\n image: string;\n alt: string;\n title: string;\n url: string;\n className?: string;\n onMouseOver?: () => void;\n disabled?: boolean;\n titleClassName?: string;\n animateHover?: boolean;\n dropShadow?: boolean;\n}\n\nconst ProductCard = ({\n disabled = false,\n dropShadow = true,\n animateHover = true,\n ...props\n}: NavigationCard) => (\n \n
\n \n
\n \n
\n {props.title}\n \n
\n \n);\n\nexport default ProductCard;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"NavigationCard__image__frgnR\";\nvar _2 = \"NavigationCard__image--animate__fgYqP\";\nvar _3 = \"NavigationCard__imageWrapper__iN0pz\";\nvar _4 = \"NavigationCard__link__dUbvH\";\nvar _5 = \"NavigationCard__productCard__a46vO\";\nvar _6 = \"NavigationCard__productCard--shadow__javGx\";\nvar _7 = \"NavigationCard__title__VddG3\";\nexport { _1 as \"image\", _2 as \"image--animate\", _3 as \"imageWrapper\", _4 as \"link\", _5 as \"productCard\", _6 as \"productCard--shadow\", _7 as \"title\" }\n","import * as React from 'react';\nimport Span from '../Span/Span';\nimport { IconExclamationMark } from 'styleguide/icons';\nimport PageLevelErrorItem from './PageLevelErrorItem';\n\ninterface Props {\n message: string;\n children?: React.ReactNode;\n}\n\nconst PageLevelError = ({ message, children }: Props) => (\n
\n \n {message}\n
    {children}
\n
\n);\n\nPageLevelError.Item = PageLevelErrorItem;\n\nexport default PageLevelError;\n","import * as React from 'react';\nimport HtmlContent from 'styleguide/components/HtmlContent/HtmlContent';\n\ninterface Props {\n children?: React.ReactNode;\n value?: string;\n}\n\nconst PageLevelErrorItem = ({ children, value }: Props) => (\n
  • \n \n {children}\n
  • \n);\n\nexport default PageLevelErrorItem;\n","import * as React from 'react';\nimport cn from 'classnames';\nimport IconMegaphone from 'styleguide/icons/IconMegaphone';\nimport HtmlContent from 'styleguide/components/HtmlContent/HtmlContent';\nimport { DisplayPromotion } from 'contexts/AppContext/types';\nimport { Tooltip } from 'styleguide/components/Tooltip/Tooltip';\nimport { IconTooltipInfo } from 'styleguide/icons';\n\ninterface Props {\n displayPromotion: DisplayPromotion;\n}\n\nconst bannerOutlineColors = {\n blue: 'text-blue border-2 border-blue',\n red: 'text-orange border-2 border-orange',\n white: 'text-white border-2 border-white',\n black: 'text-black border-2 border-black',\n green: 'text-green border-2 border-green',\n gray: 'text-gray-500 border-2 border-gray-500',\n};\n\nconst PromotionBanner = ({ displayPromotion: { outlineStyle, color }, displayPromotion }: Props) => (\n
    \n \n
    \n \n \n \n
    \n {displayPromotion.secondRow ? (\n
    \n \n {displayPromotion.tooltip ? (\n }\n renderOpener={tooltipProps => (\n
    \n \n
    \n )}\n />\n ) : null}\n
    \n ) : null}\n
    \n \n);\n\nexport default PromotionBanner;\n","import * as React from 'react';\nimport {\n ReferenceType,\n offset,\n shift,\n flip,\n useFloating,\n autoUpdate,\n useInteractions,\n useHover,\n useFocus,\n useDismiss,\n useRole,\n useClick,\n arrow,\n FloatingArrow,\n useTransitionStyles,\n Placement,\n} from '@floating-ui/react';\nimport cn from 'classnames';\n\nexport interface RenderOpenerProps extends Record {\n ref: (node: ReferenceType | null) => void;\n}\n\nexport interface TooltipProps {\n content?: React.ReactNode;\n renderOpener: (props: RenderOpenerProps) => React.ReactNode;\n placement?: Placement;\n withArrow?: boolean;\n className?: string;\n bodyOffset?: number;\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n onDisplay?: () => void;\n onDismiss?: () => void;\n action?: 'hover' | 'click';\n forcePlacement?: boolean;\n noWrap?: boolean;\n}\n\nexport const Tooltip = ({\n content,\n renderOpener,\n placement,\n className,\n withArrow,\n bodyOffset = 5,\n onMouseEnter,\n onMouseLeave,\n onDisplay,\n onDismiss,\n action = 'hover',\n forcePlacement,\n noWrap,\n}: TooltipProps) => {\n const [isOpen, setIsOpen] = React.useState(false);\n const arrowRef = React.useRef(null);\n const parentDivRef = React.useRef(null);\n const [arrowColor, setArrowColor] = React.useState('');\n\n const {\n refs: { setReference, setFloating },\n floatingStyles,\n context,\n } = useFloating({\n open: isOpen,\n onOpenChange(nextOpen, event, reason) {\n setIsOpen(nextOpen);\n if ((reason === 'click' || reason === 'focus') && nextOpen) {\n onDisplay?.();\n }\n if (reason === 'escape-key' || reason === 'outside-press') {\n onDismiss?.();\n }\n },\n placement,\n middleware: [\n offset(bodyOffset),\n !forcePlacement && flip(),\n shift(),\n arrow({\n element: arrowRef,\n }),\n ],\n whileElementsMounted: autoUpdate,\n });\n\n const hover = useHover(context, { move: false, enabled: action === 'hover' });\n const focus = useFocus(context);\n const dismiss = useDismiss(context);\n const role = useRole(context, { role: 'tooltip' });\n const click = useClick(context, { enabled: action === 'click' });\n\n const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss, role, click]);\n\n const { styles: transitionStyles } = useTransitionStyles(context, {\n initial: {\n opacity: 0,\n transform: 'scale(0.8)',\n },\n });\n\n React.useEffect(() => {\n if (parentDivRef.current) {\n const computedStyle = getComputedStyle(parentDivRef.current);\n setArrowColor(computedStyle.backgroundColor);\n }\n }, [isOpen, content]);\n\n return (\n <>\n {renderOpener({ ref: setReference, onMouseEnter, ...getReferenceProps(), onMouseLeave })}\n {isOpen && content && (\n
    \n \n {withArrow && (\n \n )}\n {content}\n
    \n \n )}\n \n );\n};\n","import * as React from 'react';\nimport cn from 'classnames';\nimport * as css from './Field.scss';\nimport Grid from 'styleguide/components/Grid/Grid';\n\nconst Heading = ({ heading, headingClassName }) => {\n if (!heading) {\n return null;\n }\n\n if (typeof heading === 'string') {\n return (\n \n

    {heading}

    \n
    \n );\n }\n\n return heading; // react node\n};\n\ninterface Props {\n children?: React.ReactNodeArray;\n heading?: string;\n className?: string;\n leftFieldClassName?: string;\n rightFieldClassName?: string;\n headingClassName?: string;\n firstColumnWidth?: number;\n secondColumnWidth?: number;\n}\n\nconst TwoColumnFormField = ({\n heading,\n headingClassName,\n leftFieldClassName,\n rightFieldClassName,\n firstColumnWidth,\n secondColumnWidth,\n children,\n ...props\n}: Props) => (\n \n \n \n {children[0]}\n \n \n {children[1]}\n \n \n);\n\nexport default TwoColumnFormField;\n","import * as React from 'react';\n\nimport SvgIcon, { SvgProps } from 'styleguide/components/Svg/SvgIcon';\nimport colors from 'styleguide/styles/colors';\n\nconst IconArrowLeft = ({\n title = 'ArrowLeft',\n color = 'dark',\n viewBoxWidth = 27,\n viewBoxHeight = 49,\n ...otherProps\n}: SvgProps) => (\n \n \n \n);\n\nexport default IconArrowLeft;\n","import * as React from 'react';\n\nimport SvgIcon, { SvgProps } from 'styleguide/components/Svg/SvgIcon';\nimport colors from 'styleguide/styles/colors';\n\nconst IconArrowRight = ({\n title = 'ArrowRight',\n color = 'dark',\n viewBoxWidth = 27,\n viewBoxHeight = 49,\n ...otherProps\n}: SvgProps) => (\n \n \n \n);\n\nexport default IconArrowRight;\n","import * as React from 'react';\nimport SvgIcon, { SvgProps } from 'styleguide/components/Svg/SvgIcon';\nimport colors from 'styleguide/styles/colors';\n\ntype Direction = 'left' | 'right';\n\ninterface MegaphoneProps extends SvgProps {\n direction?: Direction;\n}\n\nconst IconMegaphone = ({\n title = 'Megaphone',\n color = 'dark',\n viewBoxWidth = 25,\n viewBoxHeight = 25,\n direction = 'left',\n ...otherProps\n}: MegaphoneProps) => (\n \n \n \n \n \n \n \n \n);\n\nexport default IconMegaphone;\n","export function clearLocalStorage(): void {\n localStorage.clear();\n}\n\nexport function removeLocalStorage(key: string): void {\n localStorage.removeItem(key);\n}\n\nexport function setLocalStorage(key: string, value: T, replacer?: Array): void {\n if (replacer) {\n localStorage.setItem(key, JSON.stringify(value, ['value', ...replacer]));\n } else {\n localStorage.setItem(key, JSON.stringify(value));\n }\n}\n\n/* eslint-disable no-redeclare */\nexport function getLocalStorage(key: string): T | null;\nexport function getLocalStorage(key: string, other: T): T;\nexport function getLocalStorage(key: string, other?: T): T | null {\n if (typeof window !== 'undefined') {\n const rawData: string = localStorage.getItem(key);\n let data: T = null;\n if (rawData !== null) {\n data = JSON.parse(rawData);\n } else if (other) {\n data = other;\n }\n return data;\n }\n return null;\n}\n/* eslint-enable no-redeclare */\n\nexport function getAllLocalStorageVars(): Record {\n if (typeof window !== 'undefined') {\n const output = {};\n for (let i = 0; i < localStorage.length; i++) {\n const rawData = localStorage.getItem(localStorage.key(i));\n let data = null;\n if (rawData !== null) {\n try {\n try {\n data = JSON.parse(rawData);\n } catch {\n data = rawData;\n }\n } catch {\n output[localStorage.key(i)] = 'Error while parsing';\n continue;\n }\n }\n output[localStorage.key(i)] = data;\n }\n return output;\n }\n return {};\n}\n\nexport function getAndInitLocalStorage(key: string, value: T, replacer?: Array): T | null {\n let v: T = getLocalStorage(key);\n if (!v) {\n setLocalStorage(key, value, replacer);\n v = getLocalStorage(key);\n }\n return v;\n}\n","import { useState, useEffect } from 'react';\n\nexport default function useWindowDimensions() {\n const hasWindow = typeof window !== 'undefined';\n\n function getWindowDimensions() {\n const width = hasWindow ? window.innerWidth : null;\n const height = hasWindow ? window.innerHeight : null;\n return {\n width,\n height,\n };\n }\n\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n function handleResize() {\n setTimeout(() => setWindowDimensions(getWindowDimensions()), 10);\n }\n\n useEffect(() => {\n if (hasWindow) {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n\n return () => {};\n }, [hasWindow]);\n\n return windowDimensions;\n}\n","import AppContext from 'contexts/AppContext/AppContext';\nimport { CmsPage } from 'contexts/AppContext/types';\nimport React, { useContext, useEffect } from 'react';\nimport { useParams } from 'react-router';\n\nconst useCms = () => {\n const appContext = useContext(AppContext);\n const { fullPath } = useParams<{ fullPath: string }>();\n const [cms, setCms] = React.useState(\n appContext.store.cmsPages.find(elem => elem.fullPath === fullPath) as T | undefined,\n );\n\n useEffect(() => {\n const newCms = appContext.store.cmsPages.find(elem => elem.fullPath === fullPath) as T | undefined;\n setCms(newCms);\n }, [fullPath]);\n\n return cms;\n};\n\nexport default useCms;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"Field__formHeading__Pokwc\";\nvar _2 = \"Field__zeroMarginPadding__AbaH5\";\nexport { _1 as \"formHeading\", _2 as \"zeroMarginPadding\" }\n"],"names":["trackCmsPage","id","url","buildUrl","concat","apiCall","get","then","trackProductChange","trackClickedTemplateLink","templateName","post","data","doCatalogRequest","endpoint","token","queryString","remote","doMaterialInventoryRequest","doQuoteRequest","values","productionDays","options","quoter_json","JSON","stringify","production_days","optional_attributes","arrayFormat","submitQuoteRequest","orderNumber","userId","productKey","price","lineItemQuote","referring_url","quoterJson","unscoped","Reviews","loadable","resolved","chunkName","isReady","props","key","resolve","__webpack_modules__","importAsync","retry","requireAsync","_this","requireSync","__webpack_require__","RelatedItems","InnerNavigation","CmsContentSection","AdditionalInfo","FAQ","Articles","TemplateSpecs","_ref","product","productPage","quoteContext","React","QuoteContext","_React$useState2","_slicedToArray","init","setInit","_React$useState4","setPrice","Helmet","type","_product$image","image","name","description","merchantProductInfo","merchantDescription","category","merchantCategory","mpn","merchantMpn","sku","slug","brand","offers","priceCurrency","metaData","metaCanonicalLink","itemCondition","availability","createProductJson","findTaxon","taxons","taxonName","foundNodes","reduce","acc","t","_toConsumableArray","length","compact","title","icon","_objectWithoutProperties","_excluded","className","cn","children","phone","emailUsUrl","Link","to","color","underline","onClick","clickEmailUs","location","contactPhone","BlockWithIcon","IconPhone","CallEmailUs","date","durationSeconds","hidden","IconShipping","size","weekdayAndDate","getDurationString","servicePath","designServices","smooth","showDiscountMessage","order","OrderContext","currentUser","UserContext","useLocation","_useFormikContext","useFormikContext","isValid","onSubmit","discountPrice","discountMessage","isLoading","status","instantQuote","HtmlContent","content","Loader","formatMoney","includes","ErrorMessage","message","errorMessage","Button","disabled","merge","getProductKey","dataCy","onChange","initialValues","res","number","pathname","clickRefreshQuote","_objectSpread","error","rushDeliveryData","informational","minDate","seconds","A","href","NeedAssistance","RushDeliveryAvailable","WorriedAboutDesign","AddToCartButtonPrice","_d","ProductCard","isSelected","productSelectionHandler","Grid","Col","sm","e","onKeyDown","role","tabIndex","Image","alt","_ref2","products","Container","noPadding","Row","Label","placement","filter","el","i","map","item","selectedProduct","SlickArrowLeft","arrowProps","slideIndex","clickCarousel","item_name","item_id","action","page","IconArrowLeft","SlickArrowRight","images","IconArrowRight","_extends","_objectDestructuringEmpty","persephone","PersephoneContext","showImageGalleryModal","setShowImageGalleryModal","_useWindowDimensions","useWindowDimensions","width","height","setSlideIndex","sliderRef","camelCase","alias","master","current","slickGoTo","isLandscape","renderCustomPaging","img","cms","label","mini","settings","customPaging","dots","dotsClass","infinite","speed","slidesToShow","slidesToScroll","swipeToSlide","lazyLoad","afterChange","nextArrow","prevArrow","modalSettings","appendDots","index","arrows","fade","accessibility","initialSlide","Modal","shown","fullWidth","hideScroll","onClose","Slider","large","css","md","lg","selectedCategoryCms","toLowerCase","Breadcrumb","pages","link","fullPath","selectedProductCms","IfDesktop","CustomQuoteWarning","Object","assign","ref","IfMobile","ReactImageMagnify","imageProps","src","fetchpriority","magnifiedImageProps","activationInteractionHint","IfTabletOrDesktop","PageLevelError","PageLevelErrorItem","shortDescription","hiddenLg","productTiles","ProductSelector","QuoteEditForm","singleColumn","showPriceAndCartButton","available","catalog","window","scrollTo","top","behavior","IconArrowUp","disableFeatures","disableTemplates","disableFAQ","disableBranding","disableReviews","disableMoreResources","disableSEOBlock","disableArticles","scrollTop","setScrollTop","innerNavOffset","setInnerNavOffset","_React$useState6","innerNavigationIsSticky","setInnerNavigationIsSticky","_React$useState8","currentSection","setCurrentSection","sections","document","getElementById","scrollIntoView","innerNav","onScroll","pageYOffset","target","documentElement","getBoundingClientRect","y","find","section","offsetHeight","elIsOnTop","addEventListener","removeEventListener","Transition","as","show","enter","enterFrom","enterTo","leave","leaveFrom","leaveTo","logo","CartIcon","IfTabletOrMobile","NavContainer","notSticky","useMemo","keys","keyWithoutQuestionMark","replace","startsWith","parseQuote","search","valuesNotEmpty","isValidSlug","slugValue","checkFn","getProduct","elem","getProducts","cmsPage","productSlug","pr","persephoneContext","useContext","appContext","AppContext","useCms","quoteValues","useQuoteParams","storeProducts","store","storePages","cmsPages","_useMemo","checkSlugFn","split","slice","rootSlug","getProductSlugs","undefined","_useState2","useState","firstRender","setFirstRender","_useState4","setSelectedProduct","_useState6","setProducts","handleSelectProduct","useCallback","newSelectedProduct","useEffect","newProducts","path","basePath","pop","getPage","getCategoryCms","selectProduct","history","useHistory","dispatch","taxonomy","taxonomies","setRushDeliveryData","_useQuoteParams","quoteValuesNotEmpty","_useSelected","useSelected","isMPDP","hideNewCustomerPromotion","productSelection","pdpUserProperties","loggedIn","email","banner","percent","shortDesc","features","branding","additionalContent","relatedItems","isTemplateSpecsDisabled","downloads","specs","isFaqDisabled","faqs","isArticlesDisabled","promotionBanner","displayPromotion","showBanner","_getDiscountInfo","discountPercent","Meta","metaTitle","metaDescription","keywords","metaKeywords","canonical","ProductDetailsNavbar","QuoteContextContainer","lineItem","doRushDeliveryRequest","productionRange","res2","Status","Ok","payload","quote","getLocalStorage","quoteKey","doAddLineItem","Promise","all","addToCart","parseFloat","quantity","clickAddToCart","updatedQuote","setLocalStorage","push","cartPath","displayNotes","showHiddenOptions","cacheQuotes","ProductJsonLd","PromotionBanner","InstantQuote","reviewsCount","reviewsScore","selectedProductSlug","preventDefault","LazyLoad","once","placeholder","LoaderWrapper","heading","items","txn","pageId","clickRelatedProduct","pagePath","bodyClassName","H4","questions","SEOBlock","Footer","withoutSubscriptionForm","AddToCart","BackToTop","Span","otherProps","Copyright","Links","_ref$className","_ref$isEnterprise","isEnterprise","format","Date","siteMapPath","privacyPath","termsAndConditionsPath","MobileFooter","SubscriptionForm","Menu","Block","onMouseOver","preloadComponent","rushCriticalPath","franchiseSolutionsPath","boxDesignPath","isProductPage","clickGraphicDesignLink","cloudEnterpriseServices","MenuBlock","ourStoryPath","careersPath","blogPath","helpCenterPath","contactUsPath","hoursAndLocationPath","socialPath","instagram","facebook","twitter","linkedIn","accountPath","orders","account","BottomPartMobile","BottomPart","RadioTabs","errors","touched","Note","inPlaceError","hideErrorMessage","setFieldValue","HRadioGroup","value","newValue","InPlaceMessage","messageType","getIn","Tab","RadioTab","loaderStyle","robots","rel","join","mainEntity","faq","question","acceptedAnswer","text","answer","createFaqJson","modalStyle","position","zIndex","bottom","left","right","Backdrop","footer","disableClickOutside","modalShown","setModalShown","renderBackdrop","backdropProps","hideModal","handleClickOutside","event","clickInsideSomeModal","querySelectorAll","forEach","element","contains","rect","clientX","clientY","ROModal","style","onEscapeKeyDown","IconClose","_defineProperty","ModalFooter","_ref$disabled","_ref$dropShadow","dropShadow","_ref$animateHover","animateHover","onFocus","titleClassName","IconExclamationMark","Item","bannerOutlineColors","blue","red","white","black","green","gray","_ref$displayPromotion","outlineStyle","IconMegaphone","direction","topRow","secondRow","tooltip","Tooltip","withArrow","renderOpener","tooltipProps","IconTooltipInfo","fill","_ref$bodyOffset","bodyOffset","onMouseEnter","onMouseLeave","onDisplay","onDismiss","_ref$action","forcePlacement","noWrap","isOpen","setIsOpen","arrowRef","parentDivRef","arrowColor","setArrowColor","_useFloating","useFloating","open","onOpenChange","nextOpen","reason","middleware","offset","flip","shift","arrow","whileElementsMounted","autoUpdate","_useFloating$refs","refs","setReference","setFloating","floatingStyles","context","hover","useHover","move","enabled","focus","useFocus","dismiss","useDismiss","useRole","click","useClick","_useInteractions","useInteractions","getReferenceProps","getFloatingProps","transitionStyles","useTransitionStyles","initial","opacity","transform","styles","computedStyle","getComputedStyle","backgroundColor","FloatingArrow","tipRadius","Heading","headingClassName","leftFieldClassName","rightFieldClassName","firstColumnWidth","secondColumnWidth","_ref$title","_ref$color","_ref$viewBoxWidth","viewBoxWidth","_ref$viewBoxHeight","viewBoxHeight","SvgIcon","d","stroke","colors","strokeWidth","fillRule","_ref$direction","points","clearLocalStorage","localStorage","clear","removeLocalStorage","removeItem","replacer","setItem","other","rawData","getItem","parse","getAndInitLocalStorage","v","hasWindow","getWindowDimensions","innerWidth","innerHeight","windowDimensions","setWindowDimensions","handleResize","setTimeout","useParams","setCms","newCms","_1","_2"],"sourceRoot":""}