Skip to content

Commit d442e2b

Browse files
authored
Merge pull request #254 from netgrif/NAE-2021
[NAE-2021] Outputs for navigation components
2 parents 783dd24 + df32d14 commit d442e2b

File tree

10 files changed

+128
-66
lines changed

10 files changed

+128
-66
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ Full Changelog: [https://github.com/netgrif/components/commits/v6.4.0](https://g
4848
- [NAE-1958] Make component properties changeable
4949
- [NAE-1949] Allowed Types for Filefield
5050
- [NAE-2016] Global roles for menu items permissions
51+
- [NAE-2021] Outputs for navigation components
5152

5253

5354
## [6.3.3](https://github.com/netgrif/components/releases/tag/v6.3.3) (2024-01-19)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@netgrif/components-project",
3-
"version": "6.4.0-rc.7",
3+
"version": "6.4.0-rc.8",
44
"description": "Netgrif Application Engine Frontend project. Project includes angular libraries as base for NAE applications.",
55
"homepage": "https://components.netgrif.com",
66
"license": "SEE LICENSE IN LICENSE",

projects/netgrif-components-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@netgrif/components-core",
3-
"version": "6.4.0-rc.7",
3+
"version": "6.4.0-rc.8",
44
"description": "Netgrif Application engine frontend core Angular library",
55
"homepage": "https://components.netgrif.com",
66
"license": "SEE LICENSE IN LICENSE",

projects/netgrif-components-core/src/lib/navigation/breadcrumbs/abstract-breadcrumbs.component.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,10 @@ export abstract class AbstractBreadcrumbsComponent implements OnDestroy, AfterVi
2727
@Input() redirectOnClick: boolean = true;
2828
@Input() lengthOfPath: number = 30;
2929
@Input() partsAfterDots: number = 2;
30+
3031
filterName: string;
3132
breadcrumbsParts: Array<string>;
33+
3234
private static DOTS: string = '...';
3335
private static DELIMETER: string = '/';
3436
private static NODE_PATH: string = 'nodePath';
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import {NavigationItem} from './navigation-configs';
2+
import {UriNodeResource} from './uri-resource';
3+
4+
export interface MenuStateChangeEvent {
5+
menu: 'left' | 'right';
6+
isOpened: boolean;
7+
}
8+
9+
export interface MenuItemClickEvent {
10+
uriNode: UriNodeResource;
11+
isHome: boolean;
12+
}
13+
14+
export interface MenuItemLoadedEvent {
15+
menu: 'left' | 'right';
16+
items: Array<NavigationItem>;
17+
}
18+
19+
export interface MenuResizeEvent {
20+
width: number;
21+
}

projects/netgrif-components-core/src/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.ts

Lines changed: 83 additions & 54 deletions
Large diffs are not rendered by default.

projects/netgrif-components-core/src/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ import {LoggerService} from '../../logger/services/logger.service';
77
import {BehaviorSubject, Subscription} from 'rxjs';
88
import {ResizeEvent} from 'angular-resizable-element';
99
import {UserPreferenceService} from '../../user/services/user-preference.service';
10+
import {MenuResizeEvent} from '../model/navigation-menu-events';
1011

1112
const DRAWER_DEFAULT_MIN_WIDTH = 200;
1213
const DRAWER_MAX_WIDTH = 450;
1314

1415
@Component({
1516
selector: 'ncc-abstract-navigation-drawer',
16-
template: ''
17+
template: '',
1718
})
1819
export abstract class AbstractNavigationDrawerComponent implements OnInit, AfterViewInit, OnDestroy {
1920

@@ -25,6 +26,7 @@ export abstract class AbstractNavigationDrawerComponent implements OnInit, After
2526
@Input() public navigation: boolean;
2627

2728
@Output() public openedChange: EventEmitter<boolean>;
29+
@Output() public resized: EventEmitter<MenuResizeEvent>;
2830

2931
@ViewChild('sidenav') protected _sideNav: MatSidenav;
3032

@@ -38,13 +40,14 @@ export abstract class AbstractNavigationDrawerComponent implements OnInit, After
3840
protected _config = {
3941
mode: 'over',
4042
opened: true,
41-
disableClose: false
43+
disableClose: false,
4244
};
4345

4446
constructor(protected breakpoint: BreakpointObserver,
4547
protected _log: LoggerService,
4648
protected userPreferenceService: UserPreferenceService) {
4749
this.openedChange = new EventEmitter<boolean>();
50+
this.resized = new EventEmitter<MenuResizeEvent>();
4851
this._fixed = true;
4952
this.opened = true;
5053
this.quickPanelItems = ['language', 'settings', 'logout', 'impersonation'];
@@ -57,7 +60,7 @@ export abstract class AbstractNavigationDrawerComponent implements OnInit, After
5760

5861
ngOnInit(): void {
5962
this.resolveLayout(this._fixed);
60-
this.subBreakpoint = this.breakpoint.observe([Breakpoints.HandsetLandscape]).subscribe( result => {
63+
this.subBreakpoint = this.breakpoint.observe([Breakpoints.HandsetLandscape]).subscribe(result => {
6164
this._log.info('BreakpointObserver matches width of window: ' + this.breakpoint.isMatched('(max-width: 959.99px)'));
6265
if (this.breakpoint.isMatched('(max-width: 959.99px)')) {
6366
this.resolveLayout(false);
@@ -82,6 +85,7 @@ export abstract class AbstractNavigationDrawerComponent implements OnInit, After
8285
ngOnDestroy(): void {
8386
this.subBreakpoint.unsubscribe();
8487
this.openedChange.complete();
88+
this.resized.complete();
8589
}
8690

8791
get config() {
@@ -123,11 +127,11 @@ export abstract class AbstractNavigationDrawerComponent implements OnInit, After
123127
this._config = bool ? {
124128
mode: 'side',
125129
opened: true,
126-
disableClose: true
130+
disableClose: true,
127131
} : {
128132
mode: 'over',
129133
opened: false,
130-
disableClose: false
134+
disableClose: false,
131135
};
132136
if (bool && this._sideNav) {
133137
this._sideNav.open();
@@ -156,5 +160,6 @@ export abstract class AbstractNavigationDrawerComponent implements OnInit, After
156160
}
157161
this.userPreferenceService._drawerWidthChanged$.next(this.width);
158162
this.contentWidth.next(this.width);
163+
this.resized.emit({width: this.width});
159164
}
160165
}

projects/netgrif-components-core/src/lib/navigation/public-api.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export * from './model/size-menu-injection-token'
2323
export * from './model/group-navigation-item-label';
2424
export * from './model/uri-resource';
2525
export * from './model/navigation-configs';
26+
export * from './model/navigation-menu-events';
2627

2728
/* UTILITY METHODS */
2829
export * from './utility/navigation-item-task-utility-methods';

projects/netgrif-components-core/src/lib/navigation/quick-panel/components/logout-shortcut/abstract-logout-shortcut.component.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
1-
import {Component} from '@angular/core';
1+
import {Component, EventEmitter, Output} from '@angular/core';
22
import {UserService} from '../../../../user/services/user.service';
33
import {LoggerService} from '../../../../logger/services/logger.service';
44
import {ConfigurationService} from '../../../../configuration/configuration.service';
55
import {Router} from '@angular/router';
66

77
@Component({
88
selector: 'ncc-abstract-logout-shortcut',
9-
template: ''
9+
template: '',
1010
})
1111
export abstract class AbstractLogoutShortcutComponent {
1212

13+
@Output() loggedOut = new EventEmitter<any>(true);
14+
1315
constructor(protected _user: UserService,
1416
protected _log: LoggerService,
1517
protected _config: ConfigurationService,
1618
protected _router: Router) {
1719
}
1820

1921
logout(): void {
20-
this._user.logout().subscribe(() => {
22+
this._user.logout().subscribe(response => {
2123
this._log.debug('User is logged out');
24+
this.loggedOut.emit(response);
2225
const redirectPath = this._config.getOnLogoutPath();
2326
if (redirectPath) {
2427
this._log.info('Redirecting to ' + redirectPath);

projects/netgrif-components/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@netgrif/components",
3-
"version": "6.4.0-rc.7",
3+
"version": "6.4.0-rc.8",
44
"description": "Netgrif Application Engine frontend Angular components",
55
"homepage": "https://components.netgrif.com",
66
"license": "SEE LICENSE IN LICENSE",
@@ -29,7 +29,7 @@
2929
"nae frontend"
3030
],
3131
"peerDependencies": {
32-
"@netgrif/components-core": "6.4.0-rc.7",
32+
"@netgrif/components-core": "6.4.0-rc.8",
3333
"@angular-material-components/datetime-picker": "~7.0.1",
3434
"@angular-material-components/moment-adapter": "~7.0.0",
3535
"@angular/animations": "~13.3.1",

0 commit comments

Comments
 (0)