import { utils , InDiv } from '@indiv/core' ; import { Injectable } from '@indiv/di' ; export type NvRouteObject = { path : string ; query ? : { [ props ] : any ; } ; data ? : any ; } ; export const nvRouteStatus = { nvRouteObject : { path : null , query : { } , data : null , } , nvRouteParmasObject : { } , nvRootPath : '/' , } ; const lastNvRouteObject = { path : nvRouteStatus . nvRouteObject . path , query : nvRouteStatus . nvRouteObject . query , params : nvRouteStatus . nvRouteParmasObject , data : nvRouteStatus . nvRouteObject . data , rootPath : nvRouteStatus . nvRootPath , } ; @ Injectable ( ) export class NvLocation { constructor ( private indivInstance ) { } export returns { { path ? : string ; query ? : any ; params ? : any ; data ? : any ; rootPath ? : string ; } } public get = ( ) : { path ? : string ; query ? : any ; params ? : any ; data ? : any ; rootPath ? : string ; } => { return { path : nvRouteStatus . nvRouteObject . path , query : nvRouteStatus . nvRouteObject . query , params : nvRouteStatus . nvRouteParmasObject , data : nvRouteStatus . nvRouteObject . data , rootPath : nvRouteStatus . nvRootPath , } ; } ; export param { string } path param { * } query param { * } data param { string } title returns { void } public set = ( path , query ? , data ? , title ? ) : void => { const rootPath = nvRouteStatus . nvRootPath === '/' ? '' : nvRouteStatus . nvRootPath ; if ( ! this . indivInstance . getIndivEnv . isServerRendering ) { history . pushState ( { path , query , data } , title , `${ rootPath }${ path }${ utils . buildQuery ( query ) }` ) ; } nvRouteStatus . nvRouteObject = { path , query , data } ; } ; param { string } path param { * } query param { * } data param { string } title memberof public redirectTo = ( path , query ? , data ? , title ? ) : void => { const rootPath = nvRouteStatus . nvRootPath === '/' ? '' : nvRouteStatus . nvRootPath ; if ( ! this . indivInstance . getIndivEnv . isServerRendering ) { history . replaceState ( { path , query , data } , title , `${ rootPath }${ path }${ utils . buildQuery ( query ) }` ) ; } nvRouteStatus . nvRouteObject = { path , query , data } ; nvRouteStatus . nvRouteParmasObject = { } ; } ; }