summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Roach <greg@subaqua.co.uk>2026-03-18 13:32:51 +0000
committerGreg Roach <greg@subaqua.co.uk>2026-03-18 13:32:51 +0000
commit0a5ef79412ff95f494e2782f339d542cf2286f8f (patch)
tree19a39b4d86ae2ec6479807749a0be93ef7250b03
parente46bf5dfd52270f3519094b02afbb8975be23f44 (diff)
downloadwebtrees-0a5ef79412ff95f494e2782f339d542cf2286f8f.tar.gz
webtrees-0a5ef79412ff95f494e2782f339d542cf2286f8f.tar.bz2
webtrees-0a5ef79412ff95f494e2782f339d542cf2286f8f.zip
Bootstrap color scheme can be either fixed (light/dark) or auto (#5338)
-rw-r--r--app/Module/MinimalTheme.php4
-rw-r--r--app/Module/ModuleThemeInterface.php2
-rw-r--r--app/Module/ModuleThemeTrait.php4
-rw-r--r--public/js/webtrees.min.js2
-rw-r--r--resources/js/webtrees.js10
-rw-r--r--resources/views/layouts/default.phtml2
6 files changed, 11 insertions, 13 deletions
diff --git a/app/Module/MinimalTheme.php b/app/Module/MinimalTheme.php
index a16f07e692..59b3411ef4 100644
--- a/app/Module/MinimalTheme.php
+++ b/app/Module/MinimalTheme.php
@@ -46,8 +46,8 @@ class MinimalTheme extends AbstractModule implements ModuleThemeInterface
];
}
- public function supportsDarkTheme(): bool
+ public function bootstrapColorScheme(): string
{
- return true;
+ return 'auto';
}
}
diff --git a/app/Module/ModuleThemeInterface.php b/app/Module/ModuleThemeInterface.php
index 736ba0757d..d5065ec9c6 100644
--- a/app/Module/ModuleThemeInterface.php
+++ b/app/Module/ModuleThemeInterface.php
@@ -69,5 +69,5 @@ interface ModuleThemeInterface extends ModuleInterface
*/
public function stylesheets(): array;
- public function supportsDarkTheme(): bool;
+ public function bootstrapColorScheme(): string;
}
diff --git a/app/Module/ModuleThemeTrait.php b/app/Module/ModuleThemeTrait.php
index 21b869584e..5b04df4508 100644
--- a/app/Module/ModuleThemeTrait.php
+++ b/app/Module/ModuleThemeTrait.php
@@ -513,8 +513,8 @@ trait ModuleThemeTrait
return [];
}
- public function supportsDarkTheme(): bool
+ public function bootstrapColorScheme(): string
{
- return false;
+ return 'light';
}
}
diff --git a/public/js/webtrees.min.js b/public/js/webtrees.min.js
index f7b551b3fe..ccf0763952 100644
--- a/public/js/webtrees.min.js
+++ b/public/js/webtrees.min.js
@@ -1 +1 @@
-"use strict";function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==_typeof(t)?t:t+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,a,i,l=[],s=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(o=a.call(n)).done)&&(l.push(o.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw r}}return l}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(e){var t=document.documentElement.lang,n={Han:/[\u3400-\u9FCC]/,Grek:/[\u0370-\u03FF]/,Cyrl:/[\u0400-\u04FF]/,Hebr:/[\u0590-\u05FF]/,Arab:/[\u0600-\u06FF]/};function o(e){return e.replace(/\s+/g," ").trim()}e.httpGet=function(e){var t={method:"GET",credentials:"same-origin",referrerPolicy:"same-origin",headers:new Headers({"x-requested-with":"XMLHttpRequest"})};return fetch(e,t)},e.load=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=document.head.querySelector("meta[name=csrf]").getAttribute("content"),r={body:n,method:null===n?"GET":"POST",headers:new Headers({accept:"text/html","x-requested-with":"XMLHttpRequest","x-csrf-token":o})};fetch(t,r).then(function(e){return e.text()}).then(function(t){e.innerHTML=t;var n=(new DOMParser).parseFromString(t,"text/html");Array.from(n.body.childNodes).forEach(function(e){if("SCRIPT"===e.tagName){var t=document.createElement("script");Array.from(e.attributes).forEach(function(e){t.setAttribute(e.name,e.value)}),e.src?t.src=e.src:t.textContent=e.textContent,e.remove(),document.body.appendChild(t)}})})},e.httpPost=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=document.head.querySelector("meta[name=csrf]").getAttribute("content"),o={body:t,method:"POST",credentials:"same-origin",referrerPolicy:"same-origin",headers:new Headers({"X-CSRF-TOKEN":n,"x-requested-with":"XMLHttpRequest"})};return fetch(e,o,t)},e.detectScript=function(e){for(var t in n)if(e.match(n[t]))return t;return"Latn"},e.buildNameFromParts=function(n,r,a,i,l,s){var c="Han"===e.detectScript(n+r+a+r+i+l),d=c?"":" ",u=c||-1!==["hu","jp","ko","vi","zh-Hans","zh-Hant"].indexOf(t),p=-1!==["is"].indexOf(t)?"":"/";n=o(n),r=o(r.replace(/,/g,d)),a=o(a),i=function(e,n){return"pl"===t&&"F"===n?e.replace(/ski$/,"ska").replace(/cki$/,"cka").replace(/dzki$/,"dzka").replace(/żki$/,"żka"):e}(o(i.replace(/,/g,d)),s),l=o(l);var f=a.endsWith("'")||a.endsWith("‘")?"":" ",h=o(a+f+i);return o(n+d+(u?p+h+p+d+r:r+d+p+h+p)+d+l)},e.pasteAtCursor=function(e,t){if(null!==e){var n=e.selectionStart+t.length,o=e.value.substring(0,e.selectionStart),r=e.value.substring(e.selectionEnd);e.value=o+t+r,e.setSelectionRange(n,n),e.focus()}},e.reformatDate=function(e,t){var n=["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"],o=["MUHAR","SAFAR","RABIA","RABIT","JUMAA","JUMAT","RAJAB","SHAAB","RAMAD","SHAWW","DHUAQ","DHUAH"],r=["TSH","CSH","KSL","TVT","SHV","ADR","ADS","NSN","IYR","SVN","TMZ","AAV","ELL"],a=["VEND","BRUM","FRIM","NIVO","PLUV","VENT","GERM","FLOR","PRAI","MESS","THER","FRUC","COMP"],i=["FARVA","ORDIB","KHORD","TIR","MORDA","SHAHR","MEHR","ABAN","AZAR","DEY","BAHMA","ESFAN"],l=e.value,s=l.split("("),c="";s.length>1&&(l=s[0],c=s[1]),l=(l=(l=(l=(l=(l=(l=(l=(l=(l=(l=(l=(l=l.toUpperCase()).replace(/\s+/g," ")).replace(/(^\s)|(\s$)/,"")).replace(/(\d)([A-Z])/g,"$1 $2")).replace(/([A-Z])(\d)/g,"$1 $2")).replace(/^Q ([1-4]) (\d\d\d\d)$/,function(e,t,o){return"BET "+n[3*t-3]+" "+o+" AND "+n[3*t-1]+" "+o})).replace(/(@#DHIJRI@|HIJRI)( \d?\d )(\d?\d)( \d?\d?\d?\d)/,function(e,t,n,r,a){return"@#DHIJRI@"+n+o[r-1]+a})).replace(/(@#DJALALI@|JALALI)( \d?\d )(\d?\d)( \d?\d?\d?\d)/,function(e,t,n,o,r){return"@#DJALALI@"+n+i[o-1]+r})).replace(/(@#DHEBREW@|HEBREW)( \d?\d )(\d?\d)( \d?\d?\d?\d)/,function(e,t,n,o,a){return"@#HEBREW@"+n+r[o-1]+a})).replace(/(@#DFRENCH R@|FRENCH)( \d?\d )(\d?\d)( \d?\d?\d?\d)/,function(e,t,n,o,r){return"@#DFRENCH R@"+n+a[o-1]+r})).replace(/(\d\d)(\d\d)(\d\d)(\d\d)/g,function(e,t,o,r,a){return t>"12"&&r<="12"&&a<="31"?a+" "+n[r-1]+" "+t+o:t<="31"&&o<="12"&&r>"12"?t+" "+n[o-1]+" "+r+a:e})).replace(/(\d+)([ ./-])(\d+)(\2)(\d+)/g,function(e,o,r,a,i,l){o=parseInt(o,10),r=parseInt(a,10),a=parseInt(l,10);var s=(new Date).getFullYear(),c=s%100,d=s-c;return("DMY"===t||o>13&&a>31)&&o<=31&&r<=12?o+" "+n[r-1]+" "+(a>=100?a:a<=c?a+d:a+d-100):("MDY"===t||r>13&&a>31)&&o<=12&&r<=31?r+" "+n[o-1]+" "+(a>=100?a:a<=c?a+d:a+d-100):("YMD"===t||o>31)&&r<=12&&a<=31?a+" "+n[r-1]+" "+(o>=100?o:o<=c?o+d:o+d-100):e})).replace(/^[>]([\w ]+)$/,"AFT $1").replace(/^[<]([\w ]+)$/,"BEF $1").replace(/^([\w ]+)[-]$/,"FROM $1").replace(/^[-]([\w ]+)$/,"TO $1").replace(/^[~]([\w ]+)$/,"ABT $1").replace(/^[*]([\w ]+)$/,"EST $1").replace(/^[#]([\w ]+)$/,"CAL $1").replace(/^([\w ]+) ?- ?([\w ]+)$/,"BET $1 AND $2").replace(/^([\w ]+) ?~ ?([\w ]+)$/,"FROM $1 TO $2").replace(/JANUARY/g,"JAN").replace(/FEBRUARY/g,"FEB").replace(/MARCH/g,"MAR").replace(/APRIL/g,"APR").replace(/JUNE/g,"JUN").replace(/JULY/g,"JUL").replace(/AUGUST/g,"AUG").replace(/SEPTEMBER/g,"SEP").replace(/OCTOBER/,"OCT").replace(/NOVEMBER/g,"NOV").replace(/DECEMBER/g,"DEC").replace(/(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)\.? (\d\d?)[, ]+(\d\d\d\d)/g,"$2 $1 $3").replace(/(^| )(\d [A-Z]{3,5} \d{4})/g,"$10$2"),c&&(l=l+" ("+c),e.value!==l&&(e.value=l)};var r=[];r[1]="January",r[2]="February",r[3]="March",r[4]="April",r[5]="May",r[6]="June",r[7]="July",r[8]="August",r[9]="September",r[10]="October",r[11]="November",r[12]="December";var a=[];a[1]="JAN",a[2]="FEB",a[3]="MAR",a[4]="APR",a[5]="MAY",a[6]="JUN",a[7]="JUL",a[8]="AUG",a[9]="SEP",a[10]="OCT",a[11]="NOV",a[12]="DEC";var i=[];i[0]="S",i[1]="M",i[2]="T",i[3]="W",i[4]="T",i[5]="F",i[6]="S";var l=0;function s(e,t,n){var o,a,s='<table border="1"><tr>';for(s+='<td><select class="form-select" id="'+e+'_daySelect" onchange="return webtrees.calUpdateCalendar(\''+e+"', '"+t+"');\">",o=1;o<32;o++)s+='<option value="'+o+'"',n.getDate()===o&&(s+=' selected="selected"'),s+=">"+o+"</option>";for(s+="</select></td>",s+='<td><select class="form-select" id="'+e+'_monSelect" onchange="return webtrees.calUpdateCalendar(\''+e+"', '"+t+"');\">",o=1;o<13;o++)s+='<option value="'+o+'"',n.getMonth()+1===o&&(s+=' selected="selected"'),s+=">"+r[o]+"</option>";for(s+="</select></td>",s+='<td><input class="form-control" type="text" id="'+e+'_yearInput" size="5" value="'+n.getFullYear()+'" onchange="return webtrees.calUpdateCalendar(\''+e+"', '"+t+"');\" /></td></tr>",s+='<tr><td colspan="3">',s+='<table width="100%">',s+="<tr>",a=l,o=0;o<7;o++)s+="<td ",s+='class="descriptionbox"',s+=">",s+=i[a],s+="</td>",++a>6&&(a=0);s+="</tr>";var c=new Date(n.getFullYear(),n.getMonth(),1),d=(7+c.getDay()-l)%7,u=864e5;for(c=c.getTime()-d*u+432e5,c=new Date(c),a=0;a<6;a++){for(s+="<tr>",o=0;o<7;o++){s+="<td ",c.getMonth()===n.getMonth()?c.getDate()===n.getDate()?s+='class="descriptionbox"':s+='class="optionbox"':s+='style="background-color:#EAEAEA; border: solid #AAAAAA 1px;"',s+='><a href="#" onclick="return webtrees.calDateClicked(\''+e+"', '"+t+"', "+c.getFullYear()+", "+c.getMonth()+", "+c.getDate()+');">',s+=c.getDate(),s+="</a></td>";var p=c.getTime()+u;c=new Date(p)}s+="</tr>"}return s+="</table>",s+="</td></tr>",s+="</table>"}function c(e,t,n,o){return document.getElementById(e).value=(o<10?"0":"")+o+" "+a[n+1]+" "+t,!1}function d(e,t,n){var o=e.value.toUpperCase();(o=(o=(o=(o=(o=(o=(o=(o=(o=(o=o.replace(/(^\s*)|(\s*$)/g,"")).replace(/ /g,":")).replace(/\+/g,"")).replace(/-/g,n)).replace(/,/g,".")).replace(/\u00b0/g,":")).replace(/\u0027/g,":")).replace(/^([0-9]+):([0-9]+):([0-9.]+)(.*)/g,function(e,t,n,o,r){var a=parseFloat(t);return a+=n/60,a+=o/3600,r+(a=Math.round(1e4*a)/1e4)})).replace(/^([0-9]+):([0-9]+)(.*)/g,function(e,t,n,o){var r=parseFloat(t);return r+=n/60,o+(r=Math.round(1e4*r)/1e4)})).replace(/(.*)(NSEW])$/g,"$2$1"))&&o.charAt(0)!==n&&o.charAt(0)!==t&&(o=t+o),e.value=o}e.calLocalize=function(e,t,n,o,a,s,c,d,u,p,f,h,m,v,g,b,y,w,A,C){r[1]=e,r[2]=t,r[3]=n,r[4]=o,r[5]=a,r[6]=s,r[7]=c,r[8]=d,r[9]=u,r[10]=p,r[11]=f,r[12]=h,i[0]=m,i[1]=v,i[2]=g,i[3]=b,i[4]=y,i[5]=w,i[6]=A,C>=0&&C<7&&(l=C)},e.calendarWidget=function(e,t){var n=document.getElementById(e),o=document.getElementById(t);if("visible"===n.style.visibility)return n.style.visibility="hidden",!1;if("show"===n.style.visibility)return n.style.visibility="hide",!1;var r,a=/(?:(\d*) ?(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC) )?(\d+)/i.exec(o.value);if(a){var i=a[1]||"1",l=a[2]||"JAN",c=a[3];r=new Date(i+" "+l+" "+c)}else r=new Date;return n.innerHTML=s(t,e,r),"hidden"===n.style.visibility?(n.style.visibility="visible",!1):"hide"===n.style.visibility&&(n.style.visibility="show",!1)},e.calUpdateCalendar=function(e,t){var n=document.getElementById(e+"_daySelect");if(!n)return!1;var o=document.getElementById(e+"_monSelect");if(!o)return!1;var r=document.getElementById(e+"_yearInput");if(!r)return!1;var a=parseInt(o.options[o.selectedIndex].value,10);a-=1;var i=new Date(r.value,a,n.options[n.selectedIndex].value);c(e,i.getFullYear(),i.getMonth(),i.getDate());var l=document.getElementById(t);return l?(l.innerHTML=s(e,t,i),!1):(alert("no dateDiv "+t),!1)},e.calDateClicked=function(t,n,o,r,a){return c(t,o,r,a),e.calendarWidget(n,t),!1},e.persistentToggle=function(e){var t,n="state-of-"+e.dataset.wtPersist,o=localStorage.getItem(n),r=null!==(t=e.getAttribute("aria-expanded"))&&void 0!==t?t:e.checked.toString();null!==o&&o!==r&&e.click(),e.addEventListener("click",function(){"checkbox"===e.type&&localStorage.setItem(n,e.checked.toString()),"button"===e.type&&localStorage.setItem(n,e.getAttribute("aria-expanded"))})},e.reformatLatitude=function(e){return d(e,"N","S")},e.reformatLongitude=function(e){return d(e,"E","W")},e.autocomplete=function(e){$(e).each(function(){var e=this;$(this).typeahead(null,{display:"value",limit:10,minLength:2,source:new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:{url:this.dataset.wtAutocompleteUrl,replace:function(t,n){var o=t.indexOf("?")>0?"&":"?";if("SOUR"===e.dataset.wtAutocompleteExtra){for(var r=e.closest(".wt-nested-edit-fields").previousElementSibling;null===r.querySelector("select");)r=r.previousElementSibling;var a=r.querySelector("select"),i=a.options[a.selectedIndex].value.replace(/@/g,"");return t+o+"query="+n+"&extra="+encodeURIComponent(i)}return t+o+"query="+n}}})})})},e.buildLeafletJsMap=function(e,t,n){for(var o=new L.control.zoom({zoomInTitle:t.i18n.zoomIn,zoomoutTitle:t.i18n.zoomOut}),r=L.Control.extend({options:{position:"topleft"},onAdd:function(){var e=L.DomUtil.create("div","leaflet-bar leaflet-control leaflet-control-custom"),o=L.DomUtil.create("a","leaflet-control-reset",e);return o.href="#",o.setAttribute("aria-label",t.i18n.reset),o.title=t.i18n.reset,o.setAttribute("role","button"),o.innerHTML=t.icons.reset,o.onclick=n,e}}),a=L.Control.extend({options:{position:"topleft"},onAdd:function(e){var n=L.DomUtil.create("div","leaflet-bar leaflet-control leaflet-control-custom"),o=L.DomUtil.create("a","leaflet-control-fullscreen",n);return o.href="#",o.setAttribute("role","button"),o.dataset.wtFullscreen=".wt-fullscreen-container",o.innerHTML=t.icons.fullScreen,n}}),i=localStorage.getItem("map_default_layer"),l=null,s=0,c=Object.entries(t.mapProviders);s<c.length;s++)for(var d=_slicedToArray(c[s],2)[1],u=0,p=Object.entries(d.children);u<p.length;u++){var f=_slicedToArray(p[u],2)[1];f.layer=L.tileLayer(f.url,f),i===f.localName&&(l=f.layer),null===l&&d.default&&f.default&&(l=f.layer)}return null===l&&(console.log("No default map layer defined - using the first one."),l=t.mapProviders[0].children[0].layer),L.map(e,{zoomControl:!1}).addControl(o).addControl(new a).addControl(new r).addLayer(l).addControl(L.control.layers.tree(t.mapProviders,null,{closedSymbol:t.icons.expand,openedSymbol:t.icons.collapse})).on("baselayerchange",function(e){localStorage.setItem("map_default_layer",e.layer.options.localName)})},e.initializeTomSelect=function(t){if(t.tomselect)return t.tomselect;if(t.dataset.wtUrl){var n={plugins:["dropdown_input","virtual_scroll"],maxOptions:!1,searchField:[],render:{item:function(e,t){return"<div>"+e.text+"</div>"},option:function(e,t){return"<div>"+e.text+"</div>"},no_results:function(e,n){return'<div class="no-results">'+t.dataset.wtI18nNoResults+"</div>"}},firstUrl:function(e){return t.dataset.wtUrl+"&query="+encodeURIComponent(e)},load:function(t,n){var o=this;e.httpGet(this.getUrl(t)).then(function(e){return e.json()}).then(function(e){null!==e.nextUrl&&o.setNextUrl(t,e.nextUrl+"&query="+encodeURIComponent(t)),n(e.data)}).catch(n)}};return t.required||n.plugins.push("clear_button"),new TomSelect(t,n)}return t.multiple?new TomSelect(t,{plugins:["caret_position","remove_button"]}):t.required?new TomSelect(t,{}):new TomSelect(t,{plugins:["clear_button"]})},e.resetTomSelect=function(e,t,n){e.clear(!0),e.clearOptions(),e.addOption({value:t,text:n}),e.refreshOptions(),e.addItem(t,!0),e.refreshItems()},e.initializeIFSRO=function(e,t){e.addEventListener("change",function(){t.querySelectorAll(".select-record").forEach(function(e){return e.classList.add("d-none")}),t.querySelectorAll(".select-"+e.value).forEach(function(e){return e.classList.remove("d-none")}),t.querySelectorAll(".select-record select").forEach(function(e){e.disabled=!0,e.matches(".tom-select")&&e.tomselect.disable()}),t.querySelectorAll(".select-"+e.value+" select").forEach(function(e){e.disabled=!1,e.matches(".tom-select")&&e.tomselect.enable()})})},e.createRecordModalSubmit=function(t){t.preventDefault();var n=t.target,o=document.getElementById("wt-ajax-modal"),r=o.querySelector(".modal-content"),a=document.getElementById(r.dataset.wtSelectId);e.httpPost(n.action,new FormData(n)).then(function(e){return e.json()}).then(function(t){a&&""!==t.value?(e.resetTomSelect(a.tomselect,t.value,t.text),bootstrap.Modal.getInstance(o).hide()):r.innerHTML=t.html}).catch(function(e){r.innerHTML=e})},e.textareaPatterns=function(e){e.addEventListener("submit",function(e){e.target.querySelectorAll("textarea[data-wt-pattern]").forEach(function(t){var n=new RegExp("^"+t.dataset.wtPattern+"$");t.readOnly||""===t.value||n.test(t.value)?t.classList.remove("is-invalid"):(e.preventDefault(),e.stopPropagation(),t.classList.add("is-invalid"),t.scrollIntoView())})})},e.setColorTheme=function(e){void 0!==document.body.dataset.bsTheme&&(window.matchMedia("(prefers-color-scheme: dark)").matches?document.body.dataset.bsTheme="dark":document.body.dataset.bsTheme="light")},e.watchForColorThemeChanges=function(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",function(){return e.setColorTheme()})}}(window.webtrees=window.webtrees||{}),$.ajaxSetup({headers:{"X-CSRF-TOKEN":$("meta[name=csrf]").attr("content")}}),document.addEventListener("DOMContentLoaded",function(){var e;webtrees.setColorTheme(),webtrees.watchForColorThemeChanges(),document.querySelectorAll("[data-wt-ajax-url]").forEach(function(e){webtrees.load(e,e.dataset.wtAjaxUrl)}),webtrees.autocomplete("input[data-wt-autocomplete-url]"),document.querySelectorAll(".tom-select").forEach(function(e){return webtrees.initializeTomSelect(e)}),document.querySelectorAll("select.tom-select:not([multiple])").forEach(function(e){e.addEventListener("clear",function(){webtrees.resetTomSelect(e.tomselect,"","")})}),jQuery.extend(jQuery.fn.dataTable.ext.oSort,{"text-asc":function(e,t){return e.localeCompare(t,document.documentElement.lang,{sensitivity:"base"})},"text-desc":function(e,t){return t.localeCompare(e,document.documentElement.lang,{sensitivity:"base"})}}),document.querySelectorAll("table.datatables").forEach(function(e){new DataTable(e),e.classList.remove("d-none")}),document.querySelectorAll("[data-wt-persist]").forEach(function(e){return webtrees.persistentToggle(e)}),$(".wt-osk-trigger").click(function(){(e=document.getElementById(this.dataset.wtId)).focus(),$(".wt-osk").show()}),$(".wt-osk-script-button").change(function(){$(".wt-osk-script").prop("hidden",!0),$(".wt-osk-script-"+this.dataset.wtOskScript).prop("hidden",!1)}),$(".wt-osk-shift-button").click(function(){document.querySelector(".wt-osk-keys").classList.toggle("shifted")}),$(".wt-osk-keys").on("click",".wt-osk-key",function(){var t=$(this).contents().get(0).nodeValue,n=$(".wt-osk-shift-button").hasClass("active"),o=$("sup",this)[0];n&&void 0!==o&&(t=o.innerText),webtrees.pasteAtCursor(e,t),!1===$(".wt-osk-pin-button").hasClass("active")&&$(".wt-osk").hide(),e.dispatchEvent(new Event("input"))}),$(".wt-osk-close").on("click",function(){$(".wt-osk").hide()})}),document.addEventListener("submit",function(e){"POST"===e.target.method&&(e.target.classList.contains("form-is-submitting")?e.preventDefault():e.target.classList.add("form-is-submitting"))}),document.addEventListener("click",function(e){var t=e.target.closest("a,button");if(null!==t)if(!("wtConfirm"in t.dataset)||confirm(t.dataset.wtConfirm)){if("wtPostUrl"in t.dataset&&webtrees.httpPost(t.dataset.wtPostUrl).then(function(){"wtReloadUrl"in t.dataset?document.location=t.dataset.wtReloadUrl:document.location.reload()}).catch(function(e){alert(e)}),"wtFullscreen"in t.dataset){e.stopPropagation();var n=t.closest(t.dataset.wtFullscreen);document.fullscreenElement===n?document.exitFullscreen().catch(function(e){return alert(e)}):n.requestFullscreen().catch(function(e){return alert(e)})}}else e.preventDefault()});var GOOGLE_CHARTS_LIB="https://www.gstatic.com/charts/loader.js",Statistics=function(){return _createClass(function e(){return _classCallCheck(this,e),e.instance||(e.instance=this,this.callbacks=[],this.initialized=!1,this.loading=!1),e.instance},[{key:"init",value:function(e){if(!this.loading&&!this.initialized){var t=this;Promise.all([this.load(GOOGLE_CHARTS_LIB)]).then(function(){google.charts.load("current",{packages:["corechart","geochart","bar"],language:e,mapsApiKey:""}),google.charts.setOnLoadCallback(function(){t.callbacks.forEach(function(e){e()})}),t.initialized=!0}).catch(function(e){console.log(e)})}}},{key:"load",value:function(e){if(!this.loading)return this.loading=!0,new Promise(function(t,n){var o=document.createElement("script");o.async=!0,o.onload=function(){t(e)},o.onerror=function(){n(e)},o.src=e,document.body.appendChild(o)})}},{key:"addCallback",value:function(e){this.initialized?google.charts.setOnLoadCallback(e):this.callbacks.push(e),window.addEventListener("resize",function(){e()})}},{key:"drawChart",value:function(e,t,n,o){var r=google.visualization.arrayToDataTable(n);new google.visualization.ChartWrapper({chartType:t,dataTable:r,options:o,containerId:e}).draw()}},{key:"drawPieChart",value:function(e,t,n){n=Object.assign({title:"",height:"100%",width:"100%",pieStartAngle:0,pieSliceText:"none",pieSliceTextStyle:{color:"#777"},pieHole:.4,legend:{alignment:"center",labeledValueText:"value",position:"labeled"},chartArea:{left:0,top:"5%",height:"90%",width:"100%"},tooltip:{trigger:"none",text:"both"},backgroundColor:"transparent",colors:[]},n),this.drawChart(e,"PieChart",t,n)}},{key:"drawColumnChart",value:function(e,t,n){n=Object.assign({title:"",subtitle:"",titleTextStyle:{color:"#757575",fontName:"Roboto",fontSize:"16px",bold:!1,italic:!1},height:"100%",width:"100%",vAxis:{title:""},hAxis:{title:""},legend:{position:"none"},backgroundColor:"transparent"},n),this.drawChart(e,"ColumnChart",t,n)}},{key:"drawComboChart",value:function(e,t,n){n=Object.assign({title:"",subtitle:"",titleTextStyle:{color:"#757575",fontName:"Roboto",fontSize:"16px",bold:!1,italic:!1},height:"100%",width:"100%",vAxis:{title:""},hAxis:{title:""},legend:{position:"none"},seriesType:"bars",series:{2:{type:"line"}},colors:[],backgroundColor:"transparent"},n),this.drawChart(e,"ComboChart",t,n)}},{key:"drawGeoChart",value:function(e,t,n){n=Object.assign({title:"",subtitle:"",height:"100%",width:"100%"},n),this.drawChart(e,"GeoChart",t,n)}}])}(),statistics=new Statistics;function TreeViewHandler(e,t){var n,o,r,a,i=this;this.treeview=$("#"+e+"_in"),this.loadingImage=$("#"+e+"_loading"),this.toolbox=$("#tv_tools"),this.buttons=$(".tv_button:first",this.toolbox),this.zoom=100,this.boxWidth=180,this.boxExpandedWidth=250,this.cookieDays=3,this.ajaxDetails=document.getElementById(e+"_out").dataset.urlDetails+"&instance="+encodeURIComponent(e),this.ajaxPersons=document.getElementById(e+"_out").dataset.urlIndividuals+"&instance="+encodeURIComponent(e),this.container=this.treeview.parent(),this.auto_box_width=!1,this.updating=!1,"true"===readCookie("compact")&&i.compact(),r=!1,a=!1,i.treeview.on("mousedown touchstart",function(e){var t="touchstart"===e.type?e.touches[0].pageX:e.pageX,r="touchstart"===e.type?e.touches[0].pageY:e.pageY;n=i.treeview.offset().left-t,o=i.treeview.offset().top-r,a=!0}),$(document).on("mousemove touchmove",function(e){if(a){e.preventDefault(),r=!0;var t="touchmove"===e.type?e.touches[0].pageX:e.pageX,l="touchmove"===e.type?e.touches[0].pageY:e.pageY;i.treeview.offset({left:t+n,top:l+o})}}),$(document).on("mouseup touchend",function(e){a=!1,r&&(e.preventDefault(),r=!1,i.updateTree())}),i.toolbox.find("#tvbCompact").each(function(e,t){t.onclick=function(){i.compact()}}),i.toolbox.find("#tvbAllPartners").each(function(e,t){t.onclick=function(){createCookie("allPartners","true"===readCookie("allPartners")?"false":"true",i.cookieDays),document.location=document.location}}),i.toolbox.find("#tvbOpen").each(function(e,t){var n=$(t,i.toolbox);t.onclick=function(){n.addClass("tvPressed"),i.setLoading();var e=jQuery.Event("click");i.treeview.find(".tv_box:not(.boxExpanded)").each(function(t,n){var o=$(n,i.treeview).offset();o.left>=i.leftMin&&o.left<=i.leftMax&&o.top>=i.topMin&&o.top<=i.topMax&&i.expandBox(n,e)}),n.removeClass("tvPressed"),i.setComplete()}}),i.toolbox.find("#tvbClose").each(function(e,t){var n=$(t,i.toolbox);t.onclick=function(){n.addClass("tvPressed"),i.setLoading(),i.treeview.find(".tv_box.boxExpanded").each(function(e,t){$(t).css("display","none").removeClass("boxExpanded").parent().find(".tv_box.collapsedContent").css("display","block")}),n.removeClass("tvPressed"),i.setComplete()}}),i.centerOnRoot()}function createCookie(e,t,n){if(n){var o=new Date;o.setTime(o.getTime()+24*n*60*60*1e3),document.cookie=e+"="+t+"; expires="+o.toGMTString()+"; path=/"}else document.cookie=e+"="+t+"; path=/"}function readCookie(e){for(var t=e+"=",n=document.cookie.split(";"),o=0;o<n.length;o++){for(var r=n[o];" "===r.charAt(0);)r=r.substring(1,r.length);if(0===r.indexOf(t))return r.substring(t.length,r.length)}return null}TreeViewHandler.prototype.setLoading=function(){this.treeview.css("cursor","wait"),this.loadingImage.css("display","block")},TreeViewHandler.prototype.setComplete=function(){this.treeview.css("cursor","move"),this.loadingImage.css("display","none")},TreeViewHandler.prototype.getSize=function(){var e=this,t=e.container.parent(),n=t.offset();e.leftMin=n.left,e.leftMax=e.leftMin+t.innerWidth(),e.topMin=n.top,e.topMax=e.topMin+t.innerHeight()},TreeViewHandler.prototype.updateTree=function(e,t){var n=this,o=[],r=[];return this.getSize(),n.treeview.find("td[abbr]").each(function(e,t){var a=(t=$(t,n.treeview)).offset();a.left>=n.leftMin&&a.left<=n.leftMax&&a.top>=n.topMin&&a.top<=n.topMax&&(o.push(t.attr("abbr")),r.push(t))}),o.length>0?(n.updating=!0,n.setLoading(),jQuery.ajax({url:n.ajaxPersons,dataType:"json",data:"q="+o.join(";"),success:function(e){for(var t=r.length,o=($(".rootPerson",this.treeview).offset().left,0);o<t;o++)r[o].removeAttr("abbr").html(e[o]);n.getSize()},complete:function(){n.treeview.find("td[abbr]").length&&n.updateTree(e,t),n.auto_box_width&&n.treeview.find(".tv_box").css("width","auto"),n.updating=!0,e&&n.centerOnRoot(),t&&t.removeClass("tvPressed"),n.setComplete(),n.updating=!1},timeout:function(){t&&t.removeClass("tvPressed"),n.updating=!1,n.setComplete()}})):(t&&t.removeClass("tvPressed"),n.setComplete()),!1},TreeViewHandler.prototype.compact=function(){var e=this,t=$("#tvbCompact",e.toolbox);if(e.setLoading(),e.auto_box_width){var n=e.boxWidth*(e.zoom/100)+"px",o=e.boxExpandedWidth*(e.zoom/100)+"px";e.treeview.find(".tv_box:not(boxExpanded)",e.treeview).css("width",n),e.treeview.find(".boxExpanded",e.treeview).css("width",o),e.auto_box_width=!1,readCookie("compact")&&createCookie("compact",!1,e.cookieDays),t.removeClass("tvPressed")}else e.treeview.find(".tv_box").css("width","auto"),e.auto_box_width=!0,readCookie("compact")||createCookie("compact",!0,e.cookieDays),e.updating||e.updateTree(),t.addClass("tvPressed");return e.setComplete(),!1},TreeViewHandler.prototype.centerOnRoot=function(){this.loadingImage.css("display","block");var e=this.container,t=e.innerWidth()/2;if(Number.isNaN(t))return!1;e.innerHeight(),$(".rootPerson",this.treeview);return this.updating||this.setComplete(),!1},TreeViewHandler.prototype.expandBox=function(e,t){if($(t.target).hasClass("tv_link"))return!1;var n,o,r=(e=$(e,this.treeview)).parent(),a=e.attr("abbr"),i=this;if(r.hasClass("detailsLoaded"))o=r.find(".collapsedContent"),n=r.find(".tv_box:not(.collapsedContent)");else{n=e,o=e.clone(),r.append(o.addClass("collapsedContent").css("display","none"));var l=this.loadingImage.find("img").clone().addClass("tv_box_loading").css("display","block");e.prepend(l),i.updating=!0,i.setLoading(),e.load(i.ajaxDetails+"&pid="+encodeURIComponent(a),function(){"function"==typeof CB_Init&&CB_Init(),e.css("width",i.boxExpandedWidth*(i.zoom/100)+"px"),l.remove(),r.addClass("detailsLoaded"),i.setComplete(),i.updating=!1})}return e.hasClass("boxExpanded")?(n.css("display","none"),o.css("display","block"),e.removeClass("boxExpanded")):(n.css("display","block"),o.css("display","none"),n.addClass("boxExpanded")),this.getSize(),!1};
+"use strict";function _typeof(e){return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _defineProperties(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,_toPropertyKey(o.key),o)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function _toPropertyKey(e){var t=_toPrimitive(e,"string");return"symbol"==_typeof(t)?t:t+""}function _toPrimitive(e,t){if("object"!=_typeof(e)||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var o=n.call(e,t||"default");if("object"!=_typeof(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function _slicedToArray(e,t){return _arrayWithHoles(e)||_iterableToArrayLimit(e,t)||_unsupportedIterableToArray(e,t)||_nonIterableRest()}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(e){if("string"==typeof e)return _arrayLikeToArray(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=Array(t);n<t;n++)o[n]=e[n];return o}function _iterableToArrayLimit(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o,r,a,i,l=[],s=!0,c=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;s=!1}else for(;!(s=(o=a.call(n)).done)&&(l.push(o.value),l.length!==t);s=!0);}catch(e){c=!0,r=e}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw r}}return l}}function _arrayWithHoles(e){if(Array.isArray(e))return e}!function(e){var t=document.documentElement.lang,n={Han:/[\u3400-\u9FCC]/,Grek:/[\u0370-\u03FF]/,Cyrl:/[\u0400-\u04FF]/,Hebr:/[\u0590-\u05FF]/,Arab:/[\u0600-\u06FF]/};function o(e){return e.replace(/\s+/g," ").trim()}e.httpGet=function(e){var t={method:"GET",credentials:"same-origin",referrerPolicy:"same-origin",headers:new Headers({"x-requested-with":"XMLHttpRequest"})};return fetch(e,t)},e.load=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,o=document.head.querySelector("meta[name=csrf]").getAttribute("content"),r={body:n,method:null===n?"GET":"POST",headers:new Headers({accept:"text/html","x-requested-with":"XMLHttpRequest","x-csrf-token":o})};fetch(t,r).then(function(e){return e.text()}).then(function(t){e.innerHTML=t;var n=(new DOMParser).parseFromString(t,"text/html");Array.from(n.body.childNodes).forEach(function(e){if("SCRIPT"===e.tagName){var t=document.createElement("script");Array.from(e.attributes).forEach(function(e){t.setAttribute(e.name,e.value)}),e.src?t.src=e.src:t.textContent=e.textContent,e.remove(),document.body.appendChild(t)}})})},e.httpPost=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=document.head.querySelector("meta[name=csrf]").getAttribute("content"),o={body:t,method:"POST",credentials:"same-origin",referrerPolicy:"same-origin",headers:new Headers({"X-CSRF-TOKEN":n,"x-requested-with":"XMLHttpRequest"})};return fetch(e,o,t)},e.detectScript=function(e){for(var t in n)if(e.match(n[t]))return t;return"Latn"},e.buildNameFromParts=function(n,r,a,i,l,s){var c="Han"===e.detectScript(n+r+a+r+i+l),d=c?"":" ",u=c||-1!==["hu","jp","ko","vi","zh-Hans","zh-Hant"].indexOf(t),p=-1!==["is"].indexOf(t)?"":"/";n=o(n),r=o(r.replace(/,/g,d)),a=o(a),i=function(e,n){return"pl"===t&&"F"===n?e.replace(/ski$/,"ska").replace(/cki$/,"cka").replace(/dzki$/,"dzka").replace(/żki$/,"żka"):e}(o(i.replace(/,/g,d)),s),l=o(l);var f=a.endsWith("'")||a.endsWith("‘")?"":" ",h=o(a+f+i);return o(n+d+(u?p+h+p+d+r:r+d+p+h+p)+d+l)},e.pasteAtCursor=function(e,t){if(null!==e){var n=e.selectionStart+t.length,o=e.value.substring(0,e.selectionStart),r=e.value.substring(e.selectionEnd);e.value=o+t+r,e.setSelectionRange(n,n),e.focus()}},e.reformatDate=function(e,t){var n=["JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"],o=["MUHAR","SAFAR","RABIA","RABIT","JUMAA","JUMAT","RAJAB","SHAAB","RAMAD","SHAWW","DHUAQ","DHUAH"],r=["TSH","CSH","KSL","TVT","SHV","ADR","ADS","NSN","IYR","SVN","TMZ","AAV","ELL"],a=["VEND","BRUM","FRIM","NIVO","PLUV","VENT","GERM","FLOR","PRAI","MESS","THER","FRUC","COMP"],i=["FARVA","ORDIB","KHORD","TIR","MORDA","SHAHR","MEHR","ABAN","AZAR","DEY","BAHMA","ESFAN"],l=e.value,s=l.split("("),c="";s.length>1&&(l=s[0],c=s[1]),l=(l=(l=(l=(l=(l=(l=(l=(l=(l=(l=(l=(l=l.toUpperCase()).replace(/\s+/g," ")).replace(/(^\s)|(\s$)/,"")).replace(/(\d)([A-Z])/g,"$1 $2")).replace(/([A-Z])(\d)/g,"$1 $2")).replace(/^Q ([1-4]) (\d\d\d\d)$/,function(e,t,o){return"BET "+n[3*t-3]+" "+o+" AND "+n[3*t-1]+" "+o})).replace(/(@#DHIJRI@|HIJRI)( \d?\d )(\d?\d)( \d?\d?\d?\d)/,function(e,t,n,r,a){return"@#DHIJRI@"+n+o[r-1]+a})).replace(/(@#DJALALI@|JALALI)( \d?\d )(\d?\d)( \d?\d?\d?\d)/,function(e,t,n,o,r){return"@#DJALALI@"+n+i[o-1]+r})).replace(/(@#DHEBREW@|HEBREW)( \d?\d )(\d?\d)( \d?\d?\d?\d)/,function(e,t,n,o,a){return"@#HEBREW@"+n+r[o-1]+a})).replace(/(@#DFRENCH R@|FRENCH)( \d?\d )(\d?\d)( \d?\d?\d?\d)/,function(e,t,n,o,r){return"@#DFRENCH R@"+n+a[o-1]+r})).replace(/(\d\d)(\d\d)(\d\d)(\d\d)/g,function(e,t,o,r,a){return t>"12"&&r<="12"&&a<="31"?a+" "+n[r-1]+" "+t+o:t<="31"&&o<="12"&&r>"12"?t+" "+n[o-1]+" "+r+a:e})).replace(/(\d+)([ ./-])(\d+)(\2)(\d+)/g,function(e,o,r,a,i,l){o=parseInt(o,10),r=parseInt(a,10),a=parseInt(l,10);var s=(new Date).getFullYear(),c=s%100,d=s-c;return("DMY"===t||o>13&&a>31)&&o<=31&&r<=12?o+" "+n[r-1]+" "+(a>=100?a:a<=c?a+d:a+d-100):("MDY"===t||r>13&&a>31)&&o<=12&&r<=31?r+" "+n[o-1]+" "+(a>=100?a:a<=c?a+d:a+d-100):("YMD"===t||o>31)&&r<=12&&a<=31?a+" "+n[r-1]+" "+(o>=100?o:o<=c?o+d:o+d-100):e})).replace(/^[>]([\w ]+)$/,"AFT $1").replace(/^[<]([\w ]+)$/,"BEF $1").replace(/^([\w ]+)[-]$/,"FROM $1").replace(/^[-]([\w ]+)$/,"TO $1").replace(/^[~]([\w ]+)$/,"ABT $1").replace(/^[*]([\w ]+)$/,"EST $1").replace(/^[#]([\w ]+)$/,"CAL $1").replace(/^([\w ]+) ?- ?([\w ]+)$/,"BET $1 AND $2").replace(/^([\w ]+) ?~ ?([\w ]+)$/,"FROM $1 TO $2").replace(/JANUARY/g,"JAN").replace(/FEBRUARY/g,"FEB").replace(/MARCH/g,"MAR").replace(/APRIL/g,"APR").replace(/JUNE/g,"JUN").replace(/JULY/g,"JUL").replace(/AUGUST/g,"AUG").replace(/SEPTEMBER/g,"SEP").replace(/OCTOBER/,"OCT").replace(/NOVEMBER/g,"NOV").replace(/DECEMBER/g,"DEC").replace(/(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)\.? (\d\d?)[, ]+(\d\d\d\d)/g,"$2 $1 $3").replace(/(^| )(\d [A-Z]{3,5} \d{4})/g,"$10$2"),c&&(l=l+" ("+c),e.value!==l&&(e.value=l)};var r=[];r[1]="January",r[2]="February",r[3]="March",r[4]="April",r[5]="May",r[6]="June",r[7]="July",r[8]="August",r[9]="September",r[10]="October",r[11]="November",r[12]="December";var a=[];a[1]="JAN",a[2]="FEB",a[3]="MAR",a[4]="APR",a[5]="MAY",a[6]="JUN",a[7]="JUL",a[8]="AUG",a[9]="SEP",a[10]="OCT",a[11]="NOV",a[12]="DEC";var i=[];i[0]="S",i[1]="M",i[2]="T",i[3]="W",i[4]="T",i[5]="F",i[6]="S";var l=0;function s(e,t,n){var o,a,s='<table border="1"><tr>';for(s+='<td><select class="form-select" id="'+e+'_daySelect" onchange="return webtrees.calUpdateCalendar(\''+e+"', '"+t+"');\">",o=1;o<32;o++)s+='<option value="'+o+'"',n.getDate()===o&&(s+=' selected="selected"'),s+=">"+o+"</option>";for(s+="</select></td>",s+='<td><select class="form-select" id="'+e+'_monSelect" onchange="return webtrees.calUpdateCalendar(\''+e+"', '"+t+"');\">",o=1;o<13;o++)s+='<option value="'+o+'"',n.getMonth()+1===o&&(s+=' selected="selected"'),s+=">"+r[o]+"</option>";for(s+="</select></td>",s+='<td><input class="form-control" type="text" id="'+e+'_yearInput" size="5" value="'+n.getFullYear()+'" onchange="return webtrees.calUpdateCalendar(\''+e+"', '"+t+"');\" /></td></tr>",s+='<tr><td colspan="3">',s+='<table width="100%">',s+="<tr>",a=l,o=0;o<7;o++)s+="<td ",s+='class="descriptionbox"',s+=">",s+=i[a],s+="</td>",++a>6&&(a=0);s+="</tr>";var c=new Date(n.getFullYear(),n.getMonth(),1),d=(7+c.getDay()-l)%7,u=864e5;for(c=c.getTime()-d*u+432e5,c=new Date(c),a=0;a<6;a++){for(s+="<tr>",o=0;o<7;o++){s+="<td ",c.getMonth()===n.getMonth()?c.getDate()===n.getDate()?s+='class="descriptionbox"':s+='class="optionbox"':s+='style="background-color:#EAEAEA; border: solid #AAAAAA 1px;"',s+='><a href="#" onclick="return webtrees.calDateClicked(\''+e+"', '"+t+"', "+c.getFullYear()+", "+c.getMonth()+", "+c.getDate()+');">',s+=c.getDate(),s+="</a></td>";var p=c.getTime()+u;c=new Date(p)}s+="</tr>"}return s+="</table>",s+="</td></tr>",s+="</table>"}function c(e,t,n,o){return document.getElementById(e).value=(o<10?"0":"")+o+" "+a[n+1]+" "+t,!1}function d(e,t,n){var o=e.value.toUpperCase();(o=(o=(o=(o=(o=(o=(o=(o=(o=(o=o.replace(/(^\s*)|(\s*$)/g,"")).replace(/ /g,":")).replace(/\+/g,"")).replace(/-/g,n)).replace(/,/g,".")).replace(/\u00b0/g,":")).replace(/\u0027/g,":")).replace(/^([0-9]+):([0-9]+):([0-9.]+)(.*)/g,function(e,t,n,o,r){var a=parseFloat(t);return a+=n/60,a+=o/3600,r+(a=Math.round(1e4*a)/1e4)})).replace(/^([0-9]+):([0-9]+)(.*)/g,function(e,t,n,o){var r=parseFloat(t);return r+=n/60,o+(r=Math.round(1e4*r)/1e4)})).replace(/(.*)(NSEW])$/g,"$2$1"))&&o.charAt(0)!==n&&o.charAt(0)!==t&&(o=t+o),e.value=o}e.calLocalize=function(e,t,n,o,a,s,c,d,u,p,f,h,m,v,g,b,y,w,A,C){r[1]=e,r[2]=t,r[3]=n,r[4]=o,r[5]=a,r[6]=s,r[7]=c,r[8]=d,r[9]=u,r[10]=p,r[11]=f,r[12]=h,i[0]=m,i[1]=v,i[2]=g,i[3]=b,i[4]=y,i[5]=w,i[6]=A,C>=0&&C<7&&(l=C)},e.calendarWidget=function(e,t){var n=document.getElementById(e),o=document.getElementById(t);if("visible"===n.style.visibility)return n.style.visibility="hidden",!1;if("show"===n.style.visibility)return n.style.visibility="hide",!1;var r,a=/(?:(\d*) ?(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC) )?(\d+)/i.exec(o.value);if(a){var i=a[1]||"1",l=a[2]||"JAN",c=a[3];r=new Date(i+" "+l+" "+c)}else r=new Date;return n.innerHTML=s(t,e,r),"hidden"===n.style.visibility?(n.style.visibility="visible",!1):"hide"===n.style.visibility&&(n.style.visibility="show",!1)},e.calUpdateCalendar=function(e,t){var n=document.getElementById(e+"_daySelect");if(!n)return!1;var o=document.getElementById(e+"_monSelect");if(!o)return!1;var r=document.getElementById(e+"_yearInput");if(!r)return!1;var a=parseInt(o.options[o.selectedIndex].value,10);a-=1;var i=new Date(r.value,a,n.options[n.selectedIndex].value);c(e,i.getFullYear(),i.getMonth(),i.getDate());var l=document.getElementById(t);return l?(l.innerHTML=s(e,t,i),!1):(alert("no dateDiv "+t),!1)},e.calDateClicked=function(t,n,o,r,a){return c(t,o,r,a),e.calendarWidget(n,t),!1},e.persistentToggle=function(e){var t,n="state-of-"+e.dataset.wtPersist,o=localStorage.getItem(n),r=null!==(t=e.getAttribute("aria-expanded"))&&void 0!==t?t:e.checked.toString();null!==o&&o!==r&&e.click(),e.addEventListener("click",function(){"checkbox"===e.type&&localStorage.setItem(n,e.checked.toString()),"button"===e.type&&localStorage.setItem(n,e.getAttribute("aria-expanded"))})},e.reformatLatitude=function(e){return d(e,"N","S")},e.reformatLongitude=function(e){return d(e,"E","W")},e.autocomplete=function(e){$(e).each(function(){var e=this;$(this).typeahead(null,{display:"value",limit:10,minLength:2,source:new Bloodhound({datumTokenizer:Bloodhound.tokenizers.obj.whitespace("value"),queryTokenizer:Bloodhound.tokenizers.whitespace,remote:{url:this.dataset.wtAutocompleteUrl,replace:function(t,n){var o=t.indexOf("?")>0?"&":"?";if("SOUR"===e.dataset.wtAutocompleteExtra){for(var r=e.closest(".wt-nested-edit-fields").previousElementSibling;null===r.querySelector("select");)r=r.previousElementSibling;var a=r.querySelector("select"),i=a.options[a.selectedIndex].value.replace(/@/g,"");return t+o+"query="+n+"&extra="+encodeURIComponent(i)}return t+o+"query="+n}}})})})},e.buildLeafletJsMap=function(e,t,n){for(var o=new L.control.zoom({zoomInTitle:t.i18n.zoomIn,zoomoutTitle:t.i18n.zoomOut}),r=L.Control.extend({options:{position:"topleft"},onAdd:function(){var e=L.DomUtil.create("div","leaflet-bar leaflet-control leaflet-control-custom"),o=L.DomUtil.create("a","leaflet-control-reset",e);return o.href="#",o.setAttribute("aria-label",t.i18n.reset),o.title=t.i18n.reset,o.setAttribute("role","button"),o.innerHTML=t.icons.reset,o.onclick=n,e}}),a=L.Control.extend({options:{position:"topleft"},onAdd:function(e){var n=L.DomUtil.create("div","leaflet-bar leaflet-control leaflet-control-custom"),o=L.DomUtil.create("a","leaflet-control-fullscreen",n);return o.href="#",o.setAttribute("role","button"),o.dataset.wtFullscreen=".wt-fullscreen-container",o.innerHTML=t.icons.fullScreen,n}}),i=localStorage.getItem("map_default_layer"),l=null,s=0,c=Object.entries(t.mapProviders);s<c.length;s++)for(var d=_slicedToArray(c[s],2)[1],u=0,p=Object.entries(d.children);u<p.length;u++){var f=_slicedToArray(p[u],2)[1];f.layer=L.tileLayer(f.url,f),i===f.localName&&(l=f.layer),null===l&&d.default&&f.default&&(l=f.layer)}return null===l&&(console.log("No default map layer defined - using the first one."),l=t.mapProviders[0].children[0].layer),L.map(e,{zoomControl:!1}).addControl(o).addControl(new a).addControl(new r).addLayer(l).addControl(L.control.layers.tree(t.mapProviders,null,{closedSymbol:t.icons.expand,openedSymbol:t.icons.collapse})).on("baselayerchange",function(e){localStorage.setItem("map_default_layer",e.layer.options.localName)})},e.initializeTomSelect=function(t){if(t.tomselect)return t.tomselect;if(t.dataset.wtUrl){var n={plugins:["dropdown_input","virtual_scroll"],maxOptions:!1,searchField:[],render:{item:function(e,t){return"<div>"+e.text+"</div>"},option:function(e,t){return"<div>"+e.text+"</div>"},no_results:function(e,n){return'<div class="no-results">'+t.dataset.wtI18nNoResults+"</div>"}},firstUrl:function(e){return t.dataset.wtUrl+"&query="+encodeURIComponent(e)},load:function(t,n){var o=this;e.httpGet(this.getUrl(t)).then(function(e){return e.json()}).then(function(e){null!==e.nextUrl&&o.setNextUrl(t,e.nextUrl+"&query="+encodeURIComponent(t)),n(e.data)}).catch(n)}};return t.required||n.plugins.push("clear_button"),new TomSelect(t,n)}return t.multiple?new TomSelect(t,{plugins:["caret_position","remove_button"]}):t.required?new TomSelect(t,{}):new TomSelect(t,{plugins:["clear_button"]})},e.resetTomSelect=function(e,t,n){e.clear(!0),e.clearOptions(),e.addOption({value:t,text:n}),e.refreshOptions(),e.addItem(t,!0),e.refreshItems()},e.initializeIFSRO=function(e,t){e.addEventListener("change",function(){t.querySelectorAll(".select-record").forEach(function(e){return e.classList.add("d-none")}),t.querySelectorAll(".select-"+e.value).forEach(function(e){return e.classList.remove("d-none")}),t.querySelectorAll(".select-record select").forEach(function(e){e.disabled=!0,e.matches(".tom-select")&&e.tomselect.disable()}),t.querySelectorAll(".select-"+e.value+" select").forEach(function(e){e.disabled=!1,e.matches(".tom-select")&&e.tomselect.enable()})})},e.createRecordModalSubmit=function(t){t.preventDefault();var n=t.target,o=document.getElementById("wt-ajax-modal"),r=o.querySelector(".modal-content"),a=document.getElementById(r.dataset.wtSelectId);e.httpPost(n.action,new FormData(n)).then(function(e){return e.json()}).then(function(t){a&&""!==t.value?(e.resetTomSelect(a.tomselect,t.value,t.text),bootstrap.Modal.getInstance(o).hide()):r.innerHTML=t.html}).catch(function(e){r.innerHTML=e})},e.textareaPatterns=function(e){e.addEventListener("submit",function(e){e.target.querySelectorAll("textarea[data-wt-pattern]").forEach(function(t){var n=new RegExp("^"+t.dataset.wtPattern+"$");t.readOnly||""===t.value||n.test(t.value)?t.classList.remove("is-invalid"):(e.preventDefault(),e.stopPropagation(),t.classList.add("is-invalid"),t.scrollIntoView())})})},e.setColorTheme=function(e){window.matchMedia("(prefers-color-scheme: dark)").matches?document.documentElement.dataset.bsTheme="dark":document.documentElement.dataset.bsTheme="light"},e.watchForColorThemeChanges=function(){window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",function(){return e.setColorTheme()})}}(window.webtrees=window.webtrees||{}),$.ajaxSetup({headers:{"X-CSRF-TOKEN":$("meta[name=csrf]").attr("content")}}),document.addEventListener("DOMContentLoaded",function(){var e;"auto"===document.documentElement.dataset.bsTheme&&(webtrees.setColorTheme(),webtrees.watchForColorThemeChanges()),document.querySelectorAll("[data-wt-ajax-url]").forEach(function(e){webtrees.load(e,e.dataset.wtAjaxUrl)}),webtrees.autocomplete("input[data-wt-autocomplete-url]"),document.querySelectorAll(".tom-select").forEach(function(e){return webtrees.initializeTomSelect(e)}),document.querySelectorAll("select.tom-select:not([multiple])").forEach(function(e){e.addEventListener("clear",function(){webtrees.resetTomSelect(e.tomselect,"","")})}),jQuery.extend(jQuery.fn.dataTable.ext.oSort,{"text-asc":function(e,t){return e.localeCompare(t,document.documentElement.lang,{sensitivity:"base"})},"text-desc":function(e,t){return t.localeCompare(e,document.documentElement.lang,{sensitivity:"base"})}}),document.querySelectorAll("table.datatables").forEach(function(e){new DataTable(e),e.classList.remove("d-none")}),document.querySelectorAll("[data-wt-persist]").forEach(function(e){return webtrees.persistentToggle(e)}),$(".wt-osk-trigger").click(function(){(e=document.getElementById(this.dataset.wtId)).focus(),$(".wt-osk").show()}),$(".wt-osk-script-button").change(function(){$(".wt-osk-script").prop("hidden",!0),$(".wt-osk-script-"+this.dataset.wtOskScript).prop("hidden",!1)}),$(".wt-osk-shift-button").click(function(){document.querySelector(".wt-osk-keys").classList.toggle("shifted")}),$(".wt-osk-keys").on("click",".wt-osk-key",function(){var t=$(this).contents().get(0).nodeValue,n=$(".wt-osk-shift-button").hasClass("active"),o=$("sup",this)[0];n&&void 0!==o&&(t=o.innerText),webtrees.pasteAtCursor(e,t),!1===$(".wt-osk-pin-button").hasClass("active")&&$(".wt-osk").hide(),e.dispatchEvent(new Event("input"))}),$(".wt-osk-close").on("click",function(){$(".wt-osk").hide()})}),document.addEventListener("submit",function(e){"POST"===e.target.method&&(e.target.classList.contains("form-is-submitting")?e.preventDefault():e.target.classList.add("form-is-submitting"))}),document.addEventListener("click",function(e){var t=e.target.closest("a,button");if(null!==t)if(!("wtConfirm"in t.dataset)||confirm(t.dataset.wtConfirm)){if("wtPostUrl"in t.dataset&&webtrees.httpPost(t.dataset.wtPostUrl).then(function(){"wtReloadUrl"in t.dataset?document.location=t.dataset.wtReloadUrl:document.location.reload()}).catch(function(e){alert(e)}),"wtFullscreen"in t.dataset){e.stopPropagation();var n=t.closest(t.dataset.wtFullscreen);document.fullscreenElement===n?document.exitFullscreen().catch(function(e){return alert(e)}):n.requestFullscreen().catch(function(e){return alert(e)})}}else e.preventDefault()});var GOOGLE_CHARTS_LIB="https://www.gstatic.com/charts/loader.js",Statistics=function(){return _createClass(function e(){return _classCallCheck(this,e),e.instance||(e.instance=this,this.callbacks=[],this.initialized=!1,this.loading=!1),e.instance},[{key:"init",value:function(e){if(!this.loading&&!this.initialized){var t=this;Promise.all([this.load(GOOGLE_CHARTS_LIB)]).then(function(){google.charts.load("current",{packages:["corechart","geochart","bar"],language:e,mapsApiKey:""}),google.charts.setOnLoadCallback(function(){t.callbacks.forEach(function(e){e()})}),t.initialized=!0}).catch(function(e){console.log(e)})}}},{key:"load",value:function(e){if(!this.loading)return this.loading=!0,new Promise(function(t,n){var o=document.createElement("script");o.async=!0,o.onload=function(){t(e)},o.onerror=function(){n(e)},o.src=e,document.body.appendChild(o)})}},{key:"addCallback",value:function(e){this.initialized?google.charts.setOnLoadCallback(e):this.callbacks.push(e),window.addEventListener("resize",function(){e()})}},{key:"drawChart",value:function(e,t,n,o){var r=google.visualization.arrayToDataTable(n);new google.visualization.ChartWrapper({chartType:t,dataTable:r,options:o,containerId:e}).draw()}},{key:"drawPieChart",value:function(e,t,n){n=Object.assign({title:"",height:"100%",width:"100%",pieStartAngle:0,pieSliceText:"none",pieSliceTextStyle:{color:"#777"},pieHole:.4,legend:{alignment:"center",labeledValueText:"value",position:"labeled"},chartArea:{left:0,top:"5%",height:"90%",width:"100%"},tooltip:{trigger:"none",text:"both"},backgroundColor:"transparent",colors:[]},n),this.drawChart(e,"PieChart",t,n)}},{key:"drawColumnChart",value:function(e,t,n){n=Object.assign({title:"",subtitle:"",titleTextStyle:{color:"#757575",fontName:"Roboto",fontSize:"16px",bold:!1,italic:!1},height:"100%",width:"100%",vAxis:{title:""},hAxis:{title:""},legend:{position:"none"},backgroundColor:"transparent"},n),this.drawChart(e,"ColumnChart",t,n)}},{key:"drawComboChart",value:function(e,t,n){n=Object.assign({title:"",subtitle:"",titleTextStyle:{color:"#757575",fontName:"Roboto",fontSize:"16px",bold:!1,italic:!1},height:"100%",width:"100%",vAxis:{title:""},hAxis:{title:""},legend:{position:"none"},seriesType:"bars",series:{2:{type:"line"}},colors:[],backgroundColor:"transparent"},n),this.drawChart(e,"ComboChart",t,n)}},{key:"drawGeoChart",value:function(e,t,n){n=Object.assign({title:"",subtitle:"",height:"100%",width:"100%"},n),this.drawChart(e,"GeoChart",t,n)}}])}(),statistics=new Statistics;function TreeViewHandler(e,t){var n,o,r,a,i=this;this.treeview=$("#"+e+"_in"),this.loadingImage=$("#"+e+"_loading"),this.toolbox=$("#tv_tools"),this.buttons=$(".tv_button:first",this.toolbox),this.zoom=100,this.boxWidth=180,this.boxExpandedWidth=250,this.cookieDays=3,this.ajaxDetails=document.getElementById(e+"_out").dataset.urlDetails+"&instance="+encodeURIComponent(e),this.ajaxPersons=document.getElementById(e+"_out").dataset.urlIndividuals+"&instance="+encodeURIComponent(e),this.container=this.treeview.parent(),this.auto_box_width=!1,this.updating=!1,"true"===readCookie("compact")&&i.compact(),r=!1,a=!1,i.treeview.on("mousedown touchstart",function(e){var t="touchstart"===e.type?e.touches[0].pageX:e.pageX,r="touchstart"===e.type?e.touches[0].pageY:e.pageY;n=i.treeview.offset().left-t,o=i.treeview.offset().top-r,a=!0}),$(document).on("mousemove touchmove",function(e){if(a){e.preventDefault(),r=!0;var t="touchmove"===e.type?e.touches[0].pageX:e.pageX,l="touchmove"===e.type?e.touches[0].pageY:e.pageY;i.treeview.offset({left:t+n,top:l+o})}}),$(document).on("mouseup touchend",function(e){a=!1,r&&(e.preventDefault(),r=!1,i.updateTree())}),i.toolbox.find("#tvbCompact").each(function(e,t){t.onclick=function(){i.compact()}}),i.toolbox.find("#tvbAllPartners").each(function(e,t){t.onclick=function(){createCookie("allPartners","true"===readCookie("allPartners")?"false":"true",i.cookieDays),document.location=document.location}}),i.toolbox.find("#tvbOpen").each(function(e,t){var n=$(t,i.toolbox);t.onclick=function(){n.addClass("tvPressed"),i.setLoading();var e=jQuery.Event("click");i.treeview.find(".tv_box:not(.boxExpanded)").each(function(t,n){var o=$(n,i.treeview).offset();o.left>=i.leftMin&&o.left<=i.leftMax&&o.top>=i.topMin&&o.top<=i.topMax&&i.expandBox(n,e)}),n.removeClass("tvPressed"),i.setComplete()}}),i.toolbox.find("#tvbClose").each(function(e,t){var n=$(t,i.toolbox);t.onclick=function(){n.addClass("tvPressed"),i.setLoading(),i.treeview.find(".tv_box.boxExpanded").each(function(e,t){$(t).css("display","none").removeClass("boxExpanded").parent().find(".tv_box.collapsedContent").css("display","block")}),n.removeClass("tvPressed"),i.setComplete()}}),i.centerOnRoot()}function createCookie(e,t,n){if(n){var o=new Date;o.setTime(o.getTime()+24*n*60*60*1e3),document.cookie=e+"="+t+"; expires="+o.toGMTString()+"; path=/"}else document.cookie=e+"="+t+"; path=/"}function readCookie(e){for(var t=e+"=",n=document.cookie.split(";"),o=0;o<n.length;o++){for(var r=n[o];" "===r.charAt(0);)r=r.substring(1,r.length);if(0===r.indexOf(t))return r.substring(t.length,r.length)}return null}TreeViewHandler.prototype.setLoading=function(){this.treeview.css("cursor","wait"),this.loadingImage.css("display","block")},TreeViewHandler.prototype.setComplete=function(){this.treeview.css("cursor","move"),this.loadingImage.css("display","none")},TreeViewHandler.prototype.getSize=function(){var e=this,t=e.container.parent(),n=t.offset();e.leftMin=n.left,e.leftMax=e.leftMin+t.innerWidth(),e.topMin=n.top,e.topMax=e.topMin+t.innerHeight()},TreeViewHandler.prototype.updateTree=function(e,t){var n=this,o=[],r=[];return this.getSize(),n.treeview.find("td[abbr]").each(function(e,t){var a=(t=$(t,n.treeview)).offset();a.left>=n.leftMin&&a.left<=n.leftMax&&a.top>=n.topMin&&a.top<=n.topMax&&(o.push(t.attr("abbr")),r.push(t))}),o.length>0?(n.updating=!0,n.setLoading(),jQuery.ajax({url:n.ajaxPersons,dataType:"json",data:"q="+o.join(";"),success:function(e){for(var t=r.length,o=($(".rootPerson",this.treeview).offset().left,0);o<t;o++)r[o].removeAttr("abbr").html(e[o]);n.getSize()},complete:function(){n.treeview.find("td[abbr]").length&&n.updateTree(e,t),n.auto_box_width&&n.treeview.find(".tv_box").css("width","auto"),n.updating=!0,e&&n.centerOnRoot(),t&&t.removeClass("tvPressed"),n.setComplete(),n.updating=!1},timeout:function(){t&&t.removeClass("tvPressed"),n.updating=!1,n.setComplete()}})):(t&&t.removeClass("tvPressed"),n.setComplete()),!1},TreeViewHandler.prototype.compact=function(){var e=this,t=$("#tvbCompact",e.toolbox);if(e.setLoading(),e.auto_box_width){var n=e.boxWidth*(e.zoom/100)+"px",o=e.boxExpandedWidth*(e.zoom/100)+"px";e.treeview.find(".tv_box:not(boxExpanded)",e.treeview).css("width",n),e.treeview.find(".boxExpanded",e.treeview).css("width",o),e.auto_box_width=!1,readCookie("compact")&&createCookie("compact",!1,e.cookieDays),t.removeClass("tvPressed")}else e.treeview.find(".tv_box").css("width","auto"),e.auto_box_width=!0,readCookie("compact")||createCookie("compact",!0,e.cookieDays),e.updating||e.updateTree(),t.addClass("tvPressed");return e.setComplete(),!1},TreeViewHandler.prototype.centerOnRoot=function(){this.loadingImage.css("display","block");var e=this.container,t=e.innerWidth()/2;if(Number.isNaN(t))return!1;e.innerHeight(),$(".rootPerson",this.treeview);return this.updating||this.setComplete(),!1},TreeViewHandler.prototype.expandBox=function(e,t){if($(t.target).hasClass("tv_link"))return!1;var n,o,r=(e=$(e,this.treeview)).parent(),a=e.attr("abbr"),i=this;if(r.hasClass("detailsLoaded"))o=r.find(".collapsedContent"),n=r.find(".tv_box:not(.collapsedContent)");else{n=e,o=e.clone(),r.append(o.addClass("collapsedContent").css("display","none"));var l=this.loadingImage.find("img").clone().addClass("tv_box_loading").css("display","block");e.prepend(l),i.updating=!0,i.setLoading(),e.load(i.ajaxDetails+"&pid="+encodeURIComponent(a),function(){"function"==typeof CB_Init&&CB_Init(),e.css("width",i.boxExpandedWidth*(i.zoom/100)+"px"),l.remove(),r.addClass("detailsLoaded"),i.setComplete(),i.updating=!1})}return e.hasClass("boxExpanded")?(n.css("display","none"),o.css("display","block"),e.removeClass("boxExpanded")):(n.css("display","block"),o.css("display","none"),n.addClass("boxExpanded")),this.getSize(),!1};
diff --git a/resources/js/webtrees.js b/resources/js/webtrees.js
index 29042f7100..f894b9e7f5 100644
--- a/resources/js/webtrees.js
+++ b/resources/js/webtrees.js
@@ -954,10 +954,6 @@
};
webtrees.setColorTheme = function (mode) {
- if (document.documentElement.dataset.bsTheme === undefined) {
- return;
- }
-
if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.documentElement.dataset.bsTheme = 'dark';
} else {
@@ -982,8 +978,10 @@ $.ajaxSetup({
*/
document.addEventListener('DOMContentLoaded', function() {
// Set light/dark mode
- webtrees.setColorTheme();
- webtrees.watchForColorThemeChanges();
+ if (document.documentElement.dataset.bsTheme === 'auto') {
+ webtrees.setColorTheme();
+ webtrees.watchForColorThemeChanges();
+ }
// Page elements that load automatically via AJAX.
// This prevents bad robots from crawling resource-intensive pages.
diff --git a/resources/views/layouts/default.phtml b/resources/views/layouts/default.phtml
index 63e3df70c8..0f54ab7b0e 100644
--- a/resources/views/layouts/default.phtml
+++ b/resources/views/layouts/default.phtml
@@ -33,7 +33,7 @@ $theme = Registry::container()->get(ModuleThemeInterface::class);
?>
<!DOCTYPE html>
-<html dir="<?= I18N::locale()->direction() ?>" lang="<?= I18N::locale()->languageTag() ?>" <?= $theme->supportsDarkTheme() ? 'data-bs-theme="light"' : '' ?>>
+<html dir="<?= I18N::locale()->direction() ?>" lang="<?= I18N::locale()->languageTag() ?>" data-bs-theme="<?= $theme->bootstrapColorScheme() ?>">
<head>
<meta charset="UTF-8">
<meta name="csrf" content="<?= e(csrf_token()) ?>">