@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
77 lines (69 loc) • 1.34 kB
TypeScript
/**
* Utilities related to reactivity that we're not quite ready to expose in the public API but which are useful for
* internal component development.
*
* @internal
* @internal
*/
/**
* @internal
* @internal
*/
export interface Signal<T> {
/** @internal */
value: T;
/**
* @param mutateFn
* @internal
*/
mutate(mutateFn: (value: T) => void): void;
}
/**
* @internal
* @internal
*/
export interface ReactiveObservable {
/** @internal */
notify(): void;
}
/**
* @internal
* @internal
*/
export interface ReactiveTrackingTarget {
/** @internal */
clear(): void;
/** @internal */
destroy(): void;
}
/**
* @param initialValue
* @param equalityFunction
* @internal
* @internal
*/
export function signal<T>(initialValue: T, equalityFunction?: (a: T, b: T) => boolean): Signal<T>;
/**
* @internal
* @internal
*/
export function createObservable(): ReactiveObservable;
/**
* @param notify
* @internal
* @internal
*/
export function createTrackingTarget(notify: () => void): ReactiveTrackingTarget;
/**
* @param observable
* @internal
* @internal
*/
export function trackAccess(observable: ReactiveObservable): void;
/**
* @param target
* @param callback
* @internal
* @internal
*/
export function runTracked<T>(target: ReactiveTrackingTarget, callback: () => T): T | null;