OptionaladornmentA box above the selection chrome, placed and turned exactly as the frame is, for the content's
own controls (a shape's adjustment handles). null when the movable has none.
Render into it with a portal. It fills the frame's box and is pointer-transparent; controls opt back in. Drawn above the resize handles, so a control on the selection outline wins the press, as in Excel.
While one of the content's controls is being dragged, give it the class movable-gesture: every
control in the box, the layer's and the content's, hides until the class goes, as they do for a
move or resize.
OptionaldescriptionUsable for alt text or loading
OptionaldisabledIf true then the component is disabled.
OptionalflipHow to mirror the drawing within the frame: the gesture's while one is in flight, else the movable's own. The frame does not mirror the drawing itself, since what a mirror means is the drawing's (a shape keeps its text readable); content that cannot be mirrored ignores it.
OptionalgestureRuns a gesture of the content's own controls (a shape's adjustment handles) through the layer: previewed in every pane with what follows it, such as a connector glued to the shape, and committed as one step. Present while the movable's controls are drawn.
OptionalisIndicator for dragging.
OptionalloadingProvide an optional loading panel.
OptionalmovableThe movable associated with this element.
OptionaloffsetOptional style for the picture editor.
OptionaloffsetOptional style for the picture editor.
OptionalonRegisters where a press starts a drag: the test answers true for a press that should move the
movable. Without one, a press anywhere in the frame drags.
OptionalonCalled when the movable is hidden from view.
OptionalonCall when the movable is returned to the view.
OptionalonRegisters what a finger tap does on the movable while it is not selected: answer true to take
the tap, and the frame leaves the movable unselected. Without one, or on false, the tap selects.
A finger pressed on a movable that is not selected may be starting a pan of the sheet, so the content never receives that press: the frame waits for the finger to lift where it went down, the sheet unscrolled, and only then calls this. A link that opens on a tap is the use; the sheet still pans from anywhere on the movable.
The underlying model for the picture.
OptionalrefRef for the Element.
OptionaltileIf true the picture will be tiled to fill the area.
OptionalzoomThe scale of the view the movable is drawn in, where 1 is unscaled.
Props a movable renderer receives from its frame.
Remarks
Spread
styleonto the root element. It fills the frame, which owns the drawing's bounds (zoom included), AND carries its hit-testing: the frame itself is pointer-transparent, sostyle.pointerEvents('auto'by default,'none'while the frame is hidden) is what makes the drawing clickable. A drawing that is not solid — a no-fill shape — overrides it with'none'on its root and setspointerEventsback on its painted parts only (e.g.visibleStrokeon an SVG path), so a click in its unfilled interior reaches the cell beneath, exactly as in Excel.The drawing never sizes itself.
zoomis given only so that it can scale what it draws inside the frame (text, borders, padding), for example with the CSSzoomproperty; a drawing that stretches to its box, such as a picture, ignores it.