{"version":3,"sources":["shell/valika.png","catalog/ajax-loader.gif","shell/user.jpg","services/LocalStorage.js","services/LinkService.js","shell/MessagesNavLink.js","shell/WishlistNavLink.js","profile/ProfileCard.js","shell/AccountLink.js","shell/CurrencySelect.js","services/ReturnPromise.js","services/UserService.js","shell/LanguageSelect.js","shell/TopNavigation.js","help/HelpCookiesEn.js","help/HelpCookiesCz.js","help/HelpCookiesRu.js","help/HelpCookies.js","help/HelpGDPREn.js","help/HelpGDPRCz.js","help/HelpGDPRRu.js","help/HelpGDPR.js","help/HelpTermsEn.js","help/HelpTermsCz.js","help/HelpTermsRu.js","help/HelpTerms.js","shell/Panel.js","catalog/FilterList.js","services/RouteParams.js","services/FiltersService.js","services/UrlBuilder.js","services/CatalogService.js","catalog/CountriesFilter.js","catalog/ProductCategories.js","services/ImageService.js","services/PriceService.js","catalog/ProductRating.js","catalog/CardIndicators.js","services/WishlistService.js","services/ProductService.js","catalog/QuickAccessPanel.js","catalog/ProductCard.js","catalog/ProductCardPlaceholder.js","shell/InfiniteScroll.js","catalog/LoadingIndicator.js","shell/Popup.js","catalog/ProductList.js","catalog/Catalog.js","profile/ProfileNavi.js","profile/ProfileMenu.js","profile/ProfilePage.js","profile/Wishlist.js","services/MessageService.js","messages/NewMessage.js","product/SendMessage.js","services/ValidationUtils.js","shell/FastRegistrationDialog.js","product/ProductDescription.js","product/ImageThumbnails.js","product/SmallProductCard.js","product/Rating.js","product/RateItem.js","product/ProductDetails.js","product/ReviewReply.js","product/ReviewItem.js","product/ProductReviews.js","product/Product.js","messages/MessageList.js","messages/MessageThread.js","profile/Mystuff.js","profile/UploadImageDialog.js","profile/ProfileDialog.js","profile/Profile.js","profile/ChangePassword.js","profile/EditProduct.js","errors/Error406.js","home/SinglePhotoTemplate.js","home/Template1.js","home/Template2.js","home/Template3.js","home/Template4.js","home/Template5.js","home/Template6.js","home/Template7.js","home/Template8.js","home/Template9.js","home/GridProductList.js","home/Home.js","shell/MessageAlert.js","shell/Activate.js","shell/Main.js","shell/Login.js","shell/BusinessConditionsPopup.js","shell/PersonalDataPolicyPopup.js","shell/Register.js","shell/LoginDialog.js","services/Cookies.js","shell/FooterLinks.js","shell/Footer.js","shell/ForgotPasswordModal.js","shell/GoTop.js","App.js","serviceWorker.js","i18n.js","shell/ScrollToTop.js","index.js"],"names":["module","exports","LocalStorage","getOrDefault","key","defaultValue","window","localStorage","value","getItem","undefined","JSON","parse","get","set","setItem","stringify","delete","removeItem","LinkService","getHome","this","getSmartCatalog","getCatalog","getShop","shop","country","getMessages","getMessageThread","userId","getWishlist","getMyStuff","getChangePassword","getMyStuffExisting","productId","getMyStuffNew","getProfile","getHelpTerms","getHelpGDPR","getHelpCookies","getProduct","productUrl","getProductPath","getErrors","getErrors406","getActivate","getNoCatalogImage","MessagesNavLink","renderTitle","Fragment","className","id","render","user","props","to","Nav","Link","active","location","pathname","startsWith","unreadMessagesCount","Badge","pill","variant","onClick","onLogin","Component","injectIntl","WishlistNavLink","title","wishlistCount","ProfileCard","style","padding","margin","src","avatar","rounded","width","height","name","marginTop","email","preserveAspectRatio","x","y","rx","ry","AccountLink","Form","inline","Button","marginLeft","Dropdown","as","Item","Toggle","Menu","Divider","privileges","includes","onLogout","CurrencySelect","selectCurrency","event","currency","disabled","setTimeout","reload","renderButtonText","activeCurrency","small","toUpperCase","currencies","DropdownButton","ButtonGroup","size","marginRight","map","e","eventKey","ReturnPromise","httpPromise","ignore403","then","response","status","data","Promise","reject","catch","error","USERS_ME_API","USERS_UNKNOWN_API","UserService","getCurrent","axios","resetPassword","post","login","password","activate","code","register","username","authority","lang","fastRegister","changePassword","oldPassword","newPassword","put","updateLang","update","city","about","uploadAvatar","file","FormData","append","LanguageSelect","selectLanguage","getButtonText","activeLang","langDefinitions","TopNavigation","logoStyles","MozBorderRadius","WebkitBorderRadius","borderRadius","background","MozBoxShadow","WebkitBoxShadow","boxShadow","Navbar","bg","fixed","zIndex","Container","fluid","Brand","alt","logo","aria-controls","Collapse","HelpCookiesEn","HelpCookies","Row","Col","md","HelpCookiesCz","HelpCookiesRu","HelpGDPREn","href","HelpGDPRCz","HelpGDPRRu","HelpGDPR","HelpTermsEn","HelpTermsCz","HelpTermsRu","HelpTerms","Panel","Card","marginBottom","Header","Body","children","FilterList","state","changed","sortItems","a","b","checked","localeCompare","handleChange","item","target","setState","applyFilter","items","Set","filter","Group","sort","Check","hasProducts","custom","onChange","type","label","RouteParams","search","trim","length","result","substring","split","forEach","toLowerCase","catalogCategory","RegExp","exec","r","productFurl","FiltersService","listCountries","category","params","listCategories","loadCategoryDescription","encodeUriQuery","val","pctEncodeSpaces","encodeURIComponent","replace","UrlBuilder","build","url","parts","push","indexOf","join","getCatalogPath","CatalogService","toRootCategory","setRootCountry","root","setCountry","setShop","toCategory","categoryId","CountriesFilter","countries","lastUrl","loadFilters","shops","formatMessage","intl","itself","activeCountries","componentWillMount","updateUrlAndLoadFilters","componentWillReceiveProps","nextProps","Array","from","history","withRouter","ProductCategories","activeCategory","categories","lastLocation","loadDescription","loadCategories","updateLastLocationAndLoadCategories","rootTitle","furl","ImageService","calculateImageSize","image","parent","parentNode","plannedWidth","offsetWidth","plannedHeight","naturalHeight","naturalWidth","newHeight","Math","round","newWidth","calculateTileSize","offsetHeight","sprintf","require","formats","RUB","USD","EUR","CZK","UAH","DEF","PriceService","loadCurrencyRates","convertAndShow","money","formatPrice","convertMoney","input","price","amount","convert","fromAmmount","fromCurrency","currencyRates","currentCurrency","fromRate","format","ProductRating","index","starClass","CardIndicators","product","inWishList","WISHLIST_API","WishlistService","check","head","addToWishlist","deleteFromWishlist","list","offset","limit","MY_STUFF","PRODUCTS","ProductService","myStuff","findMyStuffById","findByUrl","productByFurl","createReview","rate","anonymous","body","rating","createReviewReply","reviewId","message","replyTo","updateVisibility","isVisible","deleteProduct","uploadImage","updateProduct","QuickAccessPanel","onAddedToWishlist","removeFromWishlist","onRemovedFromWishlist","updatedProduct","onProductUpdated","brand","onRemoveProduct","ProductCard","imageError","imageLoaded","handleImageLoad","imageFallback","hidden","classNames","Img","onLoad","catalogImage","onError","Title","Subtitle","reviewsCount","ProductCardPlaceholder","InfiniteScroll","onBottom","distance","innerHeight","pageYOffset","document","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","LoadingIndicator","AjaxLoader","Popup","onConfirm","onClose","iconClass","Modal","show","onHide","centered","closeButton","xs","Footer","ProductList","products","nextUrl","scrollEnable","loading","showPopup","popupTitle","popupMessage","onPopupConfirm","doLoadProductsList","loadProducts","loadProductsList","next","loadNext","updateLastUrlAndLoadProductList","prop","replaceProduct","i","p","removeProduct","Catalog","ProfileNavi","ListGroup","action","ProfileMenu","ProfilePage","Wishlist","MessageService","listDialogs","loadMessageThread","create","fromId","markMessageThreadAsRead","unread","NewMessage","formControlRef","React","createRef","isSending","alertMessage","alertType","sendingNotAvailable","handleCloseAlert","handleSend","createdMessage","onMessageSent","current","focus","isSendingAvailable","Alert","dismissible","controlId","Control","rows","ref","placeholder","SendMessage","handleMessageSent","ValidationUtils","validateEmail","test","String","FastRegistrationDialog","showProgress","showError","handleTextFieldChange","field","isEmailValid","onRegister","Label","autoFocus","ProductDescription","showSendMessage","showFastRegistrationDialog","limitTo","sendMessage","Jumbotron","backgroundColor","description","block","onShowReviews","ImageThumbnails","selected","selectThumbnail","imageIndex","images","thumb","textAlign","cursor","err-src","middle","maxWidth","zoomImage","large","SmallProductCard","Rating","hovered","select","onSelected","renderStar","color","paddingLeft","paddingRight","onMouseLeave","onMouseEnter","RateItem","doRateItem","onItemRated","ProductDetails","otherProducts","showMoreButton","showReviews","showRateItem","lastProductId","renderDescription","properties","property","renderMoreFrom","ng-show","renderReviews","ratedAlready","reviews","review","authorId","toFixed","starRating","progress","ProgressBar","now","percent","rateItem","showReview","scrollToElement","elementId","scroll","findPos","getElementById","obj","curtop","offsetParent","offsetTop","loadOtherProducts","brandId","ProductsService","slice","resizeMoreFrom","Tabs","onSelect","activeKey","Tab","ReviewReply","textareaShown","ReviewItem","renderReviewAuthorName","authorName","Media","created","year","month","day","ProductReviews","commentLoader","Product","show404","loadProduct","precalculateProductDetails","count","sum","maxCount","max","Date","span","MessageList","messages","doLoadMessages","loadMessages","renderLoader","renderNoMessages","renderMessage","date","Table","hover","MessageThread","senderName","scrollToBottom","containsUnreadMessages","senderId","aria-hidden","unreadCount","html","documentElement","scrollHeight","clientHeight","onUpdateUserDetails","Mystuff","UploadImageDialog","imageFile","inProgress","isValid","handleUploadFile","files","doUpload","uploadFn","onImageUpload","clearUploader","Text","animated","LANGS","ProfileDialog","saving","showUploadDialog","resetForm","updateUserField","saveChanges","isFormUpdated","drop","readOnly","Profile","ChangePassword","repeatPassword","isFormValid","EditProduct","indexUnderUpload","showSavingError","productLoaded","isNew","priceAmount","priceCurrency","handlePropertyFieldChange","renderTitleAndDescription","removeImage","splice","updateUploadedImage","renderImages","SortableItem","SortableElement","SortableList","SortableContainer","axis","onSortEnd","pressDelay","oldIndex","newIndex","arrayMove","updateCategories","add","renderSort","has","renderSelling","step","min","img","saveProduct","formInvalid","Error406","SinglePhotoTemplate","classes","Template1","Template2","Template3","Template4","Template5","Template6","Template7","Template8","Template9","GridProductList","TEMPLATES","1","2","3","4","5","6","7","8","9","TEMPLATES_COUNT","Object","keys","TEMPLATES_MIN","values","unprocessed","getTemplateNum","templateNum","rand","floor","random","template","renderTemplate","Home","MessageAlert","getLocalStorageVariableName","messageId","handleDismiss","Heading","link","Activate","activated","console","log","u","c","handleLogin","accessToken","expires","renderActivated","ButtonToolbar","renderFailed","Main","getMystuff","getEditProduct","match","Switch","Route","exact","path","component","Login","UserLogo","thumbnail","onForgotPassword","BusinessConditionsPopup","PersonalDataPolicyPopup","Register","agreement","plan","showBusinessConditions","showPersonalDataPolicy","isUsernameValid","isPasswordValid","isPlanValid","isAgreementValid","handleChangeAgreement","handlePlanChange","handleRegister","LoginDialog","Cookies","options","cookie","propertyName","remove","cname","ca","decodeURIComponent","charAt","FooterLinks","currentYear","getFullYear","noGutters","ForgotPasswordModal","handleResetPassword","GoTop","scrollTop","scrollTo","handleScroll","scrollY","App","isCurrentRouteCorrect","authAllowed","anonAllowed","isPathBelongToList","reRouteIfNeeded","redirectToDefault","handleLogout","authToken","hideLogin","loadCurrentUser","showLogin","self","intervalId","setInterval","userUpdateIntervalId","getMain","showForgotPasswordModal","clearInterval","Boolean","hostname","i18n","ScrollToTop","prevProps","addLocaleData","en","cz","ru","language","navigator","userLanguage","getBrowserLang","localeLang","defaults","baseURL","headers","common","withCredentials","interceptors","request","use","xAuthToken","Image","ReactDOM","locale","BrowserRouter","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.4f3baf8e.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAjCAMAAAAt8pNWAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAF9UExURQEBAQICAmlpadfX1w0NDeTk5Hd3d3p6es7OztHR0R4eHvz8/BERERMTEwsLC1dXV9jY2NnZ2ejo6L+/v2BgYHJycvn5+RsbG2RkZENDQ0BAQBUVFaampgkJCbW1tQUFBXNzc6urq7GxsUpKSunp6cfHx8rKysbGxt/f3+Hh4eDg4GhoaPX19fv7+/r6+oGBgRYWFt7e3lhYWCEhIUlJSZubm3V1dT8/PyMjI8nJye/v72xsbOPj45CQkPT09DExMWtrax8fHxQUFCwsLIiIiG5uboaGhuXl5RISEg4ODjAwMHh4eF5eXgoKCpqamrCwsIODg1ZWVqOjo9DQ0Orq6ry8vBkZGXt7ewQEBEhISF9fX9bW1pKSkigoKPDw8NXV1UxMTOvr6x0dHVVVVSsrK729vZOTk66urgwMDNLS0pGRkQgICI+PjxcXF0JCQi0tLW9vb0FBQaqqqtvb29zc3Le3tzk5OXx8fCIiIlRUVP7+/v39/QAAAP///wMDA/bCIycAAAJpSURBVHjaYqirY6hxTuOpqUMHNb6mkTUMdXUAAcRQV1MjkljLj0WFVK0ee10NI0AAMdQYF9XW1nKwoCthqFEEiguX1QAEEIOPe21VdVUtE7qKmkLuWqC4DjtAADH41VYDQW08L6oSBkY5iEQoQAAxcLGCWFW17KgqagJrQeK13JIAAcRQwwa0BcjUCkNWUiOrCjFCpgYggBhqWIIhhriiqEiGGBGXUgMQQEDfMkEM4UTyDgNDKcSInBpGgAACquBlhhiigFBRww8xgpWrpg4ggICBVqMNMcQwtwbuCjWIEbY1jHUAAQRSwWcJMcQbrkICoickFigCEEAMIIEEiJkCnhAlNTyCEC3hID5AADGAA1gJIgIN2BoRiBHMTiA+QAAxgIUkq8CGlEiDhGr4OCAaosAaAAIIoiIiFSJmVoPkCk4+sAqAAGKAxrQY2BAbx5q6GgNBFDsBAogBGtVBEO/p1zDCooEjA6ICIIAYoP7zsoJ4x6OGhRPMqjWC+h0ggKAqGGvcIEaLwiJBrgYqBRBADLBASgKnglrm/EwwLWYOCz6AAIKpYKxxAbuEW0MXbEQ6zIg6gABigEeWhQrEsWCiVhkejQABxICIT4gfqmEJByYOEEBIKniia2EK7OwRKQEggBiQ0pU1zJDaGGCswwBAACGr4C2GGFIrxIWUIgECiAE5cTpADKnNQjKiDiCAUFRkq4PDQqgCOVEDBBADSiapBCWl2gBkI+oAAghFBQODfy0wWKVRMhdAADGg5jQTYG4uQM19AAGEpkJeuFZTHFUFQAAxoOX4PGDsogoBBBCaCgb5cjQj6gACDABGu/ZG4KpfgwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/gif;base64,R0lGODlhKwALAPEAAP///wAAAIKCggAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAKwALAAACMoSOCMuW2diD88UKG95W88uF4DaGWFmhZid93pq+pwxnLUnXh8ou+sSz+T64oCAyTBUAACH5BAkKAAAALAAAAAArAAsAAAI9xI4IyyAPYWOxmoTHrHzzmGHe94xkmJifyqFKQ0pwLLgHa82xrekkDrIBZRQab1jyfY7KTtPimixiUsevAAAh+QQJCgAAACwAAAAAKwALAAACPYSOCMswD2FjqZpqW9xv4g8KE7d54XmMpNSgqLoOpgvC60xjNonnyc7p+VKamKw1zDCMR8rp8pksYlKorgAAIfkECQoAAAAsAAAAACsACwAAAkCEjgjLltnYmJS6Bxt+sfq5ZUyoNJ9HHlEqdCfFrqn7DrE2m7Wdj/2y45FkQ13t5itKdshFExC8YCLOEBX6AhQAADsAAAAAAAAAAAA=\"","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAZABkAwERAAIRAQMRAf/EAHcAAQACAwEBAAAAAAAAAAAAAAAGBwMEBQIIAQEBAQEAAAAAAAAAAAAAAAAAAQIDEAACAgECAwMJBwUAAAAAAAAAAQIDBBEFMUESIVEGYXGBoTKi0hMWsdEiUpJTVMFCcrIUEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAMAwEAAhEDEQA/APp84uwAAAAAAAAAAAAAAAAAAOV9UbF/J9yz4SpT6o2L+T7lnwgrJV4h2a16RyoL/PWH+yQG9XbXbBTrmpwfCUWmn6URXsAAAAAAAAAAqwrIAAz4mbl4lnzMa2VUuenB+dPsfpAmmxb/AF7jF12JV5UFq4rhJd8fuCuwRQAAAAAAADgfRe1/u3/qh8BUh9F7X+7f+qHwAjFkeCsRwf8Az5FkZ8vmaSXqURSIvm4WRhZEsfIj0zjwfJrk0+4I84uTbjZFeRU9LK31R+5+RgWTj3xvx6r4ezbGM4690lqRplAAAAAAAAAAAEU8bxh8zDkkutqxN89F06fay4mouEWB4blOWyYrlx6ZL0KTS9QXHTIoAAAAAAAByvqjYv5PuWfCVKxZHi3aK63Kqcr58oRjKPb5XJIFRHc9yv3DKd9ui7OmEFwjFcgjVjGUpKMU3JvRJdrbYFlbfjPGwaMd+1XCMZacOpLt9ZGmwAAAAAAAAAqwrIAAlXhrw7ZCyObmQ6XHtppku3X80k+GnILiUkUAAAAAAAAAVYVlu7PhVZu5U4trlGuzq6nHTX8MXLs1T7gJvg7HtmE1KmlOxcLZ/ilr5G+HoCt8igAAAAAAAAABHLfCWyUx6rsm2uP5pzrivXEqRs7Z4c2zGyK8zGustcNeluUJReqcf7YrvA7RFAAAAAAAAAADHfbGmmy6fsVxc5eaK1YFcZ2dkZuRK++TlKT7Fyiu5eQrLPs253YGZCcZNUyaV0OTi/6oCxCNAAAAAAAAAAB4srjZXKuS1jNOMl5GtAK93LZ83AulCyuUq17NyT6WvPy8xWWzsexZWXlV2WVyhiwalOclp1Jco68dQJ4RoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//Z\"","const LocalStorage = {\n getOrDefault: function (key, defaultValue) {\n if (window.localStorage) {\n const value = window.localStorage.getItem(key);\n if (value === null || value === undefined || value === \"undefined\") {\n return JSON.parse(defaultValue);\n } else {\n return JSON.parse(value);\n }\n } else {\n return defaultValue;\n }\n\n },\n\n get: function (key) {\n if (window.localStorage) {\n const value = window.localStorage.getItem(key);\n\n if (value === null || value === undefined || value === \"undefined\") {\n return value;\n } else {\n return JSON.parse(value);\n }\n }\n return undefined;\n },\n\n set: function (key, value) {\n if (window.localStorage) {\n window.localStorage.setItem(key, JSON.stringify(value));\n }\n },\n\n delete: function (key) {\n if (window.localStorage) {\n window.localStorage.removeItem(key);\n }\n }\n};\n\nexport default LocalStorage;\n","import LocalStorage from \"./LocalStorage\";\n\nconst LinkService = {\n getHome: function () {\n return this.getSmartCatalog();\n },\n\n getCatalog: function () {\n return \"/catalog\";\n },\n\n getShop: function (shop) {\n return this.getCatalog() + \"?shop=\" + shop;\n },\n\n getSmartCatalog: function () {\n let country = LocalStorage.get(\"country\");\n if (country !== undefined && country !== null) {\n return this.getCatalog() + \"?country=\" + country;\n } else {\n return this.getCatalog();\n }\n },\n\n getMessages: function () {\n return \"/messages\";\n },\n\n getMessageThread: function (userId) {\n return \"/messages/\" + userId;\n },\n\n getWishlist: function () {\n return \"/wishlist\";\n },\n\n getMyStuff: function () {\n return \"/mystuff\";\n },\n\n getChangePassword: function () {\n return \"/change-password\";\n },\n\n getMyStuffExisting: function (productId) {\n return \"/mystuff/\" + productId;\n },\n\n getMyStuffNew: function () {\n return this.getMyStuffExisting(\"new\");\n },\n\n getProfile: function () {\n return \"/profile\";\n },\n\n getHelpTerms: function () {\n return \"/help/terms\";\n },\n\n getHelpGDPR: function () {\n return \"/help/gdpr\";\n },\n\n getHelpCookies: function () {\n return \"/help/cookies\";\n },\n\n getProduct: function (productUrl) {\n return this.getProductPath() + \"/\" + productUrl;\n },\n\n getProductPath: function () {\n return \"/product\";\n },\n\n getErrors: function () {\n return \"/errors\";\n },\n\n getErrors406: function () {\n return this.getErrors() + \"/406\"\n },\n\n getActivate: function () {\n return \"/activate\"\n },\n\n getNoCatalogImage: function () {\n return \"data:image/gif;base64,R0lGODlhQAFAAeMAAMzMzJaWlrGxscXFxaqqqr6+vqOjo5ycnLe3t8zMzMzMzMzMzMzMzMzMzMzMzMzMzCH5BAEKAA8ALAAAAABAAUABAAT+EMhJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv/8CgcEgsGo/IpHLJbDqf0Kh0Sq1ar9isdsvter/gsHhMLpvP6LR6zW673/C4fE6v2+/4vH7P7/v/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAwocSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx4/+IEOKHEmypMmTKFOqXMmypcuXMGPKnEmzps2bOHPq3Mmzp8+fQIMKHUq0KEIEAhBIDMC0qQALTaM2nWGgqYGIUplCzTo1BgGpBCByDUuBa1cYXMWmLWs2gIy1aqOSrSCVxle5S7NeqEvjgNWJXK/SjWoDqVLAcCfw3Wn2wOCzOtselrD4AgG/AQ7M/YC5MoDOASYLOHBAMIWqByZvEFA182YNlzMbOEwYA2umpVXXautYcW0Ld7O+3mD2MdOrCECHliAALAflTJ9maC31atPeFZoHxiUVtHQAniVQ3+6hONuo46MiSM9Ut/Gs3yuwJ08hOFfstKQiiIo9/P627Xn+AJ1bFAwIYFb4vZfYBNoduBwF/wEYnyx1SSVdeKARMMAA9iXIQXjgZXVVg9cBEOGDW2U2QYYpMqXhAMlhKNeGJxKYH2H2ERgefwX+Vp6PvqkX5HFDDrdigjxCmKQEA+z4F4NC3tiVhSFCBoB98Z04IXFAUgbkklUGYFoHYF4Z1YSekahaAXhJqZWZhHk2XgEUsPnkj1Z6aSWYZXJp5ZzvyRfVAMaNGcti+nkGGqETNFniByB6xmeXGdRYwaKB9phnn68sRqJymZ73Jp6jimqjnioOeSpwBq7q5J4O5tmpj62GqioIkX7pI4gAzCdpl7/GuioslZEYbKmoDqtBrrD+QgYie5odO6y0B+4GpIG2JosrpdKaasGJGt7qbbbCpjqLZzVaiWmjnGbALLKVhTceo9pqyhS99a5IaS4y6nVaVHROYCeRkHKrq7PAHowsoONOMB4w/i2IJQUkbrmswc2W+iq8QFacLYkQU8peBSfiB1oI77q6a5egBZzvkAfQ6+imTb3WnMXE7uuvvQG82CHKGHOMcJ4d0llAehaAZkABMIJ66ZkO1+zmzuJFfKB7GLTaG3QKqhqg17wpGeu3Y5/bVovK5lhdwWeHmfHXXMVnLICCOniBr7K6QncF9mGgtovbtr1gVrTBlx1XMXbJHtKWNWbL3sbBhplmImgtAdfOptqIuGWYmdauAX4d8BSvEsQmG84ytTuU6kKhZxTFbb7+WZRBEbCZ00G1+jVQeAM+FN6o94SA6aUFL/vxyCev/PLMN+/889BHL/301Fdv/fXYZ6/99tx37/334Icv/vjkl2/++einr/767Lfv/vvwxy///PTXb//9+Oev//789+///wAMoAAHSMACGvCACEygAhfIwAY68IEQjKAEJ0jBClrwghjMoAY3yMEOevCDIAyhCEdIwhKa8IQoTKEKV8jCFrrwhTCMoQxnSEPmRQAAOw==\";\n }\n\n};\n\nexport default LinkService;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport LinkService from \"../services/LinkService\";\nimport Badge from \"react-bootstrap/Badge\";\nimport Nav from \"react-bootstrap/Nav\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\n\nclass MessagesNavLink extends Component {\n renderTitle = () => {\n return (\n \n  \n \n \n );\n };\n\n render = () => {\n const {user} = this.props;\n return (\n \n {user &&\n \n \n {this.renderTitle()}\n {user.unreadMessagesCount > 0 &&\n \n  \n \n {user.unreadMessagesCount}\n \n \n }\n \n \n }\n {!user &&\n \n {this.renderTitle()}\n \n }\n \n )\n }\n}\n\nMessagesNavLink.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired\n};\n\nexport default injectIntl(MessagesNavLink);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Nav from \"react-bootstrap/Nav\";\nimport LinkService from \"../services/LinkService\";\nimport {FormattedMessage} from \"react-intl\";\nimport Badge from \"react-bootstrap/Badge\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\n\nclass WishlistNavLink extends Component {\n title = () => {\n return (\n \n  \n \n \n );\n };\n\n render = () => {\n const {user} = this.props;\n return (\n \n {user &&\n \n \n {this.title()}\n {user.wishlistCount > 0 &&\n \n  \n \n {user.wishlistCount}\n \n \n }\n \n \n }\n {!user &&\n \n {this.title()}\n \n }\n\n \n )\n }\n}\n\nWishlistNavLink.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired\n};\n\nexport default WishlistNavLink;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Image from \"react-bootstrap/Image\";\nimport ContentLoader from \"react-content-loader\";\n\nclass ProfileCard extends Component {\n render = () => {\n const {user} = this.props;\n return (\n \n {user &&\n
\n

\n \n

\n

{user.name}

\n

\n {user.email}\n

\n
\n }\n {!user &&\n \n \n \n \n \n }\n
\n )\n }\n}\n\nProfileCard.propTypes = {\n user: PropTypes.object,\n};\n\nexport default ProfileCard;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {FormattedMessage} from \"react-intl\";\nimport Button from 'react-bootstrap/Button'\nimport Form from 'react-bootstrap/Form'\nimport Dropdown from 'react-bootstrap/Dropdown'\nimport Nav from 'react-bootstrap/Nav'\nimport LinkService from \"../services/LinkService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport ProfileCard from \"../profile/ProfileCard\";\n\nclass AccountLink extends Component {\n render = () => {\n const {user} = this.props;\n return (\n \n {!user &&\n
\n \n / \n \n \n }\n {user &&\n \n \n  \n {user.name}\n \n \n \n \n \n \n \n {user.privileges.includes(\"SHOP\") &&\n \n \n \n }\n \n \n \n \n \n \n }\n
\n )\n }\n}\n\nAccountLink.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onLogout: PropTypes.func.isRequired,\n};\n\nexport default AccountLink;\n","import React, {Component} from 'react';\nimport ButtonGroup from \"react-bootstrap/ButtonGroup\";\nimport {FormattedMessage} from \"react-intl\";\nimport Dropdown from \"react-bootstrap/Dropdown\";\nimport DropdownButton from \"react-bootstrap/DropdownButton\";\nimport LocalStorage from \"../services/LocalStorage\";\nimport PropTypes from 'prop-types'\n\nclass CurrencySelect extends Component {\n selectCurrency = (event, currency) => {\n if (currency.disabled) {\n return;\n }\n LocalStorage.set(\"currency\", currency.id);\n setTimeout(() => {\n window.location.reload();\n }, 300);\n };\n\n renderButtonText = (activeCurrency) => {\n if (this.props.small) {\n return (\n \n  \n {activeCurrency.toUpperCase()}\n \n );\n } else {\n return (\n \n  \n \n );\n }\n };\n\n render() {\n const activeCurrency = LocalStorage.getOrDefault(\"currency\", \"\\\"eur\\\"\");\n const currencies = [{\n id: 'czk',\n disabled: activeCurrency === 'czk'\n }, {\n id: 'eur',\n disabled: activeCurrency === 'eur'\n }, {\n id: 'usd',\n disabled: activeCurrency === 'usd'\n }, {\n id: 'rub',\n disabled: activeCurrency === 'rub'\n }, {\n id: 'uah',\n disabled: activeCurrency === 'uah'\n }];\n\n let variant = this.props.small ? \"link\" : \"outline-light\";\n let className = this.props.small ? \"nav-selector\" : \"\";\n\n return (\n \n {\n currencies.map(currency => {\n return (\n this.selectCurrency(e, currency)}\n disabled={currency.disabled}\n eventKey={currency.id}\n key={currency.id}>\n \n \n )\n })\n }\n \n )\n }\n}\n\nCurrencySelect.propTypes = {\n small: PropTypes.bool.isRequired\n};\n\nexport default CurrencySelect;\n","import LinkService from \"./LinkService\";\n\nconst ReturnPromise = {\n get: function (httpPromise, ignore403 = false) {\n return httpPromise\n .then(response => {\n if (response.status >= 200 && response.status < 300) {\n return response.data;\n }\n\n return Promise.reject(response);\n })\n .catch(error => {\n if (error.response && error.response.status === 403 && !ignore403) {\n window.location = LinkService.getHome();\n }\n\n return Promise.reject(error);\n });\n }\n};\n\nexport default ReturnPromise;","import axios from \"axios/index\";\nimport ReturnPromise from \"./ReturnPromise\";\n\nconst USERS_API = \"/api/v1/users\";\nconst VISITORS_API = \"/api/v1/visitors\";\nconst USERS_ME_API = `${USERS_API}/me`;\nconst USERS_UNKNOWN_API = `${USERS_API}/unknown`;\n\nconst UserService = {\n getCurrent: function () {\n return ReturnPromise.get(axios.get(USERS_ME_API), true);\n },\n\n resetPassword: function (email) {\n return ReturnPromise.get(\n axios\n .post(USERS_UNKNOWN_API, {\n email: email,\n\n }));\n },\n\n login: function (email, password) {\n return ReturnPromise.get(\n axios\n .post(\"/api/v1/login\", {\n email: email,\n password: password\n\n }));\n },\n\n activate: function (user, code) {\n return ReturnPromise.get(\n axios\n .post(\"/api/v1/activate\", {\n user: user,\n code: code\n }));\n },\n\n register: function (username, email, password, authority, lang) {\n return ReturnPromise.get(\n axios\n .post(USERS_API, {\n lang: lang,\n username: username,\n email: email,\n password: password,\n authority: authority\n }));\n },\n\n fastRegister: function (email, username, lang) {\n return ReturnPromise.get(axios.post(VISITORS_API, {lang: lang, email: email, username: username}));\n },\n\n changePassword: function (oldPassword, newPassword) {\n return ReturnPromise.get(axios.put(`${USERS_ME_API}/password`, {oldPassword: oldPassword, newPassword: newPassword}));\n },\n\n updateLang: function (lang) {\n return ReturnPromise.get(axios.put(USERS_ME_API, {\n lang: lang\n }));\n },\n\n update: function (update) {\n return ReturnPromise.get(axios.put(USERS_ME_API, {\n country: update.country,\n city: update.city,\n about: update.about,\n avatar: update.avatar\n }));\n },\n\n uploadAvatar: function (file) {\n const data = new FormData();\n data.append('Files', file);\n return ReturnPromise.get(axios.post(`${USERS_ME_API}/avatar`, data));\n }\n};\n\nexport default UserService;\n","import React, {Component} from 'react';\nimport Dropdown from 'react-bootstrap/Dropdown'\nimport ButtonGroup from 'react-bootstrap/ButtonGroup'\nimport DropdownButton from \"react-bootstrap/DropdownButton\"\nimport {FormattedMessage} from \"react-intl\"\nimport LocalStorage from \"../services/LocalStorage\"\nimport UserService from \"../services/UserService\"\nimport PropTypes from 'prop-types'\n\nclass LanguageSelect extends Component {\n selectLanguage = (event, lang) => {\n if (lang.disabled) {\n return;\n }\n LocalStorage.set(\"language\", lang.id);\n if (this.props.user) {\n UserService.updateLang(lang.id);\n }\n setTimeout(() => {\n window.location.reload();\n }, 300);\n };\n\n getButtonText = () => {\n if (this.props.small) {\n return (\n \n  \n \n )\n } else {\n return (\n \n  \n \n )\n }\n };\n\n render() {\n const activeLang = LocalStorage.getOrDefault(\"language\", null);\n const langDefinitions = [{\n id: \"cz\",\n title: \"Čeština\",\n disabled: activeLang === \"cz\"\n }, {\n id: \"en\",\n title: \"English\",\n disabled: activeLang === \"en\"\n }, {\n id: \"ru\",\n title: \"Русский\",\n disabled: activeLang === \"ru\"\n }];\n\n let variant = this.props.small ? \"link\" : \"outline-light\";\n let className = this.props.small ? \"nav-selector\" : \"\";\n\n return (\n \n {\n langDefinitions.map(lang => {\n return (\n this.selectLanguage(e, lang)}\n disabled={lang.disabled}\n eventKey={lang.id}\n key={lang.id}>\n {lang.title}\n \n )\n })\n }\n \n )\n }\n}\n\nLanguageSelect.propTypes = {\n user: PropTypes.object,\n small: PropTypes.bool.isRequired,\n};\n\nexport default LanguageSelect;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Navbar from 'react-bootstrap/Navbar'\nimport Nav from 'react-bootstrap/Nav'\nimport Container from 'react-bootstrap/Container'\nimport LinkService from \"../services/LinkService\"\nimport {FormattedMessage} from \"react-intl\";\nimport MessagesNavLink from \"./MessagesNavLink\"\nimport WishlistNavLink from \"./WishlistNavLink\"\nimport AccountLink from \"./AccountLink\"\nimport logo from \"./valika.png\"\nimport LinkContainer from 'react-router-bootstrap/lib/LinkContainer'\nimport CurrencySelect from \"./CurrencySelect\";\nimport LanguageSelect from \"./LanguageSelect\";\n\nclass TopNavigation extends Component {\n logoStyles = {\n padding: \"2px 4px\",\n MozBorderRadius: 5,\n WebkitBorderRadius: 5,\n borderRadius: 5,\n background: \"black\",\n MozBoxShadow: \"0 0 3px #444\",\n WebkitBoxShadow: \"0 0 3px #444\",\n // boxShadow: \"0 0 3px #444\",\n boxShadow: \"rgb(68, 68, 68) 0px 0px 3px\"\n };\n\n render = () => {\n const {user} = this.props;\n return (\n \n \n \n \n \n   Valika\n \n \n \n \n \n\n \n\n \n \n \n \n )\n }\n}\n\nTopNavigation.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onLogout: PropTypes.func.isRequired\n};\n\nexport default TopNavigation;\n","import React, {Component} from 'react';\n\nclass HelpCookiesEn extends Component {\n render() {\n return (\n \n

