- ONE REGISTRY PER PAGE. Every bundle inlines its own copy of posterTypes.js, and <dxm-poster-section> is defined by whichever bundle loads first, so with a module-level Map that element saw only its own bundle's types: type="upg100-list" rendered "none" when the country-posters bundle had defined it. The registry now lives on the page (globalThis.__DXM_POSTER_TYPES__, created once): every copy registers into it and reads from it; a name registered twice keeps the first (a dev warning; the built-in country is silent); every registration is announced on window (dxm-poster-type-registered), and PosterSectionView looks again when its type arrives after it asked. - COLUMNS (carried from the Poster Sections plugin PR so the element's library lands once): columns="1".."5" maps to profile-config.columns and to PosterWall's existing columns prop; absent or out of range is today's default, and a reader's saved per-row choice still wins. - check:poster-type-registry (gates:pre; self-test in gates:post): two independent copies of the module side by side, as two bundles on one page; a type registered through one is found through the other; first wins; announced. The self-test's per-bundle registry fails. |
||
|---|---|---|
| .. | ||
| slots | ||
| types | ||
| MapPrintProgress.vue | ||
| panelSheets.js | ||
| PanelSheets.vue | ||
| PosterDialog.vue | ||
| PosterPreview.vue | ||
| PosterSection.vue | ||
| PosterSectionView.vue | ||
| posterTypes.js | ||
| PosterWall.vue | ||
| posterWallContext.js | ||
| README.md | ||
library/components/poster/ — poster export UI
The dialog and preview surfaces that turn a live map into a printable poster. Used by
research-map.vue.
PosterDialog.vue ← pick size, orientation, title → export
PosterPreview.vue ← live preview, updates as you change settings
PosterWall.vue ← grid of poster previews
slots/ ← the composable regions of a poster (own README)
fed by useMapPoster() · sizes from constants/posterSizes.js
- Open/close state comes from
inject('uiStore'); the preview is fed byuseMapPoster(). - Page sizes:
library/constants/posterSizes.js. Defaults:library/constants/posterDefaults.js.
Full wiring + slot contract: ../../../documentation/architecture/components.md.