{"version":3,"sources":["webpack:///./Scripts/Components/Products/RegularBuyButton.js","webpack:///./Scripts/Components/Products/ConfigurableProductModal.js","webpack:///./Scripts/Components/Products/ConfigurableProductBuyButton.js","webpack:///./Scripts/Components/Products/OnDemandModal.js","webpack:///./Scripts/Components/Products/LogosProductBuyButton.js","webpack:///./Scripts/Components/Products/ListBuyButton.js","webpack:///./Scripts/Components/Products/VariantList/VariantListItem.js","webpack:///./Scripts/Components/Products/VariantNotification.js","webpack:///./Scripts/Components/Products/VariantList.js","webpack:///./Scripts/Components/Products/RegularVariantData.js","webpack:///./Scripts/Components/Products/VariantData.js","webpack:///./Scripts/Components/WishList.add.js","webpack:///./Scripts/Hooks/UseToggleExpand.js"],"names":["props","dispatch","useDispatch","Button","withReactiveStyleBuyButton","ProductBuyButton","async","clearErrorMessage","exceedsStock","setMessage","message","translate","type","items","length","addToCartService","then","cart","productName","receive","ex","catchError","error","loadError","ConfigurableProductModal","register","handleSubmit","control","getValues","comment","formState","errors","useForm","defaultValues","name","quantity","fields","append","remove","useFieldArray","validateQuantityGreaterThanZero","value","parseInt","CustomModal","isOpen","open","onClose","setClose","title","description","onSubmit","data","map","item","index","key","id","style","display","marginBottom","alignItems","marginRight","required","defaultValue","placeholder","className","validate","onClick","xmlns","width","height","viewBox","fill","d","stroke","strokeLinecap","strokeLinejoin","setOpen","useState","isBundle","products","names","forEach","product","push","alwaysAddItem","configurableVariantId","OnDemandModal","logos","logo","setLogo","logoComment","setLogoComment","commentErrorMessage","setCommentErrorMessage","x","showComment","htmlFor","commentLabel","commentDescription","onChange","e","target","commentPlaceholder","cols","rows","onDemandComment","label","handleOnClick","logoArticleNumber","articleNumber","RegularBuyButton","LogosProductBuyButton","ConfigurableProductBuyButton","BuyButtonWithNotice","variant","showAddWishlist","setShowAddWishlist","quantities","setQuantities","handleQuantityChange","isOrderItem","ref","useRef","getValue","find","variantId","handleChange","event","String","Number","variantName","purchaseDate","purchaseAmount","isInStock","stockQuantity","minQuantity","min","max","useSelector","state","productDetailNotification","Notification","info","buttonText","toggle","text","variants","includeVat","showAll","setShowAll","totalAmount","setTotalAmount","totalQuantity","setTotalQuantity","expanded","expand","recalculateHeight","useToggleExpand","setQuantity","isViewOnlyUser","constants","prevQuantities","newList","findIndex","splice","visibleVariants","slice","hiddenVariants","useEffect","calculatedTotalAmount","reduce","acc","v","totalPrice","price","priceWithVat","toFixed","calculatedTotalQuantity","elementRef","useLayoutEffect","updateSize","window","addEventListener","removeEventListener","src","alt","cssClass","element","document","getElementById","currency","symbol","disabled","setMinQuantity","increment","newTotal","orderRows","filter","sum","checkAvailableStock","setErrorMessage","decrement","readOnly","number","WishListAdd","Component","constructor","super","this","showCreateWishlist","wishlistName","wishlists","edit","editWishlistCurrentName","editWishlistNewName","setWrapperRef","bind","handleClickOutside","componentDidMount","setState","getAllWishlists","componentWillUnmount","handleEdit","addWishlistName","evt","val","updateEditWishlist","addToWishlist","addNewWishlist","updateWishlistName","node","wrapperRef","contains","render","wishList","payload","Fragment","handleAddWishlist","handleUpdateWishlistName","lists","list","handleAddToWishlist","connect","add","previousName","newName","updateWishListName","onError","initialState","externalRef","setIsExpanded","prevExpanded","current","Array","prototype","call","childNodes","child","offsetHeight","closeExpand"],"mappings":"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","file":"880.098c7b65110daa32588c.js","sourcesContent":["import React, { Fragment, useState } from 'react';\nimport { addList as addToCartService } from '../../Services/Cart.service';\nimport withReactiveStyleBuyButton from './../withReactiveStyleBuyButton';\nimport { receive, loadError } from '../../Actions/Cart.action';\nimport { catchError } from '../../Actions/Error.action';\nimport { useDispatch } from 'react-redux';\nimport { translate } from \"../../Services/translation\";\nimport ProductBuyButton from \"./../Products/ProductBuyButton\";\nimport { clearErrorMessage, setErrorMessage, setMessage } from \"../../Actions/ProductDetail.action\";\n\nconst RegularBuyButton = (props) => {\n const dispatch = useDispatch();\n\n const onClick = async (items) => {\n dispatch(clearErrorMessage());\n\n if(props.exceedsStock){\n dispatch(setMessage({\n message: translate('product-variant.notification.error.exceedsstock'),\n type: 'error'\n }));\n\n return;\n }\n\n try {\n if (items.length > 0) {\n await addToCartService(items).then((cart) => {\n dispatch(setMessage({\n message: translate('product-variant.notification.success.text', props.productName),\n type: 'info'\n }));\n\n dispatch(receive(cart));\n });\n }\n } catch (ex) {\n dispatch(catchError(ex, (error) => loadError(error)));\n }\n };\n\n const Button = withReactiveStyleBuyButton(ProductBuyButton, onClick, 'buy-button');\n\n return \n }\n\n \n ))}\n\n\n {comment &&\n
\n

{comment}

\n
\n }\n\n\t\t\t\t\t\t\t\t append({ name: '', quantity: \"1\" })}\n >\n {translate('product.configurable.add.new')}\n \n\n
\n\n \n {translate('product.configurable.submit')}\n \n \n \n )\n}\n","import React, { Fragment, useState } from 'react';\nimport { addList as addToCartService } from '../../Services/Cart.service';\nimport withReactiveStyleBuyButton from './../withReactiveStyleBuyButton';\nimport { receive, loadError } from '../../Actions/Cart.action';\nimport { catchError } from '../../Actions/Error.action';\nimport { useDispatch } from 'react-redux';\nimport { translate } from \"../../Services/translation\";\nimport ProductBuyButton from \"./ProductBuyButton\";\nimport ConfigurableProductModal from \"./ConfigurableProductModal\";\nimport { clearErrorMessage, setMessage } from \"../../Actions/ProductDetail.action\";\n\nconst ConfigurableProductBuyButton = (props) => {\n const dispatch = useDispatch();\n const [open, setOpen] = useState(false);\n const onClick = async (products, data) => {\n dispatch(clearErrorMessage());\n\n try {\n const names = data;\n\n if (names.length === 0) {\n return;\n }\n\n let products = [];\n\n if (names.length > 0) {\n names.forEach(name => {\n props.items.forEach(product => {\n products.push({\n ...product,\n name: name.name,\n quantity: name.quantity,\n alwaysAddItem: true,\n\t\t\t\t\t\t\tconfigurableVariantId: props.configurableVariantId\n })\n });\n })\n }\n\n if (products.length > 0) {\n await addToCartService(products).then((cart) => {\n dispatch(setMessage({\n message: translate('product-variant.notification.success.text', props.productName),\n type: 'info'\n }));\n\n dispatch(receive(cart));\n });\n }\n } catch (ex) {\n dispatch(catchError(ex, (error) => loadError(error)));\n }\n };\n\n const Button = withReactiveStyleBuyButton(ProductBuyButton, () => setOpen(true), 'buy-button');\n\n return \n};\n\nexport default ConfigurableProductBuyButton;\n","import CustomModal from \"../CustomModal\";\nimport { translate } from \"../../Services/translation\";\nimport React, { useState } from \"react\";\nimport button from \"../Button\";\n\nexport default function OnDemandModal({ items, open, setOpen, logos, onClick, comment }) {\n const [logo, setLogo] = useState(null);\n const [message, setMessage] = useState(\"\");\n const [logoComment, setLogoComment] = useState(\"\");\n const [commentErrorMessage, setCommentErrorMessage] = useState(\"\");\n\n async function handleOnClick() {\n setMessage(\"\");\n setCommentErrorMessage(\"\");\n\n if (!logo) {\n setMessage(translate('forms.logorequiredtext'));\n\n return;\n }\n\n if (logo.showComment && logoComment.length === 0) {\n setCommentErrorMessage(translate('forms.logocommentrequiredtext'));\n\n return;\n }\n\n if (logo.showComment && logoComment.length >= 100) {\n setCommentErrorMessage(translate('checkout.forms.errors.maxlength', 100));\n\n return;\n }\n\n\n let onDemandComment;\n\n if(logo.showComment){\n onDemandComment = {\n label: logo.commentLabel,\n comment: logoComment,\n }\n }\n\n onClick(logo, onDemandComment);\n\n setOpen(false);\n }\n\n return (\n setOpen(false)}\n title={translate('product.logo.title')}\n description={translate('product.logo.description')}\n >\n
\n
\n
\n {\n logos.map((x, index) => )\n }\n
\n {\n message &&

{message}

\n }\n
\n\n {\n logo?.showComment &&
\n \n\n\n

{logo?.commentDescription}

\n\n \n\n {\n commentErrorMessage &&

{commentErrorMessage}

\n }\n
\n\n }\n\n {\n comment &&
\n

{comment}

\n
\n }\n\n handleOnClick()}>{translate('product.logo.submit')}\n \n
\n
\n )\n}\n","import React, { useState } from 'react';\nimport { addList as addToCartService } from '../../Services/Cart.service';\nimport withReactiveStyleBuyButton from './../withReactiveStyleBuyButton';\nimport { receive, loadError } from '../../Actions/Cart.action';\nimport { catchError } from '../../Actions/Error.action';\nimport { useDispatch } from 'react-redux';\nimport { translate } from \"../../Services/translation\";\nimport ProductBuyButton from \"./ProductBuyButton\";\nimport OnDemandModal from \"./OnDemandModal\";\nimport { clearErrorMessage, setMessage } from \"../../Actions/ProductDetail.action\";\n\nconst LogosProductBuyButton = (props) => {\n const dispatch = useDispatch();\n const [open, setOpen] = useState(false);\n const onClick = async (products, logo, onDemandComment) => {\n dispatch(clearErrorMessage());\n try {\n const products = props.items.map(x => ({\n ...x,\n logo: logo.name,\n logoArticleNumber: logo.articleNumber,\n alwaysAddItem: true,\n\t\t\t\tconfigurableVariantId: props.configurableVariantId,\n\t\t\t\tcommentLabel: onDemandComment?.label,\n\t\t\t\tcomment: onDemandComment?.comment,\n }));\n\n if (products.length > 0) {\n await addToCartService(products).then((cart) => {\n dispatch(setMessage({\n message: translate('product-variant.notification.logo.text', props.productName, logo.name),\n type: 'info'\n }));\n\n dispatch(receive(cart));\n });\n }\n } catch (ex) {\n dispatch(catchError(ex, (error) => loadError(error)));\n }\n };\n\n const Button = withReactiveStyleBuyButton(ProductBuyButton, () => setOpen(true), 'buy-button');\n\n return \n};\n\nexport default LogosProductBuyButton;\n","import RegularBuyButton from \"./RegularBuyButton\";\nimport ConfigurableProductBuyButton from \"./ConfigurableProductBuyButton\";\nimport LogosProductBuyButton from \"./LogosProductBuyButton\";\nimport BuyButtonWithNotice from \"./BuyButtonWithNotice\";\n\nconst ListBuyButton = (props) => {\n switch (props.type){\n case 'regular':{\n return RegularBuyButton(props);\n }\n case 'on-demand':{\n return LogosProductBuyButton(props);\n }\n case 'configurable':{\n return ConfigurableProductBuyButton(props);\n }\n default: {\n if(props.comment){\n return BuyButtonWithNotice(props);\n }\n\n return RegularBuyButton(props);\n }\n }\n};\n\nexport default ListBuyButton;\n","import React, { useState, useEffect, useRef, useLayoutEffect } from 'react';\nimport { translate } from '../../../Services/translation';\nimport WishListAdd from '../../WishList.add';\n\nconst VariantListItem = ({\n variant,\n showAddWishlist,\n setShowAddWishlist,\n quantities,\n setQuantities,\n handleQuantityChange,\n isOrderItem,\n}) => {\n const ref = useRef();\n\n function getValue() {\n return parseInt(\n quantities.find((x) => x.articleNumber === variant.variantId)?.quantity ||\n 0\n );\n }\n\n function decrement() {\n if (getValue() - variant.minQuantity >= 0) {\n handleQuantityChange(variant.variantId, getValue() - variant.minQuantity);\n }\n }\n\n function increment() {\n if (getValue() + variant.minQuantity <= variant.stockQuantity) {\n handleQuantityChange(variant.variantId, getValue() + variant.minQuantity);\n }\n }\n\n function handleChange(event) {\n handleQuantityChange(variant.variantId, String(Number(event.target.value)));\n }\n\n return (\n \n
\n
\n {variant.variantName}\n {variant.purchaseDate && (\n

\n {translate('product.purchasedate', variant.purchaseDate, variant.purchaseAmount)}\n

\n )}\n
\n
\n \n {isOrderItem\n ? translate('pdp.stock.preorder')\n : variant.isInStock\n ? `${variant.stockQuantity} ${translate('pdp.stock.quantity')}`\n : `${translate('pdp.stock.out')}`}\n \n
\n {(variant.isInStock || isOrderItem) &&\n (variant.minQuantity > 1 ? (\n \n {variant.minQuantity > 1 && (\n decrement()}\n >\n -\n \n )}\n\n \n {getValue()}\n

\n\n {variant.minQuantity > 1 && (\n increment()}\n >\n +\n \n )}\n
\n ) : (\n x.articleNumber === variant.variantId)\n ?.quantity || 0\n }\n onChange={handleChange}\n min={0}\n max={6969}\n />\n ))}\n {\n showAddWishlist == null\n ? setShowAddWishlist(variant.variantId)\n : setShowAddWishlist(null);\n }}\n >\n {showAddWishlist === variant.variantId && (\n {\n setShowAddWishlist(null);\n }}\n articleNumber={variant.variantId}\n />\n )}\n \n
\n );\n};\n\nexport default VariantListItem;\n","import React from 'react';\nimport Notification from \"../Notification\";\nimport { translate } from \"../../Services/translation\";\nimport { toggle } from \"../../Actions/Cart.action\";\nimport { useDispatch, useSelector } from \"react-redux\";\n\nconst VariantNotification = () => {\n const { message, type } = useSelector((state) => state.productDetailNotification);\n const dispatch = useDispatch();\n\n if(!message){\n return null;\n }\n\n return (\n
\n dispatch(toggle())}\n text={message}\n >\n
\n );\n};\n\nexport default VariantNotification;\n","import React, { useState, useEffect, useRef, useLayoutEffect } from 'react';\nimport BuyButton from '../Products/ListBuyButton';\nimport { translate } from '../../Services/translation';\nimport useToggleExpand from '../../Hooks/UseToggleExpand';\nimport VariantListItem from './VariantList/VariantListItem';\nimport VariantNotification from './VariantNotification';\nimport constants from '../../constants';\n\nconst VariantList = ({\n logos,\n productName,\n variants,\n type,\n comment,\n isOrderItem,\n includeVat,\n}) => {\n const [showAll, setShowAll] = useState(false);\n const [quantities, setQuantities] = useState([]);\n const [totalAmount, setTotalAmount] = useState(0);\n const [totalQuantity, setTotalQuantity] = useState(0);\n const { expanded, expand, recalculateHeight } = useToggleExpand(false);\n const [quantity, setQuantity] = useState(1);\n const isViewOnlyUser = constants.isViewOnlyUser;\n\n const [showAddWishlist, setShowAddWishlist] = useState(null);\n\n const handleQuantityChange = (variantId, value) => {\n setQuantities((prevQuantities) => {\n const newList = [...prevQuantities];\n const index = newList.findIndex((x) => x.articleNumber === variantId);\n if (index > -1) {\n if (value <= 0) {\n newList.splice(index, 1);\n } else {\n newList[index].quantity = value;\n }\n } else {\n newList.push({\n quantity: value,\n articleNumber: variantId,\n });\n }\n\n return newList;\n });\n };\n\n const toggleShowAll = () => {\n expand(elementRef);\n\n let element = document.getElementById('product-variant__show-more-list');\n\n element.className =\n element.className === 'product-variant__show-more-list'\n ? 'product-variant__show-more-list--expanded'\n : 'product-variant__show-more-list';\n };\n\n const visibleVariants = showAll ? variants : variants.slice(0, 4);\n const hiddenVariants = variants.slice(4);\n\n useEffect(() => {\n const calculatedTotalAmount = quantities.reduce(\n (acc, item) => {\n const variant = variants.find(\n (v) => v.variantId === item.articleNumber\n );\n\n if (variant) {\n const unitPrice = includeVat\n ? variant.price.price.priceWithVat\n : variant.price.price.price;\n\n const totalPrice = +unitPrice.toFixed(2) * item.quantity;\n\n acc.totalAmount = +acc.totalAmount + totalPrice;\n\n if (acc.totalAmount > 0) {\n acc.totalAmount = acc.totalAmount.toFixed(2);\n }\n }\n\n return acc;\n },\n { totalAmount: 0 }\n );\n\n const calculatedTotalQuantity = quantities.reduce(\n (acc, item) => acc + Number(item.quantity),\n 0\n );\n\n setTotalAmount(calculatedTotalAmount.totalAmount);\n setTotalQuantity(calculatedTotalQuantity);\n }, [quantities, variants]);\n\n const elementRef = useRef(null);\n\n useLayoutEffect(() => {\n function updateSize() {\n if (!showAll) {\n return;\n }\n\n recalculateHeight(elementRef);\n }\n\n window.addEventListener('resize', updateSize);\n updateSize();\n\n return () => window.removeEventListener('resize', updateSize);\n }, []);\n\n if (type === 'configurable') {\n return (\n <>\n {isViewOnlyUser ? (\n
\n \n \n \n

\n {translate('product.shipping.time')}\n

\n
\n
\n ) : (\n <>\n \n
\n \n \n \n

\n {translate('product.shipping.time')}\n

\n
\n
\n \n )}\n \n );\n }\n\n return (\n
\n
\n
\n {translate('product.variant.header')}\n
\n
\n {translate('product.instock.header')}\n
\n
\n {translate('product.quantity.header')}\n
\n\n {visibleVariants.map((variant, index) => (\n \n ))}\n
\n {hiddenVariants.length > 0 && (\n \n
\n {hiddenVariants.map((variant, index) => (\n \n ))}\n
\n
\n )}\n\n {variants.length > 4 && (\n \n )}\n\n \n {translate('product.variant-total')}: {totalAmount}{' '}\n {variants[0].price.currency.symbol}\n \n\n \n\n {isOrderItem &&

{translate('product.order-item.text')}

}\n\n {isViewOnlyUser ? (\n
\n \n \n \n

\n {translate('product.shipping.time')}\n

\n
\n
\n ) : (\n <>\n \n\n \n \n

\n {translate('product.shipping.time')}\n

\n
\n \n )}\n {/* 0}/>*/}\n \n );\n};\n\nexport default VariantList;\n","import React, { useState, useEffect, useRef, useLayoutEffect } from 'react';\nimport BuyButton from './ListBuyButton';\nimport { translate } from '../../Services/translation';\nimport VariantNotification from './VariantNotification';\nimport {\n clearErrorMessage,\n setErrorMessage,\n setMessage,\n} from '../../Actions/ProductDetail.action';\nimport { useDispatch, useSelector } from 'react-redux';\nimport constants from '../../constants';\n\nconst RegularVariantData = ({\n productName,\n logos,\n type,\n comment,\n variants,\n isOrderItem,\n isBundle,\n configurableVariantId\n}) => {\n const [totalQuantity, setTotalQuantity] = useState(0);\n const [minQuantity, setMinQuantity] = useState(\n variants.length === 1 ? variants[0].minQuantity : 1\n );\n const [quantity, setQuantity] = useState(\n variants.length === 1 ? variants[0].minQuantity : 1\n );\n const dispatch = useDispatch();\n const isViewOnlyUser = constants.isViewOnlyUser;\n\n const cart = useSelector((state) => state.cart);\n let variant = variants[0];\n\n function checkAvailableStock(newTotal) {\n let rows = cart.orderRows.filter(\n (x) => x.articleNumber === variant.variantId\n );\n\n if (isOrderItem) {\n return true;\n }\n\n if (rows === 0) {\n return newTotal <= variant.stockQuantity;\n }\n\n let amount = rows.reduce((sum, x) => sum + x.quantity, 0);\n\n if (amount + newTotal > variant.stockQuantity) {\n dispatch(\n setMessage({\n message: translate('product-variant.notification.error.exceedsstock'),\n type: 'error',\n })\n );\n\n return false;\n }\n\n return true;\n }\n\n useEffect(() => {\n setMessage('');\n }, [quantity]);\n\n function decrement() {\n let newTotal = quantity - variant.minQuantity;\n\n if (newTotal > 0) {\n setQuantity(newTotal);\n\n return;\n }\n\n dispatch(\n setErrorMessage(\n translate('product-variant.notification.error.minquantity')\n )\n );\n }\n\n function increment() {\n let newTotal = quantity + variant.minQuantity;\n if (isOrderItem) {\n setQuantity(newTotal);\n return;\n }\n if (newTotal <= variants[0].stockQuantity) {\n if (checkAvailableStock(newTotal)) {\n setQuantity(newTotal);\n }\n\n return;\n }\n\n dispatch(\n setErrorMessage(\n translate('product-variant.notification.error.maxquantity')\n )\n );\n }\n\n if (isViewOnlyUser) {\n return (\n
\n \n \n \n

\n {translate('product.shipping.time')}\n

\n
\n
\n );\n }\n\n return (\n <>\n \n\n
\n
\n
\n decrement()}\n >\n -\n \n 1}\n onChange={(e) => {\n let number = +e.target.value;\n if (number >= 1) {\n setQuantity(number);\n }\n }}\n type=\"number\"\n value={quantity}\n />\n increment()}\n >\n +\n \n
\n\n \n
\n \n \n

