marker.audioBadge: flag a slide that has narration or audio media.
Mirrors active(), as a flag rather than a method reference.
Base accessible name (slide headline or label), without audio suffix.
Enter/Space activation for keyboard visitors, detached in dispose().
Escape-to-close, detached in dispose().
The popup card while it is open. declare fields are undefined until
assigned, so every read below is a truthiness check, never === null,
and there is no constructor to initialise them: MapMarker's own
constructor already runs _initLayout() → _createMarker(), which
assigns the flags, and initialising afterwards would wipe them.
marker.popup: the active marker opens its card when clicked.
Optionald: MapMarkerDataOptionalo: StorymapOptionsOptionalo: StorymapOptionsHeadline, a sanitized excerpt, the media thumb and an audio control.
Every piece of text goes through sanitizeSlideText — a slide's text
is untrusted input and a marker card is no different (the stored-XSS
audit made that lesson once; a label is attacker-controlled text like
any other).
Optionalsize: number[]The marker's coordinate, or null when it has none (an overview slide, or
a slide carrying only an image region). Every caller treats null as
"nothing to focus", so this is the honest shape — the previous
{ lat: 0, lng: 0 } was a real point at Null Island, spelled with a
longitude key nothing in the map read.
Optionale: unknownThe merged marker presentation: marker.* wins, location.* is the
legacy spelling and still works.
location also stays the carrier of geography, so lat/lon are read
from it alone — presentation never moves a marker.
Optionald: MapMarkerDataToggle the popup card for the active marker. Inactive markers keep their original behaviour — a click navigates — so a popup never swallows navigation on a map full of pins.
The card is a DOM element parented to the marker element and positioned
with CSS, which is how it survives a move to the vector renderer
(docs/plans/issue-159-vector-markers.md): only the anchor is the
marker's, and that is latLon().
A small indicator on markers whose slide has narration or audio media (the Micrio affordance). Recomputed on activation, because a slide's media may only be known once it is resolved.
Optionalanimate: booleanClose the popup card if it is open. Fires popupclose. Also runs on
Escape, the card's close button, deactivation and dispose().
Optionald: MapMarkerDataOptionalo: StorymapOptionsOptional_d: MapMarkerDataOptional_o: StorymapOptionsNever implemented, in the original viewer either: the base
MapMarker._createPopup had an empty body and the Leaflet override's
body was commented out, so the map_popup option that called it never
had any effect. Kept as a no-op so pre-0.10 code that calls it keeps
working. Render the slide text yourself, or use CSS on
.vco-mapmarker to show a label.
See show — no-op since 0.9.x upstream.
True when this marker is configured to show a popup card.
The marker's {lat, lon}, or null when it is a non-georeferenced marker
(an overview slide, or a slide with only an image region). _createMarker
already established this for a real marker, but returning it from one
place means the type checker can see it too.
Optionalcontext: unknownOptionalcontext: unknownOpen the popup card for this marker.
Returns false (and opens nothing) when popups are disabled for the
marker or it is not a real map marker — e.g. an overview slide. A
click on an inactive marker navigates instead of opening (see the
click handler in _createMarker); programmatic callers that want the
card on another stop should navigate first (StoryMap.openMarkerPopup
does exactly that). Fires popupopen on success.
Open the card when closed, close it when open. Returns whether the card is open afterwards (false when popups are disabled).
Optionala: boolean
A map marker as returned by
storymap.getMarker(n)/getMarkers()— the handle foropenPopup()/closePopup()/popupOpen.