From dd6debf28fcceff75e27125582ebe4fe73ac1e6d Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Fri, 29 May 2020 12:18:38 +0300 Subject: [PATCH] feat(theme-shared): create nav item utility functions --- .../theme-shared/src/lib/utils/index.ts | 3 ++- .../theme-shared/src/lib/utils/nav-items.ts | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 npm/ng-packs/packages/theme-shared/src/lib/utils/nav-items.ts 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$; +}