{"version":3,"sources":["images/logo-symbol.png","images/logo.png","images/latingate_logo.png","images/la_candela_logo.png","images/media_noche_variation_collection_logo.png","images/heart-small.svg","images/heart-big.svg","images/heart-question-mark.svg","images/stripe.svg","components/responsiveNavBar.js","common/utils.js","services/userService.js","common/enums.js","pages/users/forgotPassword.js","pages/users/loginModal.js","contexts/UserContext.js","pages/users/userControl.js","pages/parts/navBar.js","pages/parts/socialBar.js","components/scrollToTop.js","components/ad.js","components/responsiveLeaderboardAd.js","common/fields.js","pages/index.js","common/displayUtils.js","pages/parts/standardHelmet.js","pages/move.js","pages/moves.js","pages/about.js","pages/contribute.js","pages/contact.js","pages/moveExplanation.js","pages/suggestMove.js","services/paymentService.js","pages/payment/cardSection.js","pages/payment/checkoutForm.js","pages/support.js","pages/404.js","pages/parts/websiteMessagePage.js","pages/users/registrationComplete.js","pages/users/registration.js","pages/users/confirmEmail.js","pages/users/resetPasswordComplete.js","pages/users/resetPassword.js","App.js","serviceWorker.js","index.js"],"names":["module","exports","NavBarMobile","children","leftItems","rightItems","onPusherClick","onToggle","visible","Sidebar","Pushable","as","Menu","animation","icon","vertical","style","overflowY","onClick","map","item","Item","Pusher","dimmed","minHeight","fixed","Image","size","src","LogoSymbol","alt","Icon","name","position","NavBarDesktop","NavBarChildren","Container","marginTop","ResponsiveNavBar","state","handlePusher","setState","handleToggle","this","props","sidebarItems","Responsive","maxWidth","minWidth","Component","validateEmail","email","test","String","toLowerCase","dashDelimited","$s","replace","listErrorReasons","error","reasons","response","data","reasonsList","key","hasOwnProperty","reason","push","password","firstName","lastName","subscribe","JSON","stringify","Promise","resolve","reject","axios","post","then","catch","userId","token","query","params","get","newPassword","userName","res","localStorage","setItem","auth_token","removeItem","getItem","FORM_STATUS","ForgotPassword","status","errorMessages","errorFields","showModal","openModal","closeModal","onClose","handleChange","_","value","handleCheck","checked","validate","field","message","valid","messages","handleSubmit","UserService","forgotPassword","errors","emailTextBox","React","createRef","modalMounted","bind","current","focus","Modal","open","trigger","Button","className","onMount","Header","Content","Fragment","Grid","centered","Column","width","Form","onSubmit","loading","warning","success","Field","control","Input","label","placeholder","onChange","includes","Message","header","list","type","LoginModal","useState","setEmail","setPassword","setStatus","setErrorMessages","setShowModal","history","useHistory","login","window","location","reload","e","target","autoFocus","marginRight","UserContext","createContext","UserControl","logout","user","Dropdown","inline","text","Link","to","isLoggedIn","Consumer","LoggedUserSection","NavBar","items","content","display","verticalAlign","mainMenuItems","handleItemClick","href","rel","sideMenuItems","LOGO_URL","origin","SocialBar","textAlign","shareButtonProps","url","iconProps","round","Row","FacebookShareButton","FacebookIcon","TwitterShareButton","TwitterIcon","PinterestShareButton","media","PinterestIcon","RedditShareButton","RedditIcon","WhatsappShareButton","WhatsappIcon","EmailShareButton","EmailIcon","VKShareButton","VKIcon","appId","showFaces","layout","ScrollToTop","prevProps","pathname","scrollTo","withRouter","Ad","hasError","Advertisement","unit","Google","client","slot","format","ResponsiveLeaderboardAd","onlyComputer","onlyTablet","onlyMobile","Levels","GroupedBarsLength","StartsWith","BasedOn","DanceConfiguration","FavoriteOptions","Index","dailyMove","dailyMoveVideoOptions","playerVars","autoplay","mute","controls","loop","fs","modestbranding","stackable","Loader","active","YouTube","videoId","video","opts","level","LEVELS","1","2","3","4","5","6","7","displayDanceConfiguration","configuration","short","displayLevel","levelNumber","Error","displayBarCount","barCounts","lib","StandardHelmet","title","description","Helmet","property","MetadataTooltips","translation","danceConfiguration","ruedaSign","synonyms","startsWith","basedOn","counts","SimilarTo","hoverPopupProps","on","mouseEnterDelay","Move","move","favoriteMarkInProgress","fetchMove","nextProps","match","endpoint","modifyMoveReferencesToLinks","jsx","moveName","unused","moveReference","safeReference","split","metaDataKey","removeFavoriteTag","remove","tags","tag","category","addTag","favoriteTag","moveId","id","isFavorite","delete","finally","find","t","favoriteIconColor","Popup","color","toggleFavorite","videoPanes","videos","index","pane","length","menuItem","instructional","production","render","Tab","Pane","link","getTitle","getFavoriteIcon","Table","basic","collapsing","unstackable","Body","Cell","getTooltip","sign","similarTo","covertMovesNamesToLinks","panes","menu","attached","secondary","components","HeaderCell","CancelToken","Moves","moves","page","loadingMoves","filter","fetchMovesSource","fetchMoves","debounce","setUrlToState","queryString","parse","search","orderBy","direction","favorite","fullDirection","parseInt","queryParams","newQueryParams","apiEndPointQuery","cancel","cancelSource","source","cancelToken","pages","currentPage","isCancel","column","getUrlParams","navigate","innerWidth","Columns","columnName","displayName","paddingRight","fluid","selection","clearable","options","userService","hasFilter","sortable","c","sorted","sortTable","getTagsIcons","columns","padded","Pagination","boundaryRange","defaultActivePage","ellipsisItem","firstItem","lastItem","siblingRange","getPaginationRange","totalPages","onPageChange","details","activePage","productions","LaCandelaLogo","LatingateLogo","MediaNocheLogo","Contribute","fontWeight","fontStyle","fontSize","List","bulleted","STATUS","Contact","subject","Name","From","Subject","TextArea","MoveExplanation","SOURCE_OPTIONS","SuggestMove","videoLink","videoCreditLink","MoveName","Source","VideoLink","VideoCreditLink","Description","Select","amount","clientSecret","CARD_ELEMENT_OPTIONS","base","fontSmoothing","invalid","iconColor","CardSection","CheckoutForm","errorMessage","setErrorMessage","paymentSucceeded","setPaymentSucceeded","paymentProcessing","setPaymentProcessing","stripe","useStripe","elements","useElements","event","a","preventDefault","PaymentService","createDonationIntent","confirmCardPayment","payment_method","card","getElement","CardElement","billing_details","result","paymentIntent","disabled","Logo","DONATIONS_AMOUNT","small","big","custom","stripePromise","loadStripe","process","Support","donationSize","setDonationSize","donationAmount","setDonationAmount","toggleImageClass","classNames","toggleImage","activeImageToggle","handleDonationSizeClick","Group","DonationSmall","DonationBig","DonationQuestionMark","computer","mobile","tablet","labelPosition","Label","Divider","horizontal","section","action","method","border","height","NotFound","WebsiteMessagePage","RegistrationComplete","Registration","passwordRepeat","listError","register","Checkbox","ConfirmEmail","confirmEmail","ResetPasswordComplete","ResetPassword","resetPassword","TITLE","DESCRIPTION","ReactGA","initialize","createBrowserHistory","listen","fullLocation","set","pageview","defaults","headers","authToken","common","App","interceptors","use","setUser","GetUser","userContext","Provider","path","exact","component","About","Date","getFullYear","Boolean","hostname","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.cda9e6b8.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo-symbol.1deb743a.png\";","module.exports = __webpack_public_path__ + \"static/media/logo.6142c71d.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/la_candela_logo.09e15ae8.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABYCAYAAABxlTA0AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAuJgAALiYBVR9agAAAAAd0SU1FB9oEAhcuHVGQK6IAABjlSURBVHja7V15VNNX9v98Q0IIiKwqSBQQoVqRAUVEcRRK6VFHRWfq0grqjLjUpTKOK1bHVlxrBWp1FAYXWhkVF7SoiFWqILKICopCJAcRIUAIIUDCkuX9/mj5HgMhhK2258c9h0O+3+/93vfuzXv33XfvfTcUIYSgD3oNGH0i6BNwn4D74DcWcFVVFTZu3IgNGzbQ94qKivDpp58iKipK4ztNTU3Yt28fIiMj8fr1a8ybN09rG1FRUQgMDIRAIIBSqUR4eDju37+v9R2BQICAgAC8efPmjy1gS0tLWFtb4/Dhw3j8+DEA4PHjx7h48SJsbW0BAIQQvL2+slgsSKVSZGZmwszMDNOmTaOfKZXKNm14eXkhMTERH3/8MRQKBezs7ODi4gIAUKlUarRb2rK2tkZ8fDwkEglUKhX9vDX+H0JF2NjYYM6cOThy5AikUikMDAwAABRFoaCgACtWrMDGjRuRm5uL/fv3Y9GiRXj27BkAIDU1FaGhoWhoaMCCBQtw6tQp+Pv7qwmBwWAgMjISfD4fq1evBkVRAIC4uDjs2rULy5Ytw7Nnz5CYmIivvvoKU6dORVFREY3j5OSE9PR0JCYmYvv27QgKCkJ1dfUfSwevXbsWsbGxiIuLg4+PD33/2LFjEIvFYLFYSEpKQmhoKIKDg+Hs7AwA4HK5EAqFoCgKrq6uMDMzw9WrV9uM5KFDh+LChQv44YcfcPToUQDApk2b4OXlBRsbGxw4cACbN2/Gn//8Z2zfvh0WFhYAgLlz58LJyQmPHj3C/v37oVAooFQqkZGR8ccRMCEEXl5eGDFiBIqKiqCvr682+vT09LB3714sX76cnsKtp2l1dTVOnToFe3v7dtuZNGkSjhw5gqSkJAAAk8mkRzOLxYJKpQKfz8ekSZNgbGxMv9eCw2AwYGZmhlOnTmHKlCk9Lge9nTt37uxpopWVlTh37hwcHR1hZ2cHf39/vHz5Eg8ePIC1tTUCAwMRFRWFwsJCODg4wNraGtevX0dtbS3YbDasra3x5MkTTJo0CefPn8fgwYPx4sUL/OUvf4GlpSUA4ObNm+DxeBg/fjzGjBkDiUSCDz74AO+//z4ePnxIL7Surq44cOAAmpqawGazkZqaivHjxyMnJwdWVlZYsGABwsLCUFVVhdGjR8PIyKhHZUH17eR6F5h5eXl9UuhFoAD0jeDeHMElJSVqNxobG7Fjxw7873//A4PBQFRUFPz8/OhF4W0oKytDYGAgeDwebG1tERsbi6FDh2pc8FJTU7F48WLI5XL4+/vjwIEDMDQ0bIMrl8vxzTff4MiRIwCAgwcPYu7cuWAw2q7HIpEIS5cuRXZ2NiwtLXH27Fm89957GtvPycnBJ598gvr6enh7e+O7776DiYlJG1ylUono6Gjs2rULABASEoJly5aByWS2wa2trcXatWtx584dGBkZITY2Fm5ubuqyIhqgqKiIACCenp6kIzh8+DABQHbv3t0hrp+fHwFAcnNzteJJpVJCURSxt7fvkOa5c+cIALJu3boOcQMCAggAcuvWLa14KpWKmJiYEGNjY6JUKrXiJicnEwDkk08+0ficqWlYt2wKNI2w1tCC0/KONmhZoTuiy2azQVGUTis6h8NR+69L+x31laIoGBgYQKVSaZw5mmTVXvu/qbOnxWB5V4bLu2hXo4B5PB4AgM/no7m5WSuBFy9eqL3THiiVShqnoKBAK25hYSFUKhVKSkpQV1enFTc/P1/tvzbh6trXyspKVFdXQywWQyAQaMVtoZWfn6/xC6RCQkLU7spkMsTGxqKyshIA4OnpCW9vb41T5c2bNzhz5gyUSiUYDAbmz5+vcdelUqmQlpaGe/fuAQDMzc0REBCAfv36afSqxcXF4fXr1wAAFxcXTJs2DXp6em1whUIhYmJi0NTUBACYPXs23n//fY3Cffz4MRITEwEA/fr1w6JFi2BqatoGV6FQID4+nhaco6MjZs+eDRaL1Qa3pqYGMTExqK+vBwB89NFHGDt2rNoi12em9baZxmAw1Fx3vd4gkwljY2ONI7K3QalUoq6uDgqF4rdrtKmpieTl5ZGoqCgyc+ZMwmKxyK+jukf+2Gw2+dvf/kZOnTpFeDwekcvl5F2CXC4nPB6PnD59mnz88cfEwMCgR/llsVhkxowZJDIykuTl5ZE2dnBxcTFZuXIl0dPT63ZDwcHBRCAQdFsofD6ffPHFF0Qqlfa4wAUCAfnnP/9J9PX1u8Wvnp4eWbFiBSkuLlajj/YaTk9PJ8OGDetSYyNHjiRPnjzpEQFUVVWRuXPnkrt375K8vLxeG9k5OTlk5MiRXeLX3t6ePHjwQCNdaGtUKBSS8ePHd6oxb29vUlNT02OM79ixg/B4PHLo0KFeVx8SiYT4+Ph0il8PDw8iFArbpYmOGhWLxcTFxUXnxurr63uU6fv375PMzEzy/Plz8vTp014Xcn19PfH09NSJX2dnZ1JdXa2VHnRp9OXLl6R///5aG7OwsCCvX7/ucYZ37dpFvvjiCyKTycjWrVt/k4WwpKSEWFpaauXX2NiY8Hi8DmlB10YjIiK0NhgdHd3jjDY0NJCtW7eSR48ekYsXL5LU1FStIyYlJYXcvXuXJCUlkfLy8m61ffLkSa38hoWF6URHZwE3NzcTW1vbdhe1jrxOnYW0tDQSEhJCIiMjyfr169X0nEql0vjOV199RVQqFbl79y45duxYt4SsVCrJqFGjNPI7dOhQ0tTUpBMdpq72MovFwqpVq7B582aN0eOOvE6dhcTEROzevRsAIJVKkZWVhfHjx+PBgwdIT0+nt+AURcHa2hr19fWwsrICRVGYPHkyxGIxhEIhBgwY0KW+MRgMrF27FitXrmzzbNWqVWpB3I6cIDrDq1evCEVRbew/batoVyE0NFTtWqFQkH/9619t2lKpVEQgELRRHdu2bSPNzc3kwIED3TIRNe0HioqKdKaBzjbq4OCg1pirq2uvLDRZWVlq19euXSMZGRk6vXvlyhVy584dkpeXR86ePdutfri5uanxO2zYsE69z+zs1Bk9ejT4fD593ZIs0pP+gj179oDBYODGjRswNjbG0qVLIRKJMHr0aJ1ozJo1C01NTQgJCcHevXu71Z/Ro0fT6V9d4bfTAra2ttZ63e0oLEVh9erVMDc3R2VlJXbv3o3169dj4cKFuHnzJoKCgrS+39DQgKSkJKSlpWH+/Pm668pe4rfT2r91uEeTT7dbEQAGA+bm5gCAgQMH4ssvv8SoUaOQnJyM2NhYlJaWtvtufX09jh07Bi6Xi3nz5uHJkyfd7k/rsJUuYbRujeDW0WVN0ebuwsuXL8FkMhETE4M1a9YgODiYdvBHRERg2bJlcHR0hEwmU2O4X79+WLhwIWJiYtCvXz+sWLGiR2ZUd/hl4ncIcXFxCAkJQXBwMI4ePQo2mw1fX19wuVxs3boVYWFhMDU1hYGBARobGzFv3jxwuVwAQF5eHv7+97/TiX7v3OH+e44GmJiYYOvWrXjx4gUuXbqEAQMGQC6Xw8bGBt9//z2GDx8OJycnJCUlQSAQ0KPLwsKiT8DarIjW07C+vh7p6ek4fPgw7Ozs6MDktm3benyD85tEld8lpKSkwNPTU+3evXv3cPLkSZw6dYq+N3XqVJw/f/53H5P73Qn4zp07anm6QqEQCoUClpaWCAgIoO+PGzcOZWVl+Omnn/oE3BmYP3++2rSvqKjAqlWr0NjYiFu3bkEmk9HP1q9fD6lUipMnT/YJWFcYNWqU2jWHw0FERAQOHTqEjz76qI0d6u/vj5KSkneWLfSHWuTOnDmDhQsXqt07dOgQwsLCtO7I+vfvj4KCAjg4OGhMEOkbwb9CcXFxm3s+Pj7YsmULnT2jCVasWIFHjx4hPDwcQUFBdAZPn4C1wIMHD1BWVgYulwtPT09UVVVh8+bN4PP5EIvFNN6BAwewf/9+sNlsrF69GsbGxvD19e1TEa1BIpHQfg0+n4/k5GSEhIRg4MCBiI+Px9y5cxEaGop9+/ahtrYWhoaGcHBwwMiRI1FRUQEOh4Pw8HB89tlnvys18bsRcGJiIvz8/EAIwfHjxzF06FDU1dXB2NgY/v7+OHr0KFavXo3t27cD+CVJr7i4GMnJyXBxcQGTyYRCoYCTk1OfDtYEz58/x8iRI5GdnY3Ro0fD398fUVFRKCkpQXx8PAgh2LdvH51OO2vWLOTm5iIoKAgeHh4YM2YM/Pz8sGnTJjoztG8Ev2XrDhw4EMAvebb3799HYGAgamtrkZCQgJ07d4LD4agJzsPDA0OGDFGjM2HCBLi6umLnzp3Yv3//H3MEt7Y3e8L+jI2Nxfz58wH8crDGzs4OMpkMBgYGCAoKotPzBw4cSJtrNjY2sLKyakOLw+EgICAADQ0NvSKwzvLb6RHcuuNSqbTbnWaxWDh+/DgoioJYLMby5cvx73//G+bm5u0uWBMmTGhXiI6OjjqdGdEFWvPX6S+us0HAv/71r2pBwMWLF3c6kKhQKEh5eTlRKBR0zoVUKiWxsbFqEd328h86yt/YsmVLjwVflyxZosbv7NmzO/V+p1VE65OhLSUIdIWmpiakpKRg0KBB0NPTg0QiwbFjx8DhcCCVShEZGQngF59uV6Il58+fh729PW7cuNEjI7g1v509GdspAZeVlbU5QJKTk4Oamhqdafz3v//FxIkT6emWkZEBMzMzyOVyBAUFoby8vFtqx8TEBDweD66urj1im7eO6xUWFnaqYkqnBBwXF9dGySsUCly6dElnGk+ePKEXKjabjQsXLqCxsRELFizAnj178N5773XrxLunpycOHjzYI9HuS5cuQS6Xt1nk4uLiel4HKxQK4ujoqDFXy9XVVWd96evrSxoaGujM9Q0bNpA9e/aQhIQEUlpaSt68eUMiIiKIWCxul8adO3fUruPj48n58+cJIYSEh4eTV69ekXv37pGEhIQu616VSkXGjBmjkd/hw4frfBRC53oR0dHROH36tMZn5eXlGDFihE5JGQwGA//5z38wY8YM3Lp1Cw0NDaipqYFEIkFGRgbS09MhkUjAZDIhFAohkUjw888/g8lkoqqqCg8fPkRubi4UCgUyMzNhbW2Ny5cvw8XFBWFhYWCxWODz+aioqMDTp0/x4YcfdkmXx8XF4fDhwxqfVVdXg8vlYuzYsR3S0aleRElJCdzc3CASidrFaSmi0bJh0AZhYWFISUnBN998AwC4du0aamtroaenRwt23LhxqKiogL29PR4+fAgbGxu8ePEC48ePx+vXr8FisSASibBw4UJQFIXo6Ghabzo7OyM/Px+mpqbYuHGjWqUTXUAoFMLV1RVlZWXt4pibm+Px48caD793SsBSqRS+vr461bPx8fHBjRs3wGazO8TNzMzE9u3b4e7ujjVr1sDS0hIKhQJXrlyBXC6nj5ZZWloiMzMT5ubmMDc3R1ZWFgYNGoT+/ftDIBBg1apVyMnJgYGBASiKgoWFBWxtbWFiYtKlkdvU1ITp06fjzp07HeJ6eHjQJ+27pINra2uJr69vp84szJw5k8hkMp11XXJyMgkMDCTz5s0jJ06cIGVlZe/siJdMJiOzZs3qFL8+Pj5EIpF0PrsyLy+PODs7d+nUjbu7OyksLOwUc1KplFy9epUEBweTwMBAsnLlSnLkyBHy888/k/Ly8h5P8NZ0VGzcuHFd4nfUqFHk2bNnGum2UREikQgHDx5EWFgYfQa4K2BoaIjNmzdj3bp1Ggtf6DJVeTweCgoKUFRUhJqaGrBYLOjr64PNZoPNZsPAwABsNhscDgcGBgYwNDSEkZERDA0NYWJign79+sHExETrqdLa2lpERERg//793bK/2Ww2goODsXHjRvWkF5VKRcrKysiFCxdIYGAgMTIy6tGTjyYmJiQoKIhcuXKFVFZWkt8DCIVCcvXqVbJs2TJiYmLSo/waGRmRwMBAEhcXR0pLSwllbGxMOioZ0FNAURRMTExgYWHxTqIOcrkcIpEIEonkN4tC9522722He0uu19vuuIqKCvpaT08PXC5Xo8kjEonUCmYYGRlhwIABGn2opaWlaqfcBwwYoNG8aW5uVrM/GQwGuFyuxhy0mpoaNT8Ih8PBoEGDNDIqEAjU1hRzc3P079+/DZ5CoUBpaanaCOdyuRqLItXV1antDfT19TF48OCOzbS9e/fS+kTb6UqZTEabcZ6enqSurq5dXB6PR0xNTQkAEhISonVrfeLECfqATWpqqlbX5Ny5c+mjZFVVVe3ilpaWEi6XSwCQ5cuX065STZCQkEDr1Pj4eK1HvT777DMCgNjY2JCSkhLdzLTS0lICgEyZMqXDBeP48eMEAPn66687xJ0xYwYBQPLz8zv06VIURUaMGNEhzcuXLxMAZOPGjR3iLl26lAAgd+/e7RDX0tKSmJmZ6XTUV5tfnNmev6BFPXSoY36dOrqkkbbgappurdunKKpDvLf72NN91dPT02kn2JGsGNriTrqstC1b2s7gdlRhpaUSqy6VWHqzr52pBNMeTY0CvnXrFu271VZ1iRBCl5W9ffu2xkrVby+IWVlZAEC/0x7cvn0bhBDw+Xy8fPlSK+7NmzcBAMnJyVo3RlKpFCkpKWr8tQePHj2CSCRCdXU1MjMzteK28JKamqoxvYvy9vZWE31jYyOysrJoYZmZmcHFxUXjdBEIBGoluoYPH06flWj9ReTl5aGqqoqeVu7u7u2WVszKyqLzH4yNjeHm5tZuacWnT5/S10OHDsWwYcM0CoLH46lZJ25ubu2WVnz48CEd3ORwOBg7dmy7pRUfP35Mj15ra+s2pR2pTz/9tM8O7s2NRl/94N6Fvt/ReJcCzsnJQXZ2Np4/fw6VSoXs7GwUFhZ2SPTRo0da83mBX3LRhEJhtxkoLS1FUlISCgoK1Hagb68T2dnZqKurQ3Z2dqd+aaC8vLzDMozdEnBxcTHc3d1RVVUFBoOB7OxsnWzTTZs2aYyAqFQqfPfddwB+yeu9fv16tzp/4sQJrFu3Dt7e3qiursaCBQs0br3d3d2hUCiwZMkS2urQBt9++y0A4MKFC/TnLvsitD2cOXMmnJ2dcfHiRUyePBkcDgd2dnZ4+fIl8vPzIRAIsHjxYty7dw9isRgSiQTDhw/HnDlzYGtrCz6fj+fPn0MgEGDRokXYsWMHrl+/Dg8PD3h5ecHFxQUKhQKXL1+GSqXC1KlT8fTpUxQWFoLJZKKxsZHOWG9qasLgwYMxbtw4AIBYLMbatWtx7tw56OvrY8KECQgNDQXwSyqsVCrFn/70J9pSYDAYdI5bbW0tbty4AQ6Hg1mzZoHP5yM7OxsGBgZobm7Gli1bMGrUKFhZWdFWyfXr19HQ0AA3NzeoVCpcu3YNTk5OyMnJwbp167pW3paiKKxZswYxMTHIz8+nsxk3bdoECwsLXLx4EbGxsRCJRNiwYQMYDAYaGhoQGRmJnJwcbNu2DcbGxkhISMDp06fh4OAAKysreHh44Mcff0RycjK+/PJL5ObmghCCJUuWoKGhAZs3b8bEiROxfPly5OXl4fPPP8eYMWPQ2NiopmJkMpmac8fLywtJSUnYu3cvJkyYgClTpmi0jT///HMolUrExcUhKSkJPj4+mDZtGr7++ms4ODhAT08Pvr6+KCgowOnTp5GQkIDw8HCMGTMGPj4+MDMzQ3BwMMzNzXHmzBn8+OOPXV/kAgICQFEUNm3ahMmTJwMAtmzZgrS0NFRXV0Mmk4GiKAwcOBBLly7F9OnTaZt5w4YNyMrKglAoVDt+1fLlAcD9+/dhZmYGU1NTPHjwABRFwdDQEMOGDaO3yx9++CFGjhyptukZMmQIGAxGm0h3WloaTa+srAyvXr1qw1N2djaysrIwZ84cSKVSVFZWgsPhICUlRb1y6q+f09LSYGpqCjMzM7x+/RqlpaWgKAq2trbo37+/2hffaQEbGRnhH//4Bzw8PGhjPzAwEEwmE4QQ1NfXQ6VSqbkilUolVCoVlixZoubaYzKZkEgkyM3NhVKpBCEEvr6+qK6uhkgkgq+vL71FbdmmlpWVYcaMGTh79izu3r2rtqlYu3YtoqOjIZfLIZFIEBMTgw8++ABisRgikQj29vb0bycplUr6z9PTE8XFxbCzs4OjoyNMTU0RFRWFJ0+egKIoyOVypKen0/14m6aTkxO4XC69le/od5B0zotgMpl0OtLt27dRUVEBa2tryOVycDgclJaWwtvbGxwOBzdu3IC9vT0aGhrw5s0bDBkyBDKZDBMnTsTZs2cxbdo0ZGRkwMLCAt7e3khMTIRCoYCfnx+ePn0KPp8PFxcX5ObmwtHREeXl5WhubsaUKVPU4l2EEPz000/Iz8+HlZUV/P39oa+vj/v370MkEsHd3R0ymQxZWVlwdnZGXl4ehgwZAjc3N/zwww/gcrmYPn06+Hw+EhIS4OPjA2dnZ3z//fcYO3YsSkpKIJPJMHv2bKSlpUEsFsPDwwMymQwZGRlwdnbG8+fPweVy4eXl1bfR6Nto9Am4D/oE3Cfg/1/wf61PXA4u/rbmAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/heart-small.9e8f574f.svg\";","module.exports = __webpack_public_path__ + \"static/media/heart-big.d60778bb.svg\";","module.exports = __webpack_public_path__ + \"static/media/heart-question-mark.45243d2a.svg\";","module.exports = __webpack_public_path__ + \"static/media/stripe.3e0cf333.svg\";","import React, { Component } from \"react\";\nimport { map } from 'lodash';\nimport {\n Container,\n Icon,\n Image,\n Menu,\n Sidebar,\n Responsive\n} from \"semantic-ui-react\";\nimport LogoSymbol from '../images/logo-symbol.png';\n\nconst NavBarMobile = ({\n children,\n leftItems,\n rightItems,\n onPusherClick,\n onToggle,\n visible\n}) => (\n \n \n {map(leftItems, item => )}\n \n \n \n \n \"Salsa\n \n \n \n \n \n {map(rightItems, item => )}\n \n \n {children}\n \n \n);\n\nconst NavBarDesktop = ({ leftItems, rightItems }) => (\n \n \n \"Salsa\n \n {map(leftItems, item => )}\n \n {map(rightItems, item => )}\n \n \n);\n\nconst NavBarChildren = ({ children }) => (\n {children}\n);\n\nexport default class ResponsiveNavBar extends Component {\n state = {\n visible: false\n };\n\n handlePusher = () => {\n const { visible } = this.state;\n\n if (visible) this.setState({ visible: false });\n };\n\n handleToggle = () => this.setState({ visible: !this.state.visible });\n\n render() {\n const { children, leftItems, rightItems, sidebarItems } = this.props;\n const { visible } = this.state;\n\n return (\n
\n \n \n {children}\n \n \n \n \n {children}\n \n
\n );\n }\n}","export function validateEmail(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\nexport function dashDelimited($s)\n{\n return $s.replace(/ /g, '-')\n .replace(/\\//g, '_');\n}\n\nexport function escapeChukos(s)\n{\n return s.replace(/'/g, \"\\\\'\");\n}\n\nexport function listErrorReasons( error )\n{\n const reasons = error.response.data;\n let reasonsList = [];\n\n if (typeof reasons === 'object')\n {\n for (const key in reasons) {\n if (reasons.hasOwnProperty(key)) {\n const reason = reasons[key];\n reasonsList.push(reason[0]);\n }\n }\n }\n else\n {\n reasonsList.push(error.response);\n }\n \n\n return reasonsList;\n}","import axios from 'axios';\nimport { listErrorReasons } from '../common/utils';\n\nconst ENDPOINT_REGISTRATION = '/api/accounts/register';\nconst ENDPOINT_LOGIN = '/api/auth/login';\nconst ENDPOINT_GET_USER = '/api/accounts/getUser';\nconst ENDPOINT_CONFIRM_EMAIL = '/api/accounts/confirmEmail';\nconst ENDPOINT_FORGOT_PASSWORD = '/api/accounts/forgotPassword';\nconst ENDPOINT_RESET_PASSWORD = '/api/accounts/resetPassword';\n\nclass UserService\n{\n register(email, password, firstName, lastName, subscribe)\n {\n let data = JSON.stringify({ email, password, firstName, lastName, subscribe });\n\n return new Promise( (resolve, reject) =>\n {\n axios.post(ENDPOINT_REGISTRATION, data).then( () =>\n {\n resolve();\n } ).catch( ( error ) =>\n { \n const reasons = listErrorReasons( error );\n reject( reasons )\n });\n });\n }\n\n confirmEmail(userId, token)\n {\n const query = {\n params: {\n userId,\n token\n }\n }\n\n return new Promise( (resolve, reject) =>\n {\n axios.get(ENDPOINT_CONFIRM_EMAIL, query).then( () =>\n {\n resolve();\n } ).catch( ( error ) =>\n { \n const reasons = listErrorReasons( error );\n reject( reasons )\n });\n });\n }\n\n forgotPassword(email)\n {\n const query = {\n params: {\n email\n }\n }\n\n return new Promise( (resolve, reject) =>\n {\n axios.get(ENDPOINT_FORGOT_PASSWORD, query).then( () =>\n {\n resolve();\n } ).catch( ( error ) =>\n { \n const reasons = listErrorReasons( error );\n reject( reasons )\n });\n });\n }\n\n resetPassword(userId, token, newPassword)\n {\n let data = JSON.stringify({ userId, token, newPassword });\n\n return new Promise( (resolve, reject) =>\n {\n axios.post(ENDPOINT_RESET_PASSWORD, data).then( () =>\n {\n resolve();\n } ).catch( ( error ) =>\n { \n const reasons = listErrorReasons( error );\n reject( reasons )\n });\n });\n }\n\n login( userName, password ) {\n let data = JSON.stringify({ userName, password });\n \n return new Promise( (resolve, reject) =>\n {\n axios.post(ENDPOINT_LOGIN, data).then( (res) =>\n {\n localStorage.setItem('auth_token', res.data.auth_token);\n //navigate\n resolve();\n } ).catch( ( error ) =>\n {\n const reasons = listErrorReasons( error );\n reject( reasons );\n });\n });\n }\n\n logout(){\n localStorage.removeItem('auth_token');\n }\n\n isLoggedIn(){\n return (localStorage.getItem(\"auth_token\") !== null);\n }\n\n GetUser() {\n return new Promise( (resolve, reject) =>\n {\n axios.get(ENDPOINT_GET_USER).then( (res) =>\n {\n resolve( res.data );\n } ).catch( ( error ) =>\n { \n const reasons = listErrorReasons( error );\n reject( reasons );\n });\n });\n }\n}\n\nexport default new UserService();","export const FORM_STATUS = {\n INITIAL : 0,\n VALIDATED : 1,\n SENDING : 2,\n SUCCESS : 3,\n ERROR : 4\n}","import React, { Component } from 'react';\nimport { Grid, Form, Input, Button, Message, Modal } from 'semantic-ui-react';\nimport UserService from '../../services/userService';\nimport { validateEmail } from '../../common/utils';\nimport { FORM_STATUS } from '../../common/enums';\n\nclass ForgotPassword extends Component\n{\n constructor(props) {\n super(props);\n this.emailTextBox = React.createRef();\n this.modalMounted = this.modalMounted.bind(this);\n }\n\n state = {\n email : '',\n status : FORM_STATUS.INITIAL,\n errorMessages : [],\n errorFields : [],\n showModal : false\n }\n \n openModal = () => this.setState({showModal : true});\n closeModal = () => {\n this.setState({showModal : false});\n if (this.props.onClose) this.props.onClose();\n }\n\n modalMounted() \n {\n if (this.emailTextBox.current)\n {\n this.emailTextBox.current.focus();\n } \n }\n\n handleChange = (_, { name, value }) => this.setState({ [name] : value })\n handleCheck = (_, { name, checked }) => this.setState({ [name] : checked })\n\n validate = () =>\n {\n const { email } = this.state;\n\n let valid = true;\n const errorFields = [];\n const messages = [];\n\n const listError = ( field, message ) => {\n valid = false;\n errorFields.push( field );\n messages.push( message );\n }\n\n if ( !validateEmail( email) ) listError( 'email', 'Invalid email.' );\n\n this.setState({\n status : FORM_STATUS.VALIDATED,\n errorFields,\n errorMessages : messages\n });\n\n return valid;\n }\n\n handleSubmit = () =>\n {\n if ( !this.validate() ) return;\n\n this.setState( { status : FORM_STATUS.SENDING } );\n UserService.forgotPassword( this.state.email )\n .then( () => \n {\n this.closeModal();\n })\n .catch( ( errors ) =>\n {\n this.setState( { \n status : FORM_STATUS.ERROR,\n errorMessages : errors,\n errorFields : []\n } );\n });\n }\n\n render()\n {\n return Forgot your password?}\n onMount = { this.modalMounted }\n onClose = { this.closeModal }>\n Forgot your password?\n \n {\n \n

Please fill the email you have created the account with. An email to reset your password will shortly follow.

\n \n \n
\n \n \n \n \n \n \n \n
\n
\n
\n }\n
\n
\n }\n}\n\nexport default ForgotPassword;","import React, { useState } from 'react';\nimport { Grid, Form, Button, Modal, Message } from 'semantic-ui-react';\nimport { useHistory } from \"react-router-dom\";\nimport UserService from '../../services/userService';\nimport { FORM_STATUS } from '../../common/enums';\nimport ForgotPassword from './forgotPassword';\n\nfunction LoginModal()\n{\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [status, setStatus] = useState(FORM_STATUS.INITIAL);\n const [errorMessages, setErrorMessages] = useState([]);\n const [showModal, setShowModal] = useState(false);\n\n const history = useHistory();\n\n const openModal = () => setShowModal( true );\n const closeModal = () => setShowModal( false );\n\n const onMount = () => {\n setEmail('');\n setPassword('');\n setStatus(FORM_STATUS.INITIAL);\n setErrorMessages([]);\n };\n\n const handleSubmit = () =>\n {\n setStatus( FORM_STATUS.SENDING );\n\n UserService.login( email, password)\n .then( () => {\n history.push('/');\n window.location.reload();\n })\n .catch( ( errors ) => {\n setStatus(FORM_STATUS.ERROR);\n setErrorMessages(errors);\n })\n };\n\n return Login }\n onMount = { onMount }\n onClose = { closeModal }>\n Login\n \n \n \n
\n setEmail(e.target.value) }\n autoFocus\n />\n setPassword(e.target.value) }\n />\n \n \n \n \n
\n
\n
\n
;\n}\n\nexport default LoginModal;","import React from 'react'\n\nconst UserContext = React.createContext({})\n\nexport default UserContext","import React, { Component }from 'react';\nimport { Dropdown, Menu } from 'semantic-ui-react';\nimport UserService from '../../services/userService';\nimport LoginModal from './loginModal';\nimport UserContext from '../../contexts/UserContext';\nimport { Link } from \"react-router-dom\";\n\nclass UserControl extends Component\n{\n\n logout()\n {\n UserService.logout();\n window.location.reload();\n }\n\n LoggedUserSection( user )\n {\n const name = ( user ) ? user.firstName : '';\n\n return

