From b494c9551ecff6d5159ed30cd24f1566ff921a01 Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Wed, 13 Dec 2023 14:55:40 +0100 Subject: [PATCH 1/7] add base resolver --- .../admin-ldn-services-routing.module.ts | 8 +++--- .../navigation-breadcrumb.resolver.ts | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts diff --git a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts index 282ca430a2..4efeadf375 100644 --- a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts +++ b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts @@ -1,9 +1,9 @@ import {NgModule} from '@angular/core'; import {RouterModule} from '@angular/router'; -import {I18nBreadcrumbResolver} from 'src/app/core/breadcrumbs/i18n-breadcrumb.resolver'; import {LdnServicesOverviewComponent} from './ldn-services-directory/ldn-services-directory.component'; import {LdnServiceNewComponent} from './ldn-service-new/ldn-service-new.component'; import {LdnServiceFormEditComponent} from './ldn-service-form-edit/ldn-service-form-edit.component'; +import {NavigationBreadcrumbResolver} from "../../core/breadcrumbs/navigation-breadcrumb.resolver"; @NgModule({ imports: [ @@ -12,18 +12,18 @@ import {LdnServiceFormEditComponent} from './ldn-service-form-edit/ldn-service-f path: '', pathMatch: 'full', component: LdnServicesOverviewComponent, - resolve: {breadcrumb: I18nBreadcrumbResolver}, + resolve: {breadcrumb: NavigationBreadcrumbResolver}, data: {title: 'ldn-registered-services.title', breadcrumbKey: 'ldn-registered-services.new'}, }, { path: 'new', - resolve: {breadcrumb: I18nBreadcrumbResolver}, + resolve: {breadcrumb: NavigationBreadcrumbResolver}, component: LdnServiceNewComponent, data: {title: 'ldn-register-new-service.title', breadcrumbKey: 'ldn-register-new-service'} }, { path: 'edit/:serviceId', - resolve: {breadcrumb: I18nBreadcrumbResolver}, + resolve: {breadcrumb: NavigationBreadcrumbResolver}, component: LdnServiceFormEditComponent, data: {title: 'ldn-edit-service.title', breadcrumbKey: 'ldn-edit-service'} }, diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts new file mode 100644 index 0000000000..f167c65cab --- /dev/null +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts @@ -0,0 +1,27 @@ +import { BreadcrumbConfig } from '../../breadcrumbs/breadcrumb/breadcrumb-config.model'; +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; +import { hasNoValue } from '../../shared/empty.util'; +import { currentPathFromSnapshot } from '../../shared/utils/route.utils'; + +/** + * The class that resolves a BreadcrumbConfig object with an i18n key string for a route + */ +@Injectable({ + providedIn: 'root' +}) +export class NavigationBreadcrumbResolver implements Resolve> { + constructor() { + } + + /** + * Method for resolving an I18n breadcrumb configuration object + * @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot + * @param {RouterStateSnapshot} state The current RouterStateSnapshot + * @returns BreadcrumbConfig object + */ + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): BreadcrumbConfig { + console.log(route, state); + return null + } +} From 763311ed29a3146a08bd56fefa7e6e75d5ae80f9 Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Wed, 13 Dec 2023 18:13:00 +0100 Subject: [PATCH 2/7] add navigation resolver config --- .../admin-ldn-services-routing.module.ts | 54 +++++++++++-------- .../navigation-breadcrumb.resolver.ts | 17 ++++-- .../navigation-breadcrumb.service.ts | 27 ++++++++++ 3 files changed, 72 insertions(+), 26 deletions(-) create mode 100644 src/app/core/breadcrumbs/navigation-breadcrumb.service.ts diff --git a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts index 4efeadf375..2cbbcf7f79 100644 --- a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts +++ b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts @@ -1,33 +1,43 @@ import {NgModule} from '@angular/core'; -import {RouterModule} from '@angular/router'; +import {RouterModule, Routes} from '@angular/router'; import {LdnServicesOverviewComponent} from './ldn-services-directory/ldn-services-directory.component'; import {LdnServiceNewComponent} from './ldn-service-new/ldn-service-new.component'; import {LdnServiceFormEditComponent} from './ldn-service-form-edit/ldn-service-form-edit.component'; import {NavigationBreadcrumbResolver} from "../../core/breadcrumbs/navigation-breadcrumb.resolver"; +import {I18nBreadcrumbResolver} from "../../core/breadcrumbs/i18n-breadcrumb.resolver"; + + +const moduleRoutes: Routes = [ + { + path: '', + pathMatch: 'full', + component: LdnServicesOverviewComponent, + resolve: {breadcrumb: I18nBreadcrumbResolver}, + data: {title: 'ldn-registered-services.title', breadcrumbKey: 'ldn-registered-services.new'}, + }, + { + path: 'new', + resolve: {breadcrumb: NavigationBreadcrumbResolver}, + component: LdnServiceNewComponent, + data: {title: 'ldn-register-new-service.title', breadcrumbKey: 'ldn-register-new-service'} + }, + { + path: 'edit/:serviceId', + resolve: {breadcrumb: NavigationBreadcrumbResolver}, + component: LdnServiceFormEditComponent, + data: {title: 'ldn-edit-service.title', breadcrumbKey: 'ldn-edit-service'} + }, +]; + +const relatedRoutes = moduleRoutes.map(route => { + return {...route, data: {...route.data, parentRoute: moduleRoutes[0]}} +}) @NgModule({ imports: [ - RouterModule.forChild([ - { - path: '', - pathMatch: 'full', - component: LdnServicesOverviewComponent, - resolve: {breadcrumb: NavigationBreadcrumbResolver}, - data: {title: 'ldn-registered-services.title', breadcrumbKey: 'ldn-registered-services.new'}, - }, - { - path: 'new', - resolve: {breadcrumb: NavigationBreadcrumbResolver}, - component: LdnServiceNewComponent, - data: {title: 'ldn-register-new-service.title', breadcrumbKey: 'ldn-register-new-service'} - }, - { - path: 'edit/:serviceId', - resolve: {breadcrumb: NavigationBreadcrumbResolver}, - component: LdnServiceFormEditComponent, - data: {title: 'ldn-edit-service.title', breadcrumbKey: 'ldn-edit-service'} - }, - ]), + RouterModule.forChild(moduleRoutes.map(route => { + return {...route, data: {...route.data, relatedRoutes }} + })) ] }) export class AdminLdnServicesRoutingModule { diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts index f167c65cab..38b7ae64a1 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts @@ -1,8 +1,9 @@ import { BreadcrumbConfig } from '../../breadcrumbs/breadcrumb/breadcrumb-config.model'; import { Injectable } from '@angular/core'; -import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; +import {ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot, Routes} from '@angular/router'; import { hasNoValue } from '../../shared/empty.util'; import { currentPathFromSnapshot } from '../../shared/utils/route.utils'; +import {NavigationBreadcrumbsService} from "./navigation-breadcrumb.service"; /** * The class that resolves a BreadcrumbConfig object with an i18n key string for a route @@ -11,9 +12,13 @@ import { currentPathFromSnapshot } from '../../shared/utils/route.utils'; providedIn: 'root' }) export class NavigationBreadcrumbResolver implements Resolve> { - constructor() { + constructor(protected breadcrumbService: NavigationBreadcrumbsService) { } + + private getUniqueParentRoutes(routes: Routes) : Routes { + return [...new Set(routes.map(route => route.data.parentRoute))]; + } /** * Method for resolving an I18n breadcrumb configuration object * @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot @@ -21,7 +26,11 @@ export class NavigationBreadcrumbResolver implements Resolve { - console.log(route, state); - return null + const path = route.routeConfig.path; + const relatedRoutes = route.data.relatedRoutes.filter(relatedRoute => relatedRoute.path !== path); + const uniqueParentRoutes = this.getUniqueParentRoutes(route.data.relatedRoutes); + + console.log(path, relatedRoutes, uniqueParentRoutes); + return {provider: this.breadcrumbService, key: "combinedBredcrumbKeys", url: ""} } } diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.service.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.service.ts new file mode 100644 index 0000000000..765122a85c --- /dev/null +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.service.ts @@ -0,0 +1,27 @@ +import { Breadcrumb } from '../../breadcrumbs/breadcrumb/breadcrumb.model'; +import { BreadcrumbsProviderService } from './breadcrumbsProviderService'; +import { Observable, of as observableOf } from 'rxjs'; +import { Injectable } from '@angular/core'; + +/** + * The postfix for i18n breadcrumbs + */ +export const BREADCRUMB_MESSAGE_POSTFIX = '.breadcrumbs'; + +/** + * Service to calculate i18n breadcrumbs for a single part of the route + */ +@Injectable({ + providedIn: 'root' +}) +export class NavigationBreadcrumbsService implements BreadcrumbsProviderService { + + /** + * Method to calculate the breadcrumbs + * @param key The key used to resolve the breadcrumb + * @param url The url to use as a link for this breadcrumb + */ + getBreadcrumbs(key: string, url: string): Observable { + return observableOf([new Breadcrumb(key + BREADCRUMB_MESSAGE_POSTFIX, url)]); + } +} From f4d02178622b02223b700014a795570dcd6de0d9 Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Wed, 13 Dec 2023 18:13:26 +0100 Subject: [PATCH 3/7] add navigation resolver config --- src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts index 38b7ae64a1..0fc8c6d7a6 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts @@ -1,8 +1,6 @@ import { BreadcrumbConfig } from '../../breadcrumbs/breadcrumb/breadcrumb-config.model'; import { Injectable } from '@angular/core'; -import {ActivatedRouteSnapshot, Resolve, Router, RouterStateSnapshot, Routes} from '@angular/router'; -import { hasNoValue } from '../../shared/empty.util'; -import { currentPathFromSnapshot } from '../../shared/utils/route.utils'; +import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot, Routes} from '@angular/router'; import {NavigationBreadcrumbsService} from "./navigation-breadcrumb.service"; /** From 86ccd8ade70428f8f84237c81ddabccdd507d61e Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Thu, 14 Dec 2023 11:30:50 +0100 Subject: [PATCH 4/7] finalize resolver, service and tests --- .../admin-ldn-services-routing.module.ts | 15 +++--- .../navigation-breadcrumb.resolver.spec.ts | 53 +++++++++++++++++++ .../navigation-breadcrumb.resolver.ts | 40 ++++++++++---- .../navigation-breadcrumb.service.ts | 5 +- .../navigation-breadcrumbs.service.spec.ts | 43 +++++++++++++++ 5 files changed, 138 insertions(+), 18 deletions(-) create mode 100644 src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts create mode 100644 src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts diff --git a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts index 2cbbcf7f79..50815f6a0c 100644 --- a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts +++ b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts @@ -3,8 +3,8 @@ import {RouterModule, Routes} from '@angular/router'; import {LdnServicesOverviewComponent} from './ldn-services-directory/ldn-services-directory.component'; import {LdnServiceNewComponent} from './ldn-service-new/ldn-service-new.component'; import {LdnServiceFormEditComponent} from './ldn-service-form-edit/ldn-service-form-edit.component'; -import {NavigationBreadcrumbResolver} from "../../core/breadcrumbs/navigation-breadcrumb.resolver"; -import {I18nBreadcrumbResolver} from "../../core/breadcrumbs/i18n-breadcrumb.resolver"; +import {NavigationBreadcrumbResolver} from '../../core/breadcrumbs/navigation-breadcrumb.resolver'; +import {I18nBreadcrumbResolver} from '../../core/breadcrumbs/i18n-breadcrumb.resolver'; const moduleRoutes: Routes = [ @@ -29,14 +29,17 @@ const moduleRoutes: Routes = [ }, ]; -const relatedRoutes = moduleRoutes.map(route => { - return {...route, data: {...route.data, parentRoute: moduleRoutes[0]}} -}) @NgModule({ imports: [ RouterModule.forChild(moduleRoutes.map(route => { - return {...route, data: {...route.data, relatedRoutes }} + return {...route, data: { + ...route.data, + relatedRoutes: moduleRoutes.filter(relatedRoute => relatedRoute.path !== route.path) + .map((relatedRoute) => { + return {path: relatedRoute.path, data: relatedRoute.data}; + }) + }}; })) ] }) diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts new file mode 100644 index 0000000000..2c156f296d --- /dev/null +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts @@ -0,0 +1,53 @@ +import { URLCombiner } from '../url-combiner/url-combiner'; +import {NavigationBreadcrumbResolver} from "./navigation-breadcrumb.resolver"; + +describe('NavigationBreadcrumbResolver', () => { + describe('resolve', () => { + let resolver: NavigationBreadcrumbResolver; + let NavigationBreadcrumbService: any; + let i18nKey: string; + let relatedI18nKey: string; + let route: any; + let expectedPath; + let state; + beforeEach(() => { + i18nKey = 'example.key'; + relatedI18nKey = 'related.key'; + route = { + data: { + breadcrumbKey: i18nKey, + relatedRoutes: [ + { + path: '', + data: {breadcrumbKey: relatedI18nKey}, + } + ] + }, + routeConfig: { + path: 'example' + }, + parent: { + routeConfig: { + path: '' + }, + url: [{ + path: "base" + }] + } as any + }; + + state = { + url: '/base/example' + } + expectedPath = '/base/example:/base'; + NavigationBreadcrumbService = {}; + resolver = new NavigationBreadcrumbResolver(NavigationBreadcrumbService); + }); + + it('should resolve the breadcrumb config', () => { + const resolvedConfig = resolver.resolve(route, state); + const expectedConfig = { provider: NavigationBreadcrumbService, key: `${i18nKey}:${relatedI18nKey}`, url: expectedPath }; + expect(resolvedConfig).toEqual(expectedConfig); + }); + }); +}); diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts index 0fc8c6d7a6..81feac5cde 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts @@ -1,21 +1,29 @@ import { BreadcrumbConfig } from '../../breadcrumbs/breadcrumb/breadcrumb-config.model'; import { Injectable } from '@angular/core'; -import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot, Routes} from '@angular/router'; -import {NavigationBreadcrumbsService} from "./navigation-breadcrumb.service"; +import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router'; +import {NavigationBreadcrumbsService} from './navigation-breadcrumb.service'; /** - * The class that resolves a BreadcrumbConfig object with an i18n key string for a route + * The class that resolves a BreadcrumbConfig object with an i18n key string for a route and related parents */ @Injectable({ providedIn: 'root' }) export class NavigationBreadcrumbResolver implements Resolve> { + + private parentRoutes: ActivatedRouteSnapshot[] = []; constructor(protected breadcrumbService: NavigationBreadcrumbsService) { } - - private getUniqueParentRoutes(routes: Routes) : Routes { - return [...new Set(routes.map(route => route.data.parentRoute))]; + /** + * Method to collect all parent routes snapshot from current route snapshot + * @param {ActivatedRouteSnapshot} route The current ActivatedRouteSnapshot + */ + private getParentRoutes(route: ActivatedRouteSnapshot): void { + if (route.parent) { + this.parentRoutes.push(route.parent); + this.getParentRoutes(route.parent); + } } /** * Method for resolving an I18n breadcrumb configuration object @@ -24,11 +32,21 @@ export class NavigationBreadcrumbResolver implements Resolve { - const path = route.routeConfig.path; - const relatedRoutes = route.data.relatedRoutes.filter(relatedRoute => relatedRoute.path !== path); - const uniqueParentRoutes = this.getUniqueParentRoutes(route.data.relatedRoutes); + this.getParentRoutes(route); + const relatedRoutes = route.data.relatedRoutes; + const parentPaths = this.parentRoutes.map(parent => parent.routeConfig?.path); + const relatedParentRoutes = relatedRoutes.filter(relatedRoute => parentPaths.includes(relatedRoute.path)); + const baseUrlSegmentPath = route.parent.url[route.parent.url.length - 1].path; + const baseUrl = state.url.substring(0, state.url.lastIndexOf(baseUrlSegmentPath) + baseUrlSegmentPath.length); - console.log(path, relatedRoutes, uniqueParentRoutes); - return {provider: this.breadcrumbService, key: "combinedBredcrumbKeys", url: ""} + + const combinedParentBreadcrumbKeys = relatedParentRoutes.reduce((previous, current) => { + return `${previous}:${current.data.breadcrumbKey}`; + }, route.data.breadcrumbKey); + const combinedUrls = relatedParentRoutes.reduce((previous, current) => { + return `${previous}:${baseUrl}${current.path}`; + }, state.url); + + return {provider: this.breadcrumbService, key: combinedParentBreadcrumbKeys, url: combinedUrls}; } } diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.service.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.service.ts index 765122a85c..beebeed94e 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumb.service.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.service.ts @@ -22,6 +22,9 @@ export class NavigationBreadcrumbsService implements BreadcrumbsProviderService< * @param url The url to use as a link for this breadcrumb */ getBreadcrumbs(key: string, url: string): Observable { - return observableOf([new Breadcrumb(key + BREADCRUMB_MESSAGE_POSTFIX, url)]); + const keys = key.split(':'); + const urls = url.split(':'); + const breadcrumbs = keys.map((currentKey, index) => new Breadcrumb(currentKey + BREADCRUMB_MESSAGE_POSTFIX, urls[index] )); + return observableOf(breadcrumbs.reverse()); } } diff --git a/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts b/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts new file mode 100644 index 0000000000..e2b36feed0 --- /dev/null +++ b/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts @@ -0,0 +1,43 @@ +import { TestBed, waitForAsync } from '@angular/core/testing'; +import { Breadcrumb } from '../../breadcrumbs/breadcrumb/breadcrumb.model'; +import { getTestScheduler } from 'jasmine-marbles'; +import { BREADCRUMB_MESSAGE_POSTFIX } from './i18n-breadcrumbs.service'; +import {NavigationBreadcrumbsService} from "./navigation-breadcrumb.service"; + +describe('NavigationBreadcrumbsService', () => { + let service: NavigationBreadcrumbsService; + let exampleString; + let exampleURL; + let childrenString; + let childrenUrl; + let parentString; + let parentUrl; + + function init() { + exampleString = 'example.string:parent.string'; + exampleURL = 'example.com:parent.com'; + childrenString = 'example.string'; + childrenUrl = 'example.com'; + parentString = 'parent.string'; + parentUrl = 'parent.com'; + } + + beforeEach(waitForAsync(() => { + init(); + TestBed.configureTestingModule({}).compileComponents(); + })); + + beforeEach(() => { + service = new NavigationBreadcrumbsService(); + }); + + describe('getBreadcrumbs', () => { + it('should return an array of breadcrumbs based on strings by adding the postfix', () => { + const breadcrumbs = service.getBreadcrumbs(exampleString, exampleURL); + getTestScheduler().expectObservable(breadcrumbs).toBe('(a|)', { a: [ + new Breadcrumb(childrenString + BREADCRUMB_MESSAGE_POSTFIX, childrenUrl), + new Breadcrumb(parentString + BREADCRUMB_MESSAGE_POSTFIX, parentUrl), + ].reverse() }); + }); + }); +}); From f2a2433bf3937f5ccf31c5140832c3b382731304 Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Thu, 14 Dec 2023 11:34:49 +0100 Subject: [PATCH 5/7] fix lint --- .../breadcrumbs/navigation-breadcrumb.resolver.spec.ts | 7 +++---- .../breadcrumbs/navigation-breadcrumbs.service.spec.ts | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts index 2c156f296d..9415a18e35 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts @@ -1,5 +1,4 @@ -import { URLCombiner } from '../url-combiner/url-combiner'; -import {NavigationBreadcrumbResolver} from "./navigation-breadcrumb.resolver"; +import {NavigationBreadcrumbResolver} from './navigation-breadcrumb.resolver'; describe('NavigationBreadcrumbResolver', () => { describe('resolve', () => { @@ -31,14 +30,14 @@ describe('NavigationBreadcrumbResolver', () => { path: '' }, url: [{ - path: "base" + path: 'base' }] } as any }; state = { url: '/base/example' - } + }; expectedPath = '/base/example:/base'; NavigationBreadcrumbService = {}; resolver = new NavigationBreadcrumbResolver(NavigationBreadcrumbService); diff --git a/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts b/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts index e2b36feed0..7aab9732c8 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts @@ -2,7 +2,7 @@ import { TestBed, waitForAsync } from '@angular/core/testing'; import { Breadcrumb } from '../../breadcrumbs/breadcrumb/breadcrumb.model'; import { getTestScheduler } from 'jasmine-marbles'; import { BREADCRUMB_MESSAGE_POSTFIX } from './i18n-breadcrumbs.service'; -import {NavigationBreadcrumbsService} from "./navigation-breadcrumb.service"; +import {NavigationBreadcrumbsService} from './navigation-breadcrumb.service'; describe('NavigationBreadcrumbsService', () => { let service: NavigationBreadcrumbsService; From 92870452ae04720d7f4b5c5b431e1a3d8f0da8fa Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Mon, 18 Dec 2023 12:38:28 +0100 Subject: [PATCH 6/7] add spaces on import --- .../admin-ldn-services.module.ts | 16 ++++++++-------- .../navigation-breadcrumb.resolver.spec.ts | 2 +- .../navigation-breadcrumb.resolver.ts | 4 ++-- .../navigation-breadcrumbs.service.spec.ts | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/app/admin/admin-ldn-services/admin-ldn-services.module.ts b/src/app/admin/admin-ldn-services/admin-ldn-services.module.ts index 1eecf1d751..45ec696cd3 100644 --- a/src/app/admin/admin-ldn-services/admin-ldn-services.module.ts +++ b/src/app/admin/admin-ldn-services/admin-ldn-services.module.ts @@ -1,11 +1,11 @@ -import {NgModule} from '@angular/core'; -import {CommonModule} from '@angular/common'; -import {AdminLdnServicesRoutingModule} from './admin-ldn-services-routing.module'; -import {LdnServicesOverviewComponent} from './ldn-services-directory/ldn-services-directory.component'; -import {SharedModule} from '../../shared/shared.module'; -import {LdnServiceFormComponent} from './ldn-service-form/ldn-service-form.component'; -import {FormsModule} from '@angular/forms'; -import {LdnItemfiltersService} from './ldn-services-data/ldn-itemfilters-data.service'; +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { AdminLdnServicesRoutingModule } from './admin-ldn-services-routing.module'; +import { LdnServicesOverviewComponent } from './ldn-services-directory/ldn-services-directory.component'; +import { SharedModule } from '../../shared/shared.module'; +import { LdnServiceFormComponent } from './ldn-service-form/ldn-service-form.component'; +import { FormsModule } from '@angular/forms'; +import { LdnItemfiltersService } from './ldn-services-data/ldn-itemfilters-data.service'; @NgModule({ diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts index 9415a18e35..81b3b8ad2a 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.spec.ts @@ -1,4 +1,4 @@ -import {NavigationBreadcrumbResolver} from './navigation-breadcrumb.resolver'; +import { NavigationBreadcrumbResolver } from './navigation-breadcrumb.resolver'; describe('NavigationBreadcrumbResolver', () => { describe('resolve', () => { diff --git a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts index 81feac5cde..18ebfc395b 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumb.resolver.ts @@ -1,7 +1,7 @@ import { BreadcrumbConfig } from '../../breadcrumbs/breadcrumb/breadcrumb-config.model'; import { Injectable } from '@angular/core'; -import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router'; -import {NavigationBreadcrumbsService} from './navigation-breadcrumb.service'; +import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router'; +import { NavigationBreadcrumbsService } from './navigation-breadcrumb.service'; /** * The class that resolves a BreadcrumbConfig object with an i18n key string for a route and related parents diff --git a/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts b/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts index 7aab9732c8..98e20e285d 100644 --- a/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts +++ b/src/app/core/breadcrumbs/navigation-breadcrumbs.service.spec.ts @@ -2,7 +2,7 @@ import { TestBed, waitForAsync } from '@angular/core/testing'; import { Breadcrumb } from '../../breadcrumbs/breadcrumb/breadcrumb.model'; import { getTestScheduler } from 'jasmine-marbles'; import { BREADCRUMB_MESSAGE_POSTFIX } from './i18n-breadcrumbs.service'; -import {NavigationBreadcrumbsService} from './navigation-breadcrumb.service'; +import { NavigationBreadcrumbsService } from './navigation-breadcrumb.service'; describe('NavigationBreadcrumbsService', () => { let service: NavigationBreadcrumbsService; From 11bb71ea8a3573a2af21e9ae6871b074fb6d85d9 Mon Sep 17 00:00:00 2001 From: FrancescoMolinaro Date: Fri, 22 Dec 2023 10:43:39 +0100 Subject: [PATCH 7/7] fix import spaces --- .../admin-ldn-services-routing.module.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts index 079cbb6c15..c94083d3ba 100644 --- a/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts +++ b/src/app/admin/admin-ldn-services/admin-ldn-services-routing.module.ts @@ -1,8 +1,8 @@ -import {NgModule} from '@angular/core'; -import {RouterModule, Routes} from '@angular/router'; -import {LdnServicesOverviewComponent} from './ldn-services-directory/ldn-services-directory.component'; -import {NavigationBreadcrumbResolver} from '../../core/breadcrumbs/navigation-breadcrumb.resolver'; -import {I18nBreadcrumbResolver} from '../../core/breadcrumbs/i18n-breadcrumb.resolver'; +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; +import { LdnServicesOverviewComponent } from './ldn-services-directory/ldn-services-directory.component'; +import { NavigationBreadcrumbResolver } from '../../core/breadcrumbs/navigation-breadcrumb.resolver'; +import { I18nBreadcrumbResolver } from '../../core/breadcrumbs/i18n-breadcrumb.resolver'; import { LdnServiceFormComponent } from './ldn-service-form/ldn-service-form.component';