(() => { // slices/main/assets/js/gallery.js function md_gallery(config) { var config = config || {}, list_type = config.list_type || "ul", class_name = config.class_name || "gallery", tag_type = config.tag_type || "div"; function find_lists(list_type2) { var lists = document.getElementsByTagName(list_type2), matching_lists = []; for (var i = 0; i < lists.length; i++) { var list_elements = lists[i].children; var total_matches = 0; for (var c = 0; c < list_elements.length; c++) { if (!list_elements[c].textContent.length && (list_elements[c].firstChild.tagName == "A" || list_elements[c].firstChild.tagName == "IMG") && (!list_elements[c].firstChild.firstChild || list_elements[c].firstChild.firstChild && list_elements[c].firstChild.firstChild.tagName == "IMG")) { total_matches++; } } if (total_matches == list_elements.length) { matching_lists[matching_lists.length] = lists[i]; } } return matching_lists; } function prepend_tag(img_lists, list_tag, prepend_tag2, class_name2) { for (var i = 0; i < img_lists.length; i++) { add_anchor(img_lists[i]); wrap_tag(img_lists[i], prepend_tag2, class_name2, null, true); strip_tag(img_lists[i], "li"); strip_tag(img_lists[i].parentNode, list_tag); } } function append_caption(el) { if (el.tagName == "A" && el.firstChild.tagName == "IMG" && el.firstChild.hasAttribute("alt") && el.firstChild.getAttribute("alt").length > 0 || el.tagName == "IMG" && el.hasAttribute("alt") && el.getAttribute("alt").length > 0) { var caption = document.createElement("figcaption"); try { caption.textContent = el.firstChild.getAttribute("alt"); el.appendChild(caption); } catch (e) { caption.textContent = el.getAttribute("alt"); el.parentNode.appendChild(caption); } } } function strip_tag(el, tag_type2) { var start_tag_regex = new RegExp("<" + tag_type2 + ">", "gi"); var end_tag_regex = new RegExp("", "gi"); el.innerHTML = el.innerHTML.replace(start_tag_regex, "").replace(end_tag_regex, ""); } function add_figure_tags(img_list) { var list_elements = img_list.children; for (var i = 0; i < list_elements.length; i++) { append_caption(list_elements[i].firstChild); wrap_tag(list_elements[i], "figure"); } } function add_anchor(img_list) { var list_elements = img_list.children; for (var i = 0; i < list_elements.length; i++) { let img = list_elements[i].getElementsByTagName("img")[0]; let src = img.getAttribute("src"); let alt = img.getAttribute("alt"); wrap_tag( list_elements[i], "a", "hover:cursor-pointer", "$dispatch('img-modal', { imgModalSrc: '" + src + "', imgModalDesc: '" + alt + "' })", false ); } } function wrap_tag(el, tag_type2, class_name2, click, root) { var wrap = document.createElement(tag_type2); if (root) { wrap.setAttribute("x-data", "{}"); } if (class_name2) { wrap.setAttribute("class", class_name2); } if (click) { wrap.setAttribute("x-on:click.prevent", click); wrap.setAttribute("href", "#"); } el.parentNode.replaceChild(wrap, el); wrap.appendChild(el); } var found_img_lists = find_lists(list_type); if (found_img_lists.length) { prepend_tag(found_img_lists, list_type, tag_type, class_name); } } // slices/main/assets/js/app.js (function() { document.addEventListener("DOMContentLoaded", function() { window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", (event) => { localStorage.setItem("_x_darkMode", event.matches ? true : false); }); if (window.hljs !== void 0) { window.hljs.highlightAll(); } const times = document.querySelectorAll("time"); times.forEach((time) => { const oldDtime = Date.parse(time.dateTime); time.innerHTML = new Date(oldDtime).toLocaleDateString(navigator.language, { weekday: "long", year: "numeric", month: "short", day: "numeric" }); md_gallery({ "class_name": "grid gap-4 grid-cols-2 prose-img:m-0" }); const mediaForm = document.getElementById("media_form"); if (mediaForm !== null) { htmx.on("#media_form", "htmx:xhr:progress", function(evt) { htmx.find("#progress").setAttribute("value", evt.detail.loaded / evt.detail.total * 100); }); } }); const videos = document.querySelectorAll("video"); videos.forEach((video) => { video.addEventListener("click", () => { const isPaused = video.paused; video[isPaused ? "play" : "pause"](); video.classList.toggle("u-none", !isPaused); }); }); const mapContainer = document.getElementById("map"); const goBack = document.getElementById("go-back"); if (mapContainer !== null) { if (goBack !== null) { document.getElementById("go-back").addEventListener("click", () => { history.back(); }); } mapboxgl.accessToken = "pk.eyJ1IjoiZG5pdHphIiwiYSI6ImNsZWIyY3ZzaTE0cjUzdm4xdnZ6czRlYjUifQ.FRETOXYRID6T2IoB7qqRLg"; var map = new mapboxgl.Map({ container: "map", style: "mapbox://styles/mapbox/streets-v11", maxZoom: 8 }); const markers = JSON.parse(mapContainer.dataset["markers"]); const bounds = new mapboxgl.LngLatBounds(markers[0], markers[0]); for (var i = 0; i < markers.length; i++) { bounds.extend(markers[i]); } map.fitBounds(bounds, { padding: 60 }); for (var i = 0; i < markers.length; i++) { const marker = markers[i]; const el = document.createElement("div"); el.className = "map-marker"; new mapboxgl.Marker(el).setLngLat(marker).addTo(map); } } }); })(); })();