import Moveable, { makeAble, MoveableManagerInterface } from "lit-moveable"; import { LitElement, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ref, createRef } from "lit/directives/ref.js"; const MouseEnterLeaveAble = makeAble("enterLeave", { mouseEnter(moveable: MoveableManagerInterface) { if (moveable.moveables) { moveable.moveables.forEach(child => { child.state.target!.style.backgroundColor = "#e55"; }); } else { moveable.state.target!.style.backgroundColor = "#e55"; } }, mouseLeave(moveable: MoveableManagerInterface) { if (moveable.moveables) { moveable.moveables.forEach(child => { child.state.target!.style.backgroundColor = ""; }); } else { moveable.state.target!.style.backgroundColor = ""; } } }); @customElement("lit-app") export default class App extends LitElement { targetRef: Ref = createRef(null); render() { return html `
Target1
Target2
Target3
`; } onDrag(e) { e.target.style.transform = e.transform; } onDragGroup(e) { e.events.forEach(ev => { ev.target.style.transform = ev.transform; }); } }