{"version":3,"sources":["config/Configs.js","components/ProductList/index.js","config/VPMap.js","components/Player/module.js","components/Jacket/AttrButtons.js","pages/Product.js","pages/Shoe/index.js","App.js","serviceWorker.js","index.js"],"names":["ProductList","type","imageURL","threekit","name","brand","materials","colors","shoe","scene","config","handbag","external","link","productIds","i","push","Products","ReactGA","initialize","set","dimension1","pageview","window","location","pathname","search","id","grid","xs","sm","md","lg","xl","xxl","dataSource","renderItem","item","to","Item","cover","style","maxHeight","width","isMobile","margin","src","Meta","title","description","href","target","React","Component","VPMap","getPlayerApi","playerClass","api","claraplayer","playerEl","AttrButtons","props","className","mat_id","Group","defaultValue","map","val","Button","key","value","onClick","handleJacketChange","color_id","Search","Input","TabPane","Tabs","Product","state","suit","int","images","original","open","thumbnail","personal","roll","handleClick","e","setState","setImages","handleAttrChange","configuration","setConfiguration","Band","console","log","this","match","params","productId","scrollTo","sceneIO","fetchAndUse","player","hideTool","commands","setCommandOptions","turnTable","on","product","border","onBack","assign","height","marginLeft","marginRight","background","defaultActiveKey","tab","placeholder","enterButton","onSearch","Engraving","marginBottom","items","showPlayButton","Shoe","threekitPlayer","authToken","el","document","getElementById","stageId","assetId","showAR","showConfigurator","initialConfiguration","then","a","getConfigurator","configurator","Header","Layout","Content","Footer","App","padding","exact","path","component","textAlign","Boolean","hostname","ReactDOM","render","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.e0f10201.chunk.js","sourcesContent":["const ProductList = {\n \"1\": {\n type: \"2D\",\n imageURL:\n \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Black-Surfside-roll.jpg\",\n threekit: \"\",\n name: \"Suit Configurator\",\n brand: \"Virtual Photographer\",\n },\n \"2\": {\n type: \"3D-clara\",\n imageURL: \"https://i.imgur.com/LXj5Bd7.png\",\n threekit: \"bb524b02-0a62-45a4-a2f5-c2148819ac9b\",\n name: \"Watch Configurator\",\n brand: \"3D Configurator\",\n materials: [\"Silver\", \"Rubber\", \"Silver Gold\", \"Gold\"],\n },\n \"3\": {\n type: \"3D-clara\",\n imageURL: \"https://i.imgur.com/hsdXSnN.png\",\n threekit: \"fce0731d-c167-4433-a2d8-cb16c77124cc\",\n name: \"Jacket Configurator\",\n brand: \"3D Configurator\",\n materials: [\"Suede\", \"Lamb Skin\", \"Python\", \"Hair On Calf\"],\n colors: [\"Jet Black\", \"French Roast\", \"Toasted Coconut\", \"Blanc de Blanc\"],\n },\n shoe: {\n type: \"3D-threekit\",\n imageURL: \"https://solutions-engineering.s3.amazonaws.com/quickdemo/fashion/shoe.png\",\n threekit: \"ca823b8b-13cf-498c-80e2-017bf32086ec\",\n scene: \"8dd4cc80-6fb0-414a-abf8-1a86df201c0d\",\n name: \"Shoe Configurator\",\n brand: \"Build your own running shoe\",\n config: {\n \n },\n \n },\n handbag: {\n type: \"3D-threekit\",\n imageURL: \"https://solutions-engineering.s3.amazonaws.com/quickdemo/fashion/purse.png\",\n threekit: \"ca823b8b-13cf-498c-80e2-017bf32086ec\",\n scene: \"8dd4cc80-6fb0-414a-abf8-1a86df201c0d\",\n name: \"Handbag\",\n brand: \"Personalize the perfect handbag\",\n config: {\n \n },\n external: true,\n link: \"https://fashion.demo.threekit.com/demo/1\"\n \n },\n};\nexport { ProductList };\n","import React from \"react\";\nimport \"./Product.css\";\nimport \"antd/dist/antd.css\";\nimport { Card, List } from \"antd\";\nimport { isMobile } from \"react-device-detect\";\nimport { Link } from \"react-router-dom\";\nimport { ProductList } from \"../../config/Configs.js\";\nimport ReactGA from \"react-ga\";\n\nconst productIds = [];\nfor (var i in ProductList) {\n productIds.push(i);\n}\n\nclass Products extends React.Component {\n render() {\n ReactGA.initialize(\"UA-63905846-9\");\n ReactGA.set({ dimension1: \"Fashion\" });\n ReactGA.pageview(\n window.location.pathname +\n window.location.search +\n \"fashion.threeit.com:landing\"\n );\n return (\n
\n \n ProductList[item].external != true ? (\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\nexport default Products;\n","const VPMap = {\n \"Black-FloralNavy\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Black-FloralNavy-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Black-FloralNavy-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Black-FloralNavy-roll.jpg\"\n },\n \"Black-FloralPurple\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Black-FloralPurple-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Black-FloralPurple-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Black-FloralPurple-roll.jpg\"\n },\n \"Black-NavyWhiteDot\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Black-NavyWhiteDot-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Black-NavyWhiteDot-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Black-NavyWhiteDot-roll.jpg\"\n },\n \"Black-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Black-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Black-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Black-Surfside-roll.jpg\"\n },\n \"Black-Taupe\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Black-Taupe-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Black-Taupe-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Black-Taupe.jpg\"\n },\n \"Black-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Black-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Black-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Black-Surfside-roll.jpg\"\n },\n \"BrightBlue-FloralNavy\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/BrightBlue-FloralNavy-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/BrightBlue-FloralNavy-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/BrightBlue-FloralNavy-roll.jpg\"\n },\n \"BrightBlue-FloralPurple\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/BrightBlue-FloralPurple-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/BrightBlue-FloralPurple-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/BrightBlue-FloralPurple-roll.jpg\"\n },\n \"BrightBlue-NavyWhiteDot\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/BrightBlue-NavyWhiteDot-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/BrightBlue-NavyWhiteDot-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/BrightBlue-NavyWhiteDot-roll.jpg\"\n },\n \"BrightBlue-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/BrightBlue-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/BrightBlue-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/BrightBlue-Surfside-roll.jpg\"\n },\n \"BrightBlue-Taupe\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/BrightBlue-Taupe-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/BrightBlue-Taupe-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/BrightBlue-Taupe-roll.jpg\"\n },\n \"BrightBlue-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/BrightBlue-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/BrightBlue-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/BrightBlue-Surfside-roll.jpg\"\n },\n \"GreyPlaid-FloralNavy\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/GreyPlaid-FloralNavy-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/GreyPlaid-FloralNavy-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/GreyPlaid-FloralNavy-roll.jpg\"\n },\n \"GreyPlaid-FloralPurple\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/GreyPlaid-FloralPurple-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/GreyPlaid-FloralPurple-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/GreyPlaid-FloralPurple-roll.jpg\"\n },\n \"GreyPlaid-NavyWhiteDot\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/GreyPlaid-NavyWhiteDot-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/GreyPlaid-NavyWhiteDot-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/GreyPlaid-NavyWhiteDot-roll.jpg\"\n },\n \"GreyPlaid-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/GreyPlaid-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/GreyPlaid-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/GreyPlaid-Surfside-roll.jpg\"\n },\n \"GreyPlaid-Taupe\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/GreyPlaid-Taupe-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/GreyPlaid-Taupe-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/GreyPlaid-Taupe-roll.jpg\"\n },\n \"GreyPlaid-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/GreyPlaid-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/GreyPlaid-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/GreyPlaid-Surfside-roll.jpg\"\n },\n \"Sharkskin-FloralNavy\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Sharkskin-FloralNavy-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Sharkskin-FloralNavy-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Sharkskin-FloralNavy-roll.jpg\"\n },\n \"Sharkskin-FloralPurple\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Sharkskin-FloralPurple-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Sharkskin-FloralPurple-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Sharkskin-FloralPurple-roll.jpg\"\n },\n \"Sharkskin-NavyWhiteDot\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Sharkskin-NavyWhiteDot-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Sharkskin-NavyWhiteDot-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Sharkskin-NavyWhiteDot-roll.jpg\"\n },\n \"Sharkskin-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Sharkskin-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Sharkskin-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Sharkskin-Surfside-roll.jpg\"\n },\n \"Sharkskin-Taupe\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Sharkskin-Taupe-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Sharkskin-Taupe-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Sharkskin-Taupe-roll.jpg\"\n },\n \"Sharkskin-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Sharkskin-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Sharkskin-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Sharkskin-Surfside-roll.jpg\"\n },\n \"Wine-FloralNavy\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Wine-FloralNavy-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Wine-FloralNavy-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Wine-FloralNavy-roll.jpg\"\n },\n \"Wine-FloralPurple\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Wine-FloralPurple-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Wine-FloralPurple-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Wine-FloralPurple-roll.jpg\"\n },\n \"Wine-NavyWhiteDot\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Wine-NavyWhiteDot-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Wine-NavyWhiteDot-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Wine-NavyWhiteDot-roll.jpg\"\n },\n \"Wine-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Wine-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Wine-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Wine-Surfside-roll.jpg\"\n },\n \"Wine-Taupe\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Wine-Taupe-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Wine-Taupe-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Wine-Taupe-roll.jpg\"\n },\n \"Wine-Surfside\": {\n \"open\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/open-vest/Wine-Surfside-open.jpg\",\n \"personal\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/personal-vest/Wine-Surfside-personal.jpg\",\n \"roll\": \"https://solutions-engineering.s3.amazonaws.com/luxury-goods-quickdemo/rolled-sleeve/Wine-Surfside-roll.jpg\"\n }\n};\nexport {VPMap};","export const getPlayerApi = playerClass => {\n // const playerEl = document.createElement(\"div\");\n // playerEl.style.cssText = 'height:400px;'\n // playerEl.className = \"player-el\";\n // document.getElementById(\"root\").appendChild(playerEl);\n \n // Assign API to window for console debugging\n const api = window.claraplayer(playerClass);\n window.api = api;\n \n return { playerEl: playerClass, api: api };\n };\n \n export default { getPlayerApi };","import React from \"react\";\nimport { Radio } from \"antd\";\n\nexport const AttrButtons = props => (\n
\n {props.mat_id ? (\n
\n {props.mat_id}\n
\n ) : (\n

\n )}\n\n
\n \n {props.materials.map(val => (\n \n {val}\n \n ))}\n \n
\n {props.colors ? (\n \n {props.color_id ? (\n
\n {props.color_id}\n
\n ) : (\n

\n )}\n {props.colors.map(val => (\n \n {val}\n \n ))}\n
\n ) : (\n

\n )}\n
\n);\n","import React from \"react\";\n// import './Product.css';\nimport \"antd/dist/antd.css\";\nimport { PageHeader, Radio, Input, Menu, Dropdown, Button, Tabs } from \"antd\";\nimport { ProductList } from \"../config/Configs.js\";\nimport { VPMap } from \"../config/VPMap\";\nimport ImageGallery from \"react-image-gallery\";\nimport { getPlayerApi } from \"../components/Player/module.js\";\nimport \"../components/Gallery/style.scss\";\nimport \"./Products.css\";\nimport { AttrButtons } from \"../components/Jacket\";\n\nimport ReactGA from \"react-ga\";\n\nconst { Search } = Input;\nconst { TabPane } = Tabs;\n\nclass Product extends React.Component {\n state = {\n suit: \"Black\",\n int: \"FloralNavy\",\n images: [\n {\n original: VPMap[\"Black\" + \"-\" + \"FloralNavy\"].open,\n thumbnail: VPMap[\"Black\" + \"-\" + \"FloralNavy\"].open,\n },\n {\n original: VPMap[\"Black\" + \"-\" + \"FloralNavy\"].personal,\n thumbnail: VPMap[\"Black\" + \"-\" + \"FloralNavy\"].personal,\n },\n {\n original: VPMap[\"Black\" + \"-\" + \"FloralNavy\"].roll,\n thumbnail: VPMap[\"Black\" + \"-\" + \"FloralNavy\"].roll,\n },\n ],\n };\n\n componentDidMount() {\n ReactGA.pageview(\n window.location.pathname +\n window.location.search +\n \"fashion.threeit.com:\" +\n ProductList[this.props.match.params.productId].name\n );\n\n window.scrollTo(0, 0);\n\n if (\n ProductList[this.props.match.params.productId].name ==\n \"Watch Configurator\"\n ) {\n const { api, playerEl } = getPlayerApi(\"clara-embed\");\n api.sceneIO.fetchAndUse(\n ProductList[this.props.match.params.productId].threekit\n );\n [\"fullscreen\", \"home\", \"vrSettings\", \"orbit\", \"pan\", \"zoom\"].map(\n api.player.hideTool\n );\n } else if (\n ProductList[this.props.match.params.productId].name ==\n \"Jacket Configurator\"\n ) {\n const { api, playerEl } = getPlayerApi(\"clara-embed\");\n api.sceneIO.fetchAndUse(\n ProductList[this.props.match.params.productId].threekit\n );\n api.commands.setCommandOptions(\"orbit\", {\n turnTable: true,\n });\n [\"fullscreen\", \"home\", \"vrSettings\", \"orbit\", \"pan\", \"zoom\"].map(\n api.player.hideTool\n );\n\n api.on(\"loaded\", () => {\n api.configuration.setConfiguration({\n \"Sides Color\": \"Jet Black\",\n \"Ribbing Color\": \"Jet Black\",\n \"Sleeves Color\": \"Jet Black\",\n \"Collar Color\": \"Jet Black\",\n \"Body Color\": \"Jet Black\",\n \"Zipper Color\": \"Black\",\n });\n });\n }\n }\n\n setImages() {\n this.setState({\n images: [\n {\n original: VPMap[this.state.suit + \"-\" + this.state.int].open,\n thumbnail: VPMap[this.state.suit + \"-\" + this.state.int].open,\n },\n {\n original: VPMap[this.state.suit + \"-\" + this.state.int].personal,\n thumbnail: VPMap[this.state.suit + \"-\" + this.state.int].personal,\n },\n {\n original: VPMap[this.state.suit + \"-\" + this.state.int].roll,\n thumbnail: VPMap[this.state.suit + \"-\" + this.state.int].roll,\n },\n ],\n });\n }\n\n handleClick = (e) => {\n this.setState(\n {\n [e.target.id]: e.target.value,\n },\n () => {\n this.setImages();\n }\n );\n };\n\n handleAttrChange = (e) => {\n window.api.configuration.setConfiguration({ Band: e.target.value });\n };\n\n handleJacketChange = (e) => {\n window.api.configuration.setConfiguration({\n [e.target.id]: e.target.value,\n });\n console.log([e.target.id] + e.target.value);\n };\n\n render() {\n ReactGA.initialize(\"UA-63905846-9\");\n ReactGA.set({ dimension1: \"Fashion\" });\n\n const productId = this.props.match.params.productId;\n const product = ProductList[productId];\n\n return (\n
\n window.location.assign(\"/\")}\n title={product.name}\n />\n\n {product.type == \"3D-clara\" ? (\n \n
\n
\n {product.name == \"Jacket Configurator\" ? (\n
\n

Jacket Options

\n \n \n
\n \n
\n
\n \n \n \n \n \n \n
\n
\n ) : (\n

\n )}\n\n {product.name == \"Watch Configurator\" ? (\n
\n \n
\n \n window.api.configuration.setConfiguration({\n Engraving: value,\n })\n }\n />\n
\n
\n ) : (\n

\n )}\n
\n ) : (\n
\n
\n
\n Suit Material\n
\n \n \n Black Pindot\n \n \n Bright Blue\n \n \n Grey Plaid\n \n\n \n Sharkskin\n \n \n Wine\n \n \n
\n
\n\n \n Interior Material\n
\n \n \n Floral Navy\n \n \n Floral Purple\n \n \n Navy White Dot\n \n\n \n Surfside\n \n \n Taupe\n \n \n
\n
\n
\n \n \n )}\n \n );\n }\n}\n\nexport default Product;\n","import React from \"react\";\n// import './Product.css';\nimport \"antd/dist/antd.css\";\nimport { PageHeader, Radio, Input, Menu, Dropdown, Button, Tabs } from \"antd\";\nimport { ProductList } from \"../../config/Configs.js\";\nimport { VPMap } from \"../../config/VPMap\";\nimport ImageGallery from \"react-image-gallery\";\nimport { getPlayerApi } from \"../../components/Player/module.js\";\n// import \"../components/Gallery/style.scss\";\n// import \"./Products.css\";\nimport { AttrButtons } from \"../../components/Jacket\";\n\nimport ReactGA from \"react-ga\";\n\nconst { Search } = Input;\nconst { TabPane } = Tabs;\n\nclass Shoe extends React.Component {\n componentDidMount() {\n\n const productId = this.props.match.params.productId;\n const product = ProductList[\"shoe\"];\n console.log(product);\n\n window\n .threekitPlayer({\n authToken: \"65b73b25-e80d-4c03-ac50-6eb24c6874ff\",\n el: document.getElementById(\"tkplayer\"),\n stageId: `${product.scene}`,\n\n assetId: `${product.threekit}`,\n showAR: false,\n showConfigurator: true,\n initialConfiguration: product.config,\n })\n .then(async (api) => {\n window.player = api;\n window.configurator = await api.getConfigurator();\n });\n }\n render() {\n ReactGA.initialize(\"UA-63905846-9\");\n ReactGA.set({ dimension1: \"Fashion\" });\n\n return (\n
\n window.location.assign(\"/\")}\n title={\"Shoe Configurator\"}\n />\n\n
\n \n );\n }\n}\n\nexport default Shoe;\n","import React from 'react';\nimport {Layout} from 'antd';\nimport Products from './components/ProductList'\nimport './App.css';\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport Product from './pages/Product';\nimport Shoe from \"./pages/Shoe\"\n\nconst { Header, Content, Footer } = Layout;\nfunction App(props) {\n return (\n
\n \n
\n
\n \n \n \n \n\n \n\n \n \n \n \n \n
Threekit ©2020
\n
\n
\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}