<file_sep>import { Component, OnInit, AfterViewInit, ViewChild, ElementRef } from '@angular/core';
import { Directors } from '@shared/mock-data/mock.directors';
import { Director } from '@shared/models/director';
import { Observable, fromEvent } from 'rxjs';
import { map, filter, debounceTime } from 'rxjs/operators';
import { SearchService } from '../../services/search.service';
import { TranslateService } from '@ngx-translate/core';
import { LanguageService } from '@core/services/language.service';
import { NgxSpinnerService } from 'ngx-spinner';

@Component({
  selector: 'app-all-directors',
  templateUrl: './all-directors.component.html',
  styleUrls: ['./all-directors.component.scss']
})

export class AllDirectorsComponent implements OnInit, AfterViewInit {

  public allDirectors: Director[];
  public input: Observable<Event>;
  @ViewChild('searchQuery') public searchQuery: ElementRef;

  constructor(
    private searchService: SearchService,
    private translate: TranslateService,
    private languageService: LanguageService,
    private spinnerService: NgxSpinnerService) {

    this.languageService.getLanguage().subscribe(lang => {
      this.translate.use(lang);
    });
  }

  ngOnInit(): void {
    this.searchService.observeSearch.subscribe(
      arrOfDirectors => this.allDirectors = arrOfDirectors
    );
    this.translate.setDefaultLang('EN');
    this.spinner();
  }

  public ngAfterViewInit(): void {

    this.input = fromEvent(this.searchQuery.nativeElement, 'keyup');
    this.input.pipe(
      map(event => (event.target as HTMLInputElement).value),
      map(inputStr => {
        if (inputStr.length > 2) {
          return inputStr;
        } else {
          return '';
        }
      }),
      debounceTime(500)
    ).subscribe(
      str => {
        this.searchService.getSearchResult(str);
      }
    );
  }

  private spinner(): void {
    this.spinnerService.show();
    setTimeout(() => {
      this.spinnerService.hide();
    }, 0);
  }

}
<file_sep>// tslint:disable:max-line-length
import { Director } from '@shared/models/director';

