public async navigateTo()

in src/components/relativePathRouter.ts [48:89]


    public async navigateTo(url: string, title: string = null, metadata: Object = {}): Promise<void> {
        if (!url) {
            return;
        }

        const isFullUrl = url && (url.startsWith("http://") || url.startsWith("https://"));
        const isLocalUrl = url.startsWith(location.origin);

        if (isFullUrl && !isLocalUrl) {
            window.open(url, "_blank"); // navigating external link
            return;
        }

        if (isFullUrl) {
            url = url.substring(location.origin.length);
        }

        if (url.startsWith(this.basePath + "/")) {
            url = url.substring(this.basePath.length);
        }

        const parts = url.split("#");

        const route: Route = {
            url: this.appendBasePath(url),
            path: parts.length > 1 ? parts[0] || location.pathname : parts[0],
            title: title,
            metadata: metadata,
            hash: parts.length > 1 ? parts[1] : "",
            previous: this.currentRoute
        };

        const canActivate = await this.canActivate(route);

        if (canActivate) {
            this.currentRoute = route;

            if (this.notifyListeners) {
                this.eventManager.dispatchEvent(RouterEvents.onRouteChange, route);
            }
        }
    }