{"version":3,"sources":["webpack:///src/app/shared/layout/index.ts","webpack:///src/app/core/interceptors/index.ts","webpack:///src/app/auth/auth-routing.module.ts","webpack:///src/app/shared/buttons/index.ts","webpack:///src/app/home/home-auth-resolver.service.ts","webpack:///src/app/home/home.component.ts","webpack:///src/app/home/home.component.html","webpack:///src/app/home/home-routing.module.ts","webpack:///src/environments/environment.ts","webpack:///src/app/core/interceptors/http.token.interceptor.ts","webpack:///src/app/core/services/comments.service.ts","webpack:///src/app/shared/article-helpers/article-meta.component.ts","webpack:///src/app/shared/article-helpers/article-meta.component.html","webpack:///src/app/auth/auth.component.ts","webpack:///src/app/auth/auth.component.html","webpack:///src/app/shared/index.ts","webpack:///src/app/shared/shared.module.ts","webpack:///src/app/shared/layout/footer.component.ts","webpack:///src/app/shared/layout/footer.component.html","webpack:///src/app/core/services/jwt.service.ts","webpack:///src/app/shared/buttons/favorite-button.component.ts","webpack:///src/app/shared/buttons/favorite-button.component.html","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/shared/show-authed.directive.ts","webpack:///src/app/shared/buttons/follow-button.component.ts","webpack:///src/app/shared/buttons/follow-button.component.html","webpack:///src/app/auth/no-auth-guard.service.ts","webpack:///src/app/core/services/articles.service.ts","webpack:///src/app/core/services/profiles.service.ts","webpack:///src/app/auth/auth.module.ts","webpack:///src/app/app.module.ts","webpack:///src/app/home/home.module.ts","webpack:///src/app/core/services/index.ts","webpack:///src/app/core/services/auth-guard.service.ts","webpack:///src/app/shared/article-helpers/index.ts","webpack:///src/app/core/index.ts","webpack:///src/app/core/services/user.service.ts","webpack:///src/app/shared/article-helpers/article-list.component.ts","webpack:///src/app/shared/article-helpers/article-list.component.html","webpack:///src/app/shared/layout/header.component.ts","webpack:///src/app/shared/layout/header.component.html","webpack:///src/app/shared/article-helpers/article-preview.component.html","webpack:///src/app/shared/article-helpers/article-preview.component.ts","webpack:///src/app/core/core.module.ts","webpack:///src/app/core/services/api.service.ts","webpack:///src/app/core/models/index.ts","webpack:///src/app/core/services/tags.service.ts","webpack:///src/app/shared/list-errors.component.html","webpack:///src/app/shared/list-errors.component.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object"],"names":["routes","path","component","canActivate","AuthRoutingModule","forChild","HomeAuthResolver","router","userService","route","state","isAuthenticated","pipe","HomeComponent","tagsService","listConfig","type","filters","tags","tagsLoaded","subscribe","authenticated","setListTo","getAll","navigateByUrl","resolve","HomeRoutingModule","environment","production","api_url","HttpTokenInterceptor","jwtService","req","next","headersConfig","token","getToken","request","clone","setHeaders","handle","CommentsService","apiService","slug","payload","post","comment","body","data","get","comments","commentId","articleSlug","ArticleMetaComponent","AuthComponent","fb","authType","title","errors","isSubmitting","authForm","group","required","url","length","addControl","credentials","value","attemptAuth","err","submitForm","SharedModule","FooterComponent","today","Date","now","JwtService","window","localStorage","removeItem","FavoriteButtonComponent","articlesService","toggle","article","favorited","favorite","emit","unfavorite","toggleFavorite","AppComponent","populate","ShowAuthedDirective","templateRef","viewContainer","condition","createEmbeddedView","clear","FollowButtonComponent","profilesService","profile","following","follow","username","unfollow","toggleFollowing","NoAuthGuard","isAuth","ArticlesService","config","params","Object","keys","forEach","key","fromObject","put","ProfilesService","AuthModule","AppModule","HomeModule","AuthGuard","UserService","http","currentUserSubject","currentUser","asObservable","isAuthenticatedSubject","setAuth","user","purgeAuth","saveToken","destroyToken","ArticleListComponent","loading","currentPage","totalPages","query","runQuery","pageNumber","results","limit","offset","articles","Array","from","Math","ceil","articlesCount","val","index","HeaderComponent","userData","ArticlePreviewComponent","onToggleFavorite","CoreModule","provide","useClass","multi","ApiService","error","formatErrors","JSON","stringify","TagsService","ListErrorsComponent","formattedErrors","errorList","map","loadChildren","then","m","SettingsModule","ProfileModule","EditorModule","ArticleModule","AppRoutingModule","forRoot","preloadingStrategy","relativeLinkResolution","bootstrapPromise","bootstrapModule","success","console","log","webpackEmptyAsyncContext","Promise","e","Error","code","module","exports","id"],"mappings":"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","file":"main-es5.js","sourcesContent":["export * from './footer.component';\nexport * from './header.component';\n","export * from './http.token.interceptor';\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { AuthComponent } from './auth.component';\nimport { NoAuthGuard } from './no-auth-guard.service';\n\nconst routes: Routes = [\n {\n path: 'login',\n component: AuthComponent,\n canActivate: [NoAuthGuard]\n },\n {\n path: 'register',\n component: AuthComponent,\n canActivate: [NoAuthGuard]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AuthRoutingModule {}\n","export * from './favorite-button.component';\nexport * from './follow-button.component';\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { UserService } from '../core';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class HomeAuthResolver implements Resolve {\n constructor(\n private router: Router,\n private userService: UserService\n ) {}\n\n resolve(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable {\n\n return this.userService.isAuthenticated.pipe(take(1));\n\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { ArticleListConfig, TagsService, UserService } from '../core';\n\n@Component({\n selector: 'app-home-page',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\nexport class HomeComponent implements OnInit {\n constructor(\n private router: Router,\n private tagsService: TagsService,\n private userService: UserService\n ) {}\n\n isAuthenticated: boolean;\n listConfig: ArticleListConfig = {\n type: 'all',\n filters: {}\n };\n tags: Array = [];\n tagsLoaded = false;\n\n ngOnInit() {\n this.userService.isAuthenticated.subscribe(\n (authenticated) => {\n this.isAuthenticated = authenticated;\n\n // set the article list accordingly\n if (authenticated) {\n this.setListTo('feed');\n } else {\n this.setListTo('all');\n }\n }\n );\n\n this.tagsService.getAll()\n .subscribe(tags => {\n this.tags = tags;\n this.tagsLoaded = true;\n });\n }\n\n setListTo(type: string = '', filters: Object = {}) {\n // If feed is requested but user is not authenticated, redirect to login\n if (type === 'feed' && !this.isAuthenticated) {\n this.router.navigateByUrl('/login');\n return;\n }\n\n // Otherwise, set the list object\n this.listConfig = {type: type, filters: filters};\n }\n}\n","
\n\n
\n
\n

conduit

\n

A place to share your Angular knowledge.

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

Popular Tags

\n\n \n\n
\n Loading tags...\n
\n\n
0\">\n No tags are here... yet.\n
\n
\n
\n\n
\n
\n
\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { HomeComponent } from './home.component';\nimport { HomeAuthResolver } from './home-auth-resolver.service';\n\nconst routes: Routes = [\n {\n path: '',\n component: HomeComponent,\n resolve: {\n isAuthenticated: HomeAuthResolver\n }\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class HomeRoutingModule {}\n","// The file contents for the current environment will overwrite these during build.\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\n// The list of which env maps to which file can be found in `angular-cli.json`.\n\nexport const environment = {\n production: false,\n api_url: 'https://conduit.productionready.io/api'\n};\n","import { Injectable, Injector } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport { JwtService } from '../services';\n\n@Injectable()\nexport class HttpTokenInterceptor implements HttpInterceptor {\n constructor(private jwtService: JwtService) {}\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const headersConfig = {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json'\n };\n\n const token = this.jwtService.getToken();\n\n if (token) {\n headersConfig['Authorization'] = `Token ${token}`;\n }\n\n const request = req.clone({ setHeaders: headersConfig });\n return next.handle(request);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { ApiService } from './api.service';\nimport { Comment } from '../models';\nimport { map } from 'rxjs/operators';\n\n\n@Injectable()\nexport class CommentsService {\n constructor (\n private apiService: ApiService\n ) {}\n\n add(slug, payload): Observable {\n return this.apiService\n .post(\n `/articles/${slug}/comments`,\n { comment: { body: payload } }\n ).pipe(map(data => data.comment));\n }\n\n getAll(slug): Observable {\n return this.apiService.get(`/articles/${slug}/comments`)\n .pipe(map(data => data.comments));\n }\n\n destroy(commentId, articleSlug) {\n return this.apiService\n .delete(`/articles/${articleSlug}/comments/${commentId}`);\n }\n\n}\n","import { Component, Input } from '@angular/core';\n\nimport { Article } from '../../core';\n\n@Component({\n selector: 'app-article-meta',\n templateUrl: './article-meta.component.html'\n})\nexport class ArticleMetaComponent {\n @Input() article: Article;\n}\n","
\n \n \n \n\n
\n \n {{ article.author.username }}\n \n \n {{ article.createdAt | date: 'longDate' }}\n \n
\n\n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { FormBuilder, FormGroup, FormControl, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\n\nimport { Errors, UserService } from '../core';\n\n@Component({\n selector: 'app-auth-page',\n templateUrl: './auth.component.html'\n})\nexport class AuthComponent implements OnInit {\n authType: String = '';\n title: String = '';\n errors: Errors = {errors: {}};\n isSubmitting = false;\n authForm: FormGroup;\n\n constructor(\n private route: ActivatedRoute,\n private router: Router,\n private userService: UserService,\n private fb: FormBuilder\n ) {\n // use FormBuilder to create a form group\n this.authForm = this.fb.group({\n 'email': ['', Validators.required],\n 'password': ['', Validators.required]\n });\n }\n\n ngOnInit() {\n this.route.url.subscribe(data => {\n // Get the last piece of the URL (it's either 'login' or 'register')\n this.authType = data[data.length - 1].path;\n // Set a title for the page accordingly\n this.title = (this.authType === 'login') ? 'Sign in' : 'Sign up';\n // add form control for username if this is the register page\n if (this.authType === 'register') {\n this.authForm.addControl('username', new FormControl());\n }\n });\n }\n\n submitForm() {\n this.isSubmitting = true;\n this.errors = {errors: {}};\n\n const credentials = this.authForm.value;\n this.userService\n .attemptAuth(this.authType, credentials)\n .subscribe(\n data => this.router.navigateByUrl('/'),\n err => {\n this.errors = err;\n this.isSubmitting = false;\n }\n );\n }\n}\n","
\n
\n
\n\n
\n

{{ title }}

\n

\n Have an account?\n Need an account?\n

\n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n
\n
\n
\n\n
\n
\n
\n","export * from './article-helpers';\nexport * from './buttons';\nexport * from './layout';\nexport * from './list-errors.component';\nexport * from './shared.module';\nexport * from './show-authed.directive';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\nimport { RouterModule } from '@angular/router';\n\nimport { ArticleListComponent, ArticleMetaComponent, ArticlePreviewComponent } from './article-helpers';\nimport { FavoriteButtonComponent, FollowButtonComponent } from './buttons';\nimport { ListErrorsComponent } from './list-errors.component';\nimport { ShowAuthedDirective } from './show-authed.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n RouterModule\n ],\n declarations: [\n ArticleListComponent,\n ArticleMetaComponent,\n ArticlePreviewComponent,\n FavoriteButtonComponent,\n FollowButtonComponent,\n ListErrorsComponent,\n ShowAuthedDirective\n ],\n exports: [\n ArticleListComponent,\n ArticleMetaComponent,\n ArticlePreviewComponent,\n CommonModule,\n FavoriteButtonComponent,\n FollowButtonComponent,\n FormsModule,\n ReactiveFormsModule,\n HttpClientModule,\n ListErrorsComponent,\n RouterModule,\n ShowAuthedDirective\n ]\n})\nexport class SharedModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-layout-footer',\n templateUrl: './footer.component.html'\n})\nexport class FooterComponent {\n today: number = Date.now();\n}\n","
\n
\n conduit\n \n © {{ today | date: 'yyyy' }}.\n An interactive learning project from Thinkster.\n Code licensed under MIT.\n \n
\n
\n","import { Injectable } from '@angular/core';\n\n\n@Injectable()\nexport class JwtService {\n\n getToken(): String {\n return window.localStorage['jwtToken'];\n }\n\n saveToken(token: String) {\n window.localStorage['jwtToken'] = token;\n }\n\n destroyToken() {\n window.localStorage.removeItem('jwtToken');\n }\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Article, ArticlesService, UserService } from '../../core';\nimport { of } from 'rxjs';\nimport { concatMap , tap } from 'rxjs/operators';\n\n@Component({\n selector: 'app-favorite-button',\n templateUrl: './favorite-button.component.html'\n})\nexport class FavoriteButtonComponent {\n constructor(\n private articlesService: ArticlesService,\n private router: Router,\n private userService: UserService\n ) {}\n\n @Input() article: Article;\n @Output() toggle = new EventEmitter();\n isSubmitting = false;\n\n toggleFavorite() {\n this.isSubmitting = true;\n\n this.userService.isAuthenticated.pipe(concatMap(\n (authenticated) => {\n // Not authenticated? Push to login screen\n if (!authenticated) {\n this.router.navigateByUrl('/login');\n return of(null);\n }\n\n // Favorite the article if it isn't favorited yet\n if (!this.article.favorited) {\n return this.articlesService.favorite(this.article.slug)\n .pipe(tap(\n data => {\n this.isSubmitting = false;\n this.toggle.emit(true);\n },\n err => this.isSubmitting = false\n ));\n\n // Otherwise, unfavorite the article\n } else {\n return this.articlesService.unfavorite(this.article.slug)\n .pipe(tap(\n data => {\n this.isSubmitting = false;\n this.toggle.emit(false);\n },\n err => this.isSubmitting = false\n ));\n }\n\n }\n )).subscribe();\n }\n}\n","\n","import { Component, OnInit } from \"@angular/core\";\n\nimport { UserService } from \"./core\";\n\n@Component({\n selector: \"app-root\",\n templateUrl: \"./app.component.html\",\n})\nexport class AppComponent implements OnInit {\n constructor(private userService: UserService) {}\n\n ngOnInit() {\n this.userService.populate();\n }\n}\n","\n\n\n\n\n","import {\n Directive,\n Input,\n OnInit,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\n\nimport { UserService } from '../core';\n\n@Directive({ selector: '[appShowAuthed]' })\nexport class ShowAuthedDirective implements OnInit {\n constructor(\n private templateRef: TemplateRef,\n private userService: UserService,\n private viewContainer: ViewContainerRef\n ) {}\n\n condition: boolean;\n\n ngOnInit() {\n this.userService.isAuthenticated.subscribe(\n (isAuthenticated) => {\n if (isAuthenticated && this.condition || !isAuthenticated && !this.condition) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n } else {\n this.viewContainer.clear();\n }\n }\n );\n }\n\n @Input() set appShowAuthed(condition: boolean) {\n this.condition = condition;\n }\n\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { Profile, ProfilesService, UserService } from '../../core';\nimport { concatMap , tap } from 'rxjs/operators';\nimport { of } from 'rxjs';\n\n@Component({\n selector: 'app-follow-button',\n templateUrl: './follow-button.component.html'\n})\nexport class FollowButtonComponent {\n constructor(\n private profilesService: ProfilesService,\n private router: Router,\n private userService: UserService\n ) {}\n\n @Input() profile: Profile;\n @Output() toggle = new EventEmitter();\n isSubmitting = false;\n\n toggleFollowing() {\n this.isSubmitting = true;\n // TODO: remove nested subscribes, use mergeMap\n\n this.userService.isAuthenticated.pipe(concatMap(\n (authenticated) => {\n // Not authenticated? Push to login screen\n if (!authenticated) {\n this.router.navigateByUrl('/login');\n return of(null);\n }\n\n // Follow this profile if we aren't already\n if (!this.profile.following) {\n return this.profilesService.follow(this.profile.username)\n .pipe(tap(\n data => {\n this.isSubmitting = false;\n this.toggle.emit(true);\n },\n err => this.isSubmitting = false\n ));\n\n // Otherwise, unfollow this profile\n } else {\n return this.profilesService.unfollow(this.profile.username)\n .pipe(tap(\n data => {\n this.isSubmitting = false;\n this.toggle.emit(false);\n },\n err => this.isSubmitting = false\n ));\n }\n }\n )).subscribe();\n }\n}\n","\n \n  \n {{ profile.following ? 'Unfollow' : 'Follow' }} {{ profile.username }}\n\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { UserService } from '../core';\nimport { map , take } from 'rxjs/operators';\n\n@Injectable()\nexport class NoAuthGuard implements CanActivate {\n constructor(\n private router: Router,\n private userService: UserService\n ) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable {\n\n return this.userService.isAuthenticated.pipe(take(1), map(isAuth => !isAuth));\n\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport { ApiService } from './api.service';\nimport { Article, ArticleListConfig } from '../models';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class ArticlesService {\n constructor (\n private apiService: ApiService\n ) {}\n\n query(config: ArticleListConfig): Observable<{articles: Article[], articlesCount: number}> {\n // Convert any filters over to Angular's URLSearchParams\n const params = {};\n\n Object.keys(config.filters)\n .forEach((key) => {\n params[key] = config.filters[key];\n });\n\n return this.apiService\n .get(\n '/articles' + ((config.type === 'feed') ? '/feed' : ''),\n new HttpParams({ fromObject: params })\n );\n }\n\n get(slug): Observable
{\n return this.apiService.get('/articles/' + slug)\n .pipe(map(data => data.article));\n }\n\n destroy(slug) {\n return this.apiService.delete('/articles/' + slug);\n }\n\n save(article): Observable
{\n // If we're updating an existing article\n if (article.slug) {\n return this.apiService.put('/articles/' + article.slug, {article: article})\n .pipe(map(data => data.article));\n\n // Otherwise, create a new article\n } else {\n return this.apiService.post('/articles/', {article: article})\n .pipe(map(data => data.article));\n }\n }\n\n favorite(slug): Observable
{\n return this.apiService.post('/articles/' + slug + '/favorite');\n }\n\n unfavorite(slug): Observable
{\n return this.apiService.delete('/articles/' + slug + '/favorite');\n }\n\n\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { ApiService } from './api.service';\nimport { Profile } from '../models';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class ProfilesService {\n constructor (\n private apiService: ApiService\n ) {}\n\n get(username: string): Observable {\n return this.apiService.get('/profiles/' + username)\n .pipe(map((data: {profile: Profile}) => data.profile));\n }\n\n follow(username: string): Observable {\n return this.apiService.post('/profiles/' + username + '/follow');\n }\n\n unfollow(username: string): Observable {\n return this.apiService.delete('/profiles/' + username + '/follow');\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { AuthComponent } from './auth.component';\nimport { NoAuthGuard } from './no-auth-guard.service';\nimport { SharedModule } from '../shared';\nimport { AuthRoutingModule } from './auth-routing.module';\n\n@NgModule({\n imports: [\n SharedModule,\n AuthRoutingModule\n ],\n declarations: [\n AuthComponent\n ],\n providers: [\n NoAuthGuard\n ]\n})\nexport class AuthModule {}\n","import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\n\nimport { AppComponent } from './app.component';\nimport { AuthModule } from './auth/auth.module';\nimport { HomeModule } from './home/home.module';\nimport {\n FooterComponent,\n HeaderComponent,\n SharedModule\n} from './shared';\nimport { AppRoutingModule } from './app-routing.module';\nimport { CoreModule } from './core/core.module';\n\n@NgModule({\n declarations: [AppComponent, FooterComponent, HeaderComponent],\n imports: [\n BrowserModule,\n CoreModule,\n SharedModule,\n HomeModule,\n AuthModule,\n AppRoutingModule\n ],\n providers: [],\n bootstrap: [AppComponent]\n})\nexport class AppModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { HomeComponent } from './home.component';\nimport { HomeAuthResolver } from './home-auth-resolver.service';\nimport { SharedModule } from '../shared';\nimport { HomeRoutingModule } from './home-routing.module';\n\n@NgModule({\n imports: [\n SharedModule,\n HomeRoutingModule\n ],\n declarations: [\n HomeComponent\n ],\n providers: [\n HomeAuthResolver\n ]\n})\nexport class HomeModule {}\n","export * from './api.service';\nexport * from './articles.service';\nexport * from './auth-guard.service';\nexport * from './comments.service';\nexport * from './jwt.service';\nexport * from './profiles.service';\nexport * from './tags.service';\nexport * from './user.service';\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nimport { UserService } from './user.service';\nimport { take } from 'rxjs/operators';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(\n private router: Router,\n private userService: UserService\n ) {}\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable {\n\n return this.userService.isAuthenticated.pipe(take(1));\n\n }\n}\n","export * from './article-list.component';\nexport * from './article-meta.component';\nexport * from './article-preview.component';\n","export * from './core.module';\nexport * from './services';\nexport * from './models';\nexport * from './interceptors';\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable , BehaviorSubject , ReplaySubject } from 'rxjs';\n\nimport { ApiService } from './api.service';\nimport { JwtService } from './jwt.service';\nimport { User } from '../models';\nimport { map , distinctUntilChanged } from 'rxjs/operators';\n\n\n@Injectable()\nexport class UserService {\n private currentUserSubject = new BehaviorSubject({} as User);\n public currentUser = this.currentUserSubject.asObservable().pipe(distinctUntilChanged());\n\n private isAuthenticatedSubject = new ReplaySubject(1);\n public isAuthenticated = this.isAuthenticatedSubject.asObservable();\n\n constructor (\n private apiService: ApiService,\n private http: HttpClient,\n private jwtService: JwtService\n ) {}\n\n // Verify JWT in localstorage with server & load user's info.\n // This runs once on application startup.\n populate() {\n // If JWT detected, attempt to get & store user's info\n if (this.jwtService.getToken()) {\n this.apiService.get('/user')\n .subscribe(\n data => this.setAuth(data.user),\n err => this.purgeAuth()\n );\n } else {\n // Remove any potential remnants of previous auth states\n this.purgeAuth();\n }\n }\n\n setAuth(user: User) {\n // Save JWT sent from server in localstorage\n this.jwtService.saveToken(user.token);\n // Set current user data into observable\n this.currentUserSubject.next(user);\n // Set isAuthenticated to true\n this.isAuthenticatedSubject.next(true);\n }\n\n purgeAuth() {\n // Remove JWT from localstorage\n this.jwtService.destroyToken();\n // Set current user to an empty object\n this.currentUserSubject.next({} as User);\n // Set auth status to false\n this.isAuthenticatedSubject.next(false);\n }\n\n attemptAuth(type, credentials): Observable {\n const route = (type === 'login') ? '/login' : '';\n return this.apiService.post('/users' + route, {user: credentials})\n .pipe(map(\n data => {\n this.setAuth(data.user);\n return data;\n }\n ));\n }\n\n getCurrentUser(): User {\n return this.currentUserSubject.value;\n }\n\n // Update the user on the server (email, pass, etc)\n update(user): Observable {\n return this.apiService\n .put('/user', { user })\n .pipe(map(data => {\n // Update the currentUser observable\n this.currentUserSubject.next(data.user);\n return data.user;\n }));\n }\n\n}\n","import { Component, Input } from '@angular/core';\n\nimport { Article, ArticleListConfig, ArticlesService } from '../../core';\n@Component({\n selector: 'app-article-list',\n styleUrls: ['article-list.component.css'],\n templateUrl: './article-list.component.html'\n})\nexport class ArticleListComponent {\n constructor (\n private articlesService: ArticlesService\n ) {}\n\n @Input() limit: number;\n @Input()\n set config(config: ArticleListConfig) {\n if (config) {\n this.query = config;\n this.currentPage = 1;\n this.runQuery();\n }\n }\n\n query: ArticleListConfig;\n results: Article[];\n loading = false;\n currentPage = 1;\n totalPages: Array = [1];\n\n setPageTo(pageNumber) {\n this.currentPage = pageNumber;\n this.runQuery();\n }\n\n runQuery() {\n this.loading = true;\n this.results = [];\n\n // Create limit and offset filter (if necessary)\n if (this.limit) {\n this.query.filters.limit = this.limit;\n this.query.filters.offset = (this.limit * (this.currentPage - 1));\n }\n\n this.articlesService.query(this.query)\n .subscribe(data => {\n this.loading = false;\n this.results = data.articles;\n\n // Used from http://www.jstips.co/en/create-range-0...n-easily-using-one-line/\n this.totalPages = Array.from(new Array(Math.ceil(data.articlesCount / this.limit)), (val, index) => index + 1);\n });\n }\n}\n","\n\n\n
\n Loading articles...\n
\n\n
\n No articles are here... yet.\n
\n\n\n","import { Component, OnInit } from '@angular/core';\n\nimport { User, UserService } from '../../core';\n\n@Component({\n selector: 'app-layout-header',\n templateUrl: './header.component.html'\n})\nexport class HeaderComponent implements OnInit {\n constructor(\n private userService: UserService\n ) {}\n\n currentUser: User;\n\n ngOnInit() {\n this.userService.currentUser.subscribe(\n (userData) => {\n this.currentUser = userData;\n }\n );\n }\n}\n","\n","\n","import { Component, Input } from '@angular/core';\n\nimport { Article } from '../../core';\n\n@Component({\n selector: 'app-article-preview',\n templateUrl: './article-preview.component.html'\n})\nexport class ArticlePreviewComponent {\n @Input() article: Article;\n\n onToggleFavorite(favorited: boolean) {\n this.article['favorited'] = favorited;\n\n if (favorited) {\n this.article['favoritesCount']++;\n } else {\n this.article['favoritesCount']--;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { HttpTokenInterceptor } from './interceptors/http.token.interceptor';\n\nimport {\n ApiService,\n ArticlesService,\n AuthGuard,\n CommentsService,\n JwtService,\n ProfilesService,\n TagsService,\n UserService\n} from './services';\n\n@NgModule({\n imports: [\n CommonModule\n ],\n providers: [\n { provide: HTTP_INTERCEPTORS, useClass: HttpTokenInterceptor, multi: true },\n ApiService,\n ArticlesService,\n AuthGuard,\n CommentsService,\n JwtService,\n ProfilesService,\n TagsService,\n UserService\n ],\n declarations: []\n})\nexport class CoreModule { }\n","import { Injectable } from '@angular/core';\nimport { environment } from '../../../environments/environment';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable , throwError } from 'rxjs';\n\nimport { JwtService } from './jwt.service';\nimport { catchError } from 'rxjs/operators';\n\n@Injectable()\nexport class ApiService {\n constructor(\n private http: HttpClient,\n private jwtService: JwtService\n ) {}\n\n private formatErrors(error: any) {\n return throwError(error.error);\n }\n\n get(path: string, params: HttpParams = new HttpParams()): Observable {\n return this.http.get(`${environment.api_url}${path}`, { params })\n .pipe(catchError(this.formatErrors));\n }\n\n put(path: string, body: Object = {}): Observable {\n return this.http.put(\n `${environment.api_url}${path}`,\n JSON.stringify(body)\n ).pipe(catchError(this.formatErrors));\n }\n\n post(path: string, body: Object = {}): Observable {\n return this.http.post(\n `${environment.api_url}${path}`,\n JSON.stringify(body)\n ).pipe(catchError(this.formatErrors));\n }\n\n delete(path): Observable {\n return this.http.delete(\n `${environment.api_url}${path}`\n ).pipe(catchError(this.formatErrors));\n }\n}\n","export * from './article.model';\nexport * from './article-list-config.model';\nexport * from './comment.model';\nexport * from './errors.model';\nexport * from './profile.model';\nexport * from './user.model';\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { ApiService } from './api.service';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class TagsService {\n constructor (\n private apiService: ApiService\n ) {}\n\n getAll(): Observable<[string]> {\n return this.apiService.get('/tags')\n .pipe(map(data => data.tags));\n }\n\n}\n","
    \n
  • \n {{ error }}\n
  • \n
\n","import { Component, Input } from '@angular/core';\n\nimport { Errors } from '../core';\n\n@Component({\n selector: 'app-list-errors',\n templateUrl: './list-errors.component.html'\n})\nexport class ListErrorsComponent {\n formattedErrors: Array = [];\n\n @Input()\n set errors(errorList: Errors) {\n this.formattedErrors = Object.keys(errorList.errors || {})\n .map(key => `${key} ${errorList.errors[key]}`);\n }\n\n get errorList() { return this.formattedErrors; }\n\n\n}\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, PreloadAllModules } from '@angular/router';\n\nconst routes: Routes = [\n {\n path: 'settings',\n loadChildren: () => import('./settings/settings.module').then(m => m.SettingsModule)\n },\n {\n path: 'profile',\n loadChildren: () => import('./profile/profile.module').then(m => m.ProfileModule)\n },\n {\n path: 'editor',\n loadChildren: () => import('./editor/editor.module').then(m => m.EditorModule)\n },\n {\n path: 'article',\n loadChildren: () => import('./article/article.module').then(m => m.ArticleModule)\n }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, {\n // preload all modules; optionally we could\n // implement a custom preloading strategy for just some\n // of the modules (PRs welcome 😉)\n preloadingStrategy: PreloadAllModules,\n relativeLinkResolution: 'legacy'\n})],\n exports: [RouterModule]\n})\nexport class AppRoutingModule {}\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nconst bootstrapPromise = platformBrowserDynamic().bootstrapModule(AppModule);\n\n// Logging bootstrap information\nbootstrapPromise.then(success => console.log(`Bootstrap success`))\n .catch(err => console.error(err));\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";"]}