File

src/app/header/header.component.ts

Description

The header component.

Implements

OnInit

Metadata

selector app-header
styleUrls header.component.scss
templateUrl ./header.component.html

Index

Properties
Methods

Constructor

constructor(languageService: LanguageService)

Set default language

Parameters :
Name Type Optional
languageService LanguageService no

Methods

Public closeLanguageSelect
closeLanguageSelect()

Close language dropdown menu

Returns : void

void

Public hideHeader
hideHeader()

Hide header trigger

Returns : void

void

ngOnInit
ngOnInit()

Lifecycle hook that is called after data-bound properties of a directive are initialized.

Returns : void

void

Public openLanguageSelect
openLanguageSelect()

Open language dropdown menu

Returns : void

void

Public toggleDropdown
toggleDropdown()

Toggle dropdown menu

Returns : void

void

Properties

isDropDownOpen
isDropDownOpen: boolean
Type : boolean
Default value : false
isHeaderHidden
isHeaderHidden: boolean
Type : boolean
Default value : false
languages
languages: Array<Language>
Type : Array<Language>
LanguageSelect
LanguageSelect: NgSelectComponent
Type : NgSelectComponent
Decorators : ViewChild

The dropdown menu LanguageSelect ng-select.

selectedLanguage
selectedLanguage: number
Type : number
import {Component, OnInit, ViewChild, ElementRef} from '@angular/core';
import {Language} from '../models/language';
import {LanguageService} from '../services/language.service';
import { NgSelectComponent } from '@ng-select/ng-select';

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

/**
 * @class HeaderComponent
 * @implements OnInit
 */
export class HeaderComponent implements OnInit {

  /**
   * The dropdown menu LanguageSelect ng-select.
   * @typedef NgSelectComponent
   */
  @ViewChild('LanguageSelect') LanguageSelect: NgSelectComponent;

  languages: Array<Language>;
  selectedLanguage: number;
  isDropDownOpen: boolean = false;
  isHeaderHidden: boolean = false;

  /**
   * Set default language
   * @constructor
   * @param {languageService} LanguageService - Change language handler
   */
  constructor(private languageService: LanguageService) {
    this.languages = languageService.getLanguages();
    this.selectedLanguage = this.languages[0].id;
  }

  /**
   * Lifecycle hook that is called after data-bound
   * properties of a directive are initialized.
   * @returns void
   */
  ngOnInit(): void {

  }

  /**
   * Open language dropdown menu
   * @returns void
   */
  public openLanguageSelect(): void {
    this.isDropDownOpen = true;
  }

  /**
   * Close language dropdown menu
   * @returns void
   */
  public closeLanguageSelect(): void {
    this.isDropDownOpen = false;
  }

  /**
   * Toggle dropdown menu
   * @returns void
   */
  public toggleDropdown(): void {
    this.LanguageSelect.open();
  }

  /**
  * Hide header trigger
  * @returns void
  */
  public hideHeader(): void {
    this.isHeaderHidden = true;
  }
}
<header class="header" [ngClass]="{'d-none': isHeaderHidden}">
  <!--Desktop header -->
  <div class="d-none d-sm-block">
    <div class="row">
      <div class="header__left col">
        <h4 class="header__left__made"> ⚇ Made by Kiskin </h4>
      </div>
      <div  class="header__right col">
        <div class="header__right__contact float-right">
          <button class="btn btn-success">Contact</button>
          <a class="header__close" (click)="hideHeader()" href="javascript:">
            <i class="material-icons">cancel</i>
          </a>
        </div>
      </div>
    </div>
  </div>


  <!--Mobile header -->
  <div class="mobile d-sm-none">
    <div class="row">
      <div class="col">
        <div class="header__select__wrapper">
          <ng-select #LanguageSelect class="custom"
                     [items]="languages"
                     bindLabel="name"
                     bindValue="id"
                     [searchable]="false"
                     [clearable]="false"
                     (open)="openLanguageSelect()"
                     (close)="closeLanguageSelect()"
                     [(ngModel)]="selectedLanguage">
            <ng-template ng-label-tmp let-item="item">
              <b>{{item.short}}</b>
            </ng-template>
            <ng-template ng-option-tmp let-item="item" let-index="index">
              <b>{{item.name}}</b>
            </ng-template>
          </ng-select>
          <span class="header__select__wrapper__arrow"
                (click)="toggleDropdown()"
                [ngClass]="{'arrow-up': isDropDownOpen, 'arrow-down': !isDropDownOpen}">
            <i class="material-icons">arrow_drop_down</i>
          </span>
        </div>
      </div>
      <div class="col">
        <div  class="header__right">
          <div class="float-right">
            <a class="header__email" href>
              <i class="material-icons">email</i>
            </a>
            <a  class="header__close" (click)="hideHeader()" href="javascript:">
              <i class="material-icons">cancel</i>
            </a>
          </div>
        </div>
      </div>
    </div>
  </div>

</header>
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""