{"version":3,"sources":["webpack:///./Scripts/Components/Wishlist.js","webpack:///./Scripts/Components/WishlistOverview.js","webpack:///./Scripts/Components/ShareWishlistButton.js","webpack:///./Scripts/Components/SharedWishlistLink.js","webpack:///./Scripts/Components/ShareWishlistContainer.js","webpack:///./Scripts/Components/Wishlist.container.js"],"names":["activeList","onRemoveItem","wishlist","useSelector","state","list","dispatch","useDispatch","useEffect","getAllWishlists","getWishlist","className","Object","keys","length","translate","values","map","item","index","key","src","image","alt","name","href","url","reducedPrice","price","onClick","sortIndex","articleNumber","target","rel","handleAddToCart","quantity","addToCart","edit","onUpdateActiveList","onUpdateWishlistName","editCurrentName","setEditCurrentName","useState","editNewName","setEditNewName","handleEdit","setHandleEdit","lists","includedInWishlists","handleDeleteList","listName","deleteWishlist","then","updatedIncludedInWishlists","filter","setIncludedInWishlists","setIsInWishlist","id","type","value","onChange","evt","val","updateEditWishlist","handleEditList","title","handleGoToList","onClose","ref","useRef","inputRef","shareLink","sharelink","activeWishlist","active","wishlistId","find","handleClickOutside","event","current","contains","document","addEventListener","removeEventListener","select","getShareLink","readOnly","copybutton","getElementById","navigator","clipboard","writeText","classList","add","setTimeout","remove","showInfo","setShowInfo","onToggle","show","payload","showError","setShowError","resetWishlistState","setActiveWishlist","async","URLSearchParams","window","location","search","get","result","addSharedWishlist","wishlistName","error","showWishlistDrawer","handleSharedWishlist","e","preventDefault","Notification","text","message","info","addAllToCart","success","articleId","x","product","listId","deleteWishlistItem","handleRemoveItem","previousName","newName","updateWishlistName","handleUpdateWishlistName"],"mappings":"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","file":"339.b8b1b516e5c0c46dbd4e.js","sourcesContent":["import React, { useEffect } from 'react';\r\nimport { translate } from '../Services/translation';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n addToCart,\r\n getAllWishlists,\r\n getWishlist,\r\n} from '../Actions/Wishlist.action';\r\n\r\nconst Wishlist = ({ activeList, onRemoveItem }) => {\r\n const wishlist = useSelector((state) => state.wishlist.list);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n dispatch(getAllWishlists());\r\n dispatch(getWishlist(activeList));\r\n }, [activeList, dispatch]);\r\n\r\n function handleAddToCart(articleNumber, quantity) {\r\n dispatch(addToCart(articleNumber, quantity));\r\n }\r\n\r\n return (\r\n <div className=\"wishlist-item__container\">\r\n {wishlist && Object.keys(wishlist).length < 1 && (\r\n <div className=\"wishlist-item__no-results\">\r\n <p>{translate('wishlist.empty')}</p>\r\n </div>\r\n )}\r\n {wishlist &&\r\n Object.values(wishlist).map((item, index) => (\r\n <div\r\n className=\"wishlist-item__wrapper\"\r\n key={`wishlist-item-${index}`}\r\n >\r\n <img\r\n className=\"wishlist-item__product-image\"\r\n src={item.image}\r\n alt={item.name}\r\n />\r\n\r\n <div className=\"wishlist-item__product-info-container\">\r\n <div className=\"wishlist-item__product-info\">\r\n <div className=\"wishlist-item__info\">\r\n <a href={item.url}>\r\n <p className=\"wishlist-item__title\">\r\n {item.name}\r\n </p>\r\n </a>\r\n </div>\r\n {item.reducedPrice ? (\r\n <p className=\"wishlist-item__price--discount\">\r\n {item.reducedPrice}\r\n </p>\r\n ) : (\r\n <p className=\"wishlist-item__price\">\r\n {item.price}\r\n </p>\r\n )}\r\n </div>\r\n <div className=\"wishlist-item__button-wrapper\">\r\n <a\r\n className=\"wishlist-item__delete\"\r\n onClick={() =>\r\n onRemoveItem(\r\n item.sortIndex,\r\n item.articleNumber\r\n )\r\n }\r\n target=\"_blank\"\r\n rel=\"noreferrer\"\r\n >\r\n {translate('wishlist.delete')}\r\n </a>\r\n <button\r\n className=\"button wishlist-item__cart-button\"\r\n onClick={() =>\r\n handleAddToCart(item.articleNumber, 1)\r\n }\r\n >\r\n {translate('wishlist.addtocart')}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Wishlist;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { translate } from '../Services/translation';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n deleteWishlist,\r\n getAllWishlists,\r\n setIsInWishlist,\r\n setActiveWishlist,\r\n setIncludedInWishlists,\r\n} from '../Actions/Wishlist.action';\r\n\r\nconst WishlistOverview = ({\r\n edit,\r\n onUpdateActiveList,\r\n onUpdateWishlistName,\r\n}) => {\r\n const [editCurrentName, setEditCurrentName] = useState('');\r\n const [editNewName, setEditNewName] = useState('');\r\n const [handleEdit, setHandleEdit] = useState(edit);\r\n const { lists, includedInWishlists } = useSelector(\r\n (state) => state.wishlist\r\n );\r\n const wishlist = useSelector((state) => state.wishlist);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n setHandleEdit(edit);\r\n }, [edit, includedInWishlists]);\r\n\r\n function updateEditWishlist(evt) {\r\n const val = evt.target.value;\r\n setEditNewName(val);\r\n }\r\n\r\n function resetWishlistState() {\r\n dispatch(setActiveWishlist(''));\r\n }\r\n\r\n function handleGoToList(listName) {\r\n onUpdateActiveList(listName);\r\n }\r\n\r\n function handleEditList(listName) {\r\n setHandleEdit(true);\r\n setEditCurrentName(listName);\r\n setEditNewName(listName);\r\n }\r\n\r\n function handleUpdateWishlistName() {\r\n onUpdateWishlistName(editCurrentName, editNewName);\r\n }\r\n\r\n function handleDeleteList(listName) {\r\n dispatch(deleteWishlist(listName)).then(() => {\r\n const updatedIncludedInWishlists = includedInWishlists.filter(\r\n (item) => item !== listName\r\n );\r\n dispatch(setIncludedInWishlists(updatedIncludedInWishlists));\r\n dispatch(getAllWishlists());\r\n if (updatedIncludedInWishlists.length === 0) {\r\n dispatch(setIsInWishlist(false));\r\n }\r\n });\r\n }\r\n\r\n return (\r\n <div className=\"wishlist-overview__container\" key={edit}>\r\n {lists && Object.keys(lists).length < 1 && (\r\n <div className=\"wishlist-overview__empty\">\r\n <p>{translate('wishlist.nowishlist')}</p>\r\n </div>\r\n )}\r\n {handleEdit && (\r\n <div className=\"wishlist-overview__edit\">\r\n <input\r\n className=\"form__input\"\r\n id=\"wishlist-name\"\r\n name=\"name\"\r\n type=\"text\"\r\n value={editNewName}\r\n onChange={(evt) => updateEditWishlist(evt)}\r\n />\r\n <div className=\"wishlist-overview__button-wrapper\">\r\n <button\r\n type=\"submit\"\r\n className=\"button button--cancel\"\r\n onClick={() => {\r\n handleDeleteList(editCurrentName);\r\n setHandleEdit(false);\r\n }}\r\n >\r\n {translate('wishlist.delete')}\r\n </button>\r\n <button\r\n type=\"submit\"\r\n className=\"button button--submit\"\r\n onClick={() => {\r\n handleUpdateWishlistName();\r\n setHandleEdit(false);\r\n }}\r\n >\r\n {translate('wishlist.save')}\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n\r\n {!handleEdit &&\r\n wishlist &&\r\n Object.values(lists).map((item, index) => (\r\n <div\r\n key={`wishlist-overview-list-item-${index}`}\r\n className=\"wishlist-overview__item\"\r\n >\r\n <p className=\"wishlist-overview__text\">{item.name}</p>\r\n <div className=\"wishlist-overview__handle-list\">\r\n <a\r\n className=\"wishlist-overview__edit-button\"\r\n onClick={() => handleEditList(item.name)}\r\n title={translate('edit')}\r\n ></a>\r\n <a\r\n className=\"wishlist-overview__delete-button\"\r\n onClick={() => handleDeleteList(item.name)}\r\n title={translate('delete')}\r\n ></a>\r\n </div>\r\n <a\r\n className=\"wishlist-overview__chevron-button\"\r\n onClick={() => handleGoToList(item.name)}\r\n title={translate('wishlist.gotolist')}\r\n ></a>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport default WishlistOverview;\r\n","import React from 'react';\r\nimport { translate } from '../Services/translation';\r\n\r\nconst ShareWishlistButton = ({ onClick }) => (\r\n <button onClick={onClick} className=\"wishlist-share__share-button\">\r\n {' '}\r\n {translate('wishlist.sharebutton')}{' '}\r\n </button>\r\n);\r\n\r\nexport default ShareWishlistButton;\r\n","import React, { useEffect, useRef } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getShareLink } from '../Actions/Wishlist.action';\r\nimport { translate } from '../Services/translation';\r\n\r\nconst SharedWishlistLink = ({ onClose }) => {\r\n const ref = useRef(null);\r\n const inputRef = useRef(null);\r\n const dispatch = useDispatch();\r\n const shareLink = useSelector((state) => state.wishlist.sharelink);\r\n const activeWishlist = useSelector((state) => state.wishlist.active);\r\n const wishlists = useSelector((state) => state.wishlist.lists);\r\n const wishlistId = wishlists.find(\r\n (wishlist) => wishlist.name === activeWishlist\r\n ).id;\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n onClose();\r\n }\r\n }\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [ref]);\r\n\r\n useEffect(() => {\r\n if (inputRef.current) {\r\n inputRef.current.select();\r\n }\r\n dispatch(getShareLink(wishlistId));\r\n }, []);\r\n\r\n const handleCopy = () => {\r\n const copybutton = document.getElementById('sharelink-copy-button');\r\n\r\n if (inputRef.current) {\r\n navigator.clipboard.writeText(inputRef.current.value);\r\n copybutton.classList.add('copied');\r\n setTimeout(() => {\r\n copybutton.classList.remove('copied');\r\n }, 2000);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"wishlist-share__container\">\r\n <div className=\"wishlist-share__info\" ref={ref}>\r\n <div className=\"wishlist-share__close-button-wrapper\">\r\n <p className=\"wishlist-share__title\">\r\n {translate('wishlist.sharelink')}\r\n </p>\r\n <span\r\n className=\"wishlist-add__close-button\"\r\n onClick={onClose}\r\n ></span>\r\n </div>\r\n <div className=\"wishlist-share__link-content\">\r\n <input\r\n type=\"text\"\r\n value={shareLink}\r\n className=\"wishlist-share__link-text\"\r\n readOnly\r\n ref={inputRef}\r\n />\r\n <button\r\n id=\"sharelink-copy-button\"\r\n onClick={handleCopy}\r\n className=\"wishlist-share__copy-button\"\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n};\r\n\r\nexport default SharedWishlistLink;\r\n","import React, { useState } from 'react';\r\nimport ShareWishlistButton from './ShareWishlistButton';\r\nimport SharedWishlistLink from './SharedWishlistLink';\r\n\r\nconst ShareWishlistContainer = (activeList) => {\r\n const [showInfo, setShowInfo] = useState(false);\r\n\r\n const onToggle = () => {\r\n setShowInfo(!showInfo);\r\n };\r\n\r\n return (\r\n <>\r\n {showInfo == true && (\r\n <SharedWishlistLink\r\n onClose={() => onToggle()}\r\n activeList={activeList}\r\n />\r\n )}\r\n <ShareWishlistButton onClick={() => onToggle()} />\r\n </>\r\n );\r\n};\r\n\r\nexport default ShareWishlistContainer;","import React, { useEffect, useRef, useState } from 'react';\r\nimport Wishlist from './Wishlist';\r\nimport { translate } from '../Services/translation';\r\nimport WishlistOverview from './WishlistOverview';\r\nimport Notification from './Notification';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport {\r\n getAllWishlists,\r\n updateWishlistName,\r\n addAllToCart,\r\n deleteWishlistItem,\r\n showWishlistDrawer,\r\n setActiveWishlist,\r\n setIsInWishlist,\r\n addSharedWishlist,\r\n getWishlist,\r\n setIncludedInWishlists,\r\n updateIncludedInWishlist,\r\n} from '../Actions/Wishlist.action';\r\nimport ShareWishlistContainer from './ShareWishlistContainer';\r\n\r\nconst WishlistContainer = () => {\r\n const wishlist = useSelector((state) => state.wishlist);\r\n const includedInWishlists = useSelector(\r\n (state) => state.wishlist.includedInWishlists\r\n );\r\n const activeList = useSelector((state) => state.wishlist.active);\r\n const showInfo = useSelector((state) => state.wishlist.show);\r\n const { payload } = wishlist;\r\n const ref = useRef(null);\r\n const [showError, setShowError] = useState(false);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n setShowError(false);\r\n const handleSharedWishlist = async () => {\r\n const queryParams = new URLSearchParams(window.location.search);\r\n const wishlistId = queryParams.get('wishlistId');\r\n if (!wishlistId) return;\r\n else {\r\n try {\r\n const result = await dispatch(\r\n addSharedWishlist(wishlistId)\r\n );\r\n dispatch(setActiveWishlist(result.wishlistName));\r\n dispatch(getAllWishlists());\r\n } catch (error) {\r\n setShowError(true);\r\n dispatch(showWishlistDrawer(false));\r\n }\r\n dispatch(showWishlistDrawer(true));\r\n }\r\n };\r\n\r\n handleSharedWishlist();\r\n dispatch(getAllWishlists());\r\n }, [dispatch, includedInWishlists]);\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (\r\n ref.current &&\r\n !ref.current.contains(event.target) &&\r\n showInfo == true\r\n ) {\r\n onToggle();\r\n }\r\n }\r\n document.addEventListener('mousedown', handleClickOutside);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [ref, showInfo]);\r\n\r\n function handleAddAllToCart(listName) {\r\n dispatch(addAllToCart(listName));\r\n }\r\n\r\n function resetWishlistState() {\r\n dispatch(setActiveWishlist(''));\r\n }\r\n\r\n async function handleRemoveItem(sortIndex, articleId) {\r\n const list = wishlist.lists.find((x) => x.name === activeList);\r\n const product = wishlist.list.find((x) => x.listId === list.id);\r\n dispatch(deleteWishlistItem(sortIndex, activeList)).then(() => {\r\n const updatedIncludedInWishlists = includedInWishlists?.filter(\r\n (item) => item !== activeList\r\n );\r\n if (\r\n product.articleNumber === articleId &&\r\n updatedIncludedInWishlists?.length === 0\r\n ) {\r\n dispatch(setIsInWishlist(false, activeList));\r\n dispatch(getWishlist(activeList));\r\n }\r\n dispatch(getWishlist(activeList));\r\n dispatch(setIncludedInWishlists(updatedIncludedInWishlists));\r\n });\r\n }\r\n\r\n async function handleUpdateWishlistName(previousName, newName) {\r\n dispatch(updateWishlistName(previousName, newName)).then(() =>\r\n dispatch(getAllWishlists())\r\n );\r\n resetWishlistState();\r\n }\r\n\r\n const onToggle = () => {\r\n dispatch(showWishlistDrawer(!showInfo));\r\n resetWishlistState();\r\n };\r\n\r\n return (\r\n <div className=\"wishlist\">\r\n <a\r\n className=\"wishlist__link--block\"\r\n rel=\"nofollow\"\r\n href=\"#\"\r\n onClick={(e) => {\r\n e.preventDefault();\r\n onToggle();\r\n }}\r\n >\r\n <i className=\"wishlist__icon\">\r\n <span className=\"hide\">\r\n {translate('wishlist.hiddentitle')}\r\n </span>\r\n </i>\r\n </a>\r\n <div\r\n className={`wishlist__info \r\n ${\r\n !showInfo\r\n ? 'wishlist__info--hidden'\r\n : 'wishlist__info--visible'\r\n }`}\r\n >\r\n <div className=\"wishlist__content-wrapper\" ref={ref}>\r\n <div className=\"wishlist__content-top\">\r\n {activeList == '' ? (\r\n <p className=\"wishlist__title\">\r\n {translate('wishlist.title')}\r\n </p>\r\n ) : (\r\n <a\r\n className=\"wishlist__title wishlist__title--link\"\r\n onClick={() => {\r\n resetWishlistState();\r\n }}\r\n >\r\n <p>{activeList}</p>\r\n </a>\r\n )}\r\n\r\n <span\r\n className=\"wishlist__close-button\"\r\n onClick={() => onToggle()}\r\n ></span>\r\n </div>\r\n {payload && payload.addToCart && (\r\n <Notification text={payload.addToCart.message} info />\r\n )}\r\n {showError && (\r\n <Notification\r\n text={translate('wishlist.sharednotfound')}\r\n />\r\n )}\r\n {payload && payload.addAllToCart && (\r\n <Notification\r\n text={payload.addAllToCart.message}\r\n info\r\n />\r\n )}\r\n {payload && payload.success == false && (\r\n <Notification text={payload.message} />\r\n )}\r\n {!activeList ? (\r\n <WishlistOverview\r\n edit={activeList !== ''}\r\n onUpdateActiveList={(listName) => {\r\n dispatch(setActiveWishlist(listName));\r\n }}\r\n onUpdateWishlistName={(previousName, newName) => {\r\n handleUpdateWishlistName(previousName, newName);\r\n }}\r\n />\r\n ) : (\r\n <>\r\n <Wishlist\r\n activeList={activeList}\r\n onRemoveItem={(sortIndex, articleId) => {\r\n handleRemoveItem(sortIndex, articleId);\r\n }}\r\n />\r\n\r\n <div className=\"wishlist__sum\">\r\n <ShareWishlistContainer\r\n activeList={activeList}\r\n />\r\n <button\r\n className=\"button wishlist__add-to-cart-button\"\r\n onClick={() => {\r\n handleAddAllToCart(activeList);\r\n }}\r\n >\r\n {translate('wishlist.addalltocart')}\r\n </button>\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default WishlistContainer;\r\n"],"sourceRoot":""}