1(function () { 2 var players = new WeakMap(); 3 4 function colorScheme() { 5 return ( 6 document.body.getAttribute("data-md-color-scheme") || 7 document.documentElement.getAttribute("data-md-color-scheme") || 8 "" 9 ); 10 } 11 12 function siteTheme() { 13 var scheme = colorScheme(); 14 if (scheme === "slate") return "dark"; 15 if (scheme === "default") return "light"; 16 return window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches 17 ? "dark" 18 : "light"; 19 } 20 21 function selectedMode(container) { 22 var override = container.dataset.faTerminalThemeOverride || "auto"; 23 return override === "auto" ? siteTheme() : override; 24 } 25 26 function currentTheme(container) { 27 return selectedMode(container) === "dark" ? "fast-agent-dark" : "fast-agent-light"; 28 } 29 30 function updateButtons(container) { 31 var override = container.dataset.faTerminalThemeOverride || "auto"; 32 container.querySelectorAll("[data-fa-terminal-theme]").forEach(function (button) { 33 var active = button.getAttribute("data-fa-terminal-theme") === override; 34 button.toggleAttribute("aria-pressed", active); 35 }); 36 } 37 38 function bindButtons(container) { 39 container.querySelectorAll("[data-fa-terminal-theme]").forEach(function (button) { 40 if (button.dataset.faTerminalThemeBound === "true") return; 41 button.dataset.faTerminalThemeBound = "true"; 42 button.addEventListener("click", function () { 43 container.dataset.faTerminalThemeOverride = 44 button.getAttribute("data-fa-terminal-theme") || "auto"; 45 updateButtons(container); 46 renderDemo(container, true); 47 }); 48 }); 49 } 50 51 function renderDemo(container, force) { 52 var target = container.querySelector("[data-fa-asciinema-target]"); 53 var cast = container.getAttribute("data-fa-asciinema-cast"); 54 if (!target || !cast || !window.AsciinemaPlayer) return; 55 56 bindButtons(container); 57 updateButtons(container); 58 59 var theme = currentTheme(container); 60 if (!force && target.dataset.faAsciinemaLoaded === "true" && target.dataset.faAsciinemaTheme === theme) { 61 return; 62 } 63 64 var previous = players.get(target); 65 if (previous && typeof previous.dispose === "function") { 66 previous.dispose(); 67 } 68 69 target.dataset.faAsciinemaLoaded = "true"; 70 target.dataset.faAsciinemaTheme = theme; 71 target.textContent = ""; 72 73 players.set( 74 target, 75 window.AsciinemaPlayer.create(cast, target, { 76 cols: Number(container.getAttribute("data-fa-asciinema-cols") || 96), 77 rows: Number(container.getAttribute("data-fa-asciinema-rows") || 22), 78 preload: true, 79 autoPlay: container.getAttribute("data-fa-asciinema-autoplay") === "true", 80 poster: container.getAttribute("data-fa-asciinema-poster") || "npt:0:03", 81 speed: Number(container.getAttribute("data-fa-asciinema-speed") || 1), 82 idleTimeLimit: Number(container.getAttribute("data-fa-asciinema-idle-time-limit") || 1.3), 83 fit: container.getAttribute("data-fa-asciinema-fit") || "width", 84 theme: theme 85 }) 86 ); 87 } 88 89 function renderAll(force) { 90 document.querySelectorAll("[data-fa-asciinema-cast]").forEach(function (container) { 91 renderDemo(container, force); 92 }); 93 } 94 95 function observeTheme(target) { 96 if (!target || target.dataset.faAsciinemaThemeObserver === "true") return; 97 target.dataset.faAsciinemaThemeObserver = "true"; 98 new MutationObserver(function () { renderAll(false); }).observe(target, { 99 attributes: true, 100 attributeFilter: ["data-md-color-scheme"] 101 }); 102 } 103 104 function start() { 105 observeTheme(document.documentElement); 106 observeTheme(document.body); 107 renderAll(false); 108 } 109 110 if (document.readyState === "loading") { 111 document.addEventListener("DOMContentLoaded", start); 112 } else { 113 start(); 114 } 115 116 if (window.document$ && window.document$.subscribe) { 117 window.document$.subscribe(start); 118 } 119})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.