Hey \n \n \n My favorite moves\n Log Out\n \n \n \n

;\n }\n\n render()\n {\n if ( UserService.isLoggedIn())\n {\n return \n {\n ( { user } ) => {\n return this.LoggedUserSection( user );\n }\n }\n ;\n }\n else\n {\n return
\n \n { ' | ' }\n Register\n
\n }\n }\n}\n\nexport default UserControl;","import React from 'react';\nimport { Menu, Icon, Dropdown } from 'semantic-ui-react';\nimport { Link } from \"react-router-dom\";\nimport ResponsiveNavBar from '../../components/responsiveNavBar';\nimport UserControl from '../users/userControl';\n\nclass NavBar extends React.Component\n{\n\n items = [\n { \n as: Link ,\n to: '/',\n key: \"home\",\n content: \"Home\"\n },\n { \n as: Link ,\n to: '/moves',\n key: \"moves\",\n content: \n \n Browse Moves\n \n },\n { \n as: Link ,\n to: '/about',\n key: \"about\",\n content: \"About\"\n }\n ];\n\n mainMenuItems = [ \n ...this.items,\n { \n as: Dropdown,\n key: \"contribute\",\n item : true,\n text:'Contribute',\n className:\"simulatedLink\",\n children: \n \n Contribute\n \n \n Support the project\n \n \n\n },\n { \n as: Dropdown,\n key: \"contact\",\n item : true,\n text:'Contact',\n className:\"simulatedLink\",\n children: \n \n Contact us\n \n \n Suggest a Move\n \n \n\n },\n { \n as: Dropdown,\n key: \"cheBlog\",\n item : true,\n text:'Editorials',\n className:\"simulatedLink\",\n children: \n \n \n \n Che's Music Blog\n \n \n \n \n La Candela's Articles\n \n \n \n \n }\n ];\n\n sideMenuItems = [ \n ...this.items,\n { \n as: Link ,\n to: '/contribute',\n key: \"contribute\",\n content: \"Contribute\"\n },\n { \n as: Link ,\n to: '/support',\n key: \"support\",\n content: \"Support the project\"\n },\n { \n as: Link ,\n to: '/contact',\n key: \"about\",\n content: \"Contact us\"\n },\n { \n as: Link ,\n to: '/move/suggest',\n key: \"suggest\",\n content: \"Suggest a Move\"\n },\n {\n as: React.Fragment,\n key: \"cheBlog\",\n children: \n Che's Music Blog\n \n }];\n\n rightItems = [\n {\n content : ,\n key: 'userControl'\n }];\n\n render()\n {\n return \n {this.props.children}\n ;\n }\n}\n\nexport default NavBar;","import React from 'react';\nimport './socialBar.css';\nimport { Grid } from 'semantic-ui-react';\nimport { FacebookProvider, Like } from 'react-facebook';\nimport {\n FacebookIcon,\n TwitterIcon,\n EmailIcon,\n RedditIcon,\n VKIcon,\n PinterestIcon,\n WhatsappIcon,\n\n FacebookShareButton,\n WhatsappShareButton,\n PinterestShareButton,\n VKShareButton,\n RedditShareButton,\n EmailShareButton,\n TwitterShareButton\n } from 'react-share';\n\n const LOGO_URL = `${window.location.origin}/images/logo.png`;\nclass SocialBar extends React.Component\n{\n\n render()\n {\n const textAlign = this.props.textAlign || 'center';\n const shareUrl = window.location.href;\n const shareButtonProps = {\n url : shareUrl,\n className : 'socialButton'\n }\n const iconProps = {\n size : 32,\n round : true\n }\n\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\nexport default SocialBar;","import { Component } from \"react\";\nimport { withRouter } from \"react-router\";\n\nclass ScrollToTop extends Component {\n componentDidUpdate(prevProps) {\n if (this.props.location.pathname !== prevProps.location.pathname) {\n window.scrollTo(0, 0);\n }\n }\n \n render() {\n return this.props.children;\n }\n }\n \n export default withRouter(ScrollToTop);","import React from 'react';\nimport { Advertisement } from 'semantic-ui-react';\nimport AdSense from 'react-adsense';\n\nclass Ad extends React.Component\n{\n state = {\n hasError: false\n }\n\n static getDerivedStateFromError()\n {\n // Fix for adblocker raising an uncaught exception.\n return { hasError: true };\n }\n\n render()\n {\n if (this.state.hasError) return null;\n\n return \n \n \n }\n}\n\nexport default Ad;","import React from 'react';\nimport Ad from './ad';\nimport { Responsive } from 'semantic-ui-react';\n\nclass ResponsiveLeaderboardAd extends React.Component\n{\n render()\n {\n return \n \n \n \n \n \n \n \n \n \n ;\n }\n}\n\nexport default ResponsiveLeaderboardAd;","import lib from './fields.js';\n\nexport const Levels = [\n { text: 'Basics', value: 1},\n { text: 'Beginners', value: 2},\n { text: 'Improvers', value: 3},\n { text: 'Intermediate', value: 4},\n { text: 'Advanced', value: 5},\n { text: 'Expert', value: 6},\n { text: 'Master', value: 7},\n]\n\nexport const GroupedBarsLength = [\n { text: 'Short', value: '1-2'},\n { text: 'Medium', value: '3-5'},\n { text: 'Long', value: '6-8'},\n { text: 'Very Long', value: '8-99'},\n { text: 'Se Fue / Ultima', value: '100'},\n]\n\nexport const StartsWith = [\n { text: 'Enchufala', value: 'Enchufala'},\n { text: 'Lento', value: 'Lento'},\n { text: 'Setenta', value: 'Setenta'},\n { text: 'Siete', value: 'Siete'},\n { text: 'Sombrero', value: 'Sombrero'},\n]\n\nexport const BasedOn = [\n { text: 'Enchufala', value: 'Enchufala'},\n { text: 'Setenta', value: 'Setenta'},\n { text: 'Sombrero', value: 'Sombrero'},\n]\n\nexport const DanceConfiguration = [\n { text: 'Rueda Only', value: 2},\n { text: 'Couple Move', value: 1},\n]\n\nexport const FavoriteOptions = [\n { text: 'Favorite', value: 1},\n { text: 'Not Favorite ', value: 0},\n]\n\nexport default lib;","import React, { Component } from 'react';\nimport { dashDelimited } from '../common/utils';\nimport axios from 'axios';\nimport { Grid, Loader } from 'semantic-ui-react';\nimport YouTube from 'react-youtube';\nimport { Link } from \"react-router-dom\";\nimport { Levels } from '../common/fields';\n\nconst dailyMoveEndPoint = '/api/moves/dailyMove';\nclass Index extends Component\n{\n\n state = {\n dailyMove: null,\n }\n\n dailyMoveVideoOptions = {\n playerVars : \n {\n autoplay : 1,\n mute: 1,\n controls : 0,\n loop : 1,\n fs : 0,\n modestbranding : 1\n }\n }\n\n componentDidMount()\n { \n axios.get(dailyMoveEndPoint).then( (res) =>\n {\n this.setState({dailyMove : res.data});\n } );\n };\n\n render()\n {\n const dailyMove = this.state.dailyMove;\n\n return \n \n \n

