{"version":3,"file":"static/js/7.bf315281fa604aa2257e.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/baseComponents/button/button.tsx?a0e8","webpack://Msdyn365.Commerce.Online/./src/baseComponents/image-overlay/image-overlay.tsx?11da","webpack://Msdyn365.Commerce.Online/./src/baseComponents/parallax-wrapper/parallax-wrapper.tsx?e8fc","webpack://Msdyn365.Commerce.Online/./src/baseComponents/portal-modal/portal-modal.tsx?8d10","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/detail-images.tsx?b5a2","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/shaper.tsx?7938","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/spec-table.tsx?1acb","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/wakeboard-flex-number.tsx?4fe3","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/wakeboard-specs.tsx?d00d","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/fatsac-colors.tsx?6d95","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/fatsac-specs.tsx?b33a","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/specs.tsx?bb58","webpack://Msdyn365.Commerce.Online/./src/baseComponents/product-detail/tech-features.tsx?3e77","webpack://Msdyn365.Commerce.Online/./src/baseComponents/scroll-fade/scroll-fade.tsx?9b63","webpack://Msdyn365.Commerce.Online/./src/baseComponents/video-box/video-box.tsx?763f","webpack://Msdyn365.Commerce.Online/./src/modules/hosports-custom-product/hosports-custom-product.tsx?110f","webpack://Msdyn365.Commerce.Online/./src/modules/hosports-custom-product/hosports-custom-product.view.tsx?68fa","webpack://Msdyn365.Commerce.Online/./src/modules/hosports-parallax-full-width-image/hosports-parallax-full-width-image.tsx?8077","webpack://Msdyn365.Commerce.Online/./src/modules/hosports-parallax-full-width-image/hosports-parallax-full-width-image.view.tsx?8777","webpack://Msdyn365.Commerce.Online/./src/modules/hosports-parallax-two-image-overlapping-loose-grid/hosports-parallax-two-image-overlapping-loose-grid.tsx?b4fc","webpack://Msdyn365.Commerce.Online/./src/modules/hosports-parallax-two-image-overlapping-loose-grid/hosports-parallax-two-image-overlapping-loose-grid.view.tsx?30e0","webpack://Msdyn365.Commerce.Online/./src/baseComponents/custom-product/custom-product.tsx?43b4","webpack://Msdyn365.Commerce.Online/./src/themes/kent/views/hosports-custom-product.view.tsx?335b","webpack://Msdyn365.Commerce.Online/./src/themes/kent/views/hosports-parallax-full-width-image.view.tsx?12c1","webpack://Msdyn365.Commerce.Online/./src/themes/kent/views/hosports-parallax-two-image-overlapping-loose-grid.view.tsx?1aa1","webpack://Msdyn365.Commerce.Online/./src/themes/kent/utilities/functions.js?b879"],"sourcesContent":["import React from 'react';\r\n\r\n/**\r\n *\r\n * Scroll Fade In component\r\n * @extends {React.Component}\r\n */\r\ninterface IProps {\r\n text?: string;\r\n backgroundColor?:string;\r\n color?:string;\r\n outline?:string;\r\n ignoreAnimation?:any;\r\n href?:string;\r\n target?:string;\r\n className?:string;\r\n}\r\n\r\nclass Button extends React.Component{\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n }\r\n public render(): JSX.Element {\r\n let styles = {};\r\n let classList = \"base-button\";\r\n if(this.props.className){\r\n classList = classList+\" \"+this.props.className\r\n }\r\n let text = \"\";\r\n if(this.props.text){\r\n text = this.props.text;\r\n }\r\n if(this.props.backgroundColor){\r\n styles['backgroundColor'] = this.props.backgroundColor;\r\n } else{\r\n classList = classList+\" primary-color-background white\";\r\n }\r\n if(this.props.color){\r\n styles['color'] = this.props.color;\r\n }\r\n if(this.props.outline){\r\n classList = classList+\" outline\";\r\n }\r\n if(!this.props.ignoreAnimation){\r\n classList = classList+\" animated\";\r\n }\r\n let button =
{text}
;\r\n return (\r\n this.props.href ?\r\n {button}\r\n :\r\n button\r\n );\r\n }\r\n}\r\n\r\n export default Button;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n//@ts-ignore\r\nimport PortalModal from './../portal-modal/./portal-modal';\r\ninterface IProps {\r\n image?:string;\r\n dismissed?:any;\r\n active?:boolean;\r\n}\r\n\r\ninterface IState {\r\n onFullScreenImageLoaded:boolean;\r\n}\r\n\r\n/**\r\n *\r\n * @extends {React.Component}\r\n */\r\n\r\nclass HosportsImageOverlay extends React.Component {\r\n\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n onFullScreenImageLoaded:false,\r\n };\r\n }\r\n\r\n public onFullScreenImageLoad = () => {\r\n this.setState({\r\n onFullScreenImageLoaded:true\r\n })\r\n }\r\n\r\n public render(): JSX.Element {\r\n let fullScreenImageLoadedClass:string = \"\";\r\n if(this.state.onFullScreenImageLoaded){\r\n fullScreenImageLoadedClass = \"loaded\"\r\n }\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n }\r\n />\r\n );\r\n }\r\n}\r\n\r\nexport default HosportsImageOverlay;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport {MobileBreakpoint, ParallaxValueFast, ParallaxValueSlow} from '../../themes/kent/utilities/constants';\r\n// @ts-ignore\r\nimport { ParallaxProvider,Parallax } from 'react-scroll-parallax';\r\n\r\n/**\r\n *\r\n * Parallax Wrapper component\r\n * @extends {React.Component}\r\n */\r\nclass ParallaxWrapper extends React.Component {\r\n\r\n public render(): JSX.Element {\r\n let ParallaxValue = window.outerWidth < MobileBreakpoint ? ParallaxValueFast : ParallaxValueSlow;\r\n return (\r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ParallaxWrapper;\r\n","import React from 'react';\r\n\r\nimport ReactDOM from \"react-dom\";\r\n// @ts-ignore\r\nimport {GeneralAssetUrl} from '../../themes/kent/utilities/constants';\r\n/**\r\n *\r\n * Portal Modal component\r\n * @extends {React.Component}\r\n */\r\ninterface IProps {\r\n positionType?: string;\r\n theme?:string;\r\n content?:any;\r\n hideCloseButton?:boolean;\r\n modalActive?:boolean;\r\n frame?:boolean;\r\n modalHidden?:any;\r\n}\r\n\r\ninterface IState {\r\n modalActive:boolean;\r\n\thideModal:boolean;\r\n modalId?:any;\r\n}\r\n\r\nclass PortalModal extends React.Component{\r\n\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = ({\r\n modalActive:false,\r\n hideModal:false\r\n })\r\n }\r\n\r\n\tpublic componentDidMount = () =>{\r\n \tif(this.props.modalActive){\r\n\t\t\tthis.setupModal()\r\n\t\t}\r\n\t}\r\n componentDidUpdate = ()=>{\r\n if(this.props.modalActive && !this.state.modalActive){\r\n\t\t\tthis.setupModal()\r\n\t\t}\r\n }\r\n setupModal = ()=>{\r\n let modalId = Math.floor(Math.random() * 1000);\r\n let elem = document.createElement('div');\r\n elem.setAttribute('id',\"modal-root-\"+modalId);\r\n document.body.appendChild(elem);\r\n this.setState({\r\n modalActive:true,\r\n modalId:modalId\r\n })\r\n }\r\n\tpublic hideModal = () =>{\r\n\t\tthis.setState({\r\n\t\t\thideModal:true\r\n\t\t})\r\n\t\tsetTimeout(() => {\r\n if(this.props.modalHidden){\r\n this.props.modalHidden()\r\n }\r\n\t\t\tthis.setState({\r\n\t\t\t\tmodalActive:false,\r\n\t\t\t\thideModal:false\r\n\t\t\t})\r\n\t\t},500)\r\n\t}\r\n\tpublic render(): JSX.Element {\r\n\t\tconst {frame, theme,positionType,content,hideCloseButton} = this.props;\r\n\t\tlet position:any = \"fixed\";\r\n\t\tif(positionType == \"absolute\"){\r\n\t\t\tposition = \"absolute\";\r\n\t\t}\r\n\t\tlet animateOut:any = \"\";\r\n\t\tif(this.state.hideModal){\r\n\t\t\tanimateOut = \"animate-out\"\r\n\t\t}\r\n\r\n\t\tlet closeImage:any = GeneralAssetUrl+\"close-white.png\";\r\n\t\tlet componentTheme:any = \"dark-theme\";\r\n\t\tif(theme == \"light\"){\r\n\t\t\tcloseImage = GeneralAssetUrl+\"close-black.png\";\r\n\t\t\tcomponentTheme = \"light-theme\";\r\n\t\t}\r\n\r\n\t\tif(!this.state.modalActive) return \r\n let portal:any = document.getElementById('modal-root-'+this.state.modalId);\r\n return ReactDOM.createPortal(\r\n\t\t\t
\r\n \t\t\t
\r\n\t\t\t \t {!hideCloseButton && }\r\n {frame ?
: content}\r\n \t\t\t
\r\n \t\t
,\r\n\t\t portal\r\n\t );\r\n\t}\r\n}\r\n\r\n\r\nexport default PortalModal;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n// @ts-ignore\r\nimport {ParseCategoryIds} from \"./../../themes/kent/utilities/constants\";\r\n// @ts-ignore\r\nimport {GetExternalProductId,GetExternalProductInfo,GenerateProductAssetUrl,DoesProductShowDetailImages} from \"./../../themes/kent/utilities/functions\";\r\n// @ts-ignore\r\nimport PortalModal from './../portal-modal/./portal-modal';\r\n// @ts-ignore\r\nimport ImageOverlay from './../image-overlay/./image-overlay';\r\n\r\ninterface IState {\r\n ready:any;\r\n images:any;\r\n isOpen:any;\r\n fullScreenImageIndex:any;\r\n shown?: any;\r\n}\r\n\r\ninterface IProps {\r\n product?: any;\r\n parentProduct?:any;\r\n year?:any;\r\n category?:any;\r\n subcategory?:any;\r\n}\r\n\r\nlet imagesLoaded =[];\r\n\r\n/**\r\n *\r\n * Hero component\r\n * @extends {React.Component}\r\n */\r\nclass HosportsProductDetailImageRow extends React.Component {\r\n\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n ready:false,\r\n images:[],\r\n isOpen:false,\r\n fullScreenImageIndex:null\r\n };\r\n }\r\n\r\n public componentDidMount = async () => {\r\n let product = this.props.product;\r\n if(product){\r\n let shown = await DoesProductShowDetailImages(this.props.product,this.props.category,this.props.subcategory)\r\n if(shown){\r\n this.fillModule(product)\r\n }\r\n }\r\n }\r\n\r\n public fillModule = async(product:any) =>{\r\n let images = [];\r\n if(product){\r\n if(product.attributes){\r\n let targetProduct = product;\r\n let prodAssetUrl:string = GenerateProductAssetUrl(this.props.year);\r\n if(this.props.parentProduct){\r\n targetProduct = this.props.parentProduct;\r\n }\r\n\r\n for (var i = 1; i < 4; i++) {\r\n images.push(prodAssetUrl+targetProduct.attributes.slug+'-detail'+i+'.jpg')\r\n }\r\n this.setState({\r\n shown:true,\r\n images:images\r\n })\r\n }\r\n }\r\n }\r\n\r\n public imageError =(index:any) =>{\r\n let images = this.state.images;\r\n images.splice(index,1);\r\n if(images.length == 1){\r\n this.setState({\r\n images:null\r\n })\r\n } else{\r\n this.setState({\r\n images:images\r\n })\r\n }\r\n }\r\n\r\n public imageLoaded =(index:any) =>{\r\n let images = this.state.images;\r\n imagesLoaded.push(index);\r\n if(images.length == imagesLoaded.length){\r\n }\r\n }\r\n\r\n public showImage =(index:any) =>{\r\n console.log(index)\r\n this.setState({\r\n isOpen:true,\r\n fullScreenImageIndex:index\r\n })\r\n }\r\n\r\n public hideImage =() =>{\r\n this.setState({\r\n isOpen:false\r\n })\r\n }\r\n\r\n public render(): JSX.Element {\r\n if(!this.state.shown) return ;\r\n return (\r\n
\r\n
\r\n {this.state.images && this.state.images.map((image:string,index:any) =>{\r\n return(\r\n
\r\n
\r\n this.showImage(index)} onError={() => this.imageError(index)} onLoad={() => this.imageLoaded(index)} />\r\n
\r\n {this.state.isOpen &&\r\n \r\n }\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default HosportsProductDetailImageRow;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport {GetLocalText} from \"./../../themes/kent/utilities/functions\";\r\n// @ts-ignore\r\nimport ParallaxWrapper from \"./../parallax-wrapper/./parallax-wrapper\";\r\n//@ts-ignore\r\nimport {GeneralAssetUrl} from \"./../../themes/kent/utilities/constants\";\r\n\r\ninterface IState {\r\n product:any;\r\n slug:string;\r\n name:string;\r\n description:string;\r\n}\r\n\r\ninterface IProps {\r\n product?: any;\r\n parentProduct?:any;\r\n}\r\n\r\n/**\r\n *\r\n * HosportsProductShaper component\r\n * @extends {React.PureComponentReact.Component}\r\n */\r\n\r\nclass HosportsProductShaper extends React.Component {\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n product:null,\r\n slug:'',\r\n name:'',\r\n description:''\r\n };\r\n }\r\n public componentDidMount = async () => {\r\n let product:any = this.props.product;\r\n if(this.props.parentProduct){\r\n product = this.props.parentProduct;\r\n }\r\n let slug:any = '';\r\n let name:any = '';\r\n let description = '';\r\n if(product){\r\n if(product.attributes){\r\n if(product.attributes.shaper == \"Greg Nelson\"){\r\n slug = \"gregnelsondesign\",\r\n name = await GetLocalText(\"gregNelsonDesignText\"),\r\n description = await GetLocalText(\"gregNelsonDesignDescription\")\r\n }\r\n if(product.attributes.shaper == \"Aaron Stumpf\"){\r\n slug = \"shapedbyaaron\",\r\n name = await GetLocalText(\"shapedByAaronText\"),\r\n description = await GetLocalText(\"shapedByAaronDescription\")\r\n }\r\n if(product.attributes.shaper == \"Butch\"){\r\n slug = \"butchcustoms\",\r\n name = await GetLocalText(\"butchCustomsText\"),\r\n description = await GetLocalText(\"butchCustomsDescription\")\r\n }\r\n if(product.attributes.shaper == \"Varial Foam Technology\"){\r\n slug = \"varialfoamtechnology\",\r\n name = await GetLocalText(\"varialFoamTechnologyText\"),\r\n description = await GetLocalText(\"varialFoamTechnologyDescription\")\r\n }\r\n if(product.attributes.shaper == \"SUPERBRAND\"){\r\n slug = \"superbrand\",\r\n name = await GetLocalText(\"superBrandText\"),\r\n description = await GetLocalText(\"superBrandDescription\")\r\n }\r\n if(product.attributes.shaper == \"Trever Maur\"){\r\n slug = \"trevermaur\",\r\n name = await GetLocalText(\"shapedByTreverMaurText\"),\r\n description = await GetLocalText(\"treverMaurShaperDescription\")\r\n }\r\n this.setState({\r\n product:product,\r\n slug:slug,\r\n name:name,\r\n description:description\r\n })\r\n }\r\n }\r\n }\r\n public render(): JSX.Element {\r\n const {product} = this.state;\r\n if(!product){\r\n return \r\n } else{\r\n if(!product.attributes || !product.attributes.shaper){\r\n return \r\n } else{\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
{this.state.name}
\r\n

{this.state.description}

\r\n
\r\n
\r\n
\r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default HosportsProductShaper;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport {GetLocalText} from \"./../../themes/kent/utilities/functions\";\r\n// @ts-ignore\r\nimport {GeneralAssetUrl} from \"./../../themes/kent/utilities/constants\";\r\n\r\ninterface IState {\r\n products?:any;\r\n}\r\n\r\ninterface IProps {\r\n product?: any;\r\n parentProduct?: any;\r\n}\r\n\r\n/**\r\n *\r\n * SpecTable component\r\n * @extends {React.PureComponentReact.Component}\r\n */\r\n\r\nclass SpecTable extends React.Component {\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n products:null\r\n };\r\n }\r\n public componentDidMount = async () => {\r\n let productSpecs = this.props.product.attributes.productSpecs;\r\n if(this.props.parentProduct){\r\n productSpecs = this.props.product.attributes.productSpecs;\r\n }\r\n this.setState({\r\n products:productSpecs\r\n })\r\n }\r\n\r\n public render(): JSX.Element {\r\n if(!this.state.products || this.state.products.length == 0) return ;\r\n console.log(this.state.products[0])\r\n return (\r\n
\r\n
\r\n

{'Spec Chart'}

\r\n
\r\n {Object.keys(this.state.products[0]).map((data:any,index:any) =>{\r\n if(data == 'slug') return null;\r\n let title = data;\r\n return(\r\n
\r\n
\r\n {title}\r\n
\r\n {this.state.products.map((product:any,index:any) =>{\r\n return(\r\n
{product[data]}
\r\n )\r\n })}\r\n
\r\n )\r\n })}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default SpecTable;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport {GetLocalText} from \"./../../themes/kent/utilities/functions\";\r\n// @ts-ignore\r\nimport {ModelYear, GeneralAssetUrl} from \"./../../themes/kent/utilities/constants\";\r\n\r\ninterface IState {}\r\n\r\ninterface IProps {\r\n product?: any;\r\n}\r\n\r\n/**\r\n *\r\n * Sizes component\r\n * @extends {React.PureComponentReact.Component}\r\n */\r\n\r\nclass WakeboardFlexNumber extends React.Component {\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n public render(): JSX.Element {\r\n let image = GeneralAssetUrl+\"flex-meter-1.png\";\r\n\t\tif(this.props.product.attributes.wakeboardFlexNumber == 2){\r\n\t\t\timage = GeneralAssetUrl+\"flex-meter-2.png\";\r\n\t\t}\r\n\t\tif(this.props.product.attributes.wakeboardFlexNumber == 3){\r\n\t\t\timage = GeneralAssetUrl+\"flex-meter-3.png\";\r\n\t\t}\r\n\t\tif(this.props.product.attributes.wakeboardFlexNumber == 4){\r\n\t\t\timage = GeneralAssetUrl+\"flex-meter-4.png\";\r\n\t\t}\r\n\t\tif(this.props.product.attributes.wakeboardFlexNumber == 5){\r\n\t\t\timage = GeneralAssetUrl+\"flex-meter-5.png\";\r\n\t\t}\r\n\t\tif(!this.props.product.attributes.wakeboardFlexNumber) return ;\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t)\r\n }\r\n}\r\n\r\nexport default WakeboardFlexNumber;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport WakeboardFlexNumber from \"./wakeboard-flex-number\";\r\n\r\n// @ts-ignore\r\nimport {GetLocalText} from \"./../../themes/kent/utilities/functions\";\r\n// @ts-ignore\r\nimport {GeneralAssetUrl} from \"./../../themes/kent/utilities/constants\";\r\n\r\ninterface IState {\r\n specs?: any;\r\n}\r\n\r\ninterface IProps {\r\n product?: any;\r\n year?:any;\r\n forceBrandColor?:any;\r\n}\r\n\r\n/**\r\n *\r\n * WakeboardSpecs component\r\n * @extends {React.PureComponentReact.Component}\r\n */\r\n\r\nclass WakeboardSpecs extends React.Component {\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n public componentDidMount = async () => {\r\n this.setUpScreen();\r\n }\r\n\r\n public setUpScreen = () =>{\r\n\t\tvar skill = this.props.product.attributes.wakeboardSkill;\r\n\t\tvar pop = this.props.product.attributes.wakeboardPopRocker;\r\n\t\tvar flex = this.props.product.attributes.wakeboardFlex;\r\n\t\tvar terrain = this.props.product.attributes.wakeboardType;\r\n\t\tvar specs = [];\r\n\t\tif(skill){\r\n\t\t\tvar percentage = '0%'\r\n\t\t\tif(skill.includes('advanced')){\r\n\t\t\t\tpercentage = \"80%\";\r\n\t\t\t} else if(skill.includes('intermediate')){\r\n\t\t\t\tpercentage = \"50%\";\r\n\t\t\t} else{\r\n\t\t\t\t percentage = '20%'\r\n\t\t\t}\r\n\t\t\tspecs.push({\r\n\t\t\t\t\tminValue:'Beginner',\r\n\t\t\t\t\tmaxValue:'Intermediate',\r\n\t\t\t\t\tkey:'Skill Level',\r\n\t\t\t\t\tpercentage:percentage\r\n\t\t\t})\r\n\t\t}\r\n\t\tif(pop){\r\n\t\t\tvar percentage = '0%';\r\n\t\t\tif(pop.includes('boosty')){\r\n\t\t\t\tpercentage = \"80%\";\r\n\t\t\t} else if(pop.includes('mid')){\r\n\t\t\t\tpercentage = \"50%\";\r\n\t\t\t} else{\r\n\t\t\t\t percentage = '20%'\r\n\t\t\t}\r\n\t\t\tspecs.push({\r\n\t\t\t\tminValue:'Consistent',\r\n\t\t\t\tmaxValue:'Boosty',\r\n\t\t\t\tkey:'Pop',\r\n\t\t\t\tpercentage:percentage\r\n\t\t\t})\r\n\t\t}\r\n\t\tif(flex){\r\n\t\t\tvar percentage = '0%';\r\n\t\t\tif(flex.includes('flexy')){\r\n\t\t\t\tpercentage = \"80%\";\r\n\t\t\t}else{\r\n\t\t\t\t percentage = '20%'\r\n\t\t\t}\r\n\t\t\tspecs.push({\r\n\t\t\t\tminValue:'Mid Flex',\r\n\t\t\t\tmaxValue:'Flexy',\r\n\t\t\t\tkey:'Board Flex',\r\n\t\t\t\tpercentage:percentage\r\n\t\t\t})\r\n\t\t}\r\n\t\tif(terrain){\r\n\t\t\tvar percentage = '0%';\r\n\t\t\tif(terrain.includes('boat')){\r\n\t\t\t\tpercentage = \"80%\";\r\n\t\t\t}else{\r\n\t\t\t\t percentage = '20%'\r\n\t\t\t}\r\n\t\t\tspecs.push({\r\n\t\t\t\tminValue:'Cable',\r\n\t\t\t\tmaxValue:'Boat',\r\n\t\t\t\tkey:'Terrain',\r\n\t\t\t\tpercentage:percentage\r\n\t\t\t})\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tspecs:specs\r\n\t\t})\r\n\t}\r\n\r\n public render(): JSX.Element {\r\n\t\tif(!this.state.specs) return ;\r\n let customColor:any = null;\r\n if(this.props.product){\r\n if(this.props.product.attributes.customSpecsColor){\r\n if(!this.props.forceBrandColor){\r\n customColor = this.props.product.attributes.customSpecsColor;\r\n }\r\n }\r\n }\r\n\t\treturn (\r\n\t\t\t
\r\n \r\n\t\t\t\t
\r\n\t\t\t\t\t{this.state.specs.map((item:any)=>{\r\n\t\t\t\t\t\treturn(\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t

{item.key}

\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t

{item.minValue}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t

{item.maxValue}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t})}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t)\r\n }\r\n}\r\n\r\nexport default WakeboardSpecs;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport {GeneralAssetUrl} from \"./../../themes/kent/utilities/constants\";\r\n\r\n// @ts-ignore\r\ninterface IProps {\r\n product?: any;\r\n}\r\n\r\nclass FatsacColors extends React.Component {\r\n\r\n public render(): JSX.Element {\r\n return(\r\n
\r\n
\r\n

{'AVAILABLE COLOR OPTIONS:'}

\r\n

{'**Gray and Black are standard colors. Other colors are available for an extra custom color fee.'}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{'Grey'}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{'Black'}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{'Red'}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{'White'}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{'Camo'}

\r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default FatsacColors;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport FatsacColors from \"./fatsac-colors\";\r\n\r\n// @ts-ignore\r\nimport {GenerateProductAssetUrl} from \"./../../themes/kent/utilities/functions\";\r\n// @ts-ignore\r\nimport {GeneralAssetUrl} from \"./../../themes/kent/utilities/constants\";\r\n\r\ninterface IState {\r\n fatsacProductWeight?: any;\r\n fatsacSizes?: any;\r\n fatsacImage?: any;\r\n}\r\n\r\ninterface IProps {\r\n product?: any;\r\n year?: any;\r\n}\r\n\r\n/**\r\n *\r\n * WakeboardSpecs component\r\n * @extends {React.PureComponentReact.Component}\r\n */\r\n\r\nclass FatsacSpecs extends React.Component {\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n public componentDidMount = async () => {\r\n if(this.props.product){\r\n this.setUpScreen(this.props.product);\r\n }\r\n }\r\n\r\n public setUpScreen = async(product:any) =>{\r\n let prodAssetUrl:any = await GenerateProductAssetUrl(product,this.props.year);\r\n if(product.attributes){\r\n if(product.attributes.subcategory == \"g7lQZjE06q\"){\r\n \t\t\tlet descriptions:any =[\"Length in Inches\",\"Height in Inches\",\"Width in Inches\"]\r\n \t\t\tlet fatsacSizes:any = [];\r\n \t\t\tlet sizes:any = null;\r\n \t\t\tif(product.attributes.sizes){\r\n \t\t\t\tsizes = product.attributes.sizes[0].split(',');\r\n \t\t\t}\r\n \t\t\tvar productImage:any = prodAssetUrl+product.attributes.slug+'1.png';\r\n \t\t\tvar fatsacProductWeight:any = product.attributes.fatsacProductWeight;\r\n \t\t\tsizes.map((size:any,index:any) =>{\r\n \t\t\t\tfatsacSizes.push({\r\n \t\t\t\t\t'size':size,\r\n \t\t\t\t\t'description':descriptions[index]\r\n \t\t\t\t})\r\n \t\t\t\tif(index == sizes.length -1){\r\n \t\t\t\t\tthis.setState({\r\n \t\t\t\t\t\tfatsacProductWeight:fatsacProductWeight,\r\n \t\t\t\t\t\tfatsacSizes:fatsacSizes,\r\n \t\t\t\t\t\tfatsacImage: productImage\r\n \t\t\t\t\t})\r\n \t\t\t\t}\r\n \t\t\t})\r\n \t\t}\r\n }\r\n\t}\r\n\r\n public render(): JSX.Element {\r\n\t\tif(!this.state.fatsacSizes) return ;\r\n\t\treturn (\r\n
\r\n\t\t\t\t
\r\n\t\t\t\t\t{this.state.fatsacProductWeight &&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t

{this.state.fatsacProductWeight}

\r\n\t\t\t\t\t\t\t\t\t\t

{'Total ballast weight at recomended capacity'}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{this.state.fatsacSizes &&\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t

{'Dimensions'}

\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{this.state.fatsacSizes.map((size:any,index:any) =>{\r\n\t\t\t\t\t\t\t\t\t\t\treturn(\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{size.size}

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

{size.description}

\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t}\r\n\t\t\t\t
\r\n
\r\n
\r\n {this.props.product && }\r\n
\r\n
\r\n\t\t\t
\r\n\t\t)\r\n }\r\n}\r\n\r\nexport default FatsacSpecs;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport WakeboardSpecs from \"./wakeboard-specs\";\r\n// @ts-ignore\r\nimport FatsacSpecs from \"./fatsac-specs\";\r\n// @ts-ignore\r\nimport {GetLocalText} from \"./../../themes/kent/utilities/functions\";\r\n// @ts-ignore\r\nimport {GeneralAssetUrl} from \"./../../themes/kent/utilities/constants\";\r\n\r\ninterface IState {}\r\n\r\ninterface IProps {\r\n product?: any;\r\n parentProduct?: any;\r\n year?:any;\r\n forceBrandColor?:any;\r\n}\r\n\r\n/**\r\n *\r\n * Sizes component\r\n * @extends {React.PureComponentReact.Component}\r\n */\r\n\r\nclass Specs extends React.Component {\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n public render(): JSX.Element {\r\n let product = this.props.product;\r\n if(this.props.parentProduct){\r\n product = this.props.parentProduct;\r\n }\r\n return (\r\n
\r\n {this.props.product.attributes.subcategory == \"g7lQZjE06q\" && }\r\n\t\t\t\t{(product.attributes.slug == \"wakesurfers-accelerator\" || product.attributes.slug == \"wakesurfers-raygun\" || product.attributes.slug == \"wakesurfers-trifecta-blank\" || product.attributes.slug == \"wakesurfers-exacta-blank\") &&\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

{'Warranty Not Available'}

\r\n\t\t\t\t\t\t\t

{'Due to the advanced nature of the Varial Surf Program, Warranty is not available.'}

\r\n\t\t\t\t\t\t\t

{'For repair options visit the'} {'Varial Surf Repair Shop'}{'.'}

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t{product.attributes.category == \"tYeyYbLaJ5\" && }\r\n\t\t\t
\r\n );\r\n }\r\n}\r\n\r\nexport default Specs;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\n\r\n// @ts-ignore\r\nimport {ModelYear,ParseCategoryIds,SimpleProductCategories, SimpleProductSubcategories, GeneralAssetUrl} from \"./../../themes/kent/utilities/constants\";\r\n// @ts-ignore\r\nimport {GetFromParseBySlug,FindFromParse,GetFromParse} from \"./../../themes/kent/utilities/parse\";\r\n// @ts-ignore\r\nimport {GenerateProductAssetUrl,GetLocalizedText,GetLocalText,GetExternalProductId,GetExternalProductInfo} from \"./../../themes/kent/utilities/functions\";\r\n\r\ninterface IState {\r\n product:any;\r\n features:any;\r\n forcedOrderFeatures:any;\r\n fullFeatures:any;\r\n singleTitleFeatures:any;\r\n featureDictionary:any;\r\n sectionTitle:any;\r\n brokenImage:any;\r\n featureList:any;\r\n}\r\n\r\n\r\ninterface IProps {\r\n product?: any;\r\n simpleProduct?:any;\r\n parentProduct?:any;\r\n year?:any;\r\n}\r\n\r\n/**\r\n *\r\n * Tech Features component\r\n * @extends {React.Component}\r\n */\r\nclass HosportsProductTechFeatures extends React.Component {\r\n\r\n public state: IState;\r\n\r\n constructor (props: IProps) {\r\n super(props);\r\n this.state = {\r\n product:{},\r\n features:[],\r\n forcedOrderFeatures:[],\r\n fullFeatures:[],\r\n singleTitleFeatures:[],\r\n featureDictionary:{},\r\n sectionTitle:'',\r\n brokenImage:false,\r\n featureList:[]\r\n };\r\n }\r\n\r\n public componentDidMount = async() => {\r\n let product = this.props.product;\r\n if(product){\r\n this.fillModule(product)\r\n }\r\n }\r\n\r\n public fillModule = async(product:any) => {\r\n let tech:any = await GetLocalText('techText')\r\n let details:any = await GetLocalText('detailsText')\r\n if(product){\r\n if(product.attributes){\r\n var featureDictionary ={};\r\n var fullFeatures = [];\r\n var singleTitleFeatures = [];\r\n let featureList =[];\r\n let parentProduct = null;\r\n let forcedOrderFeatures = [];\r\n let features = product.attributes.productFeatures;\r\n if(this.props.parentProduct){\r\n parentProduct = this.props.parentProduct;\r\n features = parentProduct.attributes.productFeatures;\r\n }\r\n let year = ModelYear;\r\n if(this.props.year){\r\n year = this.props.year;\r\n }\r\n let parseClass = 'ProductFeatures'+year;\r\n let results = await FindFromParse(parseClass,[{'method':'containedIn','key':'objectId','value':features},{'method':'ascending','value':'order'}]);\r\n if(results){\r\n for (let index:any = 0; index < results.length; index++) {\r\n let feature = results[index];\r\n featureList.push(feature.id);\r\n var title = GetLocalizedText(feature.attributes.content, \"title\")\r\n var description = GetLocalizedText(feature.attributes.content, \"description\")\r\n featureDictionary[feature.id] = {title:title,description:description};\r\n if(!description){\r\n singleTitleFeatures[index] = feature.id;\r\n } else{\r\n fullFeatures.push(feature.id);\r\n }\r\n }\r\n if(features){\r\n for (let x:any = 0; x < features.length; x++) {\r\n for (let i:any = 0; i < results.length; i++) {\r\n if(features[x] == results[i].id){\r\n forcedOrderFeatures.push(results[i].id)\r\n };\r\n }\r\n if(x == features.length -1){\r\n this.setState({\r\n forcedOrderFeatures:forcedOrderFeatures\r\n })\r\n }\r\n }\r\n }\r\n this.setState({\r\n product:parentProduct ? parentProduct : product,\r\n featureList:featureList,\r\n forcedOrderFeatures:forcedOrderFeatures,\r\n features:features,\r\n fullFeatures:fullFeatures,\r\n singleTitleFeatures:singleTitleFeatures,\r\n featureDictionary:featureDictionary,\r\n sectionTitle:tech+' '+details\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n public fixBrokenImage = () => {\r\n this.setState({\r\n brokenImage:true\r\n })\r\n }\r\n\r\n public onImageLoad = () =>{\r\n //do nothing\r\n }\r\n\r\n public render(): JSX.Element {\r\n let product = this.state.product;\r\n let prodAssetUrl:string = GenerateProductAssetUrl(this.props.year);\r\n if (product && product.attributes){\r\n var dictionary = this.state.featureDictionary;\r\n var productColumn = 6;\r\n var featureColumn = 12;\r\n var featuresColumn = 4;\r\n var featuresColumnStyles = 'wide-features-padding';\r\n var featureColumnStyles = 'wide-feature-padding';\r\n var featureRatio = GeneralAssetUrl+'square.png';\r\n var overlapPlaceholder = GeneralAssetUrl+'overlap-placeholder-wakeboards.png';\r\n var paddingFix = '0%';\r\n var scaleOffset = '1.1';\r\n var transformYOffset = '-10%';\r\n var transformXOffset = \"0%\";\r\n var featuresColumnMaxWidth = '700px';\r\n var simpleProduct = false;\r\n var image1 = prodAssetUrl+product.attributes.slug+'1_1000.png';\r\n var image2 = prodAssetUrl+product.attributes.slug+'2_1000.png';\r\n if(window.outerWidth < 800){\r\n image1 = prodAssetUrl+product.attributes.slug+'1_500.png';\r\n image2 = prodAssetUrl+product.attributes.slug+'2_500.png';\r\n }\r\n let featuresBackgroundColor = '#f2f2f2';\r\n let featuresTextColor = '#000';\r\n if(product.attributes.customFeaturesColor){\r\n featuresBackgroundColor = product.attributes.customFeaturesColor;\r\n featuresTextColor = '#fff';\r\n }\r\n var width = '60%';\r\n var frontBack = false;\r\n var imageWidth = \"100%\";\r\n var removeFeatureSection = false;\r\n var removeFeatureThumb = false;\r\n var rotateOffset = \"0deg\";\r\n var imageMaxWidth = \"100%\";\r\n\r\n // Hyp\r\n if(product.attributes.brand == 'hyperlite'){\r\n if(product.attributes.category == ParseCategoryIds.wakeboards){\r\n frontBack = true;\r\n overlapPlaceholder = GeneralAssetUrl+'overlap-placeholder-wakeboard-features.png';\r\n productColumn = 6;\r\n featuresColumn = 6;\r\n width = '85%';\r\n featuresColumnMaxWidth = '700px'\r\n }\r\n else if(product.attributes.category == ParseCategoryIds.wakeboardPackages){\r\n frontBack = true;\r\n overlapPlaceholder = GeneralAssetUrl+'overlap-placeholder-wakeboard-features.png';\r\n width = '85%';\r\n }\r\n\r\n else if(product.attributes.category == ParseCategoryIds.wakesurfers && product.attributes.subcategory != \"EYPAnD1L4c\"){\r\n frontBack = true;\r\n overlapPlaceholder = GeneralAssetUrl+'overlap-placeholder-wakesurf-features.png';\r\n width = '75%';\r\n }\r\n else if(\r\n product.attributes.category == ParseCategoryIds.wakeboardBoots\r\n ){\r\n rotateOffset = \"30deg\"\r\n productColumn = 6;\r\n featuresColumn = 4;\r\n scaleOffset = \"1.2\";\r\n imageMaxWidth = \"1000px\"\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n if(window.outerWidth < 800){\r\n scaleOffset = \"1\";\r\n rotateOffset = \"25deg\";\r\n transformYOffset = \"-5%\";\r\n transformXOffset = \"5%\";\r\n }\r\n }\r\n else {\r\n removeFeatureSection = true;\r\n }\r\n }\r\n if(product.attributes.brand == 'hosports'){\r\n if(product.attributes.category == ParseCategoryIds.iSup){\r\n frontBack = true;\r\n width = '85%';\r\n overlapPlaceholder = GeneralAssetUrl+'overlap-placeholder-isup.png';\r\n }\r\n else if(product.attributes.category == ParseCategoryIds.waterskis){\r\n if(product.attributes.subcategory != \"ryTmS05B5d\" && product.attributes.subcategory !=\"wWHALtqszI\"){\r\n frontBack = true;\r\n width = '70%';\r\n overlapPlaceholder = GeneralAssetUrl+'overlap-placeholder-singleSki.png';\r\n }\r\n }\r\n else if(product.attributes.category == ParseCategoryIds.kneeboards){\r\n if(product.attributes.subcategory != \"EGjcB4SaTl\"){\r\n frontBack = true;\r\n width = '85%';\r\n if(window.outerWidth < 800){\r\n width = '100%';\r\n }\r\n }\r\n }\r\n else if(product.attributes.category == ParseCategoryIds.waterskiGloves){\r\n frontBack = true;\r\n width = '90%';\r\n productColumn = 7;\r\n featuresColumn = 3;\r\n if(window.outerWidth < 800){\r\n width = '100%';\r\n }\r\n }\r\n else if(product.attributes.category == ParseCategoryIds.waterskiPackages){\r\n frontBack = true;\r\n width = '70%';\r\n overlapPlaceholder = GeneralAssetUrl+'overlap-placeholder-singleSki.png';\r\n }\r\n else if(\r\n product.attributes.category == ParseCategoryIds.iLand ||\r\n product.attributes.category == ParseCategoryIds.tubes ||\r\n product.attributes.category == ParseCategoryIds.radFadPads\r\n ){\r\n scaleOffset = \"1.2\";\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"-30%\";\r\n if(window.outerWidth < 800){\r\n scaleOffset = \"1\";\r\n transformYOffset = \"-5%\";\r\n transformXOffset = \"0%\";\r\n }\r\n }\r\n\r\n else if(product.attributes.category == ParseCategoryIds.wetsuits){\r\n scaleOffset = \"1\";\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n }\r\n\r\n if(\r\n product.attributes.category == ParseCategoryIds.waterskiBoots\r\n ){\r\n rotateOffset = \"30deg\"\r\n productColumn = 6;\r\n featuresColumn = 4;\r\n scaleOffset = \"1.2\";\r\n imageMaxWidth = \"1000px\"\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n if(window.outerWidth < 800){\r\n scaleOffset = \"1\";\r\n rotateOffset = \"25deg\";\r\n transformYOffset = \"-5%\";\r\n transformXOffset = \"5%\";\r\n }\r\n }\r\n\r\n if(product.attributes.category == ParseCategoryIds.iKayak || SimpleProductCategories.indexOf(product.attributes.category) != -1 || SimpleProductSubcategories.indexOf(product.attributes.subcategory) != -1){\r\n removeFeatureSection = true;\r\n }\r\n if(\r\n product.attributes.slug == \"waterski-accessories-syndicate-ponchowel\"\r\n ){\r\n removeFeatureSection = false;\r\n scaleOffset = \"1.2\";\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n if(window.outerWidth < 800){\r\n scaleOffset = \"1\";\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n }\r\n }\r\n if(\r\n product.attributes.slug == \"waterskis-sure-shot-platform-trainer\" ||\r\n product.attributes.slug == \"waterskis-hot-shot-trainers\"\r\n ){\r\n frontBack = false;\r\n scaleOffset = \"1.2\";\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n if(window.outerWidth < 800){\r\n scaleOffset = \"1\";\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n }\r\n }\r\n if(\r\n product.attributes.subcategory == \"EGjcB4SaTl\"\r\n ){\r\n removeFeatureSection = false;\r\n frontBack = false;\r\n scaleOffset = \".9\";\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n if(window.outerWidth < 800){\r\n scaleOffset = \"1\";\r\n transformYOffset = \"0%\";\r\n transformXOffset = \"0%\";\r\n }\r\n }\r\n }\r\n if(simpleProduct){\r\n return(\r\n
\r\n {this.state.forcedOrderFeatures && this.state.forcedOrderFeatures.map((data:any,index:any) => {\r\n if(dictionary[data]){\r\n return(\r\n

{dictionary[data].title}

\r\n )\r\n } else{\r\n return \r\n }\r\n })}\r\n
\r\n )\r\n }\r\n if(removeFeatureSection || (this.state.fullFeatures && this.state.fullFeatures.length == 0)) return ;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {!frontBack && !removeFeatureThumb &&\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n {frontBack &&\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{this.state.sectionTitle}

\r\n
\r\n
\r\n
\r\n {this.state.forcedOrderFeatures && this.state.forcedOrderFeatures.map((data:any,index:any) => {\r\n if(dictionary[data]){\r\n return(\r\n
\r\n
{dictionary[data].title}
\r\n {dictionary[data].description &&

{dictionary[data].description}

}\r\n
\r\n )\r\n } else{\r\n return \r\n }\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else{\r\n return \r\n }\r\n }\r\n}\r\n\r\nexport default HosportsProductTechFeatures;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport React from 'react';\r\n// @ts-ignore\r\nimport Fade from 'react-reveal/Fade';\r\n\r\n/**\r\n *\r\n * Scroll Fade In component\r\n * @extends {React.Component}\r\n */\r\nclass ScrollFadeIn extends React.Component {\r\n public render(): JSX.Element {\r\n return (\r\n \r\n {this.props.children}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ScrollFadeIn;\r\n","import React from 'react';\r\nimport ScrollFadeIn from './../scroll-fade/./scroll-fade';\r\n// @ts-ignore\r\nimport ReactPlayer from 'react-player';\r\n\r\ninterface IProps {\r\n fullWidth?:boolean;\r\n video?:string;\r\n autoPlay?:boolean;\r\n muted?:boolean;\r\n controls?:boolean;\r\n}\r\n\r\n/**\r\n *\r\n * Video Box Component\r\n * @extends {React.Component}\r\n */\r\nclass VideoBox extends React.Component {\r\n\r\n public render(): JSX.Element {\r\n const fullWidthClass = this.props.fullWidth ? 'full' : '';\r\n return (\r\n \r\n
\r\n {this.props.video &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default VideoBox;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IHosportsCustomProductData } from './hosports-custom-product.data';\r\nimport { IHosportsCustomProductProps } from './hosports-custom-product.props.autogenerated';\r\n\r\nexport interface IHosportsCustomProductViewProps extends IHosportsCustomProductProps {}\r\n\r\n/**\r\n *\r\n * HosportsCustomProduct component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass HosportsCustomProduct extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default HosportsCustomProduct;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IHosportsCustomProductViewProps } from './hosports-custom-product';\r\n\r\nexport default (props: IHosportsCustomProductViewProps) => {\r\n return (\r\n
{'HO Sports Custom Product'}
\r\n );\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IHosportsParallaxFullWidthImageData } from './hosports-parallax-full-width-image.data';\r\nimport { IHosportsParallaxFullWidthImageProps } from './hosports-parallax-full-width-image.props.autogenerated';\r\n\r\nexport interface IHosportsParallaxFullWidthImageViewProps extends IHosportsParallaxFullWidthImageProps {\r\n\r\n}\r\n\r\n/**\r\n *\r\n * HosportsParallaxFullWidthImage component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass HosportsParallaxFullWidthImage extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default HosportsParallaxFullWidthImage;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IHosportsParallaxFullWidthImageViewProps } from './hosports-parallax-full-width-image';\r\n\r\nexport default (props: IHosportsParallaxFullWidthImageViewProps) => {\r\n return (\r\n

{'Parallax Full Width Image'}

\r\n );\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IHosportsParallaxTwoImageOverlappingLooseGridData } from './hosports-parallax-two-image-overlapping-loose-grid.data';\r\nimport { IHosportsParallaxTwoImageOverlappingLooseGridProps } from './hosports-parallax-two-image-overlapping-loose-grid.props.autogenerated';\r\n\r\nexport interface IHosportsParallaxTwoImageOverlappingLooseGridViewProps extends IHosportsParallaxTwoImageOverlappingLooseGridProps {\r\n\r\n}\r\n\r\n/**\r\n *\r\n * HosportsParallaxTwoImageOverlappingLooseGrid component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass HosportsParallaxTwoImageOverlappingLooseGrid extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default HosportsParallaxTwoImageOverlappingLooseGrid;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IHosportsParallaxTwoImageOverlappingLooseGridViewProps } from './hosports-parallax-two-image-overlapping-loose-grid';\r\n\r\nexport default (props: IHosportsParallaxTwoImageOverlappingLooseGridViewProps) => {\r\n return (\r\n

{'Overlapping Loose Image Grid'}

\r\n );\r\n};\r\n","import React from 'react';\r\nimport Button from './../button/./button';\r\n// @ts-ignore\r\nimport {MobileBreakpoint, GeneralAssetUrl} from './../../themes/kent/utilities/constants';\r\n// @ts-ignore\r\nimport ImageOverlay from './../image-overlay/./image-overlay';\r\n\r\n/**\r\n *\r\n * Text Over Image Thumb With Button component\r\n * @extends {React.Component}\r\n */\r\n\r\n interface IState {\r\n isOpen?:any;\r\n fullScreenImage?:any;\r\n }\r\n\r\ninterface IProps {\r\n title?: string;\r\n tagline?: string;\r\n description?: string;\r\n image?: any;\r\n link?:any;\r\n thumbnails?:any;\r\n product3DGif?:any;\r\n buttonText?:any;\r\n direction?: any;\r\n sizes?: any;\r\n features?: any;\r\n}\r\n\r\nclass CustomProduct extends React.Component{\r\n public state: IState;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n isOpen:false,\r\n fullScreenImage:null\r\n };\r\n }\r\n\r\n\r\n public thumbnailClicked = (thumb:any) =>{\r\n this.setState({\r\n isOpen:true,\r\n fullScreenImage:thumb\r\n })\r\n }\r\n\r\n public hideOverlay = () =>{\r\n this.setState({\r\n isOpen:false\r\n })\r\n }\r\n\r\n public render(): JSX.Element {\r\n\r\n let directionClass = this.props.direction == 'right' ? 'flex-reverse mobile-reverse' : '';\r\n console.log(this.props)\r\n return (\r\n
\r\n
\r\n {this.props.image &&
\r\n \r\n
}\r\n
\r\n
\r\n {this.props.title &&

{this.props.title}

}\r\n {this.props.tagline &&
{this.props.tagline}
}\r\n {this.props.sizes &&\r\n
\r\n
{'Sizes'}
\r\n
\r\n {this.props.sizes.map((size:any, index:any) =>{\r\n return
\r\n {size}\r\n
\r\n })}\r\n
\r\n
\r\n }\r\n
\r\n {this.props.product3DGif &&
this.thumbnailClicked(this.props.product3DGif)} className=\"custom-product-thumb\" style={{backgroundImage:'url(\"'+GeneralAssetUrl+'3d-thumb.png\")'}}>\r\n \r\n
}\r\n {this.props.thumbnails && this.props.thumbnails.map((thumb:any, index:any) =>{\r\n return
this.thumbnailClicked(thumb)} className=\"custom-product-thumb\" style={{backgroundImage:'url(\"'+thumb+'\")'}}>\r\n \r\n
\r\n })}\r\n
\r\n {this.props.description &&

{this.props.description}

}\r\n {this.props.features &&\r\n
\r\n
{'Features'}
\r\n {this.props.features.map((feature:any, index:any) =>{\r\n return
\r\n

{feature}

\r\n
\r\n })}\r\n
\r\n }\r\n {this.props.link &&
}\r\n
\r\n
\r\n
\r\n {this.state.isOpen &&\r\n \r\n }\r\n
\r\n )\r\n }\r\n}\r\n\r\n export default CustomProduct;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\nimport { IHosportsCustomProductViewProps } from '../../../modules/hosports-custom-product/./hosports-custom-product';\r\n//@ts-ignore\r\nimport CustomProduct from \"./../../../baseComponents/custom-product/./custom-product\";\r\n\r\nexport default (props: IHosportsCustomProductViewProps) => {\r\n let config = props.config;\r\n let title = config.title;\r\n let tagline = config.tagline;\r\n let description = config.description;\r\n let image = config.image ? config.image.src : undefined;\r\n let product3DGif = config.product3DGif ? config.product3DGif.src : undefined;\r\n let link = null;\r\n let buttonText = null;\r\n if(config.link){\r\n link = config.link.linkUrl ? config.link.linkUrl.destinationUrl : '';\r\n buttonText = config.link ? config.link.linkText : '';\r\n }\r\n let direction = config.direction;\r\n let sizes = config.sizes;\r\n let features = config.features;\r\n let thumbnails = [];\r\n if(config.thumbnails){\r\n for (let i = 0; i < config.thumbnails.length; i++) {\r\n if(config.thumbnails[i]){\r\n thumbnails.push(config.thumbnails[i].src)\r\n }\r\n }\r\n }\r\n\r\n\r\n return (\r\n \r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\nimport { IHosportsParallaxFullWidthImageViewProps } from '../../../modules/hosports-parallax-full-width-image/./hosports-parallax-full-width-image';\r\nimport ParallaxWrapper from './../../../baseComponents/parallax-wrapper/./parallax-wrapper';\r\nimport ScrollFadeIn from './../../../baseComponents/scroll-fade/./scroll-fade';\r\n// @ts-ignore\r\nimport {MobileBreakpoint} from '../utilities/constants';\r\n\r\ninterface IState {\r\n imageWidth:number;\r\n}\r\n\r\n/**\r\n *\r\n * Parallax Full Width Image component\r\n * @extends {React.Component}\r\n */\r\nclass HosportsParallaxFullWidthImage extends React.Component {\r\n\r\n public state: IState;\r\n public imageRef = React.createRef();\r\n\r\n constructor(props: IHosportsParallaxFullWidthImageViewProps) {\r\n super(props);\r\n this.state = {\r\n imageWidth:0\r\n };\r\n }\r\n\r\n public componentDidMount = () => {\r\n window.addEventListener(\"resize\", this.updateDimensions);\r\n this.updateDimensions();\r\n }\r\n\r\n public updateDimensions = () => {\r\n if(this.imageRef.current){\r\n let imageWidth = this.imageRef.current.getBoundingClientRect().width;\r\n this.setState({\r\n imageWidth:imageWidth\r\n })\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.updateDimensions);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n const image = (window.outerWidth < MobileBreakpoint && config.mobileImage) ? config.mobileImage : config.image;\r\n return (\r\n \r\n
\r\n {image &&\r\n
\r\n
\r\n \r\n
\r\n {config.title &&

{config.title}

}\r\n {config.subtitle &&

{config.subtitle}

}\r\n {config.buttonLink &&
{config.buttonText}
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default HosportsParallaxFullWidthImage;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport React from 'react';\r\nimport { IHosportsParallaxTwoImageOverlappingLooseGridViewProps } from '../../../modules/hosports-parallax-two-image-overlapping-loose-grid/./hosports-parallax-two-image-overlapping-loose-grid';\r\nimport ParallaxWrapper from './../../../baseComponents/parallax-wrapper/./parallax-wrapper';\r\nimport ScrollFadeIn from './../../../baseComponents/scroll-fade/./scroll-fade';\r\n// @ts-ignore\r\nimport {MobileBreakpoint} from './../utilities/constants';\r\n\r\ninterface IState {\r\n largeImageWidth:number;\r\n smallImageWidth:number;\r\n}\r\n\r\n/**\r\n *\r\n * Parallax Loose Grid component\r\n * @extends {React.Component}\r\n */\r\nclass HosportsParallaxTwoImageOverlappingLooseGrid extends React.Component {\r\n\r\n public state: IState;\r\n public largeImageRef = React.createRef();\r\n public smallImageRef = React.createRef();\r\n\r\n constructor(props: IHosportsParallaxTwoImageOverlappingLooseGridViewProps) {\r\n super(props);\r\n this.state = {\r\n largeImageWidth:0,\r\n smallImageWidth:0\r\n };\r\n }\r\n\r\n public componentDidMount = () => {\r\n window.addEventListener(\"resize\", this.updateDimensions);\r\n this.updateDimensions();\r\n }\r\n\r\n public updateDimensions = () => {\r\n if(this.largeImageRef.current && this.smallImageRef.current){\r\n let largeImageWidth = this.largeImageRef.current.getBoundingClientRect().width;\r\n let smallImageWidth = this.smallImageRef.current.getBoundingClientRect().width;\r\n this.setState({\r\n largeImageWidth:largeImageWidth,\r\n smallImageWidth:smallImageWidth\r\n })\r\n }\r\n }\r\n\r\n public componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.updateDimensions);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n const image = (window.outerWidth < MobileBreakpoint && config.primaryMobileImage) ? config.primaryMobileImage : config.primaryImage;\r\n return (\r\n \r\n
\r\n {config.secondaryImage &&\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n }\r\n {image &&\r\n
\r\n
\r\n {config.title &&

{config.title}

}\r\n {config.subtitle &&

{config.subtitle}

}\r\n {config.buttonLink &&
{config.buttonText}
}\r\n
\r\n
\r\n
\r\n }\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default HosportsParallaxTwoImageOverlappingLooseGrid;\r\n","import Parse from 'parse';\r\nimport {ModelYear,YoutubeApiKey} from './constants';\r\nexport const ProductAssetUrl = \"https://assets.hosports.com/\"+ModelYear+\"/img/\";\r\nexport const ResizeableProductAssetUrl = \"https://assets.hosports.com/image.php?src=\"+ModelYear+\"/img/\";\r\nimport {GetFromParseBySlug, FindFromParse} from './parse';\r\nimport Axios from 'axios';\r\n\r\nexport const BaseUrl = () =>{\r\n /*\r\n if international\r\n let url = window.location.pathname.split('/');\r\n if(url[1]){\r\n return '/'+url[1]+'/'\r\n } else{\r\n return '/'\r\n }\r\n */\r\n return '/'\r\n};\r\n\r\nexport const SetupSiteText = async() =>{\r\n const SiteTextQuery = Parse.Object.extend(\"SiteText\");\r\n const sitetextquery = new Parse.Query(SiteTextQuery);\r\n sitetextquery.limit(10000)\r\n const siteTextResults = await sitetextquery.find();\r\n var siteText = {};\r\n window.siteTextResults = siteTextResults;\r\n for (var i = 0; i < siteTextResults.length; i++) {\r\n let data = siteTextResults[i]\r\n siteText[data.attributes.slug] = {};\r\n var content = {};\r\n data.attributes.content.map((item,index)=>{\r\n content[item.lang]=item.title;\r\n if(index == data.attributes.content.length -1){\r\n siteText[data.attributes.slug] = content;\r\n }\r\n })\r\n }\r\n window.siteText = siteText;\r\n return true;\r\n}\r\n\r\nexport const SetupSeo = async() =>{\r\n const SeoQuery = Parse.Object.extend(\"Seo\");\r\n const seoquery = new Parse.Query(SeoQuery);\r\n seoquery.equalTo('site',window.site);\r\n seoquery.limit(1000)\r\n const seoresults = await seoquery.find();\r\n var seo = {};\r\n for (var i = 0; i < seoresults.length; i++) {\r\n var data = seoresults[i];\r\n seo[data.attributes.url] = data;\r\n }\r\n window.seo = seo;\r\n return true;\r\n}\r\n\r\nexport const SetupProducts = async() =>{\r\n const ProductQuery = Parse.Object.extend(\"Products\"+ModelYear);\r\n const productquery = new Parse.Query(ProductQuery);\r\n productquery.equalTo('site',window.site);\r\n productquery.limit(1000)\r\n const productResults = await productquery.find();\r\n window.productDictionary = {};\r\n window.products = productResults;\r\n for (var i = 0; i < productResults.length; i++) {\r\n window.productDictionary[productResults[i].id] = productResults[i];\r\n }\r\n return true\r\n}\r\n\r\nexport const SetupRedirects = async() =>{\r\n if(window.location.pathname.indexOf('product-detail') != -1){\r\n var slug = window.location.search.replace('?id=','');\r\n window.location.assign('product/'+slug)\r\n }\r\n return true\r\n}\r\n\r\nexport const SetupSubcategories = async() =>{\r\n const SubcategoryQuery = Parse.Object.extend(\"Subcategories\");\r\n const subcategoryquery = new Parse.Query(SubcategoryQuery);\r\n subcategoryquery.equalTo('site',window.site);\r\n subcategoryquery.ascending('order')\r\n const subcategoryResults = await subcategoryquery.find();\r\n window.subcategoryDictionary = {};\r\n window.subcategories = subcategoryResults;\r\n for (var i = 0; i < subcategoryResults.length; i++) {\r\n window.subcategoryDictionary[subcategoryResults[i].id] = subcategoryResults[i];\r\n }\r\n return true;\r\n}\r\n\r\nexport const SetupTeam = async() =>{\r\n const TeamQuery = Parse.Object.extend(\"Team\"+ModelYear);\r\n const teamquery = new Parse.Query(TeamQuery);\r\n teamquery.equalTo('site',window.site);\r\n teamquery.equalTo('visibility',true);\r\n teamquery.ascending('order')\r\n teamquery.limit(1000)\r\n const teamResults = await teamquery.find();\r\n window.teamDictionary = {};\r\n window.team = teamResults;\r\n for (var i = 0; i < teamResults.length; i++) {\r\n window.teamDictionary[teamResults[i].id] = teamResults[i];\r\n }\r\n return true\r\n}\r\n\r\nexport const GetSubcategoriesFromCategory = async (category) => {\r\n var subcategories = window.subcategories.filter(subcategory => subcategory.attributes.parent && subcategory.attributes.parent == category);\r\n return subcategories;\r\n}\r\n\r\nexport const GetProductBySlug = async (slug) => {\r\n var products = window.products.filter(product => product.attributes.slug == slug);\r\n return products[0];\r\n}\r\n\r\nexport const GetProductsByQuery = async (key,value,limit) => {\r\n let lang = window.lang;\r\n if(window.lang == 'eu'){\r\n lang = \"de\"\r\n }\r\n let products = window.products.filter(product => product.attributes[key] == value && product.attributes.locale.indexOf(lang) != -1);\r\n let results = products;\r\n if(products && limit){\r\n results = products.slice(0,limit)\r\n }\r\n return results;\r\n}\r\n\r\nexport const GetProductsByCollection = async (collection) => {\r\n let products = window.products.filter(product => product.attributes.collections && product.attributes.collections.indexOf(collection) != -1);\r\n return products;\r\n}\r\nexport const GetProductsByCategory = async (category) => {\r\n let products = window.products.filter(product => product.attributes.category && product.attributes.category == category);\r\n return products;\r\n}\r\n\r\nexport const GetProductsBySubCategory = async (subcategory) => {\r\n let products = window.products.filter(product => product.attributes.subcategory && product.attributes.subcategory == subcategory);\r\n return products;\r\n}\r\n\r\nexport const ReorderProducts = async (products) => {\r\n var sortedProducts = products.sort(compare);\r\n return sortedProducts;\r\n\r\n function compare(a, b){\r\n return a.attributes.order - b.attributes.order;\r\n }\r\n}\r\n\r\nexport const GetProductsBySlugs = async (slugs) => {\r\n var products = window.products.filter(product => slugs.indexOf(product.attributes.slug) != -1);\r\n return products;\r\n}\r\n\r\nexport const GetTeamByType = async (type) => {\r\n var Team;\r\n if(type == 'wakeboard'){\r\n Team = window.team;\r\n }\r\n if(type == \"Ski\"){\r\n Team = window.team.filter(rider => rider.attributes.team == \"Ski\");\r\n } else if (type == \"Wake/Knee\"){\r\n Team = window.team.filter(rider => rider.attributes.team == \"Wake/Knee\");\r\n }\r\n return Team;\r\n}\r\n\r\nexport const GetRidersBySlugs = async (slugs) => {\r\n var riders = window.team.filter(rider => slugs.indexOf(rider.attributes.slug) != -1);\r\n return riders;\r\n}\r\nexport const GenerateProductAssetUrl = (year) =>{\r\n let url = 'https://assets.hosports.com/'+ModelYear+'/img/';\r\n if(year){\r\n url = 'https://assets.hosports.com/'+year+'/img/';\r\n }\r\n return url\r\n}\r\nexport const OrderProductsByPrice = async (products) => {\r\n var sortedProducts = products.sort(compare);\r\n return sortedProducts;\r\n function compare(a, b){\r\n if(b.attributes.content[0].price && a.attributes.content[0].price){\r\n return parseFloat(b.attributes.content[0].price.toString().replace(',','')) - parseFloat(a.attributes.content[0].price.toString().replace(',',''))\r\n } else{\r\n return false\r\n }\r\n }\r\n}\r\n\r\nexport const ReturnProductDetailLink = async (product) => {\r\n /*\r\n if(product.attributes.msftRecordIdMap){\r\n let keys = Object.keys(product.attributes.msftRecordIdMap)\r\n return '/hl/'+product.attributes.slug+'/'+product.attributes.msftRecordIdMap[keys[0]]+'.p';\r\n } else{\r\n return ''\r\n }\r\n */\r\n if(window.location.search){\r\n return '/product/'+product.attributes.slug+window.location.search\r\n } else{\r\n return '/product/'+product.attributes.slug\r\n }\r\n}\r\n\r\nexport const ReturnLocalizedLink = async (url) => {\r\n if(window.location.search){\r\n let baseUrl = await BaseUrl();\r\n return baseUrl+url+window.location.search.replace('?','&')\r\n } else{\r\n return baseUrl+url\r\n }\r\n}\r\n\r\n\r\nexport const GetUrlVariable = (variable) => {\r\n var query = window.location.search.substring(1);\r\n var vars = query.split(\"&\");\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split(\"=\");\r\n if (pair[0] == variable) {\r\n return pair[1];\r\n }\r\n }\r\n return (false);\r\n}\r\n\r\nexport const getCookieValue = (a) => {\r\n var b = document.cookie.match('(^|;)\\\\s*' + a + '\\\\s*=\\\\s*([^;]+)');\r\n return b ? b.pop() : '';\r\n}\r\n\r\nexport const GetLocalizedText = (content,target) =>{\r\n var text;\r\n //var lang = window.lang;\r\n var lang = 'en';\r\n if(content){\r\n content.map((data,index) => {\r\n if(data.lang == 'en'){\r\n text = data[target]\r\n }\r\n if(data.lang == lang && data[target]){\r\n if(data[target] != \"\" && data[target] != \" \"){\r\n text = data[target];\r\n }\r\n }\r\n if(index == content.length -1){\r\n return text;\r\n }\r\n })\r\n }\r\n return (text);\r\n}\r\n\r\nexport const GetLocalText = async (slug) => {\r\n let text = await GetFromParseBySlug('SiteText',slug)\r\n if(text){\r\n let localizedText = await GetLocalizedText(text.attributes.content,'title');\r\n if(localizedText){\r\n return localizedText\r\n } else{\r\n return '';\r\n }\r\n } else{\r\n return '';\r\n }\r\n}\r\n\r\nexport const GetLocalizedPrice = async (content,target) => {\r\n var price = '';\r\n var lang = window.lang;\r\n if(window){\r\n if(window.location){\r\n if(window.location.href){\r\n if(window.location.href.indexOf('fatsac.com') != -1 || window.location.href.indexOf('barefootinternational.com') != -1){\r\n lang = \"en\"\r\n }\r\n }\r\n }\r\n }\r\n console.log(lang)\r\n var englishPrice = \"\";\r\n content.map((data,index) => {\r\n if((lang == 'en' && data.lang == 'en')){\r\n price = '$'+data['price'];\r\n englishPrice = '$'+data['price'];\r\n }\r\n if(lang == 'fr' && data.lang == 'fr'){\r\n var flag = true;\r\n if(data['price'] != \"\" && data['price'] != \" \" && data['price'] != null){\r\n price = '$'+data['price']+' CAD';\r\n }\r\n }\r\n if(lang == 'ca-fr' && data.lang == 'ca-fr'){\r\n var flag = true;\r\n if(data['price'] != \"\" && data['price'] != \" \" && data['price'] != null){\r\n price = '$'+data['price']+' CAD';\r\n }\r\n }\r\n if(lang == 'ca-en' && data.lang == 'ca-en'){\r\n var flag = true;\r\n if(data['price'] != \"\" && data['price'] != \" \" && data['price'] != null){\r\n price = '$'+data['price']+' CAD';\r\n }\r\n }\r\n\r\n if(lang == 'au' && data.lang == 'au'){\r\n if(data['price'] != \"\" && data['price'] != \" \" && data['price'] != null){\r\n price = '$'+data['price']+' AUD';\r\n }\r\n }\r\n if(lang == 'de' && data.lang == 'de'){\r\n if(data['price'] != \"\" && data['price'] != \" \" && data['price'] != null){\r\n price = '€'+data['price'];\r\n }\r\n }\r\n if(lang == 'uk' && data.lang == 'uk'){\r\n if(data['price'] != \"\" && data['price'] != \" \" && data['price'] != null){\r\n price = '£'+data['price'];\r\n }\r\n }\r\n if(lang == 'eu' && data.lang == 'eu'){\r\n if(data['price'] != \"\" && data['price'] != \" \" && data['price'] != null){\r\n price = '€'+data['price'];\r\n }\r\n }\r\n if(index == content.length -1){\r\n return price;\r\n }\r\n })\r\n return price;\r\n}\r\n\r\n\r\nexport const ShuffleArray = (a) => {\r\n var j, x, i;\r\n for (i = a.length - 1; i > 0; i--) {\r\n j = Math.floor(Math.random() * (i + 1));\r\n x = a[i];\r\n a[i] = a[j];\r\n a[j] = x;\r\n }\r\n return a;\r\n}\r\n\r\nexport const StripHtml = (html) =>{\r\n var tmp = document.createElement(\"DIV\");\r\n tmp.innerHTML = html;\r\n return tmp.textContent.replace(/(\\r\\n|\\n|\\r)/gm, \"\") || tmp.innerText.replace(/(\\r\\n|\\n|\\r)/gm, \"\") || \"\";\r\n}\r\n\r\nexport const RemoveLoading = () =>{\r\n let loader = document.getElementById('loading');\r\n setTimeout(()=>{\r\n loader.parentNode.removeChild(loader)\r\n }, 750);\r\n loader.style.opacity = '0';\r\n}\r\n\r\nexport const GetExternalProductId = async(data) =>{\r\n if(data.productSpecificationData){\r\n return data.productSpecificationData.then((specs) => {\r\n let slug = null;\r\n for (let index = 0; index < specs.length; index++) {\r\n if(specs[index].Name === \"ExternalItemId\"){\r\n slug = specs[index].TextValue;\r\n }\r\n }\r\n return slug;\r\n });\r\n } else{\r\n return null\r\n }\r\n}\r\n\r\nexport const GetThumbnailFromVimeo = async(url) =>{\r\n let thumbnail = null;\r\n if(url){\r\n let response = await Axios.get('https://vimeo.com/api/oembed.json?url='+url);\r\n console.log(response)\r\n if(response){\r\n if(response.data){\r\n thumbnail = response.data.thumbnail_url\r\n }\r\n }\r\n }\r\n return thumbnail\r\n}\r\n\r\nexport const DoesProductShowDetailImages = async(product,category,subcategory) =>{\r\n let value = false;\r\n if(category){\r\n if(category.attributes.showProductDetailImages){\r\n value = true\r\n }\r\n }\r\n if(subcategory){\r\n if(subcategory.attributes.showProductDetailImages){\r\n value = true\r\n }\r\n }\r\n if(product){\r\n if(product.attributes.showProductDetailImages){\r\n value = true\r\n }\r\n }\r\n return value\r\n}\r\n\r\nexport const DoesProductShowHeroImage = async(product,category,subcategory) =>{\r\n let value = false;\r\n if(category){\r\n if(category.attributes.showProductHeroImage){\r\n value = true\r\n }\r\n }\r\n if(subcategory){\r\n if(subcategory.attributes.showProductHeroImage){\r\n value = true\r\n }\r\n }\r\n if(product){\r\n if(product.attributes.showProductHeroImage){\r\n value = true\r\n }\r\n }\r\n return value\r\n}\r\n\r\nexport const GetYoutubeIdFromUrl = async(youtubeUrl) =>{\r\n let videoId = null;\r\n if(youtubeUrl){\r\n videoId = youtubeUrl.split('v=')[1];\r\n if(videoId){\r\n let ampersandPosition = videoId.indexOf('&');\r\n if(ampersandPosition != -1) {\r\n videoId = videoId.substring(0, ampersandPosition);\r\n }\r\n }\r\n }\r\n return videoId\r\n}\r\n\r\nexport const GetProductFromItemNumber = async (itemNumber,year) =>{\r\n let prodModelYear = year ? year : ModelYear;\r\n if(itemNumber){\r\n let num = parseInt(itemNumber)\r\n const results = await FindFromParse(\"ApiProductVariants\"+prodModelYear,[{\"method\":\"equalTo\",\"key\":\"itemNumber\",\"value\":num}]);\r\n if(results && results[0]){\r\n let product = await GetExternalProductInfo(results[0].attributes.slug,prodModelYear);\r\n return product\r\n }\r\n } else{\r\n return null\r\n }\r\n}\r\n\r\nexport const GetExternalProductInfo = async(slug,year) =>{\r\n let prodModelYear = year ? year : ModelYear;\r\n if(slug){\r\n let product = await GetFromParseBySlug('Products'+prodModelYear,slug);\r\n return product;\r\n } else{\r\n return null\r\n }\r\n}\r\n\r\nexport const GetLocaleValue = () =>{\r\n let lang = window.lang;\r\n if(!lang){\r\n lang = \"en\";\r\n }\r\n return lang;\r\n}\r\n\r\nexport const GetUserLocale = async() =>{\r\n let response = await Axios.get('https://alpine-hosports.herokuapp.com/getUserLocale');\r\n var country = response.data.geo.country.toLowerCase();\r\n let lang;\r\n var language =\r\n (navigator.languages && navigator.languages[0]) ||\r\n navigator.language ||\r\n navigator.userLanguage;\r\n var languageWithoutRegionCode = language.toLowerCase().split(/[_-]+/)[0];\r\n if(country){\r\n if(country == \"de\"){\r\n lang='de'\r\n } else if(country == \"gb\"){\r\n lang='uk'\r\n } else if(country == \"au\"){\r\n lang='au'\r\n } else if(country == \"ru\"){\r\n lang='ru'\r\n } else if(country == \"ca\"){\r\n lang='ca-en'\r\n } else if(language.includes(\"fr\")){\r\n lang='fr'\r\n } else{\r\n lang = 'en'\r\n }\r\n } else if(language){\r\n if(language.includes(\"ca-fr\")){\r\n lang='ca-fr'\r\n } else if(language.includes(\"ca-en\")){\r\n lang='ca-en'\r\n } else{\r\n lang = 'en'\r\n }\r\n }\r\n window.lang = lang;\r\n return lang\r\n}\r\n\r\nexport const TruncateText = (text,length) => {\r\n let description = text;\r\n if(description){\r\n if(description.length > length){\r\n description = description.slice(0,length)+'...';\r\n }\r\n }\r\n return description\r\n}\r\n\r\nexport const CapitalizeFirstLetter = (text) => {\r\n if(text){\r\n return text.charAt(0).toUpperCase() + text.slice(1);\r\n } else{\r\n return text\r\n }\r\n\r\n}\r\n"],"names":["Button","React","constructor","props","super","render","styles","classList","this","className","text","backgroundColor","color","outline","ignoreAnimation","button","style","href","target","HosportsImageOverlay","onFullScreenImageLoad","setState","onFullScreenImageLoaded","state","fullScreenImageLoadedClass","PortalModal","modalHidden","dismissed","modalActive","active","content","src","image","onLoad","backgroundImage","ParallaxWrapper","ParallaxValue","window","outerWidth","MobileBreakpoint","ParallaxValueFast","ParallaxValueSlow","ParallaxProvider","Parallax","y","children","componentDidMount","setupModal","componentDidUpdate","modalId","Math","floor","random","elem","document","createElement","setAttribute","body","appendChild","hideModal","setTimeout","frame","theme","positionType","hideCloseButton","position","animateOut","closeImage","GeneralAssetUrl","componentTheme","portal","getElementById","ReactDOM","onClick","imagesLoaded","HosportsProductDetailImageRow","async","product","DoesProductShowDetailImages","category","subcategory","fillModule","images","attributes","targetProduct","prodAssetUrl","GenerateProductAssetUrl","year","parentProduct","i","push","slug","shown","imageError","index","splice","length","imageLoaded","showImage","console","log","isOpen","fullScreenImageIndex","hideImage","ready","map","onError","ImageOverlay","HosportsProductShaper","name","description","shaper","GetLocalText","width","SpecTable","productSpecs","products","fontSize","paddingBottom","textAlign","display","whiteSpace","flexWrap","overflowX","WebkitOverflowScrolling","Object","keys","data","title","marginBottom","flex","padding","paddingTop","border","WakeboardFlexNumber","wakeboardFlexNumber","margin","WakeboardSpecs","setUpScreen","skill","wakeboardSkill","pop","wakeboardPopRocker","wakeboardFlex","terrain","wakeboardType","specs","percentage","includes","minValue","maxValue","key","customColor","customSpecsColor","forceBrandColor","item","FatsacColors","FatsacSpecs","descriptions","fatsacSizes","sizes","split","productImage","fatsacProductWeight","size","fatsacImage","height","alignItems","justifyContent","id","Specs","maxWidth","HosportsProductTechFeatures","tech","details","featureDictionary","fullFeatures","singleTitleFeatures","featureList","forcedOrderFeatures","features","productFeatures","ModelYear","parseClass","results","FindFromParse","feature","GetLocalizedText","x","sectionTitle","fixBrokenImage","brokenImage","onImageLoad","dictionary","productColumn","featuresColumn","featureColumnStyles","featureRatio","overlapPlaceholder","scaleOffset","transformYOffset","transformXOffset","featuresColumnMaxWidth","image1","image2","featuresBackgroundColor","featuresTextColor","customFeaturesColor","frontBack","removeFeatureSection","rotateOffset","imageMaxWidth","brand","ParseCategoryIds","SimpleProductCategories","SimpleProductSubcategories","transform","zIndex","marginTop","ScrollFadeIn","Fade","bottom","distance","duration","VideoBox","fullWidthClass","fullWidth","video","ReactPlayer","url","playing","autoPlay","muted","controls","playsinline","HosportsCustomProduct","renderView","HosportsParallaxFullWidthImage","HosportsParallaxTwoImageOverlappingLooseGrid","CustomProduct","thumbnailClicked","thumb","fullScreenImage","hideOverlay","directionClass","direction","tagline","product3DGif","thumbnails","link","buttonText","config","undefined","linkUrl","destinationUrl","linkText","imageRef","addEventListener","updateDimensions","current","imageWidth","getBoundingClientRect","componentWillUnmount","removeEventListener","mobileImage","ref","subtitle","buttonLink","tint","largeImageRef","smallImageRef","largeImageWidth","smallImageWidth","primaryMobileImage","primaryImage","secondaryImage","BaseUrl","ReorderProducts","sort","a","b","order","ReturnProductDetailLink","location","search","getCookieValue","cookie","match","lang","GetFromParseBySlug","localizedText","GetLocalizedPrice","price","indexOf","ShuffleArray","j","StripHtml","html","tmp","innerHTML","textContent","replace","innerText","value","showProductDetailImages","DoesProductShowHeroImage","showProductHeroImage","GetYoutubeIdFromUrl","videoId","youtubeUrl","ampersandPosition","substring","GetProductFromItemNumber","itemNumber","prodModelYear","num","parseInt","GetExternalProductInfo","GetLocaleValue","TruncateText","slice","CapitalizeFirstLetter","charAt","toUpperCase"],"sourceRoot":""}