export const Directors: Director[] = [
  {
    name: 'Еўсцiгней',
    surname: 'Miровiч',
    id: '1',
    yearsOfLife: '29 ліпеня [10 жнiўня], 1878 - 25 лютага, 1952',
    birthPlace: 'Санкт-Пецярбург, Расійская імперыя',
    generalInfo:
      'расійскі і беларускі савецкі акцёр, рэжысёр, драматург, педагог, прафесар (1945). Народны артыст Беларускай ССР (1940).',
    biography: [
      {
        date: '1900',
        content:
          'Прафесійную сцэнічную дзейнасць пачаў у 1900 году ў Пецярбургу як акцёр і рэжысёр. Гуляў у Адміралцейскім, Екацярынінскім, Кранштацкай тэатрах, з 1910 у тэатрах мініяцюр: Траецкім, інтымныя, Ліцейным.',
      },
      {
        date: '1921—1931',
        content:
          'Пачаў працаваць у тэатрах Беларусі. Мастацкі кіраўнік Беларускага дзяржаўнага драматычнага тэатра ў Мінску.',
      },
      {
        date: '1937—1940 ',
        content: 'Мастацкі кіраўнік Беларускага тэатра юнага гледача імя Н. Крупскай.',
      },
      {
        date: '1941—1945',
        content:
          'рэжысёр 1-га Беларускага дзяржаўнага драматычнага тэатра ў Мінску (цяпер - Нацыянальны акадэмічны тэатр імя Янкі Купалы).',
      },
      {
        date: '1945',
        content:
          ' Мастацкі кіраўнік і загадчык кафедры майстэрства акцёра Беларускага тэатральна-мастацкага інстытута. Прафесар. Займаўся таксама выкладчыцкай дзейнасцю ў тэатральных студыях, у Мінскім тэатральным вучылішчы.',
      },
    ],
    listOfWorks: [
      {
        date: '1923',
        work: 'Кастусь Калiновскi',
      },
      {
        date: '1927',
        work: 'Мяцеж',
      },
      {
        date: '1937',
        work: 'Як гартавалася сталь',
      },
      {
        date: '1939',
        work: 'Цудоўная дудка',
      },
    ],
    photos: [
      '../assets/images/mirovich1.jpg',
      '../assets/images/mirovich2.jpg',
      '../assets/images/mirovich3.jpg',
      '../assets/images/mirovich4.jpg',
      '../assets/images/mirovich5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=Yunms45xnog&feature=emb_logo'],
    placesOfActivity: [
      {
        activity:
          '1-шы Беларускі дзяржаўны драматычны тэатр у Мінску (цяпер - Нацыянальны акадэмічны тэатр імя Янкі Купалы)',
        center: [53.90088357066573, 27.562774500000007],
      },
    ],
  },
  {
    name: 'Ларыса',
    surname: 'Александроўская',
    id: '2',
    generalInfo:
      'беларуская, савецкая оперная спявачка (сапрана), рэжысёр, публіцыст, грамадскі дзеяч. Народная артыстка СССР (1940).',
    yearsOfLife: '2 лютага [15 лютага], 1902 - 23 траўня, 1980',
    birthPlace: 'Мінск, Расійская імперыя',
    biography: [
      {
        date: '1924-1928',
        content: 'Вучылася ў Мінскім музычным тэхнікуме, у 1928 - у спецыяльным оперным класе.',
      },
      {
        date: '1933 - 1951',
        content:
          'Салістка Беларускага тэатра оперы і балета ў Мінску. Выконвала як сапранавага, так і мецца-сапранавага партыі. Падчас вайны выступаў з канцэртамі на франтах, у шпіталях і ў партызанскіх атрадах.',
      },
      {
        date: '1951—1960 ',
        content:
          "Была адначасова і галоўным рэжысёрам Беларускага тэатра оперы і балета. У год ёй атрымоўвалася выпускаць па два прэм'ерных спектакля.",
      },
      {
        date: '1946—1980',
        content: 'Ініцыятар стварэння і нязменны старшыня праўлення Беларускага тэатральнага грамадства.',
      },
    ],
    listOfWorks: [
      {
        date: '1951',
        work: 'Ціхі Дон',
      },
      {
        date: '1953',
        work: 'Аiда',
      },
      {
        date: '1954',
        work: 'Барыс Гадуноў',
      },
      {
        date: '1955',
        work: 'Трубадур',
      },
      {
        date: '1960',
        work: 'Пікавая дама',
      },
    ],
    photos: [
      '../assets/images/aleksandrovskaya1.jpg',
      '../assets/images/aleksandrovskaya2.jpg',
      '../assets/images/aleksandrovskaya3.jpg',
      '../assets/images/aleksandrovskaya4.jpg',
      '../assets/images/aleksandrovskaya5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=v3LC9JtorMM'],
    placesOfActivity: [
      {
        activity: 'Беларускі тэатр оперы і балета',
        center: [53.91074407066195, 27.561848999999974],
      },
    ],
  },
  {
    name: 'Барыс',
    surname: 'Луценка',
    id: '3',
    generalInfo:
      'савецкі і беларускі рэжысёр-пастаноўшчык тэатра і кіно. Народны артыст Рэспублікі Беларусь (1995). Заслужаны дзеяч мастацтваў Беларускай ССР (1975).',
    yearsOfLife: '16 верасня, 1937 - 5 лютага, 2020',
    birthPlace: 'Майкоп, Краснадарскі край, РСФСР, СССР',
    biography: [
      {
        date: '1967',
        content:
          'Скончыў Беларускі дзяржаўны тэатральна-мастацкі інстытут (курс Заслужанага дзеяча мастацтваў Беларускай ССР В. А. Маланкіна).',
      },
      {
        date: '1967—1973, 1981—1982',
        content: 'Працаваў рэжысэрам Нацыянальнага акадэмічнага тэатра імя Я. Купалы.',
      },
      {
        date: '1973—1981',
        content: 'Працаваў галоўным рэжысёрам Дзяржаўнага рускага драматычнага тэатра Беларускай ССР.',
      },
      {
        date: '1991-2008, 2008-2020',
        content:
          'Мастацкі кіраўнік, а затым рэжысёр-пастаноўшчык Нацыянальнага акадэмічнага драматычнага тэатра імя <NAME>.',
      },
    ],
    listOfWorks: [
      {
        date: '1974',
        work: 'У. Шэкспір «Макбет»',
      },
      {
        date: '1975',
        work: 'А. Твардоўскі «Васіль Цёркін»',
      },
      {
        date: '1976',
        work: 'М. Горкі «Апошнія»',
      },
      {
        date: '1978',
        work: 'В. Быкаў «Пайсці і не вярнуцца»',
      },
      {
        date: '1997',
        work: 'Я. Купала «Раскіданае гняздо»',
      },
      {
        date: '2002',
        work: 'Я. Купала «Сон на кургане»',
      },
    ],
    photos: [
      '../assets/images/lucenko1.jpg',
      '../assets/images/lucenko2.jpg',
      '../assets/images/lucenko4.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=wM-HkQ59usY'],
    placesOfActivity: [
      {
        activity: 'Нацыянальны акадэмічны драматычны тэатр імя <NAME>',
        center: [53.89840557065936, 27.551131999999964],
      },
    ],
  },
  {
    name: 'Iгнат',
    surname: 'Буйнiцкi',
    id: '4',
    yearsOfLife: '10 [22] жнiўня, 1861 - 9 [22] верасня, 1917',
    birthPlace: 'сядзіба Поливачи Прозорокской воласці (Глыбоцкі раён Віцебскай вобласці)',
    generalInfo:
      'беларускі акцёр, рэжысёр, тэатральны дзеяч, заснавальнік першага прафесійнага нацыянальнага беларускага тэатра.',
    biography: [
      {
        date: '1907',
        content:
          'Разам з дочкамі Вандай і Аленай, а таксама са сваімі блізкімі сябрамі стварыў у фальварку Поливачи аматарскую трупу. Асаблівасцю выступленняў было тое, што са сцэны гучала беларуская мова, выконваліся знаёмыя простым людзям народныя танцы.',
      },
      {
        date: '1910',
        content: 'На яе аснове была сфарміравана пастаянная група і пачаты працяглыя гастролі па Беларусі.',
      },
      {
        date: '1913',
        content:
          'Буйніцкі арганізаваў Прозорокское беларускае крэдытнае таварыства, у якім кожны селянін пад невялікі працэнт мог атрымаць пазыку.',
      },
      {
        date: '1914—1916',
        content: 'Буйніцкі прымаў актыўны ўдзел у дзейнасці віленскага таварыства «У дапамогу фронту».',
      },
      {
        date: '1917',
        content:
          'Быў адным з ініцыятараў стварэння «Першага таварыства беларускай драмы і камедыі» ў Мінску, на базе якога паўстаў Нацыянальны акадэмічны тэатр імя Янкі Купалы.',
      },
      {
        date: '1917',
        content: 'Адправіўся на Заходні фронт Першай сусветнай вайны.',
      },
    ],
    listOfWorks: [
      {
        date: '1913',
        work: '«Лявонiха»',
      },
      {
        date: '1914',
        work: '«Дуда-весялуха»',
      },
      {
        date: '1914',
        work: '«Па рэвізіі» М. Крапіўніцкі',
      },
      {
        date: '1916',
        work: '«Модны шляхцюк» К. Каганца',
      },
    ],
    photos: ['../assets/images/bujnicki1.jpg', '../assets/images/bujnicki4.jpg'],
    videos: ['https://www.youtube.com/watch?v=ACDGr4TUkvs'],
    placesOfActivity: [
      {
        activity: 'сядзіба Поливачи Прозорокской воласці (Глыбоцкі раён Віцебскай вобласці)',
        center: [55.18449707014662, 27.862847499999972],
      },
    ],
  },
  {
    name: 'Леон',
    surname: 'Рахленка',
    id: '5',
    yearsOfLife: '6 [19] верасня, 1907 - 9 сакавiка, 1986',
    birthPlace: 'пас. Церахоўка, Гомельскі павет, Магілёўская губерня, Расійская імперыя',
    generalInfo: 'савецкі акцёр, рэжысёр, педагог. Народны артыст СССР (1966).',
    biography: [
      {
        date: '1924—1927',
        content:
          'Вучыўся ў Ленінградскім тэхнікуме сцэнічных мастацтваў (вучань Л.С. Вивьена і С.Э. Радлова).',
      },
      {
        date: '1926-1927',
        content: 'Артыст і асістэнт рэжысёра Ленінградскага працоўнага тэатра Пралеткульта.',
      },
      {
        date: '1927-1928',
        content: 'Мастацкі кіраўнік тэатральнай рабочай студыі Кіеўскага Савета прафсаюзаў.',
      },
      {
        date: '1929—1981',
        content:
          'Акцёр і рэжысёр (з 1935) (у 1938-1943 гадах - загадчык мастацкай часткай) Тэатра ім. <NAME> ў Мінску. Рэжысёрскую дзейнасць пачаў пад кіраўніцтвам <NAME>.',
      },
    ],
    listOfWorks: [
      {
        date: '1938',
        work: '«Партызаны» К. Крапівы',
      },
      {
        date: '1942',
        work: '«Фронт» <NAME>',
      },
      {
        date: '1943',
        work: '«Рускія людзі »<NAME>',
      },
      {
        date: '1956',
        work: '«Крамлёўскія куранты» <NAME>',
      },
      {
        date: '1957',
        work: '«Навальнічны год» <NAME>',
      },
    ],
    photos: ['../assets/images/rahlenko1.jpg', '../assets/images/rahlenko3.jpg'],
    videos: ['https://www.youtube.com/watch?v=kimvRGqEe-U'],
    placesOfActivity: [
      {
        activity:
          '1-шы Беларускі дзяржаўны драматычны тэатр у Мінску (цяпер - Нацыянальны акадэмічны тэатр імя Янкі Купалы)',
        center: [53.90088357066573, 27.562774500000007],
      },
    ],
  },
  {
    name: 'Ўладзiмiр',
    surname: 'Цезаўроўскi',
    id: '6',
    yearsOfLife: '1880 - 1955',
    birthPlace: 'Ліўны, Арлоўская губерня, Расійская імперыя',
    generalInfo: 'савецкі акцёр і рэжысёр, Заслужаны артыст РСФСР (1945 г.).',
    biography: [
      {
        date: '1901',
        content: 'Сустрэўся з Неміровіча-Данчанкі і стаў працаваць у яго тэатры.',
      },
      {
        date: '1905',
        content: 'Скончыў мастацкую школу пры тэатры і адразу быў прыняты ў асноўную трупу тэатра.',
      },
      {
        date: '1905—1918',
        content:
          'Акцёр МХТ. У 1918 году арганізаваў у Адэсе мастацкую студыю. Затым працаваў як рэжысёр у тэатры Массодрам (Адэса).',
      },
      {
        date: '1917',
        content: 'Зняў свой адзіны нямы мастацкі фільм у 4 частках «Жанчына без галавы».',
      },
      {
        date: '1941—1946',
        content: 'Галоўны рэжысёр Маскоўскага абласнога тэатра юнага гледача.',
      },
      {
        date: '1925',
        content:
          'Рэжысёр-адміністратар Опернай студыі <NAME>слаўскага ў Маскве. Кіраваў операй у Мінску і Тыфлісе. Быў першым оперным рэжысёрам і заснавальнікам беларускай оперы.',
      },
    ],
    listOfWorks: [
      {
        date: '1925',
        work: '«Залаты пеўнік» (М.Рымскага-Корсакаў)',
      },
      {
        date: '1926',
        work: '«Яўген Анегін» (П.Чайкоўскі)',
      },
      {
        date: '1917',
        work: '«Жанчына без галавы»',
      },
      {
        date: '1930',
        work: '«Беднасць не загана» (А.Астроўскага)',
      },
    ],
    photos: [
      '../assets/images/tezavrovski1.jpg',
      '../assets/images/tezavrovski3.jpg',
      '../assets/images/tezavrovski4.jpg',
      '../assets/images/tezavrovski5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=nK_FVB1d_RM'],
    placesOfActivity: [
      {
        activity: 'Маскоўскі акадэмічны Музычны тэатр <NAME>іслаўскага і У. І. Неміровіча-Данчанкі',
        center: [55.764520568969374, 37.61039499999998],
      },
    ],
  },
];
<file_sep>import { Component, Input, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { LanguageService } from '@core/services/language.service';

@Component({
  selector: 'app-developer-item',
  templateUrl: './developer-item.component.html',
  styleUrls: ['./developer-item.component.scss'],
})
export class DeveloperItemComponent implements OnInit {
  @Input() developer;
  constructor(
    private router: Router,
    private translate: TranslateService,
    private languageService: LanguageService,
  ) {
    this.languageService.getLanguage().subscribe(lang => {
      this.translate.use(lang);
    });
  }

  public ngOnInit(): void {
    this.translate.setDefaultLang('EN');
  }
}
<file_sep>import { Component, OnInit, Input } from '@angular/core';

@Component({
  selector: 'app-list-of-works',
  templateUrl: './list-of-works.component.html',
  styleUrls: ['./list-of-works.component.scss'],
})
export class ListOfWorksComponent implements OnInit {
  @Input() public listOfWorks: { date: string; work: string }[];

  constructor() {}

  ngOnInit(): void {}
}
<file_sep>import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { HttpClient } from '@angular/common/http';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { DetailedInformationRoutingModule } from './detailed-information.routing.module';
import { DetailesComponent } from './pages/detailes/detailes.component';
import { SharedModule } from '@shared/shared.module';
import { DirectorService } from './services/director.service';
import { MapComponent } from './components/map/map.component';
import { AngularYandexMapsModule } from 'angular8-yandex-maps';
import { ListOfWorksComponent } from './components/list-of-works/list-of-works.component';
import { VideosComponent } from './components/videos/videos.component';
import { YouTubePlayerModule } from '@angular/youtube-player';

import { TimelineComponent } from './components/timeline/timeline.component';
import { MglTimelineModule } from 'angular-mgl-timeline.9';
import { GalleryComponent } from './components/gallery/gallery.component';
import { environment } from '../../environments/environment';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

const ModuleTranslate = TranslateModule.forChild({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [HttpClient],
  },
  isolate: true,
});

@NgModule({
  declarations: [
    DetailesComponent,
    MapComponent,
    ListOfWorksComponent,
    VideosComponent,
    TimelineComponent,
    GalleryComponent,
  ],
  imports: [
    CommonModule,
    SharedModule,
    DetailedInformationRoutingModule,
    ModuleTranslate,
    AngularYandexMapsModule.forRoot(environment.MAP_API_KEY),
    YouTubePlayerModule,
    MglTimelineModule,
    NgbModule,
  ],
  providers: [DirectorService],
})
export class DetailedInformationModule {}

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/detailed-information/', '.json');
}
<file_sep>import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TeamMembersRoutingModule } from './team-members-routing.module';
import { DeveloperItemComponent } from './components/developer-item/developer-item.component';
import { DevelopersListComponent } from './pages/developers-list/developers-list.component';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { HttpClient } from '@angular/common/http';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { SharedModule } from '@shared/shared.module';

const ModuleTranslate = TranslateModule.forChild({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [HttpClient],
  },
  isolate: true,
});

