Skip to content

feat(action): per-rep exclusion filter + law panel on action detail

Front side of risefor-lobbying !43 (merged) (sprint campaign-level, 2026-09-10).

1. Exclude specific representatives

  • excludedRepresentatives in fields map (expand) + global.d.ts type
  • target-search filter: rep url-ref match with /ssr/ normalization, same predicate position as party exclusion — shape handled for array AND ldp-container (normalizePartyRefs)

2. Law panel on action detail (targetLaw)

  • New <risefor-action-law-panel>: law title + "Voir le détail" (requestNavigation to risefor-law-detail), compact "Le parcours de la loi" (top-level actes + events + doc chips, collapsed by default), AN votes via <risefor-vote-recap-scrutin> (hidden when scrutins = 0 via the scrutin-count event)
  • Mounted only when targetLaw present; field absent (plugin off) → nothing mounts, zero coupling
  • targetLaw added to the fields map (was never fetched client-side)
  • Single-resource fetches only (102MB lesson); fetch failures silent (panel must never break the action page)

Verification

  • tsc: zero new errors vs master baseline in all touched files
  • Live payload contract checked (targetLaw {@id} shape, ssr/non-ssr refs)
  • NOTE: visual render check pending — headless browser hung on federation data; recommend checking on the real dev action page after merge (action 1384 on dev is linked to law 2174 which has 422 scrutins).

Merge request reports