mirror of
https://github.com/zitadel/zitadel.git
synced 2025-05-07 07:06:46 +00:00

* key datepicker, formfield cleanup, member role help, domain layout * accounts card template overlay * fix account card trigger * chore(deps-dev): bump @typescript-eslint/parser from 5.26.0 to 5.27.0 in /console (#3752) chore(deps-dev): bump @typescript-eslint/parser in /console Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 5.26.0 to 5.27.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v5.27.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * deps, i18n, feature info section * lint Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
93 lines
3.3 KiB
TypeScript
93 lines
3.3 KiB
TypeScript
import { ConnectedPosition, ConnectionPositionPair } from '@angular/cdk/overlay';
|
|
import { Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';
|
|
import { Router } from '@angular/router';
|
|
import { BehaviorSubject, Observable, of, Subject } from 'rxjs';
|
|
import { Org } from 'src/app/proto/generated/zitadel/org_pb';
|
|
import { LabelPolicy } from 'src/app/proto/generated/zitadel/policy_pb';
|
|
import { User } from 'src/app/proto/generated/zitadel/user_pb';
|
|
import { AuthenticationService } from 'src/app/services/authentication.service';
|
|
import { BreadcrumbService, BreadcrumbType } from 'src/app/services/breadcrumb.service';
|
|
import { GrpcAuthService } from 'src/app/services/grpc-auth.service';
|
|
import { ManagementService } from 'src/app/services/mgmt.service';
|
|
|
|
import { ActionKeysType } from '../action-keys/action-keys.component';
|
|
|
|
@Component({
|
|
selector: 'cnsl-header',
|
|
templateUrl: './header.component.html',
|
|
styleUrls: ['./header.component.scss'],
|
|
})
|
|
export class HeaderComponent implements OnDestroy {
|
|
@ViewChild('input', { static: false }) input!: ElementRef;
|
|
|
|
@Input() public isDarkTheme: boolean = true;
|
|
@Input() public user!: User.AsObject;
|
|
@Input() public labelpolicy!: LabelPolicy.AsObject;
|
|
public showOrgContext: boolean = false;
|
|
|
|
public orgs$: Observable<Org.AsObject[]> = of([]);
|
|
@Input() public org!: Org.AsObject;
|
|
@Output() public changedActiveOrg: EventEmitter<Org.AsObject> = new EventEmitter();
|
|
public orgLoading$: BehaviorSubject<any> = new BehaviorSubject(false);
|
|
public showAccount: boolean = false;
|
|
private destroy$: Subject<void> = new Subject();
|
|
public BreadcrumbType: any = BreadcrumbType;
|
|
public ActionKeysType: any = ActionKeysType;
|
|
|
|
public positions: ConnectedPosition[] = [
|
|
new ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, 0, 10),
|
|
new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' }, 0, 10),
|
|
];
|
|
|
|
public accountCardPositions: ConnectedPosition[] = [
|
|
new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' }, 0, 10),
|
|
new ConnectionPositionPair({ originX: 'end', originY: 'bottom' }, { overlayX: 'end', overlayY: 'top' }, 0, 10),
|
|
];
|
|
constructor(
|
|
public authenticationService: AuthenticationService,
|
|
private authService: GrpcAuthService,
|
|
public mgmtService: ManagementService,
|
|
public breadcrumbService: BreadcrumbService,
|
|
public router: Router,
|
|
) {}
|
|
|
|
public ngOnDestroy() {
|
|
this.destroy$.next();
|
|
this.destroy$.complete();
|
|
}
|
|
|
|
public closeAccountCard(): void {
|
|
if (this.showAccount) {
|
|
this.showAccount = false;
|
|
}
|
|
}
|
|
|
|
public setActiveOrg(org: Org.AsObject): void {
|
|
this.org = org;
|
|
this.authService.setActiveOrg(org);
|
|
this.changedActiveOrg.emit(org);
|
|
}
|
|
|
|
public get isOnMe(): boolean {
|
|
return this.router.url === '/users/me';
|
|
}
|
|
|
|
public errorHandler(event: any, fallbackSrc: string) {
|
|
(event.target as HTMLImageElement).src = fallbackSrc;
|
|
}
|
|
|
|
public get isOnInstance(): boolean {
|
|
const pages: string[] = [
|
|
'/instance',
|
|
'/settings',
|
|
'/views',
|
|
'/orgs',
|
|
'/settings',
|
|
'/failed-events',
|
|
'/instance/members',
|
|
];
|
|
|
|
return pages.findIndex((p) => this.router.url.includes(p)) > -1;
|
|
}
|
|
}
|