Skip to content
SumOfficeSumOfficeSumOffice

Surface events

What events the SumSheet shell emits today, what arrives in detail, and why this is an internal contract, not a public SDK.

All the names start with fastsheet: — a product prefix, not a brand one; renaming the product to SumSheet didn’t touch it.

The surface sends three object events on itself, with bubbles: true — you can listen on the node itself, or on any of its ancestors.

Event When it fires What’s in detail
fastsheet:surface-object-selected A graphic object on the sheet is selected objectId, sheetKey, family, status; for charts, also chartLocalX, chartLocalY, chartTargetId
fastsheet:surface-object-dragging An object is being dragged objectId and bounds — and nothing else
fastsheet:surface-object-moved Dragging is finished objectId, sheetKey, family, status

The locale change arrives somewhere different from the rest

Section titled “The locale change arrives somewhere different from the rest”
Event Where to listen What’s in detail
fastsheet:surface-locale-changed on window locale, direction

This is the only event the shell sends not to the surface but to window, and it doesn’t bubble. A listener attached to the surface node alongside the other four will never get the locale change.

fastsheet:surface-dispose goes the other way

Section titled “fastsheet:surface-dispose goes the other way”

The shell doesn’t emit this event — it listens for it. The embedding application sends it — that’s how it tells the surface its node is leaving the page; on receiving the event, the shell unregisters the surface, disconnects its own listeners, and clears temporary nodes.

// Remove the surface before deleting the node from the page.
surface.dispatchEvent(new CustomEvent("fastsheet:surface-dispose"));

Subscribing to it while waiting for a “surface closed” signal makes no sense: you send it, not the surface.

Wrap the events in a facade of your own, as shown in Runtime environments: the contents of detail are the shell’s internal business, and even today they already differ between neighboring events.

Documentation assistant

Answers are assembled from the documentation and may be inaccurate — check the sources.