Publish doxa-maps bundles: 24 bundles, 57 leaves
The catalog was serving a tree many merges behind the source. Measured before this publish: 19 of 19 comparable leaves STALE by SRI hash, 0 current, and three bundles absent from the catalog entirely (prayer-walk-planner, regions-dashboard, upg-neighbor) while present in the build. After: 24 bundles, 57 leaves, every leaf's baked integrity matching the bundle it loads, every leaf script src resolving, and all 22 manifest bundles present on disk. Built tree verified settled before merge (builders=0, waiters=0, churn=0, quiet 465s) and scoped to app/doxa-maps only — no other team's subtree touched. KNOWN PRE-EXISTING, NOT INTRODUCED HERE: app/index.json references 12 <bundle>.iife.js paths that no build produces. Zero .iife.js files existed in the previous catalog commit and zero exist in the source tree, and the live site already 404s them today while the .js files beside them serve 200. That file is outside app/doxa-maps and is untouched by this publish.
This commit is contained in:
parent
22c0c1ab46
commit
b7fea73a70
126 changed files with 166026 additions and 7777 deletions
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <all-people-groups> custom element. -->
|
<!-- Bundle IIFE — registers the <all-people-groups> custom element. -->
|
||||||
<script src="../all-people-groups.js" integrity="sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz" crossorigin="anonymous"></script>
|
<script src="../all-people-groups.js" integrity="sha384-j2rnWAW0lVUG05WREAfkQZo0jtreSIebwV3nHCbUcXhAGzMfTESwA1PqTYy5M3QS" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
24
app/doxa-maps/assets/fonts/bebas-neue/LICENSE
Normal file
24
app/doxa-maps/assets/fonts/bebas-neue/LICENSE
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
Bebas Neue — SIL Open Font License, Version 1.1
|
||||||
|
Designer: Ryoichi Tsunekawa (Dharma Type). Distributed via Google Fonts.
|
||||||
|
Full text: https://openfontlicense.org/ (OFL-1.1)
|
||||||
|
|
||||||
|
WHY THIS FILE IS IN THIS REPO
|
||||||
|
DX-life's /regions pages set --font-family-heading to 'Bebas Neue'. Their own site does not
|
||||||
|
ship the file either — @nuxt/fonts downloads it at build and self-hosts it, which is why their
|
||||||
|
computed font-family reads "Bebas Neue", "Bebas Neue Fallback: ...". We cannot @font-face from
|
||||||
|
their origin: their font file is served without CORS headers, so a cross-origin face silently
|
||||||
|
fails and every heading fell back to a condensed system stack. That substitution was the ONLY
|
||||||
|
remaining difference between our regions dashboard and theirs (7 computed properties, all of
|
||||||
|
them this one font and its knock-on sizes).
|
||||||
|
So the font is vendored here, from Google Fonts, under the OFL that permits redistribution —
|
||||||
|
self-hosted, never a CDN, the same rule public/assets/vendor/tabulator/ follows.
|
||||||
|
Subsets and unicode-ranges are Google's own (css2 API, v16), reproduced verbatim in the
|
||||||
|
@font-face declared by library/composables/useDocumentFont.js.
|
||||||
|
|
||||||
|
NOTE ON THIS FILENAME — it is deliberately extensionless.
|
||||||
|
check:public-hygiene refuses *.md / *.markdown / *.txt anywhere in the served tree ("no docs in a
|
||||||
|
served folder", Driver rule 2026-09-16), and it is right to: prose does not belong in a public
|
||||||
|
mirror. But the OFL requires this licence to accompany the font files wherever they are
|
||||||
|
redistributed, and the font files DO ship — they are fetched by the @font-face at runtime. So the
|
||||||
|
licence travels with them under the conventional extensionless name, which satisfies the rule
|
||||||
|
without weakening it. Do not rename this to LICENSE.txt.
|
||||||
BIN
app/doxa-maps/assets/fonts/bebas-neue/bebas-neue-latin-ext.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/bebas-neue/bebas-neue-latin-ext.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/bebas-neue/bebas-neue-latin.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/bebas-neue/bebas-neue-latin.woff2
Normal file
Binary file not shown.
100
app/doxa-maps/assets/fonts/figtree/LICENSE
Normal file
100
app/doxa-maps/assets/fonts/figtree/LICENSE
Normal file
|
|
@ -0,0 +1,100 @@
|
||||||
|
Figtree — SIL Open Font License, Version 1.1
|
||||||
|
Designer: Erik D. Kennedy. Distributed via Google Fonts.
|
||||||
|
Vendored as the free stand-in for Brandon Grotesque (commercial), by Driver decision
|
||||||
|
2026-09-24. Chosen by MEASUREMENT, not by name: at 500/19.5312px Figtree renders
|
||||||
|
'FULL PROFILE' at 126px against Brandon's 128px on live doxa.life — the closest of 19
|
||||||
|
libre grotesques tested. See _probe-glyph-width.mjs.
|
||||||
|
|
||||||
|
Copyright 2022 The Figtree Project Authors (https://github.com/erikdkennedy/figtree)
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
http://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
BIN
app/doxa-maps/assets/fonts/figtree/figtree-500-latin-ext.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/figtree/figtree-500-latin-ext.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/figtree/figtree-500-latin.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/figtree/figtree-500-latin.woff2
Normal file
Binary file not shown.
93
app/doxa-maps/assets/fonts/noto-serif-devanagari/LICENSE
Normal file
93
app/doxa-maps/assets/fonts/noto-serif-devanagari/LICENSE
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
Copyright 2022 The Noto Project Authors (https://github.com/notofonts/devanagari)
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
https://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
Binary file not shown.
126
app/doxa-maps/assets/fonts/oswald/LICENSE
Normal file
126
app/doxa-maps/assets/fonts/oswald/LICENSE
Normal file
|
|
@ -0,0 +1,126 @@
|
||||||
|
Oswald — SIL Open Font License, Version 1.1
|
||||||
|
Copyright 2016 The Oswald Project Authors (https://github.com/googlefonts/OswaldFont)
|
||||||
|
Full text below, and at https://openfontlicense.org/ (OFL-1.1)
|
||||||
|
|
||||||
|
WHY THIS FILE IS IN THIS REPO
|
||||||
|
DX-life sets --font-family-cyrillic to 'Oswald' and base/_globals.scss:35-44 switches every
|
||||||
|
h1/h2/h3 to it under [lang="ru-RU"], with letter-spacing -0.02em. That switch exists because
|
||||||
|
BEBAS NEUE HAS NO CYRILLIC GLYPHS AT ALL — their heading face simply cannot render Russian, so
|
||||||
|
without the switch a Russian heading falls out of the family entirely. Ours did exactly that:
|
||||||
|
we ship a `ru` locale, we had neither the rule nor the font, so every Russian heading rendered
|
||||||
|
in whatever condensed system face the browser chose.
|
||||||
|
|
||||||
|
WHICH SUBSETS, AND WHY FOUR
|
||||||
|
cyrillic and cyrillic-ext are the point. latin and latin-ext are carried too because a Russian
|
||||||
|
heading routinely contains Latin characters — a country name, a figure, an ampersand — and a
|
||||||
|
face that covers only Cyrillic drops those glyphs back to the fallback MID-WORD, which looks
|
||||||
|
worse than not switching at all. Google's own unicode-range values are carried verbatim
|
||||||
|
(css2 v57), so the browser fetches only the subset a given heading needs.
|
||||||
|
|
||||||
|
oswald-400-cyrillic.woff2 6700 B
|
||||||
|
oswald-400-cyrillic-ext.woff2 7688 B
|
||||||
|
oswald-400-latin.woff2 12248 B
|
||||||
|
oswald-400-latin-ext.woff2 11624 B
|
||||||
|
|
||||||
|
Each verified to begin with the wOF2 magic (774f4632) after download, because a fetch that
|
||||||
|
silently returns an HTML error page also "succeeds" and a font that is really a 404 page fails
|
||||||
|
at render time with no network error to find later.
|
||||||
|
|
||||||
|
Weight 400 only: their --font-weight-regular is what h1/h2/h3 use, and nothing on the regions
|
||||||
|
surfaces asks Oswald for another weight.
|
||||||
|
|
||||||
|
────────────────────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
Copyright 2016 The Oswald Project Authors (https://github.com/googlefonts/OswaldFont)
|
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||||
|
This license is copied below, and is also available with a FAQ at:
|
||||||
|
https://scripts.sil.org/OFL
|
||||||
|
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||||
|
-----------------------------------------------------------
|
||||||
|
|
||||||
|
PREAMBLE
|
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||||
|
development of collaborative font projects, to support the font creation
|
||||||
|
efforts of academic and linguistic communities, and to provide a free and
|
||||||
|
open framework in which fonts may be shared and improved in partnership
|
||||||
|
with others.
|
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and
|
||||||
|
redistributed freely as long as they are not sold by themselves. The
|
||||||
|
fonts, including any derivative works, can be bundled, embedded,
|
||||||
|
redistributed and/or sold with any software provided that any reserved
|
||||||
|
names are not used by derivative works. The fonts and derivatives,
|
||||||
|
however, cannot be released under any other type of license. The
|
||||||
|
requirement for fonts to remain under this license does not apply
|
||||||
|
to any document created using the fonts or their derivatives.
|
||||||
|
|
||||||
|
DEFINITIONS
|
||||||
|
"Font Software" refers to the set of files released by the Copyright
|
||||||
|
Holder(s) under this license and clearly marked as such. This may
|
||||||
|
include source files, build scripts and documentation.
|
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the
|
||||||
|
copyright statement(s).
|
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as
|
||||||
|
distributed by the Copyright Holder(s).
|
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||||
|
or substituting -- in part or in whole -- any of the components of the
|
||||||
|
Original Version, by changing formats or by porting the Font Software to a
|
||||||
|
new environment.
|
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical
|
||||||
|
writer or other person who contributed to the Font Software.
|
||||||
|
|
||||||
|
PERMISSION & CONDITIONS
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||||
|
redistribute, and sell modified and unmodified copies of the Font
|
||||||
|
Software, subject to the following conditions:
|
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components,
|
||||||
|
in Original or Modified Versions, may be sold by itself.
|
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled,
|
||||||
|
redistributed and/or sold with any software, provided that each copy
|
||||||
|
contains the above copyright notice and this license. These can be
|
||||||
|
included either as stand-alone text files, human-readable headers or
|
||||||
|
in the appropriate machine-readable metadata fields within text or
|
||||||
|
binary files as long as those fields can be easily viewed by the user.
|
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font
|
||||||
|
Name(s) unless explicit written permission is granted by the corresponding
|
||||||
|
Copyright Holder. This restriction only applies to the primary font name as
|
||||||
|
presented to the users.
|
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||||
|
Software shall not be used to promote, endorse or advertise any
|
||||||
|
Modified Version, except to acknowledge the contribution(s) of the
|
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||||
|
permission.
|
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole,
|
||||||
|
must be distributed entirely under this license, and must not be
|
||||||
|
distributed under any other license. The requirement for fonts to
|
||||||
|
remain under this license does not apply to any document created
|
||||||
|
using the Font Software.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
This license becomes null and void if any of the above conditions are
|
||||||
|
not met.
|
||||||
|
|
||||||
|
DISCLAIMER
|
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||||
BIN
app/doxa-maps/assets/fonts/oswald/oswald-400-cyrillic-ext.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/oswald/oswald-400-cyrillic-ext.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/oswald/oswald-400-cyrillic.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/oswald/oswald-400-cyrillic.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/oswald/oswald-400-latin-ext.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/oswald/oswald-400-latin-ext.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/oswald/oswald-400-latin.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/oswald/oswald-400-latin.woff2
Normal file
Binary file not shown.
29
app/doxa-maps/assets/fonts/poppins/LICENSE
Normal file
29
app/doxa-maps/assets/fonts/poppins/LICENSE
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
Poppins — SIL Open Font License, Version 1.1
|
||||||
|
Designers: Indian Type Foundry, Jonny Pinhorn. Distributed via Google Fonts.
|
||||||
|
Full text: https://openfontlicense.org/ (OFL-1.1)
|
||||||
|
|
||||||
|
WHY THIS FILE IS IN THIS REPO
|
||||||
|
Poppins is DX-life's --font-family-base: the body face of every line of text on the pages the
|
||||||
|
regions plugin clones. Their own site self-hosts it via @nuxt/fonts; we could not use theirs, so
|
||||||
|
it is vendored here from Google Fonts under the OFL, which permits redistribution.
|
||||||
|
|
||||||
|
WHY IT WAS NEEDED — and why no CSS check caught it.
|
||||||
|
A computed-style diff of our region dashboard against live doxa.life reported 68 of 68 properties
|
||||||
|
IDENTICAL while our body text was rendering in a system fallback, because BOTH sides merely NAME
|
||||||
|
"Poppins" first in font-family and a first-family comparison therefore matched. The difference only
|
||||||
|
became visible against a glyph-width oracle: the same string at the same size measured 334.58px
|
||||||
|
here against 317px on their page — 5.5% wider, i.e. a different face.
|
||||||
|
document.fonts.check() is NOT a usable oracle for this: it returned true for families never
|
||||||
|
vendored (Oswald, Brandon Grotesque) and false for Bebas Neue on DX-life's own page.
|
||||||
|
See _qa-cycle/02-builder-cycle/_probe-glyph-width.mjs.
|
||||||
|
|
||||||
|
WHAT IS HERE, AND WHY ONLY THIS
|
||||||
|
Weights 400/500/600/700 only — the four the regions surface actually asks for (measured across
|
||||||
|
their _globals, _cards, _buttons and _filters SCSS: medium x10, regular x4, bold x2, plus the
|
||||||
|
600 in the prayer-coverage legend). Subsets latin + latin-ext only. 44 KB in total, with Google's
|
||||||
|
own unicode-ranges reproduced in the @font-face so the subset split behaves as it does on their
|
||||||
|
site. Extra weights and scripts are deliberately NOT vendored — bloat is a repo rule here.
|
||||||
|
|
||||||
|
FILENAME: extensionless on purpose. check:public-hygiene refuses *.txt in a served folder and is
|
||||||
|
right to, while the OFL requires this licence to accompany redistributed font files. Do not
|
||||||
|
rename this to LICENSE.txt.
|
||||||
BIN
app/doxa-maps/assets/fonts/poppins/poppins-400-latin-ext.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/poppins/poppins-400-latin-ext.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/poppins/poppins-400-latin.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/poppins/poppins-400-latin.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/poppins/poppins-500-latin-ext.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/poppins/poppins-500-latin-ext.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/poppins/poppins-500-latin.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/poppins/poppins-500-latin.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/poppins/poppins-600-latin-ext.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/poppins/poppins-600-latin-ext.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/poppins/poppins-600-latin.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/poppins/poppins-600-latin.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/poppins/poppins-700-latin-ext.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/poppins/poppins-700-latin-ext.woff2
Normal file
Binary file not shown.
BIN
app/doxa-maps/assets/fonts/poppins/poppins-700-latin.woff2
Normal file
BIN
app/doxa-maps/assets/fonts/poppins/poppins-700-latin.woff2
Normal file
Binary file not shown.
36
app/doxa-maps/assets/images/PROVENANCE
Normal file
36
app/doxa-maps/assets/images/PROVENANCE
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
worldmap.svg — provenance
|
||||||
|
=========================
|
||||||
|
|
||||||
|
WHAT IT IS
|
||||||
|
The faint world-map watermark DX-life paints behind its people-group list. Their
|
||||||
|
UupgsList sets it inline on the list root (app/components/public/UupgsList.vue:451):
|
||||||
|
background-image: url(/assets/images/worldmap.svg), background-size 60%,
|
||||||
|
background-position top, min-height 400px. Measured on their live
|
||||||
|
/regions/cameroon: HTTP 200, 62,740 bytes over the wire, computed background-size
|
||||||
|
60% / position 50% 0% / repeat no-repeat.
|
||||||
|
|
||||||
|
WHERE IT CAME FROM
|
||||||
|
Copied byte-for-byte from the DX-life repository:
|
||||||
|
doxa-life/public/assets/images/worldmap.svg
|
||||||
|
Same organisation, copied so the regions clone matches their page. 311 KB on disk;
|
||||||
|
small against this tree's other assets, which run 644 KB to 42 MB.
|
||||||
|
|
||||||
|
WHY THERE IS NO LICENCE FILE BESIDE IT
|
||||||
|
Checked, rather than assumed. A full-file scan for copyright, licence, attribution,
|
||||||
|
author, creator, <title>, <desc>, <metadata>, rdf:/dc: nodes and the usual stock-library
|
||||||
|
names (Natural Earth, simplemaps, amCharts, Freepik, Shutterstock, OSM, Mapbox) returns
|
||||||
|
NOTHING. The file is a plain vector — 394 <path> elements, three groups, no <image> and
|
||||||
|
no <text> — and its ids are design-tool export names (Group_345,
|
||||||
|
data-name="Group 345"), i.e. authored by their designer rather than downloaded with
|
||||||
|
embedded credits. DX-life keeps no licence file alongside public/assets/images/ either;
|
||||||
|
they treat that folder as their own artwork.
|
||||||
|
So this is internal reuse of a first-party asset, not redistribution of a third-party
|
||||||
|
one. Recorded here because the alternative was leaving the judgement implicit.
|
||||||
|
|
||||||
|
Contrast with the vendored typefaces, which ARE third-party and therefore carry their
|
||||||
|
licence in the folder that serves them: public/assets/fonts/bebas-neue/LICENSE and
|
||||||
|
.../poppins/LICENSE, both the SIL Open Font License 1.1, as the OFL requires.
|
||||||
|
|
||||||
|
NOTE ON THE FILENAME
|
||||||
|
Extensionless on purpose. check:public-hygiene refuses a *.txt in a served folder, and
|
||||||
|
the font LICENSE files set that precedent.
|
||||||
402
app/doxa-maps/assets/images/worldmap.svg
Normal file
402
app/doxa-maps/assets/images/worldmap.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 304 KiB |
1
app/doxa-maps/assets/tables/arclight-index.json
Normal file
1
app/doxa-maps/assets/tables/arclight-index.json
Normal file
File diff suppressed because one or more lines are too long
1
app/doxa-maps/assets/tables/arclight-share-urls.json
Normal file
1
app/doxa-maps/assets/tables/arclight-share-urls.json
Normal file
File diff suppressed because one or more lines are too long
3711
app/doxa-maps/assets/tables/country-gap.json
Normal file
3711
app/doxa-maps/assets/tables/country-gap.json
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
3800
app/doxa-maps/assets/tables/door43-index.json
Normal file
3800
app/doxa-maps/assets/tables/door43-index.json
Normal file
File diff suppressed because it is too large
Load diff
1
app/doxa-maps/assets/tables/ebible-index.json
Normal file
1
app/doxa-maps/assets/tables/ebible-index.json
Normal file
File diff suppressed because one or more lines are too long
34214
app/doxa-maps/assets/tables/fcbh-index.json
Normal file
34214
app/doxa-maps/assets/tables/fcbh-index.json
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
758
app/doxa-maps/assets/tables/godtools-index.json
Normal file
758
app/doxa-maps/assets/tables/godtools-index.json
Normal file
|
|
@ -0,0 +1,758 @@
|
||||||
|
{
|
||||||
|
"_note": "Cru gospel presentations (GodTools) on knowgod.com, keyed by ISO 639-3. godtools.org is a PARKED DOMAIN. knowgod.com is a client-rendered shell that answers 200 with identical bytes for any URL, so existence is proved from Cru's own API by intersecting a resource's latest-translations with a language's translations — never from the page.",
|
||||||
|
"source": "https://mobile-content-api.cru.org/languages + https://mobile-content-api.cru.org/resources",
|
||||||
|
"site": "https://knowgod.com",
|
||||||
|
"generated": "2026-09-24",
|
||||||
|
"tools_allowed": [
|
||||||
|
"kgp (Knowing God Personally)",
|
||||||
|
"fourlaws (Four Spiritual Laws)",
|
||||||
|
"honorrestored (Honor Restored)",
|
||||||
|
"fantasticfacts (Four Fantastic Facts)",
|
||||||
|
"satisfied (Satisfied?)",
|
||||||
|
"connectingwithgod (Connecting With God)"
|
||||||
|
],
|
||||||
|
"counts": {
|
||||||
|
"languages": 123,
|
||||||
|
"resources": 45,
|
||||||
|
"codes": 105,
|
||||||
|
"noIso": 0,
|
||||||
|
"noTool": 9
|
||||||
|
},
|
||||||
|
"codes": {
|
||||||
|
"afr": {
|
||||||
|
"u": "https://knowgod.com/af/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Afrikaans",
|
||||||
|
"locale": "af",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"sqi": {
|
||||||
|
"u": "https://knowgod.com/sq/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Albanian",
|
||||||
|
"locale": "sq",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"amh": {
|
||||||
|
"u": "https://knowgod.com/am/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Amharic",
|
||||||
|
"locale": "am",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ara": {
|
||||||
|
"u": "https://knowgod.com/ar/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Arabic",
|
||||||
|
"locale": "ar",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"hye": {
|
||||||
|
"u": "https://knowgod.com/hy/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Armenian",
|
||||||
|
"locale": "hy",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"aze": {
|
||||||
|
"u": "https://knowgod.com/az/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Azerbaijani",
|
||||||
|
"locale": "az",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"bam": {
|
||||||
|
"u": "https://knowgod.com/bm/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Bambara",
|
||||||
|
"locale": "bm",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"bem": {
|
||||||
|
"u": "https://knowgod.com/bem/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Bemba",
|
||||||
|
"locale": "bem",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"ben": {
|
||||||
|
"u": "https://knowgod.com/bn/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Bengali",
|
||||||
|
"locale": "bn",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"bis": {
|
||||||
|
"u": "https://knowgod.com/bi/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Bislama",
|
||||||
|
"locale": "bi",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"bos": {
|
||||||
|
"u": "https://knowgod.com/bs-BA/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Bosnian (Bosnia and Herzegovina)",
|
||||||
|
"locale": "bs-BA",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"bul": {
|
||||||
|
"u": "https://knowgod.com/bg/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Bulgarian",
|
||||||
|
"locale": "bg",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"mya": {
|
||||||
|
"u": "https://knowgod.com/my/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Burmese",
|
||||||
|
"locale": "my",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ceb": {
|
||||||
|
"u": "https://knowgod.com/ceb/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Cebuano",
|
||||||
|
"locale": "ceb",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"nya": {
|
||||||
|
"u": "https://knowgod.com/ny/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Chichewa",
|
||||||
|
"locale": "ny",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"zho": {
|
||||||
|
"u": "https://knowgod.com/zh-Hans/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Chinese Simplified",
|
||||||
|
"locale": "zh-Hans",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"hrv": {
|
||||||
|
"u": "https://knowgod.com/hr/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Croatian",
|
||||||
|
"locale": "hr",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ces": {
|
||||||
|
"u": "https://knowgod.com/cs/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Czech",
|
||||||
|
"locale": "cs",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"dan": {
|
||||||
|
"u": "https://knowgod.com/da/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Danish",
|
||||||
|
"locale": "da",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"nld": {
|
||||||
|
"u": "https://knowgod.com/nl/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Dutch",
|
||||||
|
"locale": "nl",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"dzo": {
|
||||||
|
"u": "https://knowgod.com/dz/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Dzongkha",
|
||||||
|
"locale": "dz",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"eng": {
|
||||||
|
"u": "https://knowgod.com/en/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "English",
|
||||||
|
"locale": "en",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"est": {
|
||||||
|
"u": "https://knowgod.com/et/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Estonian (Estonia)",
|
||||||
|
"locale": "et",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"fij": {
|
||||||
|
"u": "https://knowgod.com/fj/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Fijian",
|
||||||
|
"locale": "fj",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"fil": {
|
||||||
|
"u": "https://knowgod.com/fil/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Filipino",
|
||||||
|
"locale": "fil",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"fin": {
|
||||||
|
"u": "https://knowgod.com/fi/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Finnish",
|
||||||
|
"locale": "fi",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"fra": {
|
||||||
|
"u": "https://knowgod.com/fr/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "French",
|
||||||
|
"locale": "fr",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"kat": {
|
||||||
|
"u": "https://knowgod.com/ka/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Georgian",
|
||||||
|
"locale": "ka",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"deu": {
|
||||||
|
"u": "https://knowgod.com/de/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "German",
|
||||||
|
"locale": "de",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ell": {
|
||||||
|
"u": "https://knowgod.com/el/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Greek",
|
||||||
|
"locale": "el",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"guj": {
|
||||||
|
"u": "https://knowgod.com/gu/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Gujarati",
|
||||||
|
"locale": "gu",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"hat": {
|
||||||
|
"u": "https://knowgod.com/ht-HT/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Haitian Creole",
|
||||||
|
"locale": "ht-HT",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"hau": {
|
||||||
|
"u": "https://knowgod.com/ha/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Hausa",
|
||||||
|
"locale": "ha",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"heb": {
|
||||||
|
"u": "https://knowgod.com/he/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Hebrew",
|
||||||
|
"locale": "he",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"hin": {
|
||||||
|
"u": "https://knowgod.com/hi/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Hindi",
|
||||||
|
"locale": "hi",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"hmn": {
|
||||||
|
"u": "https://knowgod.com/hmn/honorrestored",
|
||||||
|
"n": "Honor Restored",
|
||||||
|
"ln": "Hmong",
|
||||||
|
"locale": "hmn",
|
||||||
|
"tool": "honorrestored"
|
||||||
|
},
|
||||||
|
"hun": {
|
||||||
|
"u": "https://knowgod.com/hu/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Hungarian",
|
||||||
|
"locale": "hu",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"isl": {
|
||||||
|
"u": "https://knowgod.com/is-IS/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Icelandic (Iceland)",
|
||||||
|
"locale": "is-IS",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ibo": {
|
||||||
|
"u": "https://knowgod.com/ig/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Igbo",
|
||||||
|
"locale": "ig",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"ind": {
|
||||||
|
"u": "https://knowgod.com/id/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Indonesian",
|
||||||
|
"locale": "id",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ita": {
|
||||||
|
"u": "https://knowgod.com/it/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Italian",
|
||||||
|
"locale": "it",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"jpn": {
|
||||||
|
"u": "https://knowgod.com/ja/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Japanese",
|
||||||
|
"locale": "ja",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"jav": {
|
||||||
|
"u": "https://knowgod.com/jv/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Javanese",
|
||||||
|
"locale": "jv",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"kan": {
|
||||||
|
"u": "https://knowgod.com/kn/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Kannada",
|
||||||
|
"locale": "kn",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"kaz": {
|
||||||
|
"u": "https://knowgod.com/kk/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Kazakh",
|
||||||
|
"locale": "kk",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"kha": {
|
||||||
|
"u": "https://knowgod.com/kha/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Khasi",
|
||||||
|
"locale": "kha",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"khm": {
|
||||||
|
"u": "https://knowgod.com/km-KH/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Khmer",
|
||||||
|
"locale": "km-KH",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"kik": {
|
||||||
|
"u": "https://knowgod.com/ki/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Kikuyu",
|
||||||
|
"locale": "ki",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"kin": {
|
||||||
|
"u": "https://knowgod.com/rw/honorrestored",
|
||||||
|
"n": "Honor Restored",
|
||||||
|
"ln": "Kinyarwanda",
|
||||||
|
"locale": "rw",
|
||||||
|
"tool": "honorrestored"
|
||||||
|
},
|
||||||
|
"run": {
|
||||||
|
"u": "https://knowgod.com/rn/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Kirundi",
|
||||||
|
"locale": "rn",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ktu": {
|
||||||
|
"u": "https://knowgod.com/ktu/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Kituba",
|
||||||
|
"locale": "ktu",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"kor": {
|
||||||
|
"u": "https://knowgod.com/ko/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Korean",
|
||||||
|
"locale": "ko",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ckb": {
|
||||||
|
"u": "https://knowgod.com/ckb/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Kurdish Sorani",
|
||||||
|
"locale": "ckb",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"kir": {
|
||||||
|
"u": "https://knowgod.com/ky/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Kyrgyz",
|
||||||
|
"locale": "ky",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"lao": {
|
||||||
|
"u": "https://knowgod.com/lo/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Lao",
|
||||||
|
"locale": "lo",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"lav": {
|
||||||
|
"u": "https://knowgod.com/lv/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Latvian",
|
||||||
|
"locale": "lv",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"lin": {
|
||||||
|
"u": "https://knowgod.com/ln/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Lingala",
|
||||||
|
"locale": "ln",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"lit": {
|
||||||
|
"u": "https://knowgod.com/lt-LT/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Lithuanian",
|
||||||
|
"locale": "lt-LT",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"lug": {
|
||||||
|
"u": "https://knowgod.com/lg/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Luganda",
|
||||||
|
"locale": "lg",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"mkd": {
|
||||||
|
"u": "https://knowgod.com/mk/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Macedonian",
|
||||||
|
"locale": "mk",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"mlg": {
|
||||||
|
"u": "https://knowgod.com/mg/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Malagasy",
|
||||||
|
"locale": "mg",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"msa": {
|
||||||
|
"u": "https://knowgod.com/ms/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Malay",
|
||||||
|
"locale": "ms",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"mal": {
|
||||||
|
"u": "https://knowgod.com/ml/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Malayalam",
|
||||||
|
"locale": "ml",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"mri": {
|
||||||
|
"u": "https://knowgod.com/mi/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Māori",
|
||||||
|
"locale": "mi",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"mar": {
|
||||||
|
"u": "https://knowgod.com/mr/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Marathi",
|
||||||
|
"locale": "mr",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"mon": {
|
||||||
|
"u": "https://knowgod.com/mn/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Mongolian",
|
||||||
|
"locale": "mn",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"nep": {
|
||||||
|
"u": "https://knowgod.com/ne/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Nepali",
|
||||||
|
"locale": "ne",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"nor": {
|
||||||
|
"u": "https://knowgod.com/no/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Norwegian",
|
||||||
|
"locale": "no",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ori": {
|
||||||
|
"u": "https://knowgod.com/or/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Oriya",
|
||||||
|
"locale": "or",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"orm": {
|
||||||
|
"u": "https://knowgod.com/om/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Oromo",
|
||||||
|
"locale": "om",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"pap": {
|
||||||
|
"u": "https://knowgod.com/pap/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Papiamentu",
|
||||||
|
"locale": "pap",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"pus": {
|
||||||
|
"u": "https://knowgod.com/ps/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Pashto",
|
||||||
|
"locale": "ps",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"fas": {
|
||||||
|
"u": "https://knowgod.com/fa/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Persian",
|
||||||
|
"locale": "fa",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"pol": {
|
||||||
|
"u": "https://knowgod.com/pl/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Polish",
|
||||||
|
"locale": "pl",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"por": {
|
||||||
|
"u": "https://knowgod.com/pt/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Portuguese",
|
||||||
|
"locale": "pt",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"pan": {
|
||||||
|
"u": "https://knowgod.com/pa/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Punjabi",
|
||||||
|
"locale": "pa",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ron": {
|
||||||
|
"u": "https://knowgod.com/ro/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Romanian",
|
||||||
|
"locale": "ro",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"rus": {
|
||||||
|
"u": "https://knowgod.com/ru/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Russian",
|
||||||
|
"locale": "ru",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"smo": {
|
||||||
|
"u": "https://knowgod.com/sm/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Samoan",
|
||||||
|
"locale": "sm",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"srp": {
|
||||||
|
"u": "https://knowgod.com/sr-ME/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Serbian (Montenegro)",
|
||||||
|
"locale": "sr-ME",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"sna": {
|
||||||
|
"u": "https://knowgod.com/sn/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Shona",
|
||||||
|
"locale": "sn",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"sid": {
|
||||||
|
"u": "https://knowgod.com/sid/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Sidama",
|
||||||
|
"locale": "sid",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"sin": {
|
||||||
|
"u": "https://knowgod.com/si/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Sinhala",
|
||||||
|
"locale": "si",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"slk": {
|
||||||
|
"u": "https://knowgod.com/sk/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Slovak",
|
||||||
|
"locale": "sk",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"slv": {
|
||||||
|
"u": "https://knowgod.com/sl/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Slovenian",
|
||||||
|
"locale": "sl",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"som": {
|
||||||
|
"u": "https://knowgod.com/so/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Somali",
|
||||||
|
"locale": "so",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"spa": {
|
||||||
|
"u": "https://knowgod.com/es/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Spanish",
|
||||||
|
"locale": "es",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"swa": {
|
||||||
|
"u": "https://knowgod.com/sw/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Swahili",
|
||||||
|
"locale": "sw",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"swe": {
|
||||||
|
"u": "https://knowgod.com/sv/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Swedish",
|
||||||
|
"locale": "sv",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"tgk": {
|
||||||
|
"u": "https://knowgod.com/tg/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Tajik",
|
||||||
|
"locale": "tg",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"tam": {
|
||||||
|
"u": "https://knowgod.com/ta/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Tamil",
|
||||||
|
"locale": "ta",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"tel": {
|
||||||
|
"u": "https://knowgod.com/te-IN/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Telugu (India)",
|
||||||
|
"locale": "te-IN",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"tet": {
|
||||||
|
"u": "https://knowgod.com/tet/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Tetun",
|
||||||
|
"locale": "tet",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"tha": {
|
||||||
|
"u": "https://knowgod.com/th/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Thai",
|
||||||
|
"locale": "th",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"bod": {
|
||||||
|
"u": "https://knowgod.com/bo/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Tibetan",
|
||||||
|
"locale": "bo",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"tpi": {
|
||||||
|
"u": "https://knowgod.com/tpi/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Tok Pisin",
|
||||||
|
"locale": "tpi",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"ton": {
|
||||||
|
"u": "https://knowgod.com/to/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Tongan",
|
||||||
|
"locale": "to",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"tur": {
|
||||||
|
"u": "https://knowgod.com/tr/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Turkish",
|
||||||
|
"locale": "tr",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"ukr": {
|
||||||
|
"u": "https://knowgod.com/uk/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Ukrainian",
|
||||||
|
"locale": "uk",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"urd": {
|
||||||
|
"u": "https://knowgod.com/ur/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Urdu",
|
||||||
|
"locale": "ur",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"uzb": {
|
||||||
|
"u": "https://knowgod.com/uz/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Uzbek",
|
||||||
|
"locale": "uz",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
},
|
||||||
|
"vie": {
|
||||||
|
"u": "https://knowgod.com/vi/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Vietnamese",
|
||||||
|
"locale": "vi",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"cym": {
|
||||||
|
"u": "https://knowgod.com/cy/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Welsh",
|
||||||
|
"locale": "cy",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"yor": {
|
||||||
|
"u": "https://knowgod.com/yo/kgp",
|
||||||
|
"n": "Knowing God Personally",
|
||||||
|
"ln": "Yoruba",
|
||||||
|
"locale": "yo",
|
||||||
|
"tool": "kgp"
|
||||||
|
},
|
||||||
|
"zul": {
|
||||||
|
"u": "https://knowgod.com/zu/fourlaws",
|
||||||
|
"n": "Four Spiritual Laws",
|
||||||
|
"ln": "Zulu",
|
||||||
|
"locale": "zu",
|
||||||
|
"tool": "fourlaws"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load diff
1
app/doxa-maps/assets/tables/gospel-gaps.json
Normal file
1
app/doxa-maps/assets/tables/gospel-gaps.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
1
app/doxa-maps/assets/tables/gospel-resource-links.json
Normal file
1
app/doxa-maps/assets/tables/gospel-resource-links.json
Normal file
File diff suppressed because one or more lines are too long
4506
app/doxa-maps/assets/tables/grn-index.json
Normal file
4506
app/doxa-maps/assets/tables/grn-index.json
Normal file
File diff suppressed because it is too large
Load diff
1029
app/doxa-maps/assets/tables/iso-macrolanguages.json
Normal file
1029
app/doxa-maps/assets/tables/iso-macrolanguages.json
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1
app/doxa-maps/assets/tables/people-group-pins.json
Normal file
1
app/doxa-maps/assets/tables/people-group-pins.json
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
10353
app/doxa-maps/assets/tables/pray-index.json
Normal file
10353
app/doxa-maps/assets/tables/pray-index.json
Normal file
File diff suppressed because it is too large
Load diff
7242
app/doxa-maps/assets/tables/scriptureearth-index.json
Normal file
7242
app/doxa-maps/assets/tables/scriptureearth-index.json
Normal file
File diff suppressed because it is too large
Load diff
1626
app/doxa-maps/assets/tables/translation-priority-by-country.json
Normal file
1626
app/doxa-maps/assets/tables/translation-priority-by-country.json
Normal file
File diff suppressed because it is too large
Load diff
41486
app/doxa-maps/assets/tables/translation-priority.json
Normal file
41486
app/doxa-maps/assets/tables/translation-priority.json
Normal file
File diff suppressed because it is too large
Load diff
851
app/doxa-maps/assets/tables/zume-index.json
Normal file
851
app/doxa-maps/assets/tables/zume-index.json
Normal file
|
|
@ -0,0 +1,851 @@
|
||||||
|
{
|
||||||
|
"source": "https://zume.training/sitemap.xml + https://zume.training/articles/zume-languages",
|
||||||
|
"fetched": "2026-09-24",
|
||||||
|
"locales": 62,
|
||||||
|
"live": 54,
|
||||||
|
"codes": 52,
|
||||||
|
"approxCodes": 3,
|
||||||
|
"byIso": {
|
||||||
|
"amh": {
|
||||||
|
"locale": "am",
|
||||||
|
"name": "Amharic",
|
||||||
|
"url": "https://zume.training/am"
|
||||||
|
},
|
||||||
|
"arb": {
|
||||||
|
"locale": "ar",
|
||||||
|
"name": "Arabic",
|
||||||
|
"url": "https://zume.training/ar"
|
||||||
|
},
|
||||||
|
"ajp": {
|
||||||
|
"locale": "ar_jo",
|
||||||
|
"name": "Arabic (Jordanian)",
|
||||||
|
"url": "https://zume.training/ar_jo"
|
||||||
|
},
|
||||||
|
"aeb": {
|
||||||
|
"locale": "ar_tn",
|
||||||
|
"name": "Arabic (Tunisian)",
|
||||||
|
"url": "https://zume.training/ar_tn"
|
||||||
|
},
|
||||||
|
"ase": {
|
||||||
|
"locale": "asl",
|
||||||
|
"name": "American Sign Language",
|
||||||
|
"url": "https://zume.training/asl"
|
||||||
|
},
|
||||||
|
"bho": {
|
||||||
|
"locale": "bho",
|
||||||
|
"name": "Bhojpuri",
|
||||||
|
"url": "https://zume.training/bho"
|
||||||
|
},
|
||||||
|
"ben": {
|
||||||
|
"locale": "bn",
|
||||||
|
"name": "Bengali (India)",
|
||||||
|
"url": "https://zume.training/bn"
|
||||||
|
},
|
||||||
|
"bos": {
|
||||||
|
"locale": "bs",
|
||||||
|
"name": "Bosnian",
|
||||||
|
"url": "https://zume.training/bs"
|
||||||
|
},
|
||||||
|
"deu": {
|
||||||
|
"locale": "de",
|
||||||
|
"name": "German",
|
||||||
|
"url": "https://zume.training/de"
|
||||||
|
},
|
||||||
|
"eng": {
|
||||||
|
"locale": "en",
|
||||||
|
"name": "English",
|
||||||
|
"url": "https://zume.training/en"
|
||||||
|
},
|
||||||
|
"spa": {
|
||||||
|
"locale": "es",
|
||||||
|
"name": "Spanish",
|
||||||
|
"url": "https://zume.training/es"
|
||||||
|
},
|
||||||
|
"pes": {
|
||||||
|
"locale": "fa",
|
||||||
|
"name": "Persian/Farsi",
|
||||||
|
"url": "https://zume.training/fa"
|
||||||
|
},
|
||||||
|
"fra": {
|
||||||
|
"locale": "fr",
|
||||||
|
"name": "French",
|
||||||
|
"url": "https://zume.training/fr"
|
||||||
|
},
|
||||||
|
"guj": {
|
||||||
|
"locale": "gu",
|
||||||
|
"name": "Gujarati",
|
||||||
|
"url": "https://zume.training/gu"
|
||||||
|
},
|
||||||
|
"hau": {
|
||||||
|
"locale": "ha",
|
||||||
|
"name": "Hausa",
|
||||||
|
"url": "https://zume.training/ha"
|
||||||
|
},
|
||||||
|
"hin": {
|
||||||
|
"locale": "hi",
|
||||||
|
"name": "Hindi",
|
||||||
|
"url": "https://zume.training/hi"
|
||||||
|
},
|
||||||
|
"hrv": {
|
||||||
|
"locale": "hr",
|
||||||
|
"name": "Croatian",
|
||||||
|
"url": "https://zume.training/hr"
|
||||||
|
},
|
||||||
|
"hye": {
|
||||||
|
"locale": "hy",
|
||||||
|
"name": "Armenian",
|
||||||
|
"url": "https://zume.training/hy"
|
||||||
|
},
|
||||||
|
"ind": {
|
||||||
|
"locale": "id",
|
||||||
|
"name": "Indonesian",
|
||||||
|
"url": "https://zume.training/id"
|
||||||
|
},
|
||||||
|
"ita": {
|
||||||
|
"locale": "it",
|
||||||
|
"name": "Italian",
|
||||||
|
"url": "https://zume.training/it"
|
||||||
|
},
|
||||||
|
"jpn": {
|
||||||
|
"locale": "ja",
|
||||||
|
"name": "Japanese",
|
||||||
|
"url": "https://zume.training/ja"
|
||||||
|
},
|
||||||
|
"kan": {
|
||||||
|
"locale": "kn",
|
||||||
|
"name": "Kannada",
|
||||||
|
"url": "https://zume.training/kn"
|
||||||
|
},
|
||||||
|
"kor": {
|
||||||
|
"locale": "ko",
|
||||||
|
"name": "Korean",
|
||||||
|
"url": "https://zume.training/ko"
|
||||||
|
},
|
||||||
|
"ckb": {
|
||||||
|
"locale": "ku",
|
||||||
|
"name": "Kurdish",
|
||||||
|
"url": "https://zume.training/ku"
|
||||||
|
},
|
||||||
|
"kir": {
|
||||||
|
"locale": "ky",
|
||||||
|
"name": "ky",
|
||||||
|
"url": "https://zume.training/ky"
|
||||||
|
},
|
||||||
|
"lao": {
|
||||||
|
"locale": "lo",
|
||||||
|
"name": "Lao",
|
||||||
|
"url": "https://zume.training/lo"
|
||||||
|
},
|
||||||
|
"mai": {
|
||||||
|
"locale": "mai",
|
||||||
|
"name": "Maithili",
|
||||||
|
"url": "https://zume.training/mai"
|
||||||
|
},
|
||||||
|
"mal": {
|
||||||
|
"locale": "ml",
|
||||||
|
"name": "Malayalam",
|
||||||
|
"url": "https://zume.training/ml"
|
||||||
|
},
|
||||||
|
"mar": {
|
||||||
|
"locale": "mr",
|
||||||
|
"name": "Marathi",
|
||||||
|
"url": "https://zume.training/mr"
|
||||||
|
},
|
||||||
|
"zlm": {
|
||||||
|
"locale": "ms",
|
||||||
|
"name": "Malay",
|
||||||
|
"url": "https://zume.training/ms"
|
||||||
|
},
|
||||||
|
"mya": {
|
||||||
|
"locale": "my",
|
||||||
|
"name": "Burmese",
|
||||||
|
"url": "https://zume.training/my"
|
||||||
|
},
|
||||||
|
"npi": {
|
||||||
|
"locale": "ne",
|
||||||
|
"name": "Nepali",
|
||||||
|
"url": "https://zume.training/ne"
|
||||||
|
},
|
||||||
|
"ory": {
|
||||||
|
"locale": "or",
|
||||||
|
"name": "Odia",
|
||||||
|
"url": "https://zume.training/or"
|
||||||
|
},
|
||||||
|
"pan": {
|
||||||
|
"locale": "pa",
|
||||||
|
"name": "Punjabi",
|
||||||
|
"url": "https://zume.training/pa"
|
||||||
|
},
|
||||||
|
"pnb": {
|
||||||
|
"locale": "pa_pk",
|
||||||
|
"name": "Punjabi (Western)",
|
||||||
|
"url": "https://zume.training/pa_pk"
|
||||||
|
},
|
||||||
|
"pol": {
|
||||||
|
"locale": "pl",
|
||||||
|
"name": "Polish",
|
||||||
|
"url": "https://zume.training/pl"
|
||||||
|
},
|
||||||
|
"prs": {
|
||||||
|
"locale": "prs",
|
||||||
|
"name": "prs",
|
||||||
|
"url": "https://zume.training/prs"
|
||||||
|
},
|
||||||
|
"por": {
|
||||||
|
"locale": "pt",
|
||||||
|
"name": "Portuguese",
|
||||||
|
"url": "https://zume.training/pt"
|
||||||
|
},
|
||||||
|
"ron": {
|
||||||
|
"locale": "ro",
|
||||||
|
"name": "Romanian",
|
||||||
|
"url": "https://zume.training/ro"
|
||||||
|
},
|
||||||
|
"rus": {
|
||||||
|
"locale": "ru",
|
||||||
|
"name": "Russian",
|
||||||
|
"url": "https://zume.training/ru"
|
||||||
|
},
|
||||||
|
"slv": {
|
||||||
|
"locale": "sl",
|
||||||
|
"name": "Slovenian",
|
||||||
|
"url": "https://zume.training/sl"
|
||||||
|
},
|
||||||
|
"som": {
|
||||||
|
"locale": "so",
|
||||||
|
"name": "Somali",
|
||||||
|
"url": "https://zume.training/so"
|
||||||
|
},
|
||||||
|
"swh": {
|
||||||
|
"locale": "swa",
|
||||||
|
"name": "Swahili",
|
||||||
|
"url": "https://zume.training/swa"
|
||||||
|
},
|
||||||
|
"tam": {
|
||||||
|
"locale": "ta",
|
||||||
|
"name": "Tamil",
|
||||||
|
"url": "https://zume.training/ta"
|
||||||
|
},
|
||||||
|
"tel": {
|
||||||
|
"locale": "te",
|
||||||
|
"name": "Telugu",
|
||||||
|
"url": "https://zume.training/te"
|
||||||
|
},
|
||||||
|
"tha": {
|
||||||
|
"locale": "th",
|
||||||
|
"name": "Thai",
|
||||||
|
"url": "https://zume.training/th"
|
||||||
|
},
|
||||||
|
"tur": {
|
||||||
|
"locale": "tr",
|
||||||
|
"name": "Turkish",
|
||||||
|
"url": "https://zume.training/tr"
|
||||||
|
},
|
||||||
|
"urd": {
|
||||||
|
"locale": "ur",
|
||||||
|
"name": "Urdu",
|
||||||
|
"url": "https://zume.training/ur"
|
||||||
|
},
|
||||||
|
"vie": {
|
||||||
|
"locale": "vi",
|
||||||
|
"name": "Vietnamese",
|
||||||
|
"url": "https://zume.training/vi"
|
||||||
|
},
|
||||||
|
"yor": {
|
||||||
|
"locale": "yo",
|
||||||
|
"name": "Yoruba",
|
||||||
|
"url": "https://zume.training/yo"
|
||||||
|
},
|
||||||
|
"cmn": {
|
||||||
|
"locale": "zhcn",
|
||||||
|
"name": "Chinese (Simplified)",
|
||||||
|
"url": "https://zume.training/zhcn"
|
||||||
|
},
|
||||||
|
"yue": {
|
||||||
|
"locale": "zhhk",
|
||||||
|
"name": "Cantonese (Traditional)",
|
||||||
|
"url": "https://zume.training/zhhk"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"approx": {
|
||||||
|
"pbu": {
|
||||||
|
"locale": "pus",
|
||||||
|
"lang": "Pashto",
|
||||||
|
"note": "Published in Pashto; the publisher does not say which variety, and this group speaks one of three",
|
||||||
|
"url": "https://zume.training/pus"
|
||||||
|
},
|
||||||
|
"pbt": {
|
||||||
|
"locale": "pus",
|
||||||
|
"lang": "Pashto",
|
||||||
|
"note": "Published in Pashto; the publisher does not say which variety, and this group speaks one of three",
|
||||||
|
"url": "https://zume.training/pus"
|
||||||
|
},
|
||||||
|
"pst": {
|
||||||
|
"locale": "pus",
|
||||||
|
"lang": "Pashto",
|
||||||
|
"note": "Published in Pashto; the publisher does not say which variety, and this group speaks one of three",
|
||||||
|
"url": "https://zume.training/pus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"locale": "am",
|
||||||
|
"name": "Amharic",
|
||||||
|
"native": "አማርኛ",
|
||||||
|
"iso": "amh",
|
||||||
|
"url": "https://zume.training/am",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ar",
|
||||||
|
"name": "Arabic",
|
||||||
|
"native": "العربية",
|
||||||
|
"iso": "arb",
|
||||||
|
"url": "https://zume.training/ar",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ar_jo",
|
||||||
|
"name": "Arabic (Jordanian)",
|
||||||
|
"native": "العربية - الأردن",
|
||||||
|
"iso": "ajp",
|
||||||
|
"url": "https://zume.training/ar_jo",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ar_ma",
|
||||||
|
"name": "Arabic (Moroccan)",
|
||||||
|
"native": "العربية - الأردن",
|
||||||
|
"iso": "ary",
|
||||||
|
"url": null,
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ar_tn",
|
||||||
|
"name": "Arabic (Tunisian)",
|
||||||
|
"native": "العربية التونسية",
|
||||||
|
"iso": "aeb",
|
||||||
|
"url": "https://zume.training/ar_tn",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "asl",
|
||||||
|
"name": "American Sign Language",
|
||||||
|
"native": "Sign Language",
|
||||||
|
"iso": "ase",
|
||||||
|
"url": "https://zume.training/asl",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "az",
|
||||||
|
"name": "Azerbaijani",
|
||||||
|
"native": null,
|
||||||
|
"iso": "azj",
|
||||||
|
"url": null,
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "bg",
|
||||||
|
"name": "Bulgarian",
|
||||||
|
"native": "български език",
|
||||||
|
"iso": "bul",
|
||||||
|
"url": null,
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "bho",
|
||||||
|
"name": "Bhojpuri",
|
||||||
|
"native": "भोजपुरी",
|
||||||
|
"iso": "bho",
|
||||||
|
"url": "https://zume.training/bho",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "bn",
|
||||||
|
"name": "Bengali (India)",
|
||||||
|
"native": "বাংলা",
|
||||||
|
"iso": "ben",
|
||||||
|
"url": "https://zume.training/bn",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "bs",
|
||||||
|
"name": "Bosnian",
|
||||||
|
"native": "Bosanski",
|
||||||
|
"iso": "bos",
|
||||||
|
"url": "https://zume.training/bs",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "de",
|
||||||
|
"name": "German",
|
||||||
|
"native": "Deutsch",
|
||||||
|
"iso": "deu",
|
||||||
|
"url": "https://zume.training/de",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "en",
|
||||||
|
"name": "English",
|
||||||
|
"native": null,
|
||||||
|
"iso": "eng",
|
||||||
|
"url": "https://zume.training/en",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "es",
|
||||||
|
"name": "Spanish",
|
||||||
|
"native": "Español",
|
||||||
|
"iso": "spa",
|
||||||
|
"url": "https://zume.training/es",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "fa",
|
||||||
|
"name": "Persian/Farsi",
|
||||||
|
"native": "فارسی",
|
||||||
|
"iso": "pes",
|
||||||
|
"url": "https://zume.training/fa",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "fo",
|
||||||
|
"name": "Faroese",
|
||||||
|
"native": null,
|
||||||
|
"iso": "fao",
|
||||||
|
"url": null,
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "fr",
|
||||||
|
"name": "French",
|
||||||
|
"native": "Français",
|
||||||
|
"iso": "fra",
|
||||||
|
"url": "https://zume.training/fr",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "gu",
|
||||||
|
"name": "Gujarati",
|
||||||
|
"native": "ગુજરાતી",
|
||||||
|
"iso": "guj",
|
||||||
|
"url": "https://zume.training/gu",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ha",
|
||||||
|
"name": "Hausa",
|
||||||
|
"native": null,
|
||||||
|
"iso": "hau",
|
||||||
|
"url": "https://zume.training/ha",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "hi",
|
||||||
|
"name": "Hindi",
|
||||||
|
"native": "हिन्दी",
|
||||||
|
"iso": "hin",
|
||||||
|
"url": "https://zume.training/hi",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "hr",
|
||||||
|
"name": "Croatian",
|
||||||
|
"native": "Hrvatski",
|
||||||
|
"iso": "hrv",
|
||||||
|
"url": "https://zume.training/hr",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "hy",
|
||||||
|
"name": "Armenian",
|
||||||
|
"native": null,
|
||||||
|
"iso": "hye",
|
||||||
|
"url": "https://zume.training/hy",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "id",
|
||||||
|
"name": "Indonesian",
|
||||||
|
"native": "Bahasa Indonesia",
|
||||||
|
"iso": "ind",
|
||||||
|
"url": "https://zume.training/id",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "it",
|
||||||
|
"name": "Italian",
|
||||||
|
"native": "Italiano",
|
||||||
|
"iso": "ita",
|
||||||
|
"url": "https://zume.training/it",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ja",
|
||||||
|
"name": "Japanese",
|
||||||
|
"native": "日本語",
|
||||||
|
"iso": "jpn",
|
||||||
|
"url": "https://zume.training/ja",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "kn",
|
||||||
|
"name": "Kannada",
|
||||||
|
"native": "ಕನ್ನಡ",
|
||||||
|
"iso": "kan",
|
||||||
|
"url": "https://zume.training/kn",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ko",
|
||||||
|
"name": "Korean",
|
||||||
|
"native": "한국어",
|
||||||
|
"iso": "kor",
|
||||||
|
"url": "https://zume.training/ko",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ku",
|
||||||
|
"name": "Kurdish",
|
||||||
|
"native": "کوردی",
|
||||||
|
"iso": "ckb",
|
||||||
|
"url": "https://zume.training/ku",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ky",
|
||||||
|
"name": null,
|
||||||
|
"native": null,
|
||||||
|
"iso": "kir",
|
||||||
|
"url": "https://zume.training/ky",
|
||||||
|
"listed": false,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "lo",
|
||||||
|
"name": "Lao",
|
||||||
|
"native": "ພາສາລາວ",
|
||||||
|
"iso": "lao",
|
||||||
|
"url": "https://zume.training/lo",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "lv",
|
||||||
|
"name": "Latvian",
|
||||||
|
"native": "Latviešu",
|
||||||
|
"iso": "lvs",
|
||||||
|
"url": null,
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "mai",
|
||||||
|
"name": "Maithili",
|
||||||
|
"native": "मैथिली",
|
||||||
|
"iso": "mai",
|
||||||
|
"url": "https://zume.training/mai",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ml",
|
||||||
|
"name": "Malayalam",
|
||||||
|
"native": "മലയാളം",
|
||||||
|
"iso": "mal",
|
||||||
|
"url": "https://zume.training/ml",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "mn",
|
||||||
|
"name": "Mongolian",
|
||||||
|
"native": "Монгол",
|
||||||
|
"iso": "khk",
|
||||||
|
"url": null,
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "mr",
|
||||||
|
"name": "Marathi",
|
||||||
|
"native": "मराठी",
|
||||||
|
"iso": "mar",
|
||||||
|
"url": "https://zume.training/mr",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ms",
|
||||||
|
"name": "Malay",
|
||||||
|
"native": "Bahasa Malaysia",
|
||||||
|
"iso": "zlm",
|
||||||
|
"url": "https://zume.training/ms",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "my",
|
||||||
|
"name": "Burmese",
|
||||||
|
"native": "မြန်မာဘာသာ",
|
||||||
|
"iso": "mya",
|
||||||
|
"url": "https://zume.training/my",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ne",
|
||||||
|
"name": "Nepali",
|
||||||
|
"native": "नेपाली",
|
||||||
|
"iso": "npi",
|
||||||
|
"url": "https://zume.training/ne",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "or",
|
||||||
|
"name": "Odia",
|
||||||
|
"native": "ଓଡ଼ିଆ",
|
||||||
|
"iso": "ory",
|
||||||
|
"url": "https://zume.training/or",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "pa",
|
||||||
|
"name": "Punjabi",
|
||||||
|
"native": "ਪੰਜਾਬੀ",
|
||||||
|
"iso": "pan",
|
||||||
|
"url": "https://zume.training/pa",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "pa_pk",
|
||||||
|
"name": "Punjabi (Western)",
|
||||||
|
"native": "ਪੰਜਾਬੀ (ਪੱਛਮੀ)",
|
||||||
|
"iso": "pnb",
|
||||||
|
"url": "https://zume.training/pa_pk",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "pl",
|
||||||
|
"name": "Polish",
|
||||||
|
"native": "Polski",
|
||||||
|
"iso": "pol",
|
||||||
|
"url": "https://zume.training/pl",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "prs",
|
||||||
|
"name": null,
|
||||||
|
"native": null,
|
||||||
|
"iso": "prs",
|
||||||
|
"url": "https://zume.training/prs",
|
||||||
|
"listed": false,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "pt",
|
||||||
|
"name": "Portuguese",
|
||||||
|
"native": "Português",
|
||||||
|
"iso": "por",
|
||||||
|
"url": "https://zume.training/pt",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "pus",
|
||||||
|
"name": null,
|
||||||
|
"native": null,
|
||||||
|
"iso": null,
|
||||||
|
"url": "https://zume.training/pus",
|
||||||
|
"listed": false,
|
||||||
|
"sitemap": true,
|
||||||
|
"why": "Pashto has three individual codes in the people-group data (pbu, pbt, pst) and the publisher gives nothing that selects one"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ro",
|
||||||
|
"name": "Romanian",
|
||||||
|
"native": "Română",
|
||||||
|
"iso": "ron",
|
||||||
|
"url": "https://zume.training/ro",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ru",
|
||||||
|
"name": "Russian",
|
||||||
|
"native": "Русский",
|
||||||
|
"iso": "rus",
|
||||||
|
"url": "https://zume.training/ru",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "sl",
|
||||||
|
"name": "Slovenian",
|
||||||
|
"native": "Slovenščina",
|
||||||
|
"iso": "slv",
|
||||||
|
"url": "https://zume.training/sl",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "so",
|
||||||
|
"name": "Somali",
|
||||||
|
"native": "Soomaali",
|
||||||
|
"iso": "som",
|
||||||
|
"url": "https://zume.training/so",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "swa",
|
||||||
|
"name": "Swahili",
|
||||||
|
"native": "Kiswahili",
|
||||||
|
"iso": "swh",
|
||||||
|
"url": "https://zume.training/swa",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ta",
|
||||||
|
"name": "Tamil",
|
||||||
|
"native": "தமிழ்",
|
||||||
|
"iso": "tam",
|
||||||
|
"url": "https://zume.training/ta",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "te",
|
||||||
|
"name": "Telugu",
|
||||||
|
"native": "తెలుగు",
|
||||||
|
"iso": "tel",
|
||||||
|
"url": "https://zume.training/te",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "th",
|
||||||
|
"name": "Thai",
|
||||||
|
"native": "ไทย",
|
||||||
|
"iso": "tha",
|
||||||
|
"url": "https://zume.training/th",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "tl",
|
||||||
|
"name": "Tagalog",
|
||||||
|
"native": null,
|
||||||
|
"iso": "tgl",
|
||||||
|
"url": null,
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "tr",
|
||||||
|
"name": "Turkish",
|
||||||
|
"native": "Türkçe",
|
||||||
|
"iso": "tur",
|
||||||
|
"url": "https://zume.training/tr",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "uk",
|
||||||
|
"name": "Ukrainian",
|
||||||
|
"native": "Україна",
|
||||||
|
"iso": "ukr",
|
||||||
|
"url": null,
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "ur",
|
||||||
|
"name": "Urdu",
|
||||||
|
"native": "اردو",
|
||||||
|
"iso": "urd",
|
||||||
|
"url": "https://zume.training/ur",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "vi",
|
||||||
|
"name": "Vietnamese",
|
||||||
|
"native": "Tiếng Việt",
|
||||||
|
"iso": "vie",
|
||||||
|
"url": "https://zume.training/vi",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "yo",
|
||||||
|
"name": "Yoruba",
|
||||||
|
"native": "Yorùbá",
|
||||||
|
"iso": "yor",
|
||||||
|
"url": "https://zume.training/yo",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "zhcn",
|
||||||
|
"name": "Chinese (Simplified)",
|
||||||
|
"native": "中文(简体)",
|
||||||
|
"iso": "cmn",
|
||||||
|
"url": "https://zume.training/zhcn",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "zhhk",
|
||||||
|
"name": "Cantonese (Traditional)",
|
||||||
|
"native": "中文(繁體,香港)",
|
||||||
|
"iso": "yue",
|
||||||
|
"url": "https://zume.training/zhhk",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"locale": "zhtw",
|
||||||
|
"name": "Chinese (Traditional)",
|
||||||
|
"native": "中文(繁體)",
|
||||||
|
"iso": "cmn",
|
||||||
|
"url": "https://zume.training/zhtw",
|
||||||
|
"listed": true,
|
||||||
|
"sitemap": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
|
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
|
||||||
<script src="../../big-picture.js" integrity="sha384-8flVGgOPQtYJZn9SXDNwljwlr0yVo6SqSR3KkDJK985xgL/HDQWQq4oJh/4ZMEyx" crossorigin="anonymous"></script>
|
<script src="../../big-picture.js" integrity="sha384-3I1mBK8C0GOMsEJyYTyztMqFnvn4EGg3F2KFhYSVie+o2YKplcSFcOxWI4L2+cmr" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
|
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
|
||||||
<script src="../../big-picture.js" integrity="sha384-8flVGgOPQtYJZn9SXDNwljwlr0yVo6SqSR3KkDJK985xgL/HDQWQq4oJh/4ZMEyx" crossorigin="anonymous"></script>
|
<script src="../../big-picture.js" integrity="sha384-3I1mBK8C0GOMsEJyYTyztMqFnvn4EGg3F2KFhYSVie+o2YKplcSFcOxWI4L2+cmr" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
|
<!-- Bundle IIFE — registers the <bp-big-picture> custom element. -->
|
||||||
<script src="../big-picture.js" integrity="sha384-8flVGgOPQtYJZn9SXDNwljwlr0yVo6SqSR3KkDJK985xgL/HDQWQq4oJh/4ZMEyx" crossorigin="anonymous"></script>
|
<script src="../big-picture.js" integrity="sha384-3I1mBK8C0GOMsEJyYTyztMqFnvn4EGg3F2KFhYSVie+o2YKplcSFcOxWI4L2+cmr" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
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>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
||||||
<script src="../cities-internet.js" integrity="sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R" crossorigin="anonymous"></script>
|
<script src="../cities-internet.js" integrity="sha384-UbT6S/JosIHXCB2ubdjB/4MisiPFz3cg7Qm+Zg3GDqSELJu6FK8bp+3bIErXkqMb" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
||||||
<script src="../cities-internet.js" integrity="sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R" crossorigin="anonymous"></script>
|
<script src="../cities-internet.js" integrity="sha384-UbT6S/JosIHXCB2ubdjB/4MisiPFz3cg7Qm+Zg3GDqSELJu6FK8bp+3bIErXkqMb" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
(function () {
|
(function () {
|
||||||
var slot = document.getElementById('slot');
|
var slot = document.getElementById('slot');
|
||||||
var status = document.getElementById('status');
|
var status = document.getElementById('status');
|
||||||
var BASE_CONFIG = {"profile":"connectivity-map","dataSource":"pray-tools","instanceId":"cities-internet-connectivity-map","assetsBase":"../../assets"};
|
var BASE_CONFIG = {"pinHint":false,"profile":"connectivity-map","dataSource":"pray-tools","instanceId":"cities-internet-connectivity-map","assetsBase":"../../assets"};
|
||||||
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
||||||
// the ladder below is skipped entirely and the element mounts immediately.
|
// the ladder below is skipped entirely and the element mounts immediately.
|
||||||
var TOKEN_FREE = false;
|
var TOKEN_FREE = false;
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
<!-- Bundle IIFE — registers the <cities-internet-map> custom element. -->
|
||||||
<script src="../cities-internet.js" integrity="sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R" crossorigin="anonymous"></script>
|
<script src="../cities-internet.js" integrity="sha384-UbT6S/JosIHXCB2ubdjB/4MisiPFz3cg7Qm+Zg3GDqSELJu6FK8bp+3bIErXkqMb" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
|
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
|
||||||
<script src="../country-posters.js" integrity="sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x" crossorigin="anonymous"></script>
|
<script src="../country-posters.js" integrity="sha384-Z875R7k5jbxkAhY0RmB9TIcg3kpW00VoFj+G5hMKNVN+OK+gdTYHXjnjjhVb1jDV" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
|
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
|
||||||
<script src="../country-posters.js" integrity="sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x" crossorigin="anonymous"></script>
|
<script src="../country-posters.js" integrity="sha384-Z875R7k5jbxkAhY0RmB9TIcg3kpW00VoFj+G5hMKNVN+OK+gdTYHXjnjjhVb1jDV" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
182
app/doxa-maps/country-posters/country-posters-mfe/index.html
Normal file
182
app/doxa-maps/country-posters/country-posters-mfe/index.html
Normal file
|
|
@ -0,0 +1,182 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>country-posters-mfe · country-posters</title>
|
||||||
|
<link rel="icon" href="data:,">
|
||||||
|
<!-- Mapbox peer loaded ONCE here; the map custom element mounts in this page and
|
||||||
|
uses window.mapboxgl directly (same realm → no cross-realm container errors). -->
|
||||||
|
<link rel="preconnect" href="https://api.mapbox.com" crossorigin />
|
||||||
|
<link href="https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css" rel="stylesheet" />
|
||||||
|
<link href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css" rel="stylesheet" />
|
||||||
|
<script src="https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js"></script>
|
||||||
|
<script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js"></script>
|
||||||
|
<style>
|
||||||
|
/* SCROLL-PAGE leaf (cap-4 nested-elements-mfe composite: a StackLayout scroll-stack). The DOCUMENT
|
||||||
|
owns the scroll — the element takes its content's NATURAL height and grows the page, so a reader
|
||||||
|
scrolls PAST one stacked section down to the next (BUG-DASHBOARD-CANT-SCROLL-DOWN). This is the
|
||||||
|
OPPOSITE of the fixed-viewport map/single-element leaf below: NO position:fixed, NO inset:0,
|
||||||
|
height:auto so the page can grow. See StackLayout.vue's "THE LAYOUT OWNS THE SCROLL" contract. */
|
||||||
|
html { height: 100%; }
|
||||||
|
html, body { margin: 0; background: #0a0e15; }
|
||||||
|
body { min-height: 100%; overflow-y: auto; }
|
||||||
|
/* MIN-HEIGHT IN VIEWPORT UNITS, NOT PERCENT (BUG-UPG100-NESTED-ELEMENTS-ZERO-HEIGHT).
|
||||||
|
min-height:100% here resolved against BODY's computed height, which is auto (body only has
|
||||||
|
min-height:100%, never a definite height) — and a percentage of auto collapses to 0. Any
|
||||||
|
element whose own chrome is position:absolute / height:100% (upg-100-mfe -> .pane-col -> .pane)
|
||||||
|
then measured 0 and the leaf looked empty. 100dvh depends on NO ancestor, keeps the page
|
||||||
|
growable (it is a MIN), and is correct on mobile with dynamic toolbars. */
|
||||||
|
#slot, country-posters-map { position: static; inset: auto; width: 100%; min-height: 100dvh; display: block; }
|
||||||
|
#status { position: fixed; inset: 0; z-index: 2; display: grid; place-items: center;
|
||||||
|
padding: 24px; text-align: center; color: #9aa7b8;
|
||||||
|
font: 13px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; }
|
||||||
|
#status.err { color: #f87171; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="slot"></div>
|
||||||
|
<div id="status">loading token…</div>
|
||||||
|
|
||||||
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
|
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
|
||||||
|
<script src="../country-posters.js" integrity="sha384-Z875R7k5jbxkAhY0RmB9TIcg3kpW00VoFj+G5hMKNVN+OK+gdTYHXjnjjhVb1jDV" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
// 1. prop — a token hardcoded into this page's profile-config (config.tk)
|
||||||
|
// 2. ?tk= URL param — token carried in the shared link
|
||||||
|
// 3. baked token — opt-in literal token inlined at build time (build-config.token)
|
||||||
|
// A token from rungs 1-3 is used DIRECTLY (no network). Otherwise a token
|
||||||
|
// *endpoint* is resolved and fetched:
|
||||||
|
// 4. window.MAP_TOKEN_URL override 5. configured TOKEN_SRC URL 6. same-origin /api/maps/token
|
||||||
|
// TOKEN_SRC is treated as DATA, never eval'd: the literal "window.MAP_TOKEN_URL"
|
||||||
|
// means "read that global"; anything else is used as a URL — so both a global
|
||||||
|
// name and a plain URL are safe (no SyntaxError footgun).
|
||||||
|
(function () {
|
||||||
|
var slot = document.getElementById('slot');
|
||||||
|
var status = document.getElementById('status');
|
||||||
|
var BASE_CONFIG = {"pinHint":false,"profile":"country-posters-mfe","dataSource":"pray-tools","instanceId":"country-posters-country-posters-mfe","assetsBase":"../../assets"};
|
||||||
|
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
||||||
|
// the ladder below is skipped entirely and the element mounts immediately.
|
||||||
|
var TOKEN_FREE = false;
|
||||||
|
var TOKEN_SRC = "window.MAP_TOKEN_URL";
|
||||||
|
var BAKED_TOKEN = "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ";
|
||||||
|
// Expose the baked token as window.MAP_TOKEN so a BAKED composite (a compiled element that mounts
|
||||||
|
// a map component directly, with no ProfileLoader/profile-config wrapper) still finds a token —
|
||||||
|
// useMapInstance falls back to window.MAP_TOKEN. No effect when BAKED_TOKEN is empty.
|
||||||
|
if (BAKED_TOKEN && typeof window !== 'undefined' && !window.MAP_TOKEN) { window.MAP_TOKEN = BAKED_TOKEN; }
|
||||||
|
var DEFAULT_TOKEN_URL = '/api/maps/token';
|
||||||
|
|
||||||
|
function fail(msg) { if (status) { status.className = 'err'; status.textContent = '⚠ ' + msg; } }
|
||||||
|
// No token anywhere on the ladder → ask ONCE, store locally, remount. No dead ends.
|
||||||
|
function askToken() {
|
||||||
|
if (!status) return;
|
||||||
|
status.className = 'err';
|
||||||
|
status.innerHTML = 'map needs a Mapbox token — ' +
|
||||||
|
'<input id="tkIn" type="password" placeholder="paste pk.… (stays in this browser)" ' +
|
||||||
|
'style="font:12px ui-monospace,monospace;padding:6px 8px;border-radius:6px;border:1px solid #223047;background:#0e1623;color:#eef2f7;width:min(320px,70vw)"> ' +
|
||||||
|
'<button id="tkGo" style="font:700 11px ui-monospace,monospace;padding:7px 12px;border-radius:999px;border:0;cursor:pointer;background:linear-gradient(90deg,#46d4ff,#b9a6f5);color:#0a0e15">use it</button>';
|
||||||
|
var go = document.getElementById('tkGo');
|
||||||
|
if (go) go.addEventListener('click', function () {
|
||||||
|
var v = (document.getElementById('tkIn').value || '').trim();
|
||||||
|
if (!v) return;
|
||||||
|
try { localStorage.setItem('MAPS_STAGING_TK', v); } catch (e) {}
|
||||||
|
mount(v);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/* ★ RELEASE THE LOAD BACKDROP WHEN THE ELEMENT MOUNTS (BUG-GOSPEL-MAP-BLACK-RECTANGLE).
|
||||||
|
html/body carry background:#0a0e15 so the light #status text (#9aa7b8) is readable while the
|
||||||
|
bundle loads. That backdrop is LOAD-STATE CHROME, but it outlived its moment: any gap the
|
||||||
|
mounted element does not cover shows it through, because every layer above body is
|
||||||
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
|
a per-frame or per-event handler. */
|
||||||
|
function done() {
|
||||||
|
if (status && status.parentNode) { status.parentNode.removeChild(status); }
|
||||||
|
document.documentElement.style.background = '#f3f3f1';
|
||||||
|
document.body.style.background = '#f3f3f1';
|
||||||
|
}
|
||||||
|
|
||||||
|
function mount(token) {
|
||||||
|
if (!token && !TOKEN_FREE) { return askToken(); }
|
||||||
|
try {
|
||||||
|
var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
|
||||||
|
var el = document.createElement("country-posters-map");
|
||||||
|
el.setAttribute('profile-config', JSON.stringify(cfg));
|
||||||
|
slot.innerHTML = '';
|
||||||
|
slot.appendChild(el);
|
||||||
|
done();
|
||||||
|
} catch (e) { fail(e && e.message ? e.message : String(e)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
function qp(name) {
|
||||||
|
try { return new URLSearchParams(location.search).get(name) || ''; }
|
||||||
|
catch (e) { return ''; }
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractToken(data) {
|
||||||
|
if (typeof data === 'string') return data.trim();
|
||||||
|
if (data && typeof data === 'object') return data.token || data.tk || data.accessToken || '';
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rungs 1-3b: an actual token → mount directly, no fetch.
|
||||||
|
// 2b = localStorage: the paste-once store shared with the staging pages
|
||||||
|
// (MAPS_STAGING_TK) — paste a token ONCE anywhere in the tree, every page uses it.
|
||||||
|
var stored = '';
|
||||||
|
try { stored = localStorage.getItem('MAPS_STAGING_TK') || ''; } catch (e) {}
|
||||||
|
var urlTk = qp('tk');
|
||||||
|
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
|
||||||
|
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
|
||||||
|
if (TOKEN_FREE) { return mount(''); }
|
||||||
|
if (directToken) { return mount(directToken); }
|
||||||
|
|
||||||
|
// Rungs 4-6: resolve the token ENDPOINT candidates and try them IN ORDER — the first
|
||||||
|
// one that answers with a token wins. Order: window.MAP_TOKEN_URL override → the
|
||||||
|
// configured TOKEN_SRC (an ABSOLUTE url, so a tree hosted on a CDN away from the API
|
||||||
|
// still finds it) → same-origin /api/maps/token (dev, or the site hosting both).
|
||||||
|
// A single hard-coded pick used to kill the page when its one url 404'd or was
|
||||||
|
// blocked by CORS; a shared link must work wherever the tree is hosted.
|
||||||
|
var candidates = [];
|
||||||
|
function addCandidate(u) { if (u && candidates.indexOf(u) === -1) candidates.push(u); }
|
||||||
|
addCandidate(window.MAP_TOKEN_URL);
|
||||||
|
addCandidate(TOKEN_SRC && TOKEN_SRC !== 'window.MAP_TOKEN_URL' ? TOKEN_SRC : '');
|
||||||
|
addCandidate(DEFAULT_TOKEN_URL);
|
||||||
|
|
||||||
|
function fetchToken(i, errors) {
|
||||||
|
if (i >= candidates.length) {
|
||||||
|
// Every endpoint failed: say which, and still offer the paste-once box (no dead ends).
|
||||||
|
askToken();
|
||||||
|
if (status) {
|
||||||
|
var d = document.createElement('div');
|
||||||
|
d.textContent = '⚠ Token fetch failed from ' + candidates.join(', ') + ' — set window.MAP_TOKEN_URL or pass ?tk=. (' + errors.join(' | ') + ')';
|
||||||
|
status.insertBefore(d, status.firstChild);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var url = candidates[i];
|
||||||
|
return fetch(url)
|
||||||
|
.then(function (r) {
|
||||||
|
if (!r.ok) throw new Error(url + ' → HTTP ' + r.status);
|
||||||
|
var ct = r.headers.get('content-type') || '';
|
||||||
|
return ct.indexOf('json') !== -1 ? r.json() : r.text();
|
||||||
|
})
|
||||||
|
.then(function (data) {
|
||||||
|
var tk = extractToken(data);
|
||||||
|
if (!tk) throw new Error(url + ' → no token in response');
|
||||||
|
mount(tk);
|
||||||
|
})
|
||||||
|
.catch(function (e) {
|
||||||
|
errors.push(e && e.message ? e.message : String(e));
|
||||||
|
return fetchToken(i + 1, errors);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
fetchToken(0, []);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
|
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
|
||||||
<script src="../../dashboard-plus-grid.js" integrity="sha384-6ELXkz9ZgiJwQquiaFbmRFJD4HadqyIh1AyGL5Qsioo++1NDqpRjh3JGFQSeqG6I" crossorigin="anonymous"></script>
|
<script src="../../dashboard-plus-grid.js" integrity="sha384-azKIIIa3yMfrc8/hxS9kf+J2zIQGcw/p/SxLoyil51AqGaH+MJad4mxPI9bycxiL" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -92,7 +92,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
|
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
|
||||||
<script src="../dashboard-plus-grid.js" integrity="sha384-6ELXkz9ZgiJwQquiaFbmRFJD4HadqyIh1AyGL5Qsioo++1NDqpRjh3JGFQSeqG6I" crossorigin="anonymous"></script>
|
<script src="../dashboard-plus-grid.js" integrity="sha384-azKIIIa3yMfrc8/hxS9kf+J2zIQGcw/p/SxLoyil51AqGaH+MJad4mxPI9bycxiL" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -92,7 +92,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
|
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
|
||||||
<script src="../demo-map.js" integrity="sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0" crossorigin="anonymous"></script>
|
<script src="../demo-map.js" integrity="sha384-1c8yrJm6kSIEfED30ZHPqjEr3oKC2cScuBz6jFh1UfcF6cHXeyYYiLCdh+qMxoaX" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
|
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
|
||||||
<script src="../../demo-map.js" integrity="sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0" crossorigin="anonymous"></script>
|
<script src="../../demo-map.js" integrity="sha384-1c8yrJm6kSIEfED30ZHPqjEr3oKC2cScuBz6jFh1UfcF6cHXeyYYiLCdh+qMxoaX" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -3,7 +3,7 @@
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8" />
|
<meta charset="UTF-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>DX-Maps SPA — Big Picture + every research map (app-shell) · doxa-maps-spa</title>
|
<title>Research Gallery — Big Picture + every research map (app-shell) · doxa-maps-spa</title>
|
||||||
<link rel="icon" href="data:,">
|
<link rel="icon" href="data:,">
|
||||||
<!-- NON-MAP leaf (app-shell / composite / grid / card / chart-table): NO map peer.
|
<!-- NON-MAP leaf (app-shell / composite / grid / card / chart-table): NO map peer.
|
||||||
This element draws no map tiles, so it needs no Mapbox/MapLibre engine and MUST NOT
|
This element draws no map tiles, so it needs no Mapbox/MapLibre engine and MUST NOT
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <doxa-maps-spa> custom element. -->
|
<!-- Bundle IIFE — registers the <doxa-maps-spa> custom element. -->
|
||||||
<script src="../../doxa-maps-spa.js" integrity="sha384-+EEbTInp5n62icNz1OKvWnQUGLqaO+z8srAG8HZVNDrxuQaiivFIUCXrpbzWLyMb" crossorigin="anonymous"></script>
|
<script src="../../doxa-maps-spa.js" integrity="sha384-j+2dQDsN+9KytIjgxVIRzcpXECccCuZhRT+CXc5B89vbo1IhaB8ogkO2Dc6KM1oy" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -42,7 +42,7 @@
|
||||||
(function () {
|
(function () {
|
||||||
var slot = document.getElementById('slot');
|
var slot = document.getElementById('slot');
|
||||||
var status = document.getElementById('status');
|
var status = document.getElementById('status');
|
||||||
var BASE_CONFIG = {"assetsBase":"../../../assets","profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"};
|
var BASE_CONFIG = {"assetsBase":"../../../assets","profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"Research Gallery"};
|
||||||
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
||||||
// the ladder below is skipped entirely and the element mounts immediately.
|
// the ladder below is skipped entirely and the element mounts immediately.
|
||||||
var TOKEN_FREE = true;
|
var TOKEN_FREE = true;
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <doxa-maps-spa> custom element. -->
|
<!-- Bundle IIFE — registers the <doxa-maps-spa> custom element. -->
|
||||||
<script src="../doxa-maps-spa.js" integrity="sha384-+EEbTInp5n62icNz1OKvWnQUGLqaO+z8srAG8HZVNDrxuQaiivFIUCXrpbzWLyMb" crossorigin="anonymous"></script>
|
<script src="../doxa-maps-spa.js" integrity="sha384-j+2dQDsN+9KytIjgxVIRzcpXECccCuZhRT+CXc5B89vbo1IhaB8ogkO2Dc6KM1oy" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <doxa-research-map> custom element. -->
|
<!-- Bundle IIFE — registers the <doxa-research-map> custom element. -->
|
||||||
<script src="../doxa-research-map.js" integrity="sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48" crossorigin="anonymous"></script>
|
<script src="../doxa-research-map.js" integrity="sha384-5E85ld1dX83U/sZ0feFMIW0Z+OQ6ZWcxirGRQyNeWegDShbqld62C5FoZbMwpP0m" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
169
app/doxa-maps/doxa-research-map/research-map/maplibre/index.html
Normal file
169
app/doxa-maps/doxa-research-map/research-map/maplibre/index.html
Normal file
|
|
@ -0,0 +1,169 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Research map — MapLibre (token-free, no search bar) · doxa-research-map</title>
|
||||||
|
<link rel="icon" href="data:,">
|
||||||
|
<!-- MapLibre peer (token-free engine) loaded ONCE here; the custom element
|
||||||
|
uses window.maplibregl directly (same versions as @map/composables/useMapInstance). -->
|
||||||
|
<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin />
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.css" rel="stylesheet" />
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/maplibre-gl@5/dist/maplibre-gl.js"></script>
|
||||||
|
<style>
|
||||||
|
/* BARE full-page map — no chrome. The custom element IS the page, so the
|
||||||
|
browser URL shares the map itself. */
|
||||||
|
html, body { height: 100%; margin: 0; background: #0a0e15; }
|
||||||
|
#slot, doxa-research-map { position: fixed; inset: 0; width: 100%; height: 100%; display: block; }
|
||||||
|
#status { position: fixed; inset: 0; z-index: 2; display: grid; place-items: center;
|
||||||
|
padding: 24px; text-align: center; color: #9aa7b8;
|
||||||
|
font: 13px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; }
|
||||||
|
#status.err { color: #f87171; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="slot"></div>
|
||||||
|
<div id="status">loading…</div>
|
||||||
|
|
||||||
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
|
<!-- Bundle IIFE — registers the <doxa-research-map> custom element. -->
|
||||||
|
<script src="../../doxa-research-map.js" integrity="sha384-5E85ld1dX83U/sZ0feFMIW0Z+OQ6ZWcxirGRQyNeWegDShbqld62C5FoZbMwpP0m" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
// 1. prop — a token hardcoded into this page's profile-config (config.tk)
|
||||||
|
// 2. ?tk= URL param — token carried in the shared link
|
||||||
|
// 3. baked token — opt-in literal token inlined at build time (build-config.token)
|
||||||
|
// A token from rungs 1-3 is used DIRECTLY (no network). Otherwise a token
|
||||||
|
// *endpoint* is resolved and fetched:
|
||||||
|
// 4. window.MAP_TOKEN_URL override 5. configured TOKEN_SRC URL 6. same-origin /api/maps/token
|
||||||
|
// TOKEN_SRC is treated as DATA, never eval'd: the literal "window.MAP_TOKEN_URL"
|
||||||
|
// means "read that global"; anything else is used as a URL — so both a global
|
||||||
|
// name and a plain URL are safe (no SyntaxError footgun).
|
||||||
|
(function () {
|
||||||
|
var slot = document.getElementById('slot');
|
||||||
|
var status = document.getElementById('status');
|
||||||
|
var BASE_CONFIG = {"assetsBase":"../../../assets","profile":"research-map","provider":"maplibre","instanceId":"research-map-maplibre"};
|
||||||
|
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
||||||
|
// the ladder below is skipped entirely and the element mounts immediately.
|
||||||
|
var TOKEN_FREE = true;
|
||||||
|
var TOKEN_SRC = "window.MAP_TOKEN_URL";
|
||||||
|
var BAKED_TOKEN = "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ";
|
||||||
|
// Expose the baked token as window.MAP_TOKEN so a BAKED composite (a compiled element that mounts
|
||||||
|
// a map component directly, with no ProfileLoader/profile-config wrapper) still finds a token —
|
||||||
|
// useMapInstance falls back to window.MAP_TOKEN. No effect when BAKED_TOKEN is empty.
|
||||||
|
if (BAKED_TOKEN && typeof window !== 'undefined' && !window.MAP_TOKEN) { window.MAP_TOKEN = BAKED_TOKEN; }
|
||||||
|
var DEFAULT_TOKEN_URL = '/api/maps/token';
|
||||||
|
|
||||||
|
function fail(msg) { if (status) { status.className = 'err'; status.textContent = '⚠ ' + msg; } }
|
||||||
|
// No token anywhere on the ladder → ask ONCE, store locally, remount. No dead ends.
|
||||||
|
function askToken() {
|
||||||
|
if (!status) return;
|
||||||
|
status.className = 'err';
|
||||||
|
status.innerHTML = 'map needs a Mapbox token — ' +
|
||||||
|
'<input id="tkIn" type="password" placeholder="paste pk.… (stays in this browser)" ' +
|
||||||
|
'style="font:12px ui-monospace,monospace;padding:6px 8px;border-radius:6px;border:1px solid #223047;background:#0e1623;color:#eef2f7;width:min(320px,70vw)"> ' +
|
||||||
|
'<button id="tkGo" style="font:700 11px ui-monospace,monospace;padding:7px 12px;border-radius:999px;border:0;cursor:pointer;background:linear-gradient(90deg,#46d4ff,#b9a6f5);color:#0a0e15">use it</button>';
|
||||||
|
var go = document.getElementById('tkGo');
|
||||||
|
if (go) go.addEventListener('click', function () {
|
||||||
|
var v = (document.getElementById('tkIn').value || '').trim();
|
||||||
|
if (!v) return;
|
||||||
|
try { localStorage.setItem('MAPS_STAGING_TK', v); } catch (e) {}
|
||||||
|
mount(v);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/* ★ RELEASE THE LOAD BACKDROP WHEN THE ELEMENT MOUNTS (BUG-GOSPEL-MAP-BLACK-RECTANGLE).
|
||||||
|
html/body carry background:#0a0e15 so the light #status text (#9aa7b8) is readable while the
|
||||||
|
bundle loads. That backdrop is LOAD-STATE CHROME, but it outlived its moment: any gap the
|
||||||
|
mounted element does not cover shows it through, because every layer above body is
|
||||||
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
|
a per-frame or per-event handler. */
|
||||||
|
function done() {
|
||||||
|
if (status && status.parentNode) { status.parentNode.removeChild(status); }
|
||||||
|
document.documentElement.style.background = '#f3f3f1';
|
||||||
|
document.body.style.background = '#f3f3f1';
|
||||||
|
}
|
||||||
|
|
||||||
|
function mount(token) {
|
||||||
|
if (!token && !TOKEN_FREE) { return askToken(); }
|
||||||
|
try {
|
||||||
|
var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
|
||||||
|
var el = document.createElement("doxa-research-map");
|
||||||
|
el.setAttribute('profile-config', JSON.stringify(cfg));
|
||||||
|
slot.innerHTML = '';
|
||||||
|
slot.appendChild(el);
|
||||||
|
done();
|
||||||
|
} catch (e) { fail(e && e.message ? e.message : String(e)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
function qp(name) {
|
||||||
|
try { return new URLSearchParams(location.search).get(name) || ''; }
|
||||||
|
catch (e) { return ''; }
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractToken(data) {
|
||||||
|
if (typeof data === 'string') return data.trim();
|
||||||
|
if (data && typeof data === 'object') return data.token || data.tk || data.accessToken || '';
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rungs 1-3b: an actual token → mount directly, no fetch.
|
||||||
|
// 2b = localStorage: the paste-once store shared with the staging pages
|
||||||
|
// (MAPS_STAGING_TK) — paste a token ONCE anywhere in the tree, every page uses it.
|
||||||
|
var stored = '';
|
||||||
|
try { stored = localStorage.getItem('MAPS_STAGING_TK') || ''; } catch (e) {}
|
||||||
|
var urlTk = qp('tk');
|
||||||
|
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
|
||||||
|
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
|
||||||
|
if (TOKEN_FREE) { return mount(''); }
|
||||||
|
if (directToken) { return mount(directToken); }
|
||||||
|
|
||||||
|
// Rungs 4-6: resolve the token ENDPOINT candidates and try them IN ORDER — the first
|
||||||
|
// one that answers with a token wins. Order: window.MAP_TOKEN_URL override → the
|
||||||
|
// configured TOKEN_SRC (an ABSOLUTE url, so a tree hosted on a CDN away from the API
|
||||||
|
// still finds it) → same-origin /api/maps/token (dev, or the site hosting both).
|
||||||
|
// A single hard-coded pick used to kill the page when its one url 404'd or was
|
||||||
|
// blocked by CORS; a shared link must work wherever the tree is hosted.
|
||||||
|
var candidates = [];
|
||||||
|
function addCandidate(u) { if (u && candidates.indexOf(u) === -1) candidates.push(u); }
|
||||||
|
addCandidate(window.MAP_TOKEN_URL);
|
||||||
|
addCandidate(TOKEN_SRC && TOKEN_SRC !== 'window.MAP_TOKEN_URL' ? TOKEN_SRC : '');
|
||||||
|
addCandidate(DEFAULT_TOKEN_URL);
|
||||||
|
|
||||||
|
function fetchToken(i, errors) {
|
||||||
|
if (i >= candidates.length) {
|
||||||
|
// Every endpoint failed: say which, and still offer the paste-once box (no dead ends).
|
||||||
|
askToken();
|
||||||
|
if (status) {
|
||||||
|
var d = document.createElement('div');
|
||||||
|
d.textContent = '⚠ Token fetch failed from ' + candidates.join(', ') + ' — set window.MAP_TOKEN_URL or pass ?tk=. (' + errors.join(' | ') + ')';
|
||||||
|
status.insertBefore(d, status.firstChild);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var url = candidates[i];
|
||||||
|
return fetch(url)
|
||||||
|
.then(function (r) {
|
||||||
|
if (!r.ok) throw new Error(url + ' → HTTP ' + r.status);
|
||||||
|
var ct = r.headers.get('content-type') || '';
|
||||||
|
return ct.indexOf('json') !== -1 ? r.json() : r.text();
|
||||||
|
})
|
||||||
|
.then(function (data) {
|
||||||
|
var tk = extractToken(data);
|
||||||
|
if (!tk) throw new Error(url + ' → no token in response');
|
||||||
|
mount(tk);
|
||||||
|
})
|
||||||
|
.catch(function (e) {
|
||||||
|
errors.push(e && e.message ? e.message : String(e));
|
||||||
|
return fetchToken(i + 1, errors);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
fetchToken(0, []);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
|
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
|
||||||
<script src="../../doxa-simple-map.js" integrity="sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X" crossorigin="anonymous"></script>
|
<script src="../../doxa-simple-map.js" integrity="sha384-rTSm6VQFqDXUXdPPFwhEFFblDLC4oFuoJ2Wtw8+iv/qAYC1ciiZlRSOsf+Ur4v6G" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
|
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
|
||||||
<script src="../../doxa-simple-map.js" integrity="sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X" crossorigin="anonymous"></script>
|
<script src="../../doxa-simple-map.js" integrity="sha384-rTSm6VQFqDXUXdPPFwhEFFblDLC4oFuoJ2Wtw8+iv/qAYC1ciiZlRSOsf+Ur4v6G" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
|
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
|
||||||
<script src="../doxa-simple-map.js" integrity="sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X" crossorigin="anonymous"></script>
|
<script src="../doxa-simple-map.js" integrity="sha384-rTSm6VQFqDXUXdPPFwhEFFblDLC4oFuoJ2Wtw8+iv/qAYC1ciiZlRSOsf+Ur4v6G" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
|
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
|
||||||
<script src="../../doxa-simple-map.js" integrity="sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X" crossorigin="anonymous"></script>
|
<script src="../../doxa-simple-map.js" integrity="sha384-rTSm6VQFqDXUXdPPFwhEFFblDLC4oFuoJ2Wtw8+iv/qAYC1ciiZlRSOsf+Ur4v6G" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||||
<script src="../gospel-resources.js" integrity="sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh" crossorigin="anonymous"></script>
|
<script src="../gospel-resources.js" integrity="sha384-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||||
<script src="../gospel-resources.js" integrity="sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh" crossorigin="anonymous"></script>
|
<script src="../gospel-resources.js" integrity="sha384-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
182
app/doxa-maps/gospel-resources/gospel-dashboard/index.html
Normal file
182
app/doxa-maps/gospel-resources/gospel-dashboard/index.html
Normal file
|
|
@ -0,0 +1,182 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>gospel-dashboard · gospel-resources</title>
|
||||||
|
<link rel="icon" href="data:,">
|
||||||
|
<!-- Mapbox peer loaded ONCE here; the map custom element mounts in this page and
|
||||||
|
uses window.mapboxgl directly (same realm → no cross-realm container errors). -->
|
||||||
|
<link rel="preconnect" href="https://api.mapbox.com" crossorigin />
|
||||||
|
<link href="https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css" rel="stylesheet" />
|
||||||
|
<link href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css" rel="stylesheet" />
|
||||||
|
<script src="https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js"></script>
|
||||||
|
<script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js"></script>
|
||||||
|
<style>
|
||||||
|
/* SCROLL-PAGE leaf (cap-4 nested-elements-mfe composite: a StackLayout scroll-stack). The DOCUMENT
|
||||||
|
owns the scroll — the element takes its content's NATURAL height and grows the page, so a reader
|
||||||
|
scrolls PAST one stacked section down to the next (BUG-DASHBOARD-CANT-SCROLL-DOWN). This is the
|
||||||
|
OPPOSITE of the fixed-viewport map/single-element leaf below: NO position:fixed, NO inset:0,
|
||||||
|
height:auto so the page can grow. See StackLayout.vue's "THE LAYOUT OWNS THE SCROLL" contract. */
|
||||||
|
html { height: 100%; }
|
||||||
|
html, body { margin: 0; background: #0a0e15; }
|
||||||
|
body { min-height: 100%; overflow-y: auto; }
|
||||||
|
/* MIN-HEIGHT IN VIEWPORT UNITS, NOT PERCENT (BUG-UPG100-NESTED-ELEMENTS-ZERO-HEIGHT).
|
||||||
|
min-height:100% here resolved against BODY's computed height, which is auto (body only has
|
||||||
|
min-height:100%, never a definite height) — and a percentage of auto collapses to 0. Any
|
||||||
|
element whose own chrome is position:absolute / height:100% (upg-100-mfe -> .pane-col -> .pane)
|
||||||
|
then measured 0 and the leaf looked empty. 100dvh depends on NO ancestor, keeps the page
|
||||||
|
growable (it is a MIN), and is correct on mobile with dynamic toolbars. */
|
||||||
|
#slot, gospel-resources-map { position: static; inset: auto; width: 100%; min-height: 100dvh; display: block; }
|
||||||
|
#status { position: fixed; inset: 0; z-index: 2; display: grid; place-items: center;
|
||||||
|
padding: 24px; text-align: center; color: #9aa7b8;
|
||||||
|
font: 13px/1.6 ui-monospace, SFMono-Regular, Menlo, monospace; }
|
||||||
|
#status.err { color: #f87171; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="slot"></div>
|
||||||
|
<div id="status">loading token…</div>
|
||||||
|
|
||||||
|
<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-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
// 1. prop — a token hardcoded into this page's profile-config (config.tk)
|
||||||
|
// 2. ?tk= URL param — token carried in the shared link
|
||||||
|
// 3. baked token — opt-in literal token inlined at build time (build-config.token)
|
||||||
|
// A token from rungs 1-3 is used DIRECTLY (no network). Otherwise a token
|
||||||
|
// *endpoint* is resolved and fetched:
|
||||||
|
// 4. window.MAP_TOKEN_URL override 5. configured TOKEN_SRC URL 6. same-origin /api/maps/token
|
||||||
|
// TOKEN_SRC is treated as DATA, never eval'd: the literal "window.MAP_TOKEN_URL"
|
||||||
|
// means "read that global"; anything else is used as a URL — so both a global
|
||||||
|
// name and a plain URL are safe (no SyntaxError footgun).
|
||||||
|
(function () {
|
||||||
|
var slot = document.getElementById('slot');
|
||||||
|
var status = document.getElementById('status');
|
||||||
|
var BASE_CONFIG = {"profile":"gospel-dashboard","dataSource":"pray-tools","instanceId":"gospel-resources-gospel-dashboard","assetsBase":"../../assets"};
|
||||||
|
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
||||||
|
// the ladder below is skipped entirely and the element mounts immediately.
|
||||||
|
var TOKEN_FREE = false;
|
||||||
|
var TOKEN_SRC = "window.MAP_TOKEN_URL";
|
||||||
|
var BAKED_TOKEN = "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ";
|
||||||
|
// Expose the baked token as window.MAP_TOKEN so a BAKED composite (a compiled element that mounts
|
||||||
|
// a map component directly, with no ProfileLoader/profile-config wrapper) still finds a token —
|
||||||
|
// useMapInstance falls back to window.MAP_TOKEN. No effect when BAKED_TOKEN is empty.
|
||||||
|
if (BAKED_TOKEN && typeof window !== 'undefined' && !window.MAP_TOKEN) { window.MAP_TOKEN = BAKED_TOKEN; }
|
||||||
|
var DEFAULT_TOKEN_URL = '/api/maps/token';
|
||||||
|
|
||||||
|
function fail(msg) { if (status) { status.className = 'err'; status.textContent = '⚠ ' + msg; } }
|
||||||
|
// No token anywhere on the ladder → ask ONCE, store locally, remount. No dead ends.
|
||||||
|
function askToken() {
|
||||||
|
if (!status) return;
|
||||||
|
status.className = 'err';
|
||||||
|
status.innerHTML = 'map needs a Mapbox token — ' +
|
||||||
|
'<input id="tkIn" type="password" placeholder="paste pk.… (stays in this browser)" ' +
|
||||||
|
'style="font:12px ui-monospace,monospace;padding:6px 8px;border-radius:6px;border:1px solid #223047;background:#0e1623;color:#eef2f7;width:min(320px,70vw)"> ' +
|
||||||
|
'<button id="tkGo" style="font:700 11px ui-monospace,monospace;padding:7px 12px;border-radius:999px;border:0;cursor:pointer;background:linear-gradient(90deg,#46d4ff,#b9a6f5);color:#0a0e15">use it</button>';
|
||||||
|
var go = document.getElementById('tkGo');
|
||||||
|
if (go) go.addEventListener('click', function () {
|
||||||
|
var v = (document.getElementById('tkIn').value || '').trim();
|
||||||
|
if (!v) return;
|
||||||
|
try { localStorage.setItem('MAPS_STAGING_TK', v); } catch (e) {}
|
||||||
|
mount(v);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/* ★ RELEASE THE LOAD BACKDROP WHEN THE ELEMENT MOUNTS (BUG-GOSPEL-MAP-BLACK-RECTANGLE).
|
||||||
|
html/body carry background:#0a0e15 so the light #status text (#9aa7b8) is readable while the
|
||||||
|
bundle loads. That backdrop is LOAD-STATE CHROME, but it outlived its moment: any gap the
|
||||||
|
mounted element does not cover shows it through, because every layer above body is
|
||||||
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
|
a per-frame or per-event handler. */
|
||||||
|
function done() {
|
||||||
|
if (status && status.parentNode) { status.parentNode.removeChild(status); }
|
||||||
|
document.documentElement.style.background = '#f3f3f1';
|
||||||
|
document.body.style.background = '#f3f3f1';
|
||||||
|
}
|
||||||
|
|
||||||
|
function mount(token) {
|
||||||
|
if (!token && !TOKEN_FREE) { return askToken(); }
|
||||||
|
try {
|
||||||
|
var cfg = token ? Object.assign({}, BASE_CONFIG, { tk: token }) : BASE_CONFIG;
|
||||||
|
var el = document.createElement("gospel-resources-map");
|
||||||
|
el.setAttribute('profile-config', JSON.stringify(cfg));
|
||||||
|
slot.innerHTML = '';
|
||||||
|
slot.appendChild(el);
|
||||||
|
done();
|
||||||
|
} catch (e) { fail(e && e.message ? e.message : String(e)); }
|
||||||
|
}
|
||||||
|
|
||||||
|
function qp(name) {
|
||||||
|
try { return new URLSearchParams(location.search).get(name) || ''; }
|
||||||
|
catch (e) { return ''; }
|
||||||
|
}
|
||||||
|
|
||||||
|
function extractToken(data) {
|
||||||
|
if (typeof data === 'string') return data.trim();
|
||||||
|
if (data && typeof data === 'object') return data.token || data.tk || data.accessToken || '';
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rungs 1-3b: an actual token → mount directly, no fetch.
|
||||||
|
// 2b = localStorage: the paste-once store shared with the staging pages
|
||||||
|
// (MAPS_STAGING_TK) — paste a token ONCE anywhere in the tree, every page uses it.
|
||||||
|
var stored = '';
|
||||||
|
try { stored = localStorage.getItem('MAPS_STAGING_TK') || ''; } catch (e) {}
|
||||||
|
var urlTk = qp('tk');
|
||||||
|
if (urlTk) { try { localStorage.setItem('MAPS_STAGING_TK', urlTk); } catch (e) {} }
|
||||||
|
var directToken = (BASE_CONFIG && BASE_CONFIG.tk) || urlTk || stored || BAKED_TOKEN;
|
||||||
|
if (TOKEN_FREE) { return mount(''); }
|
||||||
|
if (directToken) { return mount(directToken); }
|
||||||
|
|
||||||
|
// Rungs 4-6: resolve the token ENDPOINT candidates and try them IN ORDER — the first
|
||||||
|
// one that answers with a token wins. Order: window.MAP_TOKEN_URL override → the
|
||||||
|
// configured TOKEN_SRC (an ABSOLUTE url, so a tree hosted on a CDN away from the API
|
||||||
|
// still finds it) → same-origin /api/maps/token (dev, or the site hosting both).
|
||||||
|
// A single hard-coded pick used to kill the page when its one url 404'd or was
|
||||||
|
// blocked by CORS; a shared link must work wherever the tree is hosted.
|
||||||
|
var candidates = [];
|
||||||
|
function addCandidate(u) { if (u && candidates.indexOf(u) === -1) candidates.push(u); }
|
||||||
|
addCandidate(window.MAP_TOKEN_URL);
|
||||||
|
addCandidate(TOKEN_SRC && TOKEN_SRC !== 'window.MAP_TOKEN_URL' ? TOKEN_SRC : '');
|
||||||
|
addCandidate(DEFAULT_TOKEN_URL);
|
||||||
|
|
||||||
|
function fetchToken(i, errors) {
|
||||||
|
if (i >= candidates.length) {
|
||||||
|
// Every endpoint failed: say which, and still offer the paste-once box (no dead ends).
|
||||||
|
askToken();
|
||||||
|
if (status) {
|
||||||
|
var d = document.createElement('div');
|
||||||
|
d.textContent = '⚠ Token fetch failed from ' + candidates.join(', ') + ' — set window.MAP_TOKEN_URL or pass ?tk=. (' + errors.join(' | ') + ')';
|
||||||
|
status.insertBefore(d, status.firstChild);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var url = candidates[i];
|
||||||
|
return fetch(url)
|
||||||
|
.then(function (r) {
|
||||||
|
if (!r.ok) throw new Error(url + ' → HTTP ' + r.status);
|
||||||
|
var ct = r.headers.get('content-type') || '';
|
||||||
|
return ct.indexOf('json') !== -1 ? r.json() : r.text();
|
||||||
|
})
|
||||||
|
.then(function (data) {
|
||||||
|
var tk = extractToken(data);
|
||||||
|
if (!tk) throw new Error(url + ' → no token in response');
|
||||||
|
mount(tk);
|
||||||
|
})
|
||||||
|
.catch(function (e) {
|
||||||
|
errors.push(e && e.message ? e.message : String(e));
|
||||||
|
return fetchToken(i + 1, errors);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
fetchToken(0, []);
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
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>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||||
<script src="../gospel-resources.js" integrity="sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh" crossorigin="anonymous"></script>
|
<script src="../gospel-resources.js" integrity="sha384-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
<!-- Bundle IIFE — registers the <gospel-resources-map> custom element. -->
|
||||||
<script src="../gospel-resources.js" integrity="sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh" crossorigin="anonymous"></script>
|
<script src="../gospel-resources.js" integrity="sha384-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -45,7 +45,7 @@
|
||||||
(function () {
|
(function () {
|
||||||
var slot = document.getElementById('slot');
|
var slot = document.getElementById('slot');
|
||||||
var status = document.getElementById('status');
|
var status = document.getElementById('status');
|
||||||
var BASE_CONFIG = {"profile":"resources-map","dataSource":"pray-tools","instanceId":"gospel-resources-resources-map","assetsBase":"../../assets"};
|
var BASE_CONFIG = {"pinHint":false,"profile":"resources-map","dataSource":"pray-tools","instanceId":"gospel-resources-resources-map","assetsBase":"../../assets"};
|
||||||
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
||||||
// the ladder below is skipped entirely and the element mounts immediately.
|
// the ladder below is skipped entirely and the element mounts immediately.
|
||||||
var TOKEN_FREE = false;
|
var TOKEN_FREE = false;
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -2,14 +2,18 @@
|
||||||
"schema": "doxa-maps-manifest@1",
|
"schema": "doxa-maps-manifest@1",
|
||||||
"generatedFrom": "plugin-designs/*/*.vue",
|
"generatedFrom": "plugin-designs/*/*.vue",
|
||||||
"embedBase": ".",
|
"embedBase": ".",
|
||||||
"bundleCount": 19,
|
"bundleCount": 22,
|
||||||
"profileCount": 28,
|
"profileCount": 35,
|
||||||
|
"runtime": {
|
||||||
|
"apiBaseUrl": "https://pray.doxa.life",
|
||||||
|
"token": "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ"
|
||||||
|
},
|
||||||
"bundles": [
|
"bundles": [
|
||||||
{
|
{
|
||||||
"bundle": "all-people-groups",
|
"bundle": "all-people-groups",
|
||||||
"scriptUrl": "./all-people-groups/all-people-groups.js",
|
"scriptUrl": "./all-people-groups/all-people-groups.js",
|
||||||
"output": "doxa-maps/all-people-groups/all-people-groups.js",
|
"output": "doxa-maps/all-people-groups/all-people-groups.js",
|
||||||
"integrity": "sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz",
|
"integrity": "sha384-j2rnWAW0lVUG05WREAfkQZo0jtreSIebwV3nHCbUcXhAGzMfTESwA1PqTYy5M3QS",
|
||||||
"elements": [
|
"elements": [
|
||||||
"all-people-groups"
|
"all-people-groups"
|
||||||
],
|
],
|
||||||
|
|
@ -25,7 +29,7 @@
|
||||||
"scriptUrl": "./all-people-groups/all-people-groups.js",
|
"scriptUrl": "./all-people-groups/all-people-groups.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./all-people-groups/all-people-groups/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=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz\" crossorigin=\"anonymous\"></script>\n<all-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></all-people-groups>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-j2rnWAW0lVUG05WREAfkQZo0jtreSIebwV3nHCbUcXhAGzMfTESwA1PqTYy5M3QS\" crossorigin=\"anonymous\"></script>\n<all-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></all-people-groups>"
|
||||||
},
|
},
|
||||||
"bundle": "all-people-groups"
|
"bundle": "all-people-groups"
|
||||||
}
|
}
|
||||||
|
|
@ -35,12 +39,16 @@
|
||||||
"bundle": "big-picture",
|
"bundle": "big-picture",
|
||||||
"scriptUrl": "./big-picture/big-picture.js",
|
"scriptUrl": "./big-picture/big-picture.js",
|
||||||
"output": "doxa-maps/big-picture/big-picture.js",
|
"output": "doxa-maps/big-picture/big-picture.js",
|
||||||
"integrity": "sha384-8flVGgOPQtYJZn9SXDNwljwlr0yVo6SqSR3KkDJK985xgL/HDQWQq4oJh/4ZMEyx",
|
"integrity": "sha384-3I1mBK8C0GOMsEJyYTyztMqFnvn4EGg3F2KFhYSVie+o2YKplcSFcOxWI4L2+cmr",
|
||||||
"elements": [
|
"elements": [
|
||||||
"bp-big-picture",
|
"bp-big-picture",
|
||||||
"bp-research-header",
|
"bp-research-header",
|
||||||
"people-groups-grid"
|
"people-groups-grid"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"bp-research-header",
|
||||||
|
"people-groups-grid"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "big-picture",
|
"profile": "big-picture",
|
||||||
|
|
@ -53,7 +61,7 @@
|
||||||
"scriptUrl": "./big-picture/big-picture.js",
|
"scriptUrl": "./big-picture/big-picture.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./big-picture/big-picture/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=\"./big-picture/big-picture.js\" integrity=\"sha384-8flVGgOPQtYJZn9SXDNwljwlr0yVo6SqSR3KkDJK985xgL/HDQWQq4oJh/4ZMEyx\" crossorigin=\"anonymous\"></script>\n<bp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></bp-big-picture>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./big-picture/big-picture.js\" integrity=\"sha384-3I1mBK8C0GOMsEJyYTyztMqFnvn4EGg3F2KFhYSVie+o2YKplcSFcOxWI4L2+cmr\" crossorigin=\"anonymous\"></script>\n<bp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></bp-big-picture>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
|
|
@ -97,7 +105,7 @@
|
||||||
"bundle": "cities-internet",
|
"bundle": "cities-internet",
|
||||||
"scriptUrl": "./cities-internet/cities-internet.js",
|
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||||
"output": "doxa-maps/cities-internet/cities-internet.js",
|
"output": "doxa-maps/cities-internet/cities-internet.js",
|
||||||
"integrity": "sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R",
|
"integrity": "sha384-UbT6S/JosIHXCB2ubdjB/4MisiPFz3cg7Qm+Zg3GDqSELJu6FK8bp+3bIErXkqMb",
|
||||||
"elements": [
|
"elements": [
|
||||||
"cities-internet-map"
|
"cities-internet-map"
|
||||||
],
|
],
|
||||||
|
|
@ -113,7 +121,7 @@
|
||||||
"scriptUrl": "./cities-internet/cities-internet.js",
|
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./cities-internet/connectivity-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=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-UbT6S/JosIHXCB2ubdjB/4MisiPFz3cg7Qm+Zg3GDqSELJu6FK8bp+3bIErXkqMb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -127,7 +135,7 @@
|
||||||
"scriptUrl": "./cities-internet/cities-internet.js",
|
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./cities-internet/connectivity-map/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=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-UbT6S/JosIHXCB2ubdjB/4MisiPFz3cg7Qm+Zg3GDqSELJu6FK8bp+3bIErXkqMb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -141,7 +149,7 @@
|
||||||
"scriptUrl": "./cities-internet/cities-internet.js",
|
"scriptUrl": "./cities-internet/cities-internet.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./cities-internet/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=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-UbT6S/JosIHXCB2ubdjB/4MisiPFz3cg7Qm+Zg3GDqSELJu6FK8bp+3bIErXkqMb\" crossorigin=\"anonymous\"></script>\n<cities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></cities-internet-map>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -150,10 +158,14 @@
|
||||||
"bundle": "country-posters",
|
"bundle": "country-posters",
|
||||||
"scriptUrl": "./country-posters/country-posters.js",
|
"scriptUrl": "./country-posters/country-posters.js",
|
||||||
"output": "doxa-maps/country-posters/country-posters.js",
|
"output": "doxa-maps/country-posters/country-posters.js",
|
||||||
"integrity": "sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x",
|
"integrity": "sha384-Z875R7k5jbxkAhY0RmB9TIcg3kpW00VoFj+G5hMKNVN+OK+gdTYHXjnjjhVb1jDV",
|
||||||
"elements": [
|
"elements": [
|
||||||
"country-posters-map"
|
"country-posters-map"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"country-posters/country-poster-wall",
|
||||||
|
"country-posters/countries-map"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "countries-map",
|
"profile": "countries-map",
|
||||||
|
|
@ -166,7 +178,7 @@
|
||||||
"scriptUrl": "./country-posters/country-posters.js",
|
"scriptUrl": "./country-posters/country-posters.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./country-posters/countries-map/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=\"./country-posters/country-posters.js\" integrity=\"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Z875R7k5jbxkAhY0RmB9TIcg3kpW00VoFj+G5hMKNVN+OK+gdTYHXjnjjhVb1jDV\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -180,7 +192,21 @@
|
||||||
"scriptUrl": "./country-posters/country-posters.js",
|
"scriptUrl": "./country-posters/country-posters.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./country-posters/country-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=\"./country-posters/country-posters.js\" integrity=\"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-Z875R7k5jbxkAhY0RmB9TIcg3kpW00VoFj+G5hMKNVN+OK+gdTYHXjnjjhVb1jDV\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"profile": "country-posters-mfe",
|
||||||
|
"file": "country-posters-mfe.vue",
|
||||||
|
"description": "Country Posters as ONE two-tab element — the countries map and the printable",
|
||||||
|
"element": "country-posters-mfe",
|
||||||
|
"type": "nested-elements-mfe",
|
||||||
|
"isMap": true,
|
||||||
|
"iframeUrl": "./country-posters/country-posters-mfe/index.html",
|
||||||
|
"scriptUrl": "./country-posters/country-posters.js",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./country-posters/country-posters-mfe/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=\"./country-posters/country-posters.js\" integrity=\"sha384-Z875R7k5jbxkAhY0RmB9TIcg3kpW00VoFj+G5hMKNVN+OK+gdTYHXjnjjhVb1jDV\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-posters-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></country-posters-map>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -189,10 +215,14 @@
|
||||||
"bundle": "dashboard-plus-grid",
|
"bundle": "dashboard-plus-grid",
|
||||||
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
|
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
|
||||||
"output": "doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js",
|
"output": "doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js",
|
||||||
"integrity": "sha384-6ELXkz9ZgiJwQquiaFbmRFJD4HadqyIh1AyGL5Qsioo++1NDqpRjh3JGFQSeqG6I",
|
"integrity": "sha384-azKIIIa3yMfrc8/hxS9kf+J2zIQGcw/p/SxLoyil51AqGaH+MJad4mxPI9bycxiL",
|
||||||
"elements": [
|
"elements": [
|
||||||
"dashboard-plus-grid"
|
"dashboard-plus-grid"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"research-dashboard",
|
||||||
|
"people-groups-grid"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "dashboard-plus-grid",
|
"profile": "dashboard-plus-grid",
|
||||||
|
|
@ -205,7 +235,7 @@
|
||||||
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
|
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./dashboard-plus-grid/dashboard-plus-grid/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=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-6ELXkz9ZgiJwQquiaFbmRFJD4HadqyIh1AyGL5Qsioo++1NDqpRjh3JGFQSeqG6I\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-azKIIIa3yMfrc8/hxS9kf+J2zIQGcw/p/SxLoyil51AqGaH+MJad4mxPI9bycxiL\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
|
|
@ -229,7 +259,7 @@
|
||||||
"bundle": "demo-map",
|
"bundle": "demo-map",
|
||||||
"scriptUrl": "./demo-map/demo-map.js",
|
"scriptUrl": "./demo-map/demo-map.js",
|
||||||
"output": "doxa-maps/demo-map/demo-map.js",
|
"output": "doxa-maps/demo-map/demo-map.js",
|
||||||
"integrity": "sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0",
|
"integrity": "sha384-1c8yrJm6kSIEfED30ZHPqjEr3oKC2cScuBz6jFh1UfcF6cHXeyYYiLCdh+qMxoaX",
|
||||||
"elements": [
|
"elements": [
|
||||||
"demo-map"
|
"demo-map"
|
||||||
],
|
],
|
||||||
|
|
@ -245,7 +275,7 @@
|
||||||
"scriptUrl": "./demo-map/demo-map.js",
|
"scriptUrl": "./demo-map/demo-map.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./demo-map/demo-map/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=\"./demo-map/demo-map.js\" integrity=\"sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></demo-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-1c8yrJm6kSIEfED30ZHPqjEr3oKC2cScuBz6jFh1UfcF6cHXeyYYiLCdh+qMxoaX\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></demo-map>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
|
|
@ -272,10 +302,19 @@
|
||||||
"bundle": "doxa-maps-spa",
|
"bundle": "doxa-maps-spa",
|
||||||
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
|
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
|
||||||
"output": "doxa-maps/doxa-maps-spa/doxa-maps-spa.js",
|
"output": "doxa-maps/doxa-maps-spa/doxa-maps-spa.js",
|
||||||
"integrity": "sha384-+EEbTInp5n62icNz1OKvWnQUGLqaO+z8srAG8HZVNDrxuQaiivFIUCXrpbzWLyMb",
|
"integrity": "sha384-j+2dQDsN+9KytIjgxVIRzcpXECccCuZhRT+CXc5B89vbo1IhaB8ogkO2Dc6KM1oy",
|
||||||
"elements": [
|
"elements": [
|
||||||
"doxa-maps-spa"
|
"doxa-maps-spa"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"dashboard-plus-grid/dashboard-plus-grid",
|
||||||
|
"research-map-plus-grid/research-map-plus-grid",
|
||||||
|
"regions-dashboard/regions-mfe",
|
||||||
|
"my-upg-100-list/upg-100-mfe",
|
||||||
|
"doxa-simple-map/doxa-simple-map",
|
||||||
|
"cities-internet/connectivity-map",
|
||||||
|
"gospel-resources/resources-map"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "doxa-maps-spa",
|
"profile": "doxa-maps-spa",
|
||||||
|
|
@ -288,18 +327,18 @@
|
||||||
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
|
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./doxa-maps-spa/doxa-maps-spa/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=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-+EEbTInp5n62icNz1OKvWnQUGLqaO+z8srAG8HZVNDrxuQaiivFIUCXrpbzWLyMb\" crossorigin=\"anonymous\"></script>\n<doxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-maps-spa>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-j+2dQDsN+9KytIjgxVIRzcpXECccCuZhRT+CXc5B89vbo1IhaB8ogkO2Dc6KM1oy\" crossorigin=\"anonymous\"></script>\n<doxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-maps-spa>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
"id": "app",
|
"id": "app",
|
||||||
"title": "DX-Maps SPA — Big Picture + every research map (app-shell)",
|
"title": "Research Gallery — Big Picture + every research map (app-shell)",
|
||||||
"apiBaseUrl": "",
|
"apiBaseUrl": "",
|
||||||
"props": {
|
"props": {
|
||||||
"profile": "doxa-maps-spa",
|
"profile": "doxa-maps-spa",
|
||||||
"provider": "maplibre",
|
"provider": "maplibre",
|
||||||
"instanceId": "doxa-maps-spa-app",
|
"instanceId": "doxa-maps-spa-app",
|
||||||
"title": "DX-Maps"
|
"title": "Research Gallery"
|
||||||
},
|
},
|
||||||
"element": "doxa-maps-spa",
|
"element": "doxa-maps-spa",
|
||||||
"iframeUrl": "./doxa-maps-spa/doxa-maps-spa/app/index.html",
|
"iframeUrl": "./doxa-maps-spa/doxa-maps-spa/app/index.html",
|
||||||
|
|
@ -315,7 +354,7 @@
|
||||||
"bundle": "doxa-research-map",
|
"bundle": "doxa-research-map",
|
||||||
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
|
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
|
||||||
"output": "doxa-maps/doxa-research-map/doxa-research-map.js",
|
"output": "doxa-maps/doxa-research-map/doxa-research-map.js",
|
||||||
"integrity": "sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48",
|
"integrity": "sha384-5E85ld1dX83U/sZ0feFMIW0Z+OQ6ZWcxirGRQyNeWegDShbqld62C5FoZbMwpP0m",
|
||||||
"elements": [
|
"elements": [
|
||||||
"doxa-research-map"
|
"doxa-research-map"
|
||||||
],
|
],
|
||||||
|
|
@ -331,8 +370,25 @@
|
||||||
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
|
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./doxa-research-map/research-map/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=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48\" crossorigin=\"anonymous\"></script>\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-5E85ld1dX83U/sZ0feFMIW0Z+OQ6ZWcxirGRQyNeWegDShbqld62C5FoZbMwpP0m\" crossorigin=\"anonymous\"></script>\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-research-map>"
|
||||||
}
|
},
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"id": "maplibre",
|
||||||
|
"title": "Research map — MapLibre (token-free, no search bar)",
|
||||||
|
"apiBaseUrl": "",
|
||||||
|
"props": {
|
||||||
|
"profile": "research-map",
|
||||||
|
"provider": "maplibre",
|
||||||
|
"instanceId": "research-map-maplibre"
|
||||||
|
},
|
||||||
|
"element": "doxa-research-map",
|
||||||
|
"iframeUrl": "./doxa-research-map/research-map/maplibre/index.html",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./doxa-research-map/research-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
@ -340,7 +396,7 @@
|
||||||
"bundle": "doxa-simple-map",
|
"bundle": "doxa-simple-map",
|
||||||
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
|
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
|
||||||
"output": "doxa-maps/doxa-simple-map/doxa-simple-map.js",
|
"output": "doxa-maps/doxa-simple-map/doxa-simple-map.js",
|
||||||
"integrity": "sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X",
|
"integrity": "sha384-rTSm6VQFqDXUXdPPFwhEFFblDLC4oFuoJ2Wtw8+iv/qAYC1ciiZlRSOsf+Ur4v6G",
|
||||||
"elements": [
|
"elements": [
|
||||||
"doxa-map",
|
"doxa-map",
|
||||||
"doxa-simple-map"
|
"doxa-simple-map"
|
||||||
|
|
@ -357,7 +413,7 @@
|
||||||
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
|
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./doxa-simple-map/doxa-simple-map/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=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X\" crossorigin=\"anonymous\"></script>\n<doxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-rTSm6VQFqDXUXdPPFwhEFFblDLC4oFuoJ2Wtw8+iv/qAYC1ciiZlRSOsf+Ur4v6G\" crossorigin=\"anonymous\"></script>\n<doxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-map>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
|
|
@ -540,15 +596,19 @@
|
||||||
"bundle": "gospel-resources",
|
"bundle": "gospel-resources",
|
||||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||||
"output": "doxa-maps/gospel-resources/gospel-resources.js",
|
"output": "doxa-maps/gospel-resources/gospel-resources.js",
|
||||||
"integrity": "sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh",
|
"integrity": "sha384-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc",
|
||||||
"elements": [
|
"elements": [
|
||||||
"gospel-resources-map"
|
"gospel-resources-map"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"resources-map",
|
||||||
|
"data-tables"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "charts",
|
"profile": "charts",
|
||||||
"file": "charts.vue",
|
"file": "charts.vue",
|
||||||
"description": "The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every",
|
"description": "The gap measured by LANGUAGE (ISO 639-3) rather than by people group, because one translation serves every group that speaks it, so counting by group overstates how much work remains.",
|
||||||
"element": "gospel-resources-map",
|
"element": "gospel-resources-map",
|
||||||
"type": "single",
|
"type": "single",
|
||||||
"isMap": false,
|
"isMap": false,
|
||||||
|
|
@ -556,13 +616,13 @@
|
||||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||||
"embed": {
|
"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>",
|
"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-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"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-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"profile": "data-tables",
|
"profile": "data-tables",
|
||||||
"file": "data-tables.vue",
|
"file": "data-tables.vue",
|
||||||
"description": "Two validated tables: what resources exist per people group, and whether that access is keeping",
|
"description": "Eight tables covering both halves of one question: every gospel resource with its real URL and how much Scripture it is, and the 3,457 people groups where nothing was found with the pools searched recorded per row, plus bridge languages, city bridges, the deaf gap and access against population growth.",
|
||||||
"element": "gospel-resources-map",
|
"element": "gospel-resources-map",
|
||||||
"type": "single",
|
"type": "single",
|
||||||
"isMap": false,
|
"isMap": false,
|
||||||
|
|
@ -570,13 +630,27 @@
|
||||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||||
"embed": {
|
"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>",
|
"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-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"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-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"profile": "gospel-dashboard",
|
||||||
|
"file": "gospel-dashboard.vue",
|
||||||
|
"description": "The gospel map and its tables as one scrolling element: 12,379 people-group pins with the real Scripture, film and Bible-story links for each group's own language, above every resource with its URL and the 3,457 groups where nothing was found, exportable as CSV.",
|
||||||
|
"element": "gospel-resources-dashboard",
|
||||||
|
"type": "nested-elements-mfe",
|
||||||
|
"isMap": true,
|
||||||
|
"iframeUrl": "./gospel-resources/gospel-dashboard/index.html",
|
||||||
|
"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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"gospel-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"profile": "resources-list",
|
"profile": "resources-list",
|
||||||
"file": "resources-list.vue",
|
"file": "resources-list.vue",
|
||||||
"description": "Which DX people groups have scripture in their own language, and which have none. The zero-resource",
|
"description": "Which people groups have Scripture in their own language and which have none, zero-resource languages first, with every link the verification pass proved and Open Bible Stories labelled as stories rather than as Scripture.",
|
||||||
"element": "gospel-resources-map",
|
"element": "gospel-resources-map",
|
||||||
"type": "single",
|
"type": "single",
|
||||||
"isMap": false,
|
"isMap": false,
|
||||||
|
|
@ -584,13 +658,13 @@
|
||||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||||
"embed": {
|
"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>",
|
"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-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"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-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"profile": "resources-map",
|
"profile": "resources-map",
|
||||||
"file": "resources-map.vue",
|
"file": "resources-map.vue",
|
||||||
"description": "Every country shaded by how much of its unengaged population has NO gospel resource in their own",
|
"description": "12,379 people-group pins over a country choropleth: tap a pin for the Scripture, audio, film, Bible-story and training links that exist in that group's own language with real URLs, tap a country for every group in it, search by group, language or ISO 639-3 code, and filter to the groups where nothing was found.",
|
||||||
"element": "gospel-resources-map",
|
"element": "gospel-resources-map",
|
||||||
"type": "single",
|
"type": "single",
|
||||||
"isMap": true,
|
"isMap": true,
|
||||||
|
|
@ -598,7 +672,7 @@
|
||||||
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
"scriptUrl": "./gospel-resources/gospel-resources.js",
|
||||||
"embed": {
|
"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>",
|
"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": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"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-wL32rhGREV0Tqli0nJ+V528AojPEuQ1mYsYzBWpGrK71UojUAOCCK9+pQfZMiTMc\" crossorigin=\"anonymous\"></script>\n<gospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-resources-map>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -607,23 +681,27 @@
|
||||||
"bundle": "my-upg-100-list",
|
"bundle": "my-upg-100-list",
|
||||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||||
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
|
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
|
||||||
"integrity": "sha384-w4tvHDsioepB/cqH+nawfF+6gr9ZGYzPgY9bvJBeiZqNVDeZtKgkV+xnzKq52SGc",
|
"integrity": "sha384-AMIwL3sB+dFKS1OkVcGIX1lDbK1ZB5RyvjfhVNexuEe12HIjB1GToYbTaL2ZF5x1",
|
||||||
"elements": [
|
"elements": [
|
||||||
"my-upg-100-list-map"
|
"my-upg-100-list-map"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"my-upg-100-list/upg-100-list",
|
||||||
|
"my-upg-100-list/poster-wall"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "poster-wall",
|
"profile": "poster-wall",
|
||||||
"file": "poster-wall.vue",
|
"file": "poster-wall.vue",
|
||||||
"description": "A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that",
|
"description": "A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\"",
|
||||||
"element": "my-upg-100-list-map",
|
"element": "my-upg-100-list-map",
|
||||||
"type": "single",
|
"type": "single",
|
||||||
"isMap": true,
|
"isMap": false,
|
||||||
"iframeUrl": "./my-upg-100-list/poster-wall/index.html",
|
"iframeUrl": "./my-upg-100-list/poster-wall/index.html",
|
||||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||||
"embed": {
|
"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>",
|
"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-w4tvHDsioepB/cqH+nawfF+6gr9ZGYzPgY9bvJBeiZqNVDeZtKgkV+xnzKq52SGc\" 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-AMIwL3sB+dFKS1OkVcGIX1lDbK1ZB5RyvjfhVNexuEe12HIjB1GToYbTaL2ZF5x1\" 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>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -637,7 +715,7 @@
|
||||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||||
"embed": {
|
"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>",
|
"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": "<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-w4tvHDsioepB/cqH+nawfF+6gr9ZGYzPgY9bvJBeiZqNVDeZtKgkV+xnzKq52SGc\" 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": "<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-AMIwL3sB+dFKS1OkVcGIX1lDbK1ZB5RyvjfhVNexuEe12HIjB1GToYbTaL2ZF5x1\" 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>"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -651,7 +729,7 @@
|
||||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||||
"embed": {
|
"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>",
|
"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": "<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-w4tvHDsioepB/cqH+nawfF+6gr9ZGYzPgY9bvJBeiZqNVDeZtKgkV+xnzKq52SGc\" 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": "<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-AMIwL3sB+dFKS1OkVcGIX1lDbK1ZB5RyvjfhVNexuEe12HIjB1GToYbTaL2ZF5x1\" 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>"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
@ -660,7 +738,7 @@
|
||||||
"bundle": "people-groups-grid",
|
"bundle": "people-groups-grid",
|
||||||
"scriptUrl": "./people-groups-grid/people-groups-grid.js",
|
"scriptUrl": "./people-groups-grid/people-groups-grid.js",
|
||||||
"output": "doxa-maps/people-groups-grid/people-groups-grid.js",
|
"output": "doxa-maps/people-groups-grid/people-groups-grid.js",
|
||||||
"integrity": "sha384-k36TAAyarbqJzQyuFo8HEGrPPadH3DKCSecsGiwDLDhTjqBq4gBuzy4pNwFBuO/f",
|
"integrity": "sha384-8B2T2ckH+v8p2hEnkGruUg4Do5ZFsh31QSxYJYMj4/PN/ccHdgaIyK4dyW2GlUAR",
|
||||||
"elements": [
|
"elements": [
|
||||||
"people-groups-grid"
|
"people-groups-grid"
|
||||||
],
|
],
|
||||||
|
|
@ -676,7 +754,7 @@
|
||||||
"scriptUrl": "./people-groups-grid/people-groups-grid.js",
|
"scriptUrl": "./people-groups-grid/people-groups-grid.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./people-groups-grid/people-groups-grid/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=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-k36TAAyarbqJzQyuFo8HEGrPPadH3DKCSecsGiwDLDhTjqBq4gBuzy4pNwFBuO/f\" crossorigin=\"anonymous\"></script>\n<people-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></people-groups-grid>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-8B2T2ckH+v8p2hEnkGruUg4Do5ZFsh31QSxYJYMj4/PN/ccHdgaIyK4dyW2GlUAR\" crossorigin=\"anonymous\"></script>\n<people-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></people-groups-grid>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
|
|
@ -721,10 +799,22 @@
|
||||||
"bundle": "plugin-studio",
|
"bundle": "plugin-studio",
|
||||||
"scriptUrl": "./plugin-studio/plugin-studio.js",
|
"scriptUrl": "./plugin-studio/plugin-studio.js",
|
||||||
"output": "doxa-maps/plugin-studio/plugin-studio.js",
|
"output": "doxa-maps/plugin-studio/plugin-studio.js",
|
||||||
"integrity": "sha384-6Si+RjK5+xGytKBW4i/agiAGYXhaUXfjz5YWQRjhR5vG1RZc0oJGMRcseYTveHtK",
|
"integrity": "sha384-N70Sfwq4XTc7BHosJDT1r9/qUrzr1NZ5DiLb3QUYST8vY7+quBQzytqcpOs4Rp1E",
|
||||||
"elements": [
|
"elements": [
|
||||||
"plugin-studio"
|
"plugin-studio"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"dashboard-plus-grid",
|
||||||
|
"people-groups-grid",
|
||||||
|
"doxa-research-map",
|
||||||
|
"doxa-simple-map",
|
||||||
|
"cities-internet-map",
|
||||||
|
"gospel-resources-map",
|
||||||
|
"my-upg-100-list-map",
|
||||||
|
"doxa-vision-card",
|
||||||
|
"all-people-groups",
|
||||||
|
"research-dashboard"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "plugin-studio",
|
"profile": "plugin-studio",
|
||||||
|
|
@ -737,7 +827,7 @@
|
||||||
"scriptUrl": "./plugin-studio/plugin-studio.js",
|
"scriptUrl": "./plugin-studio/plugin-studio.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./plugin-studio/plugin-studio/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=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-6Si+RjK5+xGytKBW4i/agiAGYXhaUXfjz5YWQRjhR5vG1RZc0oJGMRcseYTveHtK\" crossorigin=\"anonymous\"></script>\n<plugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></plugin-studio>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-N70Sfwq4XTc7BHosJDT1r9/qUrzr1NZ5DiLb3QUYST8vY7+quBQzytqcpOs4Rp1E\" crossorigin=\"anonymous\"></script>\n<plugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></plugin-studio>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
|
|
@ -760,11 +850,93 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"bundle": "prayer-walk-planner",
|
||||||
|
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
|
||||||
|
"output": "doxa-maps/prayer-walk-planner/prayer-walk-planner.js",
|
||||||
|
"integrity": "sha384-VZxxlIqmR6mKdB1Dx6143LxEyI3POl9ks045yApFu4M4ZlLxsRH3+dCdEMpJb2Vw",
|
||||||
|
"elements": [
|
||||||
|
"prayer-walk-planner"
|
||||||
|
],
|
||||||
|
"profiles": [
|
||||||
|
{
|
||||||
|
"profile": "prayer-walk-planner",
|
||||||
|
"file": "prayer-walk-planner.vue",
|
||||||
|
"description": "A simple polygon-drawing tool for planning prayer-walking routes.",
|
||||||
|
"element": "prayer-walk-planner",
|
||||||
|
"type": "single",
|
||||||
|
"isMap": true,
|
||||||
|
"iframeUrl": "./prayer-walk-planner/prayer-walk-planner/index.html",
|
||||||
|
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./prayer-walk-planner/prayer-walk-planner/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=\"./prayer-walk-planner/prayer-walk-planner.js\" integrity=\"sha384-VZxxlIqmR6mKdB1Dx6143LxEyI3POl9ks045yApFu4M4ZlLxsRH3+dCdEMpJb2Vw\" crossorigin=\"anonymous\"></script>\n<prayer-walk-planner profile-config='{\"profile\":\"prayer-walk-planner\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></prayer-walk-planner>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bundle": "regions-dashboard",
|
||||||
|
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||||
|
"output": "doxa-maps/regions-dashboard/regions-dashboard.js",
|
||||||
|
"integrity": "sha384-J7/Lm/F0aWAY+6gkS1aSgJWfhMA5cMeFMDYA3oF4izUWBZvsRilrXKptNFI6hhWC",
|
||||||
|
"elements": [
|
||||||
|
"regions-dashboard"
|
||||||
|
],
|
||||||
|
"composes": [
|
||||||
|
"regions-dashboard/regions-list",
|
||||||
|
"regions-dashboard/region-dashboards"
|
||||||
|
],
|
||||||
|
"profiles": [
|
||||||
|
{
|
||||||
|
"profile": "region-dashboards",
|
||||||
|
"file": "region-dashboards.vue",
|
||||||
|
"description": "The dashboard half of the Driver's 2-tab Regions element: given a region (or a",
|
||||||
|
"element": "regions-dashboard",
|
||||||
|
"type": "single",
|
||||||
|
"isMap": true,
|
||||||
|
"iframeUrl": "./regions-dashboard/region-dashboards/index.html",
|
||||||
|
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./regions-dashboard/region-dashboards/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=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-J7/Lm/F0aWAY+6gkS1aSgJWfhMA5cMeFMDYA3oF4izUWBZvsRilrXKptNFI6hhWC\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"region-dashboards\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"profile": "regions-list",
|
||||||
|
"file": "regions-list.vue",
|
||||||
|
"description": "A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into",
|
||||||
|
"element": "regions-dashboard",
|
||||||
|
"type": "single",
|
||||||
|
"isMap": true,
|
||||||
|
"iframeUrl": "./regions-dashboard/regions-list/index.html",
|
||||||
|
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./regions-dashboard/regions-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=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-J7/Lm/F0aWAY+6gkS1aSgJWfhMA5cMeFMDYA3oF4izUWBZvsRilrXKptNFI6hhWC\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"profile": "regions-mfe",
|
||||||
|
"file": "regions-mfe.vue",
|
||||||
|
"description": "The composite the Driver asked for: ONE element carrying the SELECT VIEW switcher",
|
||||||
|
"element": "regions-dashboard",
|
||||||
|
"type": "nested-elements-mfe",
|
||||||
|
"isMap": true,
|
||||||
|
"iframeUrl": "./regions-dashboard/regions-mfe/index.html",
|
||||||
|
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./regions-dashboard/regions-mfe/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=\"./regions-dashboard/regions-dashboard.js\" integrity=\"sha384-J7/Lm/F0aWAY+6gkS1aSgJWfhMA5cMeFMDYA3oF4izUWBZvsRilrXKptNFI6hhWC\" crossorigin=\"anonymous\"></script>\n<regions-dashboard profile-config='{\"profile\":\"regions-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></regions-dashboard>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"bundle": "research-dashboard",
|
"bundle": "research-dashboard",
|
||||||
"scriptUrl": "./research-dashboard/research-dashboard.js",
|
"scriptUrl": "./research-dashboard/research-dashboard.js",
|
||||||
"output": "doxa-maps/research-dashboard/research-dashboard.js",
|
"output": "doxa-maps/research-dashboard/research-dashboard.js",
|
||||||
"integrity": "sha384-nFN29CZPVcHMGL9/M1XwC5f21Q0DB6eTfO0/xrDMuSocA0RKDNCRbjKqLcA5685/",
|
"integrity": "sha384-UND4Uv/KbN6Iuhev2tHmJwHWlq/sb5lNpe9+WUDGfiblyClUxRifJtuXRP9UlwIH",
|
||||||
"elements": [
|
"elements": [
|
||||||
"research-dashboard-map"
|
"research-dashboard-map"
|
||||||
],
|
],
|
||||||
|
|
@ -780,7 +952,7 @@
|
||||||
"scriptUrl": "./research-dashboard/research-dashboard.js",
|
"scriptUrl": "./research-dashboard/research-dashboard.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./research-dashboard/research-dashboard/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=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-nFN29CZPVcHMGL9/M1XwC5f21Q0DB6eTfO0/xrDMuSocA0RKDNCRbjKqLcA5685/\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-UND4Uv/KbN6Iuhev2tHmJwHWlq/sb5lNpe9+WUDGfiblyClUxRifJtuXRP9UlwIH\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
|
||||||
},
|
},
|
||||||
"bundle": "research-dashboard"
|
"bundle": "research-dashboard"
|
||||||
}
|
}
|
||||||
|
|
@ -790,10 +962,14 @@
|
||||||
"bundle": "research-map-plus-grid",
|
"bundle": "research-map-plus-grid",
|
||||||
"scriptUrl": "./research-map-plus-grid/research-map-plus-grid.js",
|
"scriptUrl": "./research-map-plus-grid/research-map-plus-grid.js",
|
||||||
"output": "doxa-maps/research-map-plus-grid/research-map-plus-grid.js",
|
"output": "doxa-maps/research-map-plus-grid/research-map-plus-grid.js",
|
||||||
"integrity": "sha384-VRdIzhw18yB9fnTEfnd8/FWWN2gi2OGHI+MXPC1hF9moeCvQqx5pdBDmcHvN6+JR",
|
"integrity": "sha384-LQYR+uASPJFjo/VTpIpAVxUv+O5KrgBqfOFYOcOi0ZmIvtwcjWTZV4AjAr2ewc7Z",
|
||||||
"elements": [
|
"elements": [
|
||||||
"research-map-plus-grid"
|
"research-map-plus-grid"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"doxa-research-map",
|
||||||
|
"people-groups-grid"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "research-map-plus-grid",
|
"profile": "research-map-plus-grid",
|
||||||
|
|
@ -806,7 +982,7 @@
|
||||||
"scriptUrl": "./research-map-plus-grid/research-map-plus-grid.js",
|
"scriptUrl": "./research-map-plus-grid/research-map-plus-grid.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./research-map-plus-grid/research-map-plus-grid/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=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-VRdIzhw18yB9fnTEfnd8/FWWN2gi2OGHI+MXPC1hF9moeCvQqx5pdBDmcHvN6+JR\" crossorigin=\"anonymous\"></script>\n<research-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-map-plus-grid>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-LQYR+uASPJFjo/VTpIpAVxUv+O5KrgBqfOFYOcOi0ZmIvtwcjWTZV4AjAr2ewc7Z\" crossorigin=\"anonymous\"></script>\n<research-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-map-plus-grid>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
|
|
@ -830,10 +1006,14 @@
|
||||||
"bundle": "stack-demo",
|
"bundle": "stack-demo",
|
||||||
"scriptUrl": "./stack-demo/stack-demo.js",
|
"scriptUrl": "./stack-demo/stack-demo.js",
|
||||||
"output": "doxa-maps/stack-demo/stack-demo.js",
|
"output": "doxa-maps/stack-demo/stack-demo.js",
|
||||||
"integrity": "sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy",
|
"integrity": "sha384-EI3V6JX9ws4fGxKBzMOgwhG5de8MvL6va3zqmB2gTXecd/m0mxNq8eUht/SGzH1B",
|
||||||
"elements": [
|
"elements": [
|
||||||
"stack-demo"
|
"stack-demo"
|
||||||
],
|
],
|
||||||
|
"composes": [
|
||||||
|
"research-dashboard-map",
|
||||||
|
"people-groups-grid"
|
||||||
|
],
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
"profile": "stack-demo",
|
"profile": "stack-demo",
|
||||||
|
|
@ -846,7 +1026,7 @@
|
||||||
"scriptUrl": "./stack-demo/stack-demo.js",
|
"scriptUrl": "./stack-demo/stack-demo.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./stack-demo/stack-demo/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=\"./stack-demo/stack-demo.js\" integrity=\"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy\" crossorigin=\"anonymous\"></script>\n<stack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></stack-demo>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-EI3V6JX9ws4fGxKBzMOgwhG5de8MvL6va3zqmB2gTXecd/m0mxNq8eUht/SGzH1B\" crossorigin=\"anonymous\"></script>\n<stack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></stack-demo>"
|
||||||
},
|
},
|
||||||
"instances": [
|
"instances": [
|
||||||
{
|
{
|
||||||
|
|
@ -870,7 +1050,7 @@
|
||||||
"bundle": "template-bundle",
|
"bundle": "template-bundle",
|
||||||
"scriptUrl": "./template-bundle/template-bundle.js",
|
"scriptUrl": "./template-bundle/template-bundle.js",
|
||||||
"output": "doxa-maps/template-bundle/template-bundle.js",
|
"output": "doxa-maps/template-bundle/template-bundle.js",
|
||||||
"integrity": "sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW",
|
"integrity": "sha384-e6IcmUAvFTc057fmxLFzZmjVnt7Svy9M+S4gXgGbU9XgmssqVY1dwW5UkHI766a+",
|
||||||
"elements": [
|
"elements": [
|
||||||
"template-bundle"
|
"template-bundle"
|
||||||
],
|
],
|
||||||
|
|
@ -886,7 +1066,7 @@
|
||||||
"scriptUrl": "./template-bundle/template-bundle.js",
|
"scriptUrl": "./template-bundle/template-bundle.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./template-bundle/template-map-a/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=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\"></script>\n<template-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></template-bundle>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-e6IcmUAvFTc057fmxLFzZmjVnt7Svy9M+S4gXgGbU9XgmssqVY1dwW5UkHI766a+\" crossorigin=\"anonymous\"></script>\n<template-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></template-bundle>"
|
||||||
},
|
},
|
||||||
"bundle": "template-bundle"
|
"bundle": "template-bundle"
|
||||||
},
|
},
|
||||||
|
|
@ -901,11 +1081,109 @@
|
||||||
"scriptUrl": "./template-bundle/template-bundle.js",
|
"scriptUrl": "./template-bundle/template-bundle.js",
|
||||||
"embed": {
|
"embed": {
|
||||||
"iframe": "<iframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
"iframe": "<iframe src=\"./template-bundle/template-map-b/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=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\"></script>\n<template-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></template-bundle>"
|
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-e6IcmUAvFTc057fmxLFzZmjVnt7Svy9M+S4gXgGbU9XgmssqVY1dwW5UkHI766a+\" crossorigin=\"anonymous\"></script>\n<template-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></template-bundle>"
|
||||||
},
|
},
|
||||||
"bundle": "template-bundle"
|
"bundle": "template-bundle"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"bundle": "upg-neighbor",
|
||||||
|
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
|
||||||
|
"output": "doxa-maps/upg-neighbor/upg-neighbor.js",
|
||||||
|
"integrity": "sha384-DVRFKBN7t+UQTjSwHz1FGzDSfgNRBA3e6WAeKCNn/9CUnzAtibMa1UG3X0Xqe7C/",
|
||||||
|
"elements": [
|
||||||
|
"upg-neighbor"
|
||||||
|
],
|
||||||
|
"profiles": [
|
||||||
|
{
|
||||||
|
"profile": "upg-neighbor",
|
||||||
|
"file": "upg-neighbor.vue",
|
||||||
|
"description": "Who goes to whom: reached neighbors matched to unreached people groups, five lenses",
|
||||||
|
"element": "upg-neighbor",
|
||||||
|
"type": "monolithic",
|
||||||
|
"isMap": true,
|
||||||
|
"iframeUrl": "./upg-neighbor/upg-neighbor/index.html",
|
||||||
|
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./upg-neighbor/upg-neighbor/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=\"./upg-neighbor/upg-neighbor.js\" integrity=\"sha384-DVRFKBN7t+UQTjSwHz1FGzDSfgNRBA3e6WAeKCNn/9CUnzAtibMa1UG3X0Xqe7C/\" crossorigin=\"anonymous\"></script>\n<upg-neighbor profile-config='{\"profile\":\"upg-neighbor\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></upg-neighbor>"
|
||||||
|
},
|
||||||
|
"instances": [
|
||||||
|
{
|
||||||
|
"id": "send-map",
|
||||||
|
"title": "Send Map",
|
||||||
|
"apiBaseUrl": "",
|
||||||
|
"props": {
|
||||||
|
"profile": "upg-neighbor",
|
||||||
|
"view": "send-map"
|
||||||
|
},
|
||||||
|
"element": "upg-neighbor",
|
||||||
|
"iframeUrl": "./upg-neighbor/upg-neighbor/send-map/index.html",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./upg-neighbor/upg-neighbor/send-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "upg-neighbors",
|
||||||
|
"title": "UPG Neighbors",
|
||||||
|
"apiBaseUrl": "",
|
||||||
|
"props": {
|
||||||
|
"profile": "upg-neighbor",
|
||||||
|
"view": "cockpit"
|
||||||
|
},
|
||||||
|
"element": "upg-neighbor",
|
||||||
|
"iframeUrl": "./upg-neighbor/upg-neighbor/upg-neighbors/index.html",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./upg-neighbor/upg-neighbor/upg-neighbors/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "lang-cluster",
|
||||||
|
"title": "Language Clusters",
|
||||||
|
"apiBaseUrl": "",
|
||||||
|
"props": {
|
||||||
|
"profile": "upg-neighbor",
|
||||||
|
"view": "lang-cluster"
|
||||||
|
},
|
||||||
|
"element": "upg-neighbor",
|
||||||
|
"iframeUrl": "./upg-neighbor/upg-neighbor/lang-cluster/index.html",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./upg-neighbor/upg-neighbor/lang-cluster/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "bloom-cockpit",
|
||||||
|
"title": "Bloom Cockpit",
|
||||||
|
"apiBaseUrl": "",
|
||||||
|
"props": {
|
||||||
|
"profile": "upg-neighbor",
|
||||||
|
"view": "cockpit"
|
||||||
|
},
|
||||||
|
"element": "upg-neighbor",
|
||||||
|
"iframeUrl": "./upg-neighbor/upg-neighbor/bloom-cockpit/index.html",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./upg-neighbor/upg-neighbor/bloom-cockpit/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "flower-mesh",
|
||||||
|
"title": "Flower Mesh",
|
||||||
|
"apiBaseUrl": "",
|
||||||
|
"props": {
|
||||||
|
"profile": "upg-neighbor",
|
||||||
|
"view": "flower-mesh"
|
||||||
|
},
|
||||||
|
"element": "upg-neighbor",
|
||||||
|
"iframeUrl": "./upg-neighbor/upg-neighbor/flower-mesh/index.html",
|
||||||
|
"embed": {
|
||||||
|
"iframe": "<iframe src=\"./upg-neighbor/upg-neighbor/flower-mesh/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"bundle": "upg-neighbor"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -5,13 +5,10 @@
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
<title>poster-wall · my-upg-100-list</title>
|
<title>poster-wall · my-upg-100-list</title>
|
||||||
<link rel="icon" href="data:,">
|
<link rel="icon" href="data:,">
|
||||||
<!-- Mapbox peer loaded ONCE here; the map custom element mounts in this page and
|
<!-- NON-MAP leaf (app-shell / composite / grid / card / chart-table): NO map peer.
|
||||||
uses window.mapboxgl directly (same realm → no cross-realm container errors). -->
|
This element draws no map tiles, so it needs no Mapbox/MapLibre engine and MUST NOT
|
||||||
<link rel="preconnect" href="https://api.mapbox.com" crossorigin />
|
gate on a token. Any nested MAP (in a composite/shell) renders in its own iframe leaf,
|
||||||
<link href="https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.css" rel="stylesheet" />
|
which loads its own map peer + token. A peer here would be dead weight + imply a gate. -->
|
||||||
<link href="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.css" rel="stylesheet" />
|
|
||||||
<script src="https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js"></script>
|
|
||||||
<script src="https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-geocoder/v5.0.0/mapbox-gl-geocoder.min.js"></script>
|
|
||||||
<style>
|
<style>
|
||||||
/* BARE full-page map — no chrome. The custom element IS the page, so the
|
/* BARE full-page map — no chrome. The custom element IS the page, so the
|
||||||
browser URL shares the map itself. */
|
browser URL shares the map itself. */
|
||||||
|
|
@ -25,11 +22,11 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="slot"></div>
|
<div id="slot"></div>
|
||||||
<div id="status">loading token…</div>
|
<div id="status">loading…</div>
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||||
<script src="../my-upg-100-list.js" integrity="sha384-w4tvHDsioepB/cqH+nawfF+6gr9ZGYzPgY9bvJBeiZqNVDeZtKgkV+xnzKq52SGc" crossorigin="anonymous"></script>
|
<script src="../my-upg-100-list.js" integrity="sha384-AMIwL3sB+dFKS1OkVcGIX1lDbK1ZB5RyvjfhVNexuEe12HIjB1GToYbTaL2ZF5x1" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -48,7 +45,7 @@
|
||||||
var BASE_CONFIG = {"profile":"poster-wall","dataSource":"pray-tools","instanceId":"my-upg-100-list-poster-wall","assetsBase":"../../assets"};
|
var BASE_CONFIG = {"profile":"poster-wall","dataSource":"pray-tools","instanceId":"my-upg-100-list-poster-wall","assetsBase":"../../assets"};
|
||||||
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
// MapLibre map pages AND shell pages (app-shell / nested-mfe-spa) need NO token:
|
||||||
// the ladder below is skipped entirely and the element mounts immediately.
|
// the ladder below is skipped entirely and the element mounts immediately.
|
||||||
var TOKEN_FREE = false;
|
var TOKEN_FREE = true;
|
||||||
var TOKEN_SRC = "window.MAP_TOKEN_URL";
|
var TOKEN_SRC = "window.MAP_TOKEN_URL";
|
||||||
var BAKED_TOKEN = "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ";
|
var BAKED_TOKEN = "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ";
|
||||||
// Expose the baked token as window.MAP_TOKEN so a BAKED composite (a compiled element that mounts
|
// Expose the baked token as window.MAP_TOKEN so a BAKED composite (a compiled element that mounts
|
||||||
|
|
@ -81,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||||
<script src="../my-upg-100-list.js" integrity="sha384-w4tvHDsioepB/cqH+nawfF+6gr9ZGYzPgY9bvJBeiZqNVDeZtKgkV+xnzKq52SGc" crossorigin="anonymous"></script>
|
<script src="../my-upg-100-list.js" integrity="sha384-AMIwL3sB+dFKS1OkVcGIX1lDbK1ZB5RyvjfhVNexuEe12HIjB1GToYbTaL2ZF5x1" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -81,7 +81,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||||
<script src="../my-upg-100-list.js" integrity="sha384-w4tvHDsioepB/cqH+nawfF+6gr9ZGYzPgY9bvJBeiZqNVDeZtKgkV+xnzKq52SGc" crossorigin="anonymous"></script>
|
<script src="../my-upg-100-list.js" integrity="sha384-AMIwL3sB+dFKS1OkVcGIX1lDbK1ZB5RyvjfhVNexuEe12HIjB1GToYbTaL2ZF5x1" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -92,7 +92,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
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>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <people-groups-grid> custom element. -->
|
<!-- Bundle IIFE — registers the <people-groups-grid> custom element. -->
|
||||||
<script src="../../people-groups-grid.js" integrity="sha384-k36TAAyarbqJzQyuFo8HEGrPPadH3DKCSecsGiwDLDhTjqBq4gBuzy4pNwFBuO/f" crossorigin="anonymous"></script>
|
<script src="../../people-groups-grid.js" integrity="sha384-8B2T2ckH+v8p2hEnkGruUg4Do5ZFsh31QSxYJYMj4/PN/ccHdgaIyK4dyW2GlUAR" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <people-groups-grid> custom element. -->
|
<!-- Bundle IIFE — registers the <people-groups-grid> custom element. -->
|
||||||
<script src="../people-groups-grid.js" integrity="sha384-k36TAAyarbqJzQyuFo8HEGrPPadH3DKCSecsGiwDLDhTjqBq4gBuzy4pNwFBuO/f" crossorigin="anonymous"></script>
|
<script src="../people-groups-grid.js" integrity="sha384-8B2T2ckH+v8p2hEnkGruUg4Do5ZFsh31QSxYJYMj4/PN/ccHdgaIyK4dyW2GlUAR" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||||
<!-- Bundle IIFE — registers the <people-groups-grid> custom element. -->
|
<!-- Bundle IIFE — registers the <people-groups-grid> custom element. -->
|
||||||
<script src="../../people-groups-grid.js" integrity="sha384-k36TAAyarbqJzQyuFo8HEGrPPadH3DKCSecsGiwDLDhTjqBq4gBuzy4pNwFBuO/f" crossorigin="anonymous"></script>
|
<script src="../../people-groups-grid.js" integrity="sha384-8B2T2ckH+v8p2hEnkGruUg4Do5ZFsh31QSxYJYMj4/PN/ccHdgaIyK4dyW2GlUAR" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
transparent. On gospel-resources/resources-map that produced a 352x126 DARK RECTANGLE between
|
||||||
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
the legend card and the detail panel — MEASURED rgb(8,12,18), i.e. the page background, NOT an
|
||||||
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
unpainted canvas as first supposed. Clearing it here (the one place we already know the
|
||||||
element is up) is a one-shot style write — no resize, no repaint loop. The product owner is
|
element is up) is a one-shot style write — no resize, no repaint loop. The Driver is
|
||||||
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
PHOTOSENSITIVE and a 60fps resize-strobe was already fixed this session; do NOT turn this into
|
||||||
a per-frame or per-event handler. */
|
a per-frame or per-event handler. */
|
||||||
function done() {
|
function done() {
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue