import { Component, ElementRef, OnDestroy, OnInit, ViewChild, ViewEncapsulation, AfterViewInit } from '@angular/core'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { fromEvent, Subject } from 'rxjs'; import { debounceTime, distinctUntilChanged } from 'rxjs/operators'; import { FuseUtils } from 'src/@fuse/utils'; import { takeUntil } from 'rxjs/internal/operators'; import { fuseAnimations } from 'src/@fuse/animations'; import { LeagueDataSource } from './league-management.data-source'; import { LeagueService } from 'src/modules/game/service/league.service'; @Component({ selector: 'app-league-management', templateUrl: './league-management.component.html', styleUrls: ['./league-management.component.scss'], animations: fuseAnimations, encapsulation: ViewEncapsulation.None }) export class LeagueManagementComponent implements OnInit, OnDestroy, AfterViewInit { dataSource: LeagueDataSource | null; displayedColumns = [ // 'engName', 'icon', 'korName', // 'sevenName', // 'engCountry', // 'korCountry', 'addMethod', 'sportsEntities', 'test' ]; @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator; @ViewChild('filter', { static: true }) filter: ElementRef; @ViewChild(MatSort, { static: true }) sort: MatSort; // Private private _unsubscribeAll: Subject; constructor(private leagueService: LeagueService) { this._unsubscribeAll = new Subject(); } ngOnInit() { this.dataSource = new LeagueDataSource( this.leagueService, this.paginator, this.sort ); console.log(this.dataSource); // fromEvent(this.filter.nativeElement, 'keyup') // .pipe( // takeUntil(this._unsubscribeAll), // debounceTime(150), // distinctUntilChanged() // ) // .subscribe(() => { // if (!this.dataSource) { // return; // } // this.dataSource.filter = this.filter.nativeElement.value; // }); } /** * On destroy */ ngOnDestroy(): void { // Unsubscribe from all subscriptions this._unsubscribeAll.next(); this._unsubscribeAll.complete(); } ngAfterViewInit(): void {} } // export interface PeriodicElement { // name: string; // position: number; // weight: number; // symbol: string; // test: string; // } // const ELEMENT_DATA: PeriodicElement[] = [ // { position: 1, name: 'Hydrogen', weight: 1.0079, symbol: 'H', test: 'test' }, // { position: 2, name: 'Helium', weight: 4.0026, symbol: 'He', test: 'test' }, // { position: 3, name: 'Lithium', weight: 6.941, symbol: 'Li', test: 'test' }, // { // position: 4, // name: 'Beryllium', // weight: 9.0122, // symbol: 'Be', // test: 'test' // }, // { position: 5, name: 'Boron', weight: 10.811, symbol: 'B', test: 'test' }, // { position: 6, name: 'Carbon', weight: 12.0107, symbol: 'C', test: 'test' }, // { position: 7, name: 'Nitrogen', weight: 14.0067, symbol: 'N', test: 'test' }, // { position: 8, name: 'Oxygen', weight: 15.9994, symbol: 'O', test: 'test' }, // { position: 9, name: 'Fluorine', weight: 18.9984, symbol: 'F', test: 'test' }, // { position: 10, name: 'Neon', weight: 20.1797, symbol: 'Ne', test: 'test' }, // { position: 11, name: 'Sodium', weight: 22.9897, symbol: 'Na', test: 'test' }, // { // position: 12, // name: 'Magnesium', // weight: 24.305, // symbol: 'Mg', // test: 'test' // }, // { // position: 13, // name: 'Aluminum', // weight: 26.9815, // symbol: 'Al', // test: 'test' // }, // { // position: 14, // name: 'Silicon', // weight: 28.0855, // symbol: 'Si', // test: 'test' // }, // { // position: 15, // name: 'Phosphorus', // weight: 30.9738, // symbol: 'P', // test: 'test' // }, // { position: 16, name: 'Sulfur', weight: 32.065, symbol: 'S', test: 'test' }, // { // position: 17, // name: 'Chlorine', // weight: 35.453, // symbol: 'Cl', // test: 'test' // }, // { position: 18, name: 'Argon', weight: 39.948, symbol: 'Ar', test: 'test' }, // { // position: 19, // name: 'Potassium', // weight: 39.0983, // symbol: 'K', // test: 'test' // }, // { position: 20, name: 'Calcium', weight: 40.078, symbol: 'Ca', test: 'test' } // ];