-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathmain.js.map
1 lines (1 loc) · 35.7 KB
/
main.js.map
1
{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.material.module.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routing.ts","webpack:///./src/app/contactform/contactform.component.css","webpack:///./src/app/contactform/contactform.component.html","webpack:///./src/app/contactform/contactform.component.ts","webpack:///./src/app/contactlist/contactlist.component.css","webpack:///./src/app/contactlist/contactlist.component.html","webpack:///./src/app/contactlist/contactlist.component.ts","webpack:///./src/app/services/contact.service.ts","webpack:///./src/app/shared/DBOperation.ts","webpack:///./src/app/shared/Global.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":"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","file":"main.js","sourcesContent":["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 = \"./src/$$_lazy_route_resource lazy recursive\";","module.exports = \"\"","module.exports = \"<!--The content below is only a placeholder and can be replaced.-->\\n<mat-toolbar>\\n <span>Contact Application</span>\\n</mat-toolbar>\\n<router-outlet></router-outlet>\\n\"","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.css']\n})\nexport class AppComponent {\n title = 'Contact Application';\n}\n","import { NgModule } from '@angular/core';\r\nimport { MatToolbarModule, MatButtonModule, MatSidenavModule, MatIconModule, MatListModule, MatTableModule } from '@angular/material';\r\nimport { MatPaginatorModule, MatFormFieldModule, MatRadioModule, MatSelectModule, MatInputModule } from '@angular/material';\r\nimport { MatDatepickerModule, MatNativeDateModule, MatOptionModule, MatDialogModule } from '@angular/material';\r\nimport { MatProgressSpinnerModule, MatSnackBarModule } from '@angular/material';\r\n\r\n\r\n@NgModule({\r\n imports: [\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatSidenavModule,\r\n MatIconModule,\r\n MatListModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatOptionModule,\r\n MatDialogModule,\r\n MatProgressSpinnerModule,\r\n MatSnackBarModule\r\n ],\r\n exports: [\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatSidenavModule,\r\n MatIconModule,\r\n MatListModule,\r\n MatTableModule,\r\n MatPaginatorModule,\r\n MatFormFieldModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatInputModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n MatOptionModule,\r\n MatDialogModule,\r\n MatProgressSpinnerModule,\r\n MatSnackBarModule\r\n ],\r\n})\r\nexport class AppMaterialModule { }\r\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AppComponent } from './app.component';\nimport { Routing } from './app.routing';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { HttpClientModule } from '@angular/common/http';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { AppMaterialModule } from './app.material.module';\nimport { ContactformComponent } from './contactform/contactform.component';\nimport { ContactlistComponent } from './contactlist/contactlist.component';\nimport { ContactService } from './services/contact.service';\n\n@NgModule({\n declarations: [\n AppComponent,\n ContactformComponent,\n ContactlistComponent\n ],\n imports: [\n BrowserModule,\n BrowserAnimationsModule, \n HttpClientModule,\n AppMaterialModule,\n FormsModule,\n ReactiveFormsModule,\n LayoutModule,\n Routing\n ],\n providers: [ContactService],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { ModuleWithProviders } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { ContactlistComponent } from './contactlist/contactlist.component';\r\nimport { ContactformComponent } from './contactform/contactform.component';\r\n\r\nconst appRoutes: Routes = [\r\n { path: '', pathMatch: 'full' , component: ContactlistComponent },\r\n { path: 'contactform', component: ContactformComponent }\r\n];\r\n\r\nexport const Routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);\r\n","module.exports = \"\"","module.exports = \"<form (ngSubmit)=\\\"onSubmit(contactFrm)\\\" [formGroup]=\\\"contactFrm\\\">\\n <h2>{{data.modalTitle}}</h2>\\n \\n <div>\\n <mat-form-field appearance=\\\"outline\\\">\\n <mat-label>Name</mat-label>\\n <input matInput placeholder=\\\"Name\\\" formControlName=\\\"name\\\">\\n <!-- <mat-icon matSuffix>sentiment_very_satisfied</mat-icon> -->\\n <!-- <mat-hint>Hint</mat-hint> -->\\n <mat-error *ngIf=\\\"formErrors.name\\\">\\n {{ formErrors.name }}\\n </mat-error>\\n </mat-form-field>\\n </div>\\n <div>\\n <mat-form-field appearance=\\\"outline\\\">\\n <mat-label>Email</mat-label>\\n <input type=\\\"email\\\" matInput placeholder=\\\"email\\\" formControlName=\\\"email\\\">\\n <mat-error *ngIf=\\\"formErrors.email\\\">\\n {{ formErrors.email }}\\n </mat-error>\\n </mat-form-field>\\n \\n </div>\\n <p>\\n <mat-radio-group class=\\\"contact-radio-group\\\" formControlName=\\\"gender\\\" >\\n <mat-radio-button class=\\\"contact-radio-button\\\" *ngFor=\\\"let gndr of genders\\\" [value]=\\\"gndr.id\\\">\\n {{ gndr.name }}\\n </mat-radio-button>\\n </mat-radio-group>\\n <mat-error *ngIf=\\\"formErrors.gender\\\">\\n {{ formErrors.gender }}\\n </mat-error>\\n </p>\\n <div>\\n <mat-form-field appearance=\\\"outline\\\">\\n <input matInput [matDatepicker]=\\\"picker\\\" placeholder=\\\"Choose a birthday\\\" formControlName=\\\"birth\\\">\\n <mat-datepicker-toggle matSuffix [for]=\\\"picker\\\"></mat-datepicker-toggle>\\n <mat-datepicker #picker></mat-datepicker>\\n \\n <mat-error *ngIf=\\\"formErrors.birth \\\">\\n {{ formErrors.birth }}\\n </mat-error>\\n </mat-form-field>\\n </div>\\n <div>\\n <mat-form-field appearance=\\\"outline\\\">\\n <mat-select placeholder=\\\"Select a Technology\\\" formControlName=\\\"techno\\\">\\n <mat-option>-- None --</mat-option>\\n <mat-option *ngFor=\\\"let techno of technologies\\\" [value]=\\\"techno\\\">\\n {{ techno }}\\n </mat-option>\\n </mat-select>\\n <mat-error *ngIf=\\\"formErrors.techno \\\">\\n {{ formErrors.techno }}\\n </mat-error>\\n </mat-form-field>\\n </div>\\n <div>\\n <mat-form-field appearance=\\\"outline\\\">\\n <textarea matInput placeholder=\\\"Message...\\\" formControlName=\\\"message\\\"></textarea>\\n <mat-error *ngIf=\\\"formErrors.message \\\">\\n {{ formErrors.message }}\\n </mat-error>\\n </mat-form-field>\\n </div>\\n <div>\\n \\n <button type=\\\"button\\\" mat-raised-button color=\\\"warn\\\" (click)=\\\"dialogRef.close()\\\">Cancel</button> \\n <button type=\\\"submit\\\" mat-raised-button color=\\\"primary\\\" [disabled]=\\\"contactFrm.invalid\\\">{{data.modalBtnTitle}}</button>\\n </div>\\n \\n </form>\"","import { Component, OnInit, Inject } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { FormBuilder, Validators } from '@angular/forms';\n\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA, AUTOCOMPLETE_PANEL_HEIGHT } from '@angular/material';\n\nimport { ContactlistComponent } from '../contactlist/contactlist.component';\n\nimport { IContact } from '../model/contact';\nimport { ContactService } from '../services/contact.service';\nimport { DBOperation } from '../shared/DBOperation';\nimport { Global } from '../shared/Global';\n\n@Component({\n selector: 'app-contactform',\n templateUrl: './contactform.component.html',\n styleUrls: ['./contactform.component.css']\n})\n\nexport class ContactformComponent implements OnInit {\n msg: string;\n indLoading = false;\n contactFrm: FormGroup;\n // dbops: DBOperation;\n // modalTitle: string;\n // modalBtnTitle: string;\n listFilter: string;\n selectedOption: string;\n // contact: IContact;\n genders = [];\n technologies = [];\n\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\n private fb: FormBuilder,\n private _contactService: ContactService,\n public dialogRef: MatDialogRef<ContactlistComponent>) { }\n\n ngOnInit() {\n // built contact form\n this.contactFrm = this.fb.group({\n id: [''],\n name: ['', [Validators.required, Validators.maxLength(50)]],\n email: ['', [Validators.required, Validators.email]],\n gender: ['', [Validators.required]],\n birth: ['', [Validators.required]],\n techno: ['', [Validators.required]],\n message: ['', [Validators.required]]\n });\n this.genders = Global.genders;\n this.technologies = Global.technologies;\n\n // subscribe on value changed event of form to show validation message\n this.contactFrm.valueChanges.subscribe(data => this.onValueChanged(data));\n this.onValueChanged();\n\n if (this.data.dbops === DBOperation.create) {\n this.contactFrm.reset();\n } else {\n this.contactFrm.setValue(this.data.contact);\n }\n this.SetControlsState(this.data.dbops === DBOperation.delete ? false : true);\n }\n // form value change event\n onValueChanged(data?: any) {\n if (!this.contactFrm) { return; }\n const form = this.contactFrm;\n // tslint:disable-next-line:forin\n for (const field in this.formErrors) {\n // clear previous error message (if any)\n this.formErrors[field] = '';\n const control = form.get(field);\n // setup custom validation message to form\n if (control && control.dirty && !control.valid) {\n const messages = this.validationMessages[field];\n // tslint:disable-next-line:forin\n for (const key in control.errors) {\n this.formErrors[field] += messages[key] + ' ';\n }\n }\n }\n }\n // form errors model\n // tslint:disable-next-line:member-ordering\n formErrors = {\n 'name': '',\n 'email': '',\n 'gender': '',\n 'birth': '',\n 'techno': '',\n 'message': ''\n };\n // custom valdiation messages\n // tslint:disable-next-line:member-ordering\n validationMessages = {\n 'name': {\n 'maxlength': 'Name cannot be more than 50 characters long.',\n 'required': 'Name is required.'\n },\n 'email': {\n 'email': 'Invalid email format.',\n 'required': 'Email is required.'\n },\n 'gender': {\n 'required': 'Gender is required.'\n },\n 'techno': {\n 'required': 'Technology is required.'\n },\n 'birth': {\n 'required': 'Birthday is required.'\n },\n 'message': {\n 'required': 'message is required.'\n }\n\n };\n onSubmit(formData: any) {\n const contactData = this.mapDateData(formData.value);\n switch (this.data.dbops) {\n case DBOperation.create:\n this._contactService.addContact(Global.BASE_USER_ENDPOINT + 'addContact', contactData).subscribe(\n data => {\n // Success\n if (data.message) {\n this.dialogRef.close('success');\n } else {\n this.dialogRef.close('error');\n }\n },\n error => {\n this.dialogRef.close('error');\n }\n );\n break;\n case DBOperation.update:\n this._contactService.updateContact(Global.BASE_USER_ENDPOINT + 'updateContact', contactData.id, contactData).subscribe(\n data => {\n // Success\n if (data.message) {\n this.dialogRef.close('success');\n } else {\n this.dialogRef.close('error');\n }\n },\n error => {\n this.dialogRef.close('error');\n }\n );\n break;\n case DBOperation.delete:\n this._contactService.deleteContact(Global.BASE_USER_ENDPOINT + 'deleteContact', contactData.id).subscribe(\n data => {\n // Success\n if (data.message) {\n this.dialogRef.close('success');\n } else {\n this.dialogRef.close('error');\n }\n },\n error => {\n this.dialogRef.close('error');\n }\n );\n break;\n }\n }\n SetControlsState(isEnable: boolean) {\n isEnable ? this.contactFrm.enable() : this.contactFrm.disable();\n }\n\n mapDateData(contact: IContact): IContact {\n contact.birth = new Date(contact.birth).toISOString();\n return contact;\n }\n}\n","module.exports = \"/* .contactlist{\\r\\n text-align: center;\\r\\n} */\\r\\n\\r\\n.spinner{\\r\\n top: 45%;\\r\\n left: 47%;\\r\\n position: fixed;\\r\\n}\\r\\n\\r\\n.contactlist-container, #paginator {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n min-width: 300px;\\r\\n max-width: 1200px;\\r\\n max-height: 700px;\\r\\n overflow: auto;\\r\\n margin: 0 auto;\\r\\n}\\r\\n\"","module.exports = \"<div class=\\\"spinner\\\" *ngIf=\\\"loadingState; else contactlist\\\">\\n<mat-spinner></mat-spinner>\\n</div>\\n<ng-template class=\\\"contactlist\\\" #contactlist>\\n <h2 style=\\\"text-align: center;\\\">Contact List</h2>\\n <div class=\\\"contactlist-container mat-elevation-z8\\\">\\n <div><button title=\\\"Create\\\" mat-raised-button color=\\\"accent\\\" (click)=\\\"addContact()\\\">Create</button></div>\\n <table mat-table #table [dataSource]=\\\"dataSource\\\">\\n\\n <!-- Id Column -->\\n <!-- <ng-container matColumnDef=\\\"id\\\">\\n <th mat-header-cell *matHeaderCellDef> Id </th>\\n <td mat-cell *matCellDef=\\\"let element\\\"> {{element.id}} </td>\\n </ng-container> -->\\n\\n <!-- Name Column -->\\n <ng-container matColumnDef=\\\"name\\\">\\n <th mat-header-cell *matHeaderCellDef> Name </th>\\n <td mat-cell *matCellDef=\\\"let element\\\"> {{element.name}} </td>\\n </ng-container>\\n\\n <!-- Email Column -->\\n <ng-container matColumnDef=\\\"email\\\">\\n <th mat-header-cell *matHeaderCellDef> Email </th>\\n <td mat-cell *matCellDef=\\\"let element\\\"> {{element.email}} </td>\\n </ng-container>\\n\\n <!-- Gender Column -->\\n <ng-container matColumnDef=\\\"gender\\\">\\n <th mat-header-cell *matHeaderCellDef> Gender </th>\\n <td mat-cell *matCellDef=\\\"let element\\\"> {{getGender(element.gender)}} </td>\\n </ng-container>\\n\\n <!-- Birth Column -->\\n <ng-container matColumnDef=\\\"birth\\\">\\n <th mat-header-cell *matHeaderCellDef> Birthday </th>\\n <td mat-cell *matCellDef=\\\"let element\\\"> {{element.birth | date: 'MM-dd-yyyy' }} </td>\\n </ng-container>\\n\\n <!-- Technology Column -->\\n <ng-container matColumnDef=\\\"techno\\\">\\n <th mat-header-cell *matHeaderCellDef> Technology </th>\\n <td mat-cell *matCellDef=\\\"let element\\\"> {{element.techno}} </td>\\n </ng-container>\\n\\n <!-- Message Column -->\\n <ng-container matColumnDef=\\\"message\\\">\\n <th mat-header-cell *matHeaderCellDef> Message </th>\\n <td mat-cell *matCellDef=\\\"let element\\\"> {{element.message}} </td>\\n </ng-container>\\n\\n <ng-container matColumnDef=\\\"action\\\">\\n <th mat-header-cell *matHeaderCellDef> Action </th>\\n <td mat-cell *matCellDef=\\\"let element\\\">\\n <button title=\\\"Edit\\\" mat-raised-button color=\\\"primary\\\" (click)=\\\"editContact(element.id)\\\">Edit</button>\\n <button title=\\\"Delete\\\" mat-raised-button color=\\\"warn\\\" (click)=\\\"deleteContact(element.id)\\\">Delete</button>\\n </td>\\n </ng-container>\\n\\n <tr mat-header-row *matHeaderRowDef=\\\"displayedColumns\\\"></tr>\\n <tr mat-row *matRowDef=\\\"let row; columns: displayedColumns;\\\"></tr>\\n </table>\\n\\n </div>\\n</ng-template>\\n\"","import { Component, ViewChild, OnInit } from '@angular/core';\nimport { MatTableDataSource, MatSnackBar } from '@angular/material';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\n\nimport { ContactformComponent } from '../contactform/contactform.component';\n\nimport { ContactService } from '../services/contact.service';\nimport { IContact } from '../model/contact';\nimport { DBOperation } from '../shared/DBOperation';\nimport { Global } from '../shared/Global';\n\n@Component({\n selector: 'app-contactlist',\n templateUrl: './contactlist.component.html',\n styleUrls: ['./contactlist.component.css']\n})\nexport class ContactlistComponent implements OnInit {\n contacts: IContact[];\n contact: IContact;\n loadingState: boolean;\n dbops: DBOperation;\n modalTitle: string;\n modalBtnTitle: string;\n\n // set columns that will need to show in listing table\n displayedColumns = ['name', 'email', 'gender', 'birth', 'techno', 'message', 'action'];\n // setting up datasource for material table\n dataSource = new MatTableDataSource<IContact>();\n\n constructor(public snackBar: MatSnackBar, private _contactService: ContactService, private dialog: MatDialog) { }\n\n ngOnInit() {\n this.loadingState = true;\n this.loadContacts();\n }\n openDialog(): void {\n const dialogRef = this.dialog.open(ContactformComponent, {\n width: '500px',\n data: { dbops: this.dbops, modalTitle: this.modalTitle, modalBtnTitle: this.modalBtnTitle, contact: this.contact }\n });\n\n dialogRef.afterClosed().subscribe(result => {\n console.log('The dialog was closed');\n if (result === 'success') {\n this.loadingState = true;\n this.loadContacts();\n switch (this.dbops) {\n case DBOperation.create:\n this.showMessage('Data successfully added.');\n break;\n case DBOperation.update:\n this.showMessage('Data successfully updated.');\n break;\n case DBOperation.delete:\n this.showMessage('Data successfully deleted.');\n break;\n }\n } else if (result === 'error') {\n this.showMessage('There is some issue in saving records, please contact to system administrator!');\n } else {\n // this.showMessage('Please try again, something went wrong');\n }\n });\n }\n\n loadContacts(): void {\n this._contactService.getAllContact(Global.BASE_USER_ENDPOINT + 'getAllContact')\n .subscribe(contacts => {\n this.loadingState = false;\n this.dataSource.data = contacts;\n });\n }\n\n getGender(gender: number): string {\n return Global.genders.filter(ele => ele.id === gender).map(ele => ele.name)[0];\n }\n\n addContact() {\n this.dbops = DBOperation.create;\n this.modalTitle = 'Add New Contact';\n this.modalBtnTitle = 'Add';\n this.openDialog();\n }\n editContact(id: number) {\n this.dbops = DBOperation.update;\n this.modalTitle = 'Edit Contact';\n this.modalBtnTitle = 'Update';\n this.contact = this.dataSource.data.filter(x => x.id === id)[0];\n this.openDialog();\n }\n deleteContact(id: number) {\n this.dbops = DBOperation.delete;\n this.modalTitle = 'Confirm to Delete ?';\n this.modalBtnTitle = 'Delete';\n this.contact = this.dataSource.data.filter(x => x.id === id)[0];\n this.openDialog();\n }\n showMessage(msg: string) {\n this.snackBar.open(msg, '', {\n duration: 3000\n });\n }\n}\n\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams, HttpErrorResponse } from '@angular/common/http';\nimport { HttpHeaders } from '@angular/common/http';\n\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { IContact } from '../model/contact';\n\nconst httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json'\n })\n};\n\n@Injectable()\nexport class ContactService {\n constructor(private http: HttpClient) { }\n\n // get all contact data\n getAllContact(url: string): Observable<IContact[]> {\n return this.http.get<IContact[]>(url)\n .pipe(\n catchError(this.handleError)\n );\n }\n\n // insert new contact details\n addContact(url: string, contact: IContact): Observable<any> {\n return this.http.post(url, JSON.stringify(contact), httpOptions)\n .pipe(\n catchError(this.handleError)\n );\n }\n\n // update contact details\n updateContact(url: string, id: number, contact: IContact): Observable<any> {\n const newurl = `${url}?id=${id}`;\n return this.http.put(newurl, contact, httpOptions)\n .pipe(\n catchError(this.handleError)\n );\n }\n\n // delete contact information\n deleteContact(url: string, id: number): Observable<any> {\n const newurl = `${url}?id=${id}`; // DELETE api/contact?id=42\n return this.http.delete(newurl, httpOptions)\n .pipe(\n catchError(this.handleError)\n );\n }\n\n // custom handler\n private handleError(error: HttpErrorResponse) {\n if (error.error instanceof ErrorEvent) {\n // A client-side or network error occurred. Handle it accordingly.\n console.error('An error occurred:', error.error.message);\n } else {\n // The backend returned an unsuccessful response code.\n // The response body may contain clues as to what went wrong,\n console.error(\n `Backend returned code ${error.status}, ` +\n `body was: ${error.error}`);\n }\n // return an observable with a user-facing error message\n return throwError('Something bad happened; please try again later.');\n }\n}\n","export enum DBOperation {\r\n create = 1,\r\n update = 2,\r\n delete = 3\r\n}\r\n","export class Global {\r\n public static BASE_USER_ENDPOINT = 'api/contact/';\r\n public static genders = [{\r\n name: 'Male',\r\n id: 0,\r\n }, {\r\n name: 'Female',\r\n id: 1\r\n }];\r\n public static technologies = ['JavaScript', 'SharePoint', 'C#'];\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * In development mode, to ignore zone related error stack frames such as\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\n * import the following file, but please comment it out in production mode\n * because it will have performance impact when throw error\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\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\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":""}