Skip to content

feat(map-component): apply spec#388

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feat/apply-map-component
May 11, 2026
Merged

feat(map-component): apply spec#388
rubenvdlinde merged 1 commit into
developmentfrom
feat/apply-map-component

Conversation

@rubenvdlinde
Copy link
Copy Markdown
Contributor

Summary

Manifest-first slice of openspec/changes/map-component (T01, T02):

  • Adds src/components/map/MapComponent.vue — thin Vue 2 wrapper around CnMapWidget from @conduction/nextcloud-vue. Props: locations[], center, zoom, interactive, markerFormatter (string, registry lookup), tileLayer, clustering, height. Events: marker-click, viewport-change (debounced 200 ms), ready. Read-only mode (:interactive="false") switches container role to img and disables every Leaflet interaction primitive.
  • Adds src/services/mapFormatters.js — formatter registry with caseMarkerFormatter (status-driven NL Design palette via CSS variables) and locationMarkerFormatter; polygons reduced to arithmetic-mean centroid markers (geometry types other than Point/Polygon are skipped).
  • Registers MapComponent in src/customComponents.js so manifest pages MAY mount it by string name.
  • Records the change in builds/build.json with the consumer migrations (T03-T05) deferred to their owning specs (case-location, case-map-overview, public case page).

No PHP. No new routes. No manifest pages. No i18n bundle changes (per strict-watchdog scope).

Test plan

  • Visual smoke: mount the component with one Point geometry and confirm one pin renders.
  • Read-only smoke: re-mount with :interactive="false" and confirm container role="img" and zoom controls hidden.
  • Registry lookup: confirm customComponents.MapComponent resolves at runtime.
  • Note: lib CnMapWidget requires @conduction/nextcloud-vue >= beta.30; current procest dependency is beta.29 — runtime smoke depends on the lib bump landing.

Add the shared MapComponent Vue wrapper around CnMapWidget plus the
mapFormatters registry, and register MapComponent in customComponents so
manifest pages MAY mount it by name.

This is the manifest-first slice of openspec/changes/map-component (T01,
T02). Consumer migrations (CaseMapTab T03, CaseMapWidget T04,
PublicCaseView T05) remain owned by case-location, case-map-overview,
and the public-case-page specs respectively — see builds/build.json
deferred list for the trail.
@rubenvdlinde rubenvdlinde merged commit 0add5de into development May 11, 2026
16 of 20 checks passed
@rubenvdlinde rubenvdlinde deleted the feat/apply-map-component branch May 11, 2026 12:02
@github-actions
Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/procest @ 89533ac

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 100/100
npm ✅ 419/419
PHPUnit ⏭️
Newman ⏭️
Playwright

Spec coverage: 3% (21 tests / 673 specs)


Quality workflow — 2026-05-11 12:05 UTC

Download the full PDF report from the workflow artifacts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant