/*!
 * bforge sitepackage v1.0.0 (https://brainforge.at)
 * Copyright 2023-2024 Philip Grussmann
 * Licensed under the GPL-2.0-or-later license
 */
import{debug}from"Debug";import{external,activate}from"ExternalsHelper";import{userInteractionPromise,startup}from"promiseHelpers";class Swapper{#placeholder;#content;#abortController;constructor(e,t,r,a=null){this.#placeholder=t,this.#content=r.content.cloneNode(!0),this.#abortController=new AbortController;t=r.parentNode;null!==t&&t.removeChild(r),null!==a&&a instanceof HTMLButtonElement&&a.addEventListener("click",activate.bind(this,e),{signal:this.#abortController.signal})}swap(){this.#abortController.abort();var e=this.#placeholder.parentNode;null!==e&&(e.insertBefore(this.#content,this.#placeholder),e.removeChild(this.#placeholder))}}startup({promise:userInteractionPromise,emitters:[{emitter:document,events:["turbo:load","turbo:frame-load"]}]},()=>{document.querySelectorAll("[data-external-placeholder]").forEach(t=>{if(t instanceof HTMLElement&&"string"==typeof t.dataset?.externalKeys&&"string"==typeof t.dataset?.externalPlaceholder){var r=document.querySelector(`template[data-external-target="${t.dataset.externalPlaceholder}"]`);if(r instanceof HTMLTemplateElement){var a=t.dataset.externalKeys.split(",");if(!(a.length<=0)){var l=t.querySelector("button[data-external-activator]");let e=new Swapper(a,t,r,l);external(a).then(()=>{e.swap()})}}}})});