{"version":3,"file":"index-277ab65f.js","sources":["../../../../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../../../../node_modules/prop-types/index.js","../../../../../../src/scripts/modules/react/productGuideOverlay/index.tsx"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import PropTypes from 'prop-types';\nimport React, { useState, useEffect, useRef, CSSProperties } from 'react';\nimport parse from 'html-react-parser';\nimport { DataType } from '../../productSample';\n\nconst ProductGuideOverlay = (props: {\n title: string;\n downloadUrl: string;\n downloadLabel: string;\n addToBasketLabel: string;\n addToBasketColumnLabel: string;\n skuTerms: string;\n isDansac: string;\n label: string;\n data: DataType;\n}) => {\n const {\n title,\n downloadUrl,\n downloadLabel,\n addToBasketLabel,\n addToBasketColumnLabel,\n skuTerms,\n isDansac,\n label,\n data\n } = props;\n\n const [isOpen, setIsOpen] = useState(false);\n const [count, setCount] = useState(1);\n const TableAttributes = data.TableAttributes;\n const Skus = data.Skus;\n const [originalSkus] = useState([...data.Skus]);\n const [Items, setItems] = useState(Skus);\n const [isDesktop, setIsDesktop] = useState(true);\n const [colWidth, setColWidth] = useState(0);\n const tableRef = useRef(null);\n const cols = TableAttributes.length + 1;\n const setWidth: CSSProperties | undefined = isDesktop ? {\n minWidth: `${colWidth}px`,\n maxWidth: `${colWidth}px`\n } : undefined;\n const handleSample = () => Items.some(item => item['CanSample']);\n\n\n const calculateColWidth = () => {\n if (tableRef.current) {\n const tableWidth = (tableRef.current as HTMLElement).offsetWidth;\n const colWidth = (tableWidth / (cols - (handleSample() ? 0 : 1)));\n setColWidth(colWidth);\n }\n };\n\n useEffect(() => {\n tableRef.current && isOpen &&\n calculateColWidth();\n }, [isOpen]);\n\n const handleResize = () => {\n calculateColWidth();\n if (window.matchMedia('(min-width: 1024px)').matches) {\n setIsDesktop(true);\n } else {\n setIsDesktop(false);\n }\n };\n\n useEffect(() => {\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, []);\n\n const handleSort = (attribute: string) => {\n const cloneItems = [...Items];\n if (attribute === 'ID') {\n return;\n }\n\n if (count === 3) {\n setCount(1);\n setItems(originalSkus);\n return;\n }\n\n const sortedSKUS = cloneItems.sort((a, b) => {\n if (a[attribute] < b[attribute]) {\n return -1;\n }\n if (a[attribute] > b[attribute]) {\n return 1;\n }\n return 0;\n });\n // count number of clicks on attribute\n setCount(count + 1);\n\n // if count is odd, sort ascending, if count is even, sort descending\n if (count % 2 === 0) {\n sortedSKUS.reverse();\n }\n\n setItems(sortedSKUS);\n };\n\n return (\n <>\n setIsOpen(true)}\n >\n {parse(label)}\n \n\n {isOpen ? (\n {\n if (e.target === e.currentTarget) {\n setIsOpen(false);\n }\n }}\n >\n
\n setIsOpen(false)}\n >\n \n \n \n \n
\n
\n

\n {parse(title)}\n

\n \n {parse(downloadLabel)}\n \n \n \n \n
\n \n \n \n {TableAttributes.map((attribute, i) => (\n \n ))}\n {handleSample() && }\n \n \n \n {\n Items.length\n ? Items.map((item, i) => (\n \n {\n TableAttributes.length && TableAttributes.map((att, j) => {\n return item[att.SKUPropertyName] ? (\n \n {parse(item[att.SKUPropertyName])}\n \n ) : (\n );\n })\n }\n\n {handleSample() &&\n Object.keys(item).map((skuKey, i) => {\n if (skuKey === 'ID') {\n return (\n \n {item.CanSample && {\n window.addProduct(item[skuKey]);\n setIsOpen(false);\n }}\n >\n {parse(addToBasketLabel)}\n }\n \n );\n } else {\n return null;\n }\n })}\n \n ))\n : null}\n \n
handleSort(attribute.SKUPropertyName)} style={setWidth}>\n \n {parse(attribute.Label)}\n \n \n \n \n {parse(addToBasketColumnLabel)}
\n {skuTerms ?\n (
\n

{parse(skuTerms)}

\n
)\n : ''}\n
\n
\n \n ) : null}\n \n );\n};\n\nProductGuideOverlay.propTypes = {\n title: PropTypes.string.isRequired,\n downloadUrl: PropTypes.string.isRequired,\n downloadLabel: PropTypes.string.isRequired,\n addToBasketLabel: PropTypes.string.isRequired,\n addToBasketColumnLabel: PropTypes.string.isRequired,\n data: PropTypes.object.isRequired\n};\n\nexport default ProductGuideOverlay;\n"],"names":["ReactPropTypesSecret","ReactPropTypesSecret_1","require$$0","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","props","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","propTypesModule","ProductGuideOverlay","title","downloadUrl","downloadLabel","addToBasketLabel","addToBasketColumnLabel","skuTerms","isDansac","label","data","isOpen","setIsOpen","useState","count","setCount","TableAttributes","Skus","originalSkus","Items","setItems","isDesktop","setIsDesktop","colWidth","setColWidth","tableRef","useRef","cols","setWidth","handleSample","item","calculateColWidth","useEffect","handleResize","handleSort","attribute","cloneItems","sortedSKUS","a","b","React","parse","e","i","att","j","skuKey","PropTypes"],"mappings":"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","x_google_ignoreList":[0,1,2]}