{"version":3,"sources":["core.ts"],"names":[],"mappings":"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","file":"core.js","sourcesContent":["/// \r\nfunction isInViewport (el: HTMLElement) {\r\n\tconst rect = el.getBoundingClientRect();\r\n\treturn (\r\n\t\trect.top >= 0 &&\r\n\t\trect.left >= 0 &&\r\n\t\trect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&\r\n\t\trect.right <= (window.innerWidth || document.documentElement.clientWidth)\r\n\t);\r\n}\r\nfunction setupCarousels() {\r\n\tdocument.querySelectorAll(\".sa-carousel\").forEach(carousel => {\r\n\t\tlet horses = carousel.querySelectorAll(\".sa-carousel-horses-horse\");\r\n\t\tlet buttons = carousel.querySelectorAll(\"button.sa-carousel-controls-button\");\r\n\t\tbuttons.forEach(button => button.addEventListener(\"click\", event => {\r\n\t\t\tlet active = carousel.querySelector(\"button.sa-carousel-controls-button.sa--active\");\r\n\t\t\tif (active) {\r\n\t\t\t\tactive.classList.remove(\"sa--active\");\r\n\t\t\t}\r\n\t\t\tlet index = parseInt(button.dataset.index);\r\n\t\t\thorses[index].scrollIntoView({\r\n\t\t\t\tblock: \"nearest\",\r\n\t\t\t\tinline: \"start\",\r\n\t\t\t\tbehavior: \"smooth\",\r\n\t\t\t});\r\n\t\t\tbutton.classList.add(\"sa--active\");\r\n\t\t}));\r\n\t\tlet interval = window.setInterval(function () {\r\n\t\t\tif (isInViewport(carousel)) {\r\n\t\t\t\tlet active = carousel.querySelector(\"button.sa-carousel-controls-button.sa--active\");\r\n\t\t\t\tlet index = parseInt(active.dataset[\"index\"]);\r\n\t\t\t\tlet target = index + 1 < buttons.length ? index + 1 : 0;\r\n\t\t\t\tbuttons.item(target).click();\r\n\t\t\t}\r\n\t\t}, 10000);\r\n\t});\r\n}\r\nfunction setupClipboards() {\r\n\tdocument.querySelectorAll(\"button[data-clipboard=\\\"copy\\\"]\").forEach(button => {\r\n\t\tlet text = button.querySelector(\"[data-clipboard-text]\").textContent;\r\n\t\tbutton.title = `Copy ${text} to clipboard`;\r\n\t\tbutton.addEventListener(\"click\", event => {\r\n\t\t\tnavigator.clipboard.writeText(text);\r\n\t\t\tbutton.title = \"Copied!\";\r\n\t\t\tbutton.disabled = true;\r\n\t\t});\r\n\t});\r\n}\r\nfunction setupSiteHeaderMenu() {\r\n\tlet button = document.querySelector(\".sa-site-header-button\") as HTMLButtonElement;\r\n\tlet menu = document.querySelector(\".sa-site-header-menu\") as HTMLDivElement;\r\n\tbutton.addEventListener(\"click\", function (event) {\r\n\t\tbutton.textContent = menu.classList.toggle(\"sa--open\") ? \"Close\" : \"Menu\";\r\n\t});\r\n\tmenu.querySelectorAll(\"a[href]\").forEach((link: HTMLAnchorElement) => {\r\n\t\tif (new URL(link.href).pathname === window.location.pathname) {\r\n\t\t\tlink.classList.add(\"sa--current\");\r\n\t\t}\r\n\t});\r\n}\r\nfunction setupSamplePlayer() {\r\n\tdocument.querySelectorAll(\".sa-player\").forEach((player: HTMLDivElement) => {\r\n\t\tlet playPause = player.querySelector(\".sa-player-control-play_pause\") as HTMLButtonElement;\r\n\t\tlet artist = player.querySelector(\".sa-player-control-artist\") as HTMLSpanElement;\r\n\t\tlet title = player.querySelector(\".sa-player-control-title\") as HTMLSpanElement;\r\n\t\tlet elapsed = player.querySelector(\".sa-player-control-timestamp-elapsed\") as HTMLSpanElement;\r\n\t\tlet duration = player.querySelector(\".sa-player-control-timestamp-duration\") as HTMLSpanElement;\r\n\t\tlet timeline = player.querySelector(\".sa-player-control-timeline\") as HTMLProgressElement;\r\n\t\tlet list = player.querySelector(\".sa-player-list\");\r\n\t\tvar audio: HTMLAudioElement;\r\n\t\tvar animation: number;\r\n\t\tlet playNextTrack = function () {\r\n\t\t\tlet next = audio.parentElement.nextElementSibling as HTMLLIElement;\r\n\t\t\tif (next) {\r\n\t\t\t\tplayTrack(next);\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet playTrack = function (sample: HTMLLIElement) {\r\n\t\t\tif (audio) {\r\n\t\t\t\taudio.pause();\r\n\t\t\t\taudio.currentTime = 0;\r\n\t\t\t\tcancelAnimationFrame(animation);\r\n\t\t\t\taudio.removeEventListener(\"ended\", playNextTrack);\r\n\t\t\t}\r\n\t\t\taudio = sample.querySelector(\"audio\")\r\n\t\t\tartist.textContent = audio.dataset.artist;\r\n\t\t\ttitle.textContent = audio.dataset.title;\r\n\t\t\telapsed.textContent = \"0:00\";\r\n\t\t\tduration.textContent = `${Math.floor(audio.duration / 60)}:${Math.ceil(audio.duration % 60)}`;\r\n\t\t\ttimeline.value = 0;\r\n\t\t\ttimeline.max = audio.duration;\r\n\t\t\taudio.play();\r\n\t\t\tplayPause.setAttribute(\"aria-pressed\", \"true\");\r\n\t\t\tlet tickPlayer = function (time: DOMHighResTimeStamp) {\r\n\t\t\t\ttimeline.value = audio.currentTime;\r\n\t\t\t\telapsed.textContent = `${Math.floor(audio.currentTime / 60)}:${Math.ceil(audio.currentTime % 60).toString().padStart(2, \"0\")}`;\r\n\t\t\t\trequestAnimationFrame(tickPlayer);\r\n\t\t\t};\r\n\t\t\tanimation = requestAnimationFrame(tickPlayer);\r\n\t\t\taudio.addEventListener(\"ended\", playNextTrack);\r\n\t\t}\r\n\t\tplayer.querySelectorAll(\".sa-player-list-sample\").forEach((sample: HTMLLIElement) => sample.addEventListener(\"click\", () => playTrack(sample)));\r\n\t\tplayPause.addEventListener(\"click\", function (event) {\r\n\t\t\tif (!audio) {\r\n\t\t\t\tplayTrack(list.firstElementChild as HTMLLIElement);\r\n\t\t\t} else {\r\n\t\t\t\tif (audio.paused) {\r\n\t\t\t\t\taudio.play();\r\n\t\t\t\t\tplayPause.setAttribute(\"aria-pressed\", \"true\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\taudio.pause();\r\n\t\t\t\t\tplayPause.setAttribute(\"aria-pressed\", \"false\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t\ttimeline.addEventListener(\"click\", function (event) {\r\n\t\t\tif (audio) {\r\n\t\t\t\tlet bcr = this.getBoundingClientRect();\r\n\t\t\t\taudio.currentTime = audio.duration * ((event.clientX - bcr.left) / bcr.width);\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\ndocument.addEventListener(\"DOMContentLoaded\", async function (event) {\r\n\tsetupSiteHeaderMenu();\r\n\tsetupSamplePlayer();\r\n\tsetupCarousels();\r\n\tsetupClipboards();\r\n});\r\n"]}