diff --git a/angular.json b/angular.json index f95d71c..7e3f300 100644 --- a/angular.json +++ b/angular.json @@ -23,6 +23,9 @@ "src/assets" ], "styles": [ + { + "input": "node_modules/@angular/material/prebuilt-themes/indigo-pink.css" + }, "src/styles.css" ], "scripts": [] @@ -72,6 +75,9 @@ "tsConfig": "src/tsconfig.spec.json", "karmaConfig": "src/karma.conf.js", "styles": [ + { + "input": "node_modules/@angular/material/prebuilt-themes/indigo-pink.css" + }, "styles.css" ], "scripts": [], diff --git a/package-lock.json b/package-lock.json index f9ff1ce..4e85108 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dev": true, "requires": { "@angular-devkit/core": "0.6.8", - "rxjs": "6.2.2" + "rxjs": "6.3.2" } }, "@angular-devkit/build-angular": { @@ -54,7 +54,7 @@ "postcss-url": "7.3.2", "raw-loader": "0.5.1", "resolve": "1.8.1", - "rxjs": "6.2.2", + "rxjs": "6.3.2", "sass-loader": "7.1.0", "silent-error": "1.1.0", "source-map-support": "0.5.9", @@ -101,18 +101,32 @@ "requires": { "ajv": "6.4.0", "chokidar": "2.0.4", - "rxjs": "6.2.2", + "rxjs": "6.3.2", "source-map": "0.5.7" } }, "@angular-devkit/schematics": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.6.8.tgz", - "integrity": "sha512-R4YqAUdo62wtrhX/5HSRGSKXNTWqfQb66ZE6m8jj6GEJNFKdNXMdxOchxr07LCiKTxfh1w6G3nGzxIsu/+D4KA==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.7.5.tgz", + "integrity": "sha512-E7HkQeJawUskf2gPnogMc+cTdjJ2Iv3QEZOgprh/ExEmBYByWkGDRX5fQOuy8wME8VZqUBvQACZaVkEredn5EA==", "dev": true, "requires": { - "@angular-devkit/core": "0.6.8", - "rxjs": "6.2.2" + "@angular-devkit/core": "0.7.5", + "rxjs": "6.3.2" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.5.tgz", + "integrity": "sha512-r99BZvvuNAqSRm05jXfx0sb3Ip0zvHPtAM6NReXzWPoqaVFpjVUdj/CKA+9HWG/Zt9meG9pEQt/HKK8UXaZDVA==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.3.2", + "source-map": "0.5.7" + } + } } }, "@angular/animations": { @@ -123,26 +137,54 @@ "tslib": "1.9.3" } }, + "@angular/cdk": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-6.4.1.tgz", + "integrity": "sha512-d06pqvYiibYwNFGGZFMGjXyfS2DwxLC4LOoiYGibkVpoX669Reb1+OhUX2icqCRtEpw9kOKHpcOz4M6du0eejQ==", + "requires": { + "tslib": "1.9.3" + } + }, "@angular/cli": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-6.0.8.tgz", - "integrity": "sha512-DhH1Zq5Yonthw6zh6W07fhf+9XrAZbD1fcQ0MrmbxlieCfLlTAdBqyK2LavFCKwSZkUMLF6UHM3+jiNRVZSSIg==", + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-6.1.5.tgz", + "integrity": "sha512-QNVUSC8mPdiaxubneqNZISy+wec3gwbKoXjcaQ9/45baOnp662j2iJXwiMh6Atn0YUM4u1iUsz1uHyARMtgZmw==", "dev": true, "requires": { - "@angular-devkit/architect": "0.6.8", - "@angular-devkit/core": "0.6.8", - "@angular-devkit/schematics": "0.6.8", - "@schematics/angular": "0.6.8", - "@schematics/update": "0.6.8", + "@angular-devkit/architect": "0.7.5", + "@angular-devkit/core": "0.7.5", + "@angular-devkit/schematics": "0.7.5", + "@schematics/angular": "0.7.5", + "@schematics/update": "0.7.5", "opn": "5.3.0", - "resolve": "1.8.1", - "rxjs": "6.2.2", + "rxjs": "6.3.2", "semver": "5.5.1", - "silent-error": "1.1.0", "symbol-observable": "1.2.0", "yargs-parser": "10.1.0" }, "dependencies": { + "@angular-devkit/architect": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.7.5.tgz", + "integrity": "sha512-zwCpGdx3JDE+Y+LiWh9ErRX+fpFPTRHtEd2PDJmfQsdlIWfjxSR5U9vi3+bSRW2n6IFiH2GCYMS31R64rfMwbg==", + "dev": true, + "requires": { + "@angular-devkit/core": "0.7.5", + "rxjs": "6.3.2" + } + }, + "@angular-devkit/core": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.5.tgz", + "integrity": "sha512-r99BZvvuNAqSRm05jXfx0sb3Ip0zvHPtAM6NReXzWPoqaVFpjVUdj/CKA+9HWG/Zt9meG9pEQt/HKK8UXaZDVA==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.3.2", + "source-map": "0.5.7" + } + }, "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", @@ -329,6 +371,14 @@ "tslib": "1.9.3" } }, + "@angular/flex-layout": { + "version": "6.0.0-beta.18", + "resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-6.0.0-beta.18.tgz", + "integrity": "sha512-1Alv3YSIZYp0CTUIESIaSQLoSVyLzuNKPa5bGM/RzOmeSrndm5plVgI9wopGfJUDiwM18R97rq/4XjDvNT/+ig==", + "requires": { + "tslib": "1.9.3" + } + }, "@angular/forms": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.1.4.tgz", @@ -351,6 +401,23 @@ "integrity": "sha512-kvnAphJ7VrKJpm1gN3sFjGp/5gQxu/FAw03yD1f1z+C+aHrNKoxaS9pp9NdOIT/DWlxR/BcEDF4gzMNMTJ9/wA==", "dev": true }, + "@angular/material": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-6.4.1.tgz", + "integrity": "sha512-07HcMv2JNs2c88qZLg0M90dQ7K8LAF4qR9qhdxQ+FPkAymahvq3rKxUWfRifjkHkh6QpG0+hLdNwnAa514Z08g==", + "requires": { + "parse5": "5.1.0", + "tslib": "1.9.3" + }, + "dependencies": { + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.0.tgz", + "integrity": "sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==", + "optional": true + } + } + }, "@angular/platform-browser": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.1.4.tgz", @@ -387,28 +454,56 @@ } }, "@schematics/angular": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.6.8.tgz", - "integrity": "sha512-9kRphqTYG5Df/I8fvnT1zMsw0YNDPO9tl18tQZXj4am4raT7l9UCr+WkwJdlBoA5pwG6baWE9sL0iGWV/bzF/g==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.7.5.tgz", + "integrity": "sha512-NrtvFwHCoWon8KInsvA1jdPu4pVJGa8GAWM/jqnE7HpwPwM7hMML08lV0P8r3NX5t2/i0CKvfp4AAEr5MXorEQ==", "dev": true, "requires": { - "@angular-devkit/core": "0.6.8", - "@angular-devkit/schematics": "0.6.8", - "typescript": "2.7.2" + "@angular-devkit/core": "0.7.5", + "@angular-devkit/schematics": "0.7.5", + "typescript": "2.9.2" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.5.tgz", + "integrity": "sha512-r99BZvvuNAqSRm05jXfx0sb3Ip0zvHPtAM6NReXzWPoqaVFpjVUdj/CKA+9HWG/Zt9meG9pEQt/HKK8UXaZDVA==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.3.2", + "source-map": "0.5.7" + } + } } }, "@schematics/update": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.6.8.tgz", - "integrity": "sha512-1Uq7LYnwL2wBwGVCgNz76QAR13ghAk+2vDDHOi+VX5+usHManxydrpoMGeX66OBPd+y5D3D2MFb+8mYHE7mygg==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.7.5.tgz", + "integrity": "sha512-pwNkXGtlzyCV6tsTPe8AgUuMCkmubcz94zgL6pSMdEe122yXBcKnr/PKqG9QzD/gGwmOcHUE9EWcuRtU5kdFpA==", "dev": true, "requires": { - "@angular-devkit/core": "0.6.8", - "@angular-devkit/schematics": "0.6.8", + "@angular-devkit/core": "0.7.5", + "@angular-devkit/schematics": "0.7.5", "npm-registry-client": "8.6.0", - "rxjs": "6.2.2", + "rxjs": "6.3.2", "semver": "5.5.1", "semver-intersect": "1.4.0" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.7.5.tgz", + "integrity": "sha512-r99BZvvuNAqSRm05jXfx0sb3Ip0zvHPtAM6NReXzWPoqaVFpjVUdj/CKA+9HWG/Zt9meG9pEQt/HKK8UXaZDVA==", + "dev": true, + "requires": { + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.3.2", + "source-map": "0.5.7" + } + } } }, "@types/jasmine": { @@ -4285,6 +4380,11 @@ "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, + "hammerjs": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", + "integrity": "sha1-BO93hiz/K7edMPdpIJWTAiK/YPE=" + }, "handle-thing": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", @@ -8081,9 +8181,9 @@ } }, "rxjs": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", - "integrity": "sha512-0MI8+mkKAXZUF9vMrEoPnaoHkfzBPP4IGwUYRJhIRJF6/w3uByO1e91bEHn8zd43RdkTMKiooYKmwz7RH6zfOQ==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz", + "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", "requires": { "tslib": "1.9.3" } @@ -9451,9 +9551,9 @@ "dev": true }, "typescript": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.7.2.tgz", - "integrity": "sha512-p5TCYZDAO0m4G344hD+wx/LATebLWZNkkh2asWUFqSsD2OrDNhbAHuSjobrmsUmdzjJjEeZVU9g1h3O6vpstnw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", + "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", "dev": true }, "uglify-js": { diff --git a/package.json b/package.json index ea9c58b..8d5329c 100644 --- a/package.json +++ b/package.json @@ -12,23 +12,27 @@ "private": true, "dependencies": { "@angular/animations": "^6.0.0", + "@angular/cdk": "^6.2.0", "@angular/common": "^6.0.0", "@angular/compiler": "^6.0.0", "@angular/core": "^6.0.0", + "@angular/flex-layout": "^6.0.0-beta.18", "@angular/forms": "^6.0.0", "@angular/http": "^6.0.0", + "@angular/material": "^6.4.1", "@angular/platform-browser": "^6.0.0", "@angular/platform-browser-dynamic": "^6.0.0", "@angular/router": "^6.0.0", "core-js": "^2.5.4", - "rxjs": "^6.0.0", + "hammerjs": "^2.0.8", + "rxjs": "^6.3.0", "zone.js": "^0.8.26" }, "devDependencies": { "@angular/compiler-cli": "^6.0.0", "@angular-devkit/build-angular": "~0.6.0", - "typescript": "~2.7.2", - "@angular/cli": "~6.0.0", + "typescript": "~2.9.0", + "@angular/cli": "~6.1.5", "@angular/language-service": "^6.0.0", "@types/jasmine": "~2.8.6", "@types/jasminewd2": "~2.0.3", diff --git a/src/app/app.component.css b/src/app/app.component.css index e69de29..e2a52a8 100644 --- a/src/app/app.component.css +++ b/src/app/app.component.css @@ -0,0 +1,30 @@ +.mat-toolbar { + background: #02b3e4; + /* background: linear-gradient(160deg, #02b3e4, #02ccba); */ +} + +.spacer { + flex: auto; +} + +a { + text-decoration: none; + color: white; + padding: 12px 16px; + margin: 2px; + letter-spacing: 1px; +} + +a:hover, +.active { + background: whitesmoke; + border-radius: 4px; + color: #02ccba !important; + box-shadow: 8px 10px 20px 0 rgba(46, 61, 73, .15); +} + +.title { + letter-spacing: 1px; + font-style: oblique; + color: whitesmoke; +} diff --git a/src/app/app.component.html b/src/app/app.component.html index fa2706a..26d164c 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,20 +1,21 @@ -
-

- Welcome to {{ title }}! -

- Angular Logo -
-

Here are some links to help you start:

- +
+
+ + DREAM Inventory Management Solutions + + + + + +
+
+ +
+
diff --git a/src/app/app.module.ts b/src/app/app.module.ts index f657163..19928aa 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,14 +1,51 @@ import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { HttpClientModule } from '@angular/common/http'; import { AppComponent } from './app.component'; +import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; +import { ProductModule } from '../app/product/product.module'; +import { FlexLayoutModule } from '@angular/flex-layout'; + +import { MatToolbarModule } from '@angular/material/toolbar'; +import { MatIconModule } from '@angular/material/icon'; +import { MatCardModule } from '@angular/material/card'; +import { MatTableModule } from '@angular/material/table'; +import { MatButtonModule } from '@angular/material/button'; +import { MatBadgeModule } from '@angular/material/badge'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import { PageNotFoundComponent } from './page-not-found/page-not-found.component'; +import { HomeComponent } from './home/home.component'; +import { ProductComponent } from './product/product.component'; + +const appRoutes: Routes = [ + { path: 'home', component: HomeComponent }, + { path: 'product', component: ProductComponent }, + { path: '', redirectTo: 'home', pathMatch: 'full' }, + { path: '**', component: PageNotFoundComponent } +]; @NgModule({ declarations: [ - AppComponent + AppComponent, + HomeComponent, + PageNotFoundComponent ], imports: [ - BrowserModule + BrowserModule, + BrowserAnimationsModule, + FlexLayoutModule, + ProductModule, + HttpClientModule, + MatToolbarModule, + MatIconModule, + MatCardModule, + MatTableModule, + MatButtonModule, + MatBadgeModule, + MatTooltipModule, + RouterModule.forRoot(appRoutes) ], providers: [], bootstrap: [AppComponent] diff --git a/src/app/home/home.component.css b/src/app/home/home.component.css new file mode 100644 index 0000000..02c46d3 --- /dev/null +++ b/src/app/home/home.component.css @@ -0,0 +1,42 @@ +.viewer { + padding: 20px 0; + max-width: 80%; + margin: auto; +} + +.view-wrapper { + margin: 4px; + border: 4px solid rgb(1, 179, 228); + /* border: 1px solid rgba(0, 0, 0, .03); + box-shadow: 0 2px 2px rgba(0, 0, 0, .24), + 0 0 2px rgba(0, 0, 0, .12); */ +} + +.viewer-title { + padding: 8px 20px; + display: flex; + justify-content: center; + align-content: center; + /* color: rgba(0, 0, 0, .54); + background: rgba(0, 0, 0, .03); */ + /* variant: */ + color: rgb(255, 255, 255); + background: rgb(1, 179, 228); +} + +.viewer-section { + display: flex; + justify-content: center; + align-content: center; + align-items: center; +} + +.social { + display: flex; + flex-wrap: wrap; + align-content: space-around; +} + +h3>i { + letter-spacing: 8px; +} diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html new file mode 100644 index 0000000..c2be0cb --- /dev/null +++ b/src/app/home/home.component.html @@ -0,0 +1,19 @@ +
+
+
+

Awesome - Your dream's come true !!

+
+
+ Photo of a Shiba Inu +
+ + Developed By: @Raghu Chagarlamudi + + +
+
+
+
diff --git a/src/app/home/home.component.spec.ts b/src/app/home/home.component.spec.ts new file mode 100644 index 0000000..490e81b --- /dev/null +++ b/src/app/home/home.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomeComponent } from './home.component'; + +describe('HomeComponent', () => { + let component: HomeComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ HomeComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts new file mode 100644 index 0000000..33fd770 --- /dev/null +++ b/src/app/home/home.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.css'] +}) +export class HomeComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/page-not-found/page-not-found.component.ts b/src/app/page-not-found/page-not-found.component.ts new file mode 100644 index 0000000..a47281d --- /dev/null +++ b/src/app/page-not-found/page-not-found.component.ts @@ -0,0 +1,18 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-page-not-found', + template: ` +
+ + error +

404!

+

+ page-not-found! +

+
+
+ `, + styles: ['p,i {color: red;}', 'i {font-size: 60px;}', '.center {align-items: center; justify-content: center;}'] +}) +export class PageNotFoundComponent { } diff --git a/src/app/product/product.component.css b/src/app/product/product.component.css new file mode 100644 index 0000000..ee1549a --- /dev/null +++ b/src/app/product/product.component.css @@ -0,0 +1,4 @@ +table { + width: 75%; + margin: 20px auto 0 auto; +} diff --git a/src/app/product/product.component.html b/src/app/product/product.component.html new file mode 100644 index 0000000..9023065 --- /dev/null +++ b/src/app/product/product.component.html @@ -0,0 +1,3 @@ +
+ {{product.productName}} +
diff --git a/src/app/product/product.component.ts b/src/app/product/product.component.ts new file mode 100644 index 0000000..08c2e9a --- /dev/null +++ b/src/app/product/product.component.ts @@ -0,0 +1,30 @@ +import { Component, OnInit } from '@angular/core'; +import { MatTableDataSource, MatSort } from '@angular/material'; +import { DataSource } from '@angular/cdk/table'; +import { ProductService } from '../product/product.service'; + +@Component({ + selector: 'app-product', + templateUrl: './product.component.html', + styleUrls: ['./product.component.css'] +}) +export class ProductComponent implements OnInit { + + products = []; + displayedColumns = ['productName', 'brand', 'category', 'price']; + // dataSource = new MatTableDataSource(this.productService); + // dataSource = this.products; + + constructor(private productService: ProductService) { } + + ngOnInit() { + this.getAllProducts(); + } + + getAllProducts(): void { + this.productService.getProducts().subscribe((res: any[]) => { + this.products = res; + console.log(this.products); + }); + } +} diff --git a/src/app/product/product.module.spec.ts b/src/app/product/product.module.spec.ts new file mode 100644 index 0000000..4c8a494 --- /dev/null +++ b/src/app/product/product.module.spec.ts @@ -0,0 +1,13 @@ +import { ProductModule } from './product.module'; + +describe('ProductModule', () => { + let productModule: ProductModule; + + beforeEach(() => { + productModule = new ProductModule(); + }); + + it('should create an instance', () => { + expect(productModule).toBeTruthy(); + }); +}); diff --git a/src/app/product/product.module.ts b/src/app/product/product.module.ts new file mode 100644 index 0000000..dd6bb50 --- /dev/null +++ b/src/app/product/product.module.ts @@ -0,0 +1,23 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; + +import { MatTableModule } from '@angular/material/table'; +import { MatCardModule } from '@angular/material/card'; + + + +import {ProductComponent} from '../product/product.component'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + MatTableModule, + MatCardModule + ], + declarations: [ + ProductComponent + ] +}) +export class ProductModule { } diff --git a/src/app/product/product.service.spec.ts b/src/app/product/product.service.spec.ts new file mode 100644 index 0000000..b5c3410 --- /dev/null +++ b/src/app/product/product.service.spec.ts @@ -0,0 +1,15 @@ +import { TestBed, inject } from '@angular/core/testing'; + +import { ProductService } from './product.service'; + +describe('ProductService', () => { + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [ProductService] + }); + }); + + it('should be created', inject([ProductService], (service: ProductService) => { + expect(service).toBeTruthy(); + })); +}); diff --git a/src/app/product/product.service.ts b/src/app/product/product.service.ts new file mode 100644 index 0000000..83f7ea3 --- /dev/null +++ b/src/app/product/product.service.ts @@ -0,0 +1,17 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class ProductService { + + url = 'https://fast-ravine-56232.herokuapp.com/api/products'; + + constructor(private http: HttpClient) { } + + getProducts(): Observable { + return this.http.get(this.url); + } +} diff --git a/src/assets/images/wood-3157395_1280.jpg b/src/assets/images/wood-3157395_1280.jpg new file mode 100644 index 0000000..318c996 Binary files /dev/null and b/src/assets/images/wood-3157395_1280.jpg differ diff --git a/src/assets/images/wood-3157395_1920.jpg b/src/assets/images/wood-3157395_1920.jpg new file mode 100644 index 0000000..1210ac3 Binary files /dev/null and b/src/assets/images/wood-3157395_1920.jpg differ diff --git a/src/assets/images/wood-3157395_640.jpg b/src/assets/images/wood-3157395_640.jpg new file mode 100644 index 0000000..9769325 Binary files /dev/null and b/src/assets/images/wood-3157395_640.jpg differ diff --git a/src/assets/login.svg b/src/assets/login.svg new file mode 100644 index 0000000..c69b151 --- /dev/null +++ b/src/assets/login.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/index.html b/src/index.html index d54327c..7351e8b 100644 --- a/src/index.html +++ b/src/index.html @@ -1,6 +1,8 @@ + + ZID diff --git a/src/main.ts b/src/main.ts index 91ec6da..a7ea96c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -4,6 +4,8 @@ import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; +import 'hammerjs'; + if (environment.production) { enableProdMode(); } diff --git a/src/styles.css b/src/styles.css index 90d4ee0..6fb344a 100644 --- a/src/styles.css +++ b/src/styles.css @@ -1 +1,5 @@ /* You can add global styles to this file, and also import other style files */ +/* @import "~@angular/material/prebuilt-themes/indigo-pink.css"; */ + +html, body { height: 100%; } +body { margin: 0; font-family: 'Roboto', sans-serif; }