mirror of
				https://github.com/zoriya/Kyoo.git
				synced 2025-11-03 19:17:16 -05:00 
			
		
		
		
	Cleaning lists components
This commit is contained in:
		
							parent
							
								
									4fb0274410
								
							
						
					
					
						commit
						06cbd21502
					
				@ -1,6 +1,6 @@
 | 
				
			|||||||
<div class="root">
 | 
					<div class="root">
 | 
				
			||||||
  <div class="episodes" id="episodes">
 | 
					  <div class="episodes" #scrollView (scroll)="onScroll()">
 | 
				
			||||||
    <a class="episode" *ngFor="let episode of this.episodes; let i = index" id="el-{{i}}" routerLink="/watch/{{episode.link}}" href="/watch/{{this.showSlug}}-s{{episode.seasonNumber}}e{{episode.episodeNumber}}">
 | 
					    <a class="episode" *ngFor="let episode of this.episodes" #episode routerLink="/watch/{{episode.link}}" href="/watch/{{this.showSlug}}-s{{episode.seasonNumber}}e{{episode.episodeNumber}}">
 | 
				
			||||||
      <div matRipple class="img" [style.background-image]="sanitize(episode.thumb)">
 | 
					      <div matRipple class="img" [style.background-image]="sanitize(episode.thumb)">
 | 
				
			||||||
        <button mat-icon-button class="playBtn"><i class="material-icons playIcon">play_circle_outline</i></button>
 | 
					        <button mat-icon-button class="playBtn"><i class="material-icons playIcon">play_circle_outline</i></button>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
@ -16,6 +16,6 @@
 | 
				
			|||||||
      </ng-template>
 | 
					      </ng-template>
 | 
				
			||||||
    </a>
 | 
					    </a>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <button mat-raised-button color="accent" class="scrollBtn d-none" id="el-leftBtn" (click)="scrollLeft()"><mat-icon>arrow_left</mat-icon></button>
 | 
					  <button mat-raised-button color="accent" class="scrollBtn leftBtn d-none" #leftBtn (click)="scrollLeft()"><mat-icon>arrow_left</mat-icon></button>
 | 
				
			||||||
  <button mat-raised-button color="accent" class="scrollBtn" id="el-rightBtn" (click)="scrollRight()"><mat-icon>arrow_right</mat-icon></button>
 | 
					  <button mat-raised-button color="accent" class="scrollBtn rightBtn" #rightBtn (click)="scrollRight()"><mat-icon>arrow_right</mat-icon></button>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -164,14 +164,14 @@
 | 
				
			|||||||
  bottom: 60%;
 | 
					  bottom: 60%;
 | 
				
			||||||
  display: none;
 | 
					  display: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &#el-leftBtn
 | 
					  &.leftBtn
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    left: 0;
 | 
					    left: 0;
 | 
				
			||||||
    padding-left: 10px;
 | 
					    padding-left: 10px;
 | 
				
			||||||
    padding-right: 2px;
 | 
					    padding-right: 2px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &#el-rightBtn
 | 
					  &.rightBtn
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    right: 0;
 | 
					    right: 0;
 | 
				
			||||||
    padding-right: 10px;
 | 
					    padding-right: 10px;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,59 +1,60 @@
 | 
				
			|||||||
import { Component, OnInit, Input, SimpleChange } from '@angular/core';
 | 
					import { Component, ElementRef, Input, ViewChild } from '@angular/core';
 | 
				
			||||||
import { Episode } from "../../models/episode";
 | 
					import { MatButton } from "@angular/material/button";
 | 
				
			||||||
