diff --git a/npm/ng-packs/packages/theme-shared/src/lib/utils/index.ts b/npm/ng-packs/packages/theme-shared/src/lib/utils/index.ts index f50cf2ffe0..f1d694dded 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/utils/index.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/utils/index.ts @@ -1,3 +1,4 @@ -export * from './widget-utils'; export * from './date-parser-formatter'; +export * from './nav-items'; export * from './validation-utils'; +export * from './widget-utils'; diff --git a/npm/ng-packs/packages/theme-shared/src/lib/utils/nav-items.ts b/npm/ng-packs/packages/theme-shared/src/lib/utils/nav-items.ts new file mode 100644 index 0000000000..b31ea050c6 --- /dev/null +++ b/npm/ng-packs/packages/theme-shared/src/lib/utils/nav-items.ts @@ -0,0 +1,22 @@ +import { Type } from '@angular/core'; +import { ReplaySubject } from 'rxjs'; + +export interface NavItem { + component?: Type; + html?: string; + action?: () => void; + order?: number; + permission?: string; +} + +const navItems: NavItem[] = []; +const navItems$ = new ReplaySubject(1); + +export function addNavItem(item: NavItem) { + navItems.push(item); + navItems$.next(navItems.sort((a, b) => (a.order ? a.order - b.order : 1))); +} + +export function getNavItems() { + return navItems$; +}