@NgModule({
  declarations: [DevelopersListComponent, DeveloperItemComponent],
  imports: [CommonModule, TeamMembersRoutingModule, ModuleTranslate, SharedModule],
  exports: [DevelopersListComponent],
})
export class TeamMembersModule {}

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/team-members/', '.json');
}
<file_sep>import { Component, OnInit, Input } from '@angular/core';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';

@Component({
  selector: 'app-videos',
  templateUrl: './videos.component.html',
  styleUrls: ['./videos.component.scss'],
})
export class VideosComponent implements OnInit {
  @Input() public videos: string[];
  public currentVideo: string;

  constructor(private modalService: NgbModal) {}

  public ngOnInit(): void {
    const tag = document.createElement('script');
    tag.src = 'https://www.youtube.com/iframe_api';
    document.body.appendChild(tag);
  }

  public openVerticallyCentered(content: any, video: string): void {
    this.modalService.open(content, { centered: true, size: 'xl' });
    this.currentVideo = video;
  }

  public getVideoId(url: string): string {
    const id: string = url.match(/v\=[A-Za-z0-9]+/)[0];
    console.log(id);
    return id.slice(2);
  }
}
<file_sep>import { Component, Input } from '@angular/core';
import { Director } from '@shared/models/director';
import { Router } from '@angular/router';

@Component({
  selector: 'app-director-of-day',
  templateUrl: './director-of-day.component.html',
  styleUrls: ['./director-of-day.component.scss'],
})
export class DirectorOfDayComponent {
  @Input() public director: Director;

  constructor(
    private router: Router,
  ) { }

  public goToDetails(): void {
    this.router.navigate(['director', this.director.id]);
  }
}
<file_sep>import { Component, OnInit, Input } from '@angular/core';

@Component({
  selector: 'app-map',
  templateUrl: './map.component.html',
  styleUrls: ['./map.component.scss'],
})
export class MapComponent implements OnInit {
  @Input() public placesOfActivity: { activity: string; center: number[] }[];

  constructor() {}

  public ngOnInit(): void {}

  public setMarkerText(text: string): { hintContent: string; balloonContent: string } {
    return {
      hintContent: '',
      balloonContent: text,
    };
  }
}
<file_sep>import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { DirectorsRoutingModule } from './directors-routing.module';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { HttpClient } from '@angular/common/http';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { AllDirectorsComponent } from './pages/all-directors/all-directors.component';
import { DirectorCardComponent } from './components/director-card/director-card.component';

const ModuleTranslate = TranslateModule.forChild({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [HttpClient],
  },
  isolate: true,
});

@NgModule({
  declarations: [AllDirectorsComponent, DirectorCardComponent],
  imports: [CommonModule, DirectorsRoutingModule, ModuleTranslate],
  exports: [AllDirectorsComponent],
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
})


export class DirectorsModule { }

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/directors/', '.json');
}
<file_sep>import { Component, OnInit } from '@angular/core';
import { StyleItem } from '@shared/models/style';
import { StyleItems } from '@shared/mock-data/mock.style';

@Component({
  selector: 'app-style-list',
  templateUrl: './style-list.component.html',
  styleUrls: ['./style-list.component.scss']
})
export class StyleListComponent implements OnInit {

  styleItems: StyleItem[] = StyleItems;
  constructor() { }

  ngOnInit(): void {
  }

}
<file_sep>import { Injectable } from '@angular/core';
import { Director } from '@shared/models/director';
import { Directors } from '@shared/mock-data/mock.directors';
import { Subject, Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class GetRandomAuthorService {
  public directors: Director[] = Directors;
  public author: Subject<Director> = new Subject<Director>();
  public author$: Observable<Director> = this.author.asObservable();

  constructor() { }

  public getAuthor(): void {
    const director = this.directors[Math.floor(Math.random() * this.directors.length)];
    this.author.next(director);
  }
}
<file_sep>import { Injectable } from '@angular/core';
import { Observable, BehaviorSubject } from 'rxjs';

@Injectable()
export class LanguageService {
  public subject: BehaviorSubject<string> = new BehaviorSubject<string>('EN');

  public setLanguage(lang: string): void {
    this.subject.next(lang);
  }

  public getLanguage(): Observable<string> {
    return this.subject.asObservable();
  }
}
<file_sep>import { Injectable } from '@angular/core';
import { Directors as DirectorsRU } from '@shared/mock-data/mock.directors';
import { Directors as DirectorsBE } from '@shared/mock-data/mock.directorsBE';
import { Directors as DirectorsEN } from '@shared/mock-data/mock.directorsEN';
import { Director } from '@shared/models/director';
import { BehaviorSubject, Observable } from 'rxjs';
import { LanguageService } from '@core/services/language.service';
import { BrowserStack } from 'protractor/built/driverProviders';

@Injectable({
  providedIn: 'root'
})
export class SearchService {
  public subjectSearch: BehaviorSubject<Director[]>;
  public observeSearch: Observable<Director[]>;
  public currentLng: string;
  protected EN = 'EN';
  protected RU = 'RU';
  protected BE = 'BE';

  constructor(private languageService: LanguageService) {
    this.subjectSearch = new BehaviorSubject(DirectorsRU);
    this.observeSearch = this.subjectSearch.asObservable();


    this.languageService.getLanguage().subscribe(lang => {
      this.currentLng = lang;
      console.log('lng: ' + this.currentLng);
    });
  }

  private searchByQuery(query: string) {

    const queryStr: string = query.toLowerCase();

    switch (this.currentLng) {
      case this.EN:
        return this.searchIn(DirectorsEN, queryStr);

      case this.RU:
        return this.searchIn(DirectorsRU, queryStr);

      case this.BE:
        return this.searchIn(DirectorsBE, queryStr);
    }

  }

  private searchIn(arrOfDirectors, queryStr) {
    return arrOfDirectors.filter(director => director.name.toLowerCase().includes(queryStr)
      || director.surname.toLowerCase().includes(queryStr)
      || director.birthPlace.toLowerCase().includes(queryStr)
    );

  }

  public getSearchResult(query: string) {
    this.subjectSearch.next(this.searchByQuery(query));
  }

}
<file_sep>import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SharedModule } from '@shared/shared.module';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { HeaderComponent } from './components/header/header.component';
import { HomePageComponent } from './pages/home/home-page.component';
import { DescriptionPortalComponent } from './components/description-portal/description-portal.component';
import { DirectorOfDayPageComponent } from './pages/director-of-day-page/director-of-day-page.component';
import { DirectorOfDayComponent } from './components/director-of-day/director-of-day.component';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { GetRandomAuthorService } from './services/get-random-author.service';
import { Error404Component } from './components/error404/error404.component';
import { Error404pageComponent } from './pages/error404page/error404page.component';
import { LanguageService } from '@core/services/language.service';
import { NgxSpinnerModule } from 'ngx-spinner';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

const ModuleTranslate = TranslateModule.forRoot({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [HttpClient],
  },
  isolate: true,
});

@NgModule({
  declarations: [
    HeaderComponent,
    HomePageComponent,
    DescriptionPortalComponent,
    DirectorOfDayComponent,
    DirectorOfDayPageComponent,
    Error404Component,
    Error404pageComponent,
  ],
  imports: [
    CommonModule,
    SharedModule,
    NgbModule,
    HttpClientModule,
    ModuleTranslate,
    NgxSpinnerModule,
    BrowserAnimationsModule,
  ],
  exports: [SharedModule, HomePageComponent, HeaderComponent, TranslateModule],
  providers: [GetRandomAuthorService, LanguageService],
})
export class CoreModule {}

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/core/', '.json');
}
<file_sep>import { Component, OnInit } from '@angular/core';
import { GeneralLog } from '../../models/worklog.models';
import { WorklogService } from '../../services/worklog.service';
import { LanguageService } from '@core/services/language.service';
import { TranslateService } from '@ngx-translate/core';
import { NgxSpinnerService } from 'ngx-spinner';

@Component({
  selector: 'app-member-log',
  templateUrl: './member-log.component.html',
  styleUrls: ['./member-log.component.scss'],
})
export class MemberLogComponent implements OnInit {
  public logs = GeneralLog;
  public counter = this.worklogService.counter;

  constructor(
    public worklogService: WorklogService,
    private languageService: LanguageService,
    public translate: TranslateService,
    private spinnerService: NgxSpinnerService,
  ) {
    this.languageService.getLanguage().subscribe(lang => {
      this.translate.use(lang);
    });
  }

  public ngOnInit(): void {
    this.translate.setDefaultLang('EN');
    this.spinner();
  }

  public findItem(id: number): void {
    this.logs[this.worklogService.counter].item[id - 1].completed = !this.logs[this.worklogService.counter]
      .item[id - 1].completed;
  }

  public calculateTotal(language: string): string {
    let acc = 0;
    let total: string;

    if (this.worklogService.counter === 0) {
      this.logs[this.worklogService.counter].item.map(e => {
        if (e.completed) {
          acc += +e.points;
        }
      });
    }

    if (this.worklogService.counter) {
      this.logs[this.worklogService.counter].item.map(e => {
        if (e.completed) {
          acc += +e.points.slice(0, -3);
        }
      });
    }

    switch (language) {
      case 'RU':
        !this.worklogService.counter ? (total = `Всего: ${acc} баллов`) : (total = `Всего: ${acc} часа(ов)`);
        break;
      case 'EN':
        !this.worklogService.counter ? (total = `Total: ${acc} pt`) : (total = `Total: ${acc} hr`);
        break;
      case 'BE':
        !this.worklogService.counter ? (total = `Усяго: ${acc} балаў`) : (total = `Усяго: ${acc} гадзін(ы)`);
        break;
    }

    return total;
  }

  private spinner(): void {
    this.spinnerService.show();
    setTimeout(() => {
      this.spinnerService.hide();
    }, 0);
  }
}
<file_sep>export interface IStatePages {
  home: boolean;
  allDirectors: boolean;
  workLog: boolean;
  styleGuide: boolean;
  ourTeam: boolean;
}
<file_sep>import { Component, OnInit, Input } from '@angular/core';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';

