{"version":3,"sources":["store/course/CourseList.js","components/home/home-sub/HeaderComponent.js","components/home/home-sub/FooterComponent.js","components/course/course-sub/CourseListItemComponent.js","components/course/course-sub/CourseListComponent.js","components/course/CourseComponent.js","components/home/home-sub/BodyComponent.js","components/home/HomeComponent.js","App.js","registerServiceWorker.js","index.js","store/configureStore.js"],"names":["initialState","courses","isloading","courseListActionCreators","fetchCourseList","dispatch","getState","a","type","coursesList","reducer","state","action","HeaderComponent","props","className","href","data-toggle","data-target","aria-controls","aria-expanded","aria-label","id","Component","FooterComponent","CourseListItemComponent","style","paddingBottom","textAlign","src","this","course","imageUrl","alt","height","title","description","udemyUrl","target","CourseListComponent","courseList","map","index","key","CourseComponent","connect","bindActionCreators","BodyComponent","paddingTop","HomeComponent","App","isLocalhost","Boolean","window","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","catch","error","baseUrl","document","getElementsByTagName","getAttribute","history","createBrowserHistory","basename","store","reducers","CourseList","middleware","thunk","routerMiddleware","enhancers","rootReducer","combineReducers","routing","routerReducer","createStore","compose","applyMiddleware","configureStore","initialReduxState","rootElement","getElementById","ReactDOM","render","URL","process","origin","addEventListener","fetch","response","status","headers","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.f9f4850a.chunk.js","sourcesContent":["const requestCourseListType = 'Request_Course_List';\r\nconst receiveCourseListType = 'Receive_Course_List';\r\nconst initialState = {courses: [], isloading : false};\r\n\r\nexport const courseListActionCreators = {\r\n fetchCourseList: () => async (dispatch, getState) => {\r\n\r\n dispatch({ type: requestCourseListType });\r\n\r\n const courses = coursesList;\r\n dispatch({ type: receiveCourseListType, courses });\r\n }\r\n};\r\n\r\nexport const reducer = (state, action) => {\r\n\r\n state = state || initialState;\r\n\r\n if (action.type === requestCourseListType) {\r\n return {\r\n ...state,\r\n isloading: true\r\n };\r\n }\r\n\r\n if (action.type === receiveCourseListType) {\r\n return {\r\n ...state,\r\n courses: [...state.courses, ...action.courses],\r\n isloading: false\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n\r\nconst coursesList = [\r\n {\r\n \"title\": \"Node.js and Express REST API with Real World Projects \",\r\n \"description\": \"Learn How To Build Real World, Production Ready REST APIs Using Node. Js, Express, Sequelize, and JavaScript \",\r\n \"imageUrl\": \"node-rest-api.PNG\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/nodejs-and-express-rest-api-with-real-world-projects/?couponCode=CARLEN1\",\r\n \"datePublished\": \"2019-08-06T00:00:00\",\r\n \"id\": 10,\r\n \"createDate\": \"2019-09-10T14:53:16.971693+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:16.9716997+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"ASP.NET CORE and C# REST API With Real World Projects\",\r\n \"description\": \"Learn How To Build Real World, Production Ready REST APIs Using Asp.Net Core and C# \",\r\n \"imageUrl\": \"dotnetcore-rest-api.jpg\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/aspnet-core-and-c-rest-api-with-real-world-projects/?couponCode=CARLEN2\",\r\n \"datePublished\": \"2019-08-06T00:00:00\",\r\n \"id\": 8,\r\n \"createDate\": \"2019-09-10T14:53:16.971693+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:16.9716997+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"Complete React, Redux and GraphQL BootCamp With Real Project \",\r\n \"description\": \"Learn How To Build Real World Applications Using React, Redux, GraphQL, HTML, CSS, SASS, and JavaScript\",\r\n \"imageUrl\": \"react-bootcamp.jpg\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/complete-react-redux-and-graphql-bootcamp-with-real-projects/?couponCode=CARLEN1\",\r\n \"datePublished\": \"2019-08-06T00:00:00\",\r\n \"id\": 9,\r\n \"createDate\": \"2019-09-10T14:53:16.971693+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:16.9716997+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"Fullstack Django and Python Bootcamp With Real Life Projects\",\r\n \"description\": \"Learn How To Build Real World Applications Using Django, Python, HTML, CSS, SASS, Bootstrap, And JavaScript\",\r\n \"imageUrl\": \"fullstack-django-and-python.PNG\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/fullstack-django-and-python-bootcamp-with-real-life-projects/?couponCode=CARLEN4\",\r\n \"datePublished\": \"2019-08-06T00:00:00\",\r\n \"id\": 3,\r\n \"createDate\": \"2019-09-10T14:53:16.971693+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:16.9716997+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"Fullstack Asp.Net Core MVC and C# Bootcamp With Real Project\",\r\n \"description\": \"Learn How To Build Real World Applications Using Asp.Net Core MVC, C#, HTML, CSS, SASS, BootStrap, And JavaScript\",\r\n \"imageUrl\": \"fullstack-aspnet-core-mvc.PNG\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/fullstack-aspnet-core-mvc-and-c-bootcamp-with-real-project/?couponCode=CARLEN4\",\r\n \"datePublished\": \"2019-08-06T00:00:00\",\r\n \"id\": 7,\r\n \"createDate\": \"2019-09-10T14:53:16.971693+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:16.9716997+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"Fullstack Node.js and Express Bootcamp with Real Projects\",\r\n \"description\": \"Learn How to Build Fullstack Web Applications Using Node, Express, Sequelize, Nunjucks, HTML, CSS, Bootstrap, JavaScript\",\r\n \"imageUrl\": \"fullstack-nodejs-and-express.PNG\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/fullstack-nodejs-and-express-bootcamp-with-real-projects/?couponCode=CARLEN4\",\r\n \"datePublished\": \"2019-09-03T00:00:00\",\r\n \"id\": 1,\r\n \"createDate\": \"2019-09-10T14:53:13.2116742+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:13.2166187+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"Fullstack Flask and Python Bootcamp With Real Life Projects\",\r\n \"description\": \"Learn How To Build Real World Applications Using Flask, Python, HTML, CSS, SASS, Bootstrap, And JavaScript\",\r\n \"imageUrl\": \"fullstack-flask-and-python.PNG\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/fullstack-flask-and-python-bootcamp-with-real-life-projects/?couponCode=CARLEN4\",\r\n \"datePublished\": \"2019-06-05T00:00:00\",\r\n \"id\": 2,\r\n \"createDate\": \"2019-09-10T14:53:15.6237303+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:15.6237377+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"Web Application Technology Stack\",\r\n \"description\": \"Understanding Web Application Technologies\",\r\n \"imageUrl\": \"web-application-development-technology-stack.PNG\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/web-application-development-technology-stack/?couponCode=CARLEN3\",\r\n \"datePublished\": \"2019-05-09T00:00:00\",\r\n \"id\": 4,\r\n \"createDate\": \"2019-09-10T14:53:18.3592234+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:18.3592303+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"Learning How To Be A Software Developer\",\r\n \"description\": \"This course series shows how to become a software developer.\",\r\n \"imageUrl\": \"learning-how-to-be-a-software-developer.PNG\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/learning-how-to-be-a-software-developer/?couponCode=CARLEN3\",\r\n \"datePublished\": \"2019-05-09T00:00:00\",\r\n \"id\": 5,\r\n \"createDate\": \"2019-09-10T14:53:19.7894376+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:19.7894454+01:00\",\r\n \"isDeleted\": false\r\n },\r\n {\r\n \"title\": \"Front End Component Architecture (React and Angular)\",\r\n \"description\": \"Understand how to build a large scale, enterprise grade front end application\",\r\n \"imageUrl\": \"front-end-component-architecture-react-and-angular.PNG\",\r\n \"udemyUrl\": \"https://www.udemy.com/course/front-end-component-architecture-react-and-angular/?couponCode=CARLEN3\",\r\n \"datePublished\": \"2019-05-14T00:00:00\",\r\n \"id\": 6,\r\n \"createDate\": \"2019-09-10T14:53:21.3131958+01:00\",\r\n \"modifiedDate\": \"2019-09-10T14:53:21.3132032+01:00\",\r\n \"isDeleted\": false\r\n }\r\n]","import React, { Component } from 'react';\r\n\r\nclass HeaderComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default HeaderComponent;","import React, { Component } from 'react';\r\n\r\nclass FooterComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default FooterComponent","import React, { Component } from 'react';\r\n\r\nclass CourseListItemComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n \r\n render() {\r\n return (\r\n
\r\n
\r\n \"...\"\r\n
\r\n
\r\n
{this.props.course.title}
\r\n

{this.props.course.description}

\r\n
\r\n Get Course\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default CourseListItemComponent;","import React, { Component } from 'react';\r\nimport CourseListItemComponent from './CourseListItemComponent';\r\n\r\nclass CourseListComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n {this.props.courseList.courses.map((course, index) => \r\n \r\n )}\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default CourseListComponent;","import React, { Component } from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport {connect} from 'react-redux';\r\nimport {courseListActionCreators} from '../../store/course/CourseList'\r\nimport CourseListComponent from './course-sub/CourseListComponent'\r\n\r\nclass CourseComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n componentWillMount(){\r\n this.props.fetchCourseList();\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default connect(state => state,\r\n dispatch => bindActionCreators(courseListActionCreators, dispatch)\r\n )(CourseComponent); ","import React, { Component } from 'react';\r\nimport CourseComponent from '../../course/CourseComponent';\r\n\r\nclass BodyComponent extends Component {\r\n constructor(props) {\r\n super(props)\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default BodyComponent;","import React, { Component } from 'react';\r\nimport HeaderComponent from './home-sub/HeaderComponent';\r\nimport FooterComponent from './home-sub/FooterComponent';\r\nimport BodyComponent from './home-sub/BodyComponent';\r\n\r\nclass HomeComponent extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default HomeComponent;","import React, { Component } from 'react'\r\nimport HomeComponent from './components/home/HomeComponent';\r\n\r\nclass App extends Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default App","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match( \r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.min.css';\r\nimport './styles/source/assets/scss/careerlence-app.scss';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'react-router-redux';\r\nimport { createBrowserHistory } from 'history';\r\nimport configureStore from './store/configureStore';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href'); \r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available. \r\nconst initialState = window.initialReduxState;\r\nconst store = configureStore(history, initialState);\r\n\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { routerReducer, routerMiddleware } from 'react-router-redux';\r\nimport * as CourseList from './course/CourseList'\r\n\r\nexport default function configureStore(history, initialState) {\r\n const reducers = {\r\n courseList: CourseList.reducer\r\n };\r\n\r\n const middleware = [\r\n thunk,\r\n routerMiddleware(history)\r\n ];\r\n\r\n // In development, use the browser's Redux dev tools extension if installed\r\n const enhancers = [];\r\n const isDevelopment = process.env.NODE_ENV === 'development';\r\n if (isDevelopment && typeof window !== 'undefined' && window.devToolsExtension) {\r\n enhancers.push(window.devToolsExtension());\r\n }\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n routing: routerReducer\r\n });\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}\r\n"],"sourceRoot":""}