UNPKG

lisn.js

Version:

Simply handle user gestures and actions. Includes widgets.

1 lines 4.98 kB
{"version":3,"file":"open.cjs","names":["MC","_interopRequireWildcard","require","_openable","_widget","_action","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","Open","register","registerAction","element","constructor","open","widget","close","toggle","widgetPromise","fetchUniqueWidget","Openable","do","then","undo","S_TOGGLE","exports"],"sources":["../../../src/ts/actions/open.ts"],"sourcesContent":["/**\n * @module Actions\n *\n * @categoryDescription Controlling openables\n * {@link Open} opens or closes the {@link Openable} widget setup for the given\n * element.\n */\n\nimport * as MC from \"@lisn/globals/minification-constants\";\n\nimport { Openable } from \"@lisn/widgets/openable\";\nimport { fetchUniqueWidget } from \"@lisn/widgets/widget\";\n\nimport { Action, registerAction } from \"@lisn/actions/action\";\n\n/**\n * Opens or closes the {@link Openable} widget setup for the given element.\n *\n * -------\n *\n * To use with auto-widgets (HTML API) as part of a trigger specification:\n * - Action name: \"open\".\n * - Accepted string arguments: none\n * - Accepted options: none\n *\n * @example\n * ```html\n * <div class=\"lisn-modal\" data-lisn-on-view=\"@open +reference=top:50%\"></div>\n * ```\n *\n * @category Controlling openables\n */\nexport class Open implements Action {\n /**\n * Opens the Openable widget setup for the element.\n */\n readonly do: () => Promise<void>;\n\n /**\n * Closes the Openable widget setup for the element.\n */\n readonly undo: () => Promise<void>;\n\n /**\n * Toggles the Openable widget setup for the element.\n */\n readonly toggle: () => Promise<void>;\n\n static register() {\n registerAction(\"open\", (element) => new Open(element));\n }\n\n constructor(element: Element) {\n const open = (widget: Openable | null) => widget?.open();\n const close = (widget: Openable | null) => widget?.close();\n const toggle = (widget: Openable | null) => widget?.toggle();\n\n const widgetPromise = fetchUniqueWidget(\"openable\", element, Openable);\n\n this.do = () => widgetPromise.then(open);\n this.undo = () => widgetPromise.then(close);\n this[MC.S_TOGGLE] = () => widgetPromise.then(toggle);\n }\n}\n"],"mappings":"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","ignoreList":[]}