Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | 94x 94x 94x 94x 94x 94x 3x 3x 3x 3x 3x 3x 3x | /** * @module Actions * * @categoryDescription Controlling openables * {@link Open} opens or closes the {@link Openable} widget setup for the given * element. */ import * as MC from "@lisn/globals/minification-constants"; import { Openable } from "@lisn/widgets/openable"; import { fetchUniqueWidget } from "@lisn/widgets/widget"; import { Action, registerAction } from "@lisn/actions/action"; /** * Opens or closes the {@link Openable} widget setup for the given element. * * ------- * * To use with auto-widgets (HTML API) as part of a trigger specification: * - Action name: "open". * - Arguments: none * - Options: none * * @example * ```html * <div class="lisn-modal" data-lisn-on-view="@open +reference=top:50%"></div> * ``` * * @category Controlling openables */ export class Open implements Action { /** * Opens the Openable widget setup for the element. */ readonly do: () => Promise<void>; /** * Closes the Openable widget setup for the element. */ readonly undo: () => Promise<void>; /** * Toggles the Openable widget setup for the element. */ readonly toggle: () => Promise<void>; static register() { registerAction("open", (element) => new Open(element)); } constructor(element: Element) { const open = (widget: Openable | null) => widget?.open(); const close = (widget: Openable | null) => widget?.close(); const toggle = (widget: Openable | null) => widget?.toggle(); const widgetPromise = fetchUniqueWidget("openable", element, Openable); this.do = () => widgetPromise.then(open); this.undo = () => widgetPromise.then(close); this[MC.S_TOGGLE] = () => widgetPromise.then(toggle); } } |