@skyux/router
Version:
This library was generated with [Nx](https://nx.dev).
231 lines (209 loc) • 8.21 kB
TypeScript
import * as i0 from '@angular/core';
import { OnChanges, Renderer2, ElementRef, SimpleChanges, EventEmitter } from '@angular/core';
import { LocationStrategy, PlatformLocation } from '@angular/common';
import { RouterLink, Router, ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';
import { SkyAppConfig, SkyAppRuntimeConfigParamsProvider, SkyAppConfigHost } from '@skyux/config';
import { SkyAppWindowRef } from '@skyux/core';
import { Observable } from 'rxjs';
type SkyAppLinkQueryParams = Record<string, any>;
declare class SkyAppLinkDirective extends RouterLink implements OnChanges {
#private;
set skyAppLink(commands: any[] | string);
constructor(router: Router, route: ActivatedRoute, locationStrategy: LocationStrategy, renderer: Renderer2, elementRef: ElementRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider);
ngOnChanges(changes: SimpleChanges): void;
static ɵfac: i0.ɵɵFactoryDeclaration<SkyAppLinkDirective, [null, null, null, null, null, { optional: true; }, { optional: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAppLinkDirective, "[skyAppLink]", never, { "skyAppLink": { "alias": "skyAppLink"; "required": false; }; }, {}, never, never, false, never>;
}
/**
* @deprecated Use `skyHref` directive instead.
*/
declare class SkyAppLinkExternalDirective extends RouterLink implements OnChanges {
#private;
set skyAppLinkExternal(commands: any[] | string);
constructor(router: Router, route: ActivatedRoute, renderer: Renderer2, elementRef: ElementRef, platformLocation: PlatformLocation, window: SkyAppWindowRef, skyAppConfig?: SkyAppConfig, paramsProvider?: SkyAppRuntimeConfigParamsProvider, hostConfig?: SkyAppConfigHost);
ngOnChanges(changes: SimpleChanges): void;
static ɵfac: i0.ɵɵFactoryDeclaration<SkyAppLinkExternalDirective, [null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
static ɵdir: i0.ɵɵDirectiveDeclaration<SkyAppLinkExternalDirective, "[skyAppLinkExternal]", never, { "skyAppLinkExternal": { "alias": "skyAppLinkExternal"; "required": false; }; }, {}, never, never, false, never>;
}
declare class SkyAppLinkModule {
static ɵfac: i0.ɵɵFactoryDeclaration<SkyAppLinkModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<SkyAppLinkModule, [typeof SkyAppLinkDirective, typeof SkyAppLinkExternalDirective], never, [typeof SkyAppLinkDirective, typeof SkyAppLinkExternalDirective]>;
static ɵinj: i0.ɵɵInjectorDeclaration<SkyAppLinkModule>;
}
interface SkyHref {
app?: string;
route?: string;
url: string;
userHasAccess?: boolean;
aliases?: string[];
}
interface SkyHrefResolver {
resolveHref(param: {
url: string;
}): Promise<SkyHref>;
}
interface SkyHrefResolverArgs {
url: string;
}
/**
* Return the link as-is.
*/
declare class SkyHrefResolverService implements SkyHrefResolver {
resolveHref(args: SkyHrefResolverArgs): Promise<SkyHref>;
static ɵfac: i0.ɵɵFactoryDeclaration<SkyHrefResolverService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<SkyHrefResolverService>;
}
interface SkyHrefChange {
userHasAccess: boolean;
}
/**
* A collection of query URL parameters.
*/
type SkyHrefQueryParams = Record<string, string | undefined>;
declare class SkyHrefDirective {
#private;
/**
* Provide a link as a string or as an array of strings to be joined by a slash to form a complete
* URL.
*
* @param skyHref
*/
set skyHref(skyHref: string | string[] | undefined);
get skyHref(): string;
/**
* A collection of query URL parameters.
*/
set queryParams(value: SkyHrefQueryParams | undefined);
get queryParams(): SkyHrefQueryParams | undefined;
/**
* Set the behavior for when the link is not available to either hide the link or display unlinked text.
*
* @param value
*/
set skyHrefElse(value: 'hide' | 'unlink' | undefined);
get skyHrefElse(): 'hide' | 'unlink' | undefined;
/**
* Emits whether the link is available (true) or not (false).
*/
skyHrefChange: EventEmitter<SkyHrefChange>;
onClick(button: number, ctrlKey: boolean, shiftKey: boolean, altKey: boolean, metaKey: boolean): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration<SkyHrefDirective, never>;
static ɵdir: i0.ɵɵDirectiveDeclaration<SkyHrefDirective, "[skyHref]", never, { "skyHref": { "alias": "skyHref"; "required": false; }; "queryParams": { "alias": "queryParams"; "required": false; }; "skyHrefElse": { "alias": "skyHrefElse"; "required": false; }; }, { "skyHrefChange": "skyHrefChange"; }, never, never, false, never>;
}
declare class SkyHrefModule {
static ɵfac: i0.ɵɵFactoryDeclaration<SkyHrefModule, never>;
static ɵmod: i0.ɵɵNgModuleDeclaration<SkyHrefModule, [typeof SkyHrefDirective], never, [typeof SkyHrefDirective]>;
static ɵinj: i0.ɵɵInjectorDeclaration<SkyHrefModule>;
}
/**
* A link to add to the recently accessed links.
*/
interface SkyRecentlyAccessedAddLink {
/**
* The link's app.
*/
app: string;
/**
* The link's route.
*/
route: string;
/**
* The link's parameters.
*/
params?: Record<string, string>;
}
/**
* Parameters for adding a recently accessed link.
*/
interface SkyRecentlyAccessedAddLinkArgs {
/**
* Metadata about the link to add.
*/
link: SkyRecentlyAccessedAddLink;
}
/**
* The result when adding a recently accessed link.
*/
interface SkyRecentlyAccessedAddLinkResult {
/**
* The unique identifier for the newly added link.
*/
id: string;
}
/**
* Parameters for adding a recently accessed link via an Angular route.
*/
interface SkyRecentlyAccessedAddRouteArgs {
/**
* The route to the link.
*/
route: ActivatedRouteSnapshot;
}
/**
* Parameters for retrieving a list of recently accessed links.
*/
interface SkyRecentlyAccessedGetLinksArgs {
/**
* The links to retrieve.
*/
requestedRoutes: {
/**
* The link's app.
*/
app: string;
/**
* The link's route.
*/
route: string;
}[];
}
/**
* Resolved metadata about a recently accessed link.
*/
interface SkyRecentlyAccessedLink {
/**
* The label to display for the link.
*/
label: string;
/**
* The date the link was last accessed.
*/
lastAccessed: Date;
/**
* The link's fully-qualified URL.
*/
url: string;
}
/**
* A resolved list of recently accessed links.
*/
interface SkyRecentlyAccessedLinkList {
/**
* An array of recently accessed links.
*/
links: SkyRecentlyAccessedLink[];
}
/**
* A service for creating and retrieving recently accessed links.
*/
declare abstract class SkyRecentlyAccessedService {
/**
* Adds a recently accessed link based on an Angular route.
* @param args The route to add.
*/
abstract addRoute(args: SkyRecentlyAccessedAddRouteArgs): Observable<SkyRecentlyAccessedAddLinkResult>;
/**
* Adds a recently accessed link based on metadata about the link.
* @param args The link to add.
*/
abstract addLink(args: SkyRecentlyAccessedAddLinkArgs): Observable<SkyRecentlyAccessedAddLinkResult>;
/**
* Gets a list of recently accessed links.
* @param args The links to retrieve.
*/
abstract getLinks(args: SkyRecentlyAccessedGetLinksArgs): Observable<SkyRecentlyAccessedLinkList>;
static ɵfac: i0.ɵɵFactoryDeclaration<SkyRecentlyAccessedService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<SkyRecentlyAccessedService>;
}
export { SkyAppLinkModule, SkyHrefModule, SkyHrefResolverService, SkyRecentlyAccessedService, SkyHrefDirective as λ1, SkyAppLinkExternalDirective as λ2, SkyAppLinkDirective as λ3 };
export type { SkyAppLinkQueryParams, SkyHref, SkyHrefChange, SkyHrefQueryParams, SkyHrefResolver, SkyHrefResolverArgs, SkyRecentlyAccessedAddLinkArgs, SkyRecentlyAccessedAddLinkResult, SkyRecentlyAccessedAddRouteArgs, SkyRecentlyAccessedGetLinksArgs, SkyRecentlyAccessedLink, SkyRecentlyAccessedLinkList };