\n Ever wanted to know how to salsa? Need a reminder of the moves taught in your salsa dance class? 
\n Salsa Yo is just for you! The most comprehensive salsa moves list offered on the web.\n

\n
\n
\n \n \n

\n Move of the day\n

\n \n {\n dailyMove &&
\n
\n \n
\n

\n See { dailyMove.name } for further details\n

\n
\n\n }\n
\n \n

\n Browse moves by level\n

\n {\n Levels.map( level => \n { `${level.value} - ${level.text}` }\n )\n }\n
\n
\n
;\n }\n}\n\nexport default Index;","import lib from './displayUtils';\n\nconst LEVELS = {\n 1 : 'Basics',\n 2 : 'Beginner',\n 3 : 'Improver',\n 4 : 'Intermediate',\n 5 : 'Advanced',\n 6 : 'Expert',\n 7 : 'Master'\n}\n\nexport function booleanToYesNo( bool )\n{\n return ( bool ) ? 'Yes' : 'No';\n}\n\nexport function stringBooleanToYesNo( boolString )\n{\n return booleanToYesNo( boolString === \"1\");\n}\n\nexport function displayDanceConfiguration( configuration, short = false )\n{\n if ( configuration === 1)\n {\n return (short) ? 'Couple' : 'Couple dance';\n }\n else if ( configuration === 2)\n {\n return (short) ? 'Rueda' : 'Rueda Only';\n }\n\n return '';\n}\n\nexport function displayLevel( levelNumber )\n{\n if ( levelNumber < 1 || levelNumber > 7 )\n {\n throw new Error(`Unknown level received: ${ levelNumber }`);\n }\n return LEVELS[ levelNumber ];\n}\n\nexport function displayBarCount( barCounts )\n{\n if ( barCounts === 100 ) return \"Se Fue\";\n\n return barCounts;\n}\n\nexport default lib;","import React from 'react';\nimport { Helmet } from 'react-helmet';\n\nclass StandardHelmet extends React.Component\n{\n render()\n {\n const { title, description } = this.props;\n\n return \n { title }\n { description && }\n \n { description && }\n \n { description && }\n ;\n }\n}\n\nexport default StandardHelmet;\n \n","import React, { Component } from 'react';\nimport _ from 'lodash';\nimport { Header, Grid, Tab, Table, Loader, Popup, Icon } from 'semantic-ui-react';\nimport { Link } from \"react-router-dom\";\nimport YouTube from 'react-youtube';\nimport axios from 'axios';\nimport JsxParser from 'react-jsx-parser';\nimport { dashDelimited, escapeChukos } from '../common/utils';\nimport { displayLevel, displayBarCount, displayDanceConfiguration } from '../common/displayUtils';\nimport ResponsiveLeaderboardAd from '../components/responsiveLeaderboardAd';\nimport StandardHelmet from './parts/standardHelmet';\nimport UserService from '../services/userService';\n\nconst apiEndpoint = '/api/moves/:name';\nconst apiEndpointTagMove = '/api/moves/tagmove';\nconst apiEndpointUntagMove = '/api/moves/untagmove';\n\nconst MetadataTooltips = {\n level : 'Indicates the complexity for a move.',\n translation : 'Most moves names are in Spanish. This is the English meaning of the move.',\n danceConfiguration : 'Rueda moves are move that are predominately used for Rueda de Casino rather than in partner dance.',\n ruedaSign : 'In addition to their name, many moves have a known visual sign that the rueda leader can use in order to call out moves.',\n synonyms : 'Alternative names that are used for this move.',\n startsWith : 'Many moves are starting with another known move.',\n basedOn : 'Some moves are for the most part an extension of another move.',\n counts : 'The length of the move counting bars (bar = 1,2,3 - 5,6,7)',\n SimilarTo : 'Similiar moves to this one.'\n}\n\nconst hoverPopupProps = {\n on : 'hover',\n mouseEnterDelay : 500\n}\nclass Move extends Component {\n\n state = {\n move: null,\n favoriteMarkInProgress : false\n }\n\n componentDidMount()\n {\n this.fetchMove();\n };\n\n componentWillReceiveProps(nextProps)\n {\n if (nextProps.match.params.name !== this.props.match.params.name)\n {\n this.fetchMove( nextProps );\n }\n }\n\n fetchMove( props = this.props)\n {\n const { name } = props.match.params;\n const endpoint = apiEndpoint.replace(':name', name);\n\n axios.get(endpoint).then( (res) =>\n {\n let move = res.data;\n move.description = this.modifyMoveReferencesToLinks( move.description);\n\n this.setState({ move });\n } );\n }\n\n modifyMoveReferencesToLinks( jsx )\n {\n return jsx.replace( /\\$(.+?)(@(.+?))?\\$/g, ( _, moveName, unused, moveReference ) =>\n {\n const reference = moveReference || moveName;\n let safeReference = dashDelimited(reference);\n safeReference = escapeChukos(safeReference);\n return `${ moveName }`;\n } );\n }\n\n covertMovesNamesToLinks( text )\n {\n const movesNames = text.split(',');\n let movesReference = movesNames.map(moveName => {\n return <>{ moveName }, \n });\n return movesReference;\n }\n\n getTooltip( metaDataKey )\n {\n return \n { MetadataTooltips[ metaDataKey ] }\n
\n More information...\n
\n }\n\n getTitle()\n {\n return ( this.state.move ) ? `${this.state.move.name} | Salsa Yo` :\n ' loading move... | Salsa Yo';\n }\n\n toggleFavorite()\n {\n if ( this.state.favoriteMarkInProgress )\n {\n return;\n }\n\n const removeFavoriteTag = () =>\n {\n const move = { ...this.state.move };\n _.remove( move.tags, ( tag ) => tag.category === 1 );\n this.setState({ move });\n }\n\n const addTag = ( tag ) =>\n {\n const move = { ...this.state.move };\n move.tags.push( tag );\n this.setState({ move });\n }\n\n const favoriteTag = {\n moveId : this.state.move.id,\n category: 1\n };\n\n this.setState({\n favoriteMarkInProgress : true\n });\n\n if ( this.isFavorite() )\n {\n removeFavoriteTag();\n axios.delete(apiEndpointUntagMove, { data: favoriteTag }).catch( () =>\n {\n addTag( favoriteTag );\n })\n .finally( () => {\n this.setState({\n favoriteMarkInProgress : false\n });\n });\n }\n else \n {\n addTag( favoriteTag );\n axios.post(apiEndpointTagMove, favoriteTag).catch( () =>\n {\n removeFavoriteTag();\n })\n .finally( () => {\n this.setState({\n favoriteMarkInProgress : false\n });\n });\n }\n }\n\n isFavorite()\n {\n const favoriteTag = this.state.move.tags.find( t => t.category === 1);\n return ( !!favoriteTag );\n }\n\n getFavoriteIcon()\n {\n if (UserService.isLoggedIn())\n {\n const favoriteIconColor = ( this.isFavorite() ) ? 'yellow' : 'black';\n\n return this.toggleFavorite()} />}\n content=\"My Favorite\"\n {...hoverPopupProps}\n />;\n }\n else\n {\n return }\n content={

Marking moves as your favorite requires to login or registration.

}\n on='click'\n />\n }\n }\n\n render()\n {\n if ( !this.state.move ) return Loading move...;\n \n const videoPanes = this.state.move.videos.map( ( video, index ) => \n {\n const pane = {};\n\n if ( this.state.move.videos.length > 1 )\n {\n pane.menuItem = {\n key : video.id,\n content : \n { (video.instructional === true) ? : null }\n { video.production.name }\n \n };\n\n if ( index === 0 )\n {\n pane.menuItem.icon = 'star';\n }\n }\n\n pane.render = () => \n
\n \n
\n

Thanks to: { video.production.name }

\n
;\n\n return pane;\n } );\n\n return \n \n \n \n \n
\n \n \n \n {this.getFavoriteIcon()}\n

{this.state.move.name}

\n \n \n \n \n Level

} />\n
\n \n \n