@Component({
  selector: 'app-gallery',
  templateUrl: './gallery.component.html',
  styleUrls: ['./gallery.component.scss'],
})
export class GalleryComponent implements OnInit {
  @Input() public photos: string[];
  public currentImage: string;

  constructor(private modalService: NgbModal) {}

  public ngOnInit(): void {}

  public openVerticallyCentered(content: any, image: string): void {
    this.modalService.open(content, { centered: true, size: 'xl' });
    this.currentImage = image;
  }
}
<file_sep>import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root',
})
export class WorklogService {
  public counter = 0;

  public getCurrentMember($event): void {
    const controlNext = $event.target.classList.contains('carousel-control-next');
    const controlNextIcon = $event.target.classList.contains('carousel-control-next-icon');
    const controlPrev = $event.target.classList.contains('carousel-control-prev');
    const controlPrevIcon = $event.target.classList.contains('carousel-control-prev-icon');

    if (controlNext || controlNextIcon) {
      this.counter += 1;
      if (this.counter > 6) {
        this.counter = 0;
      }
    }
    if (controlPrev || controlPrevIcon) {
      this.counter -= 1;
      if (this.counter < 0) {
        this.counter = 6;
      }
    }
  }
}
<file_sep>import { Developer } from '@shared/models/developer';

export const Developers: Developer[] = [
{
  name: 'Evgeny',
  surname: 'Kravchenko',
  photo: '../assets/images/developers/kravchenko.jfif',
  github: 'https://github.com/Evgeny-Kravchenko',
  telegram: 'https://t.me/k1696',
  worklog: '10%'
},
{
  name: 'Ekaterina',
  surname: 'Lysiuk',
  photo: '../assets/images/developers/lysiuk.png',
  github: 'https://github.com/ekater1na',
  telegram: 'https://t.me/ObsssQ',
  worklog: '10%'
},
{
  name: 'Mikhail',
  surname: 'Sidarkevich',
  photo: '../assets/images/developers/sidarkevich.png',
  github: 'https://github.com/chivekrodis',
  telegram: 'https://t.me/chivekrodis',
  worklog: '10%'
},
{
  name: 'Mikhail',
  surname: 'Shcheglakov',
  photo: '../assets/images/developers/shcheglakov.png',
  github: 'https://github.com/madmike85',
  telegram: 'https://t.me/MikhailShcheglakov',
  worklog: '10%'
},
{
  name: 'Maria',
  surname: 'Golomb',
  photo: '../assets/images/developers/golomb.png',
  github: 'https://github.com/mariagolomb',
  telegram: 'https://t.me/MariaGolomb',
  worklog: '10%'
},
{
  name: 'Anastasiya',
  surname: 'Popova',
  photo: '../assets/images/developers/popova.png',
  github: 'https://github.com/a-popova',
  telegram: 'https://t.me/anastasiya2810',
  worklog: '10%'
},
];
<file_sep>import { Component, OnInit } from '@angular/core';
import { NgbCarouselConfig } from '@ng-bootstrap/ng-bootstrap';
import { WorklogService } from '../../services/worklog.service';
import { TranslateService } from '@ngx-translate/core';
import { LanguageService } from '@core/services/language.service';

@Component({
  selector: 'app-carousel-navigation',
  templateUrl: './carousel-navigation.component.html',
  styleUrls: ['./carousel-navigation.component.scss'],
  providers: [NgbCarouselConfig],
})
export class CarouselNavigationComponent implements OnInit {
  constructor(
    config: NgbCarouselConfig,
    public worklogService: WorklogService,
    public translate: TranslateService,
    private languageService: LanguageService,
  ) {
    config.showNavigationArrows = true;
    config.showNavigationIndicators = false;
    this.languageService.getLanguage().subscribe(lang => {
      this.translate.use(lang);
    });
  }

  public ngOnInit(): void {
    this.languageService.getLanguage().subscribe(lang => {
      this.translate.use(lang);
    });
  }
}
<file_sep>import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { WorkLogRoutingModule } from './worklog-routing.module';

import { WorklogComponent } from './components/worklog/worklog.component';
import { MemberLogComponent } from './pages/member-log/member-log.component';
import { CarouselNavigationComponent } from './components/carousel-navigation/carousel-navigation.component';

import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { HttpClient } from '@angular/common/http';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { SharedModule } from '@shared/shared.module';

const ModuleTranslate = TranslateModule.forChild({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [HttpClient],
  },
  isolate: true,
});

@NgModule({
  declarations: [WorklogComponent, MemberLogComponent, CarouselNavigationComponent],
  imports: [CommonModule, WorkLogRoutingModule, ModuleTranslate, NgbModule, SharedModule],
})
export class WorkLogModule {}

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/worklog/', '.json');
}
<file_sep>import { Director } from '@shared/models/director';

