{"version":3,"file":"apstorydnn-navigation-angular.mjs","sources":["../../../projects/apstorydnn-navigation/src/lib/apstorydnn-navigation.service.ts","../../../projects/apstorydnn-navigation/src/public_api.ts","../../../projects/apstorydnn-navigation/src/apstorydnn-navigation-angular.ts"],"sourcesContent":["import { Location } from '@angular/common';\r\nimport { Injectable, ViewContainerRef, ComponentRef, ComponentFactoryResolver } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class ApstorydnnNavigationService {\r\n  private navSubject = new Subject<any>();\r\n  private paramSubject = new Subject<any>();\r\n\r\n  private params: { [key: string]: any };\r\n  private prevPage: any;\r\n  private navStack: any[];\r\n  private componentHolder: ViewContainerRef;\r\n  private componentRef: ComponentRef<any>;\r\n\r\n  constructor(private componentFactory: ComponentFactoryResolver, private location: Location) {\r\n    this.navStack = [];\r\n    this.params = {};\r\n  }\r\n\r\n  setUrl(url: string) {\r\n    location.href = url;\r\n  }\r\n\r\n  getUrlParam(paramName: string) {\r\n    const path = this.location.path(false);\r\n    const queryString = path.substr(path.indexOf('?') + 1);\r\n    const urlParameters = new URLSearchParams(queryString);\r\n    return urlParameters.get(paramName);\r\n  }\r\n\r\n  clearUrlParams() {\r\n    this.location.replaceState('/', '');\r\n  }\r\n\r\n  getNavigationEvent(): Observable<any> {\r\n    return this.navSubject.asObservable();\r\n  }\r\n\r\n  getParameterEvent(): Observable<any> {\r\n    return this.paramSubject.asObservable();\r\n  }\r\n\r\n  private setComponent(type: any): void {\r\n    if (this.componentRef) {\r\n      this.componentRef.destroy();\r\n    }\r\n\r\n    const factory = this.componentFactory.resolveComponentFactory(type);\r\n    this.componentRef = this.componentHolder.createComponent(factory);\r\n  }\r\n\r\n  setup(navHolder: ViewContainerRef) {\r\n    this.componentHolder = navHolder;\r\n  }\r\n\r\n  setParam(key: string, value: any) {\r\n    this.params[key] = value;\r\n    this.paramSubject.next(key);\r\n  }\r\n\r\n  getParam(key: string) {\r\n    return this.params[key];\r\n  }\r\n\r\n  push(page: any) {\r\n    if (this.prevPage) {\r\n      this.navStack.push(this.prevPage);\r\n    }\r\n\r\n    this.setComponent(page);\r\n    this.prevPage = page;\r\n    this.navSubject.next(this.componentRef);\r\n  }\r\n\r\n  canPop() {\r\n    return this.navStack.length > 0;\r\n  }\r\n\r\n  popTo(screen: any) {\r\n    while (typeof (screen) != typeof (this.prevPage)) {\r\n      if (this.canPop()) {\r\n        this.prevPage = this.navStack.pop();\r\n      }\r\n    }\r\n\r\n    this.setComponent(this.prevPage);\r\n    this.navSubject.next(this.componentRef);\r\n  }\r\n\r\n  popBack(nr: number) {\r\n    for (let i = 0; i < nr; i++) {\r\n      if (this.canPop()) {\r\n        this.prevPage = this.navStack.pop();\r\n      }\r\n    }\r\n\r\n    this.setComponent(this.prevPage);\r\n    this.navSubject.next(this.componentRef);\r\n  }\r\n\r\n  pop() {\r\n    if (this.canPop()) {\r\n      this.prevPage = this.navStack.pop();\r\n      this.setComponent(this.prevPage);\r\n      this.navSubject.next(this.componentRef);\r\n    }\r\n  }\r\n}","/*\r\n * Public API Surface of apstorydnn-navigation\r\n */\r\n\r\nexport * from './lib/apstorydnn-navigation.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}