{displayLevel(this.state.move.level)}

\n \n
\n
\n {\n this.state.move.synonyms &&\n \n \n Synonyms

} />\n
\n

{this.state.move.synonyms}

\n
\n }\n \n \n Translation

} />\n
\n

{this.state.move.translation}

\n
\n \n \n Move Type

} />\n
\n \n \n

{displayDanceConfiguration(this.state.move.danceConfiguration)}

\n \n
\n
\n \n \n Rueda Sign

} />\n
\n

{this.state.move.sign}

\n
\n {\n this.state.move.startsWith && \n \n \n Starts with

} />\n
\n \n \n

{this.state.move.startsWith}

\n \n
\n
\n }\n {\n this.state.move.basedOn &&\n \n \n Based on

} />\n
\n \n \n

{this.state.move.basedOn}

\n \n
\n
\n }\n {\n this.state.move.similarTo &&\n \n \n Similar To

} />\n
\n \n

{this.covertMovesNamesToLinks(this.state.move.similarTo)}

\n
\n
\n }\n \n \n Bar Counts

} />\n
\n

{displayBarCount(this.state.move.counts)}

\n
\n
\n
\n
\n
\n Anything to add or correct?\n \n
\n
\n \n \n \n
\n \n \n \n \n \n \n \n
Step by step description
\n {\n this.state.move.description ?\n

\n \n

\n :\n Add your description\n }\n
\n
\n
\n
\n }\n}\n\nexport default Move;","import React, { Component } from 'react';\nimport _ from 'lodash';\nimport { Table, Grid, Pagination, Input, Dropdown, Icon, Loader, Responsive } from 'semantic-ui-react';\nimport axios from 'axios';\nimport queryString from 'query-string';\nimport ResponsiveLeaderboardAd from '../components/responsiveLeaderboardAd';\nimport { Link } from \"react-router-dom\";\nimport { dashDelimited } from '../common/utils';\nimport { displayDanceConfiguration, displayLevel, displayBarCount } from '../common/displayUtils';\nimport { Levels, GroupedBarsLength, BasedOn, StartsWith, DanceConfiguration, FavoriteOptions } from '../common/fields';\nimport StandardHelmet from './parts/standardHelmet';\nimport userService from '../services/userService';\n\nconst { Header, Cell, Row, Body, HeaderCell } = Table;\n\nconst CancelToken = axios.CancelToken;\nconst apiEndpoint = '/api/moves';\n\nconst ORDER_BY_DEFAULT = 'name';\nconst DIRECTION_DEFAULT = 'asc';\nconst PAGE_DEFAULT = 1;\nclass Moves extends Component\n{\n state = {\n moves : [],\n page : null,\n loadingMoves : false,\n filter : {},\n fetchMovesSource : null\n }\n\n componentDidMount()\n {\n this.fetchMoves = _.debounce( this.fetchMoves, 100);\n\n this.setUrlToState();\n this.fetchMoves();\n };\n\n componentWillReceiveProps(nextProps)\n {\n if (nextProps.location !== this.props.location)\n {\n this.setUrlToState( nextProps );\n }\n }\n\n componentDidUpdate(nextProps)\n {\n if (nextProps.location !== this.props.location)\n {\n this.fetchMoves();\n }\n }\n\n setUrlToState( props = this.props)\n {\n const { orderBy, direction, page, counts, level, name, startsWith, basedOn, danceConfiguration, favorite } = queryString.parse(props.location.search);\n let fullDirection = \"ascending\";\n if ( direction ) \n {\n fullDirection = ( direction === \"asc\") ? \"ascending\" : \"descending\";\n }\n \n this.setState( { \n orderBy : orderBy || ORDER_BY_DEFAULT,\n direction : fullDirection,\n page : parseInt(page) || PAGE_DEFAULT,\n filter : {\n counts : counts || '',\n level : parseInt(level) || '',\n name : name || '',\n startsWith : startsWith || '',\n basedOn : basedOn || '',\n danceConfiguration : parseInt(danceConfiguration) || '',\n favorite : (favorite > -1) ? parseInt(favorite) : null\n }\n } );\n }\n\n getUrlParams()\n {\n return queryString.parse(this.props.location.search);\n }\n\n navigate( queryParams )\n {\n const newQueryParams = queryString.stringify( queryParams );\n\n this.props.history.push({\n pathname: '/moves',\n search: newQueryParams\n });\n } \n\n fetchMoves( props = this.props )\n {\n const apiEndPointQuery = `${apiEndpoint}${props.location.search}`;\n\n if ( this.state.fetchMovesSource )\n {\n this.state.fetchMovesSource.cancel('New search abound.');\n }\n\n const cancelSource = CancelToken.source();\n this.setState({\n moves : [],\n page : null,\n loadingMoves : true,\n fetchMovesSource : cancelSource\n })\n \n axios.get(apiEndPointQuery, { cancelToken : cancelSource.token }).then( (res) =>\n {\n const { moves, pages, currentPage } = res.data;\n this.setState({ \n moves,\n page : parseInt(currentPage),\n pages : parseInt( pages ),\n loadingMoves : false });\n } ).catch( (e) => {\n if (!axios.isCancel(e)) {\n throw e;\n }\n });\n }\n\n filter( column, value )\n {\n const queryParams = this.getUrlParams();\n\n if ( value === null || value === false || value === '' )\n {\n delete queryParams[ column ];\n } \n else\n {\n queryParams[ column ] = value;\n }\n\n delete queryParams.page;\n\n this.navigate( queryParams );\n }\n\n hasFilter()\n {\n return this.state.filter &&\n (this.state.filter.counts || this.state.filter.level || this.state.filter.name ||\n this.state.filter.startsWith || this.state.filter.basedOn || this.state.filter.danceConfiguration ||\n this.state.filter.favorite !== null);\n }\n\n onPageChange( page )\n {\n const queryParams = this.getUrlParams();\n queryParams.page = page;\n this.navigate( queryParams );\n }\n\n sortTable( column )\n {\n const queryParams = this.getUrlParams();\n\n if ( !queryParams.orderBy )\n {\n queryParams.orderBy = ORDER_BY_DEFAULT;\n queryParams.direction = \"desc\";\n }\n if ( queryParams.orderBy === column )\n {\n queryParams.direction = ( queryParams.direction === \"asc\") ? \"desc\" : \"asc\";\n }\n else\n {\n queryParams.orderBy = column;\n queryParams.direction = DIRECTION_DEFAULT;\n }\n\n this.navigate( queryParams );\n }\n\n getPaginationRange()\n {\n return (window.innerWidth >= Responsive.onlyMobile.maxWidth) ? 5 : 3;\n }\n\n getTagsIcons( tags )\n {\n if (tags.find( t => t.category === 1))\n {\n return \n }\n }\n\n render()\n {\n const Columns = \n [\n {\n columnName : 'favorite',\n displayName : ,\n style : { paddingRight : '0px' }\n },\n {\n columnName : 'name',\n displayName : 'Move'\n },\n {\n columnName : 'level',\n displayName : 'Level'\n },\n {\n columnName : 'counts',\n displayName : 'Bars',\n textAlign : 'center'\n },\n {\n columnName : 'danceConfiguration',\n displayName : 'Type',\n textAlign : 'center'\n },\n {\n columnName : 'startsWith',\n displayName : 'Starts with'\n },\n {\n columnName : 'basedOn',\n displayName : 'Based On'\n }\n ];\n\n return \n \n \n \n \n {\n this.state.filter && \n \n \n \n \n

