@ima/react-page-renderer
Version:
IMA.js React page renderer.
98 lines • 4.1 kB
TypeScript
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