lisn.js
Version:
Simply handle user gestures and actions. Includes widgets.
1 lines • 7.27 kB
Source Map (JSON)
{"version":3,"file":"add-class.cjs","names":["MC","_interopRequireWildcard","require","_cssAlter","_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","AddClass","register","registerAction","element","classNames","constructor","_add","_remove","_toggle","getMethods","do","undo","S_TOGGLE","exports","RemoveClass","addClasses","removeClasses","toggleClasses"],"sources":["../../../src/ts/actions/add-class.ts"],"sourcesContent":["/**\n * @module Actions\n *\n * @categoryDescription Adding/removing class\n * {@link AddClass} and {@link RemoveClass} add or remove a list of CSS classes\n * to/from the given element.\n */\n\nimport * as MC from \"@lisn/globals/minification-constants\";\n\nimport {\n addClasses,\n removeClasses,\n toggleClasses,\n} from \"@lisn/utils/css-alter\";\n\nimport { Action, registerAction } from \"@lisn/actions/action\";\n\n/**\n * Adds or removes a list of CSS classes to/from the given element.\n *\n * **IMPORTANT:** When constructed, it removes all given classes from the\n * element as a form of initialization.\n *\n * -------\n *\n * To use with auto-widgets (HTML API) as part of a trigger specification:\n * - Action name: \"add-class\".\n * - Accepted string arguments: one or more CSS classes\n * - Accepted options: none\n *\n * @example\n * ```html\n * <div data-lisn-on-view=\"@add-class: clsA, clsB\"></div>\n * ```\n *\n * @category Adding/removing class\n */\nexport class AddClass implements Action {\n /**\n * Adds the classes given to the constructor.\n */\n readonly do: () => Promise<void>;\n\n /**\n * Removes the classes given to the constructor.\n */\n readonly undo: () => Promise<void>;\n\n /**\n * Toggles each class given to the constructor.\n */\n readonly toggle: () => Promise<void>;\n\n static register() {\n registerAction(\n \"add-class\",\n (element, classNames) => new AddClass(element, ...classNames),\n );\n }\n\n constructor(element: Element, ...classNames: string[]) {\n const { _add, _remove, _toggle } = getMethods(element, classNames);\n _remove(); // initial state\n\n this.do = _add;\n this.undo = _remove;\n this[MC.S_TOGGLE] = _toggle;\n }\n}\n\n/**\n * Removes or adds a list of CSS classes to/from the given element.\n *\n * **IMPORTANT:** When constructed, it adds all given classes from the element\n * as a form of initialization.\n *\n * -------\n *\n * To use with auto-widgets (HTML API) as part of a trigger specification:\n * - Action name: \"remove-class\".\n * - Accepted string arguments: one or more CSS classes\n * - Accepted options: none\n *\n * @example\n * ```html\n * <div data-lisn-on-view=\"@remove-class: clsA, clsB\"></div>\n * ```\n *\n * @category Adding/removing class\n */\nexport class RemoveClass implements Action {\n /**\n * Removes the classes given to the constructor.\n */\n readonly do: () => Promise<void>;\n\n /**\n * Adds the classes given to the constructor.\n */\n readonly undo: () => Promise<void>;\n\n /**\n * Toggles each class given to the constructor.\n */\n readonly toggle: () => Promise<void>;\n\n static register() {\n registerAction(\n \"remove-class\",\n (element, classNames) => new RemoveClass(element, ...classNames),\n );\n }\n\n constructor(element: Element, ...classNames: string[]) {\n const { _add, _remove, _toggle } = getMethods(element, classNames);\n _add(); // initial state\n\n this.do = _remove;\n this.undo = _add;\n this[MC.S_TOGGLE] = _toggle;\n }\n}\n\n// --------------------\n\nconst getMethods = (element: Element, classNames: string[]) => {\n return {\n _add: () => addClasses(element, ...classNames),\n _remove: () => removeClasses(element, ...classNames),\n _toggle: () => toggleClasses(element, ...classNames),\n };\n};\n"],"mappings":"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","ignoreList":[]}