diff --git a/library/i18n/locales/ar/posterDesign.json b/library/i18n/locales/ar/posterDesign.json
index 9b0f3fed2..ab83863f5 100644
--- a/library/i18n/locales/ar/posterDesign.json
+++ b/library/i18n/locales/ar/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "بطاقات الصلاة",
"wall": "ألواح الجدار",
"mapPrint": "طباعة الخريطة",
- "plugins": "من إضافات أخرى"
+ "plugins": "من إضافات أخرى",
+ "experimental": "تجريبية (قيد العمل)"
},
"tpl": {
"mapSheetCountry": "صفحة خريطة الدولة",
diff --git a/library/i18n/locales/de/posterDesign.json b/library/i18n/locales/de/posterDesign.json
index 5c07f781e..b4823a4b0 100644
--- a/library/i18n/locales/de/posterDesign.json
+++ b/library/i18n/locales/de/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "Gebetskarten",
"wall": "Wandtafeln",
"mapPrint": "Kartendruck",
- "plugins": "Aus anderen Plugins"
+ "plugins": "Aus anderen Plugins",
+ "experimental": "Experimentell (in Arbeit)"
},
"tpl": {
"mapSheetCountry": "Länder-Kartenblatt",
diff --git a/library/i18n/locales/en/posterDesign.json b/library/i18n/locales/en/posterDesign.json
index b37b07769..4f94c53aa 100644
--- a/library/i18n/locales/en/posterDesign.json
+++ b/library/i18n/locales/en/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "Prayer cards",
"wall": "Wall panels",
"mapPrint": "Map print",
- "plugins": "From other plugins"
+ "plugins": "From other plugins",
+ "experimental": "Experimental (in progress)"
},
"tpl": {
"mapSheetCountry": "Country map sheet",
diff --git a/library/i18n/locales/es/posterDesign.json b/library/i18n/locales/es/posterDesign.json
index 57d10b7bd..e7ebef669 100644
--- a/library/i18n/locales/es/posterDesign.json
+++ b/library/i18n/locales/es/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "Tarjetas de oración",
"wall": "Paneles de pared",
"mapPrint": "Impresión del mapa",
- "plugins": "De otros complementos"
+ "plugins": "De otros complementos",
+ "experimental": "Experimentales (en desarrollo)"
},
"tpl": {
"mapSheetCountry": "Hoja de mapa del país",
diff --git a/library/i18n/locales/fr/posterDesign.json b/library/i18n/locales/fr/posterDesign.json
index cfab7c740..92d86bbad 100644
--- a/library/i18n/locales/fr/posterDesign.json
+++ b/library/i18n/locales/fr/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "Cartes de prière",
"wall": "Panneaux muraux",
"mapPrint": "Impression de la carte",
- "plugins": "D’autres plugins"
+ "plugins": "D’autres plugins",
+ "experimental": "Expérimentaux (en cours)"
},
"tpl": {
"mapSheetCountry": "Feuille de carte du pays",
diff --git a/library/i18n/locales/hi/posterDesign.json b/library/i18n/locales/hi/posterDesign.json
index 60b700f86..f20ff68aa 100644
--- a/library/i18n/locales/hi/posterDesign.json
+++ b/library/i18n/locales/hi/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "प्रार्थना कार्ड",
"wall": "दीवार पैनल",
"mapPrint": "मानचित्र प्रिंट",
- "plugins": "अन्य प्लगइन से"
+ "plugins": "अन्य प्लगइन से",
+ "experimental": "प्रयोगात्मक (काम जारी)"
},
"tpl": {
"mapSheetCountry": "देश का मानचित्र पृष्ठ",
diff --git a/library/i18n/locales/it/posterDesign.json b/library/i18n/locales/it/posterDesign.json
index 8ef668a29..a93daddee 100644
--- a/library/i18n/locales/it/posterDesign.json
+++ b/library/i18n/locales/it/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "Schede di preghiera",
"wall": "Pannelli da parete",
"mapPrint": "Stampa della mappa",
- "plugins": "Da altri plugin"
+ "plugins": "Da altri plugin",
+ "experimental": "Sperimentali (in corso)"
},
"tpl": {
"mapSheetCountry": "Foglio mappa del paese",
diff --git a/library/i18n/locales/pt/posterDesign.json b/library/i18n/locales/pt/posterDesign.json
index 6cc35a844..cf6c4ec2e 100644
--- a/library/i18n/locales/pt/posterDesign.json
+++ b/library/i18n/locales/pt/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "Cartões de oração",
"wall": "Painéis de parede",
"mapPrint": "Impressão do mapa",
- "plugins": "De outros plugins"
+ "plugins": "De outros plugins",
+ "experimental": "Experimentais (em andamento)"
},
"tpl": {
"mapSheetCountry": "Folha de mapa do país",
diff --git a/library/i18n/locales/ro/posterDesign.json b/library/i18n/locales/ro/posterDesign.json
index e49d992a4..a15bab493 100644
--- a/library/i18n/locales/ro/posterDesign.json
+++ b/library/i18n/locales/ro/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "Cartonașe de rugăciune",
"wall": "Panouri de perete",
"mapPrint": "Tipărirea hărții",
- "plugins": "Din alte pluginuri"
+ "plugins": "Din alte pluginuri",
+ "experimental": "Experimentale (în lucru)"
},
"tpl": {
"mapSheetCountry": "Foaie de hartă a țării",
diff --git a/library/i18n/locales/ru/posterDesign.json b/library/i18n/locales/ru/posterDesign.json
index 9ef47bbe0..5bfbc12c2 100644
--- a/library/i18n/locales/ru/posterDesign.json
+++ b/library/i18n/locales/ru/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "Молитвенные карточки",
"wall": "Настенные панели",
"mapPrint": "Печать карты",
- "plugins": "Из других плагинов"
+ "plugins": "Из других плагинов",
+ "experimental": "Экспериментальные (в работе)"
},
"tpl": {
"mapSheetCountry": "Лист карты страны",
diff --git a/library/i18n/locales/zh/posterDesign.json b/library/i18n/locales/zh/posterDesign.json
index 242396f13..a004ec6bd 100644
--- a/library/i18n/locales/zh/posterDesign.json
+++ b/library/i18n/locales/zh/posterDesign.json
@@ -40,7 +40,8 @@
"cards": "祷告卡",
"wall": "墙面展板",
"mapPrint": "地图打印",
- "plugins": "来自其他插件"
+ "plugins": "来自其他插件",
+ "experimental": "实验性(进行中)"
},
"tpl": {
"mapSheetCountry": "国家地图页",
diff --git a/plugin-designs/poster-design/poster-styles.vue b/plugin-designs/poster-design/poster-styles.vue
index 1fe3febbe..d83478d8c 100644
--- a/plugin-designs/poster-design/poster-styles.vue
+++ b/plugin-designs/poster-design/poster-styles.vue
@@ -74,12 +74,21 @@ const pluginLabel = (d) => {
return `${pluginTitle(d)}: ${declaredSizeText(d.size, t)}`
}
+// PRODUCTION designs first, by family. EXPERIMENTAL ones (marked in templates.js: still being designed, or no
+// preview) and every other plugin's design (made by its own plugin, so drawn nowhere here) go last, in ONE
+// Experimental group that starts collapsed.
+const isExperimental = (id) => byPluginName.value.has(id) || byName.get(id)?.experimental === true
+const experimentalHeading = computed(() => t('posterDesign.family.experimental'))
// No `count`: these are templates, not lists of people, so the sticker reads "Show full details" alone.
-const items = computed(() => [
- ...configs.map((c) => ({ id: c.name, label: labelOf(c) })),
- ...pluginDesigns.value.map((d) => ({ id: d.name, label: pluginLabel(d) })),
-])
-const groupBy = (item) => (byPluginName.value.has(item.id) ? t('posterDesign.family.plugins') : t(FAMILY_KEYS[byName.get(item.id)?.family] || FAMILY_KEYS.mapSheet))
+const items = computed(() => {
+ const all = [
+ ...configs.map((c) => ({ id: c.name, label: labelOf(c) })),
+ ...pluginDesigns.value.map((d) => ({ id: d.name, label: pluginLabel(d) })),
+ ]
+ return [...all.filter((x) => !isExperimental(x.id)), ...all.filter((x) => isExperimental(x.id))]
+})
+const groupBy = (item) => (isExperimental(item.id) ? experimentalHeading.value : t(FAMILY_KEYS[byName.get(item.id)?.family] || FAMILY_KEYS.mapSheet))
+const collapsedBy = (sec) => (sec && sec.name) === experimentalHeading.value // PosterWall passes the section
// ── drawing a configuration from the library ──────────────────────────────────────────────────
const countryById = (id) => (countryData.countries || []).find((c) => c.id === id)
@@ -240,6 +249,7 @@ useShadowStyles(`
unit=""
item-count-key="posterDesign.templateCount"
:collapsible="true"
+ :collapsed-by="collapsedBy"
:header-action="{ labelKey: 'posterDesign.showFullDetails', ariaKey: 'posterDesign.showFullDetailsAria' }"
:preview-src="previewSrc"
:unsupported="withheld"
diff --git a/plugin-designs/poster-design/src/templates.js b/plugin-designs/poster-design/src/templates.js
index 5a2297fce..183167327 100644
--- a/plugin-designs/poster-design/src/templates.js
+++ b/plugin-designs/poster-design/src/templates.js
@@ -34,9 +34,10 @@ export const SAMPLE_COUNTRY_ID = 'country-npl'
export const SHEET_FORMATS = {
// `size` is the printed size as data (src/sizeText.js names it in the reader's language): inches, side lanes, paper.
'3x3': { size: { dims: [36, 36] }, px: [1500, 1500] },
- '60x96': { size: { dims: [60, 96], lanes: true }, px: [2500, 4000], sample: 'country-ind' },
- '66x66': { size: { dims: [66, 66], lanes: true }, px: [2750, 2750], sample: 'country-chn', missing: 'posterDesign.missing.noCountryAtSize' },
- '36x60': { size: { dims: [36, 60], lanes: true }, px: [1500, 2500], sample: 'country-sdn', missing: 'posterDesign.missing.noCountryAtSize' },
+ // experimental: still being designed, or no drawable preview; Styles lists these in a collapsed Experimental group.
+ '60x96': { size: { dims: [60, 96], lanes: true }, px: [2500, 4000], sample: 'country-ind', experimental: true },
+ '66x66': { size: { dims: [66, 66], lanes: true }, px: [2750, 2750], sample: 'country-chn', missing: 'posterDesign.missing.noCountryAtSize', experimental: true },
+ '36x60': { size: { dims: [36, 60], lanes: true }, px: [1500, 2500], sample: 'country-sdn', missing: 'posterDesign.missing.noCountryAtSize', experimental: true },
'3x4': { size: { dims: [36, 48] }, px: [1500, 2000], legacy: true },
letter: { size: { paper: 'letter' }, px: [1500, 1941] },
packet: { size: { paper: 'letter', packetPage: true }, px: [1500, 1941] },
@@ -61,6 +62,7 @@ function sheetEntry(format) {
size: f.size,
px: f.px,
legacy: !!f.legacy,
+ ...(f.experimental ? { experimental: true } : {}),
...(f.missing ? { missing: f.missing } : {}),
renderer: 'library/packet/posterSheets.js generateCountrySheet → library/packet/poster-render.js',
settings: { format },
@@ -117,6 +119,7 @@ export function listConfigurations() {
settings: {},
sample: null,
render: null,
+ experimental: true, // no preview: it prints the live map the reader is looking at
missing: 'posterDesign.missing.mapPrint',
},
]
diff --git a/public/dx-maps/doxa-maps-spa/manifest.json b/public/dx-maps/doxa-maps-spa/manifest.json
index c64ba904d..57b00fa8b 100644
--- a/public/dx-maps/doxa-maps-spa/manifest.json
+++ b/public/dx-maps/doxa-maps-spa/manifest.json
@@ -1277,7 +1277,7 @@
"bundle": "poster-design",
"scriptUrl": "./poster-design/poster-design.js",
"output": "dx-maps/poster-design/poster-design.js",
- "integrity": "sha384-kVf5O9aAROlIj262oQXNtH1vNc5BlieUEotbouNaKdiFsmAUqwmSIkVNRrYQqgGE",
+ "integrity": "sha384-8ma38d8X5WOwsDXKjPFFx8Edr7w6bDsrLjYQIf/m6zCu9VWO2uogLYWqDbaEIjj7",
"elements": [
"poster-design"
],
@@ -1300,7 +1300,7 @@
"scriptUrl": "./poster-design/poster-design.js",
"embed": {
"iframe": "",
- "script": "\n\n\n"
+ "script": "\n\n\n"
}
},
{
@@ -1316,7 +1316,7 @@
"scriptUrl": "./poster-design/poster-design.js",
"embed": {
"iframe": "",
- "script": "\n\n\n"
+ "script": "\n\n\n"
}
},
{
@@ -1332,7 +1332,7 @@
"scriptUrl": "./poster-design/poster-design.js",
"embed": {
"iframe": "",
- "script": "\n\n\n"
+ "script": "\n\n\n"
}
}
]
diff --git a/public/dx-maps/manifest.json b/public/dx-maps/manifest.json
index c64ba904d..57b00fa8b 100644
--- a/public/dx-maps/manifest.json
+++ b/public/dx-maps/manifest.json
@@ -1277,7 +1277,7 @@
"bundle": "poster-design",
"scriptUrl": "./poster-design/poster-design.js",
"output": "dx-maps/poster-design/poster-design.js",
- "integrity": "sha384-kVf5O9aAROlIj262oQXNtH1vNc5BlieUEotbouNaKdiFsmAUqwmSIkVNRrYQqgGE",
+ "integrity": "sha384-8ma38d8X5WOwsDXKjPFFx8Edr7w6bDsrLjYQIf/m6zCu9VWO2uogLYWqDbaEIjj7",
"elements": [
"poster-design"
],
@@ -1300,7 +1300,7 @@
"scriptUrl": "./poster-design/poster-design.js",
"embed": {
"iframe": "",
- "script": "\n\n\n"
+ "script": "\n\n\n"
}
},
{
@@ -1316,7 +1316,7 @@
"scriptUrl": "./poster-design/poster-design.js",
"embed": {
"iframe": "",
- "script": "\n\n\n"
+ "script": "\n\n\n"
}
},
{
@@ -1332,7 +1332,7 @@
"scriptUrl": "./poster-design/poster-design.js",
"embed": {
"iframe": "",
- "script": "\n\n\n"
+ "script": "\n\n\n"
}
}
]
diff --git a/public/dx-maps/poster-design/poster-design-mfe/index.html b/public/dx-maps/poster-design/poster-design-mfe/index.html
index 2bcb56c47..bccb110c5 100644
--- a/public/dx-maps/poster-design/poster-design-mfe/index.html
+++ b/public/dx-maps/poster-design/poster-design-mfe/index.html
@@ -73,7 +73,7 @@
-
+
-
+
-
+