\n {translate('product.shipping.time')}\n

\n
\n
\n \n );\n};\n\nexport default RegularVariantData;\n","import React from 'react';\nimport VariantList from \"./VariantList\";\nimport RegularVariantData from \"./RegularVariantData\";\n\nconst VariantData = (props, { type, }) => {\n let isSingleProduct = props.variants.length === 1;\n\n if(isSingleProduct){\n return \n }\n\n return \n};\n\nexport default VariantData;\n","import React, { Component, Fragment } from 'react';\nimport { connect } from 'react-redux';\nimport {\n getAllWishlists,\n add,\n updateWishListName,\n} from '../Services/WishList.service';\nimport { translate } from '../Services/translation';\nimport { catchError } from '../Actions/Error.action';\n\nclass WishListAdd extends Component {\n constructor(props) {\n super(props);\n this.state = {\n showCreateWishlist: false,\n wishlistName: '',\n wishlists: null,\n edit: false,\n editWishlistCurrentName: '',\n editWishlistNewName: '',\n };\n this.setWrapperRef = this.setWrapperRef.bind(this);\n this.handleClickOutside = this.handleClickOutside.bind(this);\n }\n\n componentDidMount() {\n this.setState.wishlists = this.props.getAllWishlists();\n document.addEventListener('mousedown', this.handleClickOutside);\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.handleClickOutside);\n }\n\n handleEdit(name) {\n this.setState({\n edit: true,\n editWishlistCurrentName: name,\n editWishlistNewName: name,\n });\n }\n\n addWishlistName(evt) {\n const val = evt.target.value;\n this.setState({\n wishlistName: val,\n });\n }\n\n updateEditWishlist(evt) {\n const val = evt.target.value;\n this.setState({\n editWishlistNewName: val,\n });\n }\n\n async handleAddToWishlist(wishlistName, articleNumber) {\n await this.props.addToWishlist(wishlistName, articleNumber);\n this.props.getAllWishlists();\n this.props.onClose();\n }\n\n async handleAddWishlist(wishlistName) {\n await this.props.addNewWishlist(wishlistName, this.props.articleNumber);\n this.setState({\n showCreateWishlist: false,\n });\n this.props.getAllWishlists();\n this.props.onClose();\n }\n\n async handleUpdateWishlistName() {\n await this.props.updateWishlistName(\n this.state.editWishlistCurrentName,\n this.state.editWishlistNewName\n );\n this.props.getAllWishlists();\n }\n\n setWrapperRef(node) {\n this.wrapperRef = node;\n }\n\n handleClickOutside(event) {\n if (this.wrapperRef && !this.wrapperRef.contains(event.target)) {\n this.props.onClose();\n }\n }\n\n render() {\n const { wishList } = this.props;\n const { payload } = wishList;\n\n return (\n \n
\n
\n \n
\n this.props.onClose()}\n >\n
\n
\n

