@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
49 lines (48 loc) • 2 kB
TypeScript
import { AnchorLinkRoute, TokenBasedRouteStateData, IMessageBusSubscriptionHandler } from "../models";
import { StateData } from "../ux/InternalRouter";
import { TokenBasedRouter } from "./TokenBasedRouter";
import { VueComponentBase } from "./VueComponentBase";
interface AnchorLinkConfiguration {
validate(anchorName: string): boolean;
trigger?(options: AnchorLinkTriggerOptions): void;
cancel?(): void;
}
interface AnchorLinkTriggerOptions {
scrollIntoView(): boolean;
}
declare class InternalAnchorLinkRouter extends TokenBasedRouter<AnchorLinkRoute, TokenBasedRouteStateData> {
static readonly token = "anchor";
private readonly topic;
private triggered;
private silent;
private observerExecutors;
constructor();
protected buildContextPath(routeContext: AnchorLinkRoute): string;
protected resolveRouteFromPath(path: string): AnchorLinkRoute;
subscribe: (config: AnchorLinkConfiguration) => IMessageBusSubscriptionHandler;
silentNavigate: (anchorName: string) => void;
clearRoute: () => void;
getTokenValue: (stateData: StateData) => TokenBasedRouteStateData;
private useConfiguration;
private scrollToElement;
private onMutationObserved;
}
export declare class AnchorLink {
static readonly disabledWrapperClass = "AnchorLink_Disabled_Wrapper";
router: InternalAnchorLinkRouter;
private disabled;
constructor();
initInheritedState(currentComponent: VueComponentBase): void;
get tokenExistsOnUrl(): boolean;
get enabled(): boolean;
disable(): void;
clear(): void;
subscribe(config: AnchorLinkConfiguration): IMessageBusSubscriptionHandler;
silentNavigate(anchorName: string): void;
getTokenValue(stateData: StateData): TokenBasedRouteStateData;
static combine(path: string, anchorName: string): string | null;
static split(path: string): string[];
static transformToDefaultFormat(value: string): string;
private static removeTrailingSlash;
}
export {};