Batch selection builds a packet, instead of recolouring regions
Driver: the batch tool is "super buggy", and letting you change the
colour of regions is NOT what is wanted - "the batch selection tool
should let you create your own poster or prayer packet based on your own
selection."
So the selection stops being a thing you PAINT and becomes an INPUT to
the two artefacts this app already makes. Gone: the eight colour
swatches, the custom hex input, and "Copy selection", which produced a
clipboard string and a recolour and nothing a reader could pray from.
In their place the HUD offers Prayer List, Poster Map and Clear, in all
eleven locales - the keys already existed, so this adds no translation
debt.
NO THIRD PIPELINE, which the brief rules out. Both actions end in
printPacket / printPoster, the same calls the legend and the poster wall
make. The selection is handed over as a SYNTHETIC list whose selector is
a pg_slugs union, because 12 of the 27 lists already use pg_slugs and
the evaluator THROWS on that type: resolving the union to concrete slugs
once, against a single fetch of the people-groups catalogue, gives every
existing consumer the shape it already handles. Resolving per zone would
refetch the whole catalogue per zone and still leave the caller to merge.
The packet's map page is per-zone artwork, so a multi-zone selection
prints a cover WITHOUT the map rather than letting one zone's map stand
in for all of them. A poster has no artwork for an arbitrary union at
all, so with several territories selected it says so plainly instead of
silently printing the first zone's poster as though it covered the
selection - generating one would be the new pipeline the brief forbids.
MEASURED at the rendered layer, driving the documented __UPG_SELECT__
gate API rather than guessing at the interaction:
selection 3 territories, exactly Middle East Core / East Africa /
Sudan, batch mode on
recolour UI swatches gone, hex gone, copy gone
buttons en "Prayer List / Poster Map / Clear selection",
ar "قائمة الصلاة / خريطة الملصق / إلغاء التحديد"
page errors 0
This commit is contained in:
parent
beb13da3da
commit
fc93847bb6
8 changed files with 189 additions and 100 deletions
|
|
@ -1275,6 +1275,103 @@ function allLists() {
|
|||
...(clusters.uncovered_lists || [])];
|
||||
}
|
||||
|
||||
// ── BATCH SELECTION MAKES A PACKET OR A POSTER ──────────────────────────────
|
||||
// Driver: the batch tool is "super buggy", and recolouring regions is not what is wanted —
|
||||
// "the batch selection tool should let you create your own poster or prayer packet based on
|
||||
// your own selection." So the selection is an INPUT to the two artefacts this app already
|
||||
// builds, and neither of these grows a third pipeline: both end in printPrayerPacket /
|
||||
// packetPrints.printPoster, the same calls the legend and the poster wall make.
|
||||
const batchBusy = ref(false);
|
||||
|
||||
// The zones behind the current selection. selectedTerritories holds 'zone:<id>' keys, and the
|
||||
// list objects carry the selectors the packet needs; resolve back to those rather than
|
||||
// re-deriving membership from the map, which would be a second source of truth.
|
||||
function selectedLists() {
|
||||
const want = new Set(selectedTerritories.value
|
||||
.filter((t) => t.kind === 'zone')
|
||||
.map((t) => String(t.key).replace(/^zone:/, '')));
|
||||
return allLists().filter((l) => want.has(l.id));
|
||||
}
|
||||
|
||||
// A SYNTHETIC LIST standing for the whole selection, so every existing action works unchanged.
|
||||
// ⚠ ITS SELECTOR IS A pg_slugs UNION, NOT A LIST OF SELECTORS. 12 of the 27 lists already use
|
||||
// pg_slugs and the evaluator THROWS on that type, so the selection is resolved to concrete slugs
|
||||
// HERE — once, against one fetch of the people-groups list — and handed on as the type every
|
||||
// consumer already handles. Resolving per zone would refetch the whole catalogue per zone and
|
||||
// still leave the caller to merge.
|
||||
async function selectionAsList() {
|
||||
const lists = selectedLists();
|
||||
if (!lists.length) throw new Error('nothing selected');
|
||||
if (!API_BASE) throw new Error('no API configured');
|
||||
const fields = 'slug,name,country_code,population,religion,image_url';
|
||||
const resp = await fetch(`${API_BASE}/api/people-groups/list?fields=${fields}&lang=${packetLang()}`,
|
||||
{ cache: 'no-store' });
|
||||
if (!resp.ok) throw new Error(`people-groups fetch failed (${resp.status})`);
|
||||
const records = normalizeRecords(extractRecords(await resp.json()));
|
||||
const { evaluate } = await import('./data/selector-evaluator.js');
|
||||
const slugs = new Set();
|
||||
for (const l of lists) {
|
||||
if (l.selector && l.selector.type === 'pg_slugs') {
|
||||
for (const s of (l.selector.values || [])) slugs.add(s);
|
||||
} else {
|
||||
for (const s of evaluate(l.selector, records)) slugs.add(s);
|
||||
}
|
||||
}
|
||||
// The label is what the reader sees on the cover and in the print dialog's title. Name the
|
||||
// territories they actually chose rather than inventing a title for their selection.
|
||||
const names = lists.map((l) => l.label || l.id);
|
||||
const label = names.length <= 3
|
||||
? names.join(' + ')
|
||||
: `${names.slice(0, 2).join(' + ')} +${names.length - 2} more`;
|
||||
return { id: 'selection', label, count: slugs.size,
|
||||
selector: { type: 'pg_slugs', values: [...slugs] } };
|
||||
}
|
||||
|
||||
async function makeSelectionPacket() {
|
||||
if (batchBusy.value) return;
|
||||
batchBusy.value = true;
|
||||
try {
|
||||
const sel = await selectionAsList();
|
||||
// The packet's map page is per-zone artwork; a multi-zone selection has no single poster to
|
||||
// lift it from, so it prints a cover WITHOUT the map rather than one zone's map standing in
|
||||
// for all of them. packetMapSvg already treats a miss as fine.
|
||||
const [{ createPacketRenderer }, strings] = await Promise.all([
|
||||
import('@map/packet/packet-render.js'),
|
||||
import('@map/scripts/posters/packet-strings.json').then((m) => m.default || m),
|
||||
]);
|
||||
const R = createPacketRenderer({ strings, lang: packetLang() });
|
||||
const lists = selectedLists();
|
||||
const mapSvg = lists.length === 1 ? await packetMapSvg(lists[0].id, R) : '';
|
||||
await packetPrints.printPacket(sel, { mapSvg });
|
||||
} catch (e) {
|
||||
status.value = `Selection packet failed: ${String(e?.message || e).slice(0, 90)}`;
|
||||
setTimeout(() => { if (status.value.startsWith('Selection packet failed')) status.value = ''; }, 4000);
|
||||
} finally { batchBusy.value = false; }
|
||||
}
|
||||
|
||||
async function makeSelectionPoster() {
|
||||
if (batchBusy.value) return;
|
||||
batchBusy.value = true;
|
||||
try {
|
||||
const lists = selectedLists();
|
||||
if (!lists.length) throw new Error('nothing selected');
|
||||
// ⚠ A POSTER IS PRE-RENDERED PER ZONE — there is no artwork for an arbitrary union, and
|
||||
// generating one would be the new pipeline the brief rules out. With one zone selected this
|
||||
// is exactly the wall's poster; with several, say so plainly instead of silently printing
|
||||
// the first zone's poster as though it covered the selection.
|
||||
if (lists.length > 1) {
|
||||
status.value = `Poster prints one territory at a time — ${lists.length} selected. `
|
||||
+ 'Pick one, or use the prayer packet for the whole selection.';
|
||||
setTimeout(() => { if (status.value.startsWith('Poster prints one')) status.value = ''; }, 5000);
|
||||
return;
|
||||
}
|
||||
await packetPrints.printPoster(lists[0]);
|
||||
} catch (e) {
|
||||
status.value = `Selection poster failed: ${String(e?.message || e).slice(0, 90)}`;
|
||||
setTimeout(() => { if (status.value.startsWith('Selection poster failed')) status.value = ''; }, 4000);
|
||||
} finally { batchBusy.value = false; }
|
||||
}
|
||||
|
||||
// The packet follows the app's locale so a reader gets it in their own language;
|
||||
// packet-strings.json falls back PER KEY, so a half-finished translation renders
|
||||
// its finished keys rather than blanking.
|
||||
|
|
@ -2135,25 +2232,18 @@ onBeforeUnmount(() => {
|
|||
</span>
|
||||
</div>
|
||||
<div v-if="selCount" class="upg-hud-names">{{ selectedTerritories.map(t => t.name).join(', ') }}</div>
|
||||
<!-- R1.1 (g): color picker — 8 colorblind-aware swatches + custom hex. Picking
|
||||
preview-recolors the selected territories (upg-sel-fill repaints); the
|
||||
clipboard payload then ends with the chosen "· #hex" (h). The gate clicks
|
||||
.upg-swatch[data-color] and reads __UPG_SELECT__.color. -->
|
||||
<div v-if="selCount" class="upg-hud-swatches">
|
||||
<button
|
||||
v-for="c in SWATCHES" :key="c"
|
||||
class="upg-swatch" :class="{ active: selectedColor === c }"
|
||||
:data-color="c" :style="{ background: c }" :title="c"
|
||||
@click="setSelectionColor(c)"
|
||||
></button>
|
||||
<input
|
||||
v-model="hexDraft" class="upg-hex" placeholder="#hex"
|
||||
spellcheck="false" @change="onHexInput" @keyup.enter="onHexInput"
|
||||
/>
|
||||
</div>
|
||||
<!-- ★ THE SELECTION MAKES SOMETHING. Driver: the batch tool is "super buggy", and letting
|
||||
you change the colour of regions is NOT what is wanted — "the batch selection tool
|
||||
should let you create your own poster or prayer packet based on your own selection."
|
||||
So the colour swatches and the hex input are GONE, and the actions that remain BUILD
|
||||
the two artefacts this app already knows how to make, from exactly what was picked.
|
||||
These reuse printPrayerPacket / printPoster rather than growing a third pipeline. -->
|
||||
<div v-if="selCount" class="upg-hud-actions">
|
||||
<button class="upg-hud-btn copy" @click="copySelection">Copy selection</button>
|
||||
<button class="upg-hud-btn clear" @click="clearSelection">Clear</button>
|
||||
<button class="upg-hud-btn make" :disabled="batchBusy"
|
||||
@click="makeSelectionPacket">{{ t('buttons.prayerList') }}</button>
|
||||
<button class="upg-hud-btn make" :disabled="batchBusy"
|
||||
@click="makeSelectionPoster">{{ t('buttons.posterMap') }}</button>
|
||||
<button class="upg-hud-btn clear" @click="clearSelection">{{ t('buttons.clearSelection') }}</button>
|
||||
</div>
|
||||
<div v-if="selCount" class="upg-hud-flash">{{ copyFlash }}</div>
|
||||
</div>
|
||||
|
|
|
|||
8
public/doxa-maps/doxa-maps-spa/manifest.json
generated
8
public/doxa-maps/doxa-maps-spa/manifest.json
generated
|
|
@ -664,7 +664,7 @@
|
|||
"bundle": "my-upg-100-list",
|
||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
|
||||
"integrity": "sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD",
|
||||
"integrity": "sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY",
|
||||
"elements": [
|
||||
"my-upg-100-list-map"
|
||||
],
|
||||
|
|
@ -684,7 +684,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -698,7 +698,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -712,7 +712,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
2
public/doxa-maps/index.html
generated
2
public/doxa-maps/index.html
generated
File diff suppressed because one or more lines are too long
8
public/doxa-maps/manifest.json
generated
8
public/doxa-maps/manifest.json
generated
|
|
@ -664,7 +664,7 @@
|
|||
"bundle": "my-upg-100-list",
|
||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
|
||||
"integrity": "sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD",
|
||||
"integrity": "sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY",
|
||||
"elements": [
|
||||
"my-upg-100-list-map"
|
||||
],
|
||||
|
|
@ -684,7 +684,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -698,7 +698,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -712,7 +712,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early; remove this line if you set \"provider\":\"maplibre\" -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
139
public/doxa-maps/my-upg-100-list/my-upg-100-list.js
generated
139
public/doxa-maps/my-upg-100-list/my-upg-100-list.js
generated
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-wV3C24ByQTO9YmoAwC+/XTH++0E+XCv7L3L9zp8NW7aRqp/u7gKmXOJ94bsFWRrD" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-vqUN7kfMcv1vUvjQIzNxapDlwPSdtR8atXoIETM0hxoqOCKG+7FAPPltRsA4jukY" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
Loading…
Reference in a new issue