export const Directors: Director[] = [
  {
    name: 'Евстигней',
    surname: 'Мирович',
    id: '1',
    yearsOfLife: '29 июля [10 августа], 1878 - 25 февраля, 1952',
    birthPlace: 'Санкт-Петербург, Российская империя',
    generalInfo:
      'российский и белорусский советский актёр, режиссёр, драматург, педагог, профессор (1945). Народный артист Белорусской ССР (1940).',
    biography: [
      {
        date: '1900',
        content:
          'Профессиональную сценическую деятельность начал в 1900 году в Петербурге как актёр и режиссёр. Играл в Адмиралтейском, Екатерининском, Кронштадтском театрах, с 1910 в театрах миниатюр: Троицком, Интимном, Литейном.',
      },
      {
        date: '1921—1931',
        content:
          'Начал работать в театрах Белоруссии. Художественный руководитель Белорусского государственного драматического театра в Минске.',
      },
      {
        date: '1937—1940 ',
        content: 'Художественный руководитель Белорусского театра юного зрителя имени Н. Крупской.',
      },
      {
        date: '1941—1945',
        content:
          'режиссёр 1-го Белорусского государственного драматического театра в Минске (ныне — Национальный академический театр имени Янки Купалы).',
      },
      {
        date: '1945',
        content:
          ' Художественный руководитель и заведующий кафедрой мастерства актёра Белорусского театрально-художественного института. Профессор. Занимался также преподавательской деятельностью в театральных студиях, в Минском театральном училище.',
      },
    ],
    listOfWorks: [
      {
        date: '1923',
        work: 'Кастусь Калиновский',
      },
      {
        date: '1927',
        work: 'Мятеж',
      },
      {
        date: '1937',
        work: 'Как закалялась сталь',
      },
      {
        date: '1939',
        work: 'Чудесная дудка',
      },
    ],
    photos: [
      '../assets/images/mirovich1.jpg',
      '../assets/images/mirovich3.jpg',
      '../assets/images/mirovich5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=Yunms45xnog&feature=emb_logo'],
    placesOfActivity: [
      {
        activity:
          '1-ый Белорусский государственный драматический театр в Минске (ныне — Национальный академический театр имени Янки Купалы)',
        center: [53.90088357066573, 27.562774500000007],
      },
    ],
  },
  {
    name: 'Лариса',
    surname: 'Александровская',
    id: '2',
    generalInfo:
      'белорусская, советская оперная певица (сопрано), режиссёр, публицист, общественный деятель. Народная артистка СССР (1940).',
    yearsOfLife: '2 февраля [15 февраля], 1902 - 23 мая, 1980',
    birthPlace: 'Минск, Российская империя',
    biography: [
      {
        date: '1924-1928',
        content: 'Училась в Минском музыкальном техникуме, в 1928 — в специальном оперном классе.',
      },
      {
        date: '1933 - 1951',
        content:
          'Солистка Белорусского театра оперы и балета в Минске. Исполняла как сопрановые, так и меццо-сопрановые партии. Во время войны выступала с концертами на фронтах, в госпиталях и в партизанских отрядах.',
      },
      {
        date: '1951—1960 ',
        content:
          'Была одновременно и главным режиссёром Белорусского театра оперы и балета. В год ей удавалось выпускать по два премьерных спектакля.',
      },
      {
        date: '1946—1980',
        content: 'Инициатор создания и неизменный председатель правления Белорусского театрального общества.',
      },
    ],
    listOfWorks: [
      {
        date: '1951',
        work: '<NAME>',
      },
      {
        date: '1953',
        work: 'Аида',
      },
      {
        date: '1954',
        work: '<NAME>',
      },
      {
        date: '1955',
        work: 'Трубадур',
      },
      {
        date: '1960',
        work: '<NAME>',
      },
    ],
    photos: [
      '../assets/images/aleksandrovskaya1.jpg',
      '../assets/images/aleksandrovskaya2.jpg',
      '../assets/images/aleksandrovskaya3.jpg',
      '../assets/images/aleksandrovskaya4.jpg',
      '../assets/images/aleksandrovskaya5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=v3LC9JtorMM'],
    placesOfActivity: [
      {
        activity: 'Белорусский театр оперы и балета',
        center: [53.91074407066195, 27.561848999999974],
      },
    ],
  },
  {
    name: 'Борис',
    surname: 'Луценко',
    id: '3',
    generalInfo:
      'советский и белорусский режиссёр-постановщик театра и кино. Народный артист Республики Беларусь (1995). Заслуженный деятель искусств Белорусской ССР (1975).',
    yearsOfLife: '16 сентября, 1937 - 5 февраля, 2020',
    birthPlace: 'Майкоп, Краснодарский край, РСФСР, СССР',
    biography: [
      {
        date: '1967',
        content:
          'Окончил Белорусский государственный театрально-художественный институт (курс Заслуженного деятеля искусств Белорусской ССР <NAME>).',
      },
      {
        date: '1967—1973, 1981—1982',
        content: 'Работал режиссёром Национального академического театра имени Я. Купалы.',
      },
      {
        date: '1973—1981',
        content:
          'Работал главным режиссёром Государственного русского драматического театра Белорусской ССР.',
      },
      {
        date: '1991-2008, 2008-2020',
        content:
          'Художественный руководитель, а затем режиссёр-постановщик Национального академического драматического театра имени М. Горького.',
      },
    ],
    listOfWorks: [
      {
        date: '1974',
        work: 'У. Шекспир «Макбет»',
      },
      {
        date: '1975',
        work: 'А. Твардовский «Василий Тёркин»',
      },
      {
        date: '1976',
        work: 'М. Горький «Последние»',
      },
      {
        date: '1978',
        work: 'В. Быков «Пойти и не вернуться»',
      },
      {
        date: '1997',
        work: 'Я. Купала «Раскіданае гняздо»',
      },
      {
        date: '2002',
        work: 'Я. Купала «Сон на кургане»',
      },
    ],
    photos: [
      '../assets/images/lucenko1.jpg',
      '../assets/images/lucenko2.jpg',
      '../assets/images/lucenko4.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=wM-HkQ59usY'],
    placesOfActivity: [
      {
        activity: 'Национальный академический драматический театр имени <NAME>',
        center: [53.89840557065936, 27.551131999999964],
      },
    ],
  },
  {
    name: 'Игнат',
    surname: 'Буйницкий',
    id: '4',
    yearsOfLife: '10 [22] августа, 1861 - 9 [22] сентября, 1917',
    birthPlace: 'усадьба Поливачи Прозорокской волости (Глубокский район Витебской области)',
    generalInfo:
      'белорусский актёр, режиссёр, театральный деятель, основатель первого профессионального национального белорусского театра.',
    biography: [
      {
        date: '1907',
        content:
          'Вместе с дочерьми Вандой и Еленой, а также со своими близкими друзьями создал в фольварке Поливачи любительскую труппу. Особенностью выступлений было то, что со сцены звучал белорусский язык, исполнялись знакомые простым людям народные танцы.',
      },
      {
        date: '1910',
        content:
          'На её основе была сформирована постоянная группа и начаты продолжительные гастроли по Беларуси.',
      },
      {
        date: '1913',
        content:
          'Буйницкий организовал Прозорокское белорусское кредитное общество, в котором каждый крестьянин под небольшой процент мог получить заём.',
      },
      {
        date: '1914—1916',
        content: 'Буйницкий принимал активное участие в деятельности виленского общества «В помощь фронту».',
      },
      {
        date: '1917',
        content:
          'был одним из инициаторов создания «Первого товарищества белорусской драмы и комедии» в Минске, на базе которого возник Национальный академический театр имени <NAME>.',
      },
      {
        date: '1917',
        content: 'Отправился на Западный фронт Первой мировой войны.',
      },
    ],
    listOfWorks: [
      {
        date: '1913',
        work: '«Лявониха»',
      },
      {
        date: '1914',
        work: '«Дуда-веселуха»',
      },
      {
        date: '1914',
        work: '«По ревизии» М. Крапивницкого',
      },
      {
        date: '1916',
        work: '«Модный шляхтич» <NAME>',
      },
    ],
    photos: ['../assets/images/bujnicki1.jpg', '../assets/images/bujnicki4.jpg'],
    videos: ['https://www.youtube.com/watch?v=ACDGr4TUkvs'],
    placesOfActivity: [
      {
        activity: 'усадьба Поливачи Прозорокской волости (Глубокский район Витебской области)',
        center: [55.18449707014662, 27.862847499999972],
      },
    ],
  },
  {
    name: 'Леон',
    surname: 'Рахленко',
    id: '5',
    yearsOfLife: '6 [19] сентября, 1907 - 9 марта, 1986',
    birthPlace: 'пос. Тереховка, Гомельский уезд, Могилёвская губерния, Российская империя',
    generalInfo: 'советский актёр, режиссёр, педагог. Народный артист СССР (1966).',
    biography: [
      {
        date: '1924—1927',
        content:
          'Учился в Ленинградском техникуме сценических искусств (ученик Л.С. Вивьена и С.Э. Радлова).',
      },
      {
        date: '1926-1927',
        content: 'Артист и ассистент режиссёра Ленинградского рабочего театра Пролеткульта.',
      },
      {
        date: '1927-1928',
        content: 'Художественный руководитель театральной рабочей студии Киевского Совета профсоюзов.',
      },
      {
        date: '1929—1981',
        content:
          'Актёр и режиссёр (с 1935) (в 1938—1943 годах — заведующий художественной частью) Театра им. <NAME> в Минске. Режиссёрскую деятельность начал под руководством <NAME>.',
      },
    ],
    listOfWorks: [
      {
        date: '1938',
        work: '«Партизаны» К. Крапивы',
      },
      {
        date: '1942',
        work: '«Фронт» <NAME>',
      },
      {
        date: '1943',
        work: '«Русские люди» <NAME>',
      },
      {
        date: '1956',
        work: '«Кремлёвские куранты» <NAME>',
      },
      {
        date: '1957',
        work: '«Грозовой год» <NAME>',
      },
    ],
    photos: ['../assets/images/rahlenko1.jpg', '../assets/images/rahlenko3.jpg'],
    videos: ['https://www.youtube.com/watch?v=kimvRGqEe-U'],
    placesOfActivity: [
      {
        activity:
          '1-ый Белорусский государственный драматический театр в Минске (ныне — Национальный академический театр имени Янки Купалы)',
        center: [53.90088357066573, 27.562774500000007],
      },
    ],
  },
  {
    name: 'Владимир',
    surname: 'Тезавровский',
    id: '6',
    yearsOfLife: '1880 - 1955',
    birthPlace: 'Ливны, Орловская губерния, Российская империя',
    generalInfo: 'советский актёр и режиссёр, Заслуженный артист РСФСР (1945 г.).',
    biography: [
      {
        date: '1901',
        content: 'Встретился с Немировичем-Данченко и стал работать в его театре.',
      },
      {
        date: '1905',
        content: 'Окончил художественную школу при театре и сразу был принят в основную труппу театра.',
      },
      {
        date: '1905—1918',
        content:
          'Актер МХТ. В 1918 году организовал в Одессе художественную студию. Затем работал как режиссёр в театре Массодрам (Одесса).',
      },
      {
        date: '1917',
        content: 'снял свой единственный немой художественный фильм в 4 частях «Женщина без головы».',
      },
      {
        date: '1941—1946',
        content: 'Главный режиссёр Московского областного театра юного зрителя.',
      },
      {
        date: '1925',
        content:
          'Режиссёр-администратор Оперной студии К. С. Станиславского в Москве. Руководил оперой в Минске и Тифлисе. Был первым оперным режиссёром и основателем белорусской оперы.',
      },
    ],
    listOfWorks: [
      {
        date: '1925',
        work: '«Золотой петушок» (Н.Римский-Корсаков)',
      },
      {
        date: '1926',
        work: '«Евгений Онегин» (П.Чайковский)',
      },
      {
        date: '1917',
        work: '«Женщина без головы»',
      },
      {
        date: '1930',
        work: '«Бедность не порок» (А.Островский)',
      },
    ],
    photos: [
      '../assets/images/tezavrovski1.jpg',
      '../assets/images/tezavrovski3.jpg',
      '../assets/images/tezavrovski4.jpg',
      '../assets/images/tezavrovski5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=nK_FVB1d_RM'],
    placesOfActivity: [
      {
        activity:
          'Московский академический Музыкальный театр <NAME>ского и <NAME>',
        center: [55.764520568969374, 37.61039499999998],
      },
    ],
  },
];
<file_sep>import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-description-portal',
  templateUrl: './description-portal.component.html',
  styleUrls: ['./description-portal.component.scss']
})
export class DescriptionPortalComponent implements OnInit {
  public currentDate: Date;
  constructor() { }

  public ngOnInit(): void {
    this.currentDate = new Date();
  }
}
<file_sep><h2 class="text-center mb-5">{{ 'listOfWorks.title' | translate }}</h2>

<table class="table container-fluid text-center pl-5">
  <thead>
    <tr>
      <th scope="col">{{ 'listOfWorks.date' | translate }}</th>
      <th scope="col w-75">{{ 'listOfWorks.work' | translate }}</th>
    </tr>
  </thead>
  <tbody>
    <tr scope="row" *ngFor="let work of listOfWorks">
      <td>{{ work.date }}</td>
      <td>{{ work.work }}</td>
    </tr>
  </tbody>
</table>
<file_sep>export interface Item {
  id: number;
  points: string;
  title: string;
  completed: boolean;
  name?: string;
}

export interface WorkLog {
  name: string;
  item: Item[];
}

