From 6de58749833351b4fbbd2b5896e2366341a923ae Mon Sep 17 00:00:00 2001 From: Evolutionis Date: Mon, 11 Sep 2023 23:10:24 -0300 Subject: [PATCH] feat: dando continuidade na tarefa solicitada --- README.md | 25 +++++++---- src/app/app.component.ts | 9 ++-- src/app/app.module.ts | 43 ++++++++++-------- .../card/card-label/card-label.component.ts | 18 -------- .../card-pricing/card-pricing.component.ts | 19 -------- src/app/components/card/card.component.html | 17 ------- src/app/components/card/card.component.ts | 24 ---------- .../menu-bar/menu-bar.component.css | 44 ------------------- .../menu-bar/menu-bar.component.html | 18 -------- .../components/menu-bar/menu-bar.component.ts | 15 ------- .../core/Interface/response_api.interface.ts | 6 +++ .../core/services/database.service.spec.ts | 16 +++++++ src/app/core/services/database.service.ts | 22 ++++++++++ src/app/pages/home/home.component.html | 36 +++------------ src/app/pages/home/home.component.ts | 19 +++++--- .../app-card/app-card.component.css} | 10 ++--- .../shared/app-card/app-card.component.html | 7 +++ .../app-card/app-card.component.spec.ts | 23 ++++++++++ src/app/shared/app-card/app-card.component.ts | 22 ++++++++++ .../card-label/card-label.component.css | 0 .../card-label/card-label.component.html | 0 .../card-label/card-label.component.ts | 18 ++++++++ .../card-pricing/card-pricing.component.css | 0 .../card-pricing/card-pricing.component.html | 0 .../card-pricing/card-pricing.component.ts | 16 +++++++ .../app-menu-bar/app-menu-bar.component.css | 16 +++++++ .../app-menu-bar/app-menu-bar.component.html | 7 +++ .../app-menu-bar.component.spec.ts | 23 ++++++++++ .../app-menu-bar/app-menu-bar.component.ts | 21 +++++++++ .../menu-bar-item/menu-bar-item.component.css | 28 ++++++++++++ .../menu-bar-item.component.html | 7 +++ .../menu-bar-item/menu-bar-item.component.ts | 15 +++++++ src/assets/db/db.json | 38 ++++++++++++++++ 33 files changed, 354 insertions(+), 228 deletions(-) delete mode 100644 src/app/components/card/card-label/card-label.component.ts delete mode 100644 src/app/components/card/card-pricing/card-pricing.component.ts delete mode 100644 src/app/components/card/card.component.html delete mode 100644 src/app/components/card/card.component.ts delete mode 100644 src/app/components/menu-bar/menu-bar.component.css delete mode 100644 src/app/components/menu-bar/menu-bar.component.html delete mode 100644 src/app/components/menu-bar/menu-bar.component.ts create mode 100644 src/app/core/Interface/response_api.interface.ts create mode 100644 src/app/core/services/database.service.spec.ts create mode 100644 src/app/core/services/database.service.ts rename src/app/{components/card/card.component.css => shared/app-card/app-card.component.css} (73%) create mode 100644 src/app/shared/app-card/app-card.component.html create mode 100644 src/app/shared/app-card/app-card.component.spec.ts create mode 100644 src/app/shared/app-card/app-card.component.ts rename src/app/{components/card => shared/app-card}/card-label/card-label.component.css (100%) rename src/app/{components/card => shared/app-card}/card-label/card-label.component.html (100%) create mode 100644 src/app/shared/app-card/card-label/card-label.component.ts rename src/app/{components/card => shared/app-card}/card-pricing/card-pricing.component.css (100%) rename src/app/{components/card => shared/app-card}/card-pricing/card-pricing.component.html (100%) create mode 100644 src/app/shared/app-card/card-pricing/card-pricing.component.ts create mode 100644 src/app/shared/app-menu-bar/app-menu-bar.component.css create mode 100644 src/app/shared/app-menu-bar/app-menu-bar.component.html create mode 100644 src/app/shared/app-menu-bar/app-menu-bar.component.spec.ts create mode 100644 src/app/shared/app-menu-bar/app-menu-bar.component.ts create mode 100644 src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.css create mode 100644 src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.html create mode 100644 src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.ts create mode 100644 src/assets/db/db.json diff --git a/README.md b/README.md index 30c4472..b7c1da4 100644 --- a/README.md +++ b/README.md @@ -10,18 +10,27 @@ Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The appli Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. -## Build +## Utilizando API Rest Fake -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. +Para simular o uso do `HttpClient`, precisamos de uma API REST, como o foco é o `HttpClient` não vamos nos preocupar em criar uma API REST, para isso podemos usar o `json-server`, que faz uma API REST fake, assim focaremos no `HttpClient`. +Para mais detalhes sobre o `json-server`, podemos consultar seu github. -## Running unit tests +Para instalar o `json-server`, bastar executar o seguinte comando: -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). +`npm install -g json-server` -## Running end-to-end tests +Dento do nosso projeto, vamos criar uma pasta chamada “data” dentro de "assets" -Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities. +`/src/assets/db` -## Further help +Agora crie um arquivo chamado db.json e jogue dentro da pasta “data” que acabamos de criar: -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page. +`/src/assets/data/db.json` + +Vamos abrir o arquivo `db.json` e incluir o seguinte json: + +`{ "API": [ { "cover": "assets/bt-1.jpg", "type": "DIGITAL", "label": "DIGITAL | PS4", "price": "R$ 129,99" }, { "cover": "assets/bt-4.jpg", "type": "EXCLUSIVE", "label": "DISC | PS5", "price": "R$ 269,99" }, { "cover": "assets/ac-cover.jpg", "type": "BEST OF YEAR", "label": "DIGITAL | PS5", "price": "R$ 369,99" }, { "cover": "assets/bt-hardline.jpg", "type": "NEW", "label": "DIGITAL | PS3 PS4 PS5", "price": "R$ 369,99" } ], "header": { { "novidades": "https://store.playstation.com/pt-br/pages/latest", "colecoes": "https://store.playstation.com/pt-br/pages/collections", "ofertas": "https://store.playstation.com/pt-br/pages/deals", "ps5": "https://store.playstation.com/pt-br/pages/ps5", "assinatura": "https://store.playstation.com/pt-br/pages/subscriptions", "navegar": "https://store.playstation.com/pt-br/pages/browse" } } }` + +Vamos rodar o `json-server` para simular nossa API REST, abra um novo terminal e na raiz do projeto execute o seguinte comando: + +`json-server --watch src/assets/data/db.jsono` diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 804a5b4..3578e52 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,10 +1,11 @@ import { Component } from '@angular/core'; +import { DatabaseService } from './core/services/database.service'; @Component({ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.css'] }) export class AppComponent { - title = 'store'; + title = 'store'; } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 4146f1f..3f7f11c 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,28 +1,33 @@ import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; - +import { HttpClientModule } from '@angular/common/http' import { AppRoutingModule } from './app-routing.module'; import { AppComponent } from './app.component'; import { HomeComponent } from './pages/home/home.component'; -import { CardComponent } from './components/card/card.component'; -import { MenuBarComponent } from './components/menu-bar/menu-bar.component'; -import { CardLabelComponent } from './components/card/card-label/card-label.component'; -import { CardPricingComponent } from './components/card/card-pricing/card-pricing.component'; +import { AppCardComponent } from './shared/app-card/app-card.component'; +import { AppMenuBarComponent } from './shared/app-menu-bar/app-menu-bar.component'; +import { CardLabelComponent } from './shared/app-card/card-label/card-label.component'; +import { CardPricingComponent } from './shared/app-card/card-pricing/card-pricing.component'; +import { MenuBarItemComponent } from './shared/app-menu-bar/menu-bar-item/menu-bar-item.component'; @NgModule({ - declarations: [ - AppComponent, - HomeComponent, - CardComponent, - MenuBarComponent, - CardLabelComponent, - CardPricingComponent - ], - imports: [ - BrowserModule, - AppRoutingModule - ], - providers: [], - bootstrap: [AppComponent] + declarations: [ + AppComponent, + HomeComponent, + AppCardComponent, + AppMenuBarComponent, + CardLabelComponent, + CardPricingComponent, + AppCardComponent, + AppMenuBarComponent, + MenuBarItemComponent + ], + imports: [ + BrowserModule, + AppRoutingModule, + HttpClientModule + ], + providers: [], + bootstrap: [AppComponent] }) export class AppModule { } diff --git a/src/app/components/card/card-label/card-label.component.ts b/src/app/components/card/card-label/card-label.component.ts deleted file mode 100644 index 74e02da..0000000 --- a/src/app/components/card/card-label/card-label.component.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Component, Input, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-card-label', - templateUrl: './card-label.component.html', - styleUrls: ['./card-label.component.css'] -}) -export class CardLabelComponent implements OnInit { - - @Input() - gameLabel:string="" - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/src/app/components/card/card-pricing/card-pricing.component.ts b/src/app/components/card/card-pricing/card-pricing.component.ts deleted file mode 100644 index 5dc831e..0000000 --- a/src/app/components/card/card-pricing/card-pricing.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component, Input, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-card-pricing', - templateUrl: './card-pricing.component.html', - styleUrls: ['./card-pricing.component.css'] -}) -export class CardPricingComponent implements OnInit { - - @Input() - gameType:string ="Digital PS4" - @Input() - gamePrice:string = "R$ 399,90" - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/src/app/components/card/card.component.html b/src/app/components/card/card.component.html deleted file mode 100644 index 736eb2c..0000000 --- a/src/app/components/card/card.component.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - diff --git a/src/app/components/card/card.component.ts b/src/app/components/card/card.component.ts deleted file mode 100644 index d2c9e49..0000000 --- a/src/app/components/card/card.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, Input, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-card', - templateUrl: './card.component.html', - styleUrls: ['./card.component.css'] -}) -export class CardComponent implements OnInit { - - @Input() - gameCover:string = "" - @Input() - gameLabel:string="" - @Input() - gameType:string ="XPTO | PS4" - @Input() - gamePrice:string = "R$ 399,90" - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/src/app/components/menu-bar/menu-bar.component.css b/src/app/components/menu-bar/menu-bar.component.css deleted file mode 100644 index b90bbc7..0000000 --- a/src/app/components/menu-bar/menu-bar.component.css +++ /dev/null @@ -1,44 +0,0 @@ -.menu-bar__container{ - display: flex; - flex-direction: row; - position: fixed; - z-index: 999; - background-color: #ffffff; - width: 100%; - height: 40px; - box-shadow: 0px 0px 6px 0px rgba(0,0,0,0.5); -} - -.menu-bar__logo{ - margin-left: 30px; - display: flex; - align-items: center; -} - -.menu-bar__item{ - display: flex; - margin:auto; - align-items: center; -} - -.menu-bar__item > ul{ - display: flex; - list-style-type: none; -} - -.menu-bar__item > ul > li { - padding: 5px; - margin-right: 15px; -} - -.menu-bar__item > ul > li > a { - text-decoration: none; - padding: 5px; - color: rgb(7, 7, 7); - font-family: 'Segoe UI'; -} - -.menu-bar__item > ul > li > a:hover { - color: blue; - font-weight: 600; -} diff --git a/src/app/components/menu-bar/menu-bar.component.html b/src/app/components/menu-bar/menu-bar.component.html deleted file mode 100644 index 44067d8..0000000 --- a/src/app/components/menu-bar/menu-bar.component.html +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/src/app/components/menu-bar/menu-bar.component.ts b/src/app/components/menu-bar/menu-bar.component.ts deleted file mode 100644 index 056da3c..0000000 --- a/src/app/components/menu-bar/menu-bar.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-menu-bar', - templateUrl: './menu-bar.component.html', - styleUrls: ['./menu-bar.component.css'] -}) -export class MenuBarComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/src/app/core/Interface/response_api.interface.ts b/src/app/core/Interface/response_api.interface.ts new file mode 100644 index 0000000..82796b1 --- /dev/null +++ b/src/app/core/Interface/response_api.interface.ts @@ -0,0 +1,6 @@ +export interface Response { + cover: string; + type: string; + label: string; + price: string; +} diff --git a/src/app/core/services/database.service.spec.ts b/src/app/core/services/database.service.spec.ts new file mode 100644 index 0000000..1b3f513 --- /dev/null +++ b/src/app/core/services/database.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { DatabaseService } from './database.service'; + +describe('DatabaseService', () => { + let service: DatabaseService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(DatabaseService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/core/services/database.service.ts b/src/app/core/services/database.service.ts new file mode 100644 index 0000000..2792717 --- /dev/null +++ b/src/app/core/services/database.service.ts @@ -0,0 +1,22 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { Response } from '../Interface/response_api.interface'; + + +@Injectable({ + providedIn: 'root' +}) +export class DatabaseService { + + constructor(private http: HttpClient) { } + + getBase(): Observable { + return this.http.get("http://localhost:3000/API") + } + + getHeader(): Observable { + return this.http.get("http://localhost:3000/header") + } + +} diff --git a/src/app/pages/home/home.component.html b/src/app/pages/home/home.component.html index 4613fb7..b636ec3 100644 --- a/src/app/pages/home/home.component.html +++ b/src/app/pages/home/home.component.html @@ -1,31 +1,7 @@
- - - - - - - - -
- +
+ + +
+ \ No newline at end of file diff --git a/src/app/pages/home/home.component.ts b/src/app/pages/home/home.component.ts index 007fef0..5dd863b 100644 --- a/src/app/pages/home/home.component.ts +++ b/src/app/pages/home/home.component.ts @@ -1,15 +1,20 @@ import { Component, OnInit } from '@angular/core'; +import { Response } from 'src/app/core/Interface/response_api.interface'; +import { DatabaseService } from 'src/app/core/services/database.service'; @Component({ - selector: 'app-home', - templateUrl: './home.component.html', - styleUrls: ['./home.component.css'] + selector: 'app-home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.css'] }) export class HomeComponent implements OnInit { + CardsItem: Response[] = []; - constructor() { } - - ngOnInit(): void { - } + constructor(private dataBaseService: DatabaseService) { } + ngOnInit(): void { + this.dataBaseService.getBase().subscribe((item: any) => { + this.CardsItem = item; + }) + } } diff --git a/src/app/components/card/card.component.css b/src/app/shared/app-card/app-card.component.css similarity index 73% rename from src/app/components/card/card.component.css rename to src/app/shared/app-card/app-card.component.css index 7564e12..97df5a0 100644 --- a/src/app/components/card/card.component.css +++ b/src/app/shared/app-card/app-card.component.css @@ -1,6 +1,6 @@ -.card__container{ +.card__container { position: relative; - border:3px solid #3E4357; + border: 3px solid #3E4357; border-radius: 10px; width: 350px; height: 500px; @@ -10,12 +10,12 @@ margin-top: 10px; } -.card__img{ +.card__img { min-width: 100%; min-height: 100%; transition: transform .8s; } -.card__img:hover{ +.card__img:hover { transform: scale(1.1); -} +} \ No newline at end of file diff --git a/src/app/shared/app-card/app-card.component.html b/src/app/shared/app-card/app-card.component.html new file mode 100644 index 0000000..5ed4406 --- /dev/null +++ b/src/app/shared/app-card/app-card.component.html @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/app/shared/app-card/app-card.component.spec.ts b/src/app/shared/app-card/app-card.component.spec.ts new file mode 100644 index 0000000..d99d4b1 --- /dev/null +++ b/src/app/shared/app-card/app-card.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AppCardComponent } from './app-card.component'; + +describe('AppCardComponent', () => { + let component: AppCardComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AppCardComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(AppCardComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/app-card/app-card.component.ts b/src/app/shared/app-card/app-card.component.ts new file mode 100644 index 0000000..117ba18 --- /dev/null +++ b/src/app/shared/app-card/app-card.component.ts @@ -0,0 +1,22 @@ +import { Component, OnInit, Input } from '@angular/core'; + +@Component({ + selector: 'app-card', + templateUrl: './app-card.component.html', + styleUrls: ['./app-card.component.css'] +}) +export class AppCardComponent implements OnInit { + @Input() + gameCover: string = "" + @Input() + gameLabel: string = "" + @Input() + gameType: string = "XPTO | PS4" + @Input() + gamePrice: string = "R$ 399,90" + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/components/card/card-label/card-label.component.css b/src/app/shared/app-card/card-label/card-label.component.css similarity index 100% rename from src/app/components/card/card-label/card-label.component.css rename to src/app/shared/app-card/card-label/card-label.component.css diff --git a/src/app/components/card/card-label/card-label.component.html b/src/app/shared/app-card/card-label/card-label.component.html similarity index 100% rename from src/app/components/card/card-label/card-label.component.html rename to src/app/shared/app-card/card-label/card-label.component.html diff --git a/src/app/shared/app-card/card-label/card-label.component.ts b/src/app/shared/app-card/card-label/card-label.component.ts new file mode 100644 index 0000000..ccb1224 --- /dev/null +++ b/src/app/shared/app-card/card-label/card-label.component.ts @@ -0,0 +1,18 @@ +import { Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-card-label', + templateUrl: './card-label.component.html', + styleUrls: ['./card-label.component.css'] +}) +export class CardLabelComponent implements OnInit { + + @Input() + gameLabel: string = ""; + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/components/card/card-pricing/card-pricing.component.css b/src/app/shared/app-card/card-pricing/card-pricing.component.css similarity index 100% rename from src/app/components/card/card-pricing/card-pricing.component.css rename to src/app/shared/app-card/card-pricing/card-pricing.component.css diff --git a/src/app/components/card/card-pricing/card-pricing.component.html b/src/app/shared/app-card/card-pricing/card-pricing.component.html similarity index 100% rename from src/app/components/card/card-pricing/card-pricing.component.html rename to src/app/shared/app-card/card-pricing/card-pricing.component.html diff --git a/src/app/shared/app-card/card-pricing/card-pricing.component.ts b/src/app/shared/app-card/card-pricing/card-pricing.component.ts new file mode 100644 index 0000000..3710e44 --- /dev/null +++ b/src/app/shared/app-card/card-pricing/card-pricing.component.ts @@ -0,0 +1,16 @@ +import { Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-card-pricing', + templateUrl: './card-pricing.component.html', + styleUrls: ['./card-pricing.component.css'] +}) +export class CardPricingComponent implements OnInit { + + @Input() gameType: string = ""; + @Input() gamePrice: string = ""; + constructor() { } + + ngOnInit(): void { } + +} diff --git a/src/app/shared/app-menu-bar/app-menu-bar.component.css b/src/app/shared/app-menu-bar/app-menu-bar.component.css new file mode 100644 index 0000000..c1f04d6 --- /dev/null +++ b/src/app/shared/app-menu-bar/app-menu-bar.component.css @@ -0,0 +1,16 @@ +.menu-bar__container { + display: flex; + flex-direction: row; + position: fixed; + z-index: 999; + background-color: #ffffff; + width: 100%; + height: 40px; + box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.5); +} + +.menu-bar__logo { + margin-left: 30px; + display: flex; + align-items: center; +} \ No newline at end of file diff --git a/src/app/shared/app-menu-bar/app-menu-bar.component.html b/src/app/shared/app-menu-bar/app-menu-bar.component.html new file mode 100644 index 0000000..b5b0a7f --- /dev/null +++ b/src/app/shared/app-menu-bar/app-menu-bar.component.html @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/src/app/shared/app-menu-bar/app-menu-bar.component.spec.ts b/src/app/shared/app-menu-bar/app-menu-bar.component.spec.ts new file mode 100644 index 0000000..68641d7 --- /dev/null +++ b/src/app/shared/app-menu-bar/app-menu-bar.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AppMenuBarComponent } from './app-menu-bar.component'; + +describe('AppMenuBarComponent', () => { + let component: AppMenuBarComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AppMenuBarComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(AppMenuBarComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/shared/app-menu-bar/app-menu-bar.component.ts b/src/app/shared/app-menu-bar/app-menu-bar.component.ts new file mode 100644 index 0000000..ded28ab --- /dev/null +++ b/src/app/shared/app-menu-bar/app-menu-bar.component.ts @@ -0,0 +1,21 @@ +import { Component, OnInit, Input } from '@angular/core'; + +@Component({ + selector: 'app-menu-bar', + templateUrl: './app-menu-bar.component.html', + styleUrls: ['./app-menu-bar.component.css'] +}) +export class AppMenuBarComponent implements OnInit { + + @Input() gameCover: string = ""; + @Input() gameLabel: string = ""; + @Input() gameType: string = ""; + @Input() gamePrice: string = ""; + + + constructor() { } + + ngOnInit(): void { } + + +} diff --git a/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.css b/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.css new file mode 100644 index 0000000..36c45d1 --- /dev/null +++ b/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.css @@ -0,0 +1,28 @@ +.menu-bar__item { + display: flex; + align-items: center; + justify-content: center; + margin: 8px auto; +} + +.menu-bar__item>ul { + display: flex; + list-style-type: none; +} + +.menu-bar__item>ul>li { + padding: 5px; + margin-right: 15px; +} + +.menu-bar__item>ul>li>a { + text-decoration: none; + padding: 5px; + color: rgb(7, 7, 7); + font-family: 'Segoe UI'; +} + +.menu-bar__item>ul>li>a:hover { + color: blue; + font-weight: 600; +} \ No newline at end of file diff --git a/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.html b/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.html new file mode 100644 index 0000000..1bcaa8f --- /dev/null +++ b/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.html @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.ts b/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.ts new file mode 100644 index 0000000..f2eeb40 --- /dev/null +++ b/src/app/shared/app-menu-bar/menu-bar-item/menu-bar-item.component.ts @@ -0,0 +1,15 @@ +import { Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-menu-bar-item', + templateUrl: './menu-bar-item.component.html', + styleUrls: ['./menu-bar-item.component.css'] +}) +export class MenuBarItemComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/assets/db/db.json b/src/assets/db/db.json new file mode 100644 index 0000000..f2e363b --- /dev/null +++ b/src/assets/db/db.json @@ -0,0 +1,38 @@ +{ + "API": [ + { + "cover": "assets/bt-1.jpg", + "type": "DIGITAL", + "label": "DIGITAL | PS4", + "price": "R$ 129,99" + }, + { + "cover": "assets/bt-4.jpg", + "type": "EXCLUSIVE", + "label": "DISC | PS5", + "price": "R$ 269,99" + }, + { + "cover": "assets/ac-cover.jpg", + "type": "BEST OF YEAR", + "label": "DIGITAL | PS5", + "price": "R$ 369,99" + }, + { + "cover": "assets/bt-hardline.jpg", + "type": "NEW", + "label": "DIGITAL | PS3 PS4 PS5", + "price": "R$ 369,99" + } + ], + "header": [ + { + "novidades": "https://store.playstation.com/pt-br/pages/latest", + "colecoes": "https://store.playstation.com/pt-br/pages/collections", + "ofertas": "https://store.playstation.com/pt-br/pages/deals", + "ps5": "https://store.playstation.com/pt-br/pages/ps5", + "assinatura": "https://store.playstation.com/pt-br/pages/subscriptions", + "navegar": "https://store.playstation.com/pt-br/pages/browse" + } + ] +}