{"version":3,"file":"371.chunk.js","mappings":"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","sources":["VmWidgetUi.tsx","utils/unmount.ts","widgets/ConfiguratorsWidget/UI.tsx","hooks/useConfigurator.ts","pages/Configurators/LiveTryOn.tsx","pages/Configurators/PictureModeView.tsx","pages/Configurators/VideoModeView.tsx","routes/ConfiguratorRoutes/index.tsx","widgets/ConfiguratorsWidget/Widget.tsx","../node_modules/@luxottica/capture-component/src/app/functions/UploadImage.ts","../node_modules/@luxottica/virtual-mirror/src/app/functions/CloseMirror.ts","../node_modules/@luxottica/virtual-mirror/src/app/functions/IsBrowserSupported.ts","../node_modules/@luxottica/virtual-mirror/src/app/functions/Resume.ts","../node_modules/@luxottica/vmp/src/plugins/videoBg.ts"],"sourcesContent":["import React, { Suspense } from 'react'\nimport { Config } from './types/config'\n\ntype VmWidgetUiProps = { config: Config }\n\nconst VMWidget = React.lazy(() => import('./VMWidget'))\n\nexport const VmWidgetUi = (props: VmWidgetUiProps) => {\n return (\n \n \n \n )\n}\n","export const unmount: () => void = async () => {\n // use dynamic imports here\n const { store } = await import('@store/index')\n const { setVtoPage } = await import('@store/actions/ui')\n const { FrameAdvisorCapture } = await import('@luxottica/capture-component')\n const { VirtualMirror } = await import('@luxottica/virtual-mirror')\n const { VtoCore } = await import('@luxottica/vto-core')\n const { CONTAINER_ID_PICTURE_MODE, CONTAINER_ID_VIDEO_MODE } = await import(\n '@providers/VtoProvider'\n )\n const { CONTAINER_ID_LIVE_TRY_ON } = await import('@providers/VmProvider')\n\n const {\n ui: { vtoPage },\n } = store.getState()\n\n if (vtoPage === 'live-try-on') {\n await VirtualMirror.closeMirror({ target: CONTAINER_ID_LIVE_TRY_ON })\n } else if (vtoPage === 'picture-mode') {\n await (() =>\n new Promise((resolve, reject) =>\n VtoCore.closeRender({ divId: CONTAINER_ID_PICTURE_MODE }, resolve, reject)\n ))()\n } else if (vtoPage === 'video-mode') {\n await (() =>\n new Promise((resolve, reject) =>\n VtoCore.closeRender({ divId: CONTAINER_ID_VIDEO_MODE }, resolve, reject)\n ))()\n } else if (vtoPage === 'fa-vto-capture') {\n FrameAdvisorCapture.close()\n FrameAdvisorCapture.closeVtoCapture()\n } else if (vtoPage === 'fa-upload') {\n FrameAdvisorCapture.close()\n FrameAdvisorCapture.closeUploadImage()\n }\n\n store.dispatch(setVtoPage('off'))\n}\n","import { Config } from '@customTypes/config'\nimport React, { Suspense } from 'react'\n\ntype Props = { config: Config }\n\nconst Widget = React.lazy(() => import('./Widget'))\n\nexport const Ui = (props: Props) => {\n return (\n \n \n \n )\n}\n","import { useEffect } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useVM } from '@providers/VmProvider'\nimport { useConfig } from '@providers/configProvider'\nimport { AppState } from '@store/index'\nimport { Color } from '@customTypes/product'\nimport { setLens } from '@store/actions/configurator'\nimport { findColor } from '@utils/filterColors'\nimport { useRefValue } from './useRefValue'\n\nconst useConfigurator = () => {\n const { onLensChange } = useConfig()\n const {\n colors,\n currentColor,\n colorsCatalog,\n setIsConfigurator,\n setCurrentColor,\n setColorsCatalog,\n setCurrentProduct,\n } = useVM()\n const selectedLens = useSelector((s: AppState) => s.configurator.lens)\n const lensesList = useSelector((s: AppState) => s.configurator.lensesList)\n const selectedProduct = useSelector((s: AppState) => s.configurator.currentProduct)\n const colorsCatalogRef = useRefValue(colorsCatalog)\n\n const dispatch = useDispatch()\n\n useEffect(() => {\n setIsConfigurator(true)\n }, [setIsConfigurator])\n\n useEffect(() => {\n if (selectedLens) {\n const lens = findColor(selectedLens.lensIdentifier, colorsCatalog)\n\n if (lens) {\n // change lens color only if color is available\n setCurrentColor(lens.colorCode)\n }\n } else {\n setCurrentColor('')\n }\n }, [colorsCatalog, selectedLens, setCurrentColor])\n\n useEffect(() => {\n if (selectedProduct) {\n setCurrentProduct(selectedProduct)\n }\n }, [selectedProduct, setCurrentProduct])\n\n useEffect(() => {\n if (currentColor) {\n const color = colorsCatalogRef.current.find(x => x.colorCode === currentColor)\n\n !!onLensChange && onLensChange((!!color && color.lensIdentifier) || currentColor)\n }\n }, [currentColor, colorsCatalogRef, onLensChange])\n\n useEffect(() => {\n let isValid = false\n\n // side effects to get available colors in VM, then filter lensesList to show only available colors\n if (!!colors.length && lensesList && !!lensesList.length) {\n const filteredLens = lensesList.filter(i =>\n colors.filter(\n x => x.colorCode === i.lensIdentifier || (!!x.clen && x.clen === i.lensIdentifier)\n )\n )\n\n const lenses: Color[] = filteredLens\n .map(lense => {\n // NOTE: clen should be unique from the list in Transitions Swatches json or else it will get the first one from the list\n const c = colors.find(\n x =>\n x.colorCode === lense.lensIdentifier || (!!x.clen && x.clen === lense.lensIdentifier)\n )\n\n return {\n colorCode: c?.colorCode || '',\n lensName: lense.name,\n colorName: lense.colorName,\n swatchImage: lense.swatchImage || c?.swatchImage,\n clen: c?.clen,\n lensIdentifier: lense.lensIdentifier,\n }\n })\n .filter(x => !!x.colorCode)\n\n if (!!lenses.length) {\n isValid = true\n setColorsCatalog(lenses)\n dispatch(setLens(filteredLens[0]))\n }\n }\n\n if (!isValid) {\n setColorsCatalog([])\n dispatch(setLens(null))\n }\n }, [lensesList, colors, setColorsCatalog, setCurrentColor, dispatch])\n}\n\nexport default useConfigurator\n","import { useConfig } from '@providers/configProvider'\nimport { useVM } from '@providers/VmProvider'\n\nimport { Menu } from '@components/Menu'\nimport { Drawer } from '@components/core/Drawer'\nimport { ErrorModal } from '@components/ErrorModal'\nimport { RightSideActions } from '@components/RightSIdeActions'\nimport { ScreenshotPreview } from '@components/ScreenshotPreview'\n\nimport useConfigurator from '@hooks/useConfigurator'\nimport { FooterActions } from '@components/FooterActions'\nimport { isIpadView, isMobileView } from '@libs/utils'\nimport { ColorsCatalog } from '@components/Carousel/ColorsCatalog'\nimport { InitColorSwatches } from '@components/InitColorSwatches'\nimport { useTranslation } from 'react-i18next'\n\nconst LiveTryOn: React.FC = () => {\n useConfigurator()\n\n const { fromStore } = useConfig()\n const {\n currentProduct,\n isVMInitialized,\n isReady,\n vmProducts,\n isProductLoaded,\n colorsCatalog,\n currentColor,\n setCurrentColor,\n setColors,\n } = useVM()\n\n const isNoUpc = isProductLoaded && vmProducts.length === 0\n const showColors = (isIpadView() || isMobileView()) && colorsCatalog.length > 0 && currentColor\n\n const { t } = useTranslation()\n\n return (\n <>\n {currentProduct && (\n <>\n {isVMInitialized && (\n <>\n \n \n \n )}\n {isReady && }\n\n {showColors && (\n <>\n \n \n )}\n\n \n\n \n \n \n \n )}\n \n \n )\n}\n\nexport default LiveTryOn\n","import { Menu } from '@components/Menu'\nimport { RightSideActions } from '@components/RightSIdeActions'\nimport { ScreenshotPreview } from '@components/ScreenshotPreview'\nimport { Drawer } from '@components/core/Drawer'\nimport { ErrorModal } from '@components/ErrorModal'\n\nimport { useConfig } from '@providers/configProvider'\nimport { useVM } from '@providers/VmProvider'\nimport useConfigurator from '@hooks/useConfigurator'\nimport { isIpadView, isMobileView } from '@libs/utils'\nimport { ColorsCatalog } from '@components/Carousel/ColorsCatalog'\nimport { FooterActions } from '@components/FooterActions'\nimport { useTranslation } from 'react-i18next'\n\nexport const PictureModeView = () => {\n const { fromStore } = useConfig()\n const {\n currentProduct,\n isReady,\n vmProducts,\n isProductLoaded,\n colorsCatalog,\n currentColor,\n setCurrentColor,\n onRefresh,\n } = useVM()\n\n useConfigurator()\n const isNoUpc = isProductLoaded && vmProducts.length === 0\n const showColors = (isIpadView() || isMobileView()) && colorsCatalog.length > 0 && currentColor\n\n const { t } = useTranslation()\n\n return (\n <>\n {currentProduct && (\n <>\n \n {isReady && }\n\n {showColors && (\n \n )}\n\n \n\n \n \n \n \n )}\n \n \n )\n}\n","import { Menu } from '@components/Menu'\nimport { RightSideActions } from '@components/RightSIdeActions'\nimport { Drawer } from '@components/core/Drawer'\nimport { ScreenshotPreview } from '@components/ScreenshotPreview'\nimport { ErrorModal } from '@components/ErrorModal'\nimport { useConfig } from '@providers/configProvider'\nimport useConfigurator from '@hooks/useConfigurator'\nimport { useVM } from '@providers/VmProvider'\nimport { isIpadView, isMobileView } from '@libs/utils'\nimport { ColorsCatalog } from '@components/Carousel/ColorsCatalog'\nimport { FooterActions } from '@components/FooterActions'\nimport { useTranslation } from 'react-i18next'\n\nexport const VideoModeView = () => {\n const { fromStore } = useConfig()\n const {\n currentProduct,\n isReady,\n vmProducts,\n isProductLoaded,\n colorsCatalog,\n currentColor,\n setCurrentColor,\n onRefresh,\n } = useVM()\n\n useConfigurator()\n const isNoUpc = isProductLoaded && vmProducts.length === 0\n const showColors = (isIpadView() || isMobileView()) && colorsCatalog.length > 0 && currentColor\n\n const { t } = useTranslation()\n\n return (\n <>\n {currentProduct && (\n <>\n \n {isReady && }\n\n {showColors && (\n \n )}\n\n \n\n \n \n \n \n )}\n \n \n )\n}\n","import React from 'react'\nimport { MemoryRouter, Route, Routes } from 'react-router'\nimport LiveTryOn from '@pages/Configurators/LiveTryOn'\nimport PictureMode from '@pages/PictureMode'\nimport VideoMode from '@pages/VideoMode'\nimport PrivacyPolicyPage from '@pages/PrivacyPolicy'\nimport {\n liveTryOn,\n pictureMode,\n videoMode,\n uploadInstructions,\n pictureModeView,\n takePicture,\n videoModeView,\n privacyPolicy,\n availableMode,\n videoScan,\n pictureVideoModeError,\n takePictureInstructions,\n} from '@utils/routes'\nimport { UploadInstructions } from '@components/PictureMode/UploadPicture'\nimport { PictureModeEntryPage } from '@components/PictureMode'\nimport { TakePicture } from '@components/PictureMode/TakePicture'\nimport { PictureModeView } from '@pages/Configurators/PictureModeView'\nimport { VideoModeView } from '@pages/Configurators/VideoModeView'\nimport { VideoFaceScan } from '@components/VideoMode/VideoFaceScan'\nimport { AvailableMode } from '@components/AvailableMode'\nimport ProtectedRoute from '@components/ProtectedRoute'\nimport { VideoScanInstructions } from '@components/VideoMode/VideoScanInstructions'\nimport { PictureVideoError } from '@components/PictureVideoError'\nimport { TakePictureInstructions } from '@components/PictureMode/TakePicture/TakePictureInstructions'\nimport { VMProvider } from '@providers/VmProvider'\nimport { PictureModeProvider, VideoModeProvider } from '@providers/VtoProvider'\n\nexport const ConfiguratorRoutes: React.FC = () => {\n return (\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 }\n >\n } />\n } />\n } />}\n />\n } />\n \n \n \n )\n}\n","import { I18nextProvider } from 'react-i18next'\nimport { Provider, useDispatch } from 'react-redux'\nimport { ThemeProvider } from 'styled-components'\n\nimport { useI18nInstance } from 'src/i18n'\nimport { GlobalStyles, theme } from 'src/theme'\nimport { ConfiguratorRoutes } from 'src/routes/ConfiguratorRoutes'\n\nimport { ConfigContext, useConfig } from '@providers/configProvider'\nimport { store } from '@store/index'\nimport { useInitAnimationApp } from '@hooks/useAnimationApp'\nimport { Config } from '@customTypes/config'\nimport { ErrorBoundary } from '@components/ErrorBoundary'\nimport { useEffect } from 'react'\nimport { setLensList } from '@store/actions/configurator'\nimport { validateLensList } from '@utils/setLens'\nimport { setVmProducts } from '@store/actions/products'\nimport { resetUiState } from '@store/actions/ui'\n\nconst AnimationAppActions: React.FC = () => {\n useInitAnimationApp()\n return null\n}\n\nconst App: React.FC = () => {\n const i18nInstance = useI18nInstance()\n const { lensesList } = useConfig()\n const dispatch = useDispatch()\n\n useEffect(() => {\n if (lensesList) {\n if (validateLensList(lensesList)) {\n dispatch(setLensList(lensesList))\n } else {\n // eslint-disable-next-line no-console\n console.error('Invalid lensList data')\n }\n }\n }, [dispatch, lensesList])\n\n useEffect(() => {\n // reset state\n dispatch(setVmProducts([]))\n dispatch(resetUiState())\n }, [dispatch])\n\n return (\n \n \n \n \n \n )\n}\n\nconst Widget: React.FC<{ config: Config }> = ({ config }) => {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default Widget\n","import { loadUploadImage } from '../../components/upload-image/UploadImageLoader';\nimport { MountError, NotInitializedError } from '../../errors/errors';\nimport { setDefaultUploadImageOptions } from '../../helpers/ParameterHelper';\nimport { UploadImageParameters } from '../../interfaces/CaptureParameters';\nimport { hasInitialized } from './HasInitialized';\n\nexport const uploadImage = (\n uploadParams: UploadImageParameters\n): Promise => {\n if (!hasInitialized()) {\n return Promise.reject(new NotInitializedError());\n }\n\n const validatedOptions = setDefaultUploadImageOptions(uploadParams.options);\n return new Promise((resolve, reject) => {\n const container = document.getElementById(uploadParams.target);\n if (!!container) {\n loadUploadImage(container, validatedOptions, () => { resolve(undefined); });\n } else {\n reject(new MountError(uploadParams.target));\n }\n });\n};\n","import ReactDOM from 'react-dom';\nimport { UnmountComponentError } from '../../errors/errors';\nimport { AdobeHelper } from '../../helpers/AdobeHelper';\nimport { AnalyticsHelper } from '../../helpers/AnalyticsHelper';\nimport { AppActions } from '../../reducers/appReducer';\nimport { createLogger, sendAppViewSession } from '../../remotelog/VmLogger';\nimport { VmStore } from '../VmCore';\n\nconst logger = createLogger('CloseMirror');\n\nconst resetLoadingStatus = () => {\n VmStore.dispatch(AppActions.setLoadingStatus({ type: 'WEBCAM_ACCESS', status: false }));\n VmStore.dispatch(AppActions.setLoadingStatus({ type: 'RENDERING', status: false }));\n VmStore.dispatch(AppActions.setLoadingStatus({ type: 'POSETRACKER', status: false }));\n};\n\n// we return a promise because it's easy to keep this backwards compatibility here\n// but sneaky on client code\nconst closeMirror = (target: string): Promise => {\n try {\n // reset all loading statuses, this will display the loading screen again on a new VM instance\n resetLoadingStatus();\n AnalyticsHelper.onCloseMirror();\n logger.debug('closing mirror for target div {}', target);\n const container = document.getElementById(target);\n\n if (ReactDOM.unmountComponentAtNode(container)) {\n logger.debug('closed mirror for target div {}', target);\n sendAppViewSession.close(target);\n\n } else {\n logger.debug('closing mirror for target div {} failed', target);\n sendAppViewSession.closeError(target);\n const unmountComponentError = new UnmountComponentError(target);\n AdobeHelper.sendError(unmountComponentError);\n return Promise.reject(unmountComponentError);\n }\n return Promise.resolve();\n } catch (e) {\n logger.debug('closing mirror for target div {} failed: {}', target, e.message);\n const unmountComponentError = new UnmountComponentError(target);\n try {\n AdobeHelper.sendError(unmountComponentError);\n } catch (e) {\n return Promise.reject(e);\n }\n return Promise.reject(unmountComponentError);\n }\n};\n\nexport {\n closeMirror\n};\n","export const isBrowserSupported: () => Promise = () => {\n return import('../../helpers/SupportedFeaturesHelper')\n .then(({ SupportedFeaturesHelper }) => {\n return SupportedFeaturesHelper.getSupportedFeatures();\n })\n .then((supportedFeatures): Promise => {\n return Promise.resolve(\n supportedFeatures.wasmSupport &&\n supportedFeatures.webcamAccess &&\n supportedFeatures.webcamAvailable &&\n supportedFeatures.webglRendering\n );\n });\n};\n","import { EventBus } from '@luxottica/vm-eventbus';\nimport { Events } from '../../constants/Events';\nimport { NotInitializedError } from '../../errors/errors';\nimport { createLogger } from '../../remotelog/VmLogger';\nimport { VmWebCam } from '../mirror/VmWebCam';\nimport { vmIsInitialized } from '../VmCore';\n\nconst logger = createLogger('Resume');\n\nconst resume = (): Promise => {\n if (!vmIsInitialized()) {\n return Promise.reject(new NotInitializedError());\n } else {\n return VmWebCam.getInstance().play().then(() => {\n EventBus.publish(Events.RESUME, {});\n }).catch((e) => {\n logger.error(e);\n });\n }\n};\n\nexport {\n resume\n};\n","import { PoseResponse } from '@luxottica/vm-posetracker-faceweb';\nimport { videoBgOptions, PluginPayload, VmEffect } from '../Effects';\nimport { BackgroudOptions, BackgroundData } from '../Effects';\nimport { fetchEndpoint } from '../Effects';\n\nexport class VideoBg implements VmEffect {\n private supportCanvas: HTMLCanvasElement;\n private options: videoBgOptions;\n public orderOfExecution: number;\n private supportContext: CanvasRenderingContext2D;\n private loadedVideo: HTMLVideoElement;\n private dataOptions: BackgroudOptions;\n private playing = false;\n \n constructor(orderOfExecution: number) {\n this.orderOfExecution = orderOfExecution;\n }\n\n public static get requirements() {\n return {\n prominentSubjectSegmenter: true\n };\n } \n\n initialize(payload: PluginPayload) {\n\n this.options = payload.options as videoBgOptions;\n const endpoint = fetchEndpoint('video-background',this.options.identifier);\n\n fetch(endpoint)\n .then((response) => {\n if (!response.ok) {\n throw new Error('Network response was not ok');\n }\n return response.json() as Promise;\n })\n .then((jsonData) => {\n this.dataOptions = jsonData.options;\n this.supportCanvas = document.createElement('canvas');\n this.supportContext = this.supportCanvas.getContext('2d');\n const ctx = this.supportContext;\n this.loadedVideo = document.createElement('video');\n const video = this.loadedVideo;\n const source = document.createElement('source');\n source.src = jsonData.options.layerUrlA.toString();\n source.type = 'video/mp4';\n video.appendChild(source);\n video.crossOrigin = '*';\n video.loop = true;\n video.playsInline = true;\n video.onloadedmetadata = () => {\n this.supportCanvas.width = video.videoWidth;\n this.supportCanvas.height = video.videoHeight;\n };\n \n video.addEventListener('play', () => {\n const step = () => {\n if (video && video.readyState === 4) {\n this.playing = true;\n ctx.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\n }\n \n requestAnimationFrame(step);\n };\n \n requestAnimationFrame(step);\n }); \n \n if (video) {\n video.play();\n } \n })\n .catch((error) => {\n console.error('There was a problem fetching the JSON file:', error);\n });\n\n\n \n //document.body.appendChild(video)\n return Promise.resolve();\n }\n\n finalize(context?: CanvasRenderingContext2D) {\n return context;\n }\n\n applyFilter(context?: CanvasRenderingContext2D, pose?: PoseResponse): Promise {\n \n const mask = pose?.result.segmentationMask;\n if (mask === undefined || !this.supportContext || !this.playing) {\n return Promise.resolve(context);\n }\n\n \n const w = context.canvas.width;\n const h = context.canvas.height;\n \n \n context.globalCompositeOperation = 'destination-in';\n context.drawImage(\n mask, \n 0,\n 0,\n mask.width, \n mask.height, \n 0, \n 0, \n mask.width, \n mask.height);\n\n context.globalCompositeOperation = 'destination-over';\n const imageCanvas = context.canvas;\n const finalCanvas = document.getElementById('mirror-canvas-output') as HTMLCanvasElement;\n const canvasRatio = finalCanvas.height / finalCanvas.width;\n const scale = finalCanvas.height / imageCanvas.height;\n const offset = (( imageCanvas.width * scale) - finalCanvas.width) / 2;\n context.scale(-1, 1);\n\n if (!this.loadedVideo) {\n return Promise.resolve(context);\n }\n\n if (this.dataOptions.fit == 'fill') {\n context.drawImage(\n this.supportContext.canvas,\n 0,\n 0,\n this.supportContext.canvas.width,\n this.supportContext.canvas.height,\n - w + this.dataOptions.position.x + (offset / scale),\n this.dataOptions.position.y,\n finalCanvas.width / scale,\n h,\n );\n } else if (this.dataOptions.fit == 'cover') {\n\n const newW = canvasRatio < 1 ? w : this.supportContext.canvas.width * h / this.supportContext.canvas.height;\n const newH = canvasRatio > 1 ? h : this.supportContext.canvas.height * (newW / this.supportContext.canvas.width);\n context.drawImage(\n this.supportContext.canvas,\n 0,\n 0,\n this.supportContext.canvas.width,\n this.supportContext.canvas.height,\n canvasRatio < 1 ? -w : - w + (w-newW)/2 + this.dataOptions.position.x,\n canvasRatio > 1 ? 0 : (h-newH)/2 + this.dataOptions.position.y,\n newW,\n newH,\n );\n }\n context.scale(-1, 1);\n \n /*context.drawImage(\n this.supportContext.canvas, \n 0, \n 0, \n this.loadedVideo.videoWidth, \n this.loadedVideo.videoHeight, \n this.dataOptions.position.x,\n this.dataOptions.position.y, \n w, \n h\n );*/\n return Promise.resolve(context);\n }\n}"],"names":["VMWidget","React","VmWidgetUi","props","Suspense","fallback","config","unmount","store","setVtoPage","FrameAdvisorCapture","VirtualMirror","VtoCore","CONTAINER_ID_PICTURE_MODE","CONTAINER_ID_VIDEO_MODE","CONTAINER_ID_LIVE_TRY_ON","getState","vtoPage","ui","closeMirror","target","Promise","resolve","reject","closeRender","divId","close","closeVtoCapture","closeUploadImage","dispatch","Widget","Ui","onLensChange","useConfig","useVM","colors","currentColor","colorsCatalog","setIsConfigurator","setCurrentColor","setColorsCatalog","setCurrentProduct","selectedLens","useSelector","s","configurator","lens","lensesList","selectedProduct","currentProduct","colorsCatalogRef","useRefValue","useDispatch","useEffect","findColor","lensIdentifier","colorCode","color","current","find","x","isValid","length","filteredLens","filter","i","clen","lenses","map","lense","c","lensName","name","colorName","swatchImage","setLens","useConfigurator","fromStore","isVMInitialized","isReady","vmProducts","isProductLoaded","setColors","isNoUpc","showColors","isIpadView","isMobileView","t","useTranslation","Menu","hasMirrorRendered","InitColorSwatches","product","ColorsCatalog","selectedColor","onChangeColor","FooterActions","showScreenshotIcon","Drawer","className","ScreenshotPreview","ErrorModal","isModalVisible","message","PictureModeView","onRefresh","VideoModeView","ConfiguratorRoutes","path","availableMode","element","AvailableMode","privacyPolicy","PrivacyPolicy","liveTryOn","ProtectedRoute","VMProvider","pictureMode","PictureMode","uploadInstructions","takePicture","TakePicture","takePictureInstructions","TakePictureInstructions","pictureModeView","PictureModeProvider","pictureVideoModeError","PictureVideoError","videoMode","VideoMode","VideoScanInstructions","videoScan","VideoFaceScan","videoModeView","VideoModeProvider","AnimationAppActions","useInitAnimationApp","App","i18nInstance","useI18nInstance","validateLensList","setLensList","console","error","setVmProducts","resetUiState","I18nextProvider","i18n","theme","ErrorBoundary","value","uploadImage","uploadParams","hasInitialized","NotInitializedError","validatedOptions","setDefaultUploadImageOptions","options","container","document","getElementById","loadUploadImage","undefined","MountError","logger","createLogger","VmStore","AppActions","type","status","AnalyticsHelper","debug","ReactDOM","sendAppViewSession","unmountComponentError","UnmountComponentError","AdobeHelper","e","isBrowserSupported","then","_ref","SupportedFeaturesHelper","getSupportedFeatures","supportedFeatures","wasmSupport","webcamAccess","webcamAvailable","webglRendering","resume","vmIsInitialized","VmWebCam","play","EventBus","Events","catch","VideoBg","orderOfExecution","_classCallCheck","_defineProperty","this","_createClass","key","payload","endpoint","fetchEndpoint","identifier","fetch","response","ok","Error","json","jsonData","_this","dataOptions","supportCanvas","createElement","supportContext","getContext","ctx","loadedVideo","video","source","src","layerUrlA","toString","appendChild","crossOrigin","loop","playsInline","onloadedmetadata","width","videoWidth","height","videoHeight","addEventListener","requestAnimationFrame","step","readyState","playing","drawImage","context","pose","mask","result","segmentationMask","w","canvas","h","globalCompositeOperation","imageCanvas","finalCanvas","canvasRatio","scale","offset","fit","position","y","newW","newH","get","prominentSubjectSegmenter"],"sourceRoot":""}