\n Filter\n

\n
\n \n this.filter('name', data.value)}\n value={this.state.filter.name} />\n this.filter('level', data.value)}\n value = { this.state.filter.level}/>\n this.filter('counts', data.value)}\n value = { this.state.filter.counts} /> \n this.filter('startsWith', data.value)}\n value = { this.state.filter.startsWith}/>\n this.filter('basedOn', data.value)}\n value = { this.state.filter.basedOn}/>\n this.filter('danceConfiguration', data.value)}\n value = { this.state.filter.danceConfiguration} />\n { userService.isLoggedIn() && \n this.filter('favorite', data.value)}\n value = { this.state.filter.favorite}\n />\n }\n \n \n {\n this.hasFilter() &&\n \n Clear\n \n }\n \n
\n
\n
\n }\n
\n \n {\n this.state.loadingMoves &&\n \n Searching...\n \n }\n {\n !this.state.loadingMoves && this.state.moves.length === 0 &&\n
\n \n

\n There are no moves that match the criteria. Please change the filter.\n

\n

\n \n Clear Filter\n \n

\n
\n }\n {\n !this.state.loadingMoves && this.state.moves.length > 0 &&\n \n \n \n
\n \n {\n Columns.map( c => this.sortTable( c.columnName ) }\n style = { c.style }\n >\n { c.displayName }\n )\n }\n \n
\n \n {\n this.state.moves.map( ({ id, name, level, counts, danceConfiguration, startsWith, basedOn, tags }) => (\n \n { this.getTagsIcons(tags) } \n { name } \n { displayLevel( level ) } \n { displayBarCount(counts) } \n { displayDanceConfiguration( danceConfiguration, true ) } \n { startsWith } \n { basedOn } \n \n ) )\n }\n \n
\n
\n \n \n {\n this.state.moves.map( ({ name, tags }) => (\n \n

\n { this.getTagsIcons(tags) }\n { name }\n

\n
\n ) )\n }\n
\n
\n {\n this.state.pages > 1 &&\n this.onPageChange( details.activePage ) }\n />\n }\n
\n }\n
\n
\n \n \n \n \n \n
\n
\n } \n }\n\nexport default Moves;","import React, { Component } from 'react';\nimport { Grid } from 'semantic-ui-react';\nimport { Link } from \"react-router-dom\";\nimport axios from 'axios';\nimport StandardHelmet from './parts/standardHelmet';\nimport LatingateLogo from '../images/latingate_logo.png';\nimport LaCandelaLogo from '../images/la_candela_logo.png';\nimport MediaNocheLogo from '../images/media_noche_variation_collection_logo.png';\n\nconst productionsEndpoint = '/api/productions';\nclass Index extends Component\n{\n state = {\n productions: []\n };\n\n componentDidMount()\n { \n axios.get(productionsEndpoint).then( (res) =>\n {\n const productions = res.data;\n this.setState({ productions });\n } );\n };\n\n render()\n {\n return \n \n \n \n
\n

