From 3bfaa242388e6cbbe06cddfa407085bf98418de6 Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Tue, 29 Sep 2026 21:07:27 +0000 Subject: [PATCH] Rebuild the card consumers and the gallery for the re-read fixes, and regenerate the tree --- .../country-posters/countries-map/index.html | 2 +- .../country-poster-wall/index.html | 2 +- .../country-posters-mfe/index.html | 2 +- .../country-posters/country-posters.js | 36 +++++++------ public/dx-maps/doxa-maps-spa/doxa-maps-spa.js | 2 +- .../doxa-maps-spa/app/index.html | 2 +- .../doxa-maps-spa/doxa-maps-spa/index.html | 2 +- public/dx-maps/doxa-maps-spa/manifest.json | 52 +++++++++---------- .../doxa-research-map/doxa-research-map.js | 12 +++-- .../doxa-research-map/research-map/index.html | 2 +- .../research-map/maplibre/index.html | 2 +- public/dx-maps/manifest.json | 52 +++++++++---------- .../my-upg-100-list/my-upg-100-list.js | 12 +++-- .../my-upg-100-list/poster-wall/index.html | 2 +- .../my-upg-100-list/upg-100-list/index.html | 2 +- .../my-upg-100-list/upg-100-mfe/index.html | 2 +- .../region-dashboards/index.html | 2 +- .../regions-dashboard/regions-dashboard.js | 12 +++-- .../regions-dashboard/regions-list/index.html | 2 +- .../regions-dashboard/regions-mfe/index.html | 2 +- public/dx-maps/upg-neighbor/upg-neighbor.js | 12 +++-- .../upg-neighbor/bloom-cockpit/index.html | 2 +- .../upg-neighbor/flower-mesh/index.html | 2 +- .../upg-neighbor/upg-neighbor/index.html | 2 +- .../upg-neighbor/lang-cluster/index.html | 2 +- .../upg-neighbor/send-map/index.html | 2 +- .../upg-neighbor/upg-neighbors/index.html | 2 +- 27 files changed, 124 insertions(+), 104 deletions(-) diff --git a/public/dx-maps/country-posters/countries-map/index.html b/public/dx-maps/country-posters/countries-map/index.html index 6ae1eb271..83ea5f94a 100644 --- a/public/dx-maps/country-posters/countries-map/index.html +++ b/public/dx-maps/country-posters/countries-map/index.html @@ -70,7 +70,7 @@ - + - + - + - + - + \n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -240,7 +240,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -256,8 +256,8 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -361,7 +361,7 @@ "bundle": "doxa-maps-spa", "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "output": "dx-maps/doxa-maps-spa/doxa-maps-spa.js", - "integrity": "sha384-0+sHtNWeugOjBSp/XwWGuNRgBECJkdkdiCxmGcYuYWSWVhVqQtXwWDVmvuiEXBQ5", + "integrity": "sha384-aLJcM/kausLVUhc1Ynvi5CVbKMDPF9fv/cMr2I+fp2ol67zcvuWHd6xCBYsA62iY", "elements": [ "doxa-maps-spa" ], @@ -389,7 +389,7 @@ "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -416,7 +416,7 @@ "bundle": "doxa-research-map", "scriptUrl": "./doxa-research-map/doxa-research-map.js", "output": "dx-maps/doxa-research-map/doxa-research-map.js", - "integrity": "sha384-4dIeFQwUzjVjmFIIEdwluz53F4g438mwHOIlEu9cVSFsX8C0m1jHWdo9Pw3lMPia", + "integrity": "sha384-+UxvE47IjWtdEZM8QyLbOAmYYAhkWsVdNqAqA2ku6lq80mQz5pHsmItVhC02N+2/", "elements": [ "doxa-research-map" ], @@ -435,8 +435,8 @@ "scriptUrl": "./doxa-research-map/doxa-research-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -880,7 +880,7 @@ "bundle": "my-upg-100-list", "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "output": "dx-maps/my-upg-100-list/my-upg-100-list.js", - "integrity": "sha384-6SKUk6S2idrfzXx6jC4xyAXXo33MMcuwEdaMLbaSp5+y4s/fc9hiNOfwZ0UyWt+v", + "integrity": "sha384-4g2v0kcOb3b3SMuALKJ7/4toWxsfLN/G7PR3L1nekGNbJCvZZy62KO0aA3opskNi", "elements": [ "my-upg-100-list-map" ], @@ -903,7 +903,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -919,8 +919,8 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -936,8 +936,8 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -1126,7 +1126,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "dx-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-ruzWCGX3souU9TBQEG638LPW73Vx1MwjS8Rm2Zz/hJJiP2I2N4AtRoiIM9IsYFzw", + "integrity": "sha384-YTwb2RarhDbmtLdyAFzB2Xb9jpXOGYCW0zN6IukGuWSFVOtZyBs6lv9Dfft8pzGd", "elements": [ "regions-dashboard" ], @@ -1149,8 +1149,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -1166,7 +1166,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1182,8 +1182,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -1317,7 +1317,7 @@ "bundle": "upg-neighbor", "scriptUrl": "./upg-neighbor/upg-neighbor.js", "output": "dx-maps/upg-neighbor/upg-neighbor.js", - "integrity": "sha384-vfYu2UTkN0fMpkYx4X+tbLZdMJJd4xjebL/tsSkMxtKxFthXgCDqns7vMPe7FrrA", + "integrity": "sha384-VmSbGHLU+4vRfkvdRq5RqyNpzNX9dRPDl1i8DAacmBbGgqlUEpW/X+Sy9geiiM9u", "elements": [ "upg-neighbor" ], @@ -1336,8 +1336,8 @@ "scriptUrl": "./upg-neighbor/upg-neighbor.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { diff --git a/public/dx-maps/doxa-research-map/doxa-research-map.js b/public/dx-maps/doxa-research-map/doxa-research-map.js index e00dfc135..c1fcfbb49 100644 --- a/public/dx-maps/doxa-research-map/doxa-research-map.js +++ b/public/dx-maps/doxa-research-map/doxa-research-map.js @@ -1655,13 +1655,17 @@ .nm{position:absolute;display:flex;align-items:center; ${x?`left:10px;width:${$-20}px;top:${12+g+6}px;bottom:10px;align-items:flex-start;justify-content:center;text-align:center;`:`left:${12+y+10}px;right:8px;top:0;height:${m}px;`} font:700 ${x?14:17}px Georgia,serif;color:#1b1a17;line-height:1.1;overflow:hidden; - overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto} + overflow-wrap:anywhere} /* Steps by the LONGEST WORD as well as the length: the name sits in a narrow box beside the photo, and one unbreakable word (the dataset has 16-letter ones, e.g. Pagativeshagallu) would overflow it - sideways. overflow-wrap:anywhere is the last resort, so a name is never cut off without a sign; - hyphens:auto (the deck's names the language) puts a hyphen where it does break. */ + sideways. overflow-wrap:anywhere is the last resort, so a name is never cut off without a sign. */ .nm.long{font-size:${x?11.5:14}px} .nm.xlong{font-size:${x?10.5:11}px} + /* A HYPHEN ONLY WHERE A WORD CANNOT FIT. hyphens:auto on every name would let the browser split ANY + word at a line end ("Northern Conchu-/cos"), and a people group's name split mid-word is worse than + the problem it solves. So it applies only to names holding a 14+ letter word (12 of 2,107), and the + limit keeps short words whole: the only multi-word ones are "Deaf ", and Deaf is never split. */ + .nm.hy{-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4} .body{position:absolute;right:14px;overflow:hidden; left:${x?$+12:14}px; @@ -1683,7 +1687,7 @@ text-transform:uppercase} .url{font:400 7px Georgia,serif;color:#a89f8c;word-break:break-all;margin-top:1px} .brand{position:absolute;right:14px;bottom:10px; - font:400 7px Georgia,serif;color:#b9ae99;text-align:right}`}function w(P){const C=Math.max(0,...String(P).split(/[\s,()/-]+/).map(H=>H.length));return C>=14||P.length>28?" xlong":C>=11||P.length>16?" long":""}function h(P){const C=String(P.name||P.slug||""),H=P.image_url?``:`
${i(s("no_photo"))}
`,K=P.religion&&typeof P.religion=="object"&&P.religion.description||P.religion_description||"",J=K?`
${i(String(K).slice(0,170))}
`:"",v=_(P.slug),N=[[s("card_country"),l(P,"country_code")],[s("card_population"),`${c(P.population)} ${s("people_suffix")}`],[s("card_language"),l(P,"primary_language")],[s("card_religion"),l(P,"religion")]].filter(([,b])=>b&&String(b).trim()&&String(b)!=="—").map(([b,A])=>`
${i(b)}
${i(A)}
`).join("");return`
${H}
${i(C)}
${N}${J}
${m2(v,{size:54,margin:1})}
${i(s("card_cta"))}
${i(v.replace(/^https?:\/\//,""))}
`}function k(P,C){const H=C.map(h).join("");return` + font:400 7px Georgia,serif;color:#b9ae99;text-align:right}`}function w(P){const C=Math.max(0,...String(P).split(/[\s,()/-]+/).map(H=>H.length));return C>=14?" xlong hy":P.length>28?" xlong":C>=11||P.length>16?" long":""}function h(P){const C=String(P.name||P.slug||""),H=P.image_url?``:`
${i(s("no_photo"))}
`,K=P.religion&&typeof P.religion=="object"&&P.religion.description||P.religion_description||"",J=K?`
${i(String(K).slice(0,170))}
`:"",v=_(P.slug),N=[[s("card_country"),l(P,"country_code")],[s("card_population"),`${c(P.population)} ${s("people_suffix")}`],[s("card_language"),l(P,"primary_language")],[s("card_religion"),l(P,"religion")]].filter(([,b])=>b&&String(b).trim()&&String(b)!=="—").map(([b,A])=>`
${i(b)}
${i(A)}
`).join("");return`
${H}
${i(C)}
${N}${J}
${m2(v,{size:54,margin:1})}
${i(s("card_cta"))}
${i(v.replace(/^https?:\/\//,""))}
`}function k(P,C){const H=C.map(h).join("");return` ${i(P.label||P.id)} — ${i(s("deck_title"))} ${H}`}return{buildDeck:k,card:h,css:d,profileUrl:_,W:p,H:f,stock:u}}const $2=Object.freeze(Object.defineProperty({__proto__:null,STOCK:gu,createCardRenderer:b2},Symbol.toStringTag,{value:"Module"}));function _2({iso3Name:e,countryName:t,lang:o}={}){const n=String(o||"en").split("-")[0].toLowerCase();if(n==="en"||!e||typeof t!="function")return null;const a=s=>String(s).replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),r=new Map;for(const[s,i]of Object.entries(e))r.set(a(String(i).toUpperCase()),s);return s=>{const i=r.get(String(s));if(!i)return null;const l=t(i,n);return!l||l===i?null:a(l.toLocaleUpperCase(n))}}const y2=Object.freeze(Object.defineProperty({__proto__:null,makeCountryLabelFor:_2},Symbol.toStringTag,{value:"Module"})),v2={map:{AFG:"AF",ALB:"AL",DZA:"DZ",ASM:"AS",AND:"AD",AGO:"AO",AIA:"AI",ATG:"AG",ARG:"AR",ARM:"AM",ABW:"AW",AUS:"AU",AUT:"AT",AZE:"AZ",BHR:"BH",BGD:"BD",BRB:"BB",BLR:"BY",BEL:"BE",BLZ:"BZ",BEN:"BJ",BMU:"BM",BTN:"BT",BOL:"BO",BES:"BQ",BIH:"BA",BWA:"BW",BRA:"BR",BRN:"BN",BGR:"BG",BFA:"BF",BDI:"BI",CPV:"CV",KHM:"KH",CMR:"CM",CAN:"CA",CYM:"KY",CAF:"CF",TCD:"TD",CHL:"CL",CHN:"CN",CXR:"CX",CCK:"CC",COL:"CO",COM:"KM",COK:"CK",CRI:"CR",CIV:"CI",HRV:"HR",CUB:"CU",CUW:"CW",CYP:"CY",DNK:"DK",DJI:"DJ",DMA:"DM",DOM:"DO",ECU:"EC",EGY:"EG",SLV:"SV",GNQ:"GQ",ERI:"ER",EST:"EE",SWZ:"SZ",ETH:"ET",FLK:"FK",FRO:"FO",FJI:"FJ",FIN:"FI",FRA:"FR",GUF:"GF",PYF:"PF",GAB:"GA",GEO:"GE",DEU:"DE",GHA:"GH",GIB:"GI",GRC:"GR",GRL:"GL",GRD:"GD",GLP:"GP",GUM:"GU",GTM:"GT",GGY:"GG",GIN:"GN",GNB:"GW",GUY:"GY",HTI:"HT",HND:"HN",HKG:"HK",HUN:"HU",ISL:"IS",IND:"IN",IDN:"ID",IRN:"IR",IRQ:"IQ",IRL:"IE",IMN:"IM",ISR:"IL",ITA:"IT",JAM:"JM",JPN:"JP",JEY:"JE",JOR:"JO",KAZ:"KZ",KEN:"KE",KIR:"KI",KOS:"XK",KWT:"KW",KGZ:"KG",LAO:"LA",LVA:"LV",LBN:"LB",LSO:"LS",LBR:"LR",LBY:"LY",LIE:"LI",LTU:"LT",LUX:"LU",MAC:"MO",MDG:"MG",MWI:"MW",MYS:"MY",MLI:"ML",MLT:"MT",MTQ:"MQ",MRT:"MR",MUS:"MU",MYT:"YT",MEX:"MX",MDA:"MD",MCO:"MC",MNG:"MN",MNE:"ME",MSR:"MS",MAR:"MA",MOZ:"MZ",MMR:"MM",NAM:"NA",NRU:"NR",NPL:"NP",NCL:"NC",NZL:"NZ",NIC:"NI",NER:"NE",NGA:"NG",NIU:"NU",NFK:"NF",PRK:"KP",MKD:"MK",NOR:"NO",OMN:"OM",PAK:"PK",PLW:"PW",PSE:"PS",PAN:"PA",PNG:"PG",PRY:"PY",PER:"PE",POL:"PL",PRT:"PT",PRI:"PR",QAT:"QA",REU:"RE",ROU:"RO",RWA:"RW",BLM:"BL",SHN:"SH",KNA:"KN",LCA:"LC",MAF:"MF",SPM:"PM",VCT:"VC",WSM:"WS",SMR:"SM",STP:"ST",SAU:"SA",SEN:"SN",SRB:"RS",SYC:"SC",SLE:"SL",SGP:"SG",SXM:"SX",SVK:"SK",SVN:"SI",SOM:"SO",ZAF:"ZA",KOR:"KR",SSD:"SS",ESP:"ES",LKA:"LK",SDN:"SD",SUR:"SR",SJM:"SJ",SWE:"SE",CHE:"CH",SYR:"SY",TWN:"TW",TJK:"TJ",TZA:"TZ",THA:"TH",BHS:"BS",VGB:"VG",CZE:"CZ",COD:"CD",FSM:"FM",GMB:"GM",MDV:"MV",MHL:"MH",NLD:"NL",MNP:"MP",PHL:"PH",PCN:"PN",COG:"CG",RUS:"RU",SLB:"SB",TCA:"TC",ARE:"AE",GBR:"GB",USA:"US",VIR:"VI",TLS:"TL",TGO:"TG",TKL:"TK",TON:"TO",TTO:"TT",TUN:"TN",TUR:"TR",TKM:"TM",TUV:"TV",UGA:"UG",UKR:"UA",URY:"UY",UZB:"UZ",VUT:"VU",VAT:"VA",VEN:"VE",VNM:"VN",WLF:"WF",ESH:"EH",YEM:"YE",ZMB:"ZM",ZWE:"ZW"}},om=[{value:"AFG",label:"Afghanistan"},{value:"ALB",label:"Albania"},{value:"DZA",label:"Algeria"},{value:"ASM",label:"American Samoa"},{value:"AND",label:"Andorra"},{value:"AGO",label:"Angola"},{value:"AIA",label:"Anguilla"},{value:"ATG",label:"Antigua and Barbuda"},{value:"ARG",label:"Argentina"},{value:"ARM",label:"Armenia"},{value:"ABW",label:"Aruba"},{value:"AUS",label:"Australia"},{value:"AUT",label:"Austria"},{value:"AZE",label:"Azerbaijan"},{value:"BHR",label:"Bahrain"},{value:"BGD",label:"Bangladesh"},{value:"BRB",label:"Barbados"},{value:"BLR",label:"Belarus"},{value:"BEL",label:"Belgium"},{value:"BLZ",label:"Belize"},{value:"BEN",label:"Benin"},{value:"BMU",label:"Bermuda"},{value:"BTN",label:"Bhutan"},{value:"BOL",label:"Bolivia"},{value:"BES",label:"Bonaire, Sint Eustatius, and Saba"},{value:"BIH",label:"Bosnia and Herzegovina"},{value:"BWA",label:"Botswana"},{value:"BRA",label:"Brazil"},{value:"BRN",label:"Brunei"},{value:"BGR",label:"Bulgaria"},{value:"BFA",label:"Burkina Faso"},{value:"BDI",label:"Burundi"},{value:"CPV",label:"Cabo Verde"},{value:"KHM",label:"Cambodia"},{value:"CMR",label:"Cameroon"},{value:"CAN",label:"Canada"},{value:"CYM",label:"Cayman Islands"},{value:"CAF",label:"Central African Republic"},{value:"TCD",label:"Chad"},{value:"CHL",label:"Chile"},{value:"CHN",label:"China"},{value:"CXR",label:"Christmas Island"},{value:"CCK",label:"Cocos (Keeling) Islands"},{value:"COL",label:"Colombia"},{value:"COM",label:"Comoros"},{value:"COK",label:"Cook Islands"},{value:"CRI",label:"Costa Rica"},{value:"CIV",label:"Côte d’Ivoire"},{value:"HRV",label:"Croatia"},{value:"CUB",label:"Cuba"},{value:"CUW",label:"Curaçao"},{value:"CYP",label:"Cyprus"},{value:"DNK",label:"Denmark"},{value:"DJI",label:"Djibouti"},{value:"DMA",label:"Dominica"},{value:"DOM",label:"Dominican Republic"},{value:"ECU",label:"Ecuador"},{value:"EGY",label:"Egypt"},{value:"SLV",label:"El Salvador"},{value:"GNQ",label:"Equatorial Guinea"},{value:"ERI",label:"Eritrea"},{value:"EST",label:"Estonia"},{value:"SWZ",label:"Eswatini"},{value:"ETH",label:"Ethiopia"},{value:"FLK",label:"Falkland Islands (Islas Malvinas)"},{value:"FRO",label:"Faroe Islands"},{value:"FJI",label:"Fiji"},{value:"FIN",label:"Finland"},{value:"FRA",label:"France"},{value:"GUF",label:"French Guiana"},{value:"PYF",label:"French Polynesia"},{value:"GAB",label:"Gabon"},{value:"GEO",label:"Georgia"},{value:"DEU",label:"Germany"},{value:"GHA",label:"Ghana"},{value:"GIB",label:"Gibraltar"},{value:"GRC",label:"Greece"},{value:"GRL",label:"Greenland"},{value:"GRD",label:"Grenada"},{value:"GLP",label:"Guadeloupe"},{value:"GUM",label:"Guam"},{value:"GTM",label:"Guatemala"},{value:"GGY",label:"Guernsey"},{value:"GIN",label:"Guinea"},{value:"GNB",label:"Guinea-Bissau"},{value:"GUY",label:"Guyana"},{value:"HTI",label:"Haiti"},{value:"HND",label:"Honduras"},{value:"HKG",label:"Hong Kong"},{value:"HUN",label:"Hungary"},{value:"ISL",label:"Iceland"},{value:"IND",label:"India"},{value:"IDN",label:"Indonesia"},{value:"IRN",label:"Iran"},{value:"IRQ",label:"Iraq"},{value:"IRL",label:"Ireland"},{value:"IMN",label:"Isle of Man"},{value:"ISR",label:"Israel"},{value:"ITA",label:"Italy"},{value:"JAM",label:"Jamaica"},{value:"JPN",label:"Japan"},{value:"JEY",label:"Jersey"},{value:"JOR",label:"Jordan"},{value:"KAZ",label:"Kazakhstan"},{value:"KEN",label:"Kenya"},{value:"KIR",label:"Kiribati"},{value:"KOS",label:"Kosovo"},{value:"KWT",label:"Kuwait"},{value:"KGZ",label:"Kyrgyzstan"},{value:"LAO",label:"Laos"},{value:"LVA",label:"Latvia"},{value:"LBN",label:"Lebanon"},{value:"LSO",label:"Lesotho"},{value:"LBR",label:"Liberia"},{value:"LBY",label:"Libya"},{value:"LIE",label:"Liechtenstein"},{value:"LTU",label:"Lithuania"},{value:"LUX",label:"Luxembourg"},{value:"MAC",label:"Macao"},{value:"MDG",label:"Madagascar"},{value:"MWI",label:"Malawi"},{value:"MYS",label:"Malaysia"},{value:"MLI",label:"Mali"},{value:"MLT",label:"Malta"},{value:"MTQ",label:"Martinique"},{value:"MRT",label:"Mauritania"},{value:"MUS",label:"Mauritius"},{value:"MYT",label:"Mayotte"},{value:"MEX",label:"Mexico"},{value:"MDA",label:"Moldova"},{value:"MCO",label:"Monaco"},{value:"MNG",label:"Mongolia"},{value:"MNE",label:"Montenegro"},{value:"MSR",label:"Montserrat"},{value:"MAR",label:"Morocco"},{value:"MOZ",label:"Mozambique"},{value:"MMR",label:"Myanmar"},{value:"NAM",label:"Namibia"},{value:"NRU",label:"Nauru"},{value:"NPL",label:"Nepal"},{value:"NCL",label:"New Caledonia"},{value:"NZL",label:"New Zealand"},{value:"NIC",label:"Nicaragua"},{value:"NER",label:"Niger"},{value:"NGA",label:"Nigeria"},{value:"NIU",label:"Niue"},{value:"NFK",label:"Norfolk Island"},{value:"PRK",label:"North Korea"},{value:"MKD",label:"North Macedonia"},{value:"NOR",label:"Norway"},{value:"OMN",label:"Oman"},{value:"PAK",label:"Pakistan"},{value:"PLW",label:"Palau"},{value:"PSE",label:"Palestine"},{value:"PAN",label:"Panama"},{value:"PNG",label:"Papua New Guinea"},{value:"PRY",label:"Paraguay"},{value:"PER",label:"Peru"},{value:"POL",label:"Poland"},{value:"PRT",label:"Portugal"},{value:"PRI",label:"Puerto Rico"},{value:"QAT",label:"Qatar"},{value:"REU",label:"Reunion"},{value:"ROU",label:"Romania"},{value:"RWA",label:"Rwanda"},{value:"BLM",label:"Saint Barthelemy"},{value:"SHN",label:"Saint Helena, Ascension, and Tristan da Cunha"},{value:"KNA",label:"Saint Kitts and Nevis"},{value:"LCA",label:"Saint Lucia"},{value:"MAF",label:"Saint Martin"},{value:"SPM",label:"Saint Pierre and Miquelon"},{value:"VCT",label:"Saint Vincent and the Grenadines"},{value:"WSM",label:"Samoa"},{value:"SMR",label:"San Marino"},{value:"STP",label:"Sao Tome and Principe"},{value:"SAU",label:"Saudi Arabia"},{value:"SEN",label:"Senegal"},{value:"SRB",label:"Serbia"},{value:"SYC",label:"Seychelles"},{value:"SLE",label:"Sierra Leone"},{value:"SGP",label:"Singapore"},{value:"SXM",label:"Sint Maarten"},{value:"SVK",label:"Slovakia"},{value:"SVN",label:"Slovenia"},{value:"SOM",label:"Somalia"},{value:"ZAF",label:"South Africa"},{value:"KOR",label:"South Korea"},{value:"SSD",label:"South Sudan"},{value:"ESP",label:"Spain"},{value:"LKA",label:"Sri Lanka"},{value:"SDN",label:"Sudan"},{value:"SUR",label:"Suriname"},{value:"SJM",label:"Svalbard"},{value:"SWE",label:"Sweden"},{value:"CHE",label:"Switzerland"},{value:"SYR",label:"Syria"},{value:"TWN",label:"Taiwan"},{value:"TJK",label:"Tajikistan"},{value:"TZA",label:"Tanzania"},{value:"THA",label:"Thailand"},{value:"BHS",label:"The Bahamas"},{value:"VGB",label:"the British Virgin Islands"},{value:"CZE",label:"the Czech Republic"},{value:"COD",label:"the Democratic Republic of the Congo"},{value:"FSM",label:"the Federated States of Micronesia"},{value:"GMB",label:"The Gambia"},{value:"MDV",label:"the Maldives"},{value:"MHL",label:"the Marshall Islands"},{value:"NLD",label:"the Netherlands"},{value:"MNP",label:"the Northern Mariana Islands"},{value:"PHL",label:"the Philippines"},{value:"PCN",label:"the Pitcairn Islands"},{value:"COG",label:"the Republic of the Congo"},{value:"RUS",label:"the Russian Federation"},{value:"SLB",label:"the Solomon Islands"},{value:"TCA",label:"the Turks and Caicos Islands"},{value:"ARE",label:"the United Arab Emirates"},{value:"GBR",label:"the United Kingdom"},{value:"USA",label:"the United States"},{value:"VIR",label:"the Virgin Islands"},{value:"TLS",label:"Timor-Leste"},{value:"TGO",label:"Togo"},{value:"TKL",label:"Tokelau"},{value:"TON",label:"Tonga"},{value:"TTO",label:"Trinidad and Tobago"},{value:"TUN",label:"Tunisia"},{value:"TUR",label:"Turkiye"},{value:"TKM",label:"Turkmenistan"},{value:"TUV",label:"Tuvalu"},{value:"UGA",label:"Uganda"},{value:"UKR",label:"Ukraine"},{value:"URY",label:"Uruguay"},{value:"UZB",label:"Uzbekistan"},{value:"VUT",label:"Vanuatu"},{value:"VAT",label:"Vatican City"},{value:"VEN",label:"Venezuela"},{value:"VNM",label:"Vietnam"},{value:"WLF",label:"Wallis and Futuna"},{value:"ESH",label:"Western Sahara"},{value:"YEM",label:"Yemen"},{value:"ZMB",label:"Zambia"},{value:"ZWE",label:"Zimbabwe"}],nm=v2.map,am=new Map(om.map(e=>[e.value,e.label])),w2=new Map(om.map(e=>[String(e.label).trim().toLowerCase(),e.value]));function k2(e){return e?nm[String(e).toUpperCase()]:void 0}function x2(e){if(e)return w2.get(String(e).trim().toLowerCase())}function S2(e){return e?am.get(String(e).toUpperCase()):void 0}const fu=new Map;function A2(e){const t=e||"en";if(fu.has(t))return fu.get(t);let o=null;try{o=new Intl.DisplayNames([t],{type:"region"})}catch{o=null}return fu.set(t,o),o}function rm(e,t){const o=e?String(e).toUpperCase():"",n=nm[o],a=am.get(o)||o;if(!n||!/^[A-Z]{2}$/.test(n))return a;const r=A2(t);if(!r)return a;try{const s=r.of(n);return s&&s!==n?s:a}catch{return a}}const sm=Object.freeze(Object.defineProperty({__proto__:null,alpha2Of:k2,countryName:rm,default:rm,englishName:S2,iso3ForEnglishName:x2},Symbol.toStringTag,{value:"Module"}));function im(e){let t=2166136261;for(let o=0;o>>0)%1e5/1e5}function P2(e,{cx:t=0,cy:o=0,r:n=100,spread:a=220,key:r=s=>s.id}={}){const s=[],i=[],l=[];for(const c of e||[]){const u=r(c),p=im(u)*Math.PI*2,f=im(u+"|r");if(c.reached===!0){const x=Math.sqrt(f)*n*.92;s.push({...c,id:u,x:t+Math.cos(p)*x,y:o+Math.sin(p)*x,side:"in"})}else if(c.reached===!1){const x=n*1.12+f*(a-n*1.12);i.push({...c,id:u,x:t+Math.cos(p)*x,y:o+Math.sin(p)*x,side:"out"})}else l.push({...c,id:u,side:"unknown"})}return{inside:s,outside:i,unknown:l,cx:t,cy:o,r:n}}function L2(e){return{inside:e.inside.length,outside:e.outside.length,unknown:e.unknown.length,total:e.inside.length+e.outside.length+e.unknown.length}}const hu=1,va=10;function C2(e){let t=2166136261;for(let o=0;o>>0)%1e5/1e5}const T2=0,E2=-1;function M2(e,{cx:t=0,cy:o=0,innerR:n=26,ringGap:a=24}={}){const r=[],s=[],i=[];for(const l of e||[]){const c=Number(l==null?void 0:l.ring);if(c===T2){i.push({...l,at:"centre"});continue}if(c===E2){s.push({...l,reason:"no relation found"});continue}if(!Number.isInteger(c)||cva){s.push({...l,reason:(l==null?void 0:l.ring)==null?"no ring":`ring ${l.ring} out of range`});continue}const u=C2(String(l.id))*Math.PI*2,p=n+(c-1)*a;r.push({...l,ring:c,angle:u,r:p,x:t+Math.cos(u)*p,y:o+Math.sin(u)*p})}return{placed:r,centre:i,unplaced:s,cx:t,cy:o,innerR:n,ringGap:a,radii:lm({innerR:n,ringGap:a})}}function lm({innerR:e=26,ringGap:t=24}={}){const o=[];for(let n=hu;n<=va;n++)o.push({ring:n,r:e+(n-1)*t});return o}function R2(e){const t=new Map;for(let o=hu;o<=va;o++)t.set(o,0);for(const o of e.placed)t.set(o.ring,t.get(o.ring)+1);return{counts:t,placed:e.placed.length,centre:e.centre.length,unplaced:e.unplaced.length}}function cm(e){let t=2166136261;const o=String(e);for(let n=0;n>>0)%1e5/1e5}const ns=Math.PI*2,um=e=>(e%ns+ns)%ns;function F2(e,t,{ringGap:o=24,minSep:n=7,minPinFloor:a=2.6,pinRadius:r=3.4,bandInset:s=.16,mode:i="fit",labels:l=[],cx:c=0,cy:u=0}={}){const p=new Map(t.map($=>[$.ring,$.r])),f=new Map(l.map($=>[$.ring,$.keepOut])),x=new Map;for(const $ of e)p.has($.ring)&&(x.has($.ring)||x.set($.ring,[]),x.get($.ring).push($));const S=[],y=[],g=[];for(const[$,m]of[...x.entries()].sort((_,d)=>_[0]-d[0])){const _=p.get($),d=o/2*(1-s),w=f.get($),h=w?Math.min(w.span,ns):0,k=Math.max(ns-h,0),P=[...m].sort((Z,j)=>cm(Z.id)-cm(j.id)||String(Z.id).localeCompare(String(j.id)));let C=r;const H=Z=>Math.max(Math.floor(2*d/Math.max(n,2*Z)),1),K=Z=>{const j=Math.max(n,2*Z),ae=H(Z);let _e=0;for(let Te=0;Tea;)C=Math.max(a,C-.1),J=K(C),v=!0;const N=i==="fill-all",b=N?P:P.slice(0,J),A=N?[]:P.slice(J),I=w?um(w.start+w.span):0,F=N?Math.max(1,Math.min(b.length,Math.ceil(b.length/Math.max(K(a)/H(a),1)))):H(C),W=[];for(let Z=0;Z{const ae=j%F;W[ae]++});const z=W.map(()=>0);b.forEach((Z,j)=>{const ae=j%F,_e=Math.max(W[ae],1),Te=Math.max(_-d+(ae+.5)*(2*d)/F,1e-6),xe=z[ae]++,Ae=k/_e,X=ae%2?.25:-.25,q=um(I+Ae*(xe+.5+X));S.push({...Z,ring:$,row:ae,angle:q,r:Te,pin:C,x:c+Math.cos(q)*Te,y:u+Math.sin(q)*Te})});for(const Z of A)y.push({...Z,ring:$,reason:`ring ${$} full at the pin floor (${J} fit, ${P.length} wanted)`});g.push({ring:$,wanted:P.length,fitted:b.length,capacity:J,pin:C,shrunk:v,usableArc:k})}return{placed:S,unplaced:y,rings:g,cx:c,cy:u,ringGap:o,minSep:n}}function N2(e,t){return(Number(e)||0)*(Number(t)||0)}function I2(e,t,o){const n=N2(t,o);return n?(Number(e)||0)/n:0}const mu=new Set(["ar","he","fa","ur","ps","sd","yi"]),O2={hi:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2"},mr:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2"},ne:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2"}};function D2({strings:e,lang:t="en",fontData:o=null,describe:n=null}){const a=e.en,r=e[t]||{},s=ee=>r[ee]!==void 0?r[ee]:a[ee],i=ee=>(r.rhythms||{})[ee]!==void 0?r.rhythms[ee]:a.rhythms[ee],l=Array.isArray(r.points)?r.points:[],c=a.points.map((ee,ie)=>{const be=l[ie];return!be||typeof be!="object"?ee:{...ee,...Object.fromEntries(Object.entries(be).filter(([,$e])=>$e!==void 0&&$e!==""))}}),u=(ee,ie)=>String(ee).replace(/\{(\w+)\}/g,(be,$e)=>ie[$e]??""),p=ee=>ee&&typeof ee=="object"?ee.label??ee.value??"":ee??"",f=1500,x=1941,S=8.5,y=(S*96/f).toFixed(6),g=60,$=90,m=20,_=m,d=1,w=["pray_blessed","pray_know","pray_do"],h=14,k=(f-2*g-h*(d-1))/d,P=(x-2*g-$-h*(m-1))/m,C=Math.min(P-8,64),H=84,K=660,J=960,v=H*w.length,N=k-C-v-h*2,b=ee=>String(ee??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),A=ee=>Number.isFinite(Number(ee))?Number(ee).toLocaleString(t):"—",I=(ee,ie="")=>`
${ee}
`,F=O2[t]||null,W=F&&o?`@font-face{font-family:'${F.family}';font-style:normal;font-weight:400;font-display:swap;src:url(data:font/woff2;base64,${o}) format('woff2')}`:"",z=F?`.sheet,.sheet *{font-family:'${F.family}',Georgia,'Palatino Linotype',serif !important}`:"";function Z(){return` ${W} diff --git a/public/dx-maps/doxa-research-map/research-map/index.html b/public/dx-maps/doxa-research-map/research-map/index.html index 6d25c2d62..84c0e2a35 100644 --- a/public/dx-maps/doxa-research-map/research-map/index.html +++ b/public/dx-maps/doxa-research-map/research-map/index.html @@ -70,7 +70,7 @@ - + - + \n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -240,7 +240,7 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -256,8 +256,8 @@ "scriptUrl": "./country-posters/country-posters.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -361,7 +361,7 @@ "bundle": "doxa-maps-spa", "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "output": "dx-maps/doxa-maps-spa/doxa-maps-spa.js", - "integrity": "sha384-0+sHtNWeugOjBSp/XwWGuNRgBECJkdkdiCxmGcYuYWSWVhVqQtXwWDVmvuiEXBQ5", + "integrity": "sha384-aLJcM/kausLVUhc1Ynvi5CVbKMDPF9fv/cMr2I+fp2ol67zcvuWHd6xCBYsA62iY", "elements": [ "doxa-maps-spa" ], @@ -389,7 +389,7 @@ "scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" }, "instances": [ { @@ -416,7 +416,7 @@ "bundle": "doxa-research-map", "scriptUrl": "./doxa-research-map/doxa-research-map.js", "output": "dx-maps/doxa-research-map/doxa-research-map.js", - "integrity": "sha384-4dIeFQwUzjVjmFIIEdwluz53F4g438mwHOIlEu9cVSFsX8C0m1jHWdo9Pw3lMPia", + "integrity": "sha384-+UxvE47IjWtdEZM8QyLbOAmYYAhkWsVdNqAqA2ku6lq80mQz5pHsmItVhC02N+2/", "elements": [ "doxa-research-map" ], @@ -435,8 +435,8 @@ "scriptUrl": "./doxa-research-map/doxa-research-map.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { @@ -880,7 +880,7 @@ "bundle": "my-upg-100-list", "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "output": "dx-maps/my-upg-100-list/my-upg-100-list.js", - "integrity": "sha384-6SKUk6S2idrfzXx6jC4xyAXXo33MMcuwEdaMLbaSp5+y4s/fc9hiNOfwZ0UyWt+v", + "integrity": "sha384-4g2v0kcOb3b3SMuALKJ7/4toWxsfLN/G7PR3L1nekGNbJCvZZy62KO0aA3opskNi", "elements": [ "my-upg-100-list-map" ], @@ -903,7 +903,7 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -919,8 +919,8 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -936,8 +936,8 @@ "scriptUrl": "./my-upg-100-list/my-upg-100-list.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -1126,7 +1126,7 @@ "bundle": "regions-dashboard", "scriptUrl": "./regions-dashboard/regions-dashboard.js", "output": "dx-maps/regions-dashboard/regions-dashboard.js", - "integrity": "sha384-ruzWCGX3souU9TBQEG638LPW73Vx1MwjS8Rm2Zz/hJJiP2I2N4AtRoiIM9IsYFzw", + "integrity": "sha384-YTwb2RarhDbmtLdyAFzB2Xb9jpXOGYCW0zN6IukGuWSFVOtZyBs6lv9Dfft8pzGd", "elements": [ "regions-dashboard" ], @@ -1149,8 +1149,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } }, { @@ -1166,7 +1166,7 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n" + "script": "\n\n\n" } }, { @@ -1182,8 +1182,8 @@ "scriptUrl": "./regions-dashboard/regions-dashboard.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" } } ] @@ -1317,7 +1317,7 @@ "bundle": "upg-neighbor", "scriptUrl": "./upg-neighbor/upg-neighbor.js", "output": "dx-maps/upg-neighbor/upg-neighbor.js", - "integrity": "sha384-vfYu2UTkN0fMpkYx4X+tbLZdMJJd4xjebL/tsSkMxtKxFthXgCDqns7vMPe7FrrA", + "integrity": "sha384-VmSbGHLU+4vRfkvdRq5RqyNpzNX9dRPDl1i8DAacmBbGgqlUEpW/X+Sy9geiiM9u", "elements": [ "upg-neighbor" ], @@ -1336,8 +1336,8 @@ "scriptUrl": "./upg-neighbor/upg-neighbor.js", "embed": { "iframe": "", - "script": "\n\n\n\n\n\n", - "scriptMapbox": "\n\n\n\n\n\n" + "script": "\n\n\n\n\n\n", + "scriptMapbox": "\n\n\n\n\n\n" }, "instances": [ { diff --git a/public/dx-maps/my-upg-100-list/my-upg-100-list.js b/public/dx-maps/my-upg-100-list/my-upg-100-list.js index 03870b0c7..a8fd938fb 100644 --- a/public/dx-maps/my-upg-100-list/my-upg-100-list.js +++ b/public/dx-maps/my-upg-100-list/my-upg-100-list.js @@ -1228,13 +1228,17 @@ .nm{position:absolute;display:flex;align-items:center; ${y?`left:10px;width:${_-20}px;top:${12+f+6}px;bottom:10px;align-items:flex-start;justify-content:center;text-align:center;`:`left:${12+$+10}px;right:8px;top:0;height:${x}px;`} font:700 ${y?14:17}px Georgia,serif;color:#1b1a17;line-height:1.1;overflow:hidden; - overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto} + overflow-wrap:anywhere} /* Steps by the LONGEST WORD as well as the length: the name sits in a narrow box beside the photo, and one unbreakable word (the dataset has 16-letter ones, e.g. Pagativeshagallu) would overflow it - sideways. overflow-wrap:anywhere is the last resort, so a name is never cut off without a sign; - hyphens:auto (the deck's names the language) puts a hyphen where it does break. */ + sideways. overflow-wrap:anywhere is the last resort, so a name is never cut off without a sign. */ .nm.long{font-size:${y?11.5:14}px} .nm.xlong{font-size:${y?10.5:11}px} + /* A HYPHEN ONLY WHERE A WORD CANNOT FIT. hyphens:auto on every name would let the browser split ANY + word at a line end ("Northern Conchu-/cos"), and a people group's name split mid-word is worse than + the problem it solves. So it applies only to names holding a 14+ letter word (12 of 2,107), and the + limit keeps short words whole: the only multi-word ones are "Deaf ", and Deaf is never split. */ + .nm.hy{-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4} .body{position:absolute;right:14px;overflow:hidden; left:${y?_+12:14}px; @@ -1256,7 +1260,7 @@ text-transform:uppercase} .url{font:400 7px Georgia,serif;color:#a89f8c;word-break:break-all;margin-top:1px} .brand{position:absolute;right:14px;bottom:10px; - font:400 7px Georgia,serif;color:#b9ae99;text-align:right}`}function b(P){const L=Math.max(0,...String(P).split(/[\s,()/-]+/).map(Z=>Z.length));return L>=14||P.length>28?" xlong":L>=11||P.length>16?" long":""}function w(P){const L=String(P.name||P.slug||""),Z=P.image_url?``:`
${s(i("no_photo"))}
`,J=P.religion&&typeof P.religion=="object"&&P.religion.description||P.religion_description||"",I=J?`
${s(String(J).slice(0,170))}
`:"",S=k(P.slug),se=[[i("card_country"),l(P,"country_code")],[i("card_population"),`${c(P.population)} ${i("people_suffix")}`],[i("card_language"),l(P,"primary_language")],[i("card_religion"),l(P,"religion")]].filter(([,T])=>T&&String(T).trim()&&String(T)!=="—").map(([T,D])=>`
${s(T)}
${s(D)}
`).join("");return`
${Z}
${s(L)}
${se}${I}
${MS(S,{size:54,margin:1})}
${s(i("card_cta"))}
${s(S.replace(/^https?:\/\//,""))}
`}function A(P,L){const Z=L.map(w).join("");return` + font:400 7px Georgia,serif;color:#b9ae99;text-align:right}`}function b(P){const L=Math.max(0,...String(P).split(/[\s,()/-]+/).map(Z=>Z.length));return L>=14?" xlong hy":P.length>28?" xlong":L>=11||P.length>16?" long":""}function w(P){const L=String(P.name||P.slug||""),Z=P.image_url?``:`
${s(i("no_photo"))}
`,J=P.religion&&typeof P.religion=="object"&&P.religion.description||P.religion_description||"",I=J?`
${s(String(J).slice(0,170))}
`:"",S=k(P.slug),se=[[i("card_country"),l(P,"country_code")],[i("card_population"),`${c(P.population)} ${i("people_suffix")}`],[i("card_language"),l(P,"primary_language")],[i("card_religion"),l(P,"religion")]].filter(([,T])=>T&&String(T).trim()&&String(T)!=="—").map(([T,D])=>`
${s(T)}
${s(D)}
`).join("");return`
${Z}
${s(L)}
${se}${I}
${MS(S,{size:54,margin:1})}
${s(i("card_cta"))}
${s(S.replace(/^https?:\/\//,""))}
`}function A(P,L){const Z=L.map(w).join("");return` ${s(P.label||P.id)} — ${s(i("deck_title"))} ${Z}`}return{buildDeck:A,card:w,css:g,profileUrl:k,W:d,H:p,stock:u}}const mf=Object.freeze(Object.defineProperty({__proto__:null,STOCK:Rc,createCardRenderer:NS},Symbol.toStringTag,{value:"Module"}));function RS({iso3Name:e,countryName:t,lang:o}={}){const a=String(o||"en").split("-")[0].toLowerCase();if(a==="en"||!e||typeof t!="function")return null;const n=i=>String(i).replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),r=new Map;for(const[i,s]of Object.entries(e))r.set(n(String(s).toUpperCase()),i);return i=>{const s=r.get(String(i));if(!s)return null;const l=t(s,a);return!l||l===s?null:n(l.toLocaleUpperCase(a))}}const FS=Object.freeze(Object.defineProperty({__proto__:null,makeCountryLabelFor:RS},Symbol.toStringTag,{value:"Module"}));function bf(e){let t=2166136261;for(let o=0;o>>0)%1e5/1e5}function IS(e,{cx:t=0,cy:o=0,r:a=100,spread:n=220,key:r=i=>i.id}={}){const i=[],s=[],l=[];for(const c of e||[]){const u=r(c),d=bf(u)*Math.PI*2,p=bf(u+"|r");if(c.reached===!0){const y=Math.sqrt(p)*a*.92;i.push({...c,id:u,x:t+Math.cos(d)*y,y:o+Math.sin(d)*y,side:"in"})}else if(c.reached===!1){const y=a*1.12+p*(n-a*1.12);s.push({...c,id:u,x:t+Math.cos(d)*y,y:o+Math.sin(d)*y,side:"out"})}else l.push({...c,id:u,side:"unknown"})}return{inside:i,outside:s,unknown:l,cx:t,cy:o,r:a}}function OS(e){return{inside:e.inside.length,outside:e.outside.length,unknown:e.unknown.length,total:e.inside.length+e.outside.length+e.unknown.length}}const Fc=1,Qa=10;function DS(e){let t=2166136261;for(let o=0;o>>0)%1e5/1e5}const zS=0,GS=-1;function jS(e,{cx:t=0,cy:o=0,innerR:a=26,ringGap:n=24}={}){const r=[],i=[],s=[];for(const l of e||[]){const c=Number(l==null?void 0:l.ring);if(c===zS){s.push({...l,at:"centre"});continue}if(c===GS){i.push({...l,reason:"no relation found"});continue}if(!Number.isInteger(c)||cQa){i.push({...l,reason:(l==null?void 0:l.ring)==null?"no ring":`ring ${l.ring} out of range`});continue}const u=DS(String(l.id))*Math.PI*2,d=a+(c-1)*n;r.push({...l,ring:c,angle:u,r:d,x:t+Math.cos(u)*d,y:o+Math.sin(u)*d})}return{placed:r,centre:s,unplaced:i,cx:t,cy:o,innerR:a,ringGap:n,radii:$f({innerR:a,ringGap:n})}}function $f({innerR:e=26,ringGap:t=24}={}){const o=[];for(let a=Fc;a<=Qa;a++)o.push({ring:a,r:e+(a-1)*t});return o}function BS(e){const t=new Map;for(let o=Fc;o<=Qa;o++)t.set(o,0);for(const o of e.placed)t.set(o.ring,t.get(o.ring)+1);return{counts:t,placed:e.placed.length,centre:e.centre.length,unplaced:e.unplaced.length}}function _f(e){let t=2166136261;const o=String(e);for(let a=0;a>>0)%1e5/1e5}const Pr=Math.PI*2,yf=e=>(e%Pr+Pr)%Pr;function HS(e,t,{ringGap:o=24,minSep:a=7,minPinFloor:n=2.6,pinRadius:r=3.4,bandInset:i=.16,mode:s="fit",labels:l=[],cx:c=0,cy:u=0}={}){const d=new Map(t.map(_=>[_.ring,_.r])),p=new Map(l.map(_=>[_.ring,_.keepOut])),y=new Map;for(const _ of e)d.has(_.ring)&&(y.has(_.ring)||y.set(_.ring,[]),y.get(_.ring).push(_));const v=[],$=[],f=[];for(const[_,x]of[...y.entries()].sort((k,g)=>k[0]-g[0])){const k=d.get(_),g=o/2*(1-i),b=p.get(_),w=b?Math.min(b.span,Pr):0,A=Math.max(Pr-w,0),P=[...x].sort((N,ue)=>_f(N.id)-_f(ue.id)||String(N.id).localeCompare(String(ue.id)));let L=r;const Z=N=>Math.max(Math.floor(2*g/Math.max(a,2*N)),1),J=N=>{const ue=Math.max(a,2*N),me=Z(N);let xe=0;for(let Ce=0;Cen;)L=Math.max(n,L-.1),I=J(L),S=!0;const se=s==="fill-all",T=se?P:P.slice(0,I),D=se?[]:P.slice(I),te=b?yf(b.start+b.span):0,z=se?Math.max(1,Math.min(T.length,Math.ceil(T.length/Math.max(J(n)/Z(n),1)))):Z(L),Q=[];for(let N=0;N{const me=ue%z;Q[me]++});const B=Q.map(()=>0);T.forEach((N,ue)=>{const me=ue%z,xe=Math.max(Q[me],1),Ce=Math.max(k-g+(me+.5)*(2*g)/z,1e-6),Se=B[me]++,Oe=A/xe,ve=me%2?.25:-.25,ke=yf(te+Oe*(Se+.5+ve));v.push({...N,ring:_,row:me,angle:ke,r:Ce,pin:L,x:c+Math.cos(ke)*Ce,y:u+Math.sin(ke)*Ce})});for(const N of D)$.push({...N,ring:_,reason:`ring ${_} full at the pin floor (${I} fit, ${P.length} wanted)`});f.push({ring:_,wanted:P.length,fitted:T.length,capacity:I,pin:L,shrunk:S,usableArc:A})}return{placed:v,unplaced:$,rings:f,cx:c,cy:u,ringGap:o,minSep:a}}function US(e,t){return(Number(e)||0)*(Number(t)||0)}function WS(e,t,o){const a=US(t,o);return a?(Number(e)||0)/a:0}const Ic=new Set(["ar","he","fa","ur","ps","sd","yi"]),KS={hi:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2"},mr:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2"},ne:{family:"Noto Serif Devanagari",dir:"noto-serif-devanagari",file:"noto-serif-devanagari-400-devanagari.woff2"}};function VS({strings:e,lang:t="en",fontData:o=null,describe:a=null}){const n=e.en,r=e[t]||{},i=Y=>r[Y]!==void 0?r[Y]:n[Y],s=Y=>(r.rhythms||{})[Y]!==void 0?r.rhythms[Y]:n.rhythms[Y],l=Array.isArray(r.points)?r.points:[],c=n.points.map((Y,X)=>{const le=l[X];return!le||typeof le!="object"?Y:{...Y,...Object.fromEntries(Object.entries(le).filter(([,de])=>de!==void 0&&de!==""))}}),u=(Y,X)=>String(Y).replace(/\{(\w+)\}/g,(le,de)=>X[de]??""),d=Y=>Y&&typeof Y=="object"?Y.label??Y.value??"":Y??"",p=1500,y=1941,v=8.5,$=(v*96/p).toFixed(6),f=60,_=90,x=20,k=x,g=1,b=["pray_blessed","pray_know","pray_do"],w=14,A=(p-2*f-w*(g-1))/g,P=(y-2*f-_-w*(x-1))/x,L=Math.min(P-8,64),Z=84,J=660,I=960,S=Z*b.length,se=A-L-S-w*2,T=Y=>String(Y??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),D=Y=>Number.isFinite(Number(Y))?Number(Y).toLocaleString(t):"—",te=(Y,X="")=>`
${Y}
`,z=KS[t]||null,Q=z&&o?`@font-face{font-family:'${z.family}';font-style:normal;font-weight:400;font-display:swap;src:url(data:font/woff2;base64,${o}) format('woff2')}`:"",B=z?`.sheet,.sheet *{font-family:'${z.family}',Georgia,'Palatino Linotype',serif !important}`:"";function N(){return` ${Q} diff --git a/public/dx-maps/my-upg-100-list/poster-wall/index.html b/public/dx-maps/my-upg-100-list/poster-wall/index.html index d60a17d8a..f36dd27ca 100644 --- a/public/dx-maps/my-upg-100-list/poster-wall/index.html +++ b/public/dx-maps/my-upg-100-list/poster-wall/index.html @@ -61,7 +61,7 @@ - + - + - + - + - + - + - + - + - + - + - + - +