diff --git a/apps/fantalytic-public/src/app/app.config.ts b/apps/fantalytic-public/src/app/app.config.ts
index a4f6944..5177063 100644
--- a/apps/fantalytic-public/src/app/app.config.ts
+++ b/apps/fantalytic-public/src/app/app.config.ts
@@ -25,17 +25,33 @@ const routes: Route[] = [
},
{
path: 'fantasy-football',
- loadChildren: () =>
- import('../app/fantasy-football/const/fantasy-football-routes.const').then(
- (m) => m.FANTASY_FOOTBALL_ROUTES
- ),
+ loadComponent: () => import('../app/fantasy-football/fantasy-football.component').then((a) => a.FantasyFootballComponent),
canActivate: [MobileCheckerService],
providers: [
importProvidersFrom(
- StoreModule.forFeature('fantasyFootball', fantasyFootballReducer),
+ StoreModule.forFeature('fantasy-football', fantasyFootballReducer),
EffectsModule.forFeature([FantasyFootballEffects]),
)
],
+ children: [
+ {
+ path: 'stats',
+ loadComponent: () => import('../app/fantasy-football/components/stats/stats.component').then(c => c.StatsComponent)
+ },
+ {
+ path: 'compare',
+ loadComponent: () => import('../app/fantasy-football/components/compare-players/compare-players.component').then(c => c.ComparePlayersComponent)
+ },
+ {
+ path: 'scores',
+ loadComponent: () => import('../app/fantasy-football/components/scores/scores.component').then(c => c.ScoresComponent)
+ },
+ {
+ path: '',
+ pathMatch: 'full',
+ redirectTo: 'stats'
+ }
+ ]
},
{
path: '',
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/fantasy-football-sidebar/fantasy-football-sidebar.component.html b/apps/fantalytic-public/src/app/fantasy-football/components/fantasy-football-sidebar/fantasy-football-sidebar.component.html
index 628ad03..6fc79ba 100644
--- a/apps/fantalytic-public/src/app/fantasy-football/components/fantasy-football-sidebar/fantasy-football-sidebar.component.html
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/fantasy-football-sidebar/fantasy-football-sidebar.component.html
@@ -1,3 +1,3 @@
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/fantasy-football-sidebar/fantasy-football-sidebar.component.scss b/apps/fantalytic-public/src/app/fantasy-football/components/fantasy-football-sidebar/fantasy-football-sidebar.component.scss
index c1d11f6..3610072 100644
--- a/apps/fantalytic-public/src/app/fantasy-football/components/fantasy-football-sidebar/fantasy-football-sidebar.component.scss
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/fantasy-football-sidebar/fantasy-football-sidebar.component.scss
@@ -5,4 +5,5 @@
button {
margin-bottom: 1rem;
}
-}
\ No newline at end of file
+}
+
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.html b/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.html
new file mode 100644
index 0000000..e5361b2
--- /dev/null
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.html
@@ -0,0 +1 @@
+scores works!
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.scss b/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.spec.ts b/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.spec.ts
new file mode 100644
index 0000000..037d0cc
--- /dev/null
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.spec.ts
@@ -0,0 +1,21 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ScoresComponent } from './scores.component';
+
+describe('ScoresComponent', () => {
+ let component: ScoresComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [ScoresComponent],
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(ScoresComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.ts b/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.ts
new file mode 100644
index 0000000..804fd0a
--- /dev/null
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/scores/scores.component.ts
@@ -0,0 +1,11 @@
+import { Component } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+@Component({
+ selector: 'pmt-scores',
+ standalone: true,
+ imports: [CommonModule],
+ templateUrl: './scores.component.html',
+ styleUrls: ['./scores.component.scss'],
+})
+export class ScoresComponent {}
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.html b/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.html
new file mode 100644
index 0000000..b47ec0d
--- /dev/null
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.html
@@ -0,0 +1,33 @@
+
+
+
+
+
+ Position
+
+
+
+
+
+
+ Year
+
+
+
+
+
+
+
+
+
+
+
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.scss b/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.scss
new file mode 100644
index 0000000..193ab89
--- /dev/null
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.scss
@@ -0,0 +1,3 @@
+ag-grid-angular {
+ height: 50vh;
+}
\ No newline at end of file
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.spec.ts b/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.spec.ts
new file mode 100644
index 0000000..c6bdd8b
--- /dev/null
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.spec.ts
@@ -0,0 +1,21 @@
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { StatsComponent } from './stats.component';
+
+describe('StatsComponent', () => {
+ let component: StatsComponent;
+ let fixture: ComponentFixture;
+
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [StatsComponent],
+ }).compileComponents();
+
+ fixture = TestBed.createComponent(StatsComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.ts b/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.ts
new file mode 100644
index 0000000..79c5f23
--- /dev/null
+++ b/apps/fantalytic-public/src/app/fantasy-football/components/stats/stats.component.ts
@@ -0,0 +1,83 @@
+import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
+import { Router } from '@angular/router';
+import { Store } from '@ngrx/store';
+import { FantasyFootballState, PositionTypes } from '@pmt/fantalytic-shared';
+import { AgGridAngular, AgGridModule } from 'ag-grid-angular';
+import { Observable, Subject } from 'rxjs';
+import { DEFAULT_COL_DEF_SETTINGS } from '../../../const/grid.const';
+import { setPositionType, updateSelectedPlayers, updateYearFilter } from '../../ngrx/actions/fantasy-football.actions';
+import { getSelectedYear, getPosition, getFantasyFootballState } from '../../ngrx/selectors/fantasy-football.selectors';
+import { MatButtonModule } from '@angular/material/button';
+import { FantasyFootballSidebarComponent } from '../fantasy-football-sidebar/fantasy-football-sidebar.component';
+
+@Component({
+ selector: 'pmt-stats',
+ standalone: true,
+ imports: [
+ CommonModule,
+ AgGridModule,
+ MatButtonModule,
+ MatSidenavModule,
+ FantasyFootballSidebarComponent,
+ ],
+ templateUrl: './stats.component.html',
+ styleUrls: ['./stats.component.scss'],
+})
+export class StatsComponent implements OnInit, OnDestroy {
+
+ @ViewChild('statGrid')
+ statGrid!: AgGridAngular;
+
+ @ViewChild('drawer')
+ drawer!: MatSidenav;
+
+ fantasyFootballState$!: Observable;
+ currentYear$ = this._store.select(getSelectedYear);
+ currentPosition$ = this._store.select(getPosition);
+
+ readonly DEFAULT_COL_DEF_SETTINGS = DEFAULT_COL_DEF_SETTINGS;
+ readonly ALL_YEARS = [2018,2019,2020,2021,2022];
+
+ private _compDestroyedSub$ = new Subject();
+
+ constructor(private _store: Store, private _router: Router) {}
+
+ ngOnInit(): void {
+ this._store.dispatch(setPositionType(PositionTypes.QB));
+ this.fantasyFootballState$ = this._store.select(getFantasyFootballState);
+ }
+
+ ngOnDestroy(): void {
+ this._compDestroyedSub$.next();
+ }
+
+ gridReady(): void {
+ this.statGrid.api.sizeColumnsToFit();
+ }
+
+ handleUpdatedRowSelected(): void {
+ const selectedPlayers = this.statGrid.api.getSelectedNodes().map(node => node.data.player);
+ this._store.dispatch(updateSelectedPlayers(selectedPlayers));
+ if (selectedPlayers.length) {
+ this.drawer.open();
+ } else {
+ this.drawer.close();
+ }
+
+ }
+
+ updatePosition(position: string): void {
+ this.drawer.close();
+ this._store.dispatch(setPositionType(position as PositionTypes));
+ }
+
+ handleSidebarEvent(path: string): void {
+ this._router.navigate(['fantasy-football', path]);
+ }
+
+ filterByYear(year: number): void {
+ this._store.dispatch(updateYearFilter(year));
+ }
+}
diff --git a/apps/fantalytic-public/src/app/fantasy-football/const/fantasy-football-routes.const.ts b/apps/fantalytic-public/src/app/fantasy-football/const/fantasy-football-routes.const.ts
index a92e87c..630c9b1 100644
--- a/apps/fantalytic-public/src/app/fantasy-football/const/fantasy-football-routes.const.ts
+++ b/apps/fantalytic-public/src/app/fantasy-football/const/fantasy-football-routes.const.ts
@@ -1,10 +1,6 @@
import { Route } from "@angular/router";
-export const FANTASY_FOOTBALL_ROUTES: Route[] = [
- {
- path: 'compare',
- loadComponent: () => import('../components/compare-players/compare-players.component').then(c => c.ComparePlayersComponent)
- },
+export const FANTASY_FOOTBALL_ROUTES: Route[] = [
{
path: '',
pathMatch: 'full',
diff --git a/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.html b/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.html
index 12aa0a0..d26521d 100644
--- a/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.html
+++ b/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.html
@@ -1,35 +1,10 @@
-
-
-
-
-
- Position
-
-
-
-
-
-
- Year
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.scss b/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.scss
index ded0a54..e69de29 100644
--- a/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.scss
+++ b/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.scss
@@ -1,35 +0,0 @@
-.main-container {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- mat-sidenav-container {
- width: 100vw;
- }
-}
-
-.filter-container {
- grid-column: 1 / 3;
- display: inline-flex;
- margin: 1rem;
- .position-container, .year-container {
- background-color: #ccc;
- margin-right: 1rem;
- }
- span, div, a {
- padding: 1.5rem;
- }
-}
-
-.grid-container {
- height: 70vh;
- width: 90vw;
- grid-column: 2 / 3;
- margin: 1rem;
- ag-grid-angular {
- height: 100%;
- width: 100%;
- }
-}
-
-.active {
- text-decoration: underline;
-}
\ No newline at end of file
diff --git a/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.ts b/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.ts
index cf28075..ceb2034 100644
--- a/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.ts
+++ b/apps/fantalytic-public/src/app/fantasy-football/fantasy-football.component.ts
@@ -1,85 +1,20 @@
-import { CommonModule } from '@angular/common';
-import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
-
+import { Component } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
-import { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
-import { Router } from '@angular/router';
-import { Store } from '@ngrx/store';
-import { getFantasyFootballState, getPosition, getSelectedYear } from './ngrx/selectors/fantasy-football.selectors';
-import { setPositionType, updateSelectedPlayers, updateYearFilter } from './ngrx/actions/fantasy-football.actions';
-import { AgGridAngular, AgGridModule } from 'ag-grid-angular';
-import { Observable, Subject } from 'rxjs';
-import { DEFAULT_COL_DEF_SETTINGS } from '../const/grid.const';
-import { FantasyFootballSidebarComponent } from './components/fantasy-football-sidebar/fantasy-football-sidebar.component';
-import { FantasyFootballState, PositionTypes } from '@pmt/fantalytic-shared';
+
+import { RouterModule } from '@angular/router';
@Component({
selector: 'pmt-fantasy-football',
standalone: true,
imports: [
- CommonModule,
- AgGridModule,
- MatButtonModule,
- MatSidenavModule,
- FantasyFootballSidebarComponent
+ RouterModule,
+ MatButtonModule
],
templateUrl: './fantasy-football.component.html',
styleUrls: ['./fantasy-football.component.scss']
})
-export class FantasyFootballComponent implements OnInit, OnDestroy {
-
- @ViewChild('statGrid')
- statGrid!: AgGridAngular;
-
- @ViewChild('drawer')
- drawer!: MatSidenav;
-
- fantasyFootballState$!: Observable;
- currentYear$ = this._store.select(getSelectedYear);
- currentPosition$ = this._store.select(getPosition);
-
- readonly DEFAULT_COL_DEF_SETTINGS = DEFAULT_COL_DEF_SETTINGS;
- readonly ALL_YEARS = [2018,2019,2020,2021,2022];
-
- private _compDestroyedSub$ = new Subject();
+export class FantasyFootballComponent {
- constructor(private _store: Store, private _router: Router) {}
- ngOnInit(): void {
- this._store.dispatch(setPositionType(PositionTypes.QB));
- this.fantasyFootballState$ = this._store.select(getFantasyFootballState);
- }
-
- ngOnDestroy(): void {
- this._compDestroyedSub$.next();
- }
-
- gridReady(): void {
- this.statGrid.api.sizeColumnsToFit();
- }
-
- handleUpdatedRowSelected(): void {
- const selectedPlayers = this.statGrid.api.getSelectedNodes().map(node => node.data.player);
- this._store.dispatch(updateSelectedPlayers(selectedPlayers));
- if (selectedPlayers.length) {
- this.drawer.open();
- } else {
- this.drawer.close();
- }
-
- }
-
- updatePosition(position: string): void {
- this.drawer.close();
- this._store.dispatch(setPositionType(position as PositionTypes));
- }
-
- handleSidebarEvent(path: string): void {
- this._router.navigate(['fantasy-football', path]);
- }
-
- filterByYear(year: number): void {
- this._store.dispatch(updateYearFilter(year));
- }
}
diff --git a/apps/fantalytic-public/src/app/topics/topics.component.html b/apps/fantalytic-public/src/app/topics/topics.component.html
index bbfc689..f9b91b0 100644
--- a/apps/fantalytic-public/src/app/topics/topics.component.html
+++ b/apps/fantalytic-public/src/app/topics/topics.component.html
@@ -1,7 +1,7 @@
RSS Feeds:
-
diff --git a/apps/fantalytic-public/src/styles.scss b/apps/fantalytic-public/src/styles.scss
index a7cfce6..5437e73 100644
--- a/apps/fantalytic-public/src/styles.scss
+++ b/apps/fantalytic-public/src/styles.scss
@@ -45,3 +45,10 @@ h3 {
.mat-button-wrapper {
color: unset;
}
+
+// material overrides
+.mat-primary {
+ .mdc-button__label {
+ color: #fff;
+ }
+}
\ No newline at end of file