General information

\n

Cookies are small text files that a website stores on a user's hard disk or mobile device. Often,\n this is a setting\n that makes it easier for the user to use the site. Some features are not available without\n cookies.

\n

Valika.org does not use cookies to identify personally of its users.

\n

We store the following types of cookies:

\n
    \n
  • Technical cookies that are necessary to ensure basic site functionality (session identifier).\n
  • \n
  • Third-party cookies designed to measure anonymous user behavior and traffic tracking data using\n Google Analytics\n to better customize pages for users.\n
  • \n
\n\n

Cookies settings

\n
    \n
  • Rules for using or blocking cookies can be set by each user in their web browser.
  • \n
  • The user can set permission or reject all or only some cookies. Blocking cookies will negatively\n affect the\n usability of the website and valika.org.\n
  • \n
  • The user can change his or her choice of cookies at any time. The user may delete already saved\n cookies in their\n internet browser.\n
  • \n
  • Detailed information on how cookies can be stored in the browser can be found on the web\n browser's website\n
  • \n
\n
\n )\n }\n}\n\nexport default HelpCookiesEn;\n","import React, {Component} from 'react';\n\nclass HelpCookiesEn extends Component {\n render() {\n return (\n \n

Obecné informace

\n

Cookies jsou krátké textové soubory, které si internetové stránky ukládají na pevný disk počítače\n nebo mobilního\n zařízení uživatele. Často jde o nastavení, které uživateli usnadní používání stránek. Některé funkce\n není možné bez\n cookies využívat.

\n

Na valika.org nepoužíváme cookies za účelem osobní identifikace uživatelů.

\n

Ukládáme následující druhy cookies:

\n
    \n
  • Technické cookies, které jsou nezbytné pro zajištění základní funkčnosti stránek (identifikátor\n session).\n
  • \n
  • Cookies třetích stran určené pro měření anonymních dat o chování uživatelů a sledování\n návštěvnosti pomocí\n Google Analytics za účelem lepšího přizpůsobení stránek pro uživatele.\n
  • \n
\n\n

Nastavení cookies

\n
    \n
  • Pravidla pro používání nebo zablokování cookies si může každý uživatel nastavit ve svém\n internetovém\n prohlížeči.\n
  • \n
  • Uživatel si může nastavit povolení nebo odmítnutí veškerých nebo pouze některých souborů\n cookies. Zablokování\n souborů cookies bude mít negativní vliv na použitelnost webové stránky a služby valika.org.\n
  • \n
  • Uživatel může svou volbu ohledně nastavení cookies kdykoliv změnit. Uživatel může již uložené\n soubory cookies\n vymazat ve svém internetovém prohlížeči.\n
  • \n
  • Detailní informace o nastavení ukládání souborů cookies v prohlížeči lze nalézt na stránkách\n poskytovatele\n konkrétního internetového prohlížeče\n
  • \n
\n
\n )\n }\n}\n\nexport default HelpCookiesEn;\n","import React, {Component} from 'react';\n\nclass HelpCookiesEn extends Component {\n render() {\n return (\n \n

Общая информация

\n

Cookies - это небольшие текстовые файлы, которые веб-сайт хранит на жестком диске или мобильном\n устройстве\n пользователя. Часто это параметр, который облегчает пользователю использование сайта. Некоторые\n функции недоступны\n без файлов cookie.

\n

Valika.org не использует файлы cookie для идентификации пользователей.

\n

Мы сохраняем следующие типы файлов cookie:

\n
    \n
  • Технические файлы cookie, необходимые для обеспечения базовой функциональности сайта\n (идентификатор session).\n
  • \n
  • Сторонние файлы cookie, предназначенные для измерения поведения анонимного пользователя и\n отслеживания трафика с\n помощью Google Analytics для лучшей настройки страниц для пользователей.\n
  • \n
\n\n

Настройки файлов cookie

\n
    \n
  • Правила использования или блокировки файлов cookie могут устанавливаться каждым пользователем в\n их\n веб-браузере.\n
  • \n
  • Пользователь может установить разрешение или отклонить все или только некоторые файлы cookie.\n Блокировка файлов\n cookie будет отрицательно влиять на удобство использования веб-сайта valika.org.\n
  • \n
  • Пользователь может в любое время изменить свой выбор файлов cookie. Пользователь может удалить\n уже сохраненные\n файлы cookie в своем интернет-браузере.\n
  • \n
  • Подробную информацию о том, как файлы cookie можно хранить в браузере, можно найти на веб-сайте\n браузера\n
  • \n
\n
\n )\n }\n}\n\nexport default HelpCookiesEn;\n","import React, {Component} from 'react';\nimport LocalStorage from \"../services/LocalStorage\";\nimport HelpCookiesEn from \"./HelpCookiesEn\";\nimport HelpCookiesCz from \"./HelpCookiesCz\";\nimport HelpCookiesRu from \"./HelpCookiesRu\";\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\n\nclass HelpCookies extends Component {\n render = () => {\n const lang = LocalStorage.getOrDefault(\"language\", null);\n return (\n \n \n \n {lang === \"en\" && }\n {lang === \"cz\" && }\n {lang === \"ru\" && }\n \n \n )\n }\n}\n\nexport default HelpCookies;\n","import React, {Component} from 'react';\n\nclass HelpGDPREn extends Component {\n render() {\n return (\n \n

Personal data policy for Valika users

\n\n

General conditions

\n

Valika places great emphasis on personal data protection. Right from the beginning, we protect the\n data of our users\n as best we can. Sensitive data (such as the login password) is encrypted, we never send the contact\n information\n until the order has being created, or the law does not impose it.

\n

The purpose of this document is to inform you of the scope and manner of storing your personal data,\n your rights and\n the form in which you can exercise your rights.

\n\n

Managed personal information

\n

On Valika we store and manage the personal information of our users. The scope of the data differs\n based on the role\n of the user. It depends on whether you are a buyer or a seller, and whether you are registered or\n not.

\n\n

Registered user at Valika.org

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
EntryPurpose / DescriptionOptionalPublic
E-mail addressBasic unique account identifierNONO
Login passwordSaved in encrypted formNONO
IP address of registrationThe address from which the account was createdNONO
Information about bank accountIt will be used to generate the invoice to the customer and will be displayed to the\n customer only after his\n purchase request\n YESNO
Residence (State and City)The information will be displayed on the Valika.orgYESYES
ordering details, orders, amounts paid, payments made, etc.NONO
\n\n\n

Buyer

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
EntryOptionalPublic
Email addressNONO
Name and surnameNONO
Delivery addressNONO
ordering details, orders, amounts paid, payments made, etc.NONO
\n\n

Purpose and method of processing personal data

\n

We process your personal data in several different ways for next purposes:

\n\n

Purchase and sale of goods and services at Valika.org

\n

In order to mediate your order, we need to know and further process your personal information. We\n process these data\n solely for the purpose of mediating the conclusion of the purchase contract and the legal basis for\n such processing\n is the fulfillment of the purchase contract.

\n

We collect your personal data from you solely on the basis of your registration at Valika.org or by\n filling in your\n details on a shopping cart website.

\n

The processing time of these data is for the duration of the order, plus a period of at least 10\n years, as the tax\n law so requires.

\n\n

Marketing comunication

\n

If you give us your consent, we will use your personal information (e-mail address) to send news\n about products,\n merchandise, promotions and news at Valice. Your email address will be never forwarded to third\n parties and you may\n revoke your consent to the marketing communications at any time by clicking the link provided in\n each email or in\n your account.

\n\n

Email support

\n

In case you contact us through one of our contact emails or a contact form, we may ask you to provide\n unambiguous\n identification information to help verify your eligibility. We have to archive our email\n communication. The legal\n basis for such processing is our legitimate interest.

\n\n

Cookies

\n

When you use our website, your personal data can be processed through cookies. Learn more about how\n we use cookies here.

\n\n

Your rights as a data subject or what to do when you want to delete or edit your personal\n information

\n

If you wish to exercise the following rights and / or obtain the relevant information, you can do so\n by logging in to\n your customer account on Valika.org. If you do not have an account with us and have made a purchase\n without\n registration, but would still like to exercise one of the following rights to protect your privacy,\n you can contact\n us via e-mail info@valika.org.

\n

To sign in to your account, you need your login (username / email and password). If you exercise your\n rights in a\n different way, we may ask you to provide unambiguous identification information that will serve to\n verify the\n legitimacy of your request. We will respond within 1 month after receiving your request, but we\n reserve the right to\n extend this period according to the technical and time requirements of your request.

\n

In accordance with applicable law, you have the right to request access to our personal data that we\n process as a\n personal data administrator, the right to repair or delete it. You may also, at any time, withdraw\n consent to the\n processing of certain personal data (such as marketing data) that you have provided us with.

\n

So what are your rights?

\n\n

Deleting your personal information

\n

Whenever you can ask us to delete your personal information. If you contact us with such a request,\n we will delete\n all your personal data without delay, unless we, however, need your personal data to fulfill\n contractual and legal\n obligations or to protect our legitimate interests as described above.

\n\n

Canceling a buyer's account

\n
    \n
  1. If the buyer placed an order, we are required to store his order data for at least 10 years\n after the account\n was canceled.\n
  2. \n
  3. If the purchaser has not made any order, his or her data may be deleted at his / her request,\n except for data\n relating to the purposes of ensuring system and network security (IP address).\n
  4. \n
\n\n

Canceling the Seller's Account

\n
    \n
  1. If the seller has executed a mediated order, we have to store his order data for at least 10\n years after the\n account is canceled.\n
  2. \n
  3. If the seller has not accepted an order, his or her data may be deleted at his / her request,\n except for data\n relating to the purposes of ensuring system and network security (IP address).\n
  4. \n
\n\n

Fix your personal information

\n

You have the right to correct your personal information. If you have an account on valika.org, you\n can edit this\n information directly after logging in to your account. Some data can not be corrected directly (for\n example, invoice\n information), then please contact us via email or contact form.

\n\n

Revocation of consent

\n

You may at any time revoke your consent to process certain personal data (e.g., data for marketing\n purposes) without\n giving any reason. Please note that the revocation of your consent does not affect the legality of\n any processing\n performed on the basis of previously granted consent.

\n\n

Your other rights

\n

Please note that under the General Data Protection Regulation, you have the right, in addition to the\n next:

\n
    \n
  • ask us for information about how we process your personal information
  • \n
  • request an explanation for us regarding the processing of personal data
  • \n
  • request us access to these data
  • \n
\n
\n )\n }\n}\n\nexport default HelpGDPREn;\n","import React, {Component} from 'react';\n\nclass HelpGDPRCz extends Component {\n render() {\n return (\n \n

Zásady práce s osobními údaji pro uživatele internetového portálu Valika

\n\n

Obecná ustanovení

\n

Valika klade na ochranu osobních údajů velký důraz. Již od počátku chráníme údaje našich uživatelů co\n nejlépe\n dovedeme. Citlivá data (jako například přihlašovací heslo) jsou šifrována, kontaktní údaje nikdy\n nepředáváme do\n doby, než je zprostředkována samotná objednávka či pokud nám to neukládá zákon.

\n

Účelem tohoto dokumentu je informovat vás o rozsahu a způsobu ukládání vašich osobních údajů, vašich\n právech a o\n formě jakou můžete svá práva uplatňovat.

\n\n

Spravované osobní údaje

\n

Na Valice ukládáme a spravujeme osobní údaje našich uživatelů. Rozsah údajů se liší dle role\n uživatele. Záleží tedy\n na tom, zdali jste nakupující či prodávající a také, zda jste registrováni či nikoliv.

\n\n

Registrovaný uživatel na Valika.org

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
údajúčel/popis.volitelnéveřejné
E-mailová adresaZákladní unikátní identifikátor účtuNENE
Přihlašovací hesloUloženo v šifrované podoběNENE
IP adresa registraceUkládá se adresa, ze které byl účet založenNENE
Informace o bankovním účtuPoužije se při generování faktury zákazníkovi a bude zobrazena zákazníkovi pouze po jeho\n žadosti o nákup.\n ANONE
Bydliště (Stát a Město)Informace bude zobrazena na webových stránkách Valika.orgANOANO
údaje o objednaném zboží, provedených objednávkách, zaplacených částkách, provedených\n platbách apod.\n NENE
\n\n\n

Nakupující

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
údajvolitelnéveřejné
E-mailová adresaNENE
Jméno a příjmeníNENE
Adresa dodacíNENE
údaje o objednaném zboží, provedených objednávkách, zaplacených částkách, provedených\n platbách apod.\n NENE
\n\n

Účel a způsob zpracování osobních údajů

\n

Vaše osobní údaje zpracováváme několika různými způsoby a pro odpovídající účely:

\n\n

Nákup a prodej zboží a služeb na Valika.org

\n

Abychom mohli zprostředkovat vaši objednávku potřebujeme znát a dále zpracovávat vaše osobní údaje.\n Tyto údaje\n zpracováváme výhradně za účelem zprostředkování uzavření kupní smlouvy a právním základem takového\n zpracování je\n tedy plnění kupní smlouvy.

\n

Tyto osobní údaje od vás získáváme výhradně na základě vaší registrace na Valika.org případně\n vyplněním vašich údajů\n na webové stránce s nákupním košíkem.

\n

Doba zpracování těchto údajů je po dobu vyřizování objednávky plus dobu minimálně 10 let, neboť tak\n nám to přikazuje\n daňový zákon.

\n\n

Marketingová komunikace

\n

V případě, že nám udělíte souhlas, budeme vaše osobní údaje (e-mailovou adresu) využívat pro zasílání\n novinek o\n výrobcích, zboží, akčních cenách a novinkách na Valice. V žádném případě nebude vaše e-mailová\n adresa předána třetím\n stranám a váš souhlas se zasíláním marketingových sdělení můžete kdykoliv a s okamžitou platností\n odvolat kliknutím\n na odkaz uvedený v každé emailové zprávě nebo ve svém účtu.

\n\n

E-mailová podpora

\n

V případě, že nás kontaktujete na některém z našich kontaktních emailů nebo pomocí kontaktního\n formuláře, můžeme vás\n požádat o poskytnutí jednoznačných identifikačních informací, které poslouží k ověření oprávněnosti\n vašeho\n požadavku. E-mailovou komunikaci s vámi archivujeme. Právním základem takového zpracování je náš\n oprávněný\n zájem.

\n\n

Cookies

\n

Při používání našich internetových stránek může docházet ke zpracování vašich osobních údajů\n prostřednictvím cookies.\n Více informací o tom, jak používáme cookies, naleznete tady.

\n\n

Vaše práva jako subjektu údajů aneb co dělat, když chci své osobní údaje smazat nebo upravit

\n

Pokud si přejete uplatnit níže uvedená práva a/nebo získat příslušné informace, můžete tak učinit\n rovnou přihlášením\n se do svého zákaznického účtu na stránkách Valika.org. Pokud u nás nemáte vytvořený účet a provedli\n jste nákup bez\n registrace, ale přesto byste rádi uplatnili některé z níže uvedených práv k ochraně svého soukromí,\n můžete nás\n kontaktovat prostřednictvím e-mailu info@valika.org.

\n

Pro přihlášení ke svému účtu potřebujete své přihlašovací údaje (uživatelské jméno/e-mail a heslo).\n Pokud budete svá\n práva uplatňovat jiným způsobem, můžeme vás požádat o poskytnutí jednoznačných identifikačních\n informací, která\n poslouží k ověření oprávněnosti vašeho požadavku. Odpovíme vám do 1 měsíce po obdržení vaší žádosti,\n přičemž si však\n vyhrazujeme právo tuto lhůtu prodloužit dle technické a časové náročnosti vašeho požadavku.

\n

V souladu s platnými právními předpisy máte právo požadovat přístup ke svým osobním údajům, které\n jako správce\n osobních údajů zpracováváme, právo na jejich opravu nebo vymazání. Můžete také kdykoliv vzít zpět\n souhlas se\n zpracováním některých osobních údajů (např. údajů k marketingovým účelům), který jste nám\n poskytli.

\n

Jaká jsou tedy vaše práva?

\n\n

Vymazání vašich osobních údajů

\n

Kdykoliv nás můžete požádat o vymazání vašich osobních údajů. Pokud nás oslovíte s takovou žádostí,\n smažeme bez\n zbytečného odkladu všechny vaše osobní údaje, které máme, pokud však vaše osobní údaje nepotřebujeme\n pro plnění\n smluvních a zákonných povinností či ochranu našich oprávněných zájmů, jak jsou popsány výše.

\n\n

Zrušení účtu nakupujícího

\n
    \n
  1. Pokud nakupující provedl objednávku, jeho údaje týkající se objednávky jsme povinni uchovávat po\n dobu minimálně\n 10 let od zrušení účtu.\n
  2. \n
  3. Pokud nakupující neprovedl žádnou objednávku jeho data mohou být na jeho žádost smazána s\n výjimkou těch údajů,\n která se týkají účelů zajištění bezpečnosti provozu systému a sítě (IP adresa).\n
  4. \n
\n\n

Zrušení účtu prodávajícího

\n
    \n
  1. Pokud prodávající zrealizoval zprostředkovanou objednávku, jeho údaje týkající se objednávky\n jsme povinni\n uchovávat po dobu minimálně 10 let od zrušení účtu.\n
  2. \n
  3. Pokud prodávající nepřijal žádnou objednávku jeho data mohou být na jeho žádost smazána s\n výjimkou těch údajů,\n která se týkají účelů zajištění bezpečnosti provozu systému a sítě (IP adresa).\n
  4. \n
\n\n

Oprava vašich osobních údajů

\n

Máte právo na opravu svých osobních údajů. Pokud máte účet na stránkách valika.org, můžete tyto údaje\n upravit přímo\n po přihlášení do svého účtu. Některé údaje není možné opravit přímo (například údaje uvedené na\n faktuře), pak nás\n prosím kontaktujte prostřednictvím e-mail nebo kontaktního formuláře.

\n\n

Odvolání platnosti souhlasu

\n

Udělený souhlas ke zpracování některých osobních údajů (např. údajů pro marketingové účely) můžete\n kdykoliv odvolat\n bez uvedení důvodů. Berte prosím na vědomí, že odvolání vašeho souhlasu nemá vliv na zákonnost\n jakéhokoliv\n zpracování prováděného na základě dříve uděleného souhlasu.

\n\n

Vaše další práva

\n

Vezměte prosím na vědomí, že podle zákona o ochraně osobních údajů máte, kromě výše jmenovaných, také\n právo:

\n
    \n
  • požadovat po nás informaci, jaké vaše osobní údaje zpracováváme
  • \n
  • požadovat po nás vysvětlení ohledně zpracování osobních údajů
  • \n
  • vyžádat si u nás přístup k těmto údajům
  • \n
\n
\n )\n }\n}\n\nexport default HelpGDPRCz;\n","import React, {Component} from 'react';\n\nclass HelpGDPRRu extends Component {\n render() {\n return (\n \n

Политика персональных данных для пользователей Valika

\n\n

Общие положения

\n

Мы уделяем большое внимание защите персональных данных. С самого начала мы старались как можно лучше\n защищать данные\n наших пользователей. Чувствительные данные (такие как пароль) шифруются, мы никогда не отправляем\n контактную\n информацию до тех пор, пока не будет создан сам заказ, или этого не требует закон.

\n

Цель даного документа - сообщить вам о размерах и способе хранения ваших личных данных, ваших прав и\n того, как вы\n можете использовать свои права.

\n\n

Обработка личной информации

\n

На Valiks мы храним личную информацию наших пользователей. Объем данных различается в зависимости от\n роли\n пользователя. К примеру это зависит от того, являетесь ли вы покупателем или продавцом,\n зарегистрированы ли вы на\n сайте или нет.

\n\n

Зарегистрированный пользователь Valika.org

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
объектцель/описаниенеобязательнопубличное
Email адресБазовый уникальный идентификатор учетной записиНЕТНЕТ
ПарольСохранено в зашифрованном видеНЕТНЕТ
IP-адрес регистрацииАдрес, с которого была создана учетная записьНЕТНЕТ
Информация о банковском счетеИспользуется для создания счета-фактуры и будет отображено клиенту только после его запроса\n на покупку.\n ДАНЕТ
Место проживания (страна и город)Informace bude zobrazena na webových stránkách Valika.orgДАДА
заказы, суммы, платежи и т.д.НЕТНЕТ
\n\n\n

Покупатель

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
объектнеобязательнопубличное
Email адресНЕТНЕТ
Имя и фамилияНЕТНЕТ
Адрес доставкиНЕТНЕТ
заказы, суммы, платежи и т.д.НЕТНЕТ
\n\n

Цель и способ обработки персональных данных

\n

Мы обрабатываем ваши личные данные несколькими способами для достижения следующих целей:

\n\n

Покупка и продажа товаров и услуг в Valika.org

\n

Чтобы создать ваш заказ, нам необходимо знать и обрабатывать вашу личную информацию. Мы обрабатываем\n эти данные\n исключительно с целью оповестить вас о заключении договора купли-продажи и проведению вашего\n заказа.

\n

Мы собираем ваши личные данные исключительно на основании вашей регистрации на Valika.org или путем\n заполнения ваших\n данных в корзине покупок.

\n

Мы обрабатываем эти данных на протяжении всего заказа, а также период не менее 10 лет, как того\n требует налоговый\n закон.

\n\n

Маркетинговое общение

\n

Если вы дадите нам свое согласие, мы будем использовать вашу личную информацию (адрес электронной\n почты), чтобы\n отправлять новости о продуктах, товарах, рекламных акциях и новостях на Valika. Ваш адрес\n электронной почты ни в\n коем случае не будет перенаправлен третьим лицам, и вы можете в любое время отозвать свое согласие\n на маркетинговые\n сообщения, щелкнув ссылку, указанную в каждом электронном письме или учетной записи.

\n\n

Поддержка по электронной почте

\n

В случае, если вы свяжетесь с нами через наш контактный email или контактную форму, мы можем\n попросить вас\n предоставить однозначную идентификационную информацию, чтобы подтвердить вашу правомочность вашего\n запроса. Мы\n архивируем электронную почту с вами, правовой основой такой обработки является наш законный\n интерес.

\n\n

Cookies

\n

Когда вы используете наш сайт, ваши личные данные могут обрабатываться через файлы cookie. Узнать\n больше о том, как\n мы используем файлы cookie вы можете здесь.

\n\n

Ваши права как субъекта данных или что делать, когда я хочу удалить или изменить свою личную\n информацию

\n

Если вы хотите использовать следующие права и / или получить соответствующую информацию, вы можете\n сделать это, войдя\n в свою учетную запись на Valika.org. Если у вас нет учетной записи и вы совершили покупку без\n регистрации, но\n по-прежнему хотели бы воспользоваться одним из следующих прав для защиты вашей конфиденциальности,\n вы можете\n связаться с нами по электронной почте info@valika.org.

\n

Чтобы войти в свою учетную запись, вам нужен ваш логин (имя пользователя / адрес электронной почты и\n пароль). Если вы\n используете свои права по-другому, мы можем попросить вас предоставить однозначную идентификационную\n информацию,\n которая будет служить для проверки законности вашего запроса. Мы ответим в течение 1 месяца после\n получения вашего\n запроса, но мы оставляем за собой право продлить этот период в соответствии с техническими и\n временными требованиями\n вашего запроса.

\n

В соответствии с действующим законодательством вы имеете право запрашивать доступ к нашим личным\n данным, которые мы\n обрабатываем как администратор персональных данных, право на его восстановление или удаление. Вы\n также можете в\n любое время отозвать согласие на обработку определенных персональных данных (таких как маркетинговые\n данные),\n которые вы нам предоставили.

\n

Итак, каковы ваши права?

\n\n

Удаление вашей личной информации

\n

Всякий раз, когда вы можете попросить нас удалить вашу личную информацию. Если вы обратитесь к нам с\n таким запросом,\n мы незамедлительно удалим все ваши личные данные, если только нам не нужны ваши личные данные для\n выполнения\n договорных и юридических обязательств или для защиты наших законных интересов, как описано выше.

\n\n

Отмена учетной записи покупателя

\n
    \n
  1. Если покупатель разместил заказ, мы должны хранить его данные заказа не менее 10 лет после\n отмены учетной\n записи.\n
  2. \n
  3. Если покупатель не сделал какого-либо заказа, его или ее данные могут быть удалены по его / ее\n запросу, за\n исключением данных, относящихся к целям обеспечения безопасности системы и сети (IP-адрес).\n
  4. \n
\n\n

Отмена счета продавца

\n
    \n
  1. Если продавец выполнил опосредованный заказ, мы должны сохранить его данные заказа не менее 10\n лет после отмены\n учетной записи.\n
  2. \n
  3. Если продавец не принял заказ, его или ее данные могут быть удалены по его / ее запросу, за\n исключением данных,\n относящихся к целям обеспечения безопасности системы и сети (IP-адрес).\n
  4. \n
\n\n

Исправление вашей личной информации

\n

Вы имеете право исправить вашу личную информацию. Если у вас есть учетная запись на valika.org, вы\n можете\n редактировать эту информацию непосредственно после входа в свою учетную запись. Некоторые данные не\n могут быть\n скорректированы напрямую (например, информация о счете), а затем, пожалуйста, свяжитесь с нами по\n электронной почте\n или в контактной форме.

\n\n

Отзыв согласия

\n

Вы можете в любое время отозвать свое согласие на обработку определенных персональных данных\n (например, данных для\n маркетинговых целей) без объяснения причин. Обратите внимание, что аннулирование вашего согласия не\n влияет на\n законность любой обработки, выполненной на основании ранее предоставленного согласия.

\n\n

Ваши другие права

\n

Обратите внимание, что в соответствии с Законом о защите личных данных у вас также есть право в\n дополнение к\n вышесказанному:

\n
    \n
  • отправить нам запрос о том, как мы обрабатываем вашу личную информацию
  • \n
  • запросить у нас разъяснения относительно обработки персональных данных
  • \n
  • запросить доступ к этим данным
  • \n
\n
\n )\n }\n}\n\nexport default HelpGDPRRu;\n","import React, {Component} from 'react';\nimport LocalStorage from \"../services/LocalStorage\";\nimport HelpGDPREn from \"./HelpGDPREn\";\nimport HelpGDPRCz from \"./HelpGDPRCz\";\nimport HelpGDPRRu from \"./HelpGDPRRu\";\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\n\nclass HelpGDPR extends Component {\n render = () => {\n const lang = LocalStorage.getOrDefault(\"language\", null);\n return (\n \n \n \n {lang === \"en\" && }\n {lang === \"cz\" && }\n {lang === \"ru\" && }\n \n \n )\n }\n}\n\nexport default HelpGDPR;\n","import React, {Component} from 'react';\n\nclass HelpTermsEn extends Component {\n render() {\n return (\n \n

