import { Component, OnInit, ViewChild, AfterViewInit } from "@angular/core"; import { Location, LocationStrategy, PathLocationStrategy, PopStateEvent } from "@angular/common"; import { filter, map } from "rxjs/operators"; import { Subscription } from "rxjs/Subscription"; //import { NavbarComponent } from '../../components/navbar/navbar.component'; import { Router, NavigationEnd, NavigationStart } from "@angular/router"; import * as $ from "jquery"; @Component({ selector: "app-admin", templateUrl: "./admin.component.html", styleUrls: ["./admin.component.scss"] }) export class AdminComponent implements OnInit { private _router: Subscription; private lastPoppedUrl: string; private yScrollStack: number[] = []; constructor(public location: Location, private router: Router) {} ngOnInit() { const isWindows = navigator.platform.indexOf("Win") > -1 ? true : false; const elemMainPanel = document.querySelector(".main-panel"); const elemSidebar = ( document.querySelector(".sidebar .sidebar-wrapper") ); this.location.subscribe((ev: PopStateEvent) => { this.lastPoppedUrl = ev.url; }); this.router.events.subscribe((event: any) => { if (event instanceof NavigationStart) { if (event.url != this.lastPoppedUrl) this.yScrollStack.push(window.scrollY); } else if (event instanceof NavigationEnd) { if (event.url == this.lastPoppedUrl) { this.lastPoppedUrl = undefined; window.scrollTo(0, this.yScrollStack.pop()); } else window.scrollTo(0, 0); } }); this._router = this.router.events .pipe(filter(event => event instanceof NavigationEnd)) .subscribe((event: NavigationEnd) => { elemMainPanel.scrollTop = 0; elemSidebar.scrollTop = 0; }); const window_width = $(window).width(); let $sidebar = $(".sidebar"); let $sidebar_responsive = $("body > .navbar-collapse"); let $sidebar_img_container = $sidebar.find(".sidebar-background"); if (window_width > 767) { if ($(".fixed-plugin .dropdown").hasClass("show-dropdown")) { $(".fixed-plugin .dropdown").addClass("open"); } } $(".fixed-plugin a").click(function(event) { // Alex if we click on switch, stop propagation of the event, so the dropdown will not be hide, otherwise we set the section active if ($(this).hasClass("switch-trigger")) { if (event.stopPropagation) { event.stopPropagation(); } else if (window.event) { window.event.cancelBubble = true; } } }); $(".fixed-plugin .badge").click(function() { let $full_page_background = $(".full-page-background"); $(this) .siblings() .removeClass("active"); $(this).addClass("active"); var new_color = $(this).data("color"); if ($sidebar.length !== 0) { $sidebar.attr("data-color", new_color); } if ($sidebar_responsive.length != 0) { $sidebar_responsive.attr("data-color", new_color); } }); $(".fixed-plugin .img-holder").click(function() { let $full_page_background = $(".full-page-background"); $(this) .parent("li") .siblings() .removeClass("active"); $(this) .parent("li") .addClass("active"); //var new_image = $(this).find("img").attr('src'); if ($sidebar_img_container.length != 0) { $sidebar_img_container.fadeOut("fast", function() { //$sidebar_img_container.css('background-image','url("' + new_image + '")'); $sidebar_img_container.fadeIn("fast"); }); } if ($full_page_background.length != 0) { $full_page_background.fadeOut("fast", function() { //$full_page_background.css('background-image','url("' + new_image + '")'); $full_page_background.fadeIn("fast"); }); } if ($sidebar_responsive.length != 0) { //$sidebar_responsive.css('background-image','url("' + new_image + '")'); } }); } ngAfterViewInit() { this.runOnRouteChange(); } isMaps(path) { var titlee = this.location.prepareExternalUrl(this.location.path()); titlee = titlee.slice(1); if (path == titlee) { return false; } else { return true; } } runOnRouteChange(): void { if (window.matchMedia(`(min-width: 960px)`).matches && !this.isMac()) { const elemMainPanel = document.querySelector(".main-panel"); } } isMac(): boolean { let bool = false; if ( navigator.platform.toUpperCase().indexOf("MAC") >= 0 || navigator.platform.toUpperCase().indexOf("IPAD") >= 0 ) { bool = true; } return bool; } }