@adobe/aem-spa-page-model-manager
Version:
An interpreter between AEM Editor and the AEM SPA Editor.
182 lines • 7.1 kB
TypeScript
/**
* Helper functions related to path manipulation.
* @private
*/
export declare class PathUtils {
/**
* Returns if the code executes in the browser context or not by checking for the
* existance of the window object
*
* @returns The result of the check of the existance of the window object.
*/
static isBrowser(): boolean;
/**
* Returns the context path of the given location.
* If no location is provided, it fallbacks to the current location.
* @param [location] Location to be used to detect the context path from.
* @returns
*/
static getContextPath(location?: string | null): string;
/**
* Adapts the provided path to a valid model path.
* Returns an empty string if the given path is equal to the root model path.
* This function is a utility tool that converts a provided root model path into an internal specific empty path
*
* @param [path] Raw model path.
* @private
* @return The valid model path.
*/
static adaptPagePath(path: string, rootPath?: string): string;
/**
* Returns the given URL externalized by adding the optional context path.
* @param url URL to externalize.
* @returns
*/
static externalize(url: string): string;
/**
* Returns the given URL internalized by removing the optional context path.
* @param url URL to internalize.
* @returns
*/
static internalize(url: string | null): string;
/**
* Returns the value of the meta property with the given key.
* @param propertyName Name of the meta property.
* @return
*/
static getMetaPropertyValue(propertyName: string): string | null;
/**
* Returns a model path for the given URL.
* @param url Raw URL for which to get a model URL.
*/
static convertToModelUrl(url: string): string | undefined;
/**
* Returns the model URL as contained in the current page URL.
*/
static getCurrentPageModelUrl(): string | null;
/**
* Returns the URL of the page model to initialize the page model manager with.
* It is either derived from a meta tag property called 'cq:pagemodel_root_url' or from the given location.
* If no location is provided, it derives it from the current location.
* @param [url] - path or URL to be used to derive the page model URL from
* @returns
*/
static getModelUrl(url?: string): string | null | undefined;
/**
* Returns the given path after sanitizing it.
* This function should be called on page paths before storing them in the page model,
* to make sure only properly formatted paths (e.g., "/content/mypage") are stored.
* @param path - Path of the page to be sanitized.
*/
static sanitize(path: string | null): string | null;
/**
* Returns the given path extended with the given extension.
* @param path - Path to be extended.
* @param extension - Extension to be added.
*/
static addExtension(path: string, extension: string): string;
/**
* Returns path after removing resource path
* /content/dummy.html/abc/def -> html/abc/def
* /content/dummy.selector1.selector2.test.html/abc/def -> selector1.selector2.test.html/abc/def
* @param path - Url pathName
*/
private static _extractPathWithoutResource;
/**
* Returns given path with added extension or replaces html with extension
* @param pathWithoutResource - url path without reosurce path
* @param extension - extension to be added
*/
private static _replaceExtension;
/**
* Returns the given path extended with the given selector.
* @param path - Path to be extended.
* @param selector - Selector to be added.
*/
static addSelector(path: string, selector: string): string;
/**
* Returns the current location as a string.
*/
static getCurrentPathname(): string | null;
/**
* Returns empty string or current URL if called in the browser.
* @returns Current URL.
*/
static getCurrentURL(): string;
/**
* Dispatches a custom event on the window object, when in the browser context.
* @param eventName The name of the custom event.
* @param options The custom event options.
*/
static dispatchGlobalCustomEvent(eventName: string, options: any): void;
/**
* Joins given path segments into a string using slash.
*/
static join(paths?: string[]): string;
/**
* Normalizes given path by replacing repeated slash with a single one.
*/
static normalize(path?: string): string;
/**
* Returns path that starts with slash.
*/
static makeAbsolute(path?: string): string;
/**
* Returns path without the leading slash.
*/
static makeRelative(path?: string): string;
/**
* Returns path to the direct parent.
*/
static getParentNodePath(path: string | null): string | null;
/**
* Checks if given path is an JCR path.
*/
static isItem(path: string): boolean;
/**
* Returns the name of the last node of the given path.
*/
static getNodeName(path: string): string | null;
/**
* Returns the subpath of the targetPath relative to the rootPath,
* or the targetPath if the rootPath is not a root of the targetPath.
*/
static subpath(targetPath?: string, rootPath?: string): string;
/**
* Returns an array of segments of the path, split by the custom set of delimitators passed as an array.
*/
static splitByDelimitators(path: string, delimitators: string[]): string[];
/**
* Returns an JCR path based on pagePath and dataPath.
* @param pagePath Path to the page.
* @param dataPath Path to the item on the page.
*/
static _getJCRPath(pagePath: string, dataPath: string): string;
/**
* Returns object containing pagePath (path to a page) and, if exists, itemPath (path to the item on that page)
* from the passed path.
*/
static splitPageContentPaths(path: string): {
itemPath?: string;
pagePath: string;
} | undefined;
/**
* Returns path that is no longer prefixed nor suffixed by the set of strings passed as an array.
*/
static trimStrings(path: string, strings: string[]): string;
static _getStartStrings(path: string, strings: string[]): string;
/**
* Helper for handling remote react app routing in edit mode
*
* When an external SPA is opened in the editor, the router needs updated path parameter
* to account for the AEM specific prefix in the URL
* eg: /home will become /content/{aem_project_name}/home
*
* @param path Path to route to
* @param aemHost Origin information of the AEM instance in which to edit
* @param rootPath AEM path which forms the root path of the remote app
* @returns Updated path to match against
*/
static toAEMPath(path: string, aemHost: string, rootPath: string): string;
}
//# sourceMappingURL=PathUtils.d.ts.map