Business conditions of Valika

\n

By registering at, and utilizing, the Internet server Valika (hereinafter the Server), the user\n assents to the\n following contractual terms. The following text represents a stipulation by and between the operator\n of the portal\n and the registered visitor.

\n

Short summary of rules

\n
    \n
  • Valika is a trading spot which intermediates the sale and purchase of hand-made goods of wool\n between the Seller\n and the Buyer. Valika is not the seller of the Goods.\n
  • \n
  • Registration at Valika is free.
  • \n
  • The Buyer does not pay any charges or commission to Valika.
  • \n
  • The Seller undertakes to pay (see below) the provider (i.e. Valika) the commission for the\n intermediation of the\n sale which comes into force and effect by the confirmation of the order by the Buyer. If the\n Buyer does not pay\n the price of the Goods (and, therefore, does not receive the Goods), the Seller may apply for a\n deduction from\n the commission in any of the subsequent months.\n
  • \n
  • Valika, as the operator of the server, does not sell Goods and therefore shall not be\n responsible for the Goods\n being sold (for the correctness of the image of the Goods, their quality, availability, etc.)\n and shall not be\n responsible for the process of purchase and sale, for any complaints and/or any eventual\n disputes between the\n Buyer and Seller. Valika shall also not be responsible for cases where it is revealed that the\n identity of the\n registered user is not correct. Valika does not verify the identity of Sellers and/or Buyers.\n
  • \n
  • Valika does not participate in the content of the offers, description of the Goods, or\n information on the\n registered users.\n
  • \n
  • The users of Valika are obliged to adhere to the legislation of the EU and to respect the\n fundamentals of good\n manners. Treat others as you would like to be treated.\n
  • \n
\n\n

I. CONDITIONS OF USE

\n

Trading activities at Valika are public activities and they are available to registered physical\n persons 18 years of\n age or over and registered legal entities that have full capacity to enter legal acts, except for\n Users whose\n registration was cancelled by the Provider.

\n

Neither Users nor applicants for concluding a contract have any legal title to use the Valika server\n or to conclude\n any contracts. The Provider reserves the right to refuse registration to any applicant for\n registration and/or to\n withdraw from a contract with any existing User or to restrict their access to some services, even\n without\n specifying the reasons.

\n

The Provider does not guarantee, in any way, the maintenance and/or preservation of any and all User\n data, and the\n continuity of operation of the service.

\n\n

II. REGISTRATION

\n

The condition for the sale and/or purchase of Goods through Valika is the approval of this Contract\n and free\n registration of the User.

\n

A User who is a physical person shall register, specifying their first name, surname, full address\n (permanent or\n temporary), e-mail address, telephone number, username and password. The User shall inform Valika of\n any and all\n changes to the above data and to update such data regularly.

\n

The Provider is permitted to provide to a Seller or to a Buyer any necessary data about the\n counterparty (by reason\n of sending the Goods, filing a complaint, etc.), including full name, telephone number, place of\n permanent or\n temporary abode, and vice versa.

\n

Users have access to their data and may change them. Users are also authorized to apply for their\n removal from the\n database after finishing their activities at Valika.

\n

Users are entitled to own more than one user account; however, it is forbidden to use one or more of\n their accounts\n for breaking this Contract (e.g. manipulation of the accounts for the purpose of hiding one’s\n identity, or for\n manipulative promotion).

\n

The registration is confirmed using an automatically sent e-mail confirmation. Registrations not\n verified in this way\n are non-functional and invalid.

\n\n

III. COMMISSION FOR THE SALE OF GOODS

\n

The placing of goods is free for the seller..

\n

Server Valika charges the commission for the intermediation of the sale only.

\n

The seller is obligated to pay the commission for the arranging of the sale based on the monthly\n bill. If the buyer\n does not pay (and therefore does not assume), the seller is obligated to mark the listing commission\n and the\n commission compensate of discounts in the next month.

\n

The seller is informed by e-mail about a summary of the sales commission for the calendar month.\n Server Valika issues\n to the seller an invoice automatically through electronic invoices for printing.

\n

Maturity commission is always indicated on the invoice (the maturity date is the day when the amount\n is credited to\n the bank account operator), the payment due date may be penalized. Payments operator only accepts\n payments via\n internetbanking.

\n

In case that the commission will not be paid on time, the operator is entitled to cancel the account\n of the user to\n remove his goods from the menu, do not allow re-registering with Valika and recover the amount due\n in court.

\n

Valika server is not obliged to resolve any disputes between the seller and the buyer and claim the\n goods, the seller\n is not entitled to recover the commission in a dispute with the buyer.

\n

The commission amount is 10% of the selling price of goods. The server Valika reserves the right to\n change the amount\n of commission.

\n

Valika is not obliged to settle any disputes that may arise between the Seller and the Buyer, and the\n Seller shall\n not be entitled to request the return of the commission in the event of any disputes with the\n Buyer.

\n\n

IV. FORBIDDEN GOODS

\n

It is forbidden to offer Goods, the offer, sale, purchase or use of which is in conflict with good\n manners or valid\n legal regulations. It is forbidden, in particular, to offer Goods which do not conform to the focus\n of activity of\n the server, Goods to which the Seller has no right of sale, or Goods which are mortgaged or\n otherwise have their\n dispositions restricted. Furthermore, it is forbidden to sell guns, alcohol, intoxicating or\n psychotropic\n substances, pornographic materials or otherwise disturbing pornographic or erotic materials, Goods\n which violate\n intellectual property rights (i.e. those which break rights to registered trademarks and/or marks of\n origin, illegal\n duplications of author crafts, etc.), or Goods intended for the promotion and dissemination of the\n beliefs and\n opinions of extreme leftwing or extreme rightwing movements.

\n\n

Kupující bere na vědomí, že zboží, které vkládá do košíku, může pocházet od více prodávajících a\n zboží, které\n objednává v jedné objednávce, nemusí být akceptováno celé a také nemusí být dodáno současně.

\n

The Provider reserves the right to remove such forbidden Goods from the system.

\n

The Provider also reserves the right to remove, in exceptional cases, such Goods from the system\n without even stating\n any reasons.

\n\n

V. PURCHASE OF THE GOODS

\n

The Buyer selects the Goods from the Sellers, being aware that Valika is not the seller and that the\n separate Goods\n come from the Sellers, who are Registered Users of Valika. The Provider is not liable, in any way,\n for the Goods\n being sold. The Provider thus only mediates the sale and purchase of hand-made goods.

\n

The Buyer acknowledges that the Goods they place in their shopping cart may come from several Sellers\n and the Goods\n the Buyer orders within one order are not necessarily to be accepted as a whole and are not\n necessarily to be\n supplied all at once.

\n

The Buyer acknowledges that by sending the order they only inform the Seller of their intention to\n buy such Goods,\n while the Goods shall only be sent after the confirmation of the order by the Seller(s) and the\n payment of the\n amount due for the Goods by the Buyer.

\n

The Buyer acknowledges that the Seller is entitled to reject an order as a whole or in part. In such\n cases, the Buyer\n shall pay only for the confirmed part of the order.

\n

The Buyer does not pay any charges or commission to the Provider for the mediation of the sale. The\n Goods are paid\n for directly in advance to the Seller’s bank account (or otherwise, as per the payment terms of the\n Seller).

\n\n

VI. SALE OF THE GOODS

\n

The Sellers are allowed to offer their own new hand-made goods of wool through Valika, as per the\n following\n definitions:

\n
    \n
  • Hand-made goods of wool are goods created personally with creative invention. Hand-made goods\n must be unused.\n
  • \n
  • Other goods allowed for sale are manuals, on-line courses and documents closely related to\n hand-made and\n creative production.\n
  • \n
\n

Each item published in the selling part of the server must be specific Goods intended for sale. The\n Goods must be\n categorized according to the nature of the Goods.

\n

Neither the type of Goods nor their image or description may contain contact information about the\n Seller (name,\n surname, telephone number, e-mail, web page, etc.). Such contact information (or encouraging them to\n search for it\n elsewhere via the Internet) must not be present in any other written or visual sale-related\n elements, such as\n comments, discussions, blogs, etc.

\n

Neither the type of Goods nor their description may contain any key words used for the purpose of\n manipulating search\n results.

\n

Neither the caption of the Goods nor their description may contain elements of HTML, JavaScript, Java\n and other\n programming languages, especially with the intention of affecting the content or marketability of\n the Goods or\n otherwise impairing or jeopardizing the functionality of the Valika server.

\n

The Goods that are offered and their image and description must fully and truly represent the reality\n (in the case of\n photographs, we also recommend using optional photographs). The depiction of the Goods and their\n description must\n sufficiently inform the Buyer as to minimize any possibility of confusion or erroneous notion of the\n visitors about\n the depicted Goods.

\n

It is forbidden to use photographs which may violate copyright law (e.g. photographs from magazines,\n photographs for\n which the Seller has no copyright, etc.).

\n

It is forbidden to offer for sale Goods which violate copyright law (e.g. reproductions of licensed\n artworks,\n etc.).

\n

It is forbidden to offer services (except for the offers in the Courses category); the subject of\n trading is always\n Goods – tangible things. Such tangible things include electronic works captured on tangible media\n (CD, hard drive,\n etc.).

\n

It is forbidden to sell any Goods for the manufacture and/or sale of which the Seller has no\n corresponding\n authorizations (e.g. foodstuffs without adherence to sanitary standards, products made of precious\n metals which are\n not registered at the assay office, etc.).

\n

It is forbidden to sell Goods which are not hand-made by the Seller or a selling team, or to resell\n Goods made by\n another Seller, except for any Goods modified by the Seller (e.g. processed materials or hand-made\n products\n creatively manipulated or processed and sold without the original author’s knowledge).

\n

If it is necessary to use computer simulation or computer retouching which fundamentally changes the\n character and\n substance and/or use of the Goods or which, for some reason, cannot inform the Buyer fully about the\n nature of the\n Goods (e.g. 2-D or 3-D visualization, an offer of Goods from previous sales with some elements\n changed, graphic\n designs for prints, etc.), the Seller must call proper attention to this fact in the description of\n the Goods or\n directly in the picture (e.g.: “the picture is for reference only”, “the picture is a 3-D\n visualization”, etc.).

\n

The Seller displays the Goods through an electronic form where all required items must be stated.

\n\n

Payment and Delivery Conditions

\n

All prices stated by the Seller are final prices with VAT.

\n

The Seller is entitled to delete the Goods offered at any time or to hide them for an indefinite\n period of time. The\n Seller may also change and edit the description of the Goods.

\n

The Seller is informed of the intention of the Buyer through the Valika’s mail service and also\n through a listing in\n the Order section. Such information is not binding and the Seller may withdraw from it by rejection\n of the\n order.

\n

After receiving the notice of an order, the Seller is allowed to accept the order in part only by\n marking suitable\n items only. The Seller is then required to supply to the Buyer only those items which have been\n acknowledged.

\n

The Seller undertakes to dispatch the Goods as soon as practicable after the receipt, confirmation\n and payment of the\n order, without unnecessary delay.

\n

The Seller is forbidden to communicate in any way (using internal mail or e-mail) with the customers\n of Valika about\n the possibility of sales outside Valika (including, but not limited to, links to the Seller’s own\n e-shop,\n instructions on how to find the Seller’s own e-shop, and/or the exchange of contact information) or\n the possibility\n of exchanging Goods without their purchase through Valika (reciprocal service by compensation or\n mutual\n trade-off).

\n

The Provider warns that the Goods presented or changes to their specifications may be displayed with\n a certain time\n displacement (caused by storing the temporary files on the part of the Users or caused by temporary\n files on the\n part of the server).

\n

Delivery is defined out of good’s price. Author packs and sends thing to the\n customer.\n Delivery time is based on author’s and customer’s location.

\n

At present we do not accept online payments. Therefore, the deposit can only be paid by means of a\n bank transfer into\n the account which we will provide in the email reply to your reservation request. In Future we are\n planning to\n accept online payments via PayPal and credit cards.

\n\n

How to sell

\n

For selling at web-site “Valika - world of tame wool” is necessary:

\n
    \n
  1. Sign up
  2. \n
  3. Fill in information about author.
  4. \n
  5. Place photos of items.
  6. \n
  7. Fill in information about item: material, size, price and description.
  8. \n
\n

To pay attention please!

\n
    \n
  • Delivery fee is included in item’s price.
  • \n
  • Web-site doesn’t take part in payments between seller and buyer. Buyer pays directly to\n author.\n
  • \n
\n

Placing of the items at the Valika.org is free of fees.

\n

Additional possibilities

\n

Registered authors have the next additional possibilities:

