You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit c6d3f38
Browse filesBrowse the repository at this point in the historyBrowse files
feat(plugin-map)!: retire the bare map node type key; object-map is the one spelling
Unregister `ComponentRegistry.register('map', ...)` (and with it `view:map`)
from @object-ui/plugin-map, following the objectui#8008 family ruling that
retired the bare `gantt` / `kanban` keys. No schema face declares `map` as a
component node type, so unregistering is the whole retirement; the stored
`NamedListView.type` value `map` is untouched (ObjectView / ListView already
emit `object-map` for it).
- console: drop the lazy `map` stub.
- core: drop the `map` / `view:map` rows from RECORD_SOURCE_DATA_ARM_BY_TYPE.
- cli: regenerate known-schema-types (bare `map` leaves the list).
- prompts: teach `object-map` instead of `view:map` on the list-view Keys line.
- README: one registered type; a bare array under `data` is not a record source.
- tests: drop the retired rows from the registration / arm pins; add the
retirement pin with a firing control on `object-map`.
Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014mXUNuFomfj24w7s1pZzhN
Copy file name to clipboardExpand all lines: packages/plugin-map/README.md
+25-14Lines changed: 25 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,13 +7,22 @@ marker comes from a record's own coordinate fields, and the first paint frames t
7
7
records that were fetched. It is a *view over data* — there is no authored marker
8
8
list, and no pin you place by hand.
9
9
10
-
Importing the package registers two component types on the `ComponentRegistry`,
11
-
both resolving to the same renderer:
10
+
Importing the package registers one component type on the `ComponentRegistry`:
11
+
`object-map`, the object-bound renderer. Inside an `ObjectView`, a stored `map`
12
+
view is compiled to an `object-map` node, so a saved map view ends at the same
13
+
component.
12
14
13
-
-`object-map` — the object-bound renderer
14
-
-`map` — the bare spec view-type name (`ViewTypeSchema`'s `'map'`), for a node
15
-
authored with it directly. Inside an `ObjectView`, a `map` view is compiled to
16
-
an `object-map` node, so both spellings end at the same component.
15
+
> **The bare `map` node type key is retired** (objectui#10393, following the
16
+
> objectui#8008 ruling that retired `gantt`). The registry used to accept a node
17
+
> authored `"type": "map"` (and its namespaced twin `view:map`) while the
18
+
> published declaration refused it — `ObjectMapSchema.type` is the literal
19
+
> `'object-map'` and no schema arm names `map` — so a validated document could not
20
+
> use the key the registry took. Write `"type": "object-map"`.
21
+
>
22
+
> ⚠️ The **stored view type**`"map"` — what a saved `listViews[].type` or
23
+
> `defaultViewType` holds — is a **different layer and is unchanged**. Do not
24
+
> rewrite it: `ObjectView` maps a stored `map` view onto the `object-map` node
25
+
> type, so no saved view moves.
17
26
18
27
## Installation
19
28
@@ -88,12 +97,14 @@ is honoured as well.
88
97
89
98
**The provider does not change which query keys apply** (objectui#9061, the port
90
99
of objectui#8769). An authored `filter` and `sort` narrow and order the rows on
91
-
**every** provider, inline ones included — `staticData`, a bare array under
92
-
`data`, and `data: { provider: 'value', items }` all reach the same in-memory
93
-
adapter the other providers go through, so `filter` is evaluated with the same
94
-
matcher. Before objectui#9061 the inline provider skipped that query and plotted
95
-
every authored row with an authored `filter` silently dropped. The platform row
96
-
ceiling (2,000 drawn rows, with a footnote naming both numbers — objectui#7210,
100
+
**every** provider, inline ones included — `staticData` and
101
+
`data: { provider: 'value', items }` both reach the same in-memory adapter the
102
+
other providers go through, so `filter` is evaluated with the same matcher. A
103
+
bare array under `data` is not a record source on this map (objectui#8348): the
104
+
ladder falls through to `staticData`, then `objectName`, so inline rows belong
105
+
under `staticData`. Before objectui#9061 the inline provider skipped that query
106
+
and plotted every authored row with an authored `filter` silently dropped. The
107
+
platform row ceiling (2,000 drawn rows, with a footnote naming both numbers — objectui#7210,
97
108
ruling a′) applies to inline rows too, and it is applied to the **filtered** set,
98
109
never to the raw one: a large inline array that a `filter` cuts below the ceiling
99
110
plots every matching row and shows no footnote.
@@ -113,7 +124,7 @@ The declared configuration input. Every key is optional:
113
124
|`latitudeField`| Record field holding the latitude. Needs `longitudeField` alongside it; both values must be numbers. |
114
125
|`longitudeField`| Record field holding the longitude. |
115
126
|`locationField`| Single field holding both coordinates — see the formats below. Used when the lat/lng pair yields nothing. |
116
-
|`titleField`| Field shown as the marker title. Omitted, the title is resolved by the object's own record-title precedence (`@object-ui/core`'s `getRecordDisplayName`, ADR-0079): the declared `nameField`, its deprecated `displayNameField` alias, the legacy `titleFormat` template, a type-aware pick from the object's fields, then name-ish keys read straight off the record — the rung that answers when no object definition reached the view, as `staticData` and an inline `data` array never fetch one. `Record #<id>` is the floor; `Marker` is reached only by a record carrying no id at all. |
127
+
|`titleField`| Field shown as the marker title. Omitted, the title is resolved by the object's own record-title precedence (`@object-ui/core`'s `getRecordDisplayName`, ADR-0079): the declared `nameField`, its deprecated `displayNameField` alias, the legacy `titleFormat` template, a type-aware pick from the object's fields, then name-ish keys read straight off the record — the rung that answers when no object definition reached the view, as `staticData` and an inline `data: { provider: 'value', items }` configuration never fetch one. `Record #<id>` is the floor; `Marker` is reached only by a record carrying no id at all. |
117
128
|`descriptionField`| Field shown under the title in the marker popup. |
118
129
|`zoom`| Zoom level. Declaring it opts this view out of the auto-fit (see below). |
119
130
|`center`|`[latitude, longitude]` — a two-number **tuple**, latitude first. Declaring it opts this view out of the auto-fit. |
|`dataSource`| Resolves the `object` provider. Not needed for `staticData` or an inline `data` array. |
226
+
|`dataSource`| Resolves the `object` provider. Not needed for `staticData` or an inline `data: { provider: 'value', items }` configuration. |
216
227
|`className`| Classes for the wrapper around the map. |
217
228
|`data`| Records to render directly, bypassing the component's own fetch — the shape `ListView` passes when it already holds the rows. Tracked live: passing a new array after mount (e.g. once a host's own in-flight query resolves) updates the map. |
218
229
|`onMarkerClick`| Called with the clicked record. |
0 commit comments