export const GeneralLog: WorkLog[] = [
  {
    name: 'general work log',
    item: [
      {
        id: 1,
        points: '10',
        title: 'MainPage',
        completed: true,
      },
      {
        id: 2,
        points: '10',
        title: `teamPage`,
        completed: true,
      },
      {
        id: 3,
        points: '10',
        title: `authorPage`,
        completed: true,
      },
      {
        id: 4,
        points: '20',
        title: `twoLanguage`,
        completed: true,
      },
      { id: 5, points: '20', title: `styleguidePage`, completed: true },
      { id: 6, points: '10', title: `mobileVersion`, completed: true },
      { id: 7, points: '10', title: `ipdaVersion`, completed: true },
      { id: 8, points: '10', title: `authorPageTimeline`, completed: true },
      { id: 9, points: '10', title: `authorPageVideo`, completed: true },
      { id: 10, points: '20', title: `authorPagePhotoGallery`, completed: true },

      { id: 11, points: '10', title: `authorPageGeowidget`, completed: true },
      {
        id: 12,
        points: '20',
        title: `design`,
        completed: true,
      },
      { id: 13, points: '20', title: `bootstrap`, completed: true },
      { id: 14, points: '10', title: `thirdLanguage`, completed: true },

      { id: 15, points: '10', title: `presentation`, completed: true },
      {
        id: 16,
        points: '10',
        title: `useScully`,
        completed: false,
      },
      {
        id: 17,
        points: '10',
        title: `cms`,
        completed: false,
      },
      { id: 18, points: '20', title: `animation`, completed: true },
      { id: 19, points: '20', title: `outstandingDesigne`, completed: true },
      {
        id: 20,
        points: '20',
        title: `storybook`,
        completed: false,
      },
    ],
  },
  {
    name: '<NAME>',
    item: [
      {
        id: 1,
        points: '0.5 hr',
        title: 'typography',
        completed: true,
      },
      {
        id: 2,
        points: '0.5 hr',
        title: 'addBootstrap',
        completed: true,
      },
      {
        id: 3,
        points: '0.5 hr',
        title: 'lazyloaded',
        completed: true,
      },
      {
        id: 4,
        points: '2.0 hr',
        title: 'header',
        completed: true,
      },
      {
        id: 5,
        points: '2.0 hr',
        title: 'portalDescription',
        completed: true,
      },
      {
        id: 6,
        points: '4.0 hr',
        title: 'i18n',
        completed: true,
      },
      {
        id: 7,
        points: '4.0 hr',
        title: 'headerTranslate',
        completed: true,
      },
      {
        id: 8,
        points: '4.0 hr',
        title: 'portalDescriptionTranslate',
        completed: true,
      },
    ],
  },
  {
    name: '<NAME>',
    item: [
      {
        id: 1,
        points: '0.5 hr',
        title: 'initProject',
        completed: true,
      },
      {
        id: 2,
        points: '1.0 hr',
        title: 'developerListData',
        completed: true,
      },
      {
        id: 3,
        points: '4.0 hr',
        title: 'ourTeamPage',
        completed: true,
      },
      {
        id: 3,
        points: '1.0 hr',
        title: 'ourTeamPageTranslate',
        completed: true,
      },
      {
        id: 4,
        points: '4.0 hr',
        title: 'createStyleGuide',
        completed: true,
      },
    ],
  },
  {
    name: '<NAME>',
    item: [
      {
        id: 1,
        points: '0.5 hr',
        title: 'worklogPage',
        completed: true,
      },
      {
        id: 2,
        points: '1.0 hr',
        title: 'collectLogData',
        completed: true,
      },
      {
        id: 3,
        points: '2.0 hr',
        title: 'worklogMockup',
        completed: true,
      },
      {
        id: 4,
        points: '1.0 hr',
        title: 'teamNamesCarousel',
        completed: true,
      },
      {
        id: 5,
        points: '2.0 hr',
        title: 'memberLogComponent',
        completed: true,
      },
      {
        id: 6,
        points: '1.0 hr',
        title: 'total',
        completed: true,
      },
      {
        id: 7,
        points: '3.0 hr',
        title: 'refactorWorklogData',
        completed: true,
      },
      {
        id: 8,
        points: '3.0 hr',
        title: 'worklogDictionary',
        completed: true,
      },
      {
        id: 9,
        points: '2.0 hr',
        title: 'worklogTranslate',
        completed: true,
      },
    ],
  },
  {
    name: '<NAME>',
    item: [
      {
        id: 1,
        points: '2.0 hr',
        title: 'detailedInformationPage',
        completed: true,
      },
      {
        id: 2,
        points: '4.0 hr',
        title: 'authorPageTimelineTask',
        completed: true,
      },
      {
        id: 3,
        points: '2.0 hr',
        title: 'authorPageVideoTask',
        completed: true,
      },
      {
        id: 4,
        points: '4.0 hr',
        title: 'authorPagePhotoGalleryTask',
        completed: true,
      },
      {
        id: 5,
        points: '2.0 hr',
        title: 'authorPageGeowidgetTask',
        completed: true,
      },
    ],
  },
  {
    name: '<NAME>',
    item: [
      {
        id: 1,
        points: '2.0 hr',
        title: 'createSharedModules',
        completed: true,
      },
      {
        id: 2,
        points: '6.0 hr',
        title: `directorsComponent`,
        completed: true,
      },
      {
        id: 3,
        points: '6.0 hr',
        title: `addSearch`,
        completed: true,
      },
    ],
  },
  {
    name: '<NAME>',
    item: [
      {
        id: 1,
        points: '0.5 hr',
        title: 'createModules',
        completed: true,
      },
      {
        id: 2,
        points: '3.0 hr',
        title: 'collectMockDataRus',
        completed: true,
      },
      {
        id: 3,
        points: '4.0 hr',
        title: 'authorOfTheDay',
        completed: true,
      },
      {
        id: 4,
        points: '1.0 hr',
        title: 'getRandomAuthor',
        completed: true,
      },
      {
        id: 5,
        points: '0.5 hr',
        title: 'initWorklog',
        completed: true,
      },
      {
        id: 6,
        points: '2.0 hr',
        title: 'extraMockData',
        completed: true,
      },
      {
        id: 7,
        points: '1.0 hr',
        title: '404Page',
        completed: true,
      },
      {
        id: 8,
        points: '4.5 hr',
        title: 'translateMockData',
        completed: true,
      },
      {
        id: 9,
        points: '2.0 hr',
        title: 'translateAuthorOfTheDay',
        completed: true,
      },
    ],
  },
];
<file_sep>import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { IStatePages } from '@core/models/State-pages';
import { TranslateService } from '@ngx-translate/core';
import { LanguageService } from '@core/services/language.service';

@Component({
  selector: 'app-header',
  templateUrl: './header.component.html',
  styleUrls: ['./header.component.scss'],
})
export class HeaderComponent implements OnInit {
  public isMenuCollapsed = true;
  public language: string;
  public statePages: IStatePages;

  constructor(
    private router: Router,
    private translate: TranslateService,
    private languageService: LanguageService,
  ) {}

  public ngOnInit(): void {
    this.language = 'EN';
    this.statePages = {
      home: true,
      allDirectors: false,
      workLog: false,
      styleGuide: false,
      ourTeam: false,
    };
    this.translate.setDefaultLang('EN');
    this.language = 'EN';
  }

  public goTo(url): void {
    for (const page of Object.keys(this.statePages)) {
      this.statePages[page] = `/${page}` === url;
    }
    this.router.navigateByUrl(url);
  }

  public setLanguage(lang: string): void {
    this.language = lang;
    this.languageService.setLanguage(lang);
    this.translate.use(lang);
  }
}
<file_sep>import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HomePageComponent } from '@core/pages/home/home-page.component';
import { Error404pageComponent } from '@core/pages/error404page/error404page.component';

const routes: Routes = [
  {
    path: '',
    redirectTo: 'home',
    pathMatch: 'full',
  },
  {
    path: 'home',
    component: HomePageComponent,
  },
  {
    path: 'allDirectors',
    loadChildren: () => import('./directors/directors.module').then(m => m.DirectorsModule),
  },
  {
    path: 'director/:id',
    loadChildren: () =>
      import('./detailed-information/detailed-information.module').then(m => m.DetailedInformationModule),
  },
  {
    path: 'workLog',
    loadChildren: () => import('./worklog/worklog.module').then(m => m.WorkLogModule),
  },
  {
    path: 'styleGuide',
    loadChildren: () => import('./styleguide/styleguide.module').then(m => m.StyleGuideModule),
  },
  {
    path: 'ourTeam',
    loadChildren: () => import('./team-members/team-members.module').then(m => m.TeamMembersModule),
  },
  {
    path: '**',
    component: Error404pageComponent,
  },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule],
})
export class AppRoutingModule {}
<file_sep>import { Router } from '@angular/router';
import { Component, OnInit, Input } from '@angular/core';
import { Director } from '@shared/models/director';

@Component({
  selector: 'app-director-card',
  templateUrl: './director-card.component.html',
  styleUrls: ['./director-card.component.scss']
})
export class DirectorCardComponent implements OnInit {

  @Input() public director: Director;

  constructor(
    private router: Router,
  ) { }

  ngOnInit(): void {
  }

  public handleClick() {
    this.router.navigate(['director', this.director.id]);

  }

}
<file_sep>import { Component, OnInit, Input } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { LanguageService } from '@core/services/language.service';

@Component({
  selector: 'app-style-guide',
  templateUrl: './style-guide.component.html',
  styleUrls: ['./style-guide.component.scss']
})
export class StyleGuideComponent implements OnInit {
  title = 'Style Guide';
  @Input() item;
  constructor(
    private translate: TranslateService,
    private languageService: LanguageService,
  ) {
    this.languageService.getLanguage().subscribe(lang => {
      this.translate.use(lang);
    });
  }

  public ngOnInit(): void {
    this.translate.setDefaultLang('EN');
  }

}
<file_sep>import { Injectable } from '@angular/core';
import { Director } from '@shared/models/director';
import { Directors } from '@shared/mock-data/mock.directors';
import { Directors as DirectorsBE } from '@shared/mock-data/mock.directorsBE';
import { Directors as DirectorsEN } from '@shared/mock-data/mock.directorsEN';

@Injectable({
  providedIn: 'root',
})
export class DirectorService {
  constructor() {}

  public getDirectorById(id: string, lang: string): Director {
    if (lang === 'RU') {
      return Directors.find(director => director.id === id);
    } else if (lang === 'EN') {
      return DirectorsEN.find(director => director.id === id);
    }

    return DirectorsBE.find(director => director.id === id);
  }
}
<file_sep>import { Component, OnInit } from '@angular/core';
import { GetRandomAuthorService } from '@core/services/get-random-author.service';
import { Director } from '@shared/models/director';

