diff --git a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts index 4a3426dd51..2f80d6b44d 100644 --- a/npm/ng-packs/packages/core/src/lib/services/routes.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/routes.service.ts @@ -151,6 +151,11 @@ export abstract class AbstractNavTreeService extends Abstract return this.store.selectSnapshot(ConfigState.getGrantedPolicy(requiredPolicy)); } + hasChildren(identifier: string): boolean { + const node = this.find(item => item[this.id] === identifier); + return Boolean(node?.children?.length); + } + hasInvisibleChild(identifier: string): boolean { const node = this.find(item => item[this.id] === identifier); return node?.children?.some(child => child.invisible); diff --git a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts index c1413d73ab..aa5e51cb17 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/routes.service.spec.ts @@ -68,6 +68,16 @@ describe('Routes Service', () => { }); }); + describe('#hasChildren', () => { + it('should return if node has invisible child', () => { + service.add(routes); + + expect(service.hasChildren('foo')).toBe(true); + expect(service.hasChildren('bar')).toBe(true); + expect(service.hasChildren('baz')).toBe(false); + }); + }); + describe('#hasInvisibleChild', () => { it('should return if node has invisible child', () => { service.add(routes);