doxa-maps/plugin-designs/poster-design/index.js
Doxa Maps 855e89db65 Poster Design: a new plugin with Styles and Sizes tabs
Every poster template the library prints, in one place, so the designs
can be compared side by side and handed to an agent by name.

- poster-design-mfe: the two-tab element (capability 4), the same shape
  as country-posters-mfe: the shared ViewSelect over Styles and Sizes,
  each tab its own element, one ShareButton for the composite.
- poster-styles: the library's PosterWall, one card per configuration
  (src/templates.js: country map sheets at each format, the packet page,
  the packet variants, every card stock, the Bless wall panels, the map
  print). Through PosterWall's host seams the header sticker reads "Show
  full details" and opens a dialog with the configuration name, size,
  file size, settings, sample and renderer, and each thumbnail is drawn
  from the library with sample data (Nepal) when it comes into view.
  Templates the gallery cannot draw yet say which part is missing. The
  dialog fits a phone (border-box), and in Arabic its file size and the
  configuration name stay whole (LRI…PDI isolates).
- poster-sizes: waits for the shared size table rather than keeping a
  second list of sizes.

check:poster-design-catalogue (gates:pre) keeps the catalogue true: its
sheet formats match poster-render FORMATS, names are unique, the card
entries are card-render STOCK, its keys exist, the sample can be drawn.
2026-09-30 22:42:05 +00:00

23 lines
983 B
JavaScript

/**
* plugin-designs/poster-design/index.js: the Poster Design bundle entry.
*
* One tag, <poster-design>, and three profiles in this folder:
* poster-design-mfe the two-tab element (Styles + Sizes), the one a gallery mounts;
* poster-styles every poster template, one card per configuration;
* poster-sizes every poster size.
*
* <script src="…/poster-design/poster-design.js"></script>
* <poster-design profile-config='{"profile":"poster-design-mfe"}'></poster-design>
*/
import { defineMapElement } from '@map/elements/defineMapElement.js'
// Flat: './*.vue' finds the profiles beside this file (src/ holds private components, not profiles).
const profileModules = import.meta.glob('./*.vue')
const PosterDesignElement = defineMapElement({ profileModules })
if (typeof customElements !== 'undefined' && !customElements.get('poster-design')) {
customElements.define('poster-design', PosterDesignElement)
}
export default PosterDesignElement