About

\n

\n Salsayo previously known as Salsa Lust is a project that started in 2010 by Ido Flaishon\n a Cuban Salsa enthusiastic from Israel. The project goal is creating an\n encyclopedia for Cuban Salsa that will make sense and order of the massive amount of creativity\n that exists in Cuban Salsa.\n

\n

\n Supported by a few enthusiastic and expereinced souls, the project has become a reality.\n We put extra effort not just upload everything that exists on web, since there\n are a lot of duplications, misunderstandings and the like. Our moves are selected carefully, \n and we select the videos to be shown based on their quality of producion and technical perofrmance level.\n

\n

\n Ido himself is a Cuban Salsa professional dancers and teacher. He is the head of the \n La Candela \n school in Berlin where he currently teaches Cuban Salsa, Foklore, and modern dances.\n

\n
\n\n
\n

Credits

\n

\n We have a gathered and organized a massive amount of information,and it's all thanks to\n wonderful people that support the salsa secene all over the world. Here we list the people\n that and organizations that have contributed more than a bit.\n

\n\n

Website Contribution

\n

Ido Flaishon

\n

Salsayo admin, Web site design, coding and content writing & Catalogization

\n

Michael 'Che' Morozov

\n

Description for massive amount of moves, General help and professional advice.

\n

Ofer Waldman

\n

Media Noche filming chief, General help & proffessional advices

\n

Predrag Stakić

\n

Logo Design & Branding

\n\n

In Association With

\n \n \"La\n

La Candela Berlin School

\n
\n \n \"Latingate\n

Latingate latin dance school

\n
\n \n \"Medianoche\n

Media Noche - Variation Collection

\n
\n\n

Salsa Yo filming Productions

\n

Moves Creator

\n

Or Felus

\n

Dancers

\n

Or Felus, Tamar Levy, Shirly Bitansky, Tal Gafni, Nofar Teper

\n

Filming & Editing

\n

Ido Flaishon

\n\n

Moves Films

\n

Filming groups ordered by contribution to Salsayo video archive

\n

\n {\n this.state.productions.map( (production, index) => {\n return {production.name} ~ ;\n })\n }\n

\n
\n
\n
\n
\n }\n}\n\nexport default Index;","import React, { Component } from 'react';\nimport { Grid, List } from 'semantic-ui-react';\nimport { Link } from \"react-router-dom\";\nimport SocialBar from './parts/socialBar';\nimport StandardHelmet from './parts/standardHelmet';\nclass Contribute extends Component\n{\n\n render()\n {\n return \n \n \n \n
\n

Contribute

\n

\n Do you like the site and the project? Want to contribute to the site growth?
\n Here are couple of ways you can help Salsa Yo! grow and develop.\n

\n
\n\n
\n
\n

Token of appreciation

\n

\n The project is here for the sake of knowledge sharing and spreading the love. Maintaining the website however\n does come with costs of time and money that come from my personal budget. I am glad to invest it in order\n to help our worldwide Salsa community to grow. Still, if you want to help with the costs it will be greatly\n appretiated, even if it's just 1 Euro or Dollar.\n

\n Support the project & Donate\n
\n\n
\n

Take part in the project

\n

You can help us shape & grow the project!

\n

\n \n Do you know a new move that is not presented here?\n Do you want to write descriptions for our moves?\n Do you want a great idea for the project?\n \n Are you a talented web graphic designer, or a developer and want to\n improve or implement new features for the project?\n \n \n

\n
\n\n
\n

Share the love, tell your friends!

\n

\n Spread the word and tell your friends about SalsaYo.com. Whether they are experienced dancers, \n beginners or might think of giving salsa, the project is helpful to all, beginners, teachers, and schools.\n All the moves presented here are meant to be shared :)\n Feel free to share or teach others.\n Easiest way would be through social networks such as Facebook, Twitter or Myspace.\n

\n \n
\n
\n
\n
;\n
\n }\n}\n\nexport default Contribute;","import React, { Component } from 'react';\nimport { Grid, Form, Input, TextArea, Button, Message } from 'semantic-ui-react';\nimport axios from 'axios';\nimport { validateEmail } from '../common/utils';\nimport StandardHelmet from './parts/standardHelmet';\nimport queryString from 'query-string';\n\nconst contactEndPoint = '/api/contact/message';\n\nconst STATUS = {\n INITIAL : 0,\n VALIDATED : 1,\n SENDING : 2,\n SUCCESS : 3,\n ERROR : 4\n}\nclass Contact extends Component\n{\n state = {\n name : '',\n email : '',\n subject : '',\n message : '',\n status : STATUS.INITIAL\n }\n\n componentDidMount()\n {\n const { subject } = queryString.parse(this.props.location.search);\n if (subject)\n {\n this.setState({\n subject : subject\n })\n }\n }\n\n handleChange = (_, { name, value }) => this.setState({ [name]: value })\n\n validate = () =>\n {\n const { name, email, subject, message } = this.state;\n return (name && email && subject && message && validateEmail(email) );\n }\n \n handleSubmit = () =>\n {\n const { name, email, subject, message } = this.state;\n\n if ( !this.validate() )\n {\n this.setState({\n status : STATUS.VALIDATED\n });\n return;\n }\n\n const params = {\n Name : name,\n From : email,\n Subject : subject,\n Message : message\n };\n\n this.setState({\n status : STATUS.SENDING\n });\n\n axios.post(contactEndPoint, params).then( (res) =>\n {\n this.setState({\n name : '',\n email : '',\n subject : '',\n message : '',\n status : STATUS.SUCCESS\n });\n } )\n .catch( () => {\n this.setState({\n status : STATUS.ERROR\n });\n });\n }\n\n render()\n {\n return \n \n \n \n
\n

Contact

\n

\n Feel free to contact me on any subject you wish whether it's suggestions for the site, if you want to correct a \n mistake on the site or just say what's on your mind. Follow here if you want to suggest a new move. \n

\n
\n
\n \n \n \n \n \n \n \n \n \n
\n
\n
;\n }\n}\n\nexport default Contact;","import React, { Component } from 'react';\nimport { Grid, List, Icon } from 'semantic-ui-react';\nimport { Link } from \"react-router-dom\";\nimport StandardHelmet from './parts/standardHelmet';\n\nclass MoveExplanation extends Component\n{\n\n render()\n {\n return \n \n \n \n
\n