\n {this.state.edit\n ? translate('wishlist.add.edit.title')\n : this.state.showCreateWishlist\n ? translate('wishlist.add.create.title')\n : translate('wishlist.add.title')}\n

\n \n this.setState(() => ({\n showCreateWishlist: true,\n edit: false,\n }))\n }\n >\n {translate('wishlist.add.addnew')}\n \n
\n\n {payload && payload.updateWishlistName && (\n
{payload.updateWishlistName.message}
\n )}\n {payload && payload.addNewWishlist && (\n
{payload.addNewWishlist.message}
\n )}\n\n {this.state.showCreateWishlist && (\n
\n \n this.addWishlistName(evt)\n }\n />\n
\n \n this.setState(() => ({\n showCreateWishlist: false,\n }))\n }\n >\n {translate('wishlist.cancel')}\n \n {\n this.handleAddWishlist(\n this.state.wishlistName,\n this.props.articleNumber\n );\n }}\n >\n {translate('wishlist.save')}\n \n
\n
\n )}\n\n {this.state.edit && (\n
\n \n this.updateEditWishlist(evt)\n }\n />\n
\n \n this.setState({\n edit: false,\n })\n }\n >\n {translate('wishlist.cancel')}\n \n {\n this.handleUpdateWishlistName();\n this.setState({\n edit: false,\n });\n }}\n >\n {translate('wishlist.save')}\n \n
\n
\n )}\n {wishList &&\n !this.state.showCreateWishlist &&\n !this.state.edit && (\n
\n {wishList.lists &&\n wishList.lists.map(\n (list, index) => (\n \n \n this.handleAddToWishlist(\n list.name,\n this.props\n .articleNumber\n )\n }\n >\n {list.name}\n

\n {\n this.handleEdit(\n list.name\n );\n }}\n title={translate(\n 'wishlist.add.edit'\n )}\n >\n
\n )\n )}\n
\n )}\n
\n \n \n
\n );\n }\n}\n\nconst loadError = (error) => ({\n type: 'WISHLIST_LOAD_ERROR',\n payload: {\n error,\n },\n});\n\nconst mapStateToProps = (state) => {\n return {\n wishList: state.wishList,\n };\n};\n\nconst mapDispatchToProps = (dispatch) => {\n return {\n getAllWishlists: () => dispatch(getAllWishlists()),\n addToWishlist: (name, articleNumber) => add(name, articleNumber),\n updateWishlistName: (previousName, newName) =>\n dispatch(updateWishListName(previousName, newName)),\n addNewWishlist: (wishlistName, articleNumber) =>\n add(wishlistName, articleNumber, 1),\n onError: (ex) => {\n dispatch(catchError(ex, (error) => loadError(error)));\n },\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(WishListAdd);\n","import React, { useState } from \"react\";\n\nexport default function useToggleExpand(initialState = false, externalRef = null) {\n const [expanded, setIsExpanded] = useState(initialState);\n const expand = (ref) => {\n setIsExpanded(prevExpanded => !prevExpanded);\n\n if (ref.current) {\n const element = ref.current;\n if (!element.style.height || element.style.height === '0px') {\n element.style.height = Array.prototype.reduce.call(\n element.childNodes,\n (acc, child) => acc + (child.offsetHeight || 0),\n 0\n ) + 'px';\n } else {\n element.style.height = '0px';\n }\n }\n };\n\n const recalculateHeight = (ref) => {\n if (ref.current) {\n const element = ref.current;\n if (element.style.height || element.style.height !== '0px') {\n element.style.height = Array.prototype.reduce.call(\n element.childNodes,\n (acc, child) => acc + (child.offsetHeight || 0),\n 0\n ) + 'px';\n }\n }\n }\n\n const closeExpand = (ref) => {\n if (ref.current) {\n const element = ref.current;\n\n element.style.height = '0px';\n }\n };\n\n return { expanded, expand, closeExpand, setIsExpanded, recalculateHeight };\n}\n"],"sourceRoot":""}