{"version":3,"file":"src_exported_product-full_ProductFull_tsx.4340253912bfa7e95a47.bundle.js","mappings":"20CA8CA,IAAMA,EAAN,cAA0B,YAKtB,WAAAC,CAAYC,GACRC,MAAMD,GACN,MAAM,eACFE,EACAC,QACIC,8BAA8B,YAAEC,KAEpCL,EAEJM,KAAKC,iBAAmBF,EACxBC,KAAKJ,eAAiBA,EAEtBI,KAAKJ,eAAeM,WAAWR,GAC/BM,KAAKJ,eAAeO,WACxB,CAEa,iBAAAC,GAAoB,O,EAAA,K,EAAA,K,EAAA,YAC5B,sBAAiC,gBAAiBC,YAAYC,aACzDN,KAAKJ,eAAeW,QAC9B,E,yMAAA,CAEO,MAAAC,GACH,MAAM,SAAEC,GAAaT,KAAKN,MAAME,eAChC,IAAKa,EACD,OAAO,KAEX,MAAM,QAAEC,GAAYV,KAAKJ,eAAee,KAClCC,EAAwB,KAAW,OAAQ,eAAgBZ,KAAKN,MAAMmB,WAAY,CACpF,iBAAkBH,EAAQI,iBAC1B,eAAgBJ,EAAQI,kBAAoBJ,EAAQK,QACpD,kBAAmBL,EAAQM,kBAC3B,gBAAiBN,EAAQM,mBAAqBN,EAAQO,WAGpDC,G,qHAAyC,IACxClB,KAAKJ,eAAee,M,EADoB,CAE3CQ,aAAcnB,KAAKN,MAAMyB,aACzBC,uBAAwBpB,KAAKJ,eAAewB,uBAC5CC,oBAAqBrB,KAAKJ,eAAeyB,oBACzCC,mBAAoBtB,KAAKJ,eAAe0B,mBACxCC,oBAAqBvB,KAAKJ,eAAe2B,oBACzCC,kBAAmBxB,KAAKJ,eAAe4B,kBACvCC,kBAAmBzB,KAAKJ,eAAe8B,cACvCC,iBAAkB3B,KAAKJ,eAAegC,aACtCC,6BAA8B7B,KAAKJ,eAAeiC,6BAClDC,YAAa9B,KAAKJ,eAAekC,YACjCC,uBAAwB/B,KAAKJ,eAAemC,uBAC5CC,sBAAuBhC,KAAKJ,eAAeoC,sBAC3CC,sBAAuBjC,KAAKJ,eAAeqC,sBAC3CC,uBAAwBlC,KAAKJ,eAAesC,uBAC5CC,kBAAmBnC,KAAKJ,eAAeuC,kBACvCC,cAAe,iBACfC,gBAAiBrC,KAAKJ,eAAeyC,iB,mBAGzC,OACI,gBAAC,KAAkB,CAACxB,UAAWD,GAC1B0B,OAAOC,KAAKvC,KAAKC,kBAAkBuC,KAAKC,GACrC,gBAAC,OAAI5B,WAAW,OAAQ,GAAG4B,aAAwBC,IAAKD,GACpD,gBAAC,KACG,eAAc,GAAGA,YACjBE,YAAa3C,KAAKC,iBAAiBwC,GACnCG,YAAa,sBACbC,cAAc,QACV3B,QAO5B,GA5EE1B,E,iIAAN,GAvBC,UACA,OAAU,KAAoB,QAAgB,oBAC9C,OAAe,CACZ,+BACA,wBACA,wBACA,YACA,wBACA,WACA,aACA,YACA,qBACA,yBACA,aACA,uBACA,wBACA,4BACA,wBACA,0BACA,cAEH,OAAU,MACX,YACMA,GA+ENA,EAAYsD,YAAc,cAE1B,S","sources":["webpack://elc-service-prodcat/./src/exported/product-full/ProductFull.tsx"],"sourcesContent":["import * as React from 'react';\nimport { observer } from 'mobx-react';\nimport {\n translate,\n ITranslationsCollection,\n addContext,\n addConfig,\n configConsumer\n} from '@estee/elc-service';\nimport classnames from 'classnames';\nimport { OrderRender } from '@estee/elc-layouts';\nimport { root } from '@estee/elc-universal-utils';\nimport { ComponentTypes } from '~constants/ComponentTypes';\nimport { ProductFullViewController } from '~controllers/ProductFullViewController';\nimport { getProductFullViewRegistry } from '~utils/orderableUtils/getViewRegistry';\nimport { classes } from '~utils/Classes';\nimport { productFullConfigs } from '~utils/orderableUtils/configs';\nimport { productFullTranslations } from '~utils/orderableUtils/translations';\nimport { mergeConfigsFor } from '~utils/ConfigUtils';\nimport { IProductFull } from '~interfaces/IProductFull';\nimport { IOrderConfigCollection, IProductFullFeatureData } from '~interfaces/IOrderableComponents';\nimport { ProductFullWrapper } from './ProductFullStyles';\n\n@addContext()\n@addConfig(productFullConfigs, mergeConfigsFor(ComponentTypes.PRODUCT_FULL))\n@configConsumer([\n 'componentElementsOrderConfig',\n 'contentServiceNodeIds',\n 'imageCarouselSettings',\n 'productId',\n 'freeShippingAndReturn',\n 'features',\n 'vtoFeature',\n 'engraving',\n 'productDescription',\n 'productInfoPopupConfig',\n 'sizePicker',\n 'hideSizeWhenSingular',\n 'showEmptyRatingsStars',\n 'showPriceOnStickyAddToBag',\n 'contentServiceNodeIds',\n 'hideProductPricePerUnit',\n 'features'\n])\n@translate(productFullTranslations)\n@observer\nclass ProductFull extends React.Component {\n public static displayName: string;\n private productFullOrder: IOrderConfigCollection;\n private viewController: ProductFullViewController;\n\n constructor(props: IProductFull) {\n super(props);\n const {\n viewController,\n config: {\n componentElementsOrderConfig: { productFull }\n }\n } = props;\n\n this.productFullOrder = productFull;\n this.viewController = viewController;\n\n this.viewController.initialize(props);\n this.viewController.preLoaded();\n }\n\n public async componentDidMount() {\n (root as Window).mPulse.sendTimer('PRODFullMount', performance.now());\n await this.viewController.loaded();\n }\n\n public render() {\n const { isLoaded } = this.props.viewController;\n if (!isLoaded) {\n return null;\n }\n const { product } = this.viewController.data;\n const productFullClassNames = classnames(classes('product-full', this.props.className), {\n 'multiple-sizes': product.hasMultipleSizes,\n 'single-size': !product.hasMultipleSizes && product.isSized,\n 'multiple-shades': product.hasMultipleShades,\n 'single-shade': !product.hasMultipleShades && product.isShaded\n });\n\n const featureConfig: IProductFullFeatureData = {\n ...this.viewController.data,\n translations: this.props.translations as ITranslationsCollection,\n setAutoReplenishOption: this.viewController.setAutoReplenishOption,\n handleFavoriteClick: this.viewController.handleFavoriteClick,\n getCustomSizeMedia: this.viewController.getCustomSizeMedia,\n togglePerfectShades: this.viewController.togglePerfectShades,\n navigateToProduct: this.viewController.navigateToProduct,\n handleShadeSelect: this.viewController.onShadeSelect,\n handleSizeSelect: this.viewController.onSizeSelect,\n emitSocialShareIconTriggered: this.viewController.emitSocialShareIconTriggered,\n selectShade: this.viewController.selectShade,\n handleLiveChatCTAClick: this.viewController.handleLiveChatCTAClick,\n setShowStickyAddToBag: this.viewController.setShowStickyAddToBag,\n productUpdateQuantity: this.viewController.productUpdateQuantity,\n toggleProductInfoPopup: this.viewController.toggleProductInfoPopup,\n toggleDescription: this.viewController.toggleDescription,\n componentType: ComponentTypes.PRODUCT_FULL,\n setCurrentTabId: this.viewController.setCurrentTabId\n };\n\n return (\n \n {Object.keys(this.productFullOrder).map((sectionName: string) => (\n
\n (\n featureConfig\n )}\n />\n
\n ))}\n
\n );\n }\n}\n\nProductFull.displayName = 'ProductFull';\n\nexport default ProductFull;\n"],"names":["ProductFull","constructor","props","super","viewController","config","componentElementsOrderConfig","productFull","this","productFullOrder","initialize","preLoaded","componentDidMount","performance","now","loaded","render","isLoaded","product","data","productFullClassNames","className","hasMultipleSizes","isSized","hasMultipleShades","isShaded","featureConfig","translations","setAutoReplenishOption","handleFavoriteClick","getCustomSizeMedia","togglePerfectShades","navigateToProduct","handleShadeSelect","onShadeSelect","handleSizeSelect","onSizeSelect","emitSocialShareIconTriggered","selectShade","handleLiveChatCTAClick","setShowStickyAddToBag","productUpdateQuantity","toggleProductInfoPopup","toggleDescription","componentType","setCurrentTabId","Object","keys","map","sectionName","key","orderConfig","serviceName","viewRegistry","displayName"],"sourceRoot":""}