How to read each move

\n

\n In Salsa Yo we try to create a standard for Cuban Salsa moves. Each move we choose\n to put in our data base is either a signature move ( a move many people know ) or\n has something uniuqe in it. That said, it's important to know that each local scene\n might have a slightly different standard.\n

\n
\n\n
\n

Level

\n

\n The level represent the complexity of a move. We categorize the moves roughly with these\n guidelines:\n \n \n Basics - \n The most basic elements of Salsa Cubana. Moves you'd expect to see in the first few\n lessons.\n \n \n Beginners - \n Building up from basics, and enchancing some of the basic moves. Largely\n based on Enchufala, and the Back Rocks steps.\n \n \n Improvers - \n Largely contains what we define as \"Core moves\", moves that build up the foundation of Salsa\n Cubana, for example Vacilala. You can also find moves that enhance \n Beginner level moves. For example, El Uno.\n \n \n Intermediate - \n Mostly harder core moves or staple moves that are used frequently and are building up from \n Core moves. For example, Sombrero. You can also find moves that \n enhance Improvers level moves. For example , El Dedo.\n \n \n Advanced - \n Combination moves that are not hard, and include a small amount of relatively easy small\n tricks.\n \n \n Expert - \n Harder combination moves. Would often use at least one trick that is more unique or\n harder to perform.\n \n \n Master - \n The highest level of moves. They either contain a large number of tricks, a\n difficult to perform trick, or have a hard transition between its elements.\n \n \n\n

Synonyms

\n

\n As much as we'd like, there is no true one standard across the world regarding Cuban Salsa\n moves. Sometimes the same move (or nearly the same move) has different names in different\n local scenes. We mention under this column, some of the names we have found for the move.\n There might be more however, it's impossible to follow all the local scenes in the world.\n

\n\n

Move Type

\n

\n Indicates whether the move is meant to be used in a couple dance or in a Rueda de Casino.\n All Cuban Salsa moves can be used in Rueda de Casino. But a Rueda Move is a move that is \n meant predominately to Rueda de Casino. It usually means one of the two:\n \n \n More than one couple is needed to perform the move. For example, Dame.\n \n \n It contains elements that are not meant for a couple dance. For example the clap in\n Un Fly.\n \n \n

\n\n

Rueda Sign

\n

\n Rueda de Casino moves have a name to be called, and a visual sign to help dancers understand\n what move is being called when it's too loud. This is a description of the sign. Not all moves\n have a known visual sign.\n

\n\n

Starts With

\n

\n If the move starts with a known move we will mention it under this column.\n

\n\n

Based On

\n

\n If the move is an enhancement of another move, then we say it is based on it.\n

\n\n

Bar Counts

\n

\n A bar for dancers means the one count of 1 to 8, or as many know it \"1,2,3 - 5,6,7\".\n Basically if you count it 3 times before a move is done then the move is 3 bars long. We\n do not count Guapea in the beginning of the move, or a \n Dile Que No in the end of the move.\n

\n\n

Videos

\n

\n We select our videos carefully in order to make sure they fit the standard and provide good\n information. They are also ordered by they are ordered more or less by their quality.\n

\n

\n Some videos have Icons:\n
\n Favorite - Our favorite video. Usually its the best we know in term of quality of\n the video, performance of the move, and how concise is it.\n
\n Insturctional - These videos include verbal instructional content.\n

\n

\n
\n
\n
\n
;\n }\n}\n\nexport default MoveExplanation;","import React, { Component } from 'react';\nimport { Grid, Form, Input, TextArea, Button, Message, Select } from 'semantic-ui-react';\nimport axios from 'axios';\nimport { validateEmail } from '../common/utils';\nimport StandardHelmet from './parts/standardHelmet';\n\nconst contactEndPoint = '/api/contact/suggestMove';\n\nconst STATUS = {\n INITIAL : 0,\n VALIDATED : 1,\n SENDING : 2,\n SUCCESS : 3,\n ERROR : 4\n}\n\nconst SOURCE_OPTIONS = [\n { text: 'my original move', value: 'original'},\n { text: 'just a cool move', value: 'cool'},\n { text: 'A move my school teach', value: 'school'},\n { text: 'Localy known move', value: 'local'},\n { text: 'Globally known move', value: 'global'},\n { text: 'I don\\'t know,', value: 'unknown'}\n]\n\nclass SuggestMove extends Component\n{\n state = {\n name : '',\n email : '',\n moveName : '',\n source : '',\n videoLink : '',\n videoCreditLink : '',\n description : '',\n status : STATUS.INITIAL\n }\n\n handleChange = (_, { name, value }) => this.setState({ [name]: value })\n\n validate = () =>\n {\n const { name, email, moveName, videoLink } = this.state;\n return (name && email && moveName && videoLink && validateEmail(email) );\n }\n \n handleSubmit = () =>\n {\n const { name, email, moveName, source, videoLink, videoCreditLink, description } = this.state;\n\n if ( !this.validate() )\n {\n this.setState({\n status : STATUS.VALIDATED\n });\n return;\n }\n\n const params = {\n Name : name,\n From : email,\n MoveName : moveName,\n Source : source,\n VideoLink : videoLink,\n VideoCreditLink : videoCreditLink,\n Description : description\n };\n\n this.setState({\n status : STATUS.SENDING\n });\n\n axios.post(contactEndPoint, params).then( (res) =>\n {\n this.setState({\n name : '',\n email : '',\n moveName : '',\n source : null,\n videoLink : '',\n videoCreditLink : '',\n description : '',\n status : STATUS.SUCCESS\n });\n } )\n .catch( () => {\n this.setState({\n status : STATUS.ERROR\n });\n });\n }\n\n render()\n {\n return \n \n \n \n
\n

Suggest a move

\n

\n If you are here, you probably have a cool move Salsa Yo doesn't have in its library.\n We generally accept well known moves, or moves with something unique in them. So if\n you want to add a new move just fill up the form.\n

\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
;\n }\n}\n\nexport default SuggestMove;","import axios from 'axios';\nimport { listErrorReasons } from '../common/utils';\n\nconst ENDPOINT_CREATE_DONATION_INTENT = '/api/payment/createDonationIntent';\n\nclass PaymentService\n{\n createDonationIntent( amount )\n {\n let data = JSON.stringify({ amount });\n\n return new Promise( (resolve, reject) =>\n {\n axios.post(ENDPOINT_CREATE_DONATION_INTENT, data).then( ( clientSecret ) =>\n {\n resolve( clientSecret );\n } ).catch( ( error ) =>\n { \n const reasons = listErrorReasons( error );\n reject( reasons )\n });\n });\n }\n}\n\nexport default new PaymentService();","import React from 'react';\nimport {CardElement} from '@stripe/react-stripe-js';\n\nconst CARD_ELEMENT_OPTIONS = {\n style: {\n base: {\n fontSmoothing: \"antialiased\",\n \"::placeholder\": {\n color: \"#aab7c4\",\n },\n },\n invalid: {\n color: \"#fa755a\",\n iconColor: \"#fa755a\",\n },\n },\n};\n\nfunction CardSection() {\n return (\n

\n \n

\n );\n};\n\nexport default CardSection;","import React, { useState } from \"react\";\nimport { CardElement, useStripe, useElements } from \"@stripe/react-stripe-js\";\nimport { Button, Form, Message, Image } from 'semantic-ui-react';\nimport PaymentService from '../../services/paymentService';\nimport CardSection from './cardSection';\n\nimport Logo from '../../images/stripe.svg';\n\nexport default function CheckoutForm(props) {\n const [errorMessage, setErrorMessage] = useState(null);\n const [paymentSucceeded, setPaymentSucceeded] = useState( false );\n const [paymentProcessing, setPaymentProcessing] = useState(false);\n \n const stripe = useStripe();\n const elements = useElements();\n\n const handleSubmit = async event =>\n {\n event.preventDefault();\n \n if (!stripe || !elements) return;\n\n setPaymentProcessing(true);\n \n PaymentService.createDonationIntent( props.amount ).then((response) => {\n confirmCardPayment(response.data.clientSecret);\n })\n .catch( (e)=>\n {\n setPaymentProcessing(false);\n setErrorMessage([\"Could not initiate payment. Please contact us.\"])\n });\n };\n\n const confirmCardPayment = async (clientSecret) =>\n {\n const result = await stripe.confirmCardPayment(clientSecret, {\n payment_method: {\n card: elements.getElement(CardElement),\n billing_details: {\n name: 'Jenny Rosen', // TODO: Replace? Yeah I should\n },\n }\n });\n\n if (result.error)\n {\n setErrorMessage([result.error.message]);\n setPaymentSucceeded(false);\n } else \n {\n if (result.paymentIntent.status === 'succeeded') {\n setErrorMessage(null);\n setPaymentSucceeded(true);\n // There's a risk of the customer closing the window before callback\n // execution. Set up a webhook or plugin to listen for the\n // payment_intent.succeeded event that handles any business critical\n // post-payment actions.\n }\n }\n\n setPaymentProcessing(false);\n }\n\n return (\n
\n \n \n \"Powered\n \n \n \n );\n}","import React, { useState } from 'react';\nimport { Grid,Input,Label,Image,Divider } from 'semantic-ui-react';\nimport StandardHelmet from './parts/standardHelmet';\nimport {Elements} from '@stripe/react-stripe-js';\nimport {loadStripe} from '@stripe/stripe-js';\nimport classNames from 'classnames';\n\nimport DonationSmall from '../images/heart-small.svg';\nimport DonationBig from '../images/heart-big.svg';\nimport DonationQuestionMark from '../images/heart-question-mark.svg';\n\nimport CheckoutForm from './payment/checkoutForm';\n\nconst DONATIONS_AMOUNT = {\n small: 10,\n big: 25,\n custom : null\n}\n\nconst stripePromise = loadStripe(process.env.REACT_APP_STRIPE_CLIENT_KEY);\n\nfunction Support() \n{\n const [donationSize, setDonationSize] = useState('');\n const [donationAmount, setDonationAmount] = useState(null);\n\n const toggleImageClass = ( value ) =>\n {\n return classNames({\n toggleImage : true,\n activeImageToggle : donationSize === value\n });\n }\n\n const handleDonationSizeClick = ( value ) =>\n {\n\n setDonationSize( value );\n setDonationAmount( DONATIONS_AMOUNT[ value ] );\n }\n\n return \n \n \n \n
\n

Support the project

\n

\n The website and the project comes with different costs and a lot of maintanence effort, not to mention Salsa related expertise.\n The advertisement barely cover the costs or allow us to grow the project and I often end up\n using my personal pocket for it. So if you have enjoyed the project so we welcome any contribution small as it may be.\n

\n
\n\n lue='sm\n handleDonationSizeClick('small')}\n className={toggleImageClass('small')}/>\n handleDonationSizeClick('big')}\n className={toggleImageClass('big')}/>\n handleDonationSizeClick('custom')}\n className={toggleImageClass('custom')}/>\n \n {\n (donationSize !== '') && \n \n
\n {\n (donationSize === 'custom') ?\n setDonationAmount( e.target.value ) } // TODO: The state is not working well\n fluid>\n \n \n \n : \n
{`${DONATIONS_AMOUNT[donationSize]}€`}
\n }\n \n \n \n\n Alternatively\n\n
\n

