UNPKG

rimmel

Version:

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

25 lines (22 loc) 820 B
import { SINK_TAG } from '../constants.js'; const FOCUS_SINK_TAG = 'focus'; const FocusSink = (node) => (state) => { state ? node.focus?.() : node.blur?.(); }; /** * A specialised sink for the "rml:focus" RML attribute * @param source A present or future boolean value * @returns RMLTemplateExpression A template expression for the "rml:focus" RML attribute * @example <input type="text" rml:focus="${booleanValue}"> * @example <input type="text" rml:focus="${booleanPromise}"> * @example <input type="text" rml:focus="${booleanObservable}"> * @example <input type="text" rml:focus="${Focus(booleanPromise)}"> */ const Focus = (source) => ({ type: SINK_TAG, t: FOCUS_SINK_TAG, source, sink: FocusSink, }); export { FOCUS_SINK_TAG, Focus, FocusSink }; //# sourceMappingURL=focus-sink.js.map