UNPKG

rimmel

Version:

A Stream-Oriented UI library for the Rx.Observable Universe

31 lines 1.74 kB
import type { Sink, ExplicitSink } from "../types/sink"; export declare const TOGGLE_CLASS_SINK_TAG = "ToggleClass"; export declare const CLASS_SINK_TAG = "class"; export type ClassRecord = Record<string, string>; export type ClassName = string; export type ElementsSupportingClass = Record<string, string>; export declare const ToggleClassSink: (className: ClassName) => Sink<HTMLElement | SVGElement>; export declare const ClassNameSink: Sink<HTMLElement>; export declare const ClassObjectSink: Sink<Element>; export declare const ExperimentalClassObjectSink: Sink<Element>; /** * A specialised sink to toggle individual classes on a given element * Will toggle the specified class name on the specified element, whenever the source emits. The actual value of the source will be ignored, as it's the emissions which will cause the class toggling. * @param source A present or future string * @param className The class name to toggle * @returns RMLTemplateExpression A template expression for the "className" attribute * @example <div class="${ToggleClassName('class1', stringPromise)}"> * @example <div class="${ToggleClassName('class2', stringObservable)}"> **/ export declare const ToggleClass: ExplicitSink<'class'>; /** * A specialised sink for the "class" HTML attribute * Will set the whole className of an element to the string emitted by the source * @param source A present or future string * @returns RMLTemplateExpression A template expression for the "className" attribute * @example <div class="${stringPromise}"> * @example <div class="${stringObservable}"> * @example <div class="${ClassName(stringObservable)}"> **/ export declare const ClassName: ExplicitSink<'class'>; //# sourceMappingURL=class-sink.d.ts.map