1- import { Directive , Input , OnDestroy , OnInit } from '@angular/core' ;
2- import { ActivatedRoute , Params , Router } from '@angular/router' ;
1+ import { Directive , Inject , Input , OnDestroy , OnInit } from '@angular/core' ;
2+ import { Params } from '@angular/router' ;
33import { Subject } from 'rxjs' ;
44import { bufferTime , concatMap , debounceTime , map , takeUntil , tap } from 'rxjs/operators' ;
5+ import { NGQP_ROUTER_ADAPTER , RouterAdapter } from './router-adapter/router-adapter.interface' ;
56import { QueryParamNameDirective } from './query-param-name.directive' ;
67import { QueryParamControl , QueryParamGroup } from './model' ;
78import { isMissing } from './util' ;
@@ -25,10 +26,7 @@ export class QueryParamGroupDirective implements OnInit, OnDestroy {
2526 private queue$ = new Subject < Params > ( ) ;
2627 private destroy$ = new Subject < void > ( ) ;
2728
28- constructor (
29- private router : Router ,
30- private route : ActivatedRoute ,
31- ) {
29+ constructor ( @Inject ( NGQP_ROUTER_ADAPTER ) private routerAdapter : RouterAdapter ) {
3230 this . setupNavigationQueue ( ) ;
3331 }
3432
@@ -38,7 +36,7 @@ export class QueryParamGroupDirective implements OnInit, OnDestroy {
3836 control . registerOnChange ( ( newModel : any ) => this . enqueueNavigation ( this . getParamsForModel ( control , newModel ) ) ) ;
3937 } ) ;
4038
41- this . route . queryParamMap . subscribe ( queryParamMap => {
39+ this . routerAdapter . queryParamMap . subscribe ( queryParamMap => {
4240 Object . keys ( this . queryParamGroup . controls ) . forEach ( controlName => {
4341 const control : QueryParamControl < any > = this . queryParamGroup . get ( controlName ) ;
4442 const newModel = control . deserialize ( queryParamMap . get ( control . name ) ) ;
@@ -107,11 +105,7 @@ export class QueryParamGroupDirective implements OnInit, OnDestroy {
107105 return { ...a , ...b } ;
108106 } , { } ) ) ,
109107
110- concatMap ( params => this . router . navigate ( [ ] , {
111- relativeTo : this . route ,
112- queryParamsHandling : 'merge' ,
113- queryParams : params ,
114- } ) ) ,
108+ concatMap ( params => this . routerAdapter . navigate ( params ) ) ,
115109 ) . subscribe ( ) ;
116110 }
117111
0 commit comments