@volo/ngx-lepton-x.core 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/esm2020/index.mjs +3 -1
  2. package/esm2020/lib/abstracts/index.mjs +2 -0
  3. package/esm2020/lib/abstracts/perfect-scrollbar.mjs +8 -0
  4. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +3 -3
  5. package/esm2020/lib/components/navbar/models.mjs +1 -1
  6. package/esm2020/lib/components/navbar/navbar-routes/navbar-routes.component.mjs +26 -9
  7. package/esm2020/lib/components/navbar/navbar.component.mjs +3 -3
  8. package/esm2020/lib/components/navbar/navbar.service.mjs +13 -2
  9. package/esm2020/lib/consts/index.mjs +2 -0
  10. package/esm2020/lib/consts/others-group.mjs +2 -0
  11. package/esm2020/lib/directives/index.mjs +2 -1
  12. package/esm2020/lib/directives/perfect-scrollbar.directive.mjs +34 -0
  13. package/esm2020/lib/lepton-x-core.module.mjs +10 -3
  14. package/esm2020/lib/models/common.mjs +1 -1
  15. package/esm2020/lib/models/index.mjs +2 -1
  16. package/esm2020/lib/models/user.mjs +2 -0
  17. package/esm2020/lib/services/index.mjs +2 -1
  18. package/esm2020/lib/services/perfect-scrollbar.service.mjs +47 -0
  19. package/esm2020/lib/services/user-profile/user-profile.service.mjs +1 -1
  20. package/esm2020/lib/tokens/index.mjs +2 -1
  21. package/esm2020/lib/tokens/perfect-scrollbar.token.mjs +3 -0
  22. package/esm2020/lib/utils/common.mjs +7 -1
  23. package/esm2020/lib/utils/index.mjs +2 -1
  24. package/esm2020/lib/utils/tree-utils.mjs +21 -0
  25. package/fesm2015/volo-ngx-lepton-x.core.mjs +181 -39
  26. package/fesm2015/volo-ngx-lepton-x.core.mjs.map +1 -1
  27. package/fesm2020/volo-ngx-lepton-x.core.mjs +179 -41
  28. package/fesm2020/volo-ngx-lepton-x.core.mjs.map +1 -1
  29. package/index.d.ts +2 -0
  30. package/lib/abstracts/index.d.ts +1 -0
  31. package/lib/abstracts/perfect-scrollbar.d.ts +15 -0
  32. package/lib/components/navbar/models.d.ts +5 -0
  33. package/lib/components/navbar/navbar-routes/navbar-routes.component.d.ts +6 -2
  34. package/lib/components/navbar/navbar.service.d.ts +7 -2
  35. package/lib/consts/index.d.ts +1 -0
  36. package/lib/consts/others-group.d.ts +1 -0
  37. package/lib/directives/index.d.ts +1 -0
  38. package/lib/directives/perfect-scrollbar.directive.d.ts +12 -0
  39. package/lib/models/common.d.ts +5 -0
  40. package/lib/models/index.d.ts +1 -0
  41. package/lib/models/user.d.ts +16 -0
  42. package/lib/services/index.d.ts +1 -0
  43. package/lib/services/perfect-scrollbar.service.d.ts +15 -0
  44. package/lib/services/user-profile/user-profile.service.d.ts +1 -10
  45. package/lib/tokens/index.d.ts +1 -0
  46. package/lib/tokens/perfect-scrollbar.token.d.ts +3 -0
  47. package/lib/utils/common.d.ts +2 -0
  48. package/lib/utils/index.d.ts +1 -0
  49. package/lib/utils/tree-utils.d.ts +8 -0
  50. package/package.json +3 -2
package/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
+ export * from './lib/abstracts';
1
2
  export * from './lib/lepton-x-core.module';
3
+ export * from './lib/consts/index';
2
4
  export * from './lib/components/index';
3
5
  export * from './lib/directives/index';
4
6
  export * from './lib/models/index';
