{"version":3,"file":"src_exported_vto-skin-care_VtoSkinCare_tsx.dcf1a366a5ca9e6f404a.bundle.js","mappings":"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","sources":["webpack://elc-service-vto/./src/internal/views/vto-skin-care-nodes/VtoSkinCareNodes.tsx","webpack://elc-service-vto/./src/internal/views/vto-skincare-product-grid/VtoSkincareProductGrid.tsx","webpack://elc-service-vto/./src/internal/views/vto-skin-care-result/VtoSkinCareResult.tsx","webpack://elc-service-vto/./src/internal/views/vto-skin-analysis/VtoSkinAnalysis.tsx","webpack://elc-service-vto/./src/exported/vto-skin-care/VtoSkinCare.tsx","webpack://elc-service-vto/./src/internal/constants/DataTestIdAttributes.ts","webpack://elc-service-vto/./src/internal/constants/Vto.ts","webpack://elc-service-vto/./src/internal/constants/VtoSkinCare.ts","webpack://elc-service-vto/./src/internal/utils/Classes.ts","webpack://elc-service-vto/./src/internal/views/common/supported-browser-overlay/SupportedBrowserOverlay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { observer } from 'mobx-react';\nimport { IResultNodeBlocks, IBlockPositions } from '../../interfaces/IVtoSkinCare';\nimport { blockPositionMapping } from '../../constants/VtoSkinCare';\nimport { classes } from '../../utils/Classes';\n\nexport interface IVtoSkinCareNodes {\n nodeBlocks: IResultNodeBlocks;\n blockPositions: IBlockPositions;\n vtoSkinCareNodesLoaded(): void;\n}\n\n@observer\nexport class VtoSkinCareNodes extends React.Component {\n public componentDidMount() {\n this.props.vtoSkinCareNodesLoaded();\n }\n\n public render() {\n const { nodeBlocks, blockPositions } = this.props;\n\n return Object.entries(nodeBlocks).map(([key, nodeBlock]) => {\n const blockPosition = blockPositions[blockPositionMapping[key]];\n const blockClassName = classes(\n 'skin-care-node-blocks',\n `elc-skin-care-block-position--${blockPosition}`\n );\n\n return (\n \n );\n });\n }\n}\n","import * as React from 'react';\nimport { observer } from 'mobx-react';\nimport { ServiceView } from '@estee/elc-service';\nimport { PRODUCT_GRID } from '@estee/elc-service-view-names';\nimport { classes } from '../../utils/Classes';\nimport { IVtoSkinCareConfig } from '../../../exported/vto-skin-care/VtoSkinCare';\nimport { IProductGridItem, IProductBenefitTypes } from '../../interfaces/IVtoSkinCare';\nimport {\n VTO_SKINCARE_PRIORITY_PRODUCT_GRID,\n VTO_SKINCARE_PRODUCT_GRID\n} from '../../constants/DataTestIdAttributes';\nimport { Button } from '@estee/elc-buttons';\n\nconst { name: serviceName } = __serviceInfo__;\n\nexport interface IVtoSkinCareResult {\n productItems: IProductGridItem[];\n priorityProductItems: IProductGridItem[];\n config: IVtoSkinCareConfig;\n productBenefitTypes: IProductBenefitTypes;\n priorityProductBenefitTypes: IProductBenefitTypes;\n vtoSkincareProductGridLoaded(ref: React.RefObject): void;\n isShoppable: boolean;\n}\n\n@observer\nexport class VtoSkincareProductGrid extends React.Component {\n private productGridRef: React.RefObject = React.createRef();\n\n public componentDidMount() {\n this.props.vtoSkincareProductGridLoaded(this.productGridRef);\n }\n\n public render() {\n const {\n config,\n productItems,\n productBenefitTypes,\n priorityProductItems,\n priorityProductBenefitTypes,\n isShoppable\n } = this.props;\n\n const {\n blockPositions: { productGridPosition },\n vtoFeature: { skincare }\n } = config;\n\n const productGridClassNames = classes(\n 'skin-care-product-grid',\n 'sd-product-grid',\n `elc-skin-care-block-position--${productGridPosition}`\n );\n\n const skinCareTabsClassNames = classes('skin-care-tabs');\n\n const skinCareTabsContentClassNames = classes('skin-care-tabs-content');\n\n const simpleRegimenClassNames = classes('skin-care-tab-item-simple');\n\n const fullRegimenClassNames = classes('skin-care-tab-item-full');\n\n const hasPriorityProduct = priorityProductItems.length > 0;\n\n const { priorityProductGridConfig, productGridConfig } = config;\n\n const isProductClickable = isShoppable;\n\n const sharedGridConfig = {\n enableCategoryHeader: true,\n enableClickableBrief: isProductClickable\n };\n\n const priorityProductProps = {\n ...priorityProductGridConfig,\n ...sharedGridConfig,\n items: priorityProductItems,\n productBenefitTypes: priorityProductBenefitTypes\n };\n\n const productGridProps = {\n ...productGridConfig,\n ...sharedGridConfig,\n items: productItems,\n productBenefitTypes\n };\n\n return (\n
\n {hasPriorityProduct && (\n
\n \n
\n )}\n
\n {skincare?.enableSkincareSurvey && (\n
\n
\n \n \n
\n
\n )}\n \n
\n
\n );\n }\n}\n","import * as React from 'react';\nimport { observer } from 'mobx-react';\nimport { Body1 } from '@estee/elc-typography';\nimport { Button } from '@estee/elc-buttons';\nimport { translate, ITranslationsCollections } from '@estee/elc-service';\nimport { classes } from '../../utils/Classes';\nimport { IVtoSkinCareConfig } from '../../../exported/vto-skin-care/VtoSkinCare';\nimport {\n IProductGridItem,\n IProductBenefitTypes,\n IResultNodeBlocks\n} from '../../interfaces/IVtoSkinCare';\nimport { VtoSkinCareNodes } from '../vto-skin-care-nodes/VtoSkinCareNodes';\nimport { VtoSkincareProductGrid } from '../vto-skincare-product-grid/VtoSkincareProductGrid';\n\nexport interface IVtoSkinCareResult {\n productItems: IProductGridItem[];\n priorityProductItems: IProductGridItem[];\n config: IVtoSkinCareConfig;\n nodeBlocks: IResultNodeBlocks;\n productBenefitTypes: IProductBenefitTypes;\n priorityProductBenefitTypes: IProductBenefitTypes;\n translations?: ITranslationsCollections;\n vtoSkinCareStartOver(): void;\n vtoSkinCareYourAnalysis(): void;\n vtoSkincareProductGridLoaded(ref: React.RefObject): void;\n vtoSkinCareNodesLoaded(): void;\n isSkinCareNodeResultEnabled: boolean;\n isShoppable: boolean;\n}\n\nconst skinCareResultBlockClassNames = classes('skin-care-result-blocks');\nconst skinCareResultTitleContainerClassNames = classes('skin-care-result-title-container');\nconst skinCareResultTitleClassNames = classes('skin-care-result-title');\nconst skinCareStartOverClassNames = classes('skin-care-start-over');\nconst skinCareYourAnalysisClassNames = classes('skin-care-your-analysis');\nconst skinCareResultCtaContainerClassNames = classes('skin-care-result-cta-container');\nconst skinCareResultsNutritiousHeaderClassNames = classes('skin-care-result-nutritious-header');\nconst skinCareResultsNonNutritiousHeaderClassNames = classes('skin-care-result-non-nutritious-header');\n\nexport const VtoSkinCareResult = translate(['skinCareResultTitle', 'skinCareStartOver'])(\n observer((props: IVtoSkinCareResult) => {\n const {\n config,\n productItems,\n productBenefitTypes,\n translations,\n nodeBlocks,\n isSkinCareNodeResultEnabled,\n vtoSkinCareStartOver,\n vtoSkinCareYourAnalysis,\n vtoSkinCareNodesLoaded,\n priorityProductItems,\n priorityProductBenefitTypes,\n vtoSkincareProductGridLoaded,\n isShoppable\n } = props;\n\n const { blockPositions } = config;\n\n const { skinCareResultTitle, skinCareStartOver } = translations as ITranslationsCollections;\n\n const skinCareNodesProps = {\n nodeBlocks,\n blockPositions,\n vtoSkinCareNodesLoaded\n };\n\n const vtoSkincareProductGridProps = {\n config,\n translations,\n productItems,\n productBenefitTypes,\n priorityProductItems,\n priorityProductBenefitTypes,\n vtoSkincareProductGridLoaded,\n isShoppable\n };\n\n const {\n vtoFeature: { skincare }\n } = config;\n\n return (\n <>\n
\n {skinCareResultTitle}\n {skincare?.enableSkincareSurvey && (\n <>\n
\n
\n \n )}\n
\n {skincare?.enableSkincareSurvey && (\n \n \n )}\n \n {skinCareStartOver}\n \n
\n
\n\n
\n \n\n {isSkinCareNodeResultEnabled && }\n
\n \n );\n })\n);\n","import * as React from 'react';\nimport { observer } from 'mobx-react';\nimport styled from 'styled-components';\nimport { translate } from '@estee/elc-service';\nimport { Spinner } from '@estee/elc-spinner';\nimport { classes } from '../../utils/Classes';\nimport { VTO_SKIN_CARE_RESULT_BUTTON } from '../../constants/DataTestIdAttributes';\nimport { VtoSkinCareResult } from '../vto-skin-care-result/VtoSkinCareResult';\nimport {\n IProductBenefitTypes,\n IProductGridItem,\n IResultNodeBlocks\n} from '../../interfaces/IVtoSkinCare';\nimport {\n IVtoSkinCareConfig,\n IVtoSkinCareTranslations,\n VtoSkinCareButton,\n VtoSkinCareSurveyButton\n} from '../../../exported/vto-skin-care/VtoSkinCare';\n\nexport interface IVtoSkinAnalysis {\n isLoading: boolean;\n isResultCtaFixed: boolean;\n isShoppable: boolean;\n isSkinCareNodeResultEnabled: boolean;\n isVtoInitialScreenDisabled: boolean;\n isVtoSkinAnalysisFinished: boolean;\n isVtoSkinCareCtaEnabled: boolean;\n isVtoSkinCareResultInProgress: boolean;\n isVtoSkinCareResultSectionEnabled: boolean;\n nodeBlocks: IResultNodeBlocks;\n priorityProductBenefitTypes: IProductBenefitTypes;\n priorityProductItems: IProductGridItem[];\n productBenefitTypes: IProductBenefitTypes;\n productItems: IProductGridItem[];\n showVtoSkinCareResult(): void;\n translations: IVtoSkinCareTranslations;\n vtoSkinAnalysisConfig: IVtoSkinCareConfig;\n isSkincareSurveyEnabled: boolean;\n vtoSkinCareNodesLoaded(): void;\n vtoSkinCareStartOver(): void;\n vtoSkinCareYourAnalysis(): void;\n vtoSkincareProductGridLoaded(productGridRef: React.RefObject): void;\n}\n\nconst VtoIframeContainer = styled.div`\n &.elc-vto-iframe-disabled {\n display: none;\n }\n`;\n\nexport const VtoSkinAnalysis = translate(['vtoSkinCareResultButton'])(\n observer(\n ({\n isLoading,\n isResultCtaFixed,\n isShoppable,\n isSkinCareNodeResultEnabled,\n isVtoInitialScreenDisabled,\n isVtoSkinAnalysisFinished,\n isVtoSkinCareCtaEnabled,\n isVtoSkinCareResultInProgress,\n isVtoSkinCareResultSectionEnabled,\n nodeBlocks,\n priorityProductBenefitTypes,\n priorityProductItems,\n productBenefitTypes,\n productItems,\n showVtoSkinCareResult,\n translations: { vtoSkinCareResultButton },\n vtoSkinAnalysisConfig,\n vtoSkinCareNodesLoaded,\n vtoSkinCareStartOver,\n vtoSkinCareYourAnalysis,\n vtoSkincareProductGridLoaded\n }: IVtoSkinAnalysis) => {\n const skinCareResultCtaClassNames = classes('skin-care-result-cta');\n\n const skinCareSurveyCtaClassNames = classes('skin-care-survey-cta');\n\n const skinCareResultProgressClassNames = isVtoSkinCareResultInProgress\n ? classes('skin-care-result-progress')\n : '';\n\n const iframeClassNames = classes('vto-iframe', {\n 'elc-vto-iframe-disabled': isVtoInitialScreenDisabled || isVtoSkinCareCtaEnabled\n });\n\n const skinCareResultCtaWrapperClassNames = classes('skin-care-result-cta-wrapper', {\n 'elc-skin-care-result-cta-wrapper--fixed': isResultCtaFixed\n });\n\n const vtoSkinCareResultProps = {\n productItems,\n productBenefitTypes,\n nodeBlocks,\n vtoSkinCareStartOver,\n vtoSkinCareYourAnalysis,\n vtoSkinCareNodesLoaded,\n vtoSkincareProductGridLoaded,\n isSkinCareNodeResultEnabled,\n priorityProductItems,\n priorityProductBenefitTypes,\n isShoppable,\n config: vtoSkinAnalysisConfig\n };\n\n const {\n vtoFeature: { skincare }\n } = vtoSkinAnalysisConfig;\n\n return (\n <>\n {isLoading && (\n \n )}\n \n
\n \n
\n {skincare?.enableSkincareSurvey && (\n \n )}\n \n
\n {isVtoSkinCareResultSectionEnabled && (\n \n )}\n \n );\n }\n )\n);\n","import * as React from 'react';\nimport { observer } from 'mobx-react';\nimport { addConfig, addContext, configConsumer, translate } from '@estee/elc-service';\nimport { Button } from '@estee/elc-buttons';\nimport { classes } from '~utils/Classes';\nimport { VtoSkinCareViewController } from '~controllers/VtoSkinCareViewController';\nimport { IFeatures } from '~constants/Features';\nimport { IBlockPositions, IProductGridConfig } from '~interfaces/IVtoSkinCare';\nimport { IVtoFeature } from '~interfaces/IVto';\nimport { VTO_SKIN_CARE_BUTTON } from '~constants/DataTestIdAttributes';\nimport { SupportedBrowserOverlay } from '~views/common/supported-browser-overlay/SupportedBrowserOverlay';\nimport { VtoSkinAnalysis } from '~views/vto-skin-analysis/VtoSkinAnalysis';\nimport { VtoTypes } from '~constants/Vto';\n\nexport interface IVtoSkinCare {\n config: IVtoSkinCareConfig;\n translations: IVtoSkinCareTranslations;\n viewController: VtoSkinCareViewController;\n}\n\nexport interface IVtoSkinCareConfig {\n features: IFeatures;\n vtoSkinCareQuizId: string;\n blockPositions: IBlockPositions;\n skinCareEditorialNodeId: number;\n isVtoResultEnabled: boolean;\n vtoFeature: IVtoFeature;\n priorityProductGridConfig?: IProductGridConfig;\n productGridConfig?: IProductGridConfig;\n}\n\nexport interface IVtoSkinCareTranslations {\n vtoSkinCareButton: string;\n VtoSkinCareSurveyButton: string;\n vtoSkinCareResultButton: string;\n categoryCleanse: string;\n categoryEyeCare: string;\n categoryMoisturize: string;\n categoryRepair: string;\n categoryTreat: string;\n categoryCream: string;\n categorySerum: string;\n categoryConcentrate: string;\n}\n\ninterface IVtoSkinCareButton {\n className: string;\n show: boolean;\n isVtoInitialScreenDisabled: boolean;\n label?: string;\n onClick(event: React.MouseEvent): void;\n}\n\nexport const VtoSkinCareButton = observer(\n ({ show, isVtoInitialScreenDisabled, label, ...props }: IVtoSkinCareButton) => {\n if (!show || isVtoInitialScreenDisabled) {\n return null;\n }\n\n return ;\n }\n);\n\ninterface IVtoSkinCareSurveyButton {\n className: string;\n show: boolean;\n isVtoInitialScreenDisabled: boolean;\n label?: string;\n}\n\nexport const VtoSkinCareSurveyButton = observer(\n ({ show, isVtoInitialScreenDisabled, label, ...props }: IVtoSkinCareSurveyButton) => {\n if (!show || isVtoInitialScreenDisabled) {\n return null;\n }\n\n return ;\n }\n);\n\nconst skinCareCtaClassNames = classes('skin-care-cta');\n\n@addContext()\n@addConfig(['features', 'vtoFeature', 'componentElementsOrderConfig'])\n@configConsumer(['features', 'vtoFeature', 'componentElementsOrderConfig'])\n@translate([\n 'vtoSkinCareButton',\n 'vtoSkinCareResultButton',\n 'categoryCleanse',\n 'categoryEyeCare',\n 'categoryMoisturize',\n 'categoryRepair',\n 'categoryTreat',\n 'categoryCream',\n 'categorySerum',\n 'categoryConcentrate'\n])\n@observer\nclass VtoSkinCare extends React.Component {\n private vtoSkinCareRef: React.RefObject;\n\n constructor(props: IVtoSkinCare) {\n super(props);\n const { viewController, ...restProps } = props;\n const skinCareProps = this.skinCareProps(restProps);\n viewController.initialize(skinCareProps);\n }\n\n public componentDidMount() {\n this.props.viewController.loaded();\n }\n\n public componentWillUnmount() {\n this.props.viewController.handleUnmount();\n }\n\n private skinCareProps = (props: Omit) => {\n this.vtoSkinCareRef = React.createRef();\n const { vtoSkinCareRef } = this;\n\n return {\n ...props,\n vtoSkinCareRef\n };\n };\n\n private isLoading = () => {\n const {\n isVtoSkinCareOpened,\n isVtoSkinCareCtaEnabled,\n isVtoSkinCareResultInProgress,\n isVtoSkinCareResultSectionEnabled\n } = this.props.viewController.data;\n const isVtoInitialScreenDisabled =\n isVtoSkinCareResultInProgress || isVtoSkinCareResultSectionEnabled;\n const isVtoSkinCareLoading =\n !isVtoSkinCareCtaEnabled && !isVtoSkinCareOpened && !isVtoInitialScreenDisabled;\n\n return isVtoSkinCareLoading || isVtoSkinCareResultInProgress;\n };\n\n private trackCloseSupportedBrowserOverlay = () => {\n const {\n viewController: { closeSupportedBrowserOverlay }\n } = this.props;\n\n closeSupportedBrowserOverlay(VtoTypes.SKINCARE);\n };\n\n public render() {\n const { translations, viewController } = this.props;\n const {\n isVtoSkinCareEnabled,\n isVtoSkinCareCtaEnabled,\n isVtoSkinCareResultInProgress,\n isVtoSkinCareResultSectionEnabled,\n isSkinCareNodeResultEnabled,\n isVtoSkinAnalysisFinished,\n isResultCtaFixed,\n isShoppable,\n isSupportedBrowserOverlayVisible,\n isSupportedBrowserOverlayOpen\n } = viewController.data;\n const { vtoSkinCareButton } = translations;\n const {\n productItems,\n productBenefitTypes,\n skinCareResultNodeBlocks,\n vtoSkinCareStartOver,\n vtoSkinCareYourAnalysis,\n vtoSkinCareNodesLoaded,\n vtoSkincareProductGridLoaded,\n priorityProductItems,\n priorityProductBenefitTypes,\n showVtoSkinCareResult\n } = viewController;\n\n const isVtoInitialScreenDisabled =\n isVtoSkinCareResultInProgress || isVtoSkinCareResultSectionEnabled;\n\n const vtoSkinAnalysisProps = {\n isLoading: this.isLoading(),\n isResultCtaFixed,\n isShoppable,\n isSkinCareNodeResultEnabled,\n isVtoInitialScreenDisabled,\n isVtoSkinAnalysisFinished,\n isVtoSkinCareCtaEnabled,\n isVtoSkinCareResultInProgress,\n isVtoSkinCareResultSectionEnabled,\n nodeBlocks: skinCareResultNodeBlocks,\n priorityProductBenefitTypes,\n priorityProductItems,\n productBenefitTypes,\n productItems,\n showVtoSkinCareResult,\n vtoSkinAnalysisConfig: this.props.config,\n vtoSkinCareNodesLoaded,\n vtoSkinCareStartOver,\n vtoSkinCareYourAnalysis,\n vtoSkincareProductGridLoaded\n };\n\n if (!isVtoSkinCareEnabled) {\n return null;\n }\n\n return (\n
\n \n {isSupportedBrowserOverlayVisible && (\n \n )}\n {!isSupportedBrowserOverlayVisible && }\n
\n );\n }\n}\n\nexport default VtoSkinCare;\n","export const VTO_MAKEUP_BUTTON = 'vto-button-makeup';\nexport const VTO_FOUNDATION_BUTTON = 'vto-button-foundation';\nexport const VTO_PERFECT_SHADES_BUTTON = 'vto-button-perfect-shades';\nexport const VTO_ALL_SHADES_BUTTON = 'vto-button-all-shades';\nexport const VTO_PAIR_SHADES_BUTTON = 'vto-button-pair-shades';\nexport const VTO_SHADE_SELECT = 'vto-shade-select';\nexport const VTO_PRODUCT_PRICE = 'vto-product-price';\nexport const VTO_PAIR_PRODUCT_LINK = 'vto-pair-product-link';\nexport const VTO_PRODUCT_NAME = 'vto-product-name';\nexport const VTO_PRODUCT_SUBHEADER = 'vto-product-subheader';\nexport const VTO_PRODUCT_SIZE = 'vto-product-size';\nexport const VTO_PRICE_FORMATTED = 'vto-price-formatted';\nexport const VTO_SKIN_CARE_RESULT_BUTTON = 'vto-skin-care-result-button';\nexport const VTO_SKIN_CARE_BUTTON = 'vto-skin-care-button';\nexport const VTO_CUSTOM_PAIR_SHADE_PICKER = 'vto-custom-shade-pair-picker';\nexport const VTO_SHADE_SWATCH = 'vto-shade-swatch';\nexport const VTO_SAVE_MATCHES = 'vto-save-matches';\nexport const VTO_REMOVE_MATCHES = 'vto-remove-matches';\nexport const TAX_INCLUDED = 'tax-included';\nexport const VTO_SKINCARE_PRODUCT_GRID = 'vto-skincare-product-grid';\nexport const VTO_SKINCARE_PRIORITY_PRODUCT_GRID = 'vto-skincare-priority-product-grid';\nexport const SUPPORTED_BROWSER_OVERLAY_COPY = 'supported-browser-overlay-copy';\n","export const IFRAME_MIN_WIDTH = 300;\nexport const IFRAME_MAX_WIDTH = 600;\nexport const TIMEOUT_VALUE = 500;\nexport const IFRAME_EXTRA_PADDING = 30;\nexport const IFRAME_RATIO = 1.22;\nexport const SHADE_SIDEBAR_HEIGHT_RATIO = 0.7;\nexport const COMPARE_BUTTON_HEIGHT = 225;\nexport const SKIN_SMOOTH_STRENGTH = 50;\nexport const PIE_CHART_DEFAULT_VALUE = 1;\nexport const CUSTOM_SLIDES_TO_SHOW = 5;\nexport const CUSTOM_SLIDES_TO_SCROLL = 5;\nexport const VTO_GUID = 'guid';\nexport const NO_SCROLL_CLASS = 'no-scroll';\nexport const VTO_ACTIVE_CLASS = 'vto-active';\nexport const VTO_DISCLOSE_PARAM = 'vto_disclose';\nexport const VTO_HIDE_PRICE_PARAM = 'vto_disprice';\nexport const VTO_OPEN_PARAM = 'vto_open';\nexport const VTO_MATCHES_COOKIE_NAME = 'vtoMatches';\nexport const VTO_PERSONALIZATION_VERIFIED_COOKIE = 'vto.p13n.verified';\nexport const SHADE_SIDEBAR_CONTAINER = 'js-product-shade-info-wrapper';\nexport const LEFT_STICKY_COLUMN = 'js-left-sticky-column';\nexport const LEFT_COLUMN_SECTION = 'js-left-column-section';\nexport const PRODUCT_FULL_SECTION = 'js-product-full';\nexport const PERLGEM_USER_IDENTIFIER_TYPE = 'perlgem_user_id';\nexport const VTO = 'vto';\nexport const VTO_FOUNDATION = 'vtoFoundation';\nexport const VTO_MATCHES = 'vtoMatches';\nexport const API_REQUEST_TIMEOUT = 100;\nexport const DOWNLOAD_BAR_SIZE = 50;\nexport const DOWNLOAD_BAR_TOLERANCE = 0.3;\nexport const DOWNLOAD_BAR_VARIATION = 1;\n\nexport enum VtoEvents {\n CAMERA_CLOSED = 'cameraClosed',\n CAMERA_FAILED = 'cameraFailed',\n CAMERA_OPENED = 'cameraOpened',\n CLOSED = 'closed',\n COMPARE = 'compare',\n COMPARE_DISABLED = 'compareDisabled',\n ENGINE_CLOSED = 'engineClosed',\n KISS_DETECTED = 'kissDetected',\n LOADED = 'loaded',\n LOADING = 'loading',\n OPENED = 'opened',\n PHOTO_LOADED = 'photoLoaded',\n PHOTO_SAVED = 'photoSaved',\n RESET = 'reset',\n SHADE_FINDER_COMPLETED = 'shadeFinderCompleted',\n SHADE_FINDER_CANCELLED = 'shadeFinderCancelled',\n SHADE_FINDER_STARTED = 'shadeFinderStarted',\n SKIN_SHADE_FOUND = 'skinShadeFound',\n SPLIT_FOUR_WAY = 'splitFourWay',\n SPLIT_FOUR_WAY_DISABLED = 'splitFourWayDisabled',\n VIDEO_LOADED = 'videoLoaded',\n ZOOM = 'zoom'\n}\n\nexport enum FoundationShadeTypes {\n COOLER = 'cooler',\n LIGHTER = 'lighter',\n BEST = 'best',\n DARKER = 'darker',\n WARMER = 'warmer'\n}\n\nexport enum FoundationPairShadeTypes {\n CASUAL = 'casualPair',\n BEST = 'bestPair',\n GLAM = 'glamPair'\n}\n\nexport const foundationTabs = Object.freeze({\n allShadesTab: 'allShades',\n pairShadesTab: 'pairShades',\n perfectShadesTab: 'perfectShades'\n});\n\nexport enum VtoButtonTypes {\n ALL_SHADES = 'allShades',\n BEST_SHADES = 'bestShades'\n}\n\nexport enum VtoTypes {\n FOUNDATION = 'Foundation',\n MAKEUP = 'Makeup',\n SKINCARE = 'Skincare'\n}\n\nexport const LOADING_PERCENTAGE_EVENT_TRIGGERED = 10;\n","export const IFRAME_MIN_HEIGHT = 500;\nexport const SKIN_CARE_MODE = 'capture';\nexport const FACE_CONCERN_PARAM = 'face_concern';\nexport const EYE_CONCERN_PARAM = 'eye_concern';\nexport const SKIN_TYPE_PARAM = 'skin_type';\nexport const SKIN_TYPE_VALUE = 'Normal / Combo';\nexport const DEFAULT_LOCALE = 'en_US';\nexport const DRUPAL_API_TOKEN = '0709040f8da71ca45eceb1ab8f2d8c5a';\nexport const DRUPAL_API_FIELDS = '+rendered,+attached';\nexport const SKU_ITEM = 'sku';\nexport const PRODUCT_ITEM = 'product';\nexport const REVISION_TAG_COOKIE = 'ELC_SITE_TAG';\nexport const LOCALE_COOKIE = 'LOCALE';\nexport const SCROLL_TIMEOUT = 100;\nexport const OFFSET_HEIGHT = 50;\nexport const SCROLL_BEHAVIOR_SMOOTH = 'smooth';\nexport const SCROLL_BLOCK_START = 'start';\nexport const EDITORIAL_NODE_KEY = 'skinCareEditorialNode';\nexport const SHOPPABLE_QUERY_PARAM = 'shop';\nexport const NON_SHOPPABLE_QUERY_VALUE = '0';\n\nexport enum VtoSkinCareEvents {\n CAMERA_CLOSED = 'cameraClosed',\n CAMERA_FAILED = 'cameraFailed',\n CAMERA_OPENED = 'cameraOpened',\n CLOSED = 'closed',\n LOADED = 'loaded',\n LOADING = 'loading',\n OPENED = 'opened',\n SKIN_ANALYSIS_STARTED = 'skinAnalysisStarted',\n SKIN_ANALYSIS_FINISHED = 'skinAnalysisFinished',\n SKIN_BACK_TO_DETECTING = 'skinBackToDetecting',\n VIDEO_LOADED = 'videoLoaded'\n}\n\nexport enum FaceConcerns {\n linesAndWrinkles = 'lines_and_wrinkles',\n spot = 'spot',\n texture = 'texture',\n redness = 'redness'\n}\n\nexport enum EyeConcerns {\n wrinkleEyes = 'wrinkle_eyes',\n darkCircle = 'dark_circle'\n}\n\nexport enum OtherConcerns {\n wrinkleForehead = 'wrinkle_forehead',\n wrinkleLowerFace = 'wrinkle_lower_face'\n}\n\nexport enum QuizApiConcerns {\n linesAndWrinkles = 'Lines and Wrinkles',\n spot = 'Dark Spots',\n texture = 'Uneven Texture',\n redness = 'Irritation/Redness',\n wrinkleEyes = 'Fewer Lines/ Wrinkles',\n darkCircle = 'Brighten Dark Circles'\n}\n\nexport const blockPositionMapping: {\n [key: string]: string;\n} = Object.freeze({\n productGrid: 'productGridPosition',\n crosssellNode: 'crosssellNodePosition',\n extraCareNode: 'extraCareNodePosition',\n skinDiagramNode: 'skinDiagramNodePosition',\n skincareRegimenNode: 'skinCareRegimenNodePosition',\n skinTipsNode: 'skinTipsNodePosition',\n skinCareEditorialNode: 'skinCareEditorialNodePosition'\n});\n\nexport const LOADING_PERCENTAGE_EVENT_TRIGGERED = 10;\n","import classnames from 'classnames';\n\ninterface ClassDictionary {\n [id: string]: unknown;\n}\n\ntype ClassValue = string | number | ClassDictionary | ClassValue[] | undefined | null | boolean;\n\nexport const classes = (component: string, ...classNames: ClassValue[]) =>\n classnames(`elc-${component}`, `js-${component}`, classNames);\n","import * as React from 'react';\nimport { translate } from '@estee/elc-service';\nimport { observer } from 'mobx-react';\nimport { ResponsiveModal } from '@estee/elc-responsive-modal';\nimport { Button } from '@estee/elc-buttons';\nimport { RemoveIcon } from '@estee/elc-icons';\nimport { SUPPORTED_BROWSER_OVERLAY_COPY } from '../../../constants/DataTestIdAttributes';\n\ninterface ISupportedBrowserOverlay {\n translations: {\n useSafariToAccessCamera: string;\n };\n closeOverlay(): void;\n isOpen: boolean;\n}\n\nexport const SupportedBrowserOverlay = translate(['useSafariToAccessCamera'])(\n observer(({ translations, closeOverlay, isOpen }: ISupportedBrowserOverlay) => {\n const { useSafariToAccessCamera } = translations;\n\n return (\n \n \n \n \n );\n })\n);\n"],"names":["VtoSkinCareNodes","componentDidMount","this","props","vtoSkinCareNodesLoaded","render","nodeBlocks","blockPositions","Object","entries","map","key","nodeBlock","blockPosition","blockPositionMapping","blockClassName","className","dangerouslySetInnerHTML","__html","name","serviceName","VtoSkincareProductGrid","productGridRef","vtoSkincareProductGridLoaded","config","productItems","productBenefitTypes","priorityProductItems","priorityProductBenefitTypes","isShoppable","productGridPosition","vtoFeature","skincare","productGridClassNames","skinCareTabsClassNames","skinCareTabsContentClassNames","simpleRegimenClassNames","fullRegimenClassNames","hasPriorityProduct","length","priorityProductGridConfig","productGridConfig","sharedGridConfig","enableCategoryHeader","enableClickableBrief","priorityProductProps","items","productGridProps","ref","ServiceView","enableSkincareSurvey","Button","skinCareResultBlockClassNames","skinCareResultTitleContainerClassNames","skinCareResultTitleClassNames","skinCareStartOverClassNames","skinCareYourAnalysisClassNames","skinCareResultCtaContainerClassNames","skinCareResultsNutritiousHeaderClassNames","skinCareResultsNonNutritiousHeaderClassNames","VtoSkinCareResult","observer","translations","isSkinCareNodeResultEnabled","vtoSkinCareStartOver","vtoSkinCareYourAnalysis","skinCareResultTitle","skinCareStartOver","skinCareNodesProps","vtoSkincareProductGridProps","onClick","VtoIframeContainer","VtoSkinAnalysis","isLoading","isResultCtaFixed","isVtoInitialScreenDisabled","isVtoSkinAnalysisFinished","isVtoSkinCareCtaEnabled","isVtoSkinCareResultInProgress","isVtoSkinCareResultSectionEnabled","showVtoSkinCareResult","vtoSkinCareResultButton","vtoSkinAnalysisConfig","skinCareResultCtaClassNames","skinCareSurveyCtaClassNames","skinCareResultProgressClassNames","iframeClassNames","skinCareResultCtaWrapperClassNames","vtoSkinCareResultProps","Spinner","id","VtoSkinCareSurveyButton","show","label","VtoSkinCareButton","skinCareCtaClassNames","constructor","super","skinCareProps","vtoSkinCareRef","isVtoSkinCareOpened","viewController","data","trackCloseSupportedBrowserOverlay","closeSupportedBrowserOverlay","Vto","VtoTypes","restProps","initialize","loaded","componentWillUnmount","handleUnmount","isVtoSkinCareEnabled","isSupportedBrowserOverlayVisible","isSupportedBrowserOverlayOpen","vtoSkinCareButton","skinCareResultNodeBlocks","vtoSkinAnalysisProps","initVtoSkinCare","SupportedBrowserOverlay","closeOverlay","isOpen","addContext","addConfig","VTO_MAKEUP_BUTTON","VTO_FOUNDATION_BUTTON","VTO_PERFECT_SHADES_BUTTON","VTO_ALL_SHADES_BUTTON","VTO_PAIR_SHADES_BUTTON","VTO_SHADE_SELECT","VTO_PRODUCT_PRICE","VTO_PAIR_PRODUCT_LINK","VTO_PRODUCT_NAME","VTO_PRODUCT_SUBHEADER","VTO_PRODUCT_SIZE","VTO_PRICE_FORMATTED","VTO_SKIN_CARE_RESULT_BUTTON","VTO_SKIN_CARE_BUTTON","VTO_CUSTOM_PAIR_SHADE_PICKER","VTO_SHADE_SWATCH","VTO_SAVE_MATCHES","VTO_REMOVE_MATCHES","TAX_INCLUDED","VTO_SKINCARE_PRODUCT_GRID","VTO_SKINCARE_PRIORITY_PRODUCT_GRID","SUPPORTED_BROWSER_OVERLAY_COPY","IFRAME_MIN_WIDTH","IFRAME_MAX_WIDTH","TIMEOUT_VALUE","IFRAME_EXTRA_PADDING","IFRAME_RATIO","SHADE_SIDEBAR_HEIGHT_RATIO","COMPARE_BUTTON_HEIGHT","SKIN_SMOOTH_STRENGTH","PIE_CHART_DEFAULT_VALUE","CUSTOM_SLIDES_TO_SHOW","CUSTOM_SLIDES_TO_SCROLL","VTO_GUID","NO_SCROLL_CLASS","VTO_ACTIVE_CLASS","VTO_DISCLOSE_PARAM","VTO_HIDE_PRICE_PARAM","VTO_OPEN_PARAM","VTO_MATCHES_COOKIE_NAME","VTO_PERSONALIZATION_VERIFIED_COOKIE","SHADE_SIDEBAR_CONTAINER","LEFT_STICKY_COLUMN","LEFT_COLUMN_SECTION","PRODUCT_FULL_SECTION","PERLGEM_USER_IDENTIFIER_TYPE","VTO","VTO_FOUNDATION","VTO_MATCHES","API_REQUEST_TIMEOUT","DOWNLOAD_BAR_SIZE","DOWNLOAD_BAR_TOLERANCE","DOWNLOAD_BAR_VARIATION","VtoEvents","FoundationShadeTypes","FoundationPairShadeTypes","foundationTabs","freeze","allShadesTab","pairShadesTab","perfectShadesTab","VtoButtonTypes","LOADING_PERCENTAGE_EVENT_TRIGGERED","IFRAME_MIN_HEIGHT","SKIN_CARE_MODE","FACE_CONCERN_PARAM","EYE_CONCERN_PARAM","SKIN_TYPE_PARAM","SKIN_TYPE_VALUE","DEFAULT_LOCALE","DRUPAL_API_TOKEN","DRUPAL_API_FIELDS","SKU_ITEM","PRODUCT_ITEM","REVISION_TAG_COOKIE","LOCALE_COOKIE","SCROLL_TIMEOUT","OFFSET_HEIGHT","SCROLL_BEHAVIOR_SMOOTH","SCROLL_BLOCK_START","EDITORIAL_NODE_KEY","SHOPPABLE_QUERY_PARAM","NON_SHOPPABLE_QUERY_VALUE","VtoSkinCareEvents","FaceConcerns","EyeConcerns","OtherConcerns","QuizApiConcerns","productGrid","crosssellNode","extraCareNode","skinDiagramNode","skincareRegimenNode","skinTipsNode","skinCareEditorialNode","classes","component","classNames","useSafariToAccessCamera","deactivateModal","onMaskClick","underlayClickExits","title"],"sourceRoot":""}