@ctodev/cclibrary-typings
Version:
Library typings for use with CLARC INFINITY
116 lines (115 loc) • 4.24 kB
TypeScript
import { AfterViewInit, ElementRef, EventEmitter, OnDestroy, OnInit, QueryList } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { TccET_IAM } from '../../../odata/models/iam.model';
import { TccC4Node } from '../../../odata/models/shared.model';
import { TccTestForRoleService } from '../../../shared/services/tcc-test-for-role/tcc-test-for-role.service';
import { TccLibIcons } from '../../../shared/classes/tcc-register-icons.class';
import { TccSideNavService } from '../../services/tcc-side-nav/tcc-side-nav.service';
import { TccUserPropertyService } from '../../../shared/services/tcc-user-property/tcc-user-property.service';
import { TccAuthService } from '../../../odata/services/tcc-auth/tcc-auth.service';
interface ISideNavElement {
path: string;
uniqueidentifier: string;
icon?: string;
customIcon?: string;
usericon?: TccET_IAM.UserResponse;
c4node?: TccC4Node;
caption: string;
tooltip?: string;
onbottom?: boolean;
roles?: Array<TccET_IAM.UserRoles>;
rolesStrategy?: SideNavRolesStrategy;
licenses?: TccET_IAM.Module[];
_openParents?: string;
type: SidenavElementType;
expandUpwards?: boolean;
}
export declare enum SideNavRolesStrategy {
standard = "standard",// Admin and Master will be automatically added
strict = "strict"
}
export interface SideNavConfig {
sidenavLogoText: string;
sidenavLogo: string;
tenant?: {
Logo?: string;
Text?: string;
systemclass: string;
fallbacklogo: string;
};
}
export interface SidenavNode extends ISideNavElement {
children?: Array<SidenavLeaf | SidenavNode>;
type: "node";
}
export interface SidenavLeaf extends ISideNavElement {
function?: Function;
type: "leaf";
_combinedpath?: string;
hidden?: boolean;
}
export type SidenavElementType = "leaf" | "node";
export type SidenavElement = SidenavNode | SidenavLeaf;
export declare enum SidenavUserProperties {
expanded = "expanded"
}
export declare class TccSideNavComponent implements OnInit, AfterViewInit, OnDestroy {
private router;
private route;
private hasRole;
private userPropertyService;
private auth;
navigationchange: EventEmitter<Array<string>>;
collapse: EventEmitter<number>;
widthName: QueryList<ElementRef>;
_activePath: string;
_activePaths: Array<string>;
_navelements: Array<SidenavElement>;
_navelementsbottom: Array<SidenavElement>;
_sidenavExpanded: boolean;
_openedSidenavElements: string;
_openedSidenavElements2: string;
_maxNameWidth: number;
CollapseCaption: string;
ExpandCaption: string;
sidenavLogo: string;
sidenavLogoText: string;
tenantLogo: string;
tenantText: string;
className: string;
private basehref;
private pathtree;
private routerSubscribtion;
private _userRoles;
private _elements;
private focusIn;
private preventNext;
fallbackLogo: string;
tenantLoads: boolean;
tccLibIcons: typeof TccLibIcons.Icon;
MaxWidth: number;
set Config(config: SideNavConfig);
set NavElements(elements: Array<SidenavElement>);
hasBanner: boolean;
constructor(router: Router, route: ActivatedRoute, hasRole: TccTestForRoleService, userPropertyService: TccUserPropertyService, auth: TccAuthService, sideNavService: TccSideNavService);
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
tenantIconFailed(): void;
clickSidenavLeaf(element: SidenavLeaf, event: Event): void;
private onSublevelNav;
mousedownSublevelNav(element: SidenavNode, event: Event): void;
mouseoverToplevelLeaf(event: Event, mousein: boolean): void;
mouseoverSublevelNav(event: Event, element: SidenavNode, mousein: boolean): void;
focusSublevelNav(event: Event, element: SidenavNode, focusin: boolean): void;
testForRolesAndLicenses(children: Array<SidenavElement>): void;
onNavigation(url: string): void;
filterActivePaths(url: string): Array<string>;
private build_openParents;
private build_combinedPath;
private buildPathTree;
private parseChildArray;
private setExpandedWidth;
expandSidenav(): void;
}
export {};