@@ -0,0 +1 @@
1
+ export * from './perfect-scrollbar';
@@ -0,0 +1,15 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import PerfectScrollbar from 'perfect-scrollbar';
4
+ import { LpxPerfectScrollbarOptions } from '../models';
5
+ export declare abstract class LpxPerfectScrollbar {
6
+ protected readonly router: Router;
7
+ protected elementRef: ElementRef<any>;
8
+ protected perfectScrollbar: PerfectScrollbar;
9
+ protected options: LpxPerfectScrollbarOptions | undefined;
10
+ abstract setElement(value: ElementRef<any>): void;
11
+ abstract setOptions(value: LpxPerfectScrollbarOptions): void;
12
+ abstract createScrollbar(): void;
13
+ abstract onResize(): void;
14
+ abstract afterViewInit(): void;
15
+ }
@@ -1,5 +1,9 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { TemplateRef, Type, Injector } from '@angular/core';
3
+ export interface GroupedNavbarItems {
4
+ group: string;
5
+ items: LpxNavbarItem[];
6
+ }
3
7
  export interface LpxNavbarItem {
4
8
  action?: NavBarPropPredicate<LpxNavbarItem>;
5
9
  children?: LpxNavbarItem[];
@@ -15,5 +19,6 @@ export interface LpxNavbarItem {
15
19
  template?: TemplateRef<any>;
16
20
  text?: string;
17
21
  visible?: NavBarPropPredicate<LpxNavbarItem>;
22
+ group?: string;
18
23
  }
19
24
  export declare type NavBarPropPredicate<T> = ((prop?: T, injector?: Injector) => boolean | Promise<boolean> | Observable<boolean>);
@@ -1,17 +1,21 @@
1
1
  import { EventEmitter, Injector } from '@angular/core';
2
- import { LpxNavbarItem } from '../models';
2
+ import { GroupedNavbarItems, LpxNavbarItem } from '../models';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare type NavbarItemsType = LpxNavbarItem[] | null | undefined;
5
+ export declare type NavbarGroupItemsType = GroupedNavbarItems[] | null | undefined;
5
6
  export declare class NavbarRoutesComponent {
6
7
  injector: Injector;
8
+ groupedItems: NavbarGroupItemsType;
7
9
  navbarItems: NavbarItemsType;
8
10
  routerItem: boolean;
9
11
  routeClick: EventEmitter<LpxNavbarItem>;
12
+ private get itemsFromGroup();
13
+ private isExpandedOrSelected;
10
14
  constructor(injector: Injector);
11
15
  onSubnavbarExpand(menuItem: LpxNavbarItem, menuItems: NavbarItemsType): void;
12
16
  onRouteClick(menuItem: LpxNavbarItem, menuItems: NavbarItemsType): void;
13
17
  checkChildrenIncludesItem(item: LpxNavbarItem, menuItem: LpxNavbarItem): boolean;
14
18
  flatChildren(menuItems: NavbarItemsType): LpxNavbarItem[];
15
19
  static ɵfac: i0.ɵɵFactoryDeclaration<NavbarRoutesComponent, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<NavbarRoutesComponent, "lpx-navbar-routes", never, { "navbarItems": "navbarItems"; "routerItem": "routerItem"; }, { "routeClick": "routeClick"; }, never, never, false, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<NavbarRoutesComponent, "lpx-navbar-routes", never, { "groupedItems": "groupedItems"; "navbarItems": "navbarItems"; "routerItem": "routerItem"; }, { "routeClick": "routeClick"; }, never, never, false, never>;
17
21
  }
@@ -1,3 +1,4 @@
1
+ import { Observable } from 'rxjs';
1
2
  import { LpxNavbarItem } from './models';
2
3
  import { ActivatedRoute, Router } from '@angular/router';
3
4
  import * as i0 from "@angular/core";
@@ -6,7 +7,11 @@ export declare class NavbarService {
6
7
  private route;
7
8
  private router;
8
9
  private store;
9
- navbarItems$: import("rxjs").Observable<LpxNavbarItem[]>;
10
+ navbarItems$: Observable<LpxNavbarItem[]>;
11
+ groupedNavbarItems$: Observable<{
12
+ group: string;
13
+ items: LpxNavbarItem[];
14
+ }[]>;
10
15
  constructor(menuItems: LpxNavbarItem[], route: ActivatedRoute, router: Router);
11
16
  addNavbarItems(...menuItems: LpxNavbarItem[]): void;
12
17
  setNavbarItems(...menuItems: LpxNavbarItem[]): void;
@@ -15,7 +20,7 @@ export declare class NavbarService {
15
20
  item: LpxNavbarItem | undefined;
16
21
  location: number[];
17
22
  };
18
- expandItemByLink$(): import("rxjs").Observable<import("@angular/router").Event>;
23
+ expandItemByLink$(): Observable<import("@angular/router").Event>;
19
24
  expandItems(): void;
20
25
  getRouteItem(): {
21
26
  item: LpxNavbarItem | undefined;
@@ -0,0 +1 @@
1
+ export * from './others-group';
@@ -0,0 +1 @@
1
+ export declare const OTHERS_GROUP_KEY = "AbpUi::OthersGroup";
@@ -1,3 +1,4 @@
1
1
  export * from './click-outside';
2
2
  export * from './responsive';
3
+ export * from './perfect-scrollbar.directive';
3
4
  export * from './visible.directive';
@@ -0,0 +1,12 @@
1
+ import { AfterViewInit, ElementRef } from '@angular/core';
2
+ import { LpxPerfectScrollbar } from '../abstracts';
3
+ import * as i0 from "@angular/core";
4
+ export declare class PerfectScrollbarDirective implements AfterViewInit {
5
+ protected readonly elementRef: ElementRef<any>;
6
+ protected readonly lpxPerfectService: LpxPerfectScrollbar;
7
+ set lpxPerfectScrollbarOptions(value: any);
8
+ onResize(): void;
9
+ ngAfterViewInit(): void;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<PerfectScrollbarDirective, never>;
11
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PerfectScrollbarDirective, "[lpxPerfectScrollbar]", never, { "lpxPerfectScrollbarOptions": "lpxPerfectScrollbarOptions"; }, {}, never, never, true, never>;
12
+ }
@@ -1,7 +1,12 @@
1
1
  import { Observable } from 'rxjs';
2
+ import PerfectScrollbar from 'perfect-scrollbar';
2
3
  export declare type VariantSource<T> = Observable<T> | Promise<T> | T;
3
4
  export interface RecursiveArray<T> extends Array<T | RecursiveArray<T>> {
4
5
  [index: number]: RecursiveArray<T> | T;
5
6
  length: number;
6
7
  }
7
8
  export declare type ArrayTypeDeep<T> = T extends Array<infer U> ? ArrayTypeDeep<U> : T;
9
+ export interface LpxPerfectScrollbarOptions extends PerfectScrollbar.Options {
10
+ leftAfterNavigate?: number;
11
+ topAfterNavigate?: number;
12
+ }
@@ -1 +1,2 @@
1
1
  export * from './common';
2
+ export * from './user';
@@ -0,0 +1,16 @@
1
+ import { Avatar } from '../components/avatar';
2
+ import { LpxNavbarItem } from '../components/navbar/models';
3
+ export declare type UserActionGroup = LpxNavbarItem[];
4
+ export interface Tenant {
5
+ id?: string;
6
+ name?: string;
7
+ isAvailable: boolean;
8
+ }
9
+ export interface UserProfile {
10
+ userName: string;
11
+ fullName: string;
12
+ email: string;
13
+ avatar?: Avatar;
14
+ userActionGroups?: UserActionGroup[];
15
+ tenant?: Tenant;
16
+ }
@@ -5,3 +5,4 @@ export * from './layout';
5
5
  export * from './translate/index';
6
6
  export * from './auth/index';
7
7
  export * from './local-storage/index';
8
+ export * from './perfect-scrollbar.service';
@@ -0,0 +1,15 @@
1
+ import { ElementRef, OnDestroy } from '@angular/core';
2
+ import { LpxPerfectScrollbarOptions } from '../models';
3
+ import { LpxPerfectScrollbar } from '../abstracts';
4
+ import * as i0 from "@angular/core";
5
+ export declare class LpxPerfectScrollbarService extends LpxPerfectScrollbar implements OnDestroy {
6
+ private subscription;
7
+ setElement(value: ElementRef<any>): void;
8
+ setOptions(value: LpxPerfectScrollbarOptions): void;
9
+ createScrollbar(): void;
10
+ onResize(): void;
11
+ afterViewInit(): void;
12
+ ngOnDestroy(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<LpxPerfectScrollbarService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<LpxPerfectScrollbarService>;
15
+ }
@@ -1,14 +1,5 @@
1
- import { Avatar } from '../../components/avatar/avatar.component';
2
- import { LpxNavbarItem } from '../../components/navbar/models';
1
+ import { UserProfile } from '../../models';
3
2
  import * as i0 from "@angular/core";
4
- export declare type UserActionGroup = LpxNavbarItem[];
5
- export interface UserProfile {
6
- userName: string;
7
- fullName: string;
8
- email: string;
9
- avatar?: Avatar;
10
- userActionGroups?: UserActionGroup[];
11
- }
12
3
  export declare class UserProfileService {
13
4
  private store;
14
5
  user$: import("rxjs").Observable<UserProfile>;
@@ -1 +1,2 @@
1
1
  export * from './window.token';
2
+ export * from './perfect-scrollbar.token';
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { LpxPerfectScrollbar } from '../abstracts';
3
+ export declare const LPX_PERFECT_SCROLLBAR: InjectionToken<LpxPerfectScrollbar>;
@@ -7,3 +7,5 @@ export declare function flatArrayDeepToObject<T extends {
7
7
  [key: string]: any;
8
8
  }>(arr: RecursiveArray<ArrayTypeDeep<T>>): ArrayTypeDeep<T>;
9
9
  export declare function getStream$<T>(source: VariantSource<T>): Observable<T>;
10
+ export declare function isNullOrUndefined<T>(obj: T): boolean;
11
+ export declare function isArray<T>(obj: T): boolean;
@@ -1,2 +1,3 @@
1
1
  export * from './common';
2
2
  export * from './data-store';
3
+ export * from './tree-utils';
@@ -0,0 +1,8 @@
1
+ import { Observable } from 'rxjs';
2
+ export declare function createGroupMap<T extends {
3
+ group?: string;
4
+ }>(list: T[], othersGroupKey: string, skipGroupCheck?: boolean): Map<string, T[]> | undefined;
5
+ export declare function getItemsFromGroup<S extends {
6
+ items: R[];
7
+ }, R>(list: S[], pred?: ItemPropPredicate<R>): R[] | undefined;
8
+ export declare type ItemPropPredicate<T> = (prop: T) => boolean | Promise<boolean> | Observable<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volo/ngx-lepton-x.core",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "dependencies": {
5
5
  "tslib": "^2.3.0",
6
6
  "ts-toolbelt": "^6.15.4"
@@ -30,9 +30,10 @@
30
30
  "sideEffects": false,
31
31
  "peerDependencies": {
32
32
  "@angular/core": "15.0.4",
33
- "@angular/common": "15.0.4",
34
33
  "@angular/router": "15.0.4",
35
34
  "rxjs": "7.5.6",
35
+ "perfect-scrollbar": "1.5.5",
36
+ "@angular/common": "15.0.4",
36
37
  "@angular/forms": "15.0.4",
37
38
  "@angular/platform-browser": "15.0.4",
38
39
  "@angular/platform-browser-dynamic": "15.0.4"