Let the legend collapse on desktop, the way it already does on mobile
Mobile has had a fold control since the narrow layout existed; desktop had none, so a reader who wanted to see the map underneath had no way to move the legend off it. The state was already there — every section read "not narrow OR open", so on desktop the OR was always satisfied and the flag governed nothing. Now the flag alone decides at both widths. The control is deliberately not a new one. Same 22x20 caret, same rotation, same aria contract as the shared SemanticTreeLegend's collapse button, which the mobile legend also copies. Matching it costs nothing and means a reader who has met one of these legends has met this one. Collapsed, the panel shrinks to the caret. Hiding the contents alone would have left a 380px box of empty background over the map: the reader presses collapse and gets a blank panel instead of their map, which is worse than having no control at all. The choice is remembered for the session, so it survives working with the map but not a fresh visit, and a remembered choice beats the width default — otherwise dragging a window across the breakpoint would silently reopen a legend that had been deliberately closed, undoing a decision rather than responding to one. Storage access is wrapped: a sandboxed embed throws on it, and a legend that cannot remember is much better than a map that will not load.
This commit is contained in:
parent
20355ca552
commit
a45f1914a6
9 changed files with 100 additions and 49 deletions
|
|
@ -542,12 +542,34 @@ function openFromUrl() {
|
|||
// "a red dot can sit on a green country" is the thing that stops a correct map reading as
|
||||
// a bug, so it stays one tap away rather than being dropped on small screens.
|
||||
const narrow = ref(false)
|
||||
// ONE state for both widths. It used to govern the mobile sheet only — every section read
|
||||
// `!narrow || legendOpen`, so on desktop the legend was always open and there was no way to
|
||||
// shut it. Now `legendOpen` alone decides, and desktop gets the same collapse control mobile
|
||||
// has always had.
|
||||
const legendOpen = ref(true)
|
||||
// Remembered for the SESSION, not forever: a reader who collapses the legend to see the map
|
||||
// wants it to stay collapsed while they work, and wants a fresh visit to start from the
|
||||
// designed state rather than from a decision they made once and forgot. sessionStorage is
|
||||
// exactly that lifetime. Wrapped because a sandboxed or storage-blocked embed throws on
|
||||
// access, and a legend that cannot remember is far better than a map that will not load.
|
||||
const LEGEND_KEY = 'gm.legendOpen'
|
||||
function rememberLegend(v) {
|
||||
try { window.sessionStorage?.setItem(LEGEND_KEY, v ? '1' : '0') } catch (_) {}
|
||||
}
|
||||
function recallLegend() {
|
||||
try { const v = window.sessionStorage?.getItem(LEGEND_KEY); return v == null ? null : v === '1' }
|
||||
catch (_) { return null }
|
||||
}
|
||||
function toggleLegend() { legendOpen.value = !legendOpen.value; rememberLegend(legendOpen.value) }
|
||||
function syncNarrow() {
|
||||
const n = typeof window !== 'undefined' && window.innerWidth < 700
|
||||
if (n === narrow.value) return
|
||||
narrow.value = n
|
||||
legendOpen.value = !n
|
||||
// A remembered choice wins over the width default. Without this, dragging a window across
|
||||
// the breakpoint would silently reopen a legend the reader had deliberately closed — the
|
||||
// resize would be undoing their decision rather than responding to it.
|
||||
const remembered = recallLegend()
|
||||
legendOpen.value = remembered == null ? !n : remembered
|
||||
}
|
||||
if (typeof window !== 'undefined') {
|
||||
syncNarrow()
|
||||
|
|
@ -1950,6 +1972,21 @@ useShadowStyles(
|
|||
// Narrow screens: the rail is still on the right, so the legend must stop short
|
||||
// of it rather than run under it. 46px = 32px button + 3px inset + clearance.
|
||||
'@media(max-width:480px){.gm-legend{width:auto;inset-inline-end:46px}}' +
|
||||
// The caret's box matches .stl-collapse-btn exactly (22x20, 5px radius, 1px border) so the
|
||||
// two legends read as the same control. The colours are this map's, because the palette is
|
||||
// the map's and the geometry is the fleet's.
|
||||
// Collapsed, the panel must SHRINK TO THE CARET. Hiding the contents alone would leave a
|
||||
// 380px box of empty background sitting over the map — the reader would have pressed
|
||||
// collapse and got a blank panel instead of their map back, which is worse than no control.
|
||||
'.gm-legend.closed{width:auto;padding:4px;background:rgba(243,243,241,.92)}' +
|
||||
'.gm-legend.closed .gm-collapse{position:static;inset:auto}' +
|
||||
'.gm-collapse{position:absolute;inset-block-start:8px;inset-inline-end:8px;width:22px;height:20px;' +
|
||||
'display:flex;align-items:center;justify-content:center;background:rgba(209,212,205,.4);' +
|
||||
'border:1px solid #d1d4cd;border-radius:5px;cursor:pointer;color:#6d766e;padding:0;' +
|
||||
'transition:transform .3s ease-out,color .1s,background .1s;transform-origin:center}' +
|
||||
'.gm-collapse:hover{color:#3b463d;background:rgba(146,177,149,.25);border-color:#92b195}' +
|
||||
'.gm-collapse svg{transition:transform .18s;transform:rotate(180deg)}' +
|
||||
'.gm-collapse.closed svg{transform:rotate(0deg)}' +
|
||||
'.is-dark .gm-legend{background:rgba(19,32,25,.95);color:#e5e7eb}' +
|
||||
'.gm-title{font-weight:700;font-size:15.5px;margin-bottom:5px}' +
|
||||
'.gm-keys{display:flex;flex-wrap:wrap;gap:5px 12px}' +
|
||||
|
|
@ -2172,7 +2209,7 @@ useShadowStyles(
|
|||
<ShareButton :is-dark="isDark" :embed-path="shareEmbedPath" />
|
||||
</MapToolbar>
|
||||
|
||||
<div v-if="!cardMode" class="gm-legend">
|
||||
<div v-if="!cardMode" class="gm-legend" :class="{ closed: !legendOpen && !narrow }">
|
||||
<!-- ═══ SOMEBODY ELSE'S LIST, SAID PLAINLY ════════════════════════════════════════
|
||||
First thing in the legend, because it is the first thing that is different about
|
||||
this map: the reader is looking at a subset somebody chose. Two numbers and one
|
||||
|
|
@ -2207,7 +2244,21 @@ useShadowStyles(
|
|||
<button type="button" class="gm-mode" :class="{ on: mode === 'gap' }" @click="setMode('gap')">{{ t('gospel.mode.gap') }}</button>
|
||||
<button type="button" class="gm-mode" :class="{ on: mode === 'coverage' }" @click="setMode('coverage')">{{ t('gospel.mode.coverage') }}</button>
|
||||
</div>
|
||||
<button v-if="narrow" type="button" class="gm-fold" @click="legendOpen = !legendOpen"
|
||||
<!-- DESKTOP COLLAPSE. Mobile has always had one; desktop had none, so a reader who
|
||||
wanted the map under the legend had no way to move it. Deliberately NOT a new
|
||||
control: same 22x20 caret, same rotation, same aria contract as the shared
|
||||
SemanticTreeLegend's .stl-collapse-btn, which LegendMobile also copies. Matching it
|
||||
costs nothing and means a reader who has met one legend has met this one. -->
|
||||
<button v-if="!narrow" type="button" class="gm-collapse" :class="{ closed: !legendOpen }"
|
||||
:title="legendOpen ? t('aria.collapseLegend') : t('aria.expandLegend')"
|
||||
:aria-label="legendOpen ? t('aria.collapseLegend') : t('aria.expandLegend')"
|
||||
:aria-expanded="String(legendOpen)" @click="toggleLegend">
|
||||
<svg width="9" height="9" viewBox="0 0 12 12" fill="none" aria-hidden="true">
|
||||
<path d="M2 4l4 4 4-4" stroke="currentColor" stroke-width="2"
|
||||
stroke-linecap="round" stroke-linejoin="round" />
|
||||
</svg>
|
||||
</button>
|
||||
<button v-if="narrow" type="button" class="gm-fold" @click="toggleLegend"
|
||||
:aria-expanded="legendOpen ? 'true' : 'false'">
|
||||
<!-- "Key & notes" advertised only half of what is behind it. This panel also holds
|
||||
the pin FILTERS — by design, because the key doubles as the filter (see below) —
|
||||
|
|
@ -2216,19 +2267,19 @@ useShadowStyles(
|
|||
reader with no reason to open "notes" never finds it. -->
|
||||
{{ legendOpen ? 'Hide key & filters' : 'Key & filters' }}
|
||||
</button>
|
||||
<div v-show="!narrow || legendOpen" class="gm-title">
|
||||
<div v-show="legendOpen" class="gm-title">
|
||||
{{ mode === 'gap'
|
||||
? t('gospel.legend.title')
|
||||
: t('gospel.legend.titleCoverage') }}
|
||||
</div>
|
||||
<div v-show="!narrow || legendOpen" class="gm-keys">
|
||||
<div v-show="legendOpen" class="gm-keys">
|
||||
<span v-for="b in activeBands" :key="b.id" class="gm-key">
|
||||
<i class="gm-sw" :style="{ background: b.color }"></i>{{ t(b.labelKey) }}
|
||||
</span>
|
||||
</div>
|
||||
<!-- The tally sentence is still English prose, so it declares its own direction
|
||||
like the caveat below it. -->
|
||||
<div v-show="!narrow || legendOpen" class="gm-pinkey" v-if="pinTally.total">
|
||||
<div v-show="legendOpen" class="gm-pinkey" v-if="pinTally.total">
|
||||
<!-- Translated rather than pinned LTR. Pinning it left-aligned an English sentence
|
||||
inside the RTL panel and the second line ran off the left edge — "th a link".
|
||||
It is a COUNT, not doctrinal prose, so it belongs in the catalogue with the
|
||||
|
|
@ -2242,7 +2293,7 @@ useShadowStyles(
|
|||
<!-- The key IS the filter: a reader who has just understood what a colour means is
|
||||
exactly the reader who wants to see only that colour. Two controls would be one
|
||||
too many. -->
|
||||
<div v-show="!narrow || legendOpen" class="gm-keys gm-keys-btn">
|
||||
<div v-show="legendOpen" class="gm-keys gm-keys-btn">
|
||||
<button type="button" class="gm-key gm-kbtn" :class="{ on: pinFilter === 'both' }"
|
||||
@click="setPinFilter(pinFilter === 'both' ? 'all' : 'both')"
|
||||
:aria-pressed="pinFilter === 'both'">
|
||||
|
|
@ -2299,7 +2350,7 @@ useShadowStyles(
|
|||
<b>{{ fmt(pinTally.hnr) }}</b>
|
||||
</button>
|
||||
</div>
|
||||
<div v-if="pinFilter !== 'all' && (!narrow || legendOpen)" class="gm-filtered">
|
||||
<div v-if="pinFilter !== 'all' && legendOpen" class="gm-filtered">
|
||||
Showing only <b>{{ pinFilter === 'none' ? 'groups with nothing found'
|
||||
: pinFilter === 'some' ? 'groups with some resource'
|
||||
: pinFilter === 'hnr' ? 'groups that can hear the gospel but have no text Scripture in the pools checked'
|
||||
|
|
@ -2313,7 +2364,7 @@ useShadowStyles(
|
|||
<!-- The ONE translated line about the English below it. Rendered outside the LTR
|
||||
block so it reads in the reader's own direction, and only when the locale is
|
||||
not English — telling an English reader that the English is English is noise. -->
|
||||
<div v-show="!narrow || legendOpen" v-if="!isEnglish" class="gm-caveat gm-prose-note">
|
||||
<div v-show="legendOpen" v-if="!isEnglish" class="gm-caveat gm-prose-note">
|
||||
{{ t('gospel.prose.english') }}
|
||||
</div>
|
||||
<!-- ═══ BOTTOM LINE UP FRONT ═══════════════════════════════════════════════════════
|
||||
|
|
@ -2325,7 +2376,7 @@ useShadowStyles(
|
|||
the page. Folded, not deleted: the basis is one click away, it stays English by the
|
||||
standing decision on prose, so folding costs nothing to translate and removes 232
|
||||
words from first sight. -->
|
||||
<div v-show="!narrow || legendOpen" class="gm-caveat" dir="ltr">
|
||||
<div v-show="legendOpen" class="gm-caveat" dir="ltr">
|
||||
<b>{{ t('gospel.guide.dotVsCountry') }}</b>
|
||||
<br><b>{{ t('gospel.guide.noneFoundShort') }}</b>
|
||||
<br><b>{{ t('gospel.guide.tapCountry') }}</b>
|
||||
|
|
|
|||
|
|
@ -742,7 +742,7 @@
|
|||
"bundle": "gospel-resources",
|
||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"output": "dx-maps/gospel-resources/gospel-resources.js",
|
||||
"integrity": "sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK",
|
||||
"integrity": "sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP",
|
||||
"elements": [
|
||||
"gospel-resources-map"
|
||||
],
|
||||
|
|
@ -765,7 +765,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/charts/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -781,7 +781,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/data-tables/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -797,7 +797,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -813,7 +813,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/resources-list/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -829,7 +829,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||
<script src="../gospel-resources.js" integrity="sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK" crossorigin="anonymous"></script>
|
||||
<script src="../gospel-resources.js" integrity="sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -742,7 +742,7 @@
|
|||
"bundle": "gospel-resources",
|
||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"output": "dx-maps/gospel-resources/gospel-resources.js",
|
||||
"integrity": "sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK",
|
||||
"integrity": "sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP",
|
||||
"elements": [
|
||||
"gospel-resources-map"
|
||||
],
|
||||
|
|
@ -765,7 +765,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/charts/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -781,7 +781,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/data-tables/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -797,7 +797,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/gospel-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -813,7 +813,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/resources-list/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=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -829,7 +829,7 @@
|
|||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-dr1KyHZ1s+ot5QjWWZrVN972zBZw9Ad8IrcvLvTjme50GkZU/kUJqIeVaEQ7AhzK\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-Q+U6QnOArHlw2zKO9+1ORyLH1vKjFWjiACEehXFS+7lO8yaTujslwq0WzFejtujP\" crossorigin=\"anonymous\"></script>\n<!-- provider: \"maplibre\" is the default; change it to \"mapbox\" and fill tk to use Mapbox. -->\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"provider\":\"maplibre\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in a new issue