import { DomSanitizer } from "@angular/platform-browser";
 | 
					import { DomSanitizer } from "@angular/platform-browser";
 | 
				
			||||||
 | 
					import { Episode } from "../../models/episode";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component({
 | 
					@Component({
 | 
				
			||||||
  selector: 'app-episodes-list',
 | 
					  selector: 'app-episodes-list',
 | 
				
			||||||
  templateUrl: './episodes-list.component.html',
 | 
					  templateUrl: './episodes-list.component.html',
 | 
				
			||||||
  styleUrls: ['./episodes-list.component.scss']
 | 
					  styleUrls: ['./episodes-list.component.scss']
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class EpisodesListComponent implements OnInit
 | 
					export class EpisodesListComponent
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	@Input() displayShowTitle: boolean = false;
 | 
						@Input() displayShowTitle: boolean = false;
 | 
				
			||||||
  @Input() episodes: Episode[];
 | 
					  @Input() episodes: Episode[];
 | 
				
			||||||
  private root: HTMLElement;
 | 
						@ViewChild("scrollView", { static: true }) private scrollView: ElementRef;
 | 
				
			||||||
 | 
						@ViewChild("leftBtn", { static: false }) private leftBtn: MatButton;
 | 
				
			||||||
 | 
						@ViewChild("rightBtn", { static: false }) private rightBtn: MatButton;
 | 
				
			||||||
 | 
						@ViewChild("episode", { static: false }) private episode: ElementRef;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	constructor(private sanitizer: DomSanitizer) { }
 | 
						constructor(private sanitizer: DomSanitizer) { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  ngOnInit()
 | 
						scrollLeft()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
    this.root = document.getElementById("episodes");
 | 
							let scroll: number = this.roundScroll(this.scrollView.nativeElement.offsetWidth * 0.80);
 | 
				
			||||||
 | 
							this.scrollView.nativeElement.scrollBy({ top: 0, left: -scroll, behavior: "smooth" });
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						scrollRight()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							let scroll: number = this.roundScroll(this.scrollView.nativeElement.offsetWidth * 0.80);
 | 
				
			||||||
 | 
							this.scrollView.nativeElement.scrollBy({ top: 0, left: scroll, behavior: "smooth" });
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						roundScroll(offset: number): number
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							let episodeSize: number = this.episode.nativeElement.scrollWidth;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							offset = Math.round(offset / episodeSize) * episodeSize;
 | 
				
			||||||
 | 
							if (offset == 0)
 | 
				
			||||||
 | 
								offset = episodeSize;
 | 
				
			||||||
 | 
							return offset;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						onScroll()
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							if (this.scrollView.nativeElement.scrollLeft <= 0)
 | 
				
			||||||
 | 
								this.leftBtn._elementRef.nativeElement.classList.add("d-none");
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								this.leftBtn._elementRef.nativeElement.classList.remove("d-none");
 | 
				
			||||||
 | 
							if (this.scrollView.nativeElement.scrollLeft >= this.scrollView.nativeElement.scrollWidth - this.scrollView.nativeElement.clientWidth)
 | 
				
			||||||
 | 
								this.rightBtn._elementRef.nativeElement.classList.add("d-none");
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								this.rightBtn._elementRef.nativeElement.classList.remove("d-none");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  sanitize(url: string)
 | 
					  sanitize(url: string)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    return this.sanitizer.bypassSecurityTrustStyle("url(" + url + ")");
 | 
					    return this.sanitizer.bypassSecurityTrustStyle("url(" + url + ")");
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					 | 
				
			||||||
  scrollLeft()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    let scroll: number = this.roundScroll(this.root.offsetWidth * 0.80);
 | 
					 | 
				
			||||||
    this.root.scrollBy({ top: 0, left: -scroll, behavior: "smooth" });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    document.getElementById("el-rightBtn").classList.remove("d-none");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (this.root.scrollLeft - scroll <= 0)
 | 
					 | 
				
			||||||
      document.getElementById("el-leftBtn").classList.add("d-none");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  scrollRight()
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    let scroll: number = this.roundScroll(this.root.offsetWidth * 0.80);
 | 
					 | 
				
			||||||
    this.root.scrollBy({ top: 0, left: scroll, behavior: "smooth" });
 | 
					 | 
				
			||||||
    document.getElementById("el-leftBtn").classList.remove("d-none");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (this.root.scrollLeft + scroll >= this.root.scrollWidth - this.root.clientWidth)
 | 
					 | 
				
			||||||
      document.getElementById("el-rightBtn").classList.add("d-none");
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  roundScroll(offset: number): number
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    let episodeSize: number = document.getElementById("el-1").scrollWidth;
 | 
					 | 
				
			||||||
    offset = Math.round(offset / episodeSize) * episodeSize;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (offset == 0)
 | 
					 | 
				
			||||||
      offset = episodeSize;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return offset;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,11 +1,11 @@
 | 
				
			|||||||
<div class="scroll-row mb-5">
 | 
					<div class="scroll-row mb-5">
 | 
				
			||||||
  <div class="people-container" id="peopleScroll">
 | 
					  <div class="people-container" #scrollView (scroll)="onScroll()">
 | 
				
			||||||
    <a class="people" *ngFor="let people of this.people" routerLink="/people/{{people.slug}}" href="/people/{{people.slug}}">
 | 
					    <a class="people" *ngFor="let people of this.people" routerLink="/people/{{people.slug}}" href="/people/{{people.slug}}">
 | 
				
			||||||
      <div matRipple [style.background-image]="getPeopleIcon(people.slug)"> </div>
 | 
					      <div matRipple [style.background-image]="getPeopleIcon(people.slug)"> </div>
 | 
				
			||||||
      <h6 class="name">{{people.name}}</h6>
 | 
					      <h6 class="name">{{people.name}}</h6>
 | 
				
			||||||
      <p class="role">{{people.role}}</p>
 | 
					      <p class="role">{{people.role}}</p>
 | 
				
			||||||
    </a>
 | 
					    </a>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <button mat-raised-button color="accent" class="scrollBtn d-none" id="pl-leftBtn" (click)="scrollLeft()"><mat-icon>arrow_left</mat-icon></button>
 | 
					  <button mat-raised-button color="accent" class="scrollBtn leftBtn d-none" #leftBtn (click)="scrollLeft()"><mat-icon>arrow_left</mat-icon></button>
 | 
				
			||||||
  <button mat-raised-button color="accent" class="scrollBtn" id="pl-rightBtn" (click)="scrollRight()"><mat-icon>arrow_right</mat-icon></button>
 | 
					  <button mat-raised-button color="accent" class="scrollBtn rightBtn" #rightBtn (click)="scrollRight()"><mat-icon>arrow_right</mat-icon></button>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -123,33 +123,17 @@
 | 
				
			|||||||
  bottom: 40%;
 | 
					  bottom: 40%;
 | 
				
			||||||
  display: none;
 | 
					  display: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &#pl-leftBtn
 | 
					  &.leftBtn
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    left: 0;
 | 
					    left: 0;
 | 
				
			||||||
    padding-left: 10px;
 | 
					    padding-left: 10px;
 | 
				
			||||||
    padding-right: 2px;
 | 
					    padding-right: 2px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &#pl-rightBtn
 | 
					  &.rightBtn
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    right: 0;
 | 
					    right: 0;
 | 
				
			||||||
    padding-right: 10px;
 | 
					    padding-right: 10px;
 | 
				
			||||||
    padding-left: 2px;
 | 
					    padding-left: 2px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
#leftBtn
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  position: absolute;
 | 
					 | 
				
			||||||
  left: 0;
 | 
					 | 
				
			||||||
  top: 33%;
 | 
					 | 
				
			||||||
  outline: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#rightBtn
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  position: absolute;
 | 
					 | 
				
			||||||
  right: 0;
 | 
					 | 
				
			||||||
  top: 33%;
 | 
					 | 
				
			||||||
  outline: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
import { Component, Input, OnInit } from '@angular/core';
 | 
					import { Component, ElementRef, Input, ViewChild } from '@angular/core';
 | 
				
			||||||
 | 
					import { MatButton } from "@angular/material/button";
 | 
				
			||||||
import { DomSanitizer } from "@angular/platform-browser";
 | 
					import { DomSanitizer } from "@angular/platform-browser";
 | 
				
			||||||
import { People } from "../../models/people";
 | 
					import { People } from "../../models/people";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -7,38 +8,37 @@ import { People } from "../../models/people";
 | 
				
			|||||||
	templateUrl: './people-list.component.html',
 | 
						templateUrl: './people-list.component.html',
 | 
				
			||||||
	styleUrls: ['./people-list.component.scss']
 | 
						styleUrls: ['./people-list.component.scss']
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class PeopleListComponent implements OnInit
 | 
					export class PeopleListComponent
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	@Input() people: People[];
 | 
						@Input() people: People[];
 | 
				
			||||||
	private peopleScroll: HTMLElement;
 | 
						@ViewChild("scrollView", { static: true }) private scrollView: ElementRef;
 | 
				
			||||||
 | 
						@ViewChild("leftBtn", { static: false }) private leftBtn: MatButton;
 | 
				
			||||||
 | 
						@ViewChild("rightBtn", { static: false }) private rightBtn: MatButton;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	constructor(private sanitizer: DomSanitizer) { }
 | 
						constructor(private sanitizer: DomSanitizer) { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ngOnInit()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		this.peopleScroll = document.getElementById("peopleScroll");
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	scrollLeft()
 | 
						scrollLeft()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		let scroll: number = this.peopleScroll.offsetWidth * 0.80;
 | 
							let scroll: number = this.scrollView.nativeElement.offsetWidth * 0.80;
 | 
				
			||||||
		this.peopleScroll.scrollBy({ top: 0, left: -scroll, behavior: "smooth" });
 | 
							this.scrollView.nativeElement.scrollBy({ top: 0, left: -scroll, behavior: "smooth" });
 | 
				
			||||||
 | 
					 | 
				
			||||||
		document.getElementById("pl-rightBtn").classList.remove("d-none");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (this.peopleScroll.scrollLeft - scroll <= 0)
 | 
					 | 
				
			||||||
			document.getElementById("pl-leftBtn").classList.add("d-none");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	scrollRight()
 | 
						scrollRight()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		let scroll: number = this.peopleScroll.offsetWidth * 0.80;
 | 
							let scroll: number = this.scrollView.nativeElement.offsetWidth * 0.80;
 | 
				
			||||||
		this.peopleScroll.scrollBy({ top: 0, left: scroll, behavior: "smooth" });
 | 
							this.scrollView.nativeElement.scrollBy({ top: 0, left: scroll, behavior: "smooth" });
 | 
				
			||||||
		console.log(document.getElementById("pl-leftBtn"));
 | 
						}
 | 
				
			||||||
		document.getElementById("pl-leftBtn").classList.remove("d-none");
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (this.peopleScroll.scrollLeft + scroll >= this.peopleScroll.scrollWidth - this.peopleScroll.clientWidth)
 | 
						onScroll()
 | 
				
			||||||
			document.getElementById("pl-rightBtn").classList.add("d-none");
 | 
						{
 | 
				
			||||||
 | 
							if (this.scrollView.nativeElement.scrollLeft <= 0)
 | 
				
			||||||
 | 
								this.leftBtn._elementRef.nativeElement.classList.add("d-none");
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								this.leftBtn._elementRef.nativeElement.classList.remove("d-none");
 | 
				
			||||||
 | 
							if (this.scrollView.nativeElement.scrollLeft >= this.scrollView.nativeElement.scrollWidth - this.scrollView.nativeElement.clientWidth)
 | 
				
			||||||
 | 
								this.rightBtn._elementRef.nativeElement.classList.add("d-none");
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								this.rightBtn._elementRef.nativeElement.classList.remove("d-none");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	getPeopleIcon(slug: string)
 | 
						getPeopleIcon(slug: string)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,5 @@
 | 
				
			|||||||
<div class="scroll-row mb-5">
 | 
					<div class="scroll-row mb-5">
 | 
				
			||||||
  <div class="shows-container">
 | 
					  <div class="shows-container" #scrollView (scroll)="onScroll()">
 | 
				
			||||||
    <a class="show" *ngFor="let show of this.shows" routerLink="/show/{{show.slug}}" href="/show/{{show.slug}}">
 | 
					    <a class="show" *ngFor="let show of this.shows" routerLink="/show/{{show.slug}}" href="/show/{{show.slug}}">
 | 
				
			||||||
      <div matRipple [style.background-image]="getThumb(show.slug)"> </div>
 | 
					      <div matRipple [style.background-image]="getThumb(show.slug)"> </div>
 | 
				
			||||||
      <p class="title">{{show.title}}</p>
 | 
					      <p class="title">{{show.title}}</p>
 | 
				
			||||||
@ -7,6 +7,6 @@
 | 
				
			|||||||
      <ng-template #elseBlock><p class="date">{{show.startYear}}</p></ng-template>
 | 
					      <ng-template #elseBlock><p class="date">{{show.startYear}}</p></ng-template>
 | 
				
			||||||
    </a>
 | 
					    </a>
 | 
				
			||||||
  </div>
 | 
					  </div>
 | 
				
			||||||
  <button mat-raised-button color="accent" class="scrollBtn d-none" (click)="scrollLeft()"><mat-icon>arrow_left</mat-icon></button>
 | 
					  <button mat-raised-button color="accent" class="scrollBtn leftBtn d-none" #leftBtn (click)="scrollLeft()"><mat-icon>arrow_left</mat-icon></button>
 | 
				
			||||||
  <button mat-raised-button color="accent" class="scrollBtn" (click)="scrollRight()"><mat-icon>arrow_right</mat-icon></button>
 | 
					  <button mat-raised-button color="accent" class="scrollBtn rightBtn" #rightBtn (click)="scrollRight()"><mat-icon>arrow_right</mat-icon></button>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 | 
				
			|||||||
@ -109,77 +109,6 @@
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
/*.people
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  visibility: visible;
 | 
					 | 
				
			||||||
  margin: .25rem;
 | 
					 | 
				
			||||||
  text-decoration: none;
 | 
					 | 
				
			||||||
  color: inherit;
 | 
					 | 
				
			||||||
  outline: none;
 | 
					 | 
				
			||||||
  flex-shrink: 0;
 | 
					 | 
				
			||||||
  flex-grow: 0;
 | 
					 | 
				
			||||||
  width: 33%;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @include media-breakpoint-up(sm)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    width: 22%;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @include media-breakpoint-up(md)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    width: 20%;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @include media-breakpoint-up(lg)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    width: 15%;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  @include media-breakpoint-up(xl)
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    width: 10%;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  > div
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    width: 100%;
 | 
					 | 
				
			||||||
    height: 0;
 | 
					 | 
				
			||||||
    padding-top: 147.0588%;
 | 
					 | 
				
			||||||
    background-size: cover;
 | 
					 | 
				
			||||||
    background-color: #333333;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  > p, h6
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    white-space: nowrap;
 | 
					 | 
				
			||||||
    overflow: hidden;
 | 
					 | 
				
			||||||
    text-overflow: ellipsis;
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
    margin-bottom: 0px;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    &.role
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      font-size: 0.8em;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  &:hover
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    cursor: pointer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    > img
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      outline: solid var(--accentColor);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    .name
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
      text-decoration: underline;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
}*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.scroll-row
 | 
					.scroll-row
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  position: relative;
 | 
					  position: relative;
 | 
				
			||||||
@ -203,33 +132,17 @@
 | 
				
			|||||||
  bottom: 40%;
 | 
					  bottom: 40%;
 | 
				
			||||||
  display: none;
 | 
					  display: none;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &#pl-leftBtn
 | 
					  &.leftBtn
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    left: 0;
 | 
					    left: 0;
 | 
				
			||||||
    padding-left: 10px;
 | 
					    padding-left: 10px;
 | 
				
			||||||
    padding-right: 2px;
 | 
					    padding-right: 2px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &#pl-rightBtn
 | 
					  &.rightBtn
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    right: 0;
 | 
					    right: 0;
 | 
				
			||||||
    padding-right: 10px;
 | 
					    padding-right: 10px;
 | 
				
			||||||
    padding-left: 2px;
 | 
					    padding-left: 2px;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
#leftBtn
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  position: absolute;
 | 
					 | 
				
			||||||
  left: 0;
 | 
					 | 
				
			||||||
  top: 33%;
 | 
					 | 
				
			||||||
  outline: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#rightBtn
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  position: absolute;
 | 
					 | 
				
			||||||
  right: 0;
 | 
					 | 
				
			||||||
  top: 33%;
 | 
					 | 
				
			||||||
  outline: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,5 @@
 | 
				
			|||||||
import { Component, OnInit, Input } from '@angular/core';
 | 
					import { Component, ElementRef, Input, ViewChild } from '@angular/core';
 | 
				
			||||||
 | 
					import { MatButton } from "@angular/material/button";
 | 
				
			||||||
import { DomSanitizer } from "@angular/platform-browser";
 | 
					import { DomSanitizer } from "@angular/platform-browser";
 | 
				
			||||||
import { Show } from "../../models/show";
 | 
					import { Show } from "../../models/show";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -7,37 +8,37 @@ import { Show } from "../../models/show";
 | 
				
			|||||||
	templateUrl: './shows-list.component.html',
 | 
						templateUrl: './shows-list.component.html',
 | 
				
			||||||
	styleUrls: ['./shows-list.component.scss']
 | 
						styleUrls: ['./shows-list.component.scss']
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class ShowsListComponent implements OnInit
 | 
					export class ShowsListComponent
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	@Input() shows: Show[];
 | 
						@Input() shows: Show[];
 | 
				
			||||||
	private showsScroll: HTMLElement;
 | 
						@ViewChild("scrollView", { static: true }) private scrollView: ElementRef;
 | 
				
			||||||
 | 
						@ViewChild("leftBtn", { static: false }) private leftBtn: MatButton;
 | 
				
			||||||
 | 
						@ViewChild("rightBtn", { static: false }) private rightBtn: MatButton;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	constructor(private sanitizer: DomSanitizer) { }
 | 
						constructor(private sanitizer: DomSanitizer) { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ngOnInit()
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		this.showsScroll = document.getElementById("showsScroll");
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	scrollLeft()
 | 
						scrollLeft()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		let scroll: number = this.showsScroll.offsetWidth * 0.80;
 | 
							let scroll: number = this.scrollView.nativeElement.offsetWidth * 0.80;
 | 
				
			||||||
		this.showsScroll.scrollBy({ top: 0, left: -scroll, behavior: "smooth" });
 | 
							this.scrollView.nativeElement.scrollBy({ top: 0, left: -scroll, behavior: "smooth" });
 | 
				
			||||||
 | 
					 | 
				
			||||||
		document.getElementById("pl-rightBtn").classList.remove("d-none");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if (this.showsScroll.scrollLeft - scroll <= 0)
 | 
					 | 
				
			||||||
			document.getElementById("pl-leftBtn").classList.add("d-none");
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	scrollRight()
 | 
						scrollRight()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		let scroll: number = this.showsScroll.offsetWidth * 0.80;
 | 
							let scroll: number = this.scrollView.nativeElement.offsetWidth * 0.80;
 | 
				
			||||||
		this.showsScroll.scrollBy({ top: 0, left: scroll, behavior: "smooth" });
 | 
							this.scrollView.nativeElement.scrollBy({ top: 0, left: scroll, behavior: "smooth" });
 | 
				
			||||||
		document.getElementById("pl-leftBtn").classList.remove("d-none");
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (this.showsScroll.scrollLeft + scroll >= this.showsScroll.scrollWidth - this.showsScroll.clientWidth)
 | 
						onScroll()
 | 
				
			||||||
			document.getElementById("pl-rightBtn").classList.add("d-none");
 | 
						{
 | 
				
			||||||
 | 
							if (this.scrollView.nativeElement.scrollLeft <= 0)
 | 
				
			||||||
 | 
								this.leftBtn._elementRef.nativeElement.classList.add("d-none");
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								this.leftBtn._elementRef.nativeElement.classList.remove("d-none");
 | 
				
			||||||
 | 
							if (this.scrollView.nativeElement.scrollLeft >= this.scrollView.nativeElement.scrollWidth - this.scrollView.nativeElement.clientWidth)
 | 
				
			||||||
 | 
								this.rightBtn._elementRef.nativeElement.classList.add("d-none");
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								this.rightBtn._elementRef.nativeElement.classList.remove("d-none");
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	getThumb(slug: string)
 | 
						getThumb(slug: string)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user