@Component({
  selector: 'app-director-of-day-page',
  templateUrl: './director-of-day-page.component.html',
  styleUrls: ['./director-of-day-page.component.scss'],
})
export class DirectorOfDayPageComponent implements OnInit {
  public author: Director;

  constructor(private service: GetRandomAuthorService) {
    this.service.author$.subscribe(
      (director) => {
        this.author = director;
      }
    );
  }

  public ngOnInit(): void {
    this.service.getAuthor();
  }
}
<file_sep>export interface Director {
    name: string;
    surname: string;
    id: string;
    yearsOfLife: string;
    birthPlace: string;
    generalInfo: string;
    biography: {
        date: string;
        content: string
    }[];
    listOfWorks: {
        date?: string;
        work: string
    }[];
    photos: string[];
    videos?: string[];
    placesOfActivity?: {
        activity: string;
        center: number[]
    }[];
}
<file_sep># The Rolling Scopes School — Culture-Portal

## Group №6 (Angular course)

## Worklog and self evaluation

### Worklog

# Evgeny-Kravchenko
| time spent | feature                                |
| ---------- | -------------------------------------- |
| 0.5h       | add typography to project |
| 0.5h       | add bootstrap to project |
| 0.5h       | create lazy-loaded modules |
| 2h         | create header component |
| 2h         | create portal description component |
| 4h         | inject i18n in the project |
| 4h         | translation of the header component using the i18n library |
| 4h         | translation of the page portal description using the i18n library |

# ekater1na
| time spent | feature                                |
| ---------- | -------------------------------------- |
| 0.5h       |  create initial project |
| 1h         |  collect about team data |
| 4h         |  create our team page |
| 1h         | translation of the page our team using the i18n library |
| 4h         |  create style-guide page |

# chivekrodis
| time spent | feature                                |
| ---------- | -------------------------------------- |
| 0.5h       |  work on work log page |
| 1h         |  collect team work log data |
| 2h         | work log mockup and styles |
| 1h         | create team names carousel |
| 2h         | create member log component |
| 1h         |  add dynamic calculation of the total amount of time |
| 3h         |  refactor work log data for using i18n library |
| 3h         |  "generate i18n dictionary for three languages |
| 2h         |  translation of the page our team using the i18n library |

 # madmike85
| time spent | feature                                |
| ---------- | -------------------------------------- |
| 2h         | create detailed information page |
| 4h         | author's page contains timeline;
| 2h         | author's page contains video overlay;
| 4h         | author's page contains photo gallery;
| 2h         | author's page contains map (geowidget);

# mariagolomb
| time spent | feature                                |
| ---------- | -------------------------------------- |
| 2h         |  add core and shared modules           |
| 6h         |  work on directors component           |
| 6h         |  add search                            |

# a-popova
| time spent | feature                                |
| ---------- | -------------------------------------- |
| 0.5h       | create necessary modules |
| 3h         | collect mock data about directors on russian language |
| 4h         | create author of the day component into the core module |
| 1h         |  work on getRandomAuthor service |
| 0.5h       |  init work log component |
| 2h         |  collect extra mock data |
| 1h         | create 404 Page |
| 4.5h       | translate mock data to english |
| 2h         |  translation of the page author of the day using the i18n library"


_______

### Self evaluation:

1. #### Task: https://github.com/rolling-scopes-school/tasks/blob/angular-2020Q1/tasks/angular/culture-portal.md
2. #### Submit 14.03.2020 23:30 / Deadline 14.03.2020 23:59

### Total

### Maximum points - **280**/ **50 + 140 + 50 = 240**

### Min scope (4/4) - **50**/**50**
- [x] **10** Main page + page with a list of authors + author's page (only pages with content without widgets);
- [x] **10** Page with team members + page with worklog
- [x] **10** Page with list of authors contains search widget;
- [x] **20** Portal has two languages;

### Normal scope (10/10) - **140**/**140**
 - [x] **20** Portal has page with styleguide;
 - [x] **10** Mobile version is okey
 - [x] **10** Ipad/tablet version is okey
 - [x] **10** Author's page contains timeline;
 - [x] **10** Author's page contains video overlay;
 - [x] **20** Author's page contains photo gallery;
 - [x] **10** Author's page contains map (geowidget);
 - [x] **20** Design (typography, icons, colors, links + buttons + input, ui components are styled)
 - [x] **20** Material-ui / bootstrap is used
 - [x] **10** Portal has third language;

### Extra scope (3/6) - **90**/**50**
 - [x] **10** Confidence of the project presentation;
 - [ ] **10** Project is made using scully;
 - [ ] **10** Contentful / netlify cms / other cms is used for content management
 - [x] **20** Animations / special effects like paralax
 - [x] **20** Outstanding design;
 - [ ] **20** Storybook/angularplayground/compodoc/other angulaer styleguide/documentation tool usage for the page with styles
<file_sep>import { StyleItem } from '@shared/models/style'

export const StyleItems: StyleItem[] = [
  {
    "name": "Visualization",
    "content": "content"
  },
  {
    "name": "Typography",
    "content": "content"
  },
  {
    "name": "Colors",
    "content": "content"
  },
]
<file_sep>export interface Developer {
  name: string;
  surname: string;
  photo: string;
  github: string;
  telegram: string;
  worklog: string;
}


<file_sep>import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { StyleGuideRoutingModule } from './styleguide-routing.module';
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
import { HttpClient } from '@angular/common/http';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { StyleGuideComponent } from './components/style-guide/style-guide.component';
import { StyleListComponent } from './pages/style-list/style-list.component';

const ModuleTranslate = TranslateModule.forChild({
  loader: {
    provide: TranslateLoader,
    useFactory: HttpLoaderFactory,
    deps: [HttpClient],
  },
  isolate: true,
});

@NgModule({
  declarations: [StyleGuideComponent, StyleListComponent],
  imports: [CommonModule, StyleGuideRoutingModule, ModuleTranslate],
})
export class StyleGuideModule {}

export function HttpLoaderFactory(http: HttpClient) {
  return new TranslateHttpLoader(http, './assets/i18n/styleguide/', '.json');
}
<file_sep>import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { DirectorService } from '../../services/director.service';
import { Director } from '@shared/models/director';
import { LanguageService } from '@core/services/language.service';
import { TranslateService } from '@ngx-translate/core';

@Component({
  selector: 'app-detailes',
  templateUrl: './detailes.component.html',
  styleUrls: ['./detailes.component.scss'],
})
export class DetailesComponent implements OnInit {
  public director: Director;
  public currentVideo: string;
  public language = 'EN';
  public id: string;

  constructor(
    private route: ActivatedRoute,
    private directorService: DirectorService,
    private translate: TranslateService,
    private languageService: LanguageService,
  ) {
    this.languageService.getLanguage().subscribe(lang => {
      this.translate.use(lang);
      this.language = lang;
      this.getDirector(this.id);
    });
  }

  public ngOnInit(): void {
    this.translate.setDefaultLang('EN');
    this.route.params.subscribe(params => {
      this.id = params.id;
      this.getDirector(params.id);
    });
  }

  public getDirector(id: string): void {
    this.director = this.directorService.getDirectorById(id, this.language);
  }
}
<file_sep>// tslint:disable:max-line-length
import { Director } from '@shared/models/director';

