import Moveable from "lit-moveable"; import { LitElement, html } from "lit"; import { customElement, property } from "lit/decorators.js"; import { ref, createRef } from "lit/directives/ref.js"; @customElement("lit-app") export default class App extends LitElement { hideChildMoveableDefaultLines: any = "$preview_hideChildMoveableDefaultLines"; draggable: any = "$preview_draggable"; throttleDrag: any = "$preview_throttleDrag"; edgeDraggable: any = "$preview_edgeDraggable"; startDragRotate: any = "$preview_startDragRotate"; throttleDragRotate: any = "$preview_throttleDragRotate"; resizable: any = "$preview_resizable"; keepRatio: any = "$preview_keepRatio"; throttleResize: any = "$preview_throttleResize"; renderDirections: any = "$preview_renderDirections"; rotatable: any = "$preview_rotatable"; throttleRotate: any = "$preview_throttleRotate"; rotationPosition: any = "$preview_rotationPosition"; minWidth: any = "$preview_minWidth"; minHeight: any = "$preview_minHeight"; maxWidth: any = "$preview_maxWidth"; maxHeight: any = "$preview_maxHeight"; moveableRef: Ref = createRef(null); render() { return html `
Target1
Target2
Target3
`; } onClick() { this.moveableRef.value!.updateRect(); } onDragGroup({ events }) { events.forEach(ev => { ev.target.style.transform = ev.transform; }); } onResizeGroupStart({ setMin, setMax }) { setMin([this.minWidth, this.minHeight]); setMax([this.maxWidth, this.maxHeight]); } onResizeGroup({ events }) { events.forEach(ev => { ev.target.style.width = `${ev.width}px`; ev.target.style.height = `${ev.height}px`; ev.target.style.transform = ev.drag.transform; }); } onRotateGroup({ events }) { events.forEach(ev => { ev.target.style.transform = ev.drag.transform; }); } }