{"version":3,"sources":["./src/app/shared/layout/index.ts","./src/app/core/interceptors/index.ts","./src/app/auth/auth-routing.module.ts","./src/app/shared/buttons/index.ts","./src/app/home/home-auth-resolver.service.ts","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/home/home-routing.module.ts","./src/environments/environment.ts","./src/app/core/interceptors/http.token.interceptor.ts","./src/app/core/services/comments.service.ts","./src/app/shared/article-helpers/article-meta.component.ts","./src/app/shared/article-helpers/article-meta.component.html","./src/app/auth/auth.component.ts","./src/app/auth/auth.component.html","./src/app/shared/index.ts","./src/app/shared/shared.module.ts","./src/app/shared/layout/footer.component.ts","./src/app/shared/layout/footer.component.html","./src/app/core/services/jwt.service.ts","./src/app/shared/buttons/favorite-button.component.ts","./src/app/shared/buttons/favorite-button.component.html","./src/app/app.component.ts","./src/app/app.component.html","./src/app/shared/show-authed.directive.ts","./src/app/shared/buttons/follow-button.component.ts","./src/app/shared/buttons/follow-button.component.html","./src/app/auth/no-auth-guard.service.ts","./src/app/core/services/articles.service.ts","./src/app/core/services/profiles.service.ts","./src/app/auth/auth.module.ts","./src/app/app.module.ts","./src/app/home/home.module.ts","./src/app/core/services/index.ts","./src/app/core/services/auth-guard.service.ts","./src/app/shared/article-helpers/index.ts","./src/app/core/index.ts","./src/app/core/services/user.service.ts","./src/app/shared/article-helpers/article-list.component.ts","./src/app/shared/article-helpers/article-list.component.html","./src/app/shared/layout/header.component.ts","./src/app/shared/layout/header.component.html","./src/app/shared/article-helpers/article-preview.component.html","./src/app/shared/article-helpers/article-preview.component.ts","./src/app/core/core.module.ts","./src/app/core/services/api.service.ts","./src/app/core/models/index.ts","./src/app/core/services/tags.service.ts","./src/app/shared/list-errors.component.html","./src/app/shared/list-errors.component.ts","./src/app/app-routing.module.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object"],"names":[],"mappings":"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","file":"main-es2015.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\";"],"sourceRoot":"webpack:///"}