UNPKG

@ima/react-page-renderer

Version:

IMA.js React page renderer.

98 lines 4.1 kB
import type { Utils, DictionaryMap } from '@ima/core'; import { Component, ContextType } from 'react'; import { PageContext } from '../PageContext'; /** * The base class for all view components. */ export declare abstract class AbstractComponent<P = unknown, S = unknown, SS = unknown> extends Component<P, S, SS> { static contextType: import("react").Context<import("../PageContext").PageContextType>; context: ContextType<typeof PageContext>; private _utils?; /** * Returns the utilities for the view components. The returned value is the * value bound to the `$Utils` object container constant. * * @return The utilities for the view components. */ get utils(): Utils; /** * Returns the localized phrase identified by the specified key. The * placeholders in the localization phrase will be replaced by the provided * values. * * @param key Localization key. * @param params Values for replacing * the placeholders in the localization phrase. * @return Localized phrase. */ localize(key: keyof DictionaryMap, params?: { [key: string]: string | number; }): string; /** * Generates an absolute URL using the provided route name (see the * <code>app/config/routes.js</code> file). The provided parameters will * replace the placeholders in the route pattern, while the extraneous * parameters will be appended to the generated URL's query string. * * @param name The route name. * @param params Router parameters and * extraneous parameters to add to the URL as a query string. * @return The generated URL. */ link(name: string, params?: { [key: string]: string; }): string; /** * Generate a string of CSS classes from the properties of the passed-in * object that resolve to true. * * @example * this.cssClasses('my-class my-class-modifier', true); * @example * this.cssClasses({ * 'my-class': true, * 'my-class-modifier': this.props.modifier * }, true); * * @param classRules CSS classes in a * string separated by whitespace, or a map of CSS class names to * boolean values. The CSS class name will be included in the result * only if the value is `true`. * @param includeComponentClassName * @return String of CSS classes that had their property resolved * to `true`. */ cssClasses(classRules: string | { [key: string]: boolean; } | string[], includeComponentClassName?: boolean): string; /** * Creates and sends a new IMA.js DOM custom event from this component. * * @param eventName The name of the event. * @param eventTarget EventTarget compatible node. * @param data Data to send within the event. */ fire(eventTarget: EventTarget, eventName: string, data?: any): void; /** * Registers the provided event listener for execution whenever an IMA.js * DOM custom event of the specified name occurs at the specified event * target. * * @param eventTarget The react component or * event target at which the listener should listen for the event. * @param eventName The name of the event for which to listen. * @param listener The listener for event to register. */ listen(eventTarget: EventTarget, eventName: string, listener: (event: Event) => void): void; /** * Deregisters the provided event listener for an IMA.js DOM custom event * of the specified name at the specified event target. * * @param eventTarget The react component or * event target at which the listener should listen for the event. * @param eventName The name of the event for which to listen. * @param listener The listener for event to register. */ unlisten(eventTarget: EventTarget, eventName: string, listener: (event: Event) => void): void; } //# sourceMappingURL=AbstractComponent.d.ts.map