export const Directors: Director[] = [
  {
    name: 'Evstigney',
    surname: 'Mirovich',
    id: '1',
    yearsOfLife: '29 July [10 August], 1878 - 25 February, 1952',
    birthPlace: 'St. Petersburg, the Russian Empire',
    generalInfo:
      "Russian and Belarusian Soviet actor, director, playwright, teacher, professor (1945). People's Artist of the Byelorussian SSR (1940).",
    biography: [
      {
        date: '1900',
        content:
          'He began his professional stage career in 1900 in St. Petersburg as an actor and director. He played in the Admiralty, Catherine, Kronstadt theaters, since 1910 in the miniature theaters: Troitsky, Intimate, Liteiny.',
      },
      {
        date: '1921—1931',
        content:
          'He began to work in theaters of Belarus. Artistic Director of the Belarusian State Drama Theater in Minsk.',
      },
      {
        date: '1937—1940 ',
        content: 'Artistic Director of the Belarusian Theater of Young Spectators named after N. Krupskaya.',
      },
      {
        date: '1941—1945',
        content:
          'Director of the 1st Belarusian State Drama Theater in Minsk (now the Yanka Kupala National Academic Theater).',
      },
      {
        date: '1945',
        content:
          ' Artistic director and head of the department of skill of the actor of the Belarusian Theater and Art Institute. Professor. He was also engaged in teaching at theatrical studios, at the Minsk Theater School.',
      },
    ],
    listOfWorks: [
      {
        date: '1923',
        work: '<NAME>',
      },
      {
        date: '1927',
        work: 'Rebellion',
      },
      {
        date: '1937',
        work: 'How the Steel Was Tempered',
      },
      {
        date: '1939',
        work: 'Wonderful pipe',
      },
    ],
    photos: [
      '../assets/images/mirovich1.jpg',
      '../assets/images/mirovich3.jpg',
      '../assets/images/mirovich5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=Yunms45xnog&feature=emb_logo'],
    placesOfActivity: [
      {
        activity:
          '1st Belarusian State Drama Theater in Minsk (now - Yanka Kupala National Academic Theater)',
        center: [53.90088357066573, 27.562774500000007],
      },
    ],
  },
  {
    name: 'Larisa',
    surname: 'Aleksandrovskaya',
    id: '2',
    generalInfo:
      "Belarusian, Soviet opera singer (soprano), director, publicist, public figure. People's Artist of the USSR (1940).",
    yearsOfLife: '2 February [15 February], 1902 - 23 May, 1980',
    birthPlace: 'Minsk, the Russin Empire',
    biography: [
      {
        date: '1924-1928',
        content: 'She studied at the Minsk College of Music, in 1928 - in a special opera class.',
      },
      {
        date: '1933 - 1951',
        content:
          'Soloist of the Belarusian Opera and Ballet Theater in Minsk. She performed both soprano and mezzo-soprano parts. During the war, she gave concerts at the fronts, in hospitals and in partisan detachments.',
      },
      {
        date: '1951—1960 ',
        content:
          'She was also the chief director of the Belarusian Opera and Ballet Theater. In the year she managed to release two premiere performances.',
      },
      {
        date: '1946—1980',
        content:
          'The initiator of the creation and the permanent chairman of the board of the Belarusian Theater Society.',
      },
    ],
    listOfWorks: [
      {
        date: '1951',
        work: 'And Quiet Flows the Don',
      },
      {
        date: '1953',
        work: 'Aida',
      },
      {
        date: '1954',
        work: '<NAME>',
      },
      {
        date: '1955',
        work: 'Troubadour',
      },
      {
        date: '1960',
        work: 'Queen of spades',
      },
    ],
    photos: [
      '../assets/images/aleksandrovskaya1.jpg',
      '../assets/images/aleksandrovskaya2.jpg',
      '../assets/images/aleksandrovskaya3.jpg',
      '../assets/images/aleksandrovskaya4.jpg',
      '../assets/images/aleksandrovskaya5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=v3LC9JtorMM'],
    placesOfActivity: [
      {
        activity: 'Belarusian Opera and Ballet Theater',
        center: [53.91074407066195, 27.561848999999974],
      },
    ],
  },
  {
    name: 'Boris',
    surname: 'Lutsenko',
    id: '3',
    generalInfo:
      "Soviet and Belarusian film and theater director. People's Artist of the Republic of Belarus (1995). Honored Art Worker of the Byelorussian SSR (1975).",
    yearsOfLife: '16 September, 1937 - 5 February, 2020',
    birthPlace: 'Maykop, Krasnodar Territory, RSFSR, USSR',
    biography: [
      {
        date: '1967',
        content:
          'He graduated from the Belarusian State Theater and Art Institute (course of V.A. Malankin, Honored Art Worker of the Belarusian SSR).',
      },
      {
        date: '1967—1973, 1981—1982',
        content: 'He worked as a director of the Y. Kupala National Academic Theater.',
      },
      {
        date: '1973—1981',
        content: 'He worked as the main director of the State Russian Drama Theater of the Belarusian SSR.',
      },
      {
        date: '1991-2008, 2008-2020',
        content: 'Artistic director and then director of the National Gorky Academic Drama Theater.',
      },
    ],
    listOfWorks: [
      {
        date: '1974',
        work: '<NAME> «Macbeth»',
      },
      {
        date: '1975',
        work: '<NAME> «Vasily Terkin»',
      },
      {
        date: '1976',
        work: '<NAME> «The Last Ones»',
      },
      {
        date: '1978',
        work: '<NAME> «To Go and not Return»',
      },
      {
        date: '1997',
        work: 'Y. Kupala «The Ravaged Nest»',
      },
      {
        date: '2002',
        work: 'Y. Kupala «The Dream on the Barrow»',
      },
    ],
    photos: [
      '../assets/images/lucenko1.jpg',
      '../assets/images/lucenko2.jpg',
      '../assets/images/lucenko4.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=wM-HkQ59usY'],
    placesOfActivity: [
      {
        activity: 'National Academic Drama Theater named after <NAME>',
        center: [53.89840557065936, 27.551131999999964],
      },
    ],
  },
  {
    name: 'Ignat',
    surname: 'Bujnitski',
    id: '4',
    yearsOfLife: '10 [22] August, 1861 - 9 [22] September, 1917',
    birthPlace: 'Manor of Polivachi of the Prozorok volost (Glubokoe district of Vitebsk region)',
    generalInfo:
      'Belarusian actor, director, theater figure, founder of the first professional national Belarusian theater.',
    biography: [
      {
        date: '1907',
        content:
          'Together with his daughters Wanda and Elena, as well as with their close friends, he created an amateur troupe in the Polivachi folklore. The feature of the performances was that the Belarusian language sounded from the stage, folk dances familiar to ordinary people were performed.',
      },
      {
        date: '1910',
        content: 'On its basis, a permanent group was formed and long tours around Belarus began.',
      },
      {
        date: '1913',
        content:
          'Buinitsky organized the Prozorok Belarusian Credit Society, in which every peasant could get a loan at a small percentage.',
      },
      {
        date: '1914—1916',
        content: 'Buinitsky took an active part in the activities of the Vilna society «To Help the Front».',
      },
      {
        date: '1917',
        content:
          'Was one of the initiators of the creation of the “First Partnership of Belarusian Drama and Comedy” in Minsk, on the basis of which the Yanka Kupala National Academic Theater arose.',
      },
      {
        date: '1917',
        content: 'He went to the Western Front of the First World War.s',
      },
    ],
    listOfWorks: [
      {
        date: '1913',
        work: '«Lyavonikha»',
      },
      {
        date: '1914',
        work: '«Duda-vesyalukha»',
      },
      {
        date: '1914',
        work: '«According to revision» <NAME>',
      },
      {
        date: '1916',
        work: '«Modny shlyzchtich» <NAME>anets',
      },
    ],
    photos: ['../assets/images/bujnicki1.jpg', '../assets/images/bujnicki4.jpg'],
    videos: ['https://www.youtube.com/watch?v=ACDGr4TUkvs'],
    placesOfActivity: [
      {
        activity: 'Glubokoe district of Vitebsk region',
        center: [55.18449707014662, 27.862847499999972],
      },
    ],
  },
  {
    name: 'Leoon',
    surname: 'Rachlenko',
    id: '5',
    yearsOfLife: '6 [19] September, 1907 - 9 March, 1986',
    birthPlace: 'Terechovka, Gomel County, Mogilev Province, Russian Empire',
    generalInfo: "Soviet actor, director, teacher. People's Artist of the USSR (1966).",
    biography: [
      {
        date: '1924—1927',
        content:
          'He studied at the Leningrad College of Performing Arts (student L.S. Vivien and S.E. Radlov).',
      },
      {
        date: '1926-1927',
        content: 'Artist and assistant director of the Leningrad Worker Theater Proletkult.',
      },
      {
        date: '1927-1928',
        content: 'Artistic Director of the Theater Workshop of the Kiev Council of Trade Unions.',
      },
      {
        date: '1929—1981',
        content:
          'Actor and director (from 1935) (in 1938-1943 - head of the art department) of the Theater. Y. Kupala in Minsk. He began directing activities under the guidance of <NAME>.',
      },
    ],
    listOfWorks: [
      {
        date: '1938',
        work: '«Partisans» <NAME>',
      },
      {
        date: '1942',
        work: '«Front» <NAME>',
      },
      {
        date: '1943',
        work: '«Russian people» <NAME>',
      },
      {
        date: '1956',
        work: '«Kremlin chimes» <NAME>',
      },
      {
        date: '1957',
        work: '«Thunderstorm year» <NAME>',
      },
    ],
    photos: ['../assets/images/rahlenko1.jpg', '../assets/images/rahlenko3.jpg'],
    videos: ['https://www.youtube.com/watch?v=kimvRGqEe-U'],
    placesOfActivity: [
      {
        activity:
          '1st Belarusian State Drama Theater in Minsk (now - Yanka Kupala National Academic Theater)',
        center: [53.90088357066573, 27.562774500000007],
      },
    ],
  },
  {
    name: 'Vladimit',
    surname: 'Tezavrousky',
    id: '6',
    yearsOfLife: '1880 - 1955',
    birthPlace: 'Livny, Oryol Province, Russian Empire',
    generalInfo: 'Soviet actor and director, Honored Artist of the RSFSR (1945).',
    biography: [
      {
        date: '1901',
        content: 'Met with Nemirovich-Danchenko and began to work in his theater.',
      },
      {
        date: '1905',
        content:
          'He graduated from the art school at the theater and was immediately accepted into the main troupe of the theater.',
      },
      {
        date: '1905—1918',
        content:
          'The actor of the Moscow Art Theater. In 1918 he organized an art studio in Odessa. Then he worked as a director at the Massodram Theater (Odessa).',
      },
      {
        date: '1917',
        content: 'made his only silent film in 4 parts «Headless woman».',
      },
      {
        date: '1941—1946',
        content: 'The main director of the Moscow Regional Theater of Young Spectators.',
      },
      {
        date: '1925',
        content:
          'Director-administrator of the Opera Studio <NAME> in Moscow. He directed the opera in Minsk and Tiflis. He was the first opera director and founder of the Belarusian opera.',
      },
    ],
    listOfWorks: [
      {
        date: '1925',
        work: '«The Golden Cockerel» (N.Rimsky-Korsakov)',
      },
      {
        date: '1926',
        work: '«E<NAME>» (P. Tchaikovsky)',
      },
      {
        date: '1917',
        work: '«Headless woman»',
      },
      {
        date: '1930',
        work: '«Poverty is No Vice» (A.Ostrovsky)',
      },
    ],
    photos: [
      '../assets/images/tezavrovski1.jpg',
      '../assets/images/tezavrovski3.jpg',
      '../assets/images/tezavrovski4.jpg',
      '../assets/images/tezavrovski5.jpg',
    ],
    videos: ['https://www.youtube.com/watch?v=nK_FVB1d_RM'],
    placesOfActivity: [
      {
        activity: 'Moscow Academic Musical Theater of <NAME> and <NAME>',
        center: [55.764520568969374, 37.61039499999998],
      },
    ],
  },
];
<file_sep>import { StyleItem } from '@shared/models/style';

export const StyleItems: StyleItem[] = [
  {
    name: 'Visualization',
    content: 'content'
  },
  {
    name: 'Typography',
    content: 'content'
  },
  {
    name: 'Colors',
    content: 'content'
  },
];