Donate via Paypal:

\n
\n \n \n \n \"\"\n
\n
\n
\n
\n }\n
\n
\n
\n};\n\nexport default Support;","import React, { Component } from 'react';\nimport { Grid, Icon } from 'semantic-ui-react';\nimport { Link } from \"react-router-dom\";\nclass NotFound extends Component\n{\n\n render()\n {\n return \n \n
\n \n

Page Not Found

\n

\n Follow to the home page and search for what you look for again. \n
\n You can also go straight to our moves list.\n
\n If the problem persist you are welcome to contact us.\n

\n
\n
;\n
\n }\n}\n\nexport default NotFound;","import React, { Component } from 'react';\nimport { Grid, Icon } from 'semantic-ui-react';\n\nclass WebsiteMessagePage extends Component\n{\n\n render()\n {\n const { icon, title, content } = this.props;\n\n return \n \n
\n \n

{title}

\n

\n { content }\n

\n
\n
;\n
\n }\n}\n\nexport default WebsiteMessagePage;","import React, { Component } from 'react';\nimport { Link } from \"react-router-dom\";\nimport WebsiteMessagePage from '../parts/websiteMessagePage';\nclass RegistrationComplete extends Component\n{\n\n render()\n {\n return \n Your registration was successful. In order to complete the registration please check your email inbox and confirm your email.\n

\n Go back to home page\n }\n />;\n }\n}\n\nexport default RegistrationComplete;","import React, { Component } from 'react';\nimport { Grid, Form, Input, Button, Message, Checkbox } from 'semantic-ui-react';\nimport StandardHelmet from '../parts/standardHelmet';\nimport UserService from '../../services/userService';\nimport { validateEmail } from '../../common/utils';\nimport { FORM_STATUS } from '../../common/enums';\nimport RegistrationComplete from './registrationComplete';\n\nclass Registration extends Component\n{\n state = {\n email : '',\n password : '',\n passwordRepeat : '',\n firstName : '',\n lastName : '',\n subscribe : true,\n status : FORM_STATUS.INITIAL,\n errorMessages : [],\n errorFields : []\n }\n \n handleChange = (_, { name, value }) => this.setState({ [name] : value })\n handleCheck = (_, { name, checked }) => this.setState({ [name] : checked })\n\n validate = () =>\n {\n const { firstName, lastName, email, password, passwordRepeat } = this.state;\n\n let valid = true;\n const errorFields = [];\n const messages = [];\n\n const listError = ( field, message ) => {\n valid = false;\n errorFields.push( field );\n messages.push( message );\n }\n\n if ( !firstName ) listError( 'firstName', 'First name is required.' );\n if ( !lastName ) listError( 'lastName', 'Last name is required.' );\n if ( !validateEmail( email) ) listError( 'email', 'Invalid email.' );\n if ( password.length < 8 ) listError( 'password', 'Password should be at least 8 characters' );\n if ( password !== passwordRepeat ) listError( 'passwordRepeat', 'Password and the re-password do not match.' );\n\n this.setState({\n status : FORM_STATUS.VALIDATED,\n errorFields,\n errorMessages : messages\n });\n\n return valid;\n }\n\n handleSubmit = () =>\n {\n if ( !this.validate() ) return;\n\n this.setState( { status : FORM_STATUS.SENDING } );\n UserService.register( this.state.email, \n this.state.password,\n this.state.firstName,\n this.state.lastName,\n this.state.subscribe )\n .then( ( a ) => \n {\n this.setState( { \n status : FORM_STATUS.SUCCESS,\n } );\n })\n .catch( ( errors ) =>\n {\n this.setState( { \n status : FORM_STATUS.ERROR,\n errorMessages : errors,\n errorFields : [] // From server no errors on specific fields\n } );\n });\n }\n\n render()\n {\n return \n \n {\n (this.state.status === FORM_STATUS.SUCCESS) ? :\n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n }\n
;\n }\n}\n\nexport default Registration;","import React, { Component } from 'react';\nimport { Grid, Icon, Loader } from 'semantic-ui-react';\nimport { Link } from \"react-router-dom\";\nimport { FORM_STATUS } from '../../common/enums'\nimport queryString from 'query-string';\nimport UserService from '../../services/userService';\nimport LoginModal from './loginModal';\n\nclass ConfirmEmail extends Component\n{\n state = {\n status : FORM_STATUS.INITIAL,\n errorMessage : ''\n }\n\n componentDidMount()\n {\n const { userId, token } = queryString.parse(this.props.location.search);\n\n this.setState( { status : FORM_STATUS.SENDING } );\n \n UserService.confirmEmail( userId, token)\n .then( () => \n {\n this.setState( { \n status : FORM_STATUS.SUCCESS,\n } );\n })\n .catch( ( errors ) =>\n {\n this.setState( { \n status : FORM_STATUS.ERROR,\n errorMessage : errors[0].data\n } );\n });\n }\n\n render()\n {\n return \n \n { \n (this.state.status === FORM_STATUS.INITIAL || this.state.status === FORM_STATUS.SENDING) &&\n \n Confirming...\n \n }\n { this.state.status === FORM_STATUS.SUCCESS &&\n
\n \n

Registration Complete - Your email is confirmed

\n

\n You may now \n

\n
\n } \n { this.state.status === FORM_STATUS.ERROR &&\n
\n \n

Confirmation failed

\n

\n Email confirmation failed:
{this.state.errorMessage}\n

\n You may contact us and we will do our best to help you.\n

\n
\n }\n
\n
\n }\n}\n\nexport default ConfirmEmail;","import React, { Component } from 'react';\nimport WebsiteMessagePage from '../parts/websiteMessagePage';\nimport LoginModal from './loginModal';\n\nclass ResetPasswordComplete extends Component\n{\n\n render()\n {\n return \n You have successfully changed your password.\n

\n You may now \n }\n />;\n }\n}\n\nexport default ResetPasswordComplete;","import React, { Component } from 'react';\nimport { Grid, Form, Input, Button, Message } from 'semantic-ui-react';\nimport StandardHelmet from '../parts/standardHelmet';\nimport UserService from '../../services/userService';\nimport { FORM_STATUS } from '../../common/enums';\nimport ResetPasswordComplete from './resetPasswordComplete';\nimport queryString from 'query-string';\n\nclass ResetPassword extends Component\n{\n state = {\n password : '',\n passwordRepeat : '',\n }\n \n handleChange = (_, { name, value }) => this.setState({ [name] : value })\n handleCheck = (_, { name, checked }) => this.setState({ [name] : checked })\n\n validate = () =>\n {\n const { password, passwordRepeat } = this.state;\n\n let valid = true;\n const errorFields = [];\n const messages = [];\n\n const listError = ( field, message ) => {\n valid = false;\n errorFields.push( field );\n messages.push( message );\n }\n\n if ( password.length < 8 ) listError( 'password', 'Password should be at least 8 characters' );\n if ( password !== passwordRepeat ) listError( 'passwordRepeat', 'Password and the re-password do not match.' );\n\n this.setState({\n status : FORM_STATUS.VALIDATED,\n errorFields,\n errorMessages : messages\n });\n\n return valid;\n }\n\n handleSubmit = () =>\n {\n if ( !this.validate() ) return;\n\n const { userId, token } = queryString.parse(this.props.location.search);\n\n this.setState( { status : FORM_STATUS.SENDING } );\n UserService.resetPassword( userId, \n token,\n this.state.password )\n .then( ( a ) => \n {\n this.setState( { \n status : FORM_STATUS.SUCCESS,\n } );\n })\n .catch( ( errors ) =>\n {\n this.setState( { \n status : FORM_STATUS.ERROR,\n errorMessages : errors,\n errorFields : [] // From server no errors on specific fields\n } );\n });\n }\n\n render()\n {\n return \n \n {\n (this.state.status === FORM_STATUS.SUCCESS) ? :\n \n \n

In order to reset your password, please type in your new password.

\n
\n \n \n \n \n \n \n \n
\n
\n }\n
;\n }\n}\n\nexport default ResetPassword;","import React from 'react';\nimport { Router, Route, Switch, Link } from \"react-router-dom\";\nimport { Grid, Image, Responsive } from 'semantic-ui-react';\nimport { Helmet } from 'react-helmet';\nimport { createBrowserHistory } from 'history'\nimport ReactGA from 'react-ga';\nimport axios from 'axios';\nimport './App.css';\nimport 'semantic-ui-css/semantic.min.css'\nimport NavBar from './pages/parts/navBar';\nimport SocialBar from './pages/parts/socialBar';\nimport ScrollToTop from './components/scrollToTop';\nimport ResponsiveLeaderboardAd from './components/responsiveLeaderboardAd';\nimport Index from './pages';\nimport Move from './pages/move';\nimport Moves from './pages/moves';\nimport About from './pages/about';\nimport Contribute from './pages/contribute';\nimport Contact from './pages/contact';\nimport MoveExplanation from './pages/moveExplanation';\nimport SuggestMove from './pages/suggestMove';\nimport Support from './pages/support';\nimport NotFound from './pages/404';\nimport Logo from './images/logo.png';\nimport Registration from './pages/users/registration';\nimport ConfirmEmail from './pages/users/confirmEmail';\nimport ResetPassword from './pages/users/resetPassword';\nimport UserContext from './contexts/UserContext';\nimport UserService from './services/userService';\n\nconst TITLE = 'Salsa Yo - Source for all Salsa moves';\nconst DESCRIPTION = 'The Source for all of salsa dance moves. Wanted to know how to salsa? Need a remainder of your salsa dance class? this is an encyclopedia of all moves including videos and descriptions for quick learning.';\n\nReactGA.initialize('UA-2185229-9');\n\nconst history = createBrowserHistory();\nhistory.listen(location => {\n const fullLocation = location.pathname + location.search;\n\tReactGA.set({ page: fullLocation })\n\tReactGA.pageview(fullLocation)\n});\n\naxios.defaults.headers.post['Content-Type'] = 'application/json';\nconst authToken = localStorage.getItem('auth_token');\nif (authToken !== null)\n{\n axios.defaults.headers.common['Authorization'] = `Bearer ${authToken}`;\n}\n\nclass App extends React.Component\n{\n state = {\n user: null\n }\n\n componentDidMount()\n {\n axios.interceptors.response.use(null , ( error ) => {\n if ( error.response && error.response.status === 401)\n {\n this.setState({\n user : null\n });\n UserService.logout();\n }\n return Promise.reject(error);\n });\n\n ReactGA.pageview(window.location.pathname + window.location.search);\n this.setUser();\n }\n\n componentDidUpdate(prevProps) {\n this.setUser();\n }\n\n setUser()\n {\n if ( !this.state.user && UserService.isLoggedIn() )\n {\n UserService.GetUser().then(( user ) => {\n this.setState({\n user\n });\n });\n }\n }\n\n render()\n {\n const userContext = { \n user : this.state.user\n }\n\n return (\n \n \n \n
\n \n { TITLE }\n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n \"Salsa\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 Copyright © 2010-{new Date().getFullYear()} Ido Flaishon. All Rights Reserved.\n \n \n \n
\n
\n
\n
\n );\n }\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import 'react-app-polyfill/ie9';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}