\n
    \n
  • Personal author’s shop. Every author has own shop’s adress of third level like as\n author's-name.valika.org.\n
  • \n
  • Author can place the adress/link to his own shop in his/her blogs or in livejournal.com\n (Function is presented\n in Author’s profile at page of \"Shop's settings\").\n
  • \n
\n\n

VII. OTHER RULES FOR NON-SALE SECTIONS

\n

It is forbidden to publish direct personal data in the comments, discussion and other community\n elements of the\n server.

\n

It is forbidden to insert advertising notices or hyperlinks of an advertising nature except for the\n support of the\n User’s own business at Valika (however, not by links that lead outside the Valika server).

\n

It is forbidden to perform any activities which may be classified as spam. These include, for\n example, sending\n repeated or bulk advertising or otherwise annoying information using internal mail, or placing\n repeated or bulk\n advertising or otherwise annoying information in the discussions or comments.

\n

It is forbidden to perform any activities which may be classified as unfair competition (e.g. to\n register any\n usernames which may, through eventual confusion, aggrieve the original Seller, to communicate or\n solicit Goods with\n a view to confusing the identity of the Seller or of the Goods, etc.).

\n

It is forbidden to use community elements of the server (discussions, comments, etc.) to publicly\n undermine the\n authority of the Provider, or otherwise to express disloyalty towards the Provider and/or employees\n of the Provider\n by one’s behaviour.

\n

It is forbidden to publicly impair or attack the Sellers and the Buyers. A negative evaluation (User\n Evaluation\n section) is not classified as impairment. In the event of disputes we recommend solving them through\n internal mail\n or by contacting the Provider. The Provider is not accountable, in any way, for any disputes that\n may arise.

\n\n

VIII. PROTECTION OF PERSONAL DATA

\n

The User is required to provide true information. The Provider protects any and all information sent\n upon\n registration by Act No. 101/2000 Coll., on the protection of personal data, as amended, as per the\n legislation of\n the Czech Republic and the EU, except for handing over such information to the counterparty at the\n moment of the\n completion of a purchase agreement under valid legislation.

\n

The Registered User accepts that upon the completion of a sale, any and all personal data are handed\n over to the\n counterparty (solely), i.e. to the Seller or to the Buyer. These include, in particular, their name,\n surname,\n address and telephone number.

\n

The Provider shall also be entitled to hand over a reasonable portion of personal data in the event\n of any complaints\n about the quality of Goods or failure to deliver Goods.

\n\n

IX. CONSENT TO THE USE OF PHOTOGRAPHS

\n

By uploading any and all photographs, the Seller gives permission for the photographs of the Goods to\n be used for the\n promotional purposes of Valika in order to popularize the server Valika. The Seller also agrees that\n Valika may\n submit the photographs to third parties (e.g. women’s magazines, fashion servers, etc.) but solely\n for the purpose\n of popularizing Valika..

\n

Each photograph or set of photographs used in such a way shall be marked with the Valika's logo or\n with the text\n ‘www.valika.org’ in a way that makes it evident that such a product is being sold throughValika.

\n

The Provider undertakes not to use photographs uploaded by Users for purposes other than to\n popularize the server,\n and that the Provider shall deal with third parties in a similar way.

\n

The Provider declares that it shall make all efforts to inform the Seller in advance of any and all\n particular use of\n any and all photographs uploaded by the User.

\n\n

X. FINAL DISPOSITIONS

\n

The Provider reserves the right to terminate this Contract (i.e. to exclude from participation in\n Valika) those\n Sellers and Buyers who violate the rules of Valika and/or who are not willing to cooperate with the\n administration\n of Valika in resolving standard or exceptional situations.

\n

The Contract concluded under these business conditions shall be governed by the legislation of the\n Czech Republic and\n the EU. The Provider reserves the right to change the provision of any services, as well as to amend\n these business\n conditions, even without prior notice.

\n

The Contract may be terminated by a notice in the form of signing off by the User or by the Provider.\n Such\n termination comes into effect at the moment of the declaration of the wish and the delivery of the\n wish by\n e-mail.

\n
\n )\n }\n}\n\nexport default HelpTermsEn;\n","import React, {Component} from 'react';\n\nclass HelpTermsCz extends Component {\n render() {\n return (\n \n

Podmínky připojení

\n

Registrací a užíváním internetového serveru Valika dává uživatel souhlas s těmito podmínkami.

\n

Pravidla užívání

\n

Valika je obchodním místem, které zprostředkovává prodej a nákup rukodělných výrobků z vlny mezi\n prodávajícím a\n kupujícím.

\n
    \n
  • Registrace a propagace zboží prodávajícího na Valika je zcela zdarma.
  • \n
  • Kupující platí zboží přímo prodávajícímu -převodem na účet nebo na dobírku, provozovateli Valika\n už nic\n neplatí.\n
  • \n
  • Prodávající je povinen uhradit (viz. níže) provozovateli serveru Valika provizi za\n zprostředkování prodeje, tato\n povinnost vzniká prodávajícímu ve chvíli potvrzením objednávky od kupujícího a zaplacením zboží.\n Pokud kupující\n neuhradí cenu za zboží (a zboží tedy neobdrží) může prodávající zažádat o slevu z provizí v\n některém z dalších\n měsíců. Provize z prodeje se platí jednou měsíčně na základě uskutečněných prodejů.\n
  • \n
  • Provozovatel serveru Valika neprodává vlastní zboží a není zodpovědný za prodávané zboží\n (správnost vyobrazeného\n zboží, jeho kvalitu, vlastnosti, dostupnost apod.) a není odpovědný za koupi, prodej, reklamaci\n či za případné\n spory mezi kupujícím a prodávajícím. Provozovatel serveru Valika rovněž neodpovídá za případy,\n kdy se ukáže, že\n identita registrovaného uživatele nebyla správná. Provozovatel serveru Valika identitu\n prodávajících a\n kupujících neprověřuje.\n
  • \n
  • Provozovatel serveru Valika se nepodílí na obsahu nabídek, popisu zboží, jeho vyobrazení a\n informacích o\n registrovaných uživatelích.\n
  • \n
  • Uživatelé serveru Valika jsou povinni dodržovat právní řád ČR a dodržovat dobré mravy.
  • \n
\n\n

I. PODMÍNKY UŽÍVÁNÍ

\n

Obchodní aktivity na serveru Valika jsou veřejné a mohou se jich zúčastnit zaregistrované fyzické\n osoby starší 18 let\n a zaregistrované právnické osoby, které mají způsobilost k právním úkonům v plném rozsahu, s\n výjimkou uživatelů,\n kterým byla provozovatelem zrušena registrace.

\n

Registrovaní uživatelé ani zájemci o uzavření smlouvy nemají žádný právní nárok na užívání serveru\n Valika nebo na\n uzavření smlouvy. Provozovatel si vyhrazuje právo nepovolit registraci zájemci o ni, popř. odstoupit\n od smlouvy se\n stávajícím uživatelem nebo omezit jeho přístup k některým službám a to i bez udání důvodu.

\n

Provozovatel nijak nezaručuje udržování a uchovávání všech dat uživatelů, nepřetržitost a trvalou\n kontinuitu\n provozu.

\n

Při užívání serveru Valika platí pravidla uvedená výše.

\n\n

II. REGISTRACE

\n

Podmínkou zprostředkování prodeje zboží nebo jeho koupě prostřednictvím serveru Valika je souhlas s\n touto smlouvou a\n bezplatná registrace uživatele.

\n

Uživatel, který je fyzickou osobou, je povinen při registraci zadat jméno, příjmení, plnou adresu\n (stálou či\n přechodnou), e-mailovou adresu, telefonní číslo, uživatelské jméno a heslo. Uživatel, který je\n právnickou osobou,\n uvede své obchodní jméno (název), IČ, sídlo, e-mailovou adresu, telefonní číslo, jméno a příjmení\n osoby, které za\n něj jedná, uživatelské jméno a heslo. Uživatel je povinen provozovatele serveru Valika informovat o\n změně\n kteréhokoliv z těchto údajů (opravou těchto údajů ve svém účtu) a udržovat tyto údaje aktuální.

\n

Provozovatel je oprávněn poskytnout prodávajícímu či kupujícímu nezbytné údaje o protistraně (z\n důvodu zaslání zboží,\n jeho reklamace apod.), včetně jeho jména a příjmení, obchodního jména (názvu), telefonního čísla,\n místa trvalého či\n přechodného pobytu, sídla.

\n

Uživatelé mají přístup ke svým údajům a mohou je měnit. Uživatelé jsou také oprávněni zažádat o\n jejich odstranění z\n databáze po ukončení činnosti na serveru Valika.

\n

Uživatelé jsou oprávněni vlastnit více než jeden uživatelský účet, nejsou však oprávněni těchto účtů\n používat k\n porušování této smlouvy či k získání výhody vícenásobného používání omezených funkcí (např.\n manipulace s účty za\n účelem skrývání identity, manipulativní podpoře prodeje apod.). Všichni vlastníci vícenásobných účtů\n jsou povinni o\n svých dalších účtech informovat v profilu účtu.

\n

Registrace se ověřuje pomocí automaticky zasílaného e-mailového potvrzení. Registrace, které nejsou\n takto potvrzeny,\n jsou nefunkční a neplatné. Potvrzením registrace je uzavřena smlouva mezi provozovatelem serveru\n Valika a\n uživatelem.

\n

Registrace je vždy vázána na konkrétního uživatele a její převod na jinou osobu není bez souhlasu\n provozovatele\n serveru povolen.

\n\n

III. ZAKÁZANÉ ZBOŽÍ

\n

Je zakázáno nabízet zboží, jehož nabídka, prodej, koupě či užívání je v rozporu s dobrými mravy či\n platnými právními\n předpisy. Zakázáno je zejména nabízet zboží, které neodpovídá zaměření serveru, dále zboží, k němuž\n nemá prodávající\n vlastnické právo nebo právo je prodávat nebo zboží, které je zastaveno nebo jsou dispozice vlastníka\n s ním jinak\n omezeny, zbraně, alkohol, omamné či psychotropní látky, léky, zdravotnické potřeby, pornografii, či\n jinak pobuřující\n pornografické nebo erotické materiály, zboží, jehož prostřednictvím dochází k porušování duševního\n vlastnictví\n (porušování práv k ochranným známkám, označení původu, nelegální rozmnoženiny autorských děl apod.),\n zboží určené k\n propagaci a šíření názorů extrémní levice či extrémní pravice, směřující k potlačení práv a svobod\n člověka nebo\n hlásá národnostní, rasovou, náboženskou či třídní zášť nebo zášť vůči jiné skupině osob.

\n

Provozovatel si vyhrazuje právo odstranit zakázané zboží ze systému.

\n

Provozovatel si také vyhrazuje právo ve výjimečných případech odstranit zboží ze systému i bez udání\n důvodu.

\n\n

IV. NÁKUP ZBOŽÍ

\n

Kupující vybírá zboží od prodejců s vědomím, že Valika není prodejcem zboží a že jednotlivé zboží\n pochází od prodejců\n - registrovaných uživatelů serveru Valika, od nichž si kupující zboží kupuje. Provozovatel za\n prodávané zboží nijak\n neodpovídá.

\n

Kupující bere na vědomí, že zboží, které vkládá do košíku, může pocházet od více prodávajících a\n zboží, které\n objednává v jedné objednávce, nemusí být akceptováno celé a také nemusí být dodáno současně.

\n

Poštovné je v ceně zboží.

\n

Kupující bere na vědomí, že odesláním objednávky pouze informuje prodávající o zájmu nakoupit toto\n zboží, ale zboží\n bude zasláno až ve chvíli potvrzení objednávky na straně prodávajícího (prodávajících) a uhrazení\n částky za zboží\n kupujícím.

\n

Kupující bere na vědomí, že prodávající má právo objednávku odmítnout, nebo její část. V tomto\n případě hradí pouze\n schválenou část objednávky.

\n

Kupující neplatí žádný poplatek nebo provizi za zprostředkování prodeje provozovateli. Zboží platí\n přímo prodejci a\n to předem na účet prodávajícího (či jinak, dle platebních podmínek prodejce).

\n\n

V. PRODEJ ZBOŽÍ

\n

V. I. Definice zboží

\n

Server Valika je primárně určen k prodeji nového kreativního rukodělného zboží z vlny tvořeného\n prodávajícím.

\n\n

V. II. Prodávající

\n

Prodávajícím se běžně rozumí fyzická osoba nebo právnická osoba za kterou jedná fyzická osoba.

\n\n

V. III. Pravidla při umisťování zboží

\n

Každá uveřejněná položka v prodejní části serveru musí být konkrétním zbožím určeným k prodeji (je\n zakázáno vkládat\n zboží pouze na ukázku).

\n

Prodávající vystavuje zboží prostřednictvím elektronického formuláře, ve kterém je povinen uvést\n všechny povinné\n položky.

\n

Nabízené zboží, jeho zobrazení a popis musí plně a co nejvěrněji popisovat skutečnost (u fotografií\n doporučujeme\n používat také doplňkové fotografie). Zobrazení zboží a jeho popis musí dostatečně informovat\n nakupující tak, aby\n byla minimalizována možnost záměny nebo mylného pocitu návštěvníků o vyobrazeném zboží.

\n

Abyste mohli začít prodávat na Valice - je nutné:

\n
    \n
  1. Přihlásit se
  2. \n
  3. Vyplnit informace o sobě.
  4. \n
  5. Umístit fotografie zboží.
  6. \n
  7. Vyplnit informace o zboží: materiál, rozměr, cenu a popis.
  8. \n
\n

Věnujte pozornost, prosim!

\n

\n Webová stránka zprostředkovává kontakt mezi prodávajícím a kupujicím. Placení a platební podmínky si\n projednává\n prodávající s kupujícím.\n

\n

Umístění na Valice je zdarma.

\n

Registrovaní uživatele mohou využít následující možnosti:

\n
    \n
  • Vlastní obchod - místo, kde budou nabízet a prodávat své výrobky, komunikovat se zákazníky -\n každý autor má svou\n vlastní adresu obchodu, která vypadá - jméno-autora.valika.org.\n
  • \n
  • Autor může umístit adresu svého obchodu ve svém blogu nebo na livejournal.com (funkčnost je k\n dispozici v\n autorově profilu na záložce Obchodní nastavení).\n
  • \n
\n\n

V. IV. Nepovolené zboží / nepovolené údaje

\n

Je zakázáno prodávat zboží, které není vlastnoručním výrobkem prodejce (nebo dle vlastního\n grafického/designového\n návrhu) či prodejního týmu (viz V. II. Prodejce), nebo zboží od jiného prodejce dále prodávat.

\n

Je zakázáno nabízet služby (mimo kurzů). Předmětem obchodu musí být vždy zboží (fyzický předmět) s\n přesně definovanou\n cenou, obsahem a parametry tak, aby mohl zákazník zboží vložit do košíku a nakoupit je.

\n

Je zakázáno nabízet k prodeji zboží, která porušují autorská práva (jako např. kopie děl jiných\n tvůrců apod.)

\n

Je zakázáno duplikovat zboží - tedy nabízet stejné zboží pod více katalogovými čísly (pro nastavení\n počtu dostupného\n zboží použijte políčko \"množství\").

\n

Titulek, popis, klíčová slova ani obrázek zboží nesmí obsahovat kontaktní údaje na prodávajícího,\n jako např.\n telefonní číslo, e-mail, odkaz na webové stránky apod. (výjimku tvoří jméno a příjmení nebo umělecké\n jméno autora).\n Tyto kontaktní údaje (nebo nabádání k jejich vyhledání jinde na internetu) nesmí obsahovat ani další\n prvky\n písemného, či obrazového prodeje, jako jsou např. komentáře, diskuse, blogy, vnitřní pošta apod.

\n

Titul zboží ani popis předmětu nesmí obsahovat žádná klíčová slova použitá za účelem manipulace\n výsledků vyhledávání.\n Jedná se především o násilně volená klíčová slova, která nemají s položkou nic společného.

\n

Titul zboží ani popis předmětu nesmí obsahovat elementy HTML, JavaScriptu, PHP a dalších\n programovacích jazyků se\n záměrem ovlivnit obsah nebo prodejnost zboží, či jinak poškodit či ohrozit funkčnost serveru\n Valika.

\n

Je zakázáno používat fotografie, které by mohly porušovat autorská práva (např. fotografie z\n časopisů, fotografie, ke\n kterým které nemá prodávající autorské právo apod.).

\n

V případě nutnosti použití počítačové simulace nebo počítačových retuší, které zásadně mění charakter\n a podstatu nebo\n užití zboží nebo z některých důvodů nemohou informovat nakupující plně o podstatě zboží (např. 2D\n nebo 3D\n vizualizace, nabídka zboží z dřívějšího prodeje ale se záměnou některých prvků, grafické návrhy pro\n potisky apod.)\n musí prodejce na tuto skutečnost upozornit v popisu zboží nebo přímo v obrázku (např.: obrázek je\n ilustrační,\n obrázek je 3D vizualizací apod.).

\n

Prodejce nesmí jakkoliv (vnitřní poštou, e-mailem) komunikovat se zákazníky Valika o možnosti prodeje\n mimo Valika\n (odkaz na vlastní e-shop, návod jak vyhledat vlastní e-shop, případně výměna kontaktních údajů) ani\n o možnosti\n výměny zboží bez řádného zakoupení přes systém Valika (protislužba kompenzací či vzájemným\n zápočtem).

\n\n

V. V. Platební a dodací podmínky, cena zboží

\n

Cena zboží

\n

Veškeré prodávajícím uváděné ceny jsou cenami včetně DPH. Prodejce je povinen uvést vždy plnou cenu\n zboží a za tuto\n cenu zboží nabízet (není povoleno prodávat zboží pouze za zálohu).

\n

Uvedená cena zboží musí být cenou obvyklou nebo přiměřenou vzhledem k použitému materiálu, technice,\n době zpracování\n a umělecké invenci. Není povoleno stanovovat účelově nepřiměřenou cenu zboží, např. z důvodů, aby\n zboží zůstalo\n neprodáno nebo bylo naopak prodáno za zanedbatelnou cenu kvůli minimální provizi.

\n

Platební podmínky

\n
    \n
  • Platba předem - platba bude provedena bankovním převodem. Číslo bankovního spojení bude uvedeno\n v e-mailu, který\n bude zaslán po potvrzení rezervace.\n
  • \n
  • Dobírka - zboží zaplatíte při doručení Českou poštou nebo přímo dopravci.
  • \n
\n

V současnosti nepřijímáme online platby. Do budoucna bychom chtěli používat PayPal a kreditní\n karty.

\n

Způsob dodání a platby výrobku je na domluvě mezi prodávajícím a kupujícím.

\n

Dodací podmínky

\n

Poštovné nebo dopravné je obsaženo v ceně výrobku. Autor zabalí a nechá doručit výrobek zákazníkovi.\n Doba dodání\n záleží na destinaci autora a zákazníka.

\n\n

V. VI. Úprava položek

\n

Prodávající má možnost kdykoliv smazat nabízené zboží, nebo je na neurčitou dobu skrýt. Prodávající\n může také měnit a\n upravovat popis zboží.

\n\n

V. VII. Kupní smlouva

\n

Prodávající je informován o zájmu kupujícího pomocí elektronické pošty Valika. Tato informace není\n závazná a\n prodávající může objednávku odmítnout.

\n

Prodávající může, po přijetí oznámení o objednávce, přijmout jen část objednávky a to pomocí označení\n pouze\n vyhovujících položek.

\n

Přijetím objednávky uzavírají obě smluvní strany (kupující a prodávající) Kupní smlouvu (nákup na\n dálku) dle platných\n zákonů České republiky.

\n

Prodávající se zavazuje vyexpedovat zboží po přijetí, potvrzení a zaplacení objednávky a to bez\n zbytečného\n odkladu.

\n\n

VI. PROVIZE ZA PRODEJ ZBOŽÍ

\n

Vystavení zboží na serveru Valika je pro prodávajícího zcela zdarma. Server Valika však účtuje\n provizi za\n zprostředkování z uskutečněného prodeje. Provizi za zprostředkování je povinen prodávající zaplatit\n provozovateli po\n potvrzení objednávky na základě měsíčního vyúčtování. Pokud kupující zboží nezaplatí (a tedy\n nepřevezme), je\n prodávající povinen tuto skutečnost označit ve výpisu provizí a již uhrazená provize bude\n komenzována formou slevy v\n dalším měsíci.

\n

O souhrnné provizi z prodeje za kalendářní měsíc je informován e-mailem . Provozovatel vystavuje\n prodávajícímu daňový\n doklad automaticky formou elektronické faktury k vytištění.

\n

Splatnost provizí je vždy uvedena na vydané faktuře (za den splatnosti se považuje den připsání\n částky na účet\n provozovatele), platby po splatnosti mohou být penalizovány. Platby přijímá provozovatel pouze\n bezhotovostně\n převodem na účet.

\n

V případě neuhrazení provize nebo nedodržení termínu platby je provozovatel oprávněn zrušit účet\n uživatele, odstranit\n jeho zboží z nabídky, nepovolit opětovnou registraci na serveru Valika a vymáhat dlužnou částku\n soudní cestou.

\n

Server Valika není povinen řešit případné spory mezi prodávajícím a kupujícím a reklamaci zboží,\n prodávající nemá\n nárok na navrácení provize v případě sporu s kupujícím.

\n

Aktuální výše provize činí 0% z prodejní ceny zboží. Provozovatel serveru Valika si vyhrazuje právo\n výši provize\n změnit.

\n\n

VII. DALŠÍ PRAVIDLA PRO NEPRODEJNÍ SEKCE

\n

Je zakázáno uveřejňování přímých osobních údajů (adresa, telefonní číslo, e-mail, web, odkazy na\n facebook nebo\n fotogalerie apod.) v komentářích, diskusích, klubech, vnitřní poštou a v dalších komunitních prvcích\n serveru nebo\n vybízet či záměrně umožňovat jejich dohledání. Výjimkou z tohoto pravidla je uveřejnění jména a\n příjmení autora\n případně jeho umělecké jméno.

\n

Je zakázáno vkládat jakékoliv reklamní upozornění či webové odkazy s reklamním charakterem s výjimkou\n podpory\n vlastního obchodu na Valika (ne však s odkazem mimo server Valika).

\n

Je zakázáno vyvíjet aktivitu, která by mohla být klasifikována jako nevyžádaná pošta (spam). Tedy\n například zasílat\n opakované či hromadné reklamní nebo obtěžující informace vnitřní poštou, umisťovat opakované či\n hromadné reklamní\n nebo obtěžující informace v diskusích nebo komentářích.

\n

Je zakázáno vytvářet aktivity, které by mohly být označeny za nekalou soutěž (např. registrace už.\n jména, které by\n mohlo případnou záměnou poškodit původního prodejce, komunikovat či nabízet zboží s cílem zaměnit\n identitu prodejce\n či zboží apod.)

\n

Je zakázáno, pomocí komunitních prvků serveru (diskuse, komentáře, pošta), veřejně podrývat autoritu\n provozovatele či\n svým chováním jinak vyjadřovat svoji neloajalitu vůči provozovateli a zaměstnancům\n provozovatele.

\n

Je zakázáno veřejně poškozovat či napadat prodejce a nakupující. Negativní hodnocení (sekce Hodnocení\n uživatele) není\n klasifikováno jako poškozování. V případě sporů doporučujeme řešení vnitřní poštou nebo\n kontaktováním provozovatele.\n Provozovatel nijak neodpovídá za případné spory.

\n\n

VIII. OCHRANA OSOBNÍCH ÚDAJŮ

\n

Uživatel je povinen uvádět pravdivé údaje. Provozovatel chrání veškeré informace zaslané při\n registraci uživatelem ve\n smyslu zákona č. 101/2000 Sb., o ochraně osobních údajů, ve znění pozdějších předpisů a je oprávněn\n je poskytnout\n pouze za níže uvedených podmínek. Uživatel souhlasí s tím, aby provozovatel vedl údaje, které mu při\n registraci\n poskytne a to výlučně v souvislosti s provozem serveru Valika . Uživatel výslovně souhlasí s tím,\n aby jeho údaje a\n to jméno a příjmení, obchodní jméno, název, telefonní číslo, místo trvalého či přechodného pobytu,\n sídlo, byly\n provozovatelem poskytnuty uživatelům - kupujícím, kteří o koupi zboží uživatele jako prodávajícího\n projeví zájem, a\n uživatelům - prodávajícím, o prodej jejichž nabízeného zboží projeví uživatel jako kupující zájem.\n Dále uživatel\n výslovně souhlasí s tím, aby tyto údaje byly poskytnuty provozovatelem v případě reklamace a\n stížnosti na nedodané\n zboží a v případech, kdy je provozovatel povinen tyto údaje poskytnout na základě zákona.

\n

Poskytnuté údaje je oprávněn uživatel užít pouze za účelem, pro který byly v jednotlivých případech\n poskytnuty, tedy\n k nákupu či prodeji zboží prostřednictvím serveru Valika, jeho reklamaci či stížnosti na nedodání\n zboží, sporech\n vyvolaných v souvislosti s nákupem a prodejem zboží a zavazuje se tyto údaje dále žádným způsobem\n nevyužívat či\n jinak zpracovávat.

\n\n

X. SVOLENÍ K UŽITÍ FOTOGRAFIÍ

\n

Vložením fotografií dává prodávající provozovateli práva a souhlas k užití fotografií vloženého zboží\n k propagačním\n účelům serveru Valika a to za účelem popularizace serveru Valika. Souhlasí také s tím, aby server\n Valika postoupil\n fotografie třetím osobám (například novinám, časopisům, internetovým serverům apod.) za účelem\n popularizace serveru\n Valika.

\n

Provozovatel vyvine úsilí aby každá, takto použitá fotografie nebo soubor fotografií, byl označen\n logem Valika nebo\n označením www.valika.org a to tak, aby bylo zřejmé, že se jedná o výrobek prodávaný na Valika.

\n

Provozovatel se zavazuje, že fotografie uživatelů nepoužije k jiným účelům, než je popularizace či\n propagace serveru\n a že ve stejném duchu bude jednat i s třetími stranami.

\n\n

XI. ZÁVĚREČNÁ USTANOVENÍ

\n

Provozovatel si vyhrazuje právo ukončit okamžitě tuto smlouvu s uživateli, kteří nedodržují pravidla\n serveru Valika,\n nejsou ochotni spolupracovat při řešení standardních či výjimečných situací s vedením serveru Valika\n nebo nezaplatí\n provizi za zprostředkování. Provozovatel si vyhrazuje právo ukončit okamžitě smlouvu s uživateli i\n bez udání\n důvodu.

\n

Smlouva uzavřená podle těchto obchodních podmínek se řídí právním řádem České republiky. Provozovatel\n si vyhrazuje\n právo na změnu poskytování kterékoliv ze služeb, jakož i těchto obchodních podmínek, a to bez\n předchozího\n upozornění.

\n

Jakékoliv napodobování grafického ztvárnění serveru Valika a vytvořených databází je zakázáno.

\n

Smlouvu je možno ukončit výpovědí, učiněnou formou odhlášení ze strany uživatele. Ta je ukončena\n okamžikem projevení\n vůle a doručením provozovateli.

\n
\n )\n }\n}\n\nexport default HelpTermsCz;\n","import React, {Component} from 'react';\n\nclass HelpTermsRu extends Component {\n render() {\n return (\n \n

Условия присоединения

\n

Регистрируясь на сервере Valika.org пользователь соглашается с данными условиями.

\n

Правила использования

\n

Сервер Valika.org является торговой площадкой, которая оказывает посреднические услуги по продаже и\n покупке\n изготовленных вручную изделий из шерсти. Под Продавцом понимается лицо осуществляющее продажу на\n сервере Valika.org.\n Под Покупателем понимается лицо выразившее согласие приобрести товар выставленный на Valika.org\n Продавцом.

\n
    \n
  • Регистрация на сервере Valika.org для Продавца является бесплатной.
  • \n
  • При покупке Покупатель оплачивает изделие напрямую Продавцу на счет, либо наложенным платежом.\n Сервер Valika.org\n не берет никаких платежей от Покупателя.\n
  • \n
  • Продавец обязан заплатить серверу Valika.org комиссию за оказанные посреднические услуги по\n поиску Покупателя и\n организацию продажи ищделия Продавца, эта обязанность возникает в момент подтверждения покупки\n Покупателем и\n генерированием им счета на покупку для последующей отправки его (счета) Продавцу. В случае если\n Покупатель после\n отправки счету Продавцу отменит инициированную им сделку (не заплатит стоимость изделия,\n откажется получать\n изделие Продавца) Продавец может запросить сервер Valika.org о скидке с комиссии за последующие\n продажи.\n
  • \n
  • Компания Econor s.r.o., владелец сервера Valika.org не является собственником выставленных на\n сервере изделий и\n не несет ответственность за товары, предлагаемые к продаже на сайте, а именно не может\n гарантировать\n соответствие товара на фотографии, доступность изделия, актуальную цену товара и т.д. Владелец\n сервера не несет\n ответственности за процессы покупку, продажи или возврата проданного товара. Также Владелец\n сервера не несет\n ответственности за возможные споры между Продавцом и Покупателем. Владелец сервера не несет\n ответственности за\n случаи указания неверной информации при регистрации на сервере. Владелец сервера не осуществляет\n проверку данных\n Продавца и Покупателя на идентичность.\n
  • \n
  • Владелец сервера не принимает участия в размещении товаров и регистрации Продавцов и поэтому не\n гарантрует\n корректность описания товаров, их изображений или информации о регистрации Продавцов.\n
  • \n
  • Пользователи сервера Valika.org обязаны придерживаться законов Чешской республики, а также\n соблюдать нормы\n этикета и порядочность.\n
  • \n
\n\n

I. Условия использования

\n

Деятельность по продаже изделий на сервере Valika.org является открытой и доступной для любых лиц,\n достигших 18 лет а\n также для зарегистрированных правовых субъектов. Владелец сервера оставляет за собой право\n отказывать в своих\n услугах пользователям, нарушающим данные правила.

\n

Сервер Valika.org принадлежит компании Econor s.r.o. Пользователи сервера а также лица, выражающие\n желание\n зарегистрироваться на сервере, не имеют никаких юридических прав на сервер Valika.org, также не\n имеют права на\n заключение договоров подразумевающих обладание подобными юридическими правами. Администрация сайта\n наделена\n исключительным правом отказать в регистрации соискателю, отступить от договора с существующим\n пользователем или\n ограничить доступ к ряду сервисов, предоставляемых сервером Valika.org, без объяснения причин.

\n

Администрация сайта не гарантирует поддержание, сохранение и непрерывность работы ресурса.

\n

При использовании сервисов сервера Valika.org действуют представленные правила.

\n\n

II. Регистрация

\n

Условием оказания посреднических услуг по продаже изделий посредством сервера Valika.org является\n согласие с данными\n условиями и регистрация пользователя на сервере.

\n

Пользователь, который является физической особой, обязан при регистрации задать имя, фамилию, полный\n адрес\n (постоянный либо адрес регистрации), email, пользовательское имя и пароль. Пользователь, который\n является\n юридическим лицом, обязан указать торговое наименование фирмы/компании, идентификационный номер\n налогоплательщика\n (если таковой имеется), юридический адрес фирмы, email, Имя и Фамилию особы, ответственной за\n ведение переговоров от\n лица фирмы. Пользователь обязан информировать админстрацию сервера Valika.org о любых изменениях\n представленной для\n регистрации информации а также своевременно актуализировать данную информацию.

\n

Администрация сервера в праве предоставить Продавцу или Покупателю необходимую информацию о другой\n стороне (например\n по причине не отправки товара после оплаты, либо по причине жалобы покупателя), включая имя и\n фамилию, торговое\n название фирмы, адреса или регистрации по месту пребывания или места юридического адреса фирмы.

\n

Пользователи имеют доступ к своим личным данным и могут их изменять. Пользователи также имеют право\n запросить сервер\n об удалении личных данных с базы сервера Валика после окончания деятельности на сайте.

\n

Пользователи имею право владеть больше чем одним пользовательским аккаунтом, однако владение\n несколькими аккаунтами\n не дает им право нарушать условия соглашения или извлекать двойную выгоду ограниченных служб на\n сайте (например:\n манипулирования с аккаунтами в целях сокрытия идентичности или в целях манипуляций с продажами). Все\n пользователи\n обязаны информировать о наличии других аккаунтов на сервере в своем профиле.

\n

Регистрация подверждается путем автоматической отправки письма на представленный email. Регистрации,\n которые не\n подтверждены письмом на email являются неактивными и недействительны. Подтверждением регистрации\n является заключение\n соглашения между владельцем сервера Валика и пользователем.

\n

Регистрация осуществляется на конкретного пользователя и перевод регистрации на другую особу\n запрещен.

\n\n

III. Запрещенные товары

\n

На сервере Валика запрещаются к размещению следующие товары: Предложение товаров, размещение и\n продажа которых ведет\n к нарушению норм этичного поведения либо правовые предписания страны где находится пользователь.\n Запрещено\n предложение товаров, которые не отвечают специфике сервера, а также товары, на которые продавец не\n имеет собственное\n право или право продавать эти товары, либо распоряжение этими товарами ограничено - оружие,\n алкоголь, психотропные\n вещества, лекарства, медицинские принадлежности, порнография или иные порнографические или\n эротические материалы,\n товары, использование которых может привести к нарушению норм авторского и морального права\n (неправомерное\n использование марок, брендов, торговых знаков, находящихся по охраной авторских прав), товары, для\n целей пропаганды\n политических партий, товары нарушающие права и свободы человека или народа, имеющие признаки\n национализма, неприятия\n вероисповедания или иное.

\n

Администрация наделена исключительным правом удалять перечисленные виды товаров с сервера без\n объяснения причин.

\n\n

IV. Покупка товаров

\n

Покупатель, выбирая товары выставленные Продавцом, соглашается с тем, что сервер Valika не является\n владельцем\n указанных изделий а только оказывает посреднические услуги по продаже выставленного Продавцом\n товара. Администрация\n сервера не несет ответственности за продаваемые товары.

\n

Покупатель принимает то, что товары, находящиеся в корзине могут принадлежать разным продавцам, и в\n результате\n покупке Покупателю будет выставлено несколько счетов от разных Продавцов. При этом условия доставки,\n например такие\n как, время доставки товара могут различаться между разными Продавцами.

\n

Сумма за доставку указывается в счете и прибавляется к стоимости изделия, в случае если продавец не\n указал иное. К\n оплате подлежит полная сумма счета.

\n

Покупатель принимает то, что отправкой счета на товар только информирует Продавца о желании купить\n выбранный товар,\n но непосредственная отправка товара будет осуществлена Продавцом только после подтверждения заказа\n продавцом и\n оплаты полной стоимости товара (включая доставку) покупателем.

\n

Покупатель принимает то, что Продавец имеет право отказать в принятии заказа или части заказа. В этом\n случае\n Покупатель оплачивает только подтвержденную часть заказа.

\n

Покупатель не оплачивает комиссию Серверу за посреднические услуги по осуществлению продажи. Оплата\n товаров\n производится напрямую на счет Продавца (либо иным способом, в соответствии с указанными платежными\n условиями\n Продавца).

\n\n

V. Продажа товаров

\n

V. I. Определение товара

\n

Сервер Valika.org предназначен для продажи новых креативных товаров изготовленных из шерсти лично\n руками\n Продавцов.

\n\n

V. II. Продавцы

\n

Продавцом является физическая или юридическая особа, за которую ведет переговоры физическое лицо.

\n\n

V. III. Правила размещения изделий на сервере Valika.org

\n

Каждая представленная позиция в части продаж сервера должна быть конкретным товаром, предназначенным\n для продажи\n (запрещено представлять товары только ради представления).

\n

Продавцы представляют товары с помощью/посредством электронного формуляра, в котором обязаны\n заполнить все\n обязательные позиции.

\n

Предлагаемые товары, их изображения и описание должны быть полными и наиболее подробно описывать\n действительное\n состояние изделия (рекомендуем использовать дополнительные фотографии). Изображение товара и его\n описание должно в\n полной мере информировать покупателей, чтобы минимизировать поиск замены или ошибочного восприятия\n покупателем\n изображенного изделия.

\n

Чтобы Вы могли начать продавать на Valika.org необходимо:

\n
    \n
  1. Зарегистрироваться
  2. \n
  3. Заполнить информацию о себе.
  4. \n
  5. Разместить фотографии изделий.
  6. \n
  7. заполнить информацию о товаре: материал, размер, цена и описание.
  8. \n
\n

Обращаем Ваше внимание!

\n
  • Сервер оказывает посреднические услуги между покупающим и продающим. Оплата и платежные условия\n обсуждаются\n покупающим и продающим.\n
  • \n

    Размещение изделий на сервере Valika.org - бесплатно.

    \n

    Зарегистрированные пользователи имеют следующие возможности:

    \n
      \n
    • персональный магазин - место где могут предлагать и продавать свои товары, коммуницировать/вести\n переписку с\n клиентами и заказчиками - каждый автор имеет свой собственный адрес магазина, который выглядит:\n имя\n магазина.valika.org.\n
    • \n
    • автор может разместить интернет-адрес своего магазина в своем блоге или в (функциональность\n доступна в профиле\n автора в закладке Торговые настройки).\n
    • \n
    \n\n

    V. IV. Запрещенные товары / запрещенная информация

    \n

    Запрещено продавать изделия, которые не выполнены руками Продавца (либо выполнены не на основании\n собственного\n графического / дизайнерского образца) или объединения продавцов (см. пункт V.II Продавец), или\n перепродажу изделий\n другого Продавца.

    \n

    Запрещено предагать на продажу услуги (кроме курсов или мастер-классов). Предметом продажи всегда\n является товар, с\n четко определенной ценой, содержанием и параметрами, так, чтобы Покупатель мог отправить/ вложить\n изделия в корзину\n и купить его.

    \n

    Запрещено предлагать на продажу изделия, которые нарушают авторское право (например копии изделий\n других\n авторов).

    \n

    Запрещено копировать изделия - предлагать одинаковые изделия под множеством позиций на сайте.

    \n

    Заголовок, описание, ключевые слова или фото изделия не может содержать контактную информацию\n продавца, такую как\n номер телефона, email, ссылку на интернет страницу а т.д. (за исключением имени и фамилии либо\n логотипа автора),\n другие указанные контактные данные (или побуждение к поиску этих данных в интернете), не может\n содержать другие\n элементы письменной, или графической продажи, как например комментарии, дискуссии, блоги или\n внутреннюю почту и\n т.д.

    \n

    Ни заголовок товара, ни его описание не могут содержать какие-либо ключевые слова, используемые с\n целью\n манипулирования результатами поиска. Под манипуляцией подразумевается использование слов не имеющих\n ничего общего с\n позицией или с описанием изделия и заданными исключительно с целью повышения результатов поиска\n изделия.

    \n

    Ни заголовок изделия, ни его описание не может содержать элементы HTML, JavaScript, PHP и других\n языков\n программирования с целью улучшить представление или продаваемость изделия, или каким-либо ином\n образом нарушить\n деятельность сервера Valika.org.

    \n

    Запрещено использовать фотографии, которые могли бы нарушить авторские права (например фотографии из\n журналов, к\n которым продающий не имеет отношения и на которые не имеет авторских прав).

    \n

    В случае специальной подготовки изображений товара (например таких как правки в графических\n редакторах, ретуширование\n и т.п.), которая существенно видоизменяет представление товара, Продавец должен специально указывать\n в описание\n товара либо непосредственно в изображении товара о проведенных изменениях.

    \n

    Продавецу запрещено общаться с Покупателем о возможности продажи вне сервера (ссылки на собственный\n интернет-магазин,\n инструкция к поиску в интернете, предоставление контактных данных) или о возможности обмена\n изделиями (такой как\n встречная услуга или зачет требований) без использования процесса покупки-продажи сервера\n Valika.org.

    \n\n

    V. V. Платежные условия, условия доставки, цена изделия.

    \n

    Цена изделия

    \n

    Все продавцы представляют цены включая НДС. Продающий обязан представить конечную цену изделия и\n предлагать изделия\n за указанную цену (запрещается продавать изделие по предоплате).

    \n

    Указанная цена изделия должна быть приближенной к цене использованого материала, технике, времени\n изготовления и\n авторского мастерства. Запрещено устанавливать завышенную либо заниженную цену, например с целью,\n чтобы товар не был\n продан или наоборот был продан за символическую цену с целью понижения комиссии.

    \n

    Условия платежа

    \n
      \n
    • 100% предоплата - осуществляется банковским переводом. Номер банковского счета будет\n представлено в email,\n который будет отправлен после резервации изделия.\n
    • \n
    • Наложенный платеж - изделие оплачивается при получении на почте.
    • \n
    \n

    В настоящий момент сервер Valika.org не поддерживает оплату через он-лайн. В будущем планируется\n использование\n системы оплаты Pay Pal и кредитные карты.

    \n

    Способ доставки и оплаты изделия обсуждается между Продавцом и Покупателем.

    \n

    Условия доставки

    \n

    Почтовые расходы или расходы доставки указывается Продавцом отдельно. Покупатель вправе выбрать и\n указать наиболее\n подходящее ему условия доставки. Продавец осуществляет упаковку и отправку изделия Покупателю. Срок\n доставки\n определяется на основании местонахождения Продавца и Покупателя.

    \n\n

    V. VI. Изменение информации о товарах

    \n

    Продавец имеет возможность в любой момент удалить или скрыть изделие на неограниченный срок. Продавец\n также может\n изменять и редактировать описание изделия.

    \n\n

    V. VII. Торговое соглашение

    \n

    Продавец информируется о намерении Покупателя произвести покупку при помощи системы сообщений сервера\n Valika.org.\n Данное намерение не является обязывающим Продавца произвести продажу и Продавец может отказать в\n принятии\n заказа.

    \n

    Продавец может, при получении заказа (фактуры), принять лишь часть заказа и указать только принятые\n позиции.

    \n

    Принятием заказа (фактуры) обе стороны заключают торговые соглашение (продающий и покупающий)\n Торговый договор\n (покупка онлайн) на основании Законов Чешской республики.

    \n

    Продавец обязан отправить товары после принятия счета и подтверждения оплаты заказа без излишних\n задержек.

    \n\n

    VI. Комиссия за продажу изделий

    \n

    Размещение изделий на сервере Valika.org для Продавца бесплатно. Однако Сервер Валиканачисляет\n комиссию за\n посреднические услуги за каждую покупку, совершенную на сервере. Продавец обязан заплатить комиссию\n серверу после\n подтверждения заказа. В случае если покупатель не произведет оплату изделия (а также не получит\n изделие), продавец\n обязан сообщить об этом в выписке к комиссии или если комиссия уже оплачена, то будет компенсирована\n формой скидки в\n следующий расчетный период.

    \n

    О итоговой сумме комиссии за период продавец информируется email. Администратор выставляет продавцу\n фактуру на\n оплату, которая может быть распечатана.

    \n

    Срок оплаты комиссии всегда указывается в фактуре (днем оплаты считается день поступления денежных\n средств на счет\n компании), в случае оплаты, произведенной после указанного срока оплаты, могут быть начислены пени.\n Оплату владелец\n сервера принимает только безналичным расчетом на счет компании.

    \n

    В случае неоплаты комиссии или несоблюдения срока оплаты, организатор имеет право заблокировать\n аккаунт пользователя,\n удалить его изделия из предложения на сайте, запретить повторную регистрацию на сервере Valika.org и\n подать в суд на\n возмещение задолженности.

    \n

    Сервер Valika.org необязан разрешать споры возникшие между продавцом и покупателем, а также\n участвовать в процедуре\n возврата товара, Продавец не имеет право требования на возврат комиссии в случае спора с\n Покупателем.

    \n

    Актуальная сумма комиссии составляет 0% от цены изделия. Организатор сервера Valika.org имеет право\n изменить величину\n комиссии.

    \n\n

    VII. Другие некоммерческие правила

    \n

    Запрещено указывать прямые личные данных (адрес, номер телефона, емайл, сайт, ссылки на фейсбук,\n ссылки на\n одноклассники, ссылки на мой мир, ссылки на страницы вконтакте, ссылки на фотогалереи и др. соц\n сети), в\n комментариях, дискуссиях, клубах, внтренней почте и других элементах используемых для общения на\n сервере Валика или\n призыв к поиску указанных данных в интернете. Исключением является только Фамилия и Имя автора или\n его авторский\n псевдоним.

    \n

    Запрещено размещение любых рекламных объявлений или интернет ссылок с рекламным характером за\n исключением поддержания\n личного магазина на сервере Валика (только ссылка на сервер Валика).

    \n

    Запрещена рассылка сообщений, которые могут быть идентифицированы как спам. Например: повторяющаяся\n отправка\n рекламной информации или докучающей информации внутренней почтой, размещение указанной информации в\n дискуссиях или\n комментариях.

    \n

    Запрещено осуществлять деятельность, которая могла бы быть идентифицирована как недобросовествная\n конкуренция\n (например регистрация имени, которое могло бы помешать существующему продавцу, общаться или\n предлагать товары с\n целью заменить сущность изделия или продавца и т.д.)

    \n

    Запрещено с помощью коммуникационных элементов сервера (дискуссии, комментари, почта), общественно\n подрывать\n авторитет организатора или своим поведением демонстрировать неуважение и отсутствие лояльности к\n компании -\n организатору или сотрудниками компании.

    \n

    Запрещено публично вредить или атаковать продавца и покупателя. Негативная оценка (секция оценка\n продавца)\n неклассифицируется как вредительство, лишь как субъективная оценка. В случае спора рекомендуем Вам\n разрешать вопросы\n внутренней почтой или обращением к компании-организатору. Компания-организатор не несет\n ответственности со случаи\n возникновения споров.

    \n\n

    VIII. Сохранение личных данных

    \n

    Пользователь обязан указывать правдивую информацию и данные. Организатор осуществляет хранение\n информации указанной\n при регистрации пользователем в соответствии с законом 101/2000Sb, о охране личных данных, в\n соответствии с\n последними предписаниями и имеет право предоставить указанную информацию в соответствии с ниже\n указанными условиями.\n Пользователь соглашается с тем, чтобы организатор хранил информацию, которую пользователь\n предоставил при\n регистрации и использует только в соответствии с деятельностью сервера Valika.org. Пользователь\n определенно\n соглашается с тем, что его данные: имя и фамилия, торговая марка, название, номер телефона, место\n жительства или\n регистрации, юридический адрес -предоставляются организатором покупателям, которые проявили интерес\n к покупке\n изделия, а также продавцам, которые также проявили интерес к покупке предлагаемого изделия как\n покупатели. Далее\n пользователь соглашается с тем, что его данные могут быть предоставлены организатором в случае\n жалобы на качество\n изделия или недоставки изделия, когда организатор обязан предоставить личные данные на основании\n закона.

    \n

    Предоставленные данные пользователь имеет право использовать только с целью однозначных случаев\n использования на\n сервере: либо к покупке или продаже изделия посредством сервера Valika.org, его обжалования или\n жалобы на недоставку\n изделия, в спорах по причине покупки или продажи. Организатор не имеет право не имеет право к\n какому-либо\n иному-другому использованию данных.

    \n\n

    X. Условия использования фотографий

    \n

    Размещением фотографий продавец дает компании - организатору право и согласие на использование\n фотографий\n размещенного изделия к целям пропагандирования/ рекламирования сервера Valika.org, а также с целью\n повышения\n популярности сервера Валика. А также соглашается с тем, что сервер Valika.org может предоставить\n фотографии третьим\n лицам (например газетам, журналам, интернет серверам и т.д., с целью повышения популярности сервера\n Valika.org.

    \n

    Компания - организатор прилагает все усилия, чтобы каждая размещенная фотография или комплект\n фотографий, был отмечен\n логотипом Valika.orgили адресом сервера www.valika.org, в целях информирования о том, что изделие\n продается на\n сервере Valika.org.

    \n

    Компания-организатор обязуется не использовать фотографии пользователей ни для каких иных целей кроме\n как повышения\n популярности или продвижения сервера, и касательно указанных целей будет вести переговоры с третьей\n стороной.

    \n\n

    XI. Заключительные положения

    \n

    Компания-организатор наделена правом незамедлительно разорвать данное соглашение с пользователями,\n которые нарушают\n правила использования сервера Valika.org, не имеют желание сотрудничать в разрешении стандартных и\n исключительных\n ситуаций, возникающих в процессе деятельности сервера Valika.org или в случае непогашения комиссии\n за посреднические\n услуги. Компания-организатор имеет право немедленно разорвать соглашение без разъяснений.

    \n

    Соглашение заключается в соответствии с указанными торговыми условиями и в соответствии с\n законодательством Чешской\n республики. Компания-организатор имеет право на внесение изменений в предоставляемые услуги и\n условия торговли на\n сервере без предварительного информирования.

    \n

    Любое копирование графического дизайна сервера Валика, а также имеющихся баз данных запрещено.

    \n

    Соглашение можно расторгнуть формой отмены/деактивации со стороны пользователя. Соглашение считается\n расторженным с\n момента решения пользователя и информирования компании-организатора.

    \n

    Все возникающие споры разрешаются в соответствии с законодательством Чешской республики по месту\n нахождения юр.\n адреса компании - организатора.

    \n

    В случае возникновения спора следует придерживаться условий на чешском языке.

    \n
    \n )\n }\n}\n\nexport default HelpTermsRu;\n","import React, {Component} from 'react';\nimport LocalStorage from \"../services/LocalStorage\";\nimport HelpTermsEn from \"./HelpTermsEn\";\nimport HelpTermsCz from \"./HelpTermsCz\";\nimport HelpTermsRu from \"./HelpTermsRu\";\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\n\nclass HelpTerms extends Component {\n render = () => {\n const lang = LocalStorage.getOrDefault(\"language\", null);\n return (\n \n \n \n {lang === \"en\" && }\n {lang === \"cz\" && }\n {lang === \"ru\" && }\n \n \n )\n }\n}\n\nexport default HelpTerms;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Card from \"react-bootstrap/Card\";\n\nclass Panel extends Component {\n render = () => {\n return (\n \n {this.props.title}\n \n {this.props.children}\n \n \n )\n }\n}\n\nPanel.propTypes = {\n title: PropTypes.string.isRequired\n};\n\nexport default Panel;\n","import React, {Component} from 'react';\nimport Panel from \"../shell/Panel\";\nimport PropTypes from 'prop-types';\nimport {injectIntl} from \"react-intl\";\nimport Form from 'react-bootstrap/Form'\nimport ContentLoader from \"react-content-loader\";\n\nclass FilterList extends Component {\n state = {\n changed: false\n };\n\n sortItems = (a, b) => {\n if (a.checked && !b.checked) {\n return -1;\n } else if (!a.checked && b.checked) {\n return 1;\n } else {\n return a.title.localeCompare(b.title);\n }\n };\n\n handleChange = (event, item) => {\n item.checked = event.target.checked;\n this.setState({changed: true}, this.applyFilter);\n };\n\n applyFilter = () => {\n const {items} = this.props;\n this.setState({changed: false});\n this.props.applyFilter(new Set(items.filter(item => item.checked).map(item => item.id)));\n };\n\n render = () => {\n const {items} = this.props;\n return (\n \n {items === null &&\n \n }\n {items != null &&\n \n
    \n \n {items.sort(this.sortItems) && items.map(item => {\n return (\n this.handleChange(e, item)}\n type=\"checkbox\"\n label={item.title}/>\n )\n })}\n \n
    \n {/**/}\n
    \n }\n
    \n )\n }\n}\n\nFilterList.propTypes = {\n title: PropTypes.string.isRequired,\n items: PropTypes.array,\n applyFilter: PropTypes.func.isRequired\n};\n\nexport default injectIntl(FilterList);\n","const RouteParams = {\n search: function () {\n if (window.location.search === undefined || window.location.search.trim().length === 0) {\n return {};\n }\n const result = {};\n window.location.search\n .substring(1)\n .split(\"&\")\n .map(item => {\n return item.split(\"=\");\n })\n .forEach(value => {\n result[value[0].toLowerCase()] = value[1];\n });\n\n return result;\n },\n\n catalogCategory: function () {\n let re = new RegExp('\\\\/catalog\\\\/?(.*)');\n let result = re.exec(window.location.pathname.toLowerCase());\n if (result === null) {\n return undefined;\n } else {\n let r = result[1];\n if (r.trim().length === 0) {\n return undefined;\n } else {\n return r;\n }\n }\n },\n\n productFurl: function () {\n let re = new RegExp('\\\\/product\\\\/?(.*)');\n let result = re.exec(window.location.pathname.toLowerCase());\n if (result === null) {\n return undefined;\n } else {\n let r = result[1];\n if (r.trim().length === 0) {\n return undefined;\n } else {\n return r;\n }\n }\n },\n\n productId: function () {\n let re = new RegExp('\\\\/mystuff\\\\/?(.*)');\n let result = re.exec(window.location.pathname.toLowerCase());\n if (result === null) {\n return undefined;\n } else {\n let r = result[1];\n if (r.trim().length === 0) {\n return undefined;\n } else {\n return r;\n }\n }\n }\n};\n\nexport default RouteParams;\n","import axios from \"axios\";\nimport ReturnPromise from \"./ReturnPromise\";\n\nconst FiltersService = {\n // listShops: function (country, category) {\n // return ReturnPromise.get(\n // axios\n // .get(\"/api/v1/filters/shops\", {\n // params: {\n // country: country,\n // category: category\n // }\n // }));\n // },\n\n listCountries: function (shop, category) {\n return ReturnPromise.get(\n axios\n .get(\"/api/v1/filters/countries\", {\n params: {\n shop: shop,\n category: category\n }\n }));\n },\n listCategories: function (lang, country, shop, category) {\n return ReturnPromise.get(\n axios\n .get(\"/api/v1/filters/categories\", {\n params: {\n lang: lang,\n shop: shop,\n country: country,\n category: category\n }\n }));\n },\n loadCategoryDescription: function (lang, category) {\n return ReturnPromise.get(\n axios\n .get(\"/api/v1/filters/active-category\", {\n params: {\n lang: lang,\n category: category\n }\n }));\n }\n};\n\nexport default FiltersService;\n","function encodeUriQuery(val, pctEncodeSpaces) {\n return encodeURIComponent(val)\n .replace(/%40/gi, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/g, '$')\n .replace(/%2C/gi, ',')\n .replace(/%20/g, (pctEncodeSpaces ? '%20' : '+'));\n}\n\nconst UrlBuilder = {\n build: function (url, params) {\n if (!params) return url;\n\n var key;\n var parts = [];\n for (key in params) {\n parts.push(encodeUriQuery(key) + '=' + encodeUriQuery(params[key]));\n }\n return (parts.length > 0)\n ? url + ((url.indexOf('?') === -1) ? '?' : '&') + parts.join('&')\n : url;\n }\n};\n\nexport default UrlBuilder;\n","import RouteParams from \"./RouteParams\";\nimport LocalStorage from \"./LocalStorage\";\nimport UrlBuilder from \"./UrlBuilder\";\nimport LinkService from \"./LinkService\";\n\nfunction getCatalogPath() {\n let category = RouteParams.catalogCategory();\n if (category === undefined) {\n return LinkService.getCatalog();\n } else {\n return LinkService.getCatalog() + \"/\" + category;\n }\n}\n\nconst CatalogService = {\n toRootCategory: function () {\n let params = RouteParams.search();\n return UrlBuilder.build(LinkService.getCatalog(), params);\n },\n\n setRootCountry: function (root, country) {\n var params = RouteParams.search();\n if (country === undefined) {\n LocalStorage.delete(\"country\");\n delete params.country;\n } else {\n params.country = country;\n LocalStorage.set(\"country\", country);\n }\n\n return UrlBuilder.build(root, params);\n },\n\n setCountry: function (country) {\n return this.setRootCountry(getCatalogPath(), country);\n },\n\n setShop: function (shop) {\n let params = RouteParams.search();\n if (shop === undefined) {\n delete params.shop;\n } else {\n params.shop = shop;\n }\n return UrlBuilder.build(getCatalogPath(), params);\n },\n\n toCategory: function (categoryId) {\n let params = RouteParams.search();\n return UrlBuilder.build(LinkService.getCatalog() + \"/\" + categoryId, params);\n }\n};\n\nexport default CatalogService;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {injectIntl} from \"react-intl\";\nimport FilterList from \"./FilterList\";\nimport RouteParams from \"../services/RouteParams\";\nimport FiltersService from \"../services/FiltersService\";\nimport CatalogService from \"../services/CatalogService\";\nimport {withRouter} from \"react-router-dom\";\n\nclass CountriesFilter extends Component {\n state = {\n countries: null,\n lastUrl: null\n };\n\n loadFilters = () => {\n this.setState({shops: null});\n const {formatMessage} = this.props.intl;\n const params = RouteParams.search();\n let category = RouteParams.catalogCategory();\n const itself = this;\n return FiltersService\n .listCountries(params.shop, category)\n .then(function (result) {\n const activeCountries = (params.country || \"\").toLowerCase().split(',');\n\n result.items.forEach(function (item) {\n item.checked = activeCountries.indexOf(item.id) >= 0;\n item.title = formatMessage({id: 'country.' + item.id});\n });\n\n itself.setState({countries: result.items});\n });\n };\n\n componentWillMount = () => {\n this.updateUrlAndLoadFilters(this.props);\n\n // this.setState({\n // lastUrl: this.props.location.pathname + this.props.location.search\n // }, this.loadFilters);\n };\n\n componentWillReceiveProps = (nextProps) => {\n this.updateUrlAndLoadFilters(nextProps);\n // const params = nextProps.location.pathname + nextProps.location.search;\n // if (this.state.lastUrl !== params) {\n // // if (this.state.lastUrl !== null) {\n // this.loadFilters();\n // // }\n // this.setState({lastUrl: params});\n // }\n };\n\n updateUrlAndLoadFilters = (props) => {\n const params = props.location.pathname + props.location.search;\n if (this.state.lastUrl !== params) {\n this.setState({lastUrl: params}, this.loadFilters);\n }\n };\n\n applyFilter = (countries) => {\n let selectedCountries = Array.from(countries);\n var country = selectedCountries.join(\",\");\n if (country.length === 0) {\n country = undefined;\n }\n\n let url = CatalogService.setCountry(country);\n this.props.history.push(url);\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n return (\n \n )\n }\n}\n\nCountriesFilter.propTypes = {\n location: PropTypes.object.isRequired\n};\n\nexport default withRouter(injectIntl(CountriesFilter));\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Card from 'react-bootstrap/Card'\nimport RouteParams from \"../services/RouteParams\";\nimport FiltersService from \"../services/FiltersService\";\nimport LocalStorage from \"../services/LocalStorage\";\nimport CatalogService from \"../services/CatalogService\";\nimport {withRouter} from \"react-router-dom\";\nimport Button from 'react-bootstrap/Button'\nimport Container from 'react-bootstrap/Container'\nimport Row from 'react-bootstrap/Row'\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport ContentLoader from \"react-content-loader\";\n\nclass ProductCategories extends Component {\n state = {\n activeCategory: null,\n categories: null,\n lastLocation: null\n };\n\n loadDescription = () => {\n let category = RouteParams.catalogCategory();\n let lang = LocalStorage.get(\"language\");\n let itself = this;\n\n FiltersService\n .loadCategoryDescription(lang, category)\n .then(function (result) {\n itself.setState({activeCategory: result});\n });\n };\n\n loadCategories = () => {\n let params = RouteParams.search();\n let category = RouteParams.catalogCategory();\n let lang = LocalStorage.get(\"language\");\n let itself = this;\n\n FiltersService\n .listCategories(lang, params.country, params.shop, category)\n .then(function (result) {\n itself.setState({categories: result.items});\n });\n };\n\n componentWillMount = () => {\n this.updateLastLocationAndLoadCategories(this.props);\n // this.loadDescription();\n // this.loadCategories();\n };\n\n componentWillReceiveProps = (nextProps) => {\n this.updateLastLocationAndLoadCategories(nextProps);\n\n // const location = nextProps.location.pathname + nextProps.location.search;\n // if (this.state.lastLocation !== location) {\n // if (this.state.lastLocation !== null) {\n // this.loadDescription();\n // this.loadCategories();\n // }\n // this.setState({lastLocation: location});\n // }\n };\n\n updateLastLocationAndLoadCategories = (props) => {\n const location = props.location.pathname + props.location.search;\n if (this.state.lastLocation !== location) {\n this.setState({lastLocation: location}, () => {\n this.loadDescription();\n this.loadCategories();\n });\n }\n };\n\n render() {\n const {activeCategory, categories} = this.state;\n return (\n \n {(activeCategory === null || categories === null) &&\n \n }\n {activeCategory !== null && categories !== null &&\n \n \n

    {activeCategory.title}

    \n {!activeCategory.root &&\n \n \n \n }\n \n \n {\n categories.map(category => {\n return (\n \n \n \n );\n })\n }\n \n \n
    \n
    \n }\n
    \n )\n }\n}\n\nProductCategories.propTypes = {\n location: PropTypes.object.isRequired\n};\n\nexport default withRouter(ProductCategories);\n","const ImageService = {\n calculateImageSize: function (image) {\n let parent = image.parentNode;\n\n let plannedWidth = parent.offsetWidth;\n let plannedHeight = plannedWidth;\n\n let naturalHeight = image.naturalHeight;\n let naturalWidth = image.naturalWidth;\n\n if ((naturalWidth / plannedWidth) < (naturalHeight / plannedHeight)) {\n let newHeight = Math.round(naturalHeight * (plannedWidth / naturalWidth));\n image.style.width = plannedWidth + \"px\";\n image.style.height = newHeight + \"px\";\n parent.style.height = plannedHeight + \"px\";\n image.style.marginTop = Math.round((newHeight - plannedHeight) / -2) + \"px\";\n\n } else {\n let newWidth = Math.round(naturalWidth * (plannedHeight / naturalHeight));\n image.style.width = newWidth + \"px\";\n image.style.height = plannedHeight + \"px;\";\n image.style.marginLeft = Math.round((newWidth - plannedWidth) / -2) + \"px\";\n }\n },\n\n calculateTileSize: function (image) {\n let parent = image.parentNode;\n\n let plannedWidth = parent.offsetWidth;\n let plannedHeight = parent.offsetHeight - 1;\n\n let naturalHeight = image.naturalHeight;\n let naturalWidth = image.naturalWidth;\n\n if ((naturalWidth / plannedWidth) < (naturalHeight / plannedHeight)) {\n let newHeight = Math.round(naturalHeight * (plannedWidth / naturalWidth));\n let margin = Math.round((newHeight - plannedHeight) / -2) + \"px\";\n\n image.style.width = plannedWidth + \"px\";\n image.style.height = newHeight + \"px\";\n parent.style.height = plannedHeight + \"px\";\n image.style.marginTop = margin;\n image.style.marginBottom = margin;\n\n } else {\n let newWidth = Math.round(naturalWidth * (plannedHeight / naturalHeight));\n image.style.width = newWidth + \"px\";\n image.style.height = plannedHeight + \"px;\";\n image.style.marginLeft = Math.round((newWidth - plannedWidth) / -2) + \"px\";\n }\n }\n};\n\nexport default ImageService;\n","import axios from \"axios/index\";\nimport LocalStorage from \"./LocalStorage\";\n\nlet sprintf = require('sprintf-js').sprintf\n\nconst formats = {\n RUB: '%.0f₽',\n USD: '$%01.2f',\n EUR: '%01.2f €',\n CZK: '%.0f Kč',\n UAH: '%.0f грн.',\n DEF: '%f'\n};\n\nconst PriceService = {\n loadCurrencyRates: function () {\n return axios\n .get(\"/api/v1/currency-rates\")\n .then(response => {\n if (response.status >= 200 && response.status < 300) {\n LocalStorage.set(\"currencyRates\", response.data);\n }\n return Promise.reject(response);\n })\n .catch(error => {\n });\n },\n\n // {amount: 30000, currency: \"CZK\", code: \"30000-CZK\"}\n convertAndShow: function (money) {\n return this.formatPrice(this.convertMoney(money));\n },\n\n convertMoney: function (input) {\n let price = input.split('-');\n let amount = +price[0];\n if (amount > 0) {\n return this.convert(amount, price[1]);\n } else {\n return input;\n }\n },\n\n convert: function (fromAmmount, fromCurrency) {\n let currencyRates = LocalStorage.get(\"currencyRates\");\n let currentCurrency = LocalStorage.get(\"currency\").toUpperCase();\n\n if (currencyRates === undefined || currencyRates === null ||\n currencyRates[fromCurrency] === undefined || currencyRates[currentCurrency] === undefined) {\n return fromAmmount + '-' + fromCurrency;\n }\n\n let fromRate = currencyRates[fromCurrency];\n let toRate = currencyRates[currentCurrency];\n let conversationRate = toRate / fromRate;\n\n return fromAmmount * conversationRate + \"-\" + currentCurrency;\n },\n\n formatPrice: function (input) {\n let price = input.split('-');\n let amount = +price[0] / 100;\n let format = formats[price[1]] || formats.DEF;\n if (amount > 0) {\n return sprintf(format, amount);\n } else {\n return \"\";\n }\n }\n};\n\nexport default PriceService;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nclass ProductRating extends Component {\n render = () => {\n const range = [1, 2, 3, 4, 5];\n const value = Math.round(this.props.value);\n return (\n \n {\n range.map(index => {\n const starClass = index <= value ? 'fas' : 'far';\n return ();\n })\n }\n \n )\n }\n}\n\nProductRating.propTypes = {\n value: PropTypes.number.isRequired\n};\n\nexport default ProductRating;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nclass CardIndicators extends Component {\n render = () => {\n const {product, user} = this.props;\n return (\n
    \n {user && !product.active &&
    }\n {user && product.inWishList &&
    }\n
    \n )\n }\n}\n\nCardIndicators.propTypes = {\n product: PropTypes.object.isRequired,\n user: PropTypes.object\n};\n\nexport default CardIndicators;\n","import axios from \"axios\";\nimport ReturnPromise from \"./ReturnPromise\";\n\nconst WISHLIST_API = \"/api/v1/wishlists/mine\";\n\nconst WishlistService = {\n check: function (productId) {\n return ReturnPromise.get(axios.head(`${WISHLIST_API}/${productId}`));\n },\n\n addToWishlist: function (productId) {\n return ReturnPromise.get(axios.post(`${WISHLIST_API}/${productId}`, {}));\n },\n\n deleteFromWishlist: function (productId) {\n return ReturnPromise.get(axios.delete(`${WISHLIST_API}/${productId}`));\n },\n\n list: function (offset, limit) {\n return ReturnPromise.get(axios.get(WISHLIST_API, {params: {offset: offset, limit: limit}}));\n },\n\n};\n\nexport default WishlistService;\n","import axios from \"axios/index\";\nimport ReturnPromise from \"./ReturnPromise\";\n\nconst MY_STUFF = \"/api/v1/users/me/mystuff\";\nconst PRODUCTS = \"/api/v1/products\";\n\nconst ProductService = {\n list: function (offset, limit, sort, shop, country, category) {\n return ReturnPromise.get(\n axios\n .get(PRODUCTS, {\n params: {\n offset: offset,\n limit: limit,\n sort: sort,\n shop: shop,\n country: country,\n category: category\n }\n }));\n },\n\n myStuff: function (offset, limit) {\n return ReturnPromise.get(axios.get(MY_STUFF, {params: {offset: offset, limit: limit}}));\n },\n\n findMyStuffById: function (productId) {\n return ReturnPromise.get(axios.get(`${MY_STUFF}/${productId}`));\n },\n\n findByUrl: function (url) {\n return ReturnPromise.get(axios.get(url));\n },\n\n productByFurl: function (furl) {\n return ReturnPromise.get(axios.get(`${PRODUCTS}/${furl}`));\n },\n\n\n createReview: function (productId, rate, anonymous, body) {\n return ReturnPromise.get(\n axios\n .post(`${PRODUCTS}/${productId}/comments`, {\n anonymous: anonymous,\n body: body,\n rating: rate,\n }));\n },\n\n createReviewReply: function (productId, reviewId, message) {\n return ReturnPromise.get(\n axios\n .post(`${PRODUCTS}/${productId}/comments`, {\n body: message,\n replyTo: reviewId\n }));\n },\n\n updateVisibility: function (productId, isVisible) {\n return ReturnPromise.get(axios.put(`${MY_STUFF}/${productId}`, {active: isVisible}));\n },\n\n deleteProduct: function (productId) {\n return ReturnPromise.get(axios.delete(`${MY_STUFF}/${productId}`));\n },\n\n uploadImage: function (file) {\n const data = new FormData();\n data.append('Files', file);\n return ReturnPromise.get(axios.post(`${MY_STUFF}/any/images`, data));\n },\n\n updateProduct: function (product) {\n let url = product.id ? `${MY_STUFF}/${product.id}` : MY_STUFF;\n return ReturnPromise.get(axios.post(url, product));\n }\n};\n\nexport default ProductService;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'react-bootstrap/Button'\nimport WishlistService from \"../services/WishlistService\";\nimport ProductService from \"../services/ProductService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport LinkService from \"../services/LinkService\";\n\nclass QuickAccessPanel extends Component {\n addToWishlist = () => {\n const {product, user} = this.props;\n if (user === null || user === undefined) {\n this.props.onLogin();\n\n } else {\n const itself = this;\n WishlistService\n .addToWishlist(product.id)\n .then(function () {\n product.inWishList = true;\n itself.props.onAddedToWishlist(product);\n });\n }\n };\n\n removeFromWishlist = () => {\n const {product, user} = this.props;\n if (user === null || user === undefined) {\n this.props.onLogin();\n\n } else {\n const itself = this;\n WishlistService\n .deleteFromWishlist(product.id)\n .then(function () {\n product.inWishList = false;\n itself.props.onRemovedFromWishlist(product);\n });\n }\n };\n\n updateVisibility = (isVisible) => {\n const {product, user} = this.props;\n if (user === null || user === undefined) {\n this.props.onLogin();\n\n } else {\n const itself = this;\n ProductService\n .updateVisibility(product.id, isVisible)\n .then(function (updatedProduct) {\n itself.props.onProductUpdated(updatedProduct);\n });\n }\n };\n\n render = () => {\n const {product, user} = this.props;\n return (\n
    \n {user && product.brand && product.brand.id === user.id &&\n \n \n \n \n \n {!product.active &&\n \n }\n {product.active &&\n \n }\n \n }\n\n {(!product.inWishList || user === null) && product.active &&\n \n }\n {product.inWishList && user !== null &&\n \n }\n
    \n )\n }\n}\n\nQuickAccessPanel.propTypes = {\n product: PropTypes.object.isRequired,\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n onProductUpdated: PropTypes.func.isRequired,\n onRemoveProduct: PropTypes.func.isRequired\n};\n\nexport default QuickAccessPanel;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Col from \"react-bootstrap/Col\";\nimport Card from 'react-bootstrap/Card'\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport LinkService from \"../services/LinkService\";\nimport ImageService from \"../services/ImageService\";\nimport PriceService from \"../services/PriceService\";\nimport ProductRating from \"./ProductRating\";\nimport {FormattedMessage} from \"react-intl\";\nimport CardIndicators from \"./CardIndicators\";\nimport QuickAccessPanel from \"./QuickAccessPanel\";\nimport classNames from 'classnames'\n\nclass ProductCard extends Component {\n state = {\n imageError: false,\n imageLoaded: false\n };\n\n handleImageLoad = (event) => {\n ImageService.calculateImageSize(event.target);\n this.setState({imageLoaded: true});\n };\n\n imageFallback = () => {\n this.setState({imageError: true});\n };\n\n render = () => {\n const {product, user} = this.props;\n return (\n \n {product.hidden === false &&\n \n \n \n \n \n \n \n \n

    {product.title}

    \n

    {product.brand.name}

    \n {product.price !== undefined && product.price.amount > 0 &&\n {PriceService.convertAndShow(product.price.code)}\n }\n
    \n {product.reviewsCount > 0 &&\n \n }\n {product.reviewsCount === 0 && }\n \n  {product.reviewsCount}\n \n
    \n {user !== null && }\n \n
    \n
    \n }\n {product.hidden === true &&\n \n \n \n

    \n

    \n
    \n \n \n  0\n \n
    \n {user !== null && }\n \n
    \n
    \n }\n \n )\n }\n}\n\nProductCard.propTypes = {\n product: PropTypes.object.isRequired,\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n onProductUpdated: PropTypes.func.isRequired,\n onRemoveProduct: PropTypes.func.isRequired\n};\n\nexport default ProductCard;\n","import React, {Component} from 'react';\nimport Col from \"react-bootstrap/Col\";\nimport ContentLoader from \"react-content-loader\";\n\nclass ProductCardPlaceholder extends Component {\n render = () => {\n return (\n \n \n \n )\n }\n}\n\nexport default ProductCardPlaceholder;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\n\nclass InfiniteScroll extends Component {\n onBottom = () => {\n const distance = (this.props.distance || 0) + 1;\n if (((window.innerHeight * distance + window.pageYOffset) >= document.body.offsetHeight - 2) && !this.props.disabled) {\n this.props.onBottom();\n }\n };\n\n componentDidMount = () => {\n window.addEventListener(\"scroll\", this.onBottom);\n };\n\n componentWillUnmount = () => {\n window.removeEventListener(\"scroll\", this.onBottom);\n };\n\n render = () => {\n return ;\n }\n}\n\nInfiniteScroll.propTypes = {\n onBottom: PropTypes.func.isRequired,\n distance: PropTypes.number,\n disabled: PropTypes.bool\n};\n\nexport default InfiniteScroll;\n","import React, {Component} from 'react'\nimport AjaxLoader from \"./ajax-loader.gif\"\nimport Image from 'react-bootstrap/Image'\n\nclass LoadingIndicator extends Component {\n render = () => {\n return (\n

    \n )\n }\n}\n\nexport default LoadingIndicator;\n","import React, {Component} from 'react'\nimport classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport Modal from 'react-bootstrap/Modal'\nimport {FormattedMessage} from \"react-intl\"\nimport Button from \"react-bootstrap/Button\"\nimport Container from 'react-bootstrap/Container'\nimport Row from 'react-bootstrap/Row'\nimport Col from 'react-bootstrap/Col'\n\nclass Popup extends Component {\n onConfirm = () => {\n this.props.onClose();\n this.props.onConfirm()\n };\n render = () => {\n let type = this.props.type === \"CONFIRM\" ? \"CONFIRM\" : \"ALERT\";\n let iconClass = type === \"CONFIRM\" ? \"fa-question-circle text-warning\" : \"fa-info-circle text-info\";\n\n return (\n \n \n {this.props.title}\n \n \n \n \n \n {this.props.message}\n \n \n \n \n \n {type === \"CONFIRM\" &&\n \n }\n \n \n )\n }\n}\n\nPopup.propTypes = {\n show: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onConfirm: PropTypes.func.isRequired,\n\n title: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired, // ALERT (ok), CONFIRM (Ok, cancel)\n message: PropTypes.string.isRequired,\n};\n\nexport default Popup;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Row from \"react-bootstrap/Row\";\nimport Container from \"react-bootstrap/Container\";\nimport ProductCard from \"./ProductCard\";\nimport ProductService from \"../services/ProductService\";\nimport ProductCardPlaceholder from \"./ProductCardPlaceholder\";\nimport InfiniteScroll from \"../shell/InfiniteScroll\";\nimport LoadingIndicator from \"./LoadingIndicator\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport Col from \"react-bootstrap/Col\";\nimport Popup from \"../shell/Popup\";\n\nclass ProductList extends Component {\n state = {\n products: null,\n lastUrl: null,\n // total: null,\n nextUrl: null,\n scrollEnable: false,\n loading: false,\n\n showPopup: false,\n popupTitle: \"\",\n popupMessage: \"\",\n onPopupConfirm: () => {\n }\n };\n\n doLoadProductsList = () => {\n if (this.state.nextUrl === null || this.state.products === null) {\n return this.props.loadProducts();\n } else {\n return ProductService.findByUrl(this.state.nextUrl);\n }\n };\n\n loadProductsList = () => {\n let itself = this;\n this.setState({loading: true});\n\n this\n .doLoadProductsList()\n .then(function (result) {\n let products = itself.state.products || [];\n result.items.forEach(product => {\n products.push(product);\n });\n\n itself.setState({\n products: products,\n // total: result.total,\n scrollEnable: true,\n nextUrl: result.next || null,\n loading: false\n });\n })\n };\n\n loadNext = () => {\n this.setState({scrollEnable: false});\n if (this.state.nextUrl !== null) {\n this.loadProductsList();\n }\n };\n\n componentWillMount = () => {\n this.updateLastUrlAndLoadProductList(this.props);\n\n // const params = this.props.location.pathname + this.props.location.search;\n //\n // this.setState({\n // lastUrl: params,\n // products: null,\n // nextUrl: null\n // }, this.loadProductsList);\n };\n\n componentWillReceiveProps = (nextProps) => {\n this.updateLastUrlAndLoadProductList(nextProps);\n\n // const params = nextProps.location.pathname + nextProps.location.search;\n // if (this.state.lastUrl !== params) {\n // if (this.state.lastUrl !== null) {\n // this.setState({\n // products: null,\n // nextUrl: null\n // }, this.loadProductsList);\n // }\n //\n // this.setState({lastUrl: params});\n // }\n };\n\n updateLastUrlAndLoadProductList = (prop) => {\n const params = prop.location.pathname + prop.location.search;\n if (this.state.lastUrl !== params) {\n this.setState({\n lastUrl: params,\n products: null,\n nextUrl: null\n }, this.loadProductsList);\n }\n };\n\n replaceProduct = (product) => {\n const products = this.state.products;\n const i = products.map(p => p.id).indexOf(product.id);\n if (i >= 0) {\n products[i] = product;\n this.setState({products: products});\n }\n };\n\n removeProduct = (product) => {\n const products = this.state.products;\n const i = products.map(p => p.id).indexOf(product.id);\n if (i >= 0) {\n delete products[i];\n this.setState({products: products});\n }\n };\n\n onAddedToWishlist = (product) => {\n this.replaceProduct(product);\n this.props.onAddedToWishlist(product);\n };\n\n onRemovedFromWishlist = (product) => {\n this.replaceProduct(product);\n this.props.onRemovedFromWishlist(product);\n };\n\n onRemoveProduct = (product) => {\n const {formatMessage} = this.props.intl;\n this.setState({\n showPopup: true,\n popupTitle: formatMessage({id: \"product.remove\"}),\n popupMessage: formatMessage({id: \"product.confirmRemove\"}) + \"'\" + product.title + \"'?\",\n onPopupConfirm: () => {\n ProductService\n .deleteProduct(product.id)\n .then(() => {\n this.removeProduct(product)\n });\n }\n });\n };\n\n render = () => {\n const {products} = this.state;\n return (\n \n {/*{total !== null && total > 0 &&*/}\n {/**/}\n {/* */}\n {/**/}\n {/*}*/}\n\n \n {products === null &&\n [1, 2, 3, 4, 5, 6].map(index => {\n return ()\n }\n )\n }\n\n {products !== null && products.length > 0 &&\n products.map(product => {\n return (\n \n )\n })\n }\n {products !== null && products.length === 0 &&\n \n

    \n \n }\n
    \n {this.state.loading && }\n \n this.setState({showPopup: false})}\n title={this.state.popupTitle}\n message={this.state.popupMessage}\n onConfirm={this.state.onPopupConfirm}\n type=\"CONFIRM\"\n />\n
    \n )\n }\n}\n\nProductList.propTypes = {\n location: PropTypes.object.isRequired,\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n loadProducts: PropTypes.func.isRequired\n};\n\nexport default injectIntl(ProductList);\n","import React, {Component} from 'react';\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\nimport CountriesFilter from \"./CountriesFilter\";\nimport ProductCategories from \"./ProductCategories\";\nimport ProductList from \"./ProductList\";\nimport PropTypes from \"prop-types\";\nimport RouteParams from \"../services/RouteParams\";\nimport ProductService from \"../services/ProductService\";\n\nclass Catalog extends Component {\n loadProducts = () => {\n let params = RouteParams.search();\n let category = RouteParams.catalogCategory();\n let sort = params.sort || 'rand';\n return ProductService.list(0, 24, sort, params.shop, params.country, category);\n };\n\n render = () => {\n return (\n \n \n \n {/**/}\n \n \n \n \n \n \n )\n }\n}\n\nCatalog.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n};\n\nexport default Catalog;\n","import React, {Component} from 'react';\nimport ListGroup from 'react-bootstrap/ListGroup'\nimport PropTypes from \"prop-types\";\nimport {FormattedMessage} from \"react-intl\";\nimport Badge from \"react-bootstrap/Badge\";\nimport LinkService from \"../services/LinkService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport ContentLoader from \"react-content-loader\";\n\nclass ProfileNavi extends Component {\n render = () => {\n const {user} = this.props;\n return (\n \n {user &&\n \n \n \n \n \n \n \n \n \n \n \n {user.privileges.includes(\"SHOP\") &&\n \n \n \n \n \n }\n \n \n \n {user.unreadMessagesCount > 0 &&\n \n {user.unreadMessagesCount}\n \n }\n\n \n \n \n \n \n {user.wishlistCount > 0 &&\n \n {user.wishlistCount}\n \n }\n \n \n \n }\n {!user && [1, 2, 3].map(index => {\n return (\n \n )\n }\n )}\n \n )\n }\n}\n\nProfileNavi.propTypes = {\n user: PropTypes.object,\n};\n\nexport default ProfileNavi;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ProfileNavi from \"./ProfileNavi\";\nimport ProfileCard from \"./ProfileCard\";\n\nclass ProfileMenu extends Component {\n render = () => {\n return (\n \n \n \n \n )\n }\n}\n\nProfileMenu.propTypes = {\n user: PropTypes.object,\n};\n\nexport default ProfileMenu;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport ProfileMenu from \"./ProfileMenu\";\n\nclass ProfilePage extends Component {\n render = () => {\n return (\n \n \n \n \n \n {this.props.children}\n \n \n )\n }\n}\n\nProfilePage.propTypes = {\n user: PropTypes.object,\n};\n\nexport default ProfilePage;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ProductList from \"../catalog/ProductList\";\nimport ProfilePage from \"./ProfilePage\";\nimport WishlistService from \"../services/WishlistService\";\nimport {FormattedMessage} from \"react-intl\";\n\nclass Wishlist extends Component {\n loadProducts = () => {\n return WishlistService.list(0, 24);\n };\n\n render = () => {\n return (\n \n

    \n \n
    \n )\n }\n}\n\nWishlist.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n};\n\nexport default Wishlist;\n","import axios from \"axios/index\";\nimport ReturnPromise from \"./ReturnPromise\";\n\nconst DIALOGS_API = \"/api/v1/dialogs\";\nconst MESSAGES_API = \"/api/v1/messages\";\n\nconst MessageService = {\n listDialogs: function (offset, limit) {\n return ReturnPromise.get(\n axios\n .get(DIALOGS_API, {\n params: {\n offset: offset,\n limit: limit\n }\n }));\n },\n\n get: function (url) {\n return ReturnPromise.get(axios.get(url));\n },\n\n loadMessageThread: function (userId) {\n return ReturnPromise.get(axios.get(`${DIALOGS_API}/${userId}`));\n },\n\n create: function (userId, message, fromId) {\n return ReturnPromise.get(\n axios\n .post(MESSAGES_API, {\n userId: userId,\n body: message,\n fromId: fromId\n }));\n },\n\n markMessageThreadAsRead: function (userId) {\n return ReturnPromise.get(axios.put(`${DIALOGS_API}/${userId}`, {unread: false}));\n }\n};\n\nexport default MessageService;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport Form from 'react-bootstrap/Form'\nimport Button from \"react-bootstrap/Button\"\nimport {injectIntl} from \"react-intl\";\nimport MessageService from \"../services/MessageService\";\nimport Alert from 'react-bootstrap/Alert'\n\nclass NewMessage extends Component {\n formControlRef = React.createRef();\n\n state = {\n message: \"\",\n isSending: false,\n alertMessage: null,\n alertType: null\n };\n\n sendingNotAvailable = (message, isSending) => {\n return message === null || message.length === 0 || isSending;\n };\n\n handleCloseAlert = () => {\n this.setState({\n alertMessage: null,\n alertType: null\n });\n };\n\n handleSend = () => {\n const {formatMessage} = this.props.intl;\n let itself = this;\n this.setState({isSending: true});\n\n MessageService\n .create(this.props.to, this.state.message, this.props.from)\n .then(function (createdMessage) {\n itself.setState({\n isSending: false,\n alertMessage: formatMessage({id: \"messages.messageWasSent\"}),\n alertType: \"success\",\n message: \"\"\n }, () => {\n itself.props.onMessageSent(createdMessage)\n });\n\n\n }, function (error) {\n itself.setState({\n isSending: false,\n alertMessage: formatMessage({id: \"messages.messageWasNotSent\"}),\n alertType: \"danger\"\n });\n });\n };\n\n componentWillMount = () => {\n this.setState({message: this.props.body || \"\"})\n };\n\n componentDidMount = () => {\n this.formControlRef.current.focus();\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n const {message, isSending, alertType, alertMessage} = this.state;\n let isSendingAvailable = !this.sendingNotAvailable(message, isSending);\n return (\n \n \n {alertMessage}\n \n \n this.setState({message: e.target.value})}\n />\n \n \n \n )\n }\n}\n\nNewMessage.propTypes = {\n to: PropTypes.string.isRequired,\n body: PropTypes.string,\n onMessageSent: PropTypes.func.isRequired,\n from: PropTypes.string\n};\n\nexport default injectIntl(NewMessage);\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage} from \"react-intl\"\nimport Modal from 'react-bootstrap/Modal'\nimport NewMessage from \"../messages/NewMessage\";\n\nclass SendMessage extends Component {\n handleMessageSent = () => {\n setTimeout(() => {\n this.props.onClose();\n }, 3000);\n };\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n )\n }\n}\n\nSendMessage.propTypes = {\n show: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n userId: PropTypes.string.isRequired,\n body: PropTypes.string,\n from: PropTypes.string\n};\n\nexport default SendMessage;\n","const ValidationUtils = {\n validateEmail: function (email) {\n var re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n }\n};\n\nexport default ValidationUtils;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage, injectIntl} from \"react-intl\"\nimport Modal from \"react-bootstrap/Modal\";\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport ValidationUtils from \"../services/ValidationUtils\";\nimport UserService from \"../services/UserService\";\nimport LocalStorage from \"../services/LocalStorage\";\nimport Alert from \"react-bootstrap/Alert\";\n\nclass FastRegistrationDialog extends Component {\n state = {\n email: \"\",\n username: \"\",\n showProgress: false,\n showError: false\n };\n\n handleTextFieldChange = (event, field) => {\n this.setState({[field]: event.target.value});\n };\n\n isEmailValid = (email) => {\n return email && email.trim().length > 0 && ValidationUtils.validateEmail(email)\n };\n\n onConfirm = () => {\n this.setState({showProgress: true, showError: false});\n UserService\n .fastRegister(this.state.email, this.state.username, LocalStorage.getOrDefault(\"language\", \"en\"))\n .then(data => {\n this.setState({\n showProgress: false\n });\n this.props.onRegister(data.id);\n })\n .catch((error) => {\n this.setState({\n showProgress: false,\n showError: true\n });\n });\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n return (\n \n \n {this.props.title}\n \n \n this.setState({showError: false})}>\n \n \n\n \n \n \n \n this.handleTextFieldChange(e, \"email\")}\n />\n \n\n \n \n this.handleTextFieldChange(e, \"username\")}\n />\n \n\n \n \n \n \n \n )\n }\n}\n\nFastRegistrationDialog.propTypes = {\n title: PropTypes.string.isRequired,\n show: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onRegister: PropTypes.func.isRequired\n};\n\nexport default injectIntl(FastRegistrationDialog);\n","import React, {Component} from 'react';\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport PriceService from \"../services/PriceService\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Button from 'react-bootstrap/Button'\nimport ProductRating from \"../catalog/ProductRating\";\nimport PropTypes from 'prop-types'\nimport Jumbotron from 'react-bootstrap/Jumbotron'\nimport ContentLoader from \"react-content-loader\";\nimport WishlistService from \"../services/WishlistService\";\nimport SendMessage from \"./SendMessage\";\nimport FastRegistrationDialog from \"../shell/FastRegistrationDialog\";\n\nclass ProductDescription extends Component {\n state = {\n showSendMessage: false,\n showFastRegistrationDialog: false,\n fromId: undefined\n };\n\n limitTo = (data, limit) => {\n return data.substring(0, limit);\n };\n\n addToWishlist = () => {\n const {product, user} = this.props;\n if (user === null || user === undefined) {\n this.props.onLogin();\n\n } else {\n const itself = this;\n WishlistService\n .addToWishlist(product.id)\n .then(function () {\n product.inWishList = true;\n itself.props.onAddedToWishlist(product);\n });\n }\n };\n\n removeFromWishlist = () => {\n const {product, user} = this.props;\n if (user === null || user === undefined) {\n this.props.onLogin();\n\n } else {\n const itself = this;\n WishlistService\n .deleteFromWishlist(product.id)\n .then(function () {\n product.inWishList = false;\n itself.props.onRemovedFromWishlist(product);\n });\n }\n };\n\n sendMessage = () => {\n const {user} = this.props;\n if (user === null || user === undefined) {\n // this.props.onLogin();\n this.setState({showFastRegistrationDialog: true});\n } else {\n this.setState({showSendMessage: true});\n }\n };\n\n render = () => {\n const {product, user} = this.props;\n const {formatMessage} = this.props.intl;\n return (\n \n {!product &&\n \n \n \n\n \n \n \n \n\n \n\n \n \n\n \n\n \n \n\n \n \n }\n {product &&\n \n {product.brand.name}\n

    {product.title}

    \n

    {this.limitTo(product.description, 200)}…

    \n

    \n {product.price.amount > 0 &&\n

    \n {PriceService.convertAndShow(product.price.amount + '-' + product.price.currency)}\n   \n \n

    \n }\n\n
    \n\n \n {(!product.inWishList || user === null) &&\n \n \n \n }\n {product.inWishList && user !== null &&\n \n \n \n }\n\n \n \n \n \n\n \n \n \n this.setState({showSendMessage: false})}\n userId={product.brand.id}\n body={\"\\n\\n\" + product.title + \" (\" + window.location.href + \")\"}\n from={this.state.fromId}\n />\n this.setState({showFastRegistrationDialog: false})}\n onRegister={(fromId) => this.setState({fromId: fromId, showFastRegistrationDialog: false, showSendMessage: true})}\n />\n \n \n
    \n }\n
    \n )\n }\n}\n\nProductDescription.propTypes = {\n user: PropTypes.object,\n product: PropTypes.object,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n onLogin: PropTypes.func.isRequired,\n onShowReviews: PropTypes.func.isRequired\n};\n\nexport default injectIntl(ProductDescription);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport Image from \"react-bootstrap/Image\";\nimport ImageZoom from 'react-medium-image-zoom'\n\nclass ImageThumbnails extends Component {\n state = {\n selected: 0\n };\n\n selectThumbnail = (event, image) => {\n let imageIndex = 0;\n for (let i = 0; i < this.props.product.images.length; i++) {\n if (this.props.product.images[i].thumb === image.thumb) {\n imageIndex = i;\n }\n }\n this.setState({selected: imageIndex});\n };\n\n render = () => {\n const {product} = this.props;\n const {selected} = this.state;\n\n return (\n \n {product && product.images &&\n \n \n \n {\n product.images.map(image => {\n return (\n \n this.selectThumbnail(e, image)}\n err-src=\"{{::configService.noCatalogImage}}\"\n />\n \n );\n })\n }\n \n \n \n

    \n \n

    \n \n
    \n }\n
    \n )\n }\n}\n\nImageThumbnails.propTypes = {\n product: PropTypes.object\n};\n\nexport default ImageThumbnails;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport LinkService from \"../services/LinkService\";\nimport Card from \"react-bootstrap/Card\";\nimport ImageService from \"../services/ImageService\";\n\nclass SmallProductCard extends Component {\n state = {\n imageError: false,\n };\n\n handleImageLoad = (event) => {\n ImageService.calculateImageSize(event.target);\n };\n\n imageFallback = () => {\n this.setState({imageError: true});\n };\n\n render = () => {\n const {product} = this.props;\n return (\n \n \n \n \n \n \n \n )\n }\n}\n\nSmallProductCard.propTypes = {\n product: PropTypes.object.isRequired\n};\n\nexport default SmallProductCard;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {injectIntl} from \"react-intl\"\n\nclass Rating extends Component {\n state = {\n selected: 0,\n hovered: 0\n };\n\n select = (i) => {\n this.setState({selected: i}, () => {\n this.props.onSelected(i);\n });\n };\n\n renderStar = (i) => {\n const {disabled} = this.props;\n const {hovered, selected} = this.state;\n const {formatMessage} = this.props.intl;\n const position = (hovered > 0 && !disabled) ? hovered : selected;\n const color = disabled ? \"text-muted\" : \"text-warning clickable\"\n const starClass = (i <= position) ? 'fas' : 'far';\n return (\n this.setState({hovered: 0})}\n onMouseEnter={() => this.setState({hovered: i})}\n onClick={() => disabled ? null : this.select(i)}\n />\n )\n };\n\n render = () => {\n return (\n \n

    \n {\n [1, 2, 3, 4, 5].map((i) => {\n return this.renderStar(i);\n })\n }\n

    \n
    \n )\n }\n}\n\nRating.propTypes = {\n onSelected: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired\n};\n\nexport default injectIntl(Rating);\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage, injectIntl} from \"react-intl\"\nimport Modal from 'react-bootstrap/Modal'\nimport Rating from \"./Rating\"\nimport Form from 'react-bootstrap/Form'\nimport Button from \"react-bootstrap/Button\"\nimport Alert from 'react-bootstrap/Alert'\nimport ProductService from \"../services/ProductService\";\n\nclass RateItem extends Component {\n state = {\n rating: 0,\n anonymous: false,\n message: \"\",\n\n alertMessage: null,\n isSending: false\n };\n\n doRateItem = () => {\n const {rating, anonymous, message} = this.state;\n const itself = this;\n const {formatMessage} = this.props.intl;\n\n this.setState({isSending: true});\n ProductService\n .createReview(this.props.productId, rating, anonymous, message)\n .then(function () {\n itself.props.onItemRated();\n itself.props.onClose()\n\n }, function (error) {\n itself.setState({\n isSending: false,\n alertMessage: formatMessage({id: \"product.reviewWasNotSent\"}),\n });\n });\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n const {rating, anonymous, message, alertMessage, isSending} = this.state;\n\n return (\n \n \n \n \n \n this.setState({alertMessage: null})}>\n {alertMessage}\n \n
    \n this.setState({rating: i})} disabled={isSending}/>\n \n this.setState({message: event.target.value})}\n />\n \n \n this.setState({anonymous: event.target.checked})}\n label={formatMessage({id: \"product.stayAnonymous\"})}\n />\n \n \n
    \n \n \n \n
    \n )\n }\n}\n\nRateItem.propTypes = {\n show: PropTypes.bool.isRequired,\n productId: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onItemRated: PropTypes.func.isRequired\n};\n\nexport default injectIntl(RateItem);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from 'react-bootstrap/Tabs'\nimport Tab from 'react-bootstrap/Tab'\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport Jumbotron from 'react-bootstrap/Jumbotron'\nimport ProductsService from \"../services/ProductService\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport SmallProductCard from \"./SmallProductCard\";\nimport Button from \"react-bootstrap/Button\";\nimport LinkService from \"../services/LinkService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport ProductRating from \"../catalog/ProductRating\"\nimport ProgressBar from 'react-bootstrap/ProgressBar'\nimport RateItem from \"./RateItem\";\n\nclass ProductDetails extends Component {\n state = {\n otherProducts: null,\n showMoreButton: false,\n showReviews: null,\n\n key: \"description\",\n\n showRateItem: false,\n lastProductId: null\n };\n\n renderDescription = () => {\n const {product} = this.props;\n return (\n \n

    {product.description}

    \n
      \n {\n product.properties.map(property => {\n return (\n
    • {property}
    • \n );\n })\n }\n
    \n
    \n )\n };\n\n renderMoreFrom = (otherProducts) => {\n return (\n \n \n {otherProducts !== null && otherProducts.length === 0 &&\n \n

    \n \n

    \n \n }\n {otherProducts !== null && otherProducts.length > 0 &&\n otherProducts.map(product => {\n return (\n \n \n \n )\n })\n }\n {this.state.showMoreButton &&\n \n \n \n \n \n }\n
    \n
    \n )\n };\n\n renderReviews = () => {\n const {product, user} = this.props;\n\n let ratedAlready = (user && product && product.reviews.filter(review => review.authorId === user.id).length > 0) || false;\n return (\n \n

    {product.rating.toFixed(2)}

    \n

    \n

    {product.reviewsCount}

    \n\n
    \n {\n product.starRating.map(progress => {\n return (\n \n {progress.title}\n 0 ? progress.rating.value : null}/>\n \n );\n })\n }\n {!ratedAlready &&\n \n \n this.setState({showRateItem: false})}\n onItemRated={this.props.onProductUpdated}\n productId={product.id}\n />\n \n }\n\n
    \n
    \n );\n };\n\n showReview = () => {\n const itself = this;\n this.setState({key: \"reviews\"}, () => {\n itself.scrollToElement(\"product-reviews\");\n });\n };\n\n scrollToElement = (elementId) => {\n window.scroll(0, this.findPos(document.getElementById(elementId)));\n };\n\n findPos = (obj) => {\n var curtop = 0;\n if (obj.offsetParent) {\n do {\n curtop += obj.offsetTop;\n obj = obj.offsetParent\n } while (obj);\n return [curtop];\n }\n };\n\n rateItem = () => {\n const {user} = this.props;\n if (user === null || user === undefined) {\n this.props.onLogin();\n } else {\n this.setState({showRateItem: true});\n }\n };\n\n loadOtherProducts = (productId, brandId) => {\n ProductsService\n .list(0, 11, \"default\", brandId)\n .then(data => {\n let products = data.items.filter(p => p.id !== productId);\n this.setState({\n showMoreButton: products.length > 9,\n otherProducts: products.slice(0, 9),\n lastProductId: productId\n });\n });\n };\n\n componentWillMount() {\n this.loadOtherProducts(this.props.product.id, this.props.product.brand.name.toLowerCase());\n }\n\n componentWillReceiveProps = (nextProps) => {\n if (nextProps.product !== null && nextProps.product !== undefined && nextProps.product.id !== this.state.lastProductId) {\n this.loadOtherProducts(nextProps.product.id, nextProps.product.brand.name.toLowerCase());\n }\n\n if (nextProps.showReviews !== null && nextProps.showReviews !== this.state.showReviews) {\n this.setState({showReviews: nextProps.showReviews}, this.showReview);\n }\n };\n\n resizeMoreFrom = (key) => {\n if (key === \"moreFrom\") {\n let products = this.state.otherProducts;\n this.setState({otherProducts: null}, () => {\n this.setState({otherProducts: products});\n });\n }\n this.setState({key: key});\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n const {product} = this.props;\n return (\n \n {product &&\n this.resizeMoreFrom(key)} activeKey={this.state.key}>\n \n {this.renderDescription()}\n \n \n {this.renderMoreFrom(this.state.otherProducts)}\n \n \n {this.renderReviews()}\n \n \n }\n \n )\n }\n}\n\nProductDetails.propTypes = {\n user: PropTypes.object,\n product: PropTypes.object.isRequired,\n showReviews: PropTypes.number,\n onProductUpdated: PropTypes.func,\n onLogin: PropTypes.func\n};\n\nexport default injectIntl(ProductDetails);\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage, injectIntl} from \"react-intl\"\nimport Button from \"react-bootstrap/Button\";\nimport Form from 'react-bootstrap/Form'\nimport Alert from 'react-bootstrap/Alert'\nimport ProductService from \"../services/ProductService\";\nimport ReviewItem from \"./ReviewItem\";\n\nclass ReviewReply extends Component {\n state = {\n textareaShown: false,\n message: \"\",\n isSending: false,\n alertMessage: null,\n reviews: []\n };\n\n sendingNotAvailable = (message, isSending) => {\n return message === null || message.length === 0 || isSending;\n };\n\n handleSend = () => {\n const {formatMessage} = this.props.intl;\n let itself = this;\n this.setState({isSending: true});\n\n ProductService\n .createReviewReply(this.props.product.id, this.props.reviewId, this.state.message)\n .then(function (review) {\n let reviews = itself.state.reviews;\n reviews.push(review);\n itself.setState({\n textareaShown: false,\n isSending: false,\n message: \"\",\n reviews: reviews\n });\n\n\n }, function (error) {\n itself.setState({\n isSending: false,\n alertMessage: formatMessage({id: \"messages.messageWasNotSent\"}),\n });\n });\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n const {message, isSending, alertMessage} = this.state;\n let isSendingAvailable = !this.sendingNotAvailable(message, isSending);\n return (\n \n {!this.state.textareaShown &&\n \n }\n {this.state.textareaShown &&\n
    \n this.setState({alertMessage: null})}>\n {alertMessage}\n \n \n this.setState({message: e.target.value})}\n />\n \n \n
    \n }\n {this.state.reviews.map((review) => {\n return ();\n })}\n\n
    \n )\n }\n}\n\nReviewReply.propTypes = {\n product: PropTypes.object.isRequired,\n reviewId: PropTypes.string.isRequired\n};\n\nexport default injectIntl(ReviewReply);\n","import React, {Component} from 'react'\nimport classNames from 'classnames'\nimport PropTypes from 'prop-types'\nimport {FormattedDate, FormattedMessage} from \"react-intl\"\nimport Media from 'react-bootstrap/Media'\nimport ProductRating from \"../catalog/ProductRating\";\nimport ReviewReply from \"./ReviewReply\";\nimport LinkService from \"../services/LinkService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\n\nclass ReviewItem extends Component {\n renderReviewAuthorName = (review) => {\n return (\n \n {review.shop &&\n \n \n {review.authorName}\n \n \n }\n {!review.shop && {review.authorName}}\n \n );\n };\n\n render = () => {\n const {review, product, user} = this.props;\n return (\n \n \n

    \n {review.rating > 0 && }\n {!review.anonymous && this.renderReviewAuthorName(review)}\n {review.anonymous && }\n\n {review.city && review.city.length > 0 && {review.city}}\n {review.country !== 'OT' &&\n }\n \n \n \n

    \n {review.body !== null && review.body.length > 0 &&

    {review.body}

    }\n {!review.replyTo && user && product.brand.id === user.id &&\n \n }\n
    \n
    \n )\n }\n}\n\nReviewItem.propTypes = {\n review: PropTypes.object.isRequired,\n product: PropTypes.object.isRequired,\n user: PropTypes.object\n};\n\nexport default ReviewItem;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport ContentLoader from \"react-content-loader\";\nimport ReviewItem from \"./ReviewItem\";\n\nclass ProductReviews extends Component {\n commentLoader = (i) => {\n return (\n \n \n\n \n \n \n \n \n\n \n \n\n \n \n\n \n )\n };\n\n render = () => {\n const {product, user} = this.props;\n return (\n \n {!product && [1, 2, 3, 4, 5].map((i) => {\n return this.commentLoader(i)\n })}\n {product && product.reviews.filter(review => review.status !== \"HIDDEN\").map(review => {\n return ()\n })}\n \n )\n }\n}\n\nProductReviews.propTypes = {\n product: PropTypes.object,\n user: PropTypes.object\n};\n\nexport default ProductReviews;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\nimport RouteParams from \"../services/RouteParams\";\nimport LinkService from \"../services/LinkService\";\nimport ProductService from \"../services/ProductService\";\nimport ProductDescription from \"./ProductDescription\";\nimport ImageThumbnails from \"./ImageThumbnails\";\nimport ProductDetails from \"./ProductDetails\";\nimport ProductReviews from \"./ProductReviews\";\n\nclass Product extends Component {\n state = {\n product: null,\n lastUrl: null,\n showReviews: null,\n show404: false\n };\n\n loadProduct = () => {\n const furl = RouteParams.productFurl();\n if (furl === undefined) {\n window.location = LinkService.getHome();\n }\n ProductService\n .productByFurl(furl)\n .then(result => {\n this.setState({product: this.precalculateProductDetails(result)});\n window.scroll(0, 0);\n })\n .catch(error => {\n this.setState({show404: true});\n window.scroll(0, 0);\n });\n };\n\n precalculateProductDetails = (product) => {\n const {formatMessage} = this.props.intl;\n\n let rating = {\n \"5\": {value: 0, percent: 0},\n \"4\": {value: 0, percent: 0},\n \"3\": {value: 0, percent: 0},\n \"2\": {value: 0, percent: 0},\n \"1\": {value: 0, percent: 0}\n };\n\n let count = 0;\n let sum = 0;\n product.reviews.forEach(review => {\n if (review.rating > 0) {\n count++;\n sum += review.rating;\n rating[review.rating].value = rating[review.rating].value + 1;\n }\n });\n if (count > 0) {\n product.rating = sum / count;\n product.reviewsCount = count;\n }\n\n let maxCount = 0;\n for (let key in rating) {\n maxCount = Math.max(maxCount, rating[key].value);\n }\n if (maxCount > 0) {\n for (let key in rating) {\n rating[key].percent = Math.round(rating[key].value * 100 / maxCount);\n }\n }\n\n product.starRating = [{\n title: formatMessage({id: \"product.stars5\"}),\n rating: rating[\"5\"]\n }, {\n title: formatMessage({id: \"product.stars4\"}),\n rating: rating[\"4\"]\n }, {\n title: formatMessage({id: \"product.stars3\"}),\n rating: rating[\"3\"]\n }, {\n title: formatMessage({id: \"product.stars2\"}),\n rating: rating[\"2\"]\n }, {\n title: formatMessage({id: \"product.stars1\"}),\n rating: rating[\"1\"]\n }];\n\n return product;\n };\n\n showReviews = () => {\n this.setState({showReviews: Date.now()})\n };\n\n componentWillMount = () => {\n this.loadProduct();\n this.setState({lastUrl: window.location.pathname + window.location.search});\n };\n\n componentWillReceiveProps = (nextProps) => {\n const params = nextProps.location.pathname + nextProps.location.search;\n if (this.state.lastUrl !== params) {\n if (this.state.lastUrl !== null) {\n this.loadProduct();\n }\n this.setState({lastUrl: params});\n }\n\n if (this.props.user !== nextProps.user) {\n this.loadProduct();\n }\n };\n\n render = () => {\n const {product} = this.state;\n return (\n \n {product &&\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n {this.state.show404 === true &&\n
    \n \n \n

    \n \n

    \n \n

    \n

    \n \n

    \n

    \n \n
    \n
    \n }\n
    \n )\n }\n}\n\nProduct.propTypes = {\n location: PropTypes.object.isRequired,\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n};\n\nexport default injectIntl(Product);\n","import React, {Component} from 'react'\nimport Table from 'react-bootstrap/Table'\nimport MessageService from \"../services/MessageService\";\nimport ContentLoader from \"react-content-loader\";\nimport {FormattedDate, FormattedMessage} from \"react-intl\";\nimport ProductService from \"../services/ProductService\";\nimport LoadingIndicator from \"../catalog/LoadingIndicator\";\nimport InfiniteScroll from \"../shell/InfiniteScroll\";\nimport LinkService from \"../services/LinkService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\n\nclass MessageList extends Component {\n state = {\n nextUrl: null,\n messages: null,\n loading: false,\n scrollEnable: false,\n };\n\n doLoadMessages = () => {\n if (this.state.nextUrl === null || this.state.messages === null) {\n return MessageService.listDialogs(0, 24);\n } else {\n return ProductService.findByUrl(this.state.nextUrl);\n }\n };\n\n loadMessages = () => {\n let itself = this;\n this.setState({loading: true});\n\n this\n .doLoadMessages()\n .then(response => {\n let messages = itself.state.messages || [];\n response.items.forEach(message => {\n messages.push(message);\n });\n\n itself.setState({\n messages: messages,\n scrollEnable: true,\n nextUrl: response.next || null,\n loading: false\n });\n });\n };\n\n loadNext = () => {\n this.setState({scrollEnable: false});\n if (this.state.nextUrl !== null) {\n this.loadMessages();\n }\n };\n\n renderLoader = (i) => {\n const height = 75;\n return (\n \n \n )\n };\n\n renderNoMessages = () => {\n return (\n

    \n );\n };\n\n renderMessage = (message) => {\n return (\n \n \n \n {message.name}\n \n \n {message.name}
    \n \n \n \n \n {message.body.substring(0, 100)}...\n \n {message.unread && \n }\n \n \n
    \n )\n };\n\n componentWillMount = () => {\n this.loadMessages();\n };\n\n render = () => {\n const {messages} = this.state;\n return (\n \n

    \n {messages === null && [1, 2, 3, 4, 5].map(i => {\n return this.renderLoader(i)\n })}\n {messages !== null && messages.length === 0 && this.renderNoMessages()}\n {messages !== null && messages.length > 0 &&\n \n \n {messages.map(message => {\n return (this.renderMessage(message))\n })}\n \n
    \n }\n {this.state.loading && }\n \n
    \n )\n }\n}\n\nexport default MessageList;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedDate, FormattedMessage} from \"react-intl\"\nimport LinkService from \"../services/LinkService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport MessageService from \"../services/MessageService\";\nimport Table from 'react-bootstrap/Table'\nimport ContentLoader from \"react-content-loader\";\nimport classNames from 'classnames'\nimport Card from 'react-bootstrap/Card'\nimport NewMessage from \"./NewMessage\";\n\nclass MessageThread extends Component {\n state = {\n senderName: null,\n messages: null\n };\n\n handleMessageSent = (message) => {\n let messages = this.state.messages || [];\n messages.push(message);\n this.setState({\n messages: messages\n }, () => {\n this.scrollToBottom();\n });\n\n };\n\n containsUnreadMessages = (messages, senderId) => {\n let result = false;\n messages.forEach(function (message) {\n if (message.userId === senderId && message.unread) {\n result = true;\n }\n });\n return result;\n };\n\n renderLoader = (i) => {\n const height = 120;\n return (\n \n \n )\n };\n\n renderMessage = (message) => {\n const {userId} = this.props;\n return (\n \n \n {message.name}\n \n \n {message.name}
    \n \n \n \n {message.userId !== userId &&\n

    \n {message.unread && }\n {!message.unread && }\n

    \n }\n\n \n \n {message.body.split(\"\\n\").map((value, index) => {\n return {value}
    \n })}\n \n \n {message.unreadCount > 0 &&\n 0\" className=\"badge badge-danger badge-pill float-right\">{message.unreadCount}\n }\n \n \n )\n };\n\n scrollToBottom = () => {\n let body = document.body, html = document.documentElement;\n let height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight);\n window.scroll(0, height);\n };\n\n componentWillMount = () => {\n MessageService\n .loadMessageThread(this.props.userId)\n .then(response => {\n this.setState({\n senderName: response.senderName,\n messages: response.items\n }, () => {\n this.scrollToBottom();\n\n if (this.containsUnreadMessages(this.state.messages, this.props.userId)) {\n MessageService\n .markMessageThreadAsRead(this.props.userId)\n .then(() => {\n this.props.onUpdateUserDetails()\n });\n }\n });\n })\n };\n\n render = () => {\n const {senderName, messages} = this.state;\n return (\n \n

    \n \n \n \n \n \n / \n \n \n {senderName === null && ...}\n {senderName !== null && senderName}\n

    \n {messages === null && [1, 2, 3, 4, 5].map(i => {\n return this.renderLoader(i)\n })}\n {messages !== null && messages.length > 0 &&\n \n \n {messages.map(message => {\n return (this.renderMessage(message))\n })}\n \n
    \n }\n \n \n \n \n \n
    \n )\n }\n}\n\nMessageThread.propTypes = {\n userId: PropTypes.string.isRequired,\n onUpdateUserDetails: PropTypes.func.isRequired\n};\n\nexport default MessageThread;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ProductList from \"../catalog/ProductList\";\nimport ProfilePage from \"./ProfilePage\";\nimport {FormattedMessage} from \"react-intl\";\nimport ProductService from \"../services/ProductService\";\nimport Button from \"react-bootstrap/Button\";\nimport LinkService from \"../services/LinkService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\n\nclass Mystuff extends Component {\n loadProducts = () => {\n return ProductService.myStuff(0, 24);\n };\n\n render = () => {\n return (\n \n

    \n \n \n \n \n
    \n )\n }\n}\n\nMystuff.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n};\n\nexport default Mystuff;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage, injectIntl} from \"react-intl\"\nimport Modal from 'react-bootstrap/Modal'\nimport Button from 'react-bootstrap/Button'\nimport Alert from 'react-bootstrap/Alert'\nimport ProgressBar from 'react-bootstrap/ProgressBar'\nimport Form from 'react-bootstrap/Form'\n\nclass UploadImageDialog extends Component {\n state = {\n imageFile: null,\n\n showError: false,\n inProgress: false\n };\n\n isValid = (imageFile) => {\n return imageFile !== null;\n };\n\n handleUploadFile = (event) => {\n this.setState({imageFile: event.target.files[0]});\n };\n\n doUpload = () => {\n this.setState({\n inProgress: true,\n showError: false\n });\n this.props\n .uploadFn(this.state.imageFile)\n .then(data => {\n this.props.onImageUpload(data);\n this.onClose();\n })\n .catch(error => {\n this.setState({\n inProgress: false,\n showError: true\n });\n });\n };\n\n clearUploader = () => {\n this.setState({\n inProgress: false,\n showError: false,\n imageFile: null\n });\n document.getElementById('uploadFile').value = \"\";\n };\n\n onClose = () => {\n this.clearUploader();\n this.props.onClose();\n };\n\n render = () => {\n const {inProgress} = this.state;\n const {formatMessage} = this.props.intl;\n\n return (\n \n \n \n \n \n this.setState({showError: false})}>\n \n \n
    \n \n \n  \n \n \n this.handleUploadFile(e)}\n disabled={inProgress}\n />\n \n \n \n \n
    \n\n\n {inProgress && }\n
    \n \n \n \n \n
    \n )\n }\n}\n\nUploadImageDialog.propTypes = {\n show: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n onImageUpload: PropTypes.func.isRequired,\n uploadFn: PropTypes.func.isRequired\n};\n\nexport default injectIntl(UploadImageDialog);\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage, injectIntl} from \"react-intl\"\nimport Form from 'react-bootstrap/Form'\nimport Button from 'react-bootstrap/Button'\nimport Image from \"react-bootstrap/Image\";\nimport DropdownButton from \"react-bootstrap/DropdownButton\";\nimport Dropdown from 'react-bootstrap/Dropdown'\nimport UserService from \"../services/UserService\";\nimport Alert from 'react-bootstrap/Alert'\nimport UploadImageDialog from \"./UploadImageDialog\";\n\nconst LANGS = [\"GB\", \"AT\", \"BE\", \"BG\", \"BY\", \"CL\", \"HR\", \"DK\", \"EE\", \"FI\", \"FR\", \"IE\", \"IT\", \"LV\", \"LU\", \"HU\", \"NL\",\n \"DE\", \"PL\", \"PT\", \"RO\", \"RU\", \"SK\", \"SI\", \"US\", \"UA\", \"CZ\", \"GR\", \"ES\", \"SE\", \"OT\"];\n\n\nclass ProfileDialog extends Component {\n state = {\n user: null,\n saving: false,\n showError: false,\n showUploadDialog: false\n };\n\n componentWillMount() {\n this.resetForm();\n }\n\n resetForm = () => {\n const {user} = this.props;\n this.setState({\n user: {\n avatar: user.avatar,\n email: user.email,\n name: user.name,\n country: user.country,\n city: user.city,\n about: user.about\n }\n });\n };\n\n updateUserField = (field, value) => {\n let user = this.state.user;\n user[field] = value;\n this.setState({user: user});\n };\n\n saveChanges = () => {\n this.setState({\n saving: true,\n showError: false\n });\n UserService\n .update(this.state.user)\n .then(() => {\n this.props.onUpdateUserDetails();\n this.setState({saving: false});\n })\n .catch(error => {\n this.setState({\n saving: false,\n showError: true\n });\n });\n };\n\n isFormUpdated = (avatar, email, name, country, city, about) => {\n let user = this.props.user;\n return avatar !== user.avatar || email !== user.email || name !== user.name || country !== user.country ||\n city !== user.city || about !== user.about;\n };\n\n render = () => {\n const {user} = this.state;\n const {formatMessage} = this.props.intl;\n return (\n
    \n this.setState({showError: false})}\n >\n \n \n this.updateUserField(\"avatar\", image)}\n onClose={() => this.setState({showUploadDialog: false})}\n uploadFn={(file) => UserService.uploadAvatar(file)}\n />\n \n \n \n }\n >\n this.setState({showUploadDialog: true})}>\n \n   \n \n \n this.updateUserField(\"avatar\", \"http://valika.org/images/valika.jpg\")}\n >\n \n   \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n this.updateUserField(\"country\", e.target.value)}\n >\n {\n LANGS.map(lang => {\n return (\n \n );\n })\n }\n \n \n\n \n \n this.updateUserField(\"city\", e.target.value)}\n />\n \n\n \n \n this.updateUserField(\"about\", e.target.value)}\n />\n \n\n\n \n \n \n \n )\n }\n}\n\nProfileDialog.propTypes = {\n user: PropTypes.object.isRequired,\n onUpdateUserDetails: PropTypes.func.isRequired\n};\n\nexport default injectIntl(ProfileDialog);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ProfilePage from \"./ProfilePage\";\nimport {FormattedMessage} from \"react-intl\";\n\nimport Col from 'react-bootstrap/Col'\nimport ProfileDialog from \"./ProfileDialog\";\n\nclass Profile extends Component {\n render = () => {\n const {user} = this.props;\n return (\n \n {user &&\n \n

    \n \n \n \n
    \n }\n
    \n )\n }\n}\n\nProfile.propTypes = {\n user: PropTypes.object,\n onUpdateUserDetails: PropTypes.func.isRequired\n};\n\nexport default Profile;\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport ProfilePage from \"./ProfilePage\";\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport Col from 'react-bootstrap/Col'\nimport Form from 'react-bootstrap/Form'\nimport Button from 'react-bootstrap/Button'\nimport Alert from 'react-bootstrap/Alert'\nimport UserService from \"../services/UserService\";\n\nclass ChangePassword extends Component {\n state = {\n alertType: null,\n\n inProgress: false,\n\n oldPassword: \"\",\n password: \"\",\n repeatPassword: \"\"\n };\n\n handleTextFieldChange = (event, field) => {\n this.setState({[field]: event.target.value});\n };\n\n isFormValid = (oldPassword, password, repeatPassword) => {\n return oldPassword.trim().length > 0 && password.trim().length > 0 && repeatPassword.trim().length > 0 &&\n password === repeatPassword && password !== oldPassword;\n };\n\n changePassword = () => {\n this.setState({\n inProgress: true,\n alertType: null\n });\n UserService\n .changePassword(this.state.oldPassword, this.state.password)\n .then(data => {\n this.setState({\n inProgress: false,\n alertType: \"success\",\n oldPassword: \"\",\n password: \"\",\n repeatPassword: \"\"\n });\n })\n .catch(error => {\n this.setState({\n inProgress: false,\n alertType: \"danger\"\n });\n });\n };\n\n render = () => {\n const {user} = this.props;\n const {formatMessage} = this.props.intl;\n const {oldPassword, password, repeatPassword, inProgress} = this.state;\n return (\n \n {user &&\n \n

    \n \n
    \n this.setState({alertType: null})}\n >\n {this.state.alertType === \"danger\" ? formatMessage({id: \"profile.passwordChangeUnsuccessful\"}) : formatMessage({id: \"profile.passwordChangedSuccessfuly\"})}\n \n \n \n this.handleTextFieldChange(e, \"oldPassword\")}\n />\n \n\n \n \n this.handleTextFieldChange(e, \"password\")}\n />\n \n\n \n \n this.handleTextFieldChange(e, \"repeatPassword\")}\n />\n \n\n \n \n
    \n \n
    \n }\n
    \n )\n }\n}\n\nChangePassword.propTypes = {\n user: PropTypes.object\n};\n\nexport default injectIntl(ChangePassword);\n","import React, {Component} from 'react';\nimport ProfilePage from \"./ProfilePage\";\nimport {FormattedMessage, injectIntl} from \"react-intl\"\nimport Form from 'react-bootstrap/Form'\nimport PropTypes from 'prop-types'\nimport RouteParams from \"../services/RouteParams\"\nimport Card from \"react-bootstrap/Card\"\nimport Container from 'react-bootstrap/Container'\nimport Row from 'react-bootstrap/Row'\nimport LinkService from \"../services/LinkService\"\nimport Button from 'react-bootstrap/Button'\nimport {SortableContainer, SortableElement} from 'react-sortable-hoc'\nimport Col from 'react-bootstrap/Col'\nimport ProductService from \"../services/ProductService\";\nimport ImageService from \"../services/ImageService\"\nimport arrayMove from 'array-move'\nimport UploadImageDialog from \"./UploadImageDialog\";\nimport LocalStorage from \"../services/LocalStorage\";\nimport Alert from 'react-bootstrap/Alert'\nimport {withRouter} from \"react-router-dom\";\n\nclass EditProduct extends Component {\n state = {\n showUploadDialog: false,\n indexUnderUpload: null,\n showError: false,\n showSavingError: false,\n productLoaded: false,\n\n isNew: true,\n changed: false,\n\n productId: null,\n title: null,\n description: null,\n properties: null,\n images: null,\n categories: null,\n priceAmount: null,\n priceCurrency: null\n };\n\n handleTextFieldChange = (event, field) => {\n this.setState({[field]: event.target.value, changed: true});\n };\n\n handlePropertyFieldChange = (event, index) => {\n let properties = this.state.properties;\n properties[index] = event.target.value;\n this.setState({properties: properties, changed: true});\n };\n\n renderTitleAndDescription = () => {\n const {title, description, properties} = this.state;\n return (\n
    \n

    \n

    \n\n \n \n this.handleTextFieldChange(event, \"title\")}/>\n \n\n \n \n this.handleTextFieldChange(event, \"description\")}\n />\n \n\n

    \n\n {[0, 1, 2, 3, 4].map(i => {\n return (\n \n \n this.handlePropertyFieldChange(event, i)}/>\n \n );\n })}\n
    \n );\n };\n\n removeImage = (index) => {\n let images = this.state.images;\n images.splice(index, 1);\n this.setState({images: images});\n };\n\n uploadImage = (index) => {\n this.setState({\n showUploadDialog: true,\n indexUnderUpload: index\n });\n };\n\n updateUploadedImage = (image) => {\n let images = this.state.images;\n images[this.state.indexUnderUpload] = image;\n this.setState({\n images: images,\n changed: true\n });\n };\n\n renderImages = () => {\n const SortableItem = SortableElement(({data}) => {\n return (\n \n \n
    \n \n
    \n \n \n \n \n \n \n
    \n \n );\n });\n const SortableList = SortableContainer(({images}) => {\n return (\n \n {images.map((image, index) => {\n return ;\n })}\n \n );\n });\n let images = [0, 1, 2, 3, 4, 5];\n\n return (\n
    \n

    \n this.updateUploadedImage(image)}\n onClose={() => this.setState({showUploadDialog: false})}\n uploadFn={(file) => ProductService.uploadImage(file)}\n />\n \n \n \n \n );\n };\n\n onSortEnd = ({oldIndex, newIndex}) => {\n this.setState(({images}) => ({\n images: arrayMove(images, oldIndex, newIndex),\n changed: true\n }));\n };\n\n handleImageLoad = (event) => {\n ImageService.calculateImageSize(event.target);\n };\n\n updateCategories = (category, checked) => {\n let categories = this.state.categories;\n if (checked) {\n categories.add(category);\n\n } else {\n categories.delete(category);\n }\n this.setState({\n categories: categories,\n changed: true\n });\n };\n\n renderSort = () => {\n const {formatMessage} = this.props.intl;\n let categories = [\"ACCESSORIES_FOR_HAIR\", \"BABY_CLOTHING\", \"BAGS\", \"BOLEROS_AND_CARDIGANS\", \"BRACELETS\", \"COVERLETS_AND_CAPES\", \"DECORATIONS\",\n \"DOG_CLOTHES\", \"DRESSES_AND_SKIRTS\", \"EARRINGS\", \"FLOWERS_AND_BROOCHES\", \"FOOTWEAR\", \"HATS\", \"MATERIALS\", \"MITTENS\", \"MOBILE_ACCESSORIES\",\n \"NECKLACES\", \"PICTURES\", \"RINGS\", \"SCARVES_AND_SHAWLS\", \"SOCKS\", \"SWEATERS_AND_JAKETS\", \"TOYS\", \"OTHER\"];\n return (\n
    \n

    \n

    \n

    :

    \n {categories.map(category => {\n let title = formatMessage({id: \"mystuff.edit.categories.\" + category.toLowerCase()});\n return (\n this.updateCategories(category, event.target.checked)}\n value={category}\n />\n );\n })}\n \n );\n };\n\n renderSelling = () => {\n const {formatMessage} = this.props.intl;\n const currencies = ['czk', 'eur', 'usd', 'rub', 'uah'];\n const {priceAmount, priceCurrency} = this.state;\n return (\n
    \n

    \n

    \n \n \n this.handleTextFieldChange(event, \"priceAmount\")}\n />\n \n \n \n this.handleTextFieldChange(event, \"priceCurrency\")}>\n {currencies.map((currency) => {\n return (\n \n );\n })}\n \n \n
    \n );\n };\n\n loadProduct = () => {\n const productId = RouteParams.productId();\n if (productId === \"new\") {\n this.setState({\n productLoaded: true,\n isNew: true,\n productId: null,\n title: \"\",\n description: \"\",\n properties: [],\n images: [],\n categories: new Set(),\n priceAmount: 0,\n priceCurrency: LocalStorage.getOrDefault(\"currency\", \"\\\"eur\\\"\").toUpperCase()\n });\n } else {\n ProductService\n .findMyStuffById(productId)\n .then(product => {\n this.setState({\n productLoaded: true,\n isNew: false,\n productId: product.id,\n title: product.title,\n description: product.description,\n properties: product.properties,\n images: product.images.map(img => img.middle),\n categories: new Set(product.categories),\n priceAmount: product.price.amount / 100,\n priceCurrency: product.price.currency\n });\n })\n .catch(error => {\n this.setState({\n showError: true\n })\n });\n }\n };\n\n componentWillMount = () => {\n this.loadProduct();\n };\n\n resetForm = () => {\n this.setState({\n indexUnderUpload: null,\n changed: false,\n showError: false\n });\n this.loadProduct();\n };\n\n saveProduct = (active) => {\n let product = {\n id: this.state.productId,\n title: this.state.title,\n description: this.state.description,\n properties: this.state.properties,\n images: this.state.images.map(image => {\n return {middle: image}\n }),\n categories: [...this.state.categories],\n price: {\n amount: this.state.priceAmount * 100,\n currency: this.state.priceCurrency\n },\n active: active\n };\n\n this.setState({\n inProgress: true\n });\n\n ProductService\n .updateProduct(product)\n .then(() => {\n this.props.history.push(LinkService.getMyStuff());\n\n })\n .catch(error => {\n this.setState({\n inProgress: false,\n showSavingError: true\n });\n });\n };\n\n\n formInvalid = (title, images, categories, priceAmount, priceCurrency) => {\n let isValid = (title.trim().length > 0 && images.length > 0 && categories.size > 0 && priceAmount > 0)\n return !isValid;\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n const {title, images, categories, priceAmount, priceCurrency, changed, inProgress, productLoaded} = this.state;\n return (\n \n

    {this.state.isNew ? formatMessage({id: \"mystuff.newProduct\"}) : formatMessage({id: \"mystuff.editProduct\"})}

    \n this.setState({showError: false})}>\n \n \n {productLoaded && this.renderTitleAndDescription()}\n {productLoaded && this.renderImages()}\n {productLoaded && this.renderSort()}\n {productLoaded && this.renderSelling()}\n\n\n this.setState({showSavingError: false})}>\n \n \n {productLoaded &&\n
    \n
    \n \n \n \n \n \n
    \n {this.formInvalid(title, images, categories, priceAmount, priceCurrency) &&\n

    \n }\n
    \n }\n\n
    \n )\n }\n}\n\nEditProduct.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n};\n\nexport default withRouter(injectIntl(EditProduct));\n","import React, {Component} from 'react'\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport {FormattedMessage} from \"react-intl\";\n\nclass Error406 extends Component {\n render = () => {\n return (\n
    \n \n \n

    \n \n

    \n \n

    \n

    \n \n

    \n

    \n \n
    \n
    \n )\n }\n}\n\nexport default Error406;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport LinkService from \"../services/LinkService\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport ImageService from \"../services/ImageService\";\n\nclass SinglePhotoTemplate extends Component {\n state = {\n imageError: false,\n };\n\n handleImageLoad = (event) => {\n ImageService.calculateTileSize(event.target);\n };\n\n imageFallback = () => {\n this.setState({imageError: true});\n };\n\n render = () => {\n return (\n \n \n {this.props.product.title}\n\n \n \n )\n }\n}\n\nSinglePhotoTemplate.propTypes = {\n product: PropTypes.object.isRequired,\n classes: PropTypes.string.isRequired\n};\n\nexport default SinglePhotoTemplate;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\n\nclass Template1 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate1.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template1;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\n\nclass Template2 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate2.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template2;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\n\nclass Template3 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate3.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template3;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\n\nclass Template4 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate4.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template4;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\n\nclass Template5 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate5.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template5;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\n\nclass Template6 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate6.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template6;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\n\nclass Template7 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate7.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template7;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\n\nclass Template8 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate8.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template8;\n","import React, {Component} from 'react'\nimport SinglePhotoTemplate from \"./SinglePhotoTemplate\";\nimport PropTypes from 'prop-types'\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\n\nclass Template9 extends Component {\n\n render = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n )\n }\n}\n\nTemplate9.propTypes = {\n products: PropTypes.array.isRequired\n};\n\nexport default Template9;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport ProductService from \"../services/ProductService\";\nimport Container from \"react-bootstrap/Container\";\nimport Row from \"react-bootstrap/Row\";\nimport ProductCardPlaceholder from \"../catalog/ProductCardPlaceholder\";\nimport LoadingIndicator from \"../catalog/LoadingIndicator\";\nimport InfiniteScroll from \"../shell/InfiniteScroll\";\nimport Template1 from \"./Template1\";\nimport Template2 from \"./Template2\";\nimport Template3 from \"./Template3\";\nimport Template4 from \"./Template4\";\nimport Template5 from \"./Template5\";\nimport Template6 from \"./Template6\";\nimport Template7 from \"./Template7\";\nimport Template8 from \"./Template8\";\nimport Template9 from \"./Template9\";\n\nclass GridProductList extends Component {\n TEMPLATES = {\n 1: 4,\n 2: 2,\n 3: 5,\n 4: 5,\n 5: 4,\n 6: 3,\n 7: 5,\n 8: 4,\n 9: 5\n };\n\n TEMPLATES_COUNT = Object.keys(this.TEMPLATES).length;\n TEMPLATES_MIN = Math.min(...Object.values(this.TEMPLATES));\n\n state = {\n unprocessed: [],\n products: null,\n lastUrl: null,\n // total: null,\n nextUrl: null,\n scrollEnable: false,\n loading: false,\n\n showPopup: false,\n popupTitle: \"\",\n popupMessage: \"\",\n onPopupConfirm: () => {\n }\n };\n\n getTemplateNum = (unprocessed) => {\n if (unprocessed.length < this.TEMPLATES_MIN) {\n return undefined;\n }\n\n let templateNum = 0;\n while (templateNum === 0 || templateNum === undefined) {\n let rand = Math.floor(Math.random() * this.TEMPLATES_COUNT) + 1\n if (unprocessed.length >= this.TEMPLATES[rand]) {\n templateNum = rand;\n }\n }\n return templateNum;\n };\n\n doLoadProductsList = () => {\n if (this.state.nextUrl === null || this.state.products === null) {\n return this.props.loadProducts();\n } else {\n return ProductService.findByUrl(this.state.nextUrl);\n }\n };\n\n loadProductsList = () => {\n let itself = this;\n this.setState({loading: true});\n\n this\n .doLoadProductsList()\n .then(function (result) {\n let unprocessed = itself.state.unprocessed;\n result.items.forEach(product => {\n unprocessed.push(product);\n });\n\n let products = itself.state.products || [];\n let templateNum = 1;\n while (templateNum !== undefined) {\n templateNum = itself.getTemplateNum(unprocessed);\n if (templateNum !== undefined) {\n products.push({\n template: templateNum,\n products: unprocessed.splice(0, itself.TEMPLATES[templateNum])\n })\n }\n }\n\n itself.setState({\n unprocessed: unprocessed,\n products: products,\n // total: result.total,\n scrollEnable: true,\n nextUrl: result.next || null,\n loading: false\n });\n })\n };\n\n loadNext = () => {\n this.setState({scrollEnable: false});\n if (this.state.nextUrl !== null) {\n this.loadProductsList();\n }\n };\n\n renderTemplate = (template, products) => {\n switch (template) {\n case 1:\n return ();\n case 2:\n return ();\n case 3:\n return ();\n case 4:\n return ();\n case 5:\n return ();\n case 6:\n return ();\n case 7:\n return ();\n case 8:\n return ();\n case 9:\n return ();\n default:\n return ();\n }\n };\n\n componentWillMount = () => {\n this.loadProductsList();\n };\n\n render = () => {\n const {products} = this.state;\n return (\n \n \n {products === null &&\n [1, 2, 3, 4, 5, 6].map(index => {\n return ()\n }\n )}\n\n {products !== null && products.length > 0 &&\n products.map((product, index) => {\n return (\n \n {this.renderTemplate(product.template, product.products)}\n \n )\n })}\n \n {this.state.loading && }\n \n \n )\n }\n}\n\nGridProductList.propTypes = {\n loadProducts: PropTypes.func.isRequired\n};\n\nexport default GridProductList;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport ProductService from \"../services/ProductService\";\nimport Col from \"react-bootstrap/Col\";\nimport Row from \"react-bootstrap/Row\";\nimport GridProductList from \"./GridProductList\";\nimport LocalStorage from \"../services/LocalStorage\";\n\nclass Home extends Component {\n loadProducts = () => {\n let country = LocalStorage.get(\"country\");\n if (country === null) {\n country = undefined;\n }\n\n return ProductService.list(0, 24, \"rand\", undefined, country, undefined);\n };\n\n render = () => {\n return (\n \n \n \n \n \n )\n }\n}\n\nHome.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n};\n\nexport default Home;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage} from \"react-intl\"\nimport Alert from \"react-bootstrap/Alert\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport LocalStorage from \"../services/LocalStorage\";\n\nclass MessageAlert extends Component {\n state = {\n show: false\n };\n\n getLocalStorageVariableName = () => {\n return `MessageAlert-${this.props.messageId}`;\n };\n\n componentWillMount() {\n let show = LocalStorage.get(this.getLocalStorageVariableName());\n show = (show || show === undefined || show === null);\n this.setState({show: show});\n }\n\n handleDismiss = () => {\n LocalStorage.set(this.getLocalStorageVariableName(), false);\n this.setState({show: false});\n };\n\n render = () => {\n return (\n \n \n

    \n {this.props.message}\n {' '}\n \n \n \n .\n

    \n
    \n )\n }\n}\n\nMessageAlert.propTypes = {\n messageId: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired,\n link: PropTypes.string.isRequired\n};\n\nexport default MessageAlert;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage} from \"react-intl\"\nimport ContentLoader from \"react-content-loader\";\nimport RouteParams from \"../services/RouteParams\";\nimport Row from \"react-bootstrap/Row\";\nimport Col from \"react-bootstrap/Col\";\nimport ButtonToolbar from \"react-bootstrap/ButtonToolbar\";\nimport Button from \"react-bootstrap/Button\";\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport LinkService from \"../services/LinkService\";\nimport UserService from \"../services/UserService\";\n\nclass Activate extends Component {\n state = {\n loading: true,\n activated: false\n };\n\n componentWillMount = () => {\n let itself = this;\n let search = RouteParams.search();\n console.log(this.props)\n UserService\n .activate(search.u, search.c)\n .then(data => {\n itself.setState({\n loading: false,\n activated: true\n });\n itself.props.handleLogin(data.accessToken, data.expires);\n })\n .catch((error) => {\n console.log(error);\n this.setState({\n loading: false,\n activated: false\n });\n });\n };\n\n renderActivated = () => {\n return (\n
    \n \n \n

    \n \n

    \n \n

    \n

    \n \n

    \n \n \n \n \n \n \n \n \n

    \n \n
    \n
    \n )\n };\n\n renderFailed = () => {\n return (\n
    \n \n \n

    \n \n

    \n \n

    \n

    \n \n

    \n

    \n \n
    \n
    \n )\n };\n\n render = () => {\n return (\n \n {this.state.loading && }\n {!this.state.loading && this.state.activated && this.renderActivated()}\n {!this.state.loading && !this.state.activated && this.renderFailed()}\n \n )\n }\n}\n\nActivate.propTypes = {\n handleLogin: PropTypes.func.isRequired\n};\n\nexport default Activate;\n","import React, {Component} from 'react';\nimport Container from 'react-bootstrap/Container'\nimport {Route, Switch} from \"react-router-dom\";\nimport LinkService from \"../services/LinkService\"\nimport HelpCookies from \"../help/HelpCookies\";\nimport HelpGDPR from \"../help/HelpGDPR\";\nimport HelpTerms from \"../help/HelpTerms\";\nimport Catalog from \"../catalog/Catalog\";\nimport PropTypes from \"prop-types\";\nimport Wishlist from \"../profile/Wishlist\";\nimport Product from \"../product/Product\";\nimport MessageList from \"../messages/MessageList\";\nimport ProfilePage from \"../profile/ProfilePage\";\nimport MessageThread from \"../messages/MessageThread\";\nimport Mystuff from \"../profile/Mystuff\";\nimport Profile from \"../profile/Profile\";\nimport ChangePassword from \"../profile/ChangePassword\";\nimport EditProduct from \"../profile/EditProduct\";\nimport Error406 from \"../errors/Error406\";\nimport Home from \"../home/Home\";\nimport MessageAlert from \"./MessageAlert\";\nimport {injectIntl} from \"react-intl\";\nimport Activate from \"./Activate\";\n\nclass Main extends Component {\n getCatalog = () => {\n return (\n \n );\n };\n\n getHome = () => {\n return (\n \n );\n };\n\n getProfile = () => {\n return ()\n };\n\n getWishlist = () => {\n return (\n \n );\n };\n\n getMystuff = () => {\n return (\n \n );\n };\n\n getEditProduct = () => {\n return (\n \n );\n };\n\n getChangePassword = () => {\n return (\n \n );\n };\n\n getMessages = () => {\n return (\n \n \n \n\n );\n };\n\n getMessageThread = (props) => {\n return (\n \n \n \n\n );\n };\n\n getProduct = () => {\n return (\n \n );\n };\n\n getErrors406 = () => {\n return ();\n };\n\n getActivate = () => {\n return ();\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n\n return (\n \n \n \n \n {/* HOME */}\n {/**/}\n\n {/* HELP */}\n \n \n \n\n {/* CATALOG */}\n \n\n {/* PRODUCT */}\n \n\n {/* PROFILE */}\n \n \n \n \n \n \n this.getMessageThread(props)}/>\n\n {/* ACTIVATION */}\n \n\n {/* ERRORS */}\n \n\n \n \n )\n }\n}\n\nMain.propTypes = {\n user: PropTypes.object,\n onLogin: PropTypes.func.isRequired,\n handleLogin: PropTypes.func.isRequired,\n onAddedToWishlist: PropTypes.func.isRequired,\n onRemovedFromWishlist: PropTypes.func.isRequired,\n onUpdateUserDetails: PropTypes.func.isRequired\n};\n\nexport default injectIntl(Main);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Image from 'react-bootstrap/Image'\nimport UserLogo from \"./user.jpg\"\nimport Form from 'react-bootstrap/Form'\nimport Button from 'react-bootstrap/Button'\nimport {FormattedMessage, injectIntl} from \"react-intl\";\nimport UserService from \"../services/UserService\"\nimport Alert from 'react-bootstrap/Alert'\nimport ValidationUtils from \"../services/ValidationUtils\";\n\nclass Login extends Component {\n state = {\n email: \"\",\n password: \"\",\n\n showError: false,\n showProgress: false\n };\n\n isFormValid = (email, password) => {\n return email && email.trim().length > 0 && ValidationUtils.validateEmail(email) && password && password.trim().length > 0;\n };\n\n handleTextFieldChange = (event, field) => {\n this.setState({[field]: event.target.value});\n };\n\n handleLogin = () => {\n this.setState({\n showProgress: true,\n showError: false\n });\n UserService\n .login(this.state.email, this.state.password)\n .then(data => {\n this.setState({\n showProgress: false,\n showError: false\n });\n this.props.onLogin(data.accessToken, data.expires);\n })\n .catch(() => {\n this.setState({\n showProgress: false,\n showError: true\n });\n });\n };\n\n handleCloseAlert = () => {\n this.setState({showError: false});\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n return (\n
    \n \n \n \n

    \n \n

    \n \n \n this.handleTextFieldChange(e, \"email\")}\n />\n \n\n \n \n this.handleTextFieldChange(e, \"password\")}\n />\n \n \n \n \n

    \n  \n \n

    \n
    \n )\n }\n}\n\nLogin.propTypes = {\n onLogin: PropTypes.func.isRequired,\n onForgotPassword: PropTypes.func.isRequired\n};\n\nexport default injectIntl(Login);\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage} from \"react-intl\"\nimport LocalStorage from \"../services/LocalStorage\";\nimport Modal from \"react-bootstrap/Modal\";\nimport HelpTermsEn from \"../help/HelpTermsEn\";\nimport HelpTermsCz from \"../help/HelpTermsCz\";\nimport HelpTermsRu from \"../help/HelpTermsRu\";\n\nclass BusinessConditionsPopup extends Component {\n render = () => {\n const lang = LocalStorage.getOrDefault(\"language\", null);\n return (\n \n \n \n \n \n {lang === \"en\" && }\n {lang === \"cz\" && }\n {lang === \"ru\" && }\n \n \n )\n }\n}\n\nBusinessConditionsPopup.propTypes = {\n show: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n};\n\nexport default BusinessConditionsPopup;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport Modal from \"react-bootstrap/Modal\";\nimport {FormattedMessage} from \"react-intl\";\nimport LocalStorage from \"../services/LocalStorage\";\nimport HelpGDPREn from \"../help/HelpGDPREn\";\nimport HelpGDPRCz from \"../help/HelpGDPRCz\";\nimport HelpGDPRRu from \"../help/HelpGDPRRu\";\n\nclass PersonalDataPolicyPopup extends Component {\n render = () => {\n const lang = LocalStorage.getOrDefault(\"language\", null);\n return (\n \n \n \n \n \n {lang === \"en\" && }\n {lang === \"cz\" && }\n {lang === \"ru\" && }\n \n \n )\n }\n}\n\nPersonalDataPolicyPopup.propTypes = {\n show: PropTypes.bool.isRequired,\n onClose: PropTypes.func.isRequired,\n};\n\nexport default PersonalDataPolicyPopup;\n","import React, {Component} from 'react'\nimport {FormattedMessage, injectIntl} from \"react-intl\"\nimport Form from \"react-bootstrap/Form\";\nimport Button from \"react-bootstrap/Button\";\nimport ValidationUtils from \"../services/ValidationUtils\";\nimport BusinessConditionsPopup from \"./BusinessConditionsPopup\";\nimport PersonalDataPolicyPopup from \"./PersonalDataPolicyPopup\";\nimport Alert from \"react-bootstrap/Alert\";\nimport UserService from \"../services/UserService\";\nimport LocalStorage from \"../services/LocalStorage\";\n\nclass Register extends Component {\n state = {\n email: \"\",\n username: \"\",\n password: \"\",\n agreement: false,\n plan: \"\",\n\n showProgress: false,\n alertType: null,\n alertMessage: null,\n showBusinessConditions: false,\n showPersonalDataPolicy: false\n };\n\n handleTextFieldChange = (event, field) => {\n this.setState({[field]: event.target.value});\n };\n\n isEmailValid = (email) => {\n return email && email.trim().length > 0 && ValidationUtils.validateEmail(email)\n };\n\n isUsernameValid = (username) => {\n return username && username.trim().length >= 3 && username.trim().length <= 20 && /^[0-9a-zA-Z_-]+$/.test(username);\n };\n\n isPasswordValid = (password) => {\n return password && password.trim().length >= 6 && password.trim().length <= 20 && /^[0-9a-zA-Z_-]+$/.test(password);\n };\n\n isPlanValid = (plan) => {\n return plan === \"MEMBER\" || plan === \"VISITOR\";\n };\n\n isAgreementValid = (agreement) => {\n return agreement === true;\n };\n\n isFormValid = (email, username, password, plan, agreement) => {\n return this.isEmailValid(email)\n && this.isPasswordValid(password)\n && this.isUsernameValid(username)\n && this.isPlanValid(plan)\n && this.isAgreementValid(agreement);\n };\n\n handleChangeAgreement = (event) => {\n this.setState({agreement: event.target.checked});\n };\n\n handlePlanChange = (plan) => {\n this.setState({plan: plan});\n };\n\n handleCloseAlert = () => {\n this.setState({alertMessage: null, alertType: null});\n };\n\n handleRegister = () => {\n const {formatMessage} = this.props.intl;\n this.setState({\n showProgress: true,\n alertType: null,\n alertMessage: null\n });\n\n UserService\n .register(this.state.username, this.state.email, this.state.password, this.state.plan, LocalStorage.getOrDefault(\"language\", \"en\"))\n .then(data => {\n this.setState({\n showProgress: false,\n alertType: \"success\",\n alertMessage: formatMessage({id: \"login.registrationFinished\"}),\n\n email: \"\",\n username: \"\",\n password: \"\",\n agreement: false,\n plan: \"\",\n });\n })\n .catch((error) => {\n let message = formatMessage({id: \"login.registrationFailed\"});\n if (error.response) {\n if (error.response.status === 401) {\n message = formatMessage({id: \"login.emailAlreadyDefined\"})\n } else if (error.response.status === 409) {\n message = formatMessage({id: \"login.nameAlreadyDefined\"})\n }\n\n }\n\n this.setState({\n showProgress: false,\n alertType: \"danger\",\n alertMessage: message\n });\n });\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n const {email, username, password, plan, agreement} = this.state;\n return (\n
    \n

    \n\n \n \n this.handleTextFieldChange(e, \"email\")}\n />\n \n\n \n \n this.handleTextFieldChange(e, \"username\")}\n />\n \n \n \n \n\n \n \n this.handleTextFieldChange(e, \"password\")}\n />\n \n \n \n \n\n \n \n this.handlePlanChange(\"VISITOR\")}\n checked={plan === \"VISITOR\"}\n />\n \n \n \n this.handlePlanChange(\"MEMBER\")}\n checked={plan === \"MEMBER\"}\n />\n \n \n \n \n\n\n \n \n \n \n \n \n \n\n\n \n {this.state.alertMessage}\n \n\n \n \n \n\n this.setState({showBusinessConditions: false})}\n />\n this.setState({showPersonalDataPolicy: false})}\n />\n \n )\n }\n}\n\nexport default injectIntl(Register);\n","import React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-bootstrap/Modal'\nimport {injectIntl} from \"react-intl\";\nimport Tabs from 'react-bootstrap/Tabs'\nimport Tab from 'react-bootstrap/Tab'\nimport Login from \"./Login\"\nimport Register from \"./Register\";\n\nclass LoginDialog extends Component {\n state = {\n key: \"login\"\n };\n\n render() {\n const {formatMessage} = this.props.intl;\n return (\n \n \n \n this.setState({key})}\n variant=\"pills\">\n \n \n \n \n \n {this.state.key === \"login\" && }\n {this.state.key === \"register\" && }\n \n \n \n )\n }\n}\n\nLoginDialog.propTypes = {\n show: PropTypes.bool.isRequired,\n onLogin: PropTypes.func.isRequired,\n onHide: PropTypes.func.isRequired,\n onForgotPassword: PropTypes.func.isRequired\n};\n\nexport default injectIntl(LoginDialog);\n","const Cookies = {\n put: function (key, value, options) {\n var cookie = encodeURIComponent(key) + \"=\" + encodeURIComponent(value);\n if (options) {\n var params = [cookie];\n for (var propertyName in options) {\n params.push(encodeURIComponent(propertyName) + \"=\" + options[propertyName]);\n }\n cookie = params.join(\"; \");\n }\n document.cookie = cookie;\n },\n\n remove: function (key) {\n this.put(key, \"\", {expires: new Date(Date.now() - 12096e5), path: \"/\"});\n },\n\n get: function (cname) {\n const name = cname + \"=\";\n const decodedCookie = decodeURIComponent(document.cookie);\n const ca = decodedCookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1);\n }\n if (c.indexOf(name) === 0) {\n return c.substring(name.length, c.length);\n }\n }\n return undefined;\n }\n};\n\nexport default Cookies;\n","import React, {Component} from 'react';\nimport LinkContainer from \"react-router-bootstrap/lib/LinkContainer\";\nimport LinkService from \"../services/LinkService\";\nimport Button from \"react-bootstrap/Button\";\nimport {FormattedMessage} from \"react-intl\";\n\nclass FooterLinks extends Component {\n render = () => {\n return (\n
      \n
    • \n \n \n \n
    • \n
    • ·
    • \n \n \n \n
    • ·
    • \n \n \n \n
    • ·
    • \n \n \n \n
    \n )\n }\n}\n\nexport default FooterLinks;\n","import React, {Component} from 'react'\nimport FooterLinks from \"./FooterLinks\"\nimport {FormattedMessage} from \"react-intl\"\nimport Container from 'react-bootstrap/Container'\nimport Row from 'react-bootstrap/Row'\nimport CurrencySelect from \"./CurrencySelect\"\nimport LanguageSelect from \"./LanguageSelect\"\nimport PropTypes from 'prop-types'\n\nclass Footer extends Component {\n render = () => {\n const shopEmail = \"valika.shop(at)gmail.com\";\n const currentYear = new Date().getFullYear();\n return (\n
    \n \n \n \n
    \n \n \n
    \n
    \n \n ©\n 2011-{currentYear}, \n , \n  | \n \n : \n {shopEmail}\n \n \n
    \n
    \n )\n }\n}\n\nFooter.propTypes = {\n user: PropTypes.object,\n};\n\nexport default Footer;\n","import React, {Component} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage, injectIntl} from \"react-intl\"\nimport Modal from 'react-bootstrap/Modal'\nimport Form from 'react-bootstrap/Form'\nimport Button from 'react-bootstrap/Button'\nimport UserService from \"../services/UserService\"\nimport Alert from 'react-bootstrap/Alert'\nimport ValidationUtils from \"../services/ValidationUtils\";\n\nclass ForgotPasswordModal extends Component {\n state = {\n email: \"\",\n showProgress: false,\n alertType: null\n };\n\n isFormValid = (email) => {\n return email && email.trim().length > 0 && ValidationUtils.validateEmail(email);\n };\n\n handleResetPassword = () => {\n this.setState({\n showProgress: true,\n alertType: null\n });\n UserService\n .resetPassword(this.state.email)\n .then(() => {\n this.setState({\n showProgress: false,\n alertType: \"success\",\n email: \"\"\n });\n })\n .catch(() => {\n this.setState({\n showProgress: false,\n alertType: \"danger\"\n });\n });\n };\n\n onHide = () => {\n this.setState({\n showProgress: false,\n alertType: null,\n email: \"\"\n }, this.props.onHide);\n };\n\n render = () => {\n const {formatMessage} = this.props.intl;\n return (\n \n \n

    \n
    \n \n this.setState({alertType: null})}\n >\n {this.state.alertType === \"success\" ? formatMessage({id: \"login.forgotPassword.sent\"}) : formatMessage({id: \"login.forgotPassword.error\"})}\n \n

    \n
    \n \n \n this.setState({email: event.target.value})}\n />\n \n \n
    \n
    \n
    \n )\n }\n}\n\nForgotPasswordModal.propTypes = {\n show: PropTypes.bool.isRequired,\n onHide: PropTypes.func.isRequired\n};\n\nexport default injectIntl(ForgotPasswordModal);\n","import React, {Component} from 'react'\nimport {Button} from \"react-bootstrap\";\n\nclass GoTop extends Component {\n state = {\n show: false\n };\n\n scrollTop = () => {\n window.scrollTo(0, 0);\n };\n\n componentDidMount = () => {\n window.addEventListener('scroll', this.handleScroll);\n };\n\n componentWillUnmount = () => {\n window.removeEventListener('scroll', this.handleScroll);\n };\n\n handleScroll = () => {\n const show = window.scrollY > 500;\n if (show !== this.state.show) {\n this.setState({show});\n }\n };\n\n render = () => {\n return (\n \n )\n }\n}\n\nexport default GoTop;\n","import React, {Component} from 'react';\nimport {Route, Switch, withRouter} from \"react-router-dom\";\nimport './App.css';\nimport TopNavigation from \"./shell/TopNavigation\"\nimport Main from \"./shell/Main\"\nimport LoginDialog from \"./shell/LoginDialog\"\nimport UserService from \"./services/UserService\"\nimport Cookies from \"./services/Cookies\"\nimport LinkService from \"./services/LinkService\"\nimport Footer from \"./shell/Footer\";\nimport ForgotPasswordModal from \"./shell/ForgotPasswordModal\";\nimport LocalStorage from \"./services/LocalStorage\";\nimport GoTop from \"./shell/GoTop\";\n\nclass App extends Component {\n isCurrentRouteCorrect = (pathname, user) => {\n const authAllowed = [\n LinkService.getHome(),\n LinkService.getCatalog(),\n LinkService.getMessages(),\n LinkService.getWishlist(),\n LinkService.getProfile(),\n LinkService.getHelpTerms(),\n LinkService.getHelpGDPR(),\n LinkService.getHelpCookies(),\n LinkService.getProductPath(),\n LinkService.getMyStuff(),\n LinkService.getChangePassword(),\n LinkService.getErrors(),\n LinkService.getActivate()\n ];\n const anonAllowed = [\n LinkService.getHome(),\n LinkService.getCatalog(),\n LinkService.getHelpTerms(),\n LinkService.getHelpGDPR(),\n LinkService.getHelpCookies(),\n LinkService.getProductPath(),\n LinkService.getErrors(),\n LinkService.getActivate()\n ];\n const path = pathname.toLowerCase();\n\n if (pathname === \"/\") {\n return false;\n }\n\n return user\n ? this.isPathBelongToList(path, authAllowed)\n : this.isPathBelongToList(path, anonAllowed)\n };\n\n isPathBelongToList = (path, list) => {\n for (var i = 0; i < list.length; i++) {\n if (list[i].startsWith(path) || path.startsWith(list[i])) {\n return true;\n }\n }\n return false;\n };\n\n reRouteIfNeeded = (user) => {\n if (!this.isCurrentRouteCorrect(window.location.pathname, user)) {\n this.redirectToDefault();\n }\n };\n\n redirectToDefault = () => {\n this.props.history.push(LinkService.getHome());\n };\n\n handleLogout = () => {\n Cookies.remove('X-Auth-Token');\n this.setState({user: null});\n this.reRouteIfNeeded(null);\n };\n\n handleLogin = (authToken, expires) => {\n this.hideLogin();\n Cookies.put('X-Auth-Token', authToken, {expires: expires, path: \"/\"});\n this.loadCurrentUser();\n };\n\n constructor(props) {\n super(props);\n this.state = {\n user: null,\n showLogin: false,\n showForgotPasswordModal: false,\n userUpdateIntervalId: null\n };\n }\n\n hideLogin = () => {\n this.setState({showLogin: false});\n };\n\n showLogin = () => {\n this.setState({showLogin: true});\n };\n\n componentWillMount = () => {\n this.loadCurrentUser();\n\n let self = this;\n let intervalId = setInterval(() => {\n self.loadCurrentUser()\n }, 600000);\n this.setState({userUpdateIntervalId: intervalId});\n };\n\n componentWillUnmount() {\n clearInterval(this.state.userUpdateIntervalId);\n }\n\n onAddedToWishlist = () => {\n const user = this.state.user;\n user.wishlistCount = user.wishlistCount + 1;\n this.setState({user: user});\n };\n\n onRemovedFromWishlist = () => {\n const user = this.state.user;\n user.wishlistCount = Math.max(user.wishlistCount - 1, 0);\n this.setState({user: user});\n };\n\n getMain = () => {\n return (\n
    \n );\n };\n\n loadCurrentUser = () => {\n UserService\n .getCurrent()\n .then(user => {\n this.setState({user: user});\n const activeLang = LocalStorage.getOrDefault(\"language\", \"en\");\n if (activeLang !== user.lang) {\n LocalStorage.set(\"language\", user.lang);\n window.location.reload();\n }\n\n this.reRouteIfNeeded(user);\n })\n .catch(() => {\n this.handleLogout();\n });\n };\n\n render = () => {\n return (\n \n \n
    \n \n \n \n
    \n