function fcn_purgeSchema(e){const t=_$(`a[data-id="${e}"]`),a=t.closest(".row-actions");t.closest("tr").classList.add("no-schema"),a.remove(),FcnUtils.aPost({action:"fictioneer_ajax_purge_schema",nonce:document.getElementById("fictioneer_admin_nonce").value,post_id:e}).then((e=>{e.success||console.log(e.data)})).catch((e=>{console.log(e)}))}function fcn_purgeAllSchemas(e=0,t=null,a=0){const n=_$$("[data-action-purge-all-schemas]");null===t&&n.forEach((e=>{FcnUtils.toggleInProgress(e,!0)})),FcnUtils.aPost({action:"fictioneer_ajax_purge_all_schemas",offset:e,nonce:document.getElementById("fictioneer_admin_nonce").value}).then((e=>{if(e.data.finished)n.forEach((e=>{FcnUtils.toggleInProgress(e,!1)})),_$$("tr").forEach((e=>{e.classList.add("no-schema")}));else{const t=parseInt(a/Math.max(e.data.total,1)*100),o=t>0?` ${t} %`:"";n.forEach((e=>{e.innerHTML=e.dataset.disableWith+o})),fcn_purgeAllSchemas(e.data.next_offset,e.data.total,a+e.data.processed)}})).catch((e=>{console.log(e)}))}function fcn_delete_epub(e){FcnUtils.aPost({action:"fictioneer_ajax_delete_epub",name:e,nonce:document.getElementById("fictioneer_admin_nonce").value}).then((t=>{t.success?document.querySelector(`[data-action="delete-epub"][data-name="${e}"]`).closest("tr").remove():console.log(t)})).catch((e=>{console.log(e)}))}function fcn_ogMediaUpload(e){e.preventDefault();var t=wp.media({multiple:!1,library:{type:"image"}}).open().on("select",(function(){const e=t.state().get("selection").first().toJSON();_$$$("fictioneer-seo-og-image").value=e.id,_$$$("fictioneer-seo-og-display").setAttribute("src",e.url),_$$$("fictioneer-button-seo-og-image-remove").classList.remove("hidden"),_$(".og-source").classList.add("hidden")}))}function fcn_update_seo_title_chars(){const e=_$$$("fictioneer-seo-title");_$$$("fictioneer-seo-title-chars").innerHTML=`(${e.value.length}/70)`}function fcn_remove_seo_og_image(e){e.preventDefault();const t=_$$$("fictioneer-seo-og-display").dataset.placeholder;_$$$("fictioneer-seo-og-image").value="",_$$$("fictioneer-seo-og-display").setAttribute("src",t),_$$$("fictioneer-button-seo-og-image-remove").classList.add("hidden")}function fcn_confirmIt(e){const t=e.currentTarget.dataset.dialogMessage,a=e.currentTarget.dataset.dialogConfirm;if(!t||!a)return;const n=prompt(t);n?n.toLowerCase()!=a.toLowerCase()&&e.preventDefault():e.preventDefault()}function fcn_fetchUserData(){FcnUtils.aGet({action:"fictioneer_ajax_get_user_data",fcn_fast_ajax:1}).then((e=>{if(e.success){const t=e.data;t.lastLoaded=Date.now(),FcnUtils.setUserData(t)}})).catch((e=>{localStorage.removeItem("fcnUserData"),console.error(e)}))}function fcn_imageMediaUpload(e){e.preventDefault();const t=e.currentTarget.closest('[data-target="fcn-meta-field-image"]');var a=wp.media({multiple:!1,library:{type:"image"}}).open().on("select",(()=>{const e=a.state().get("selection").first().toJSON();t.querySelector('[data-target="fcn-meta-field-image-id"]').value=e.id,t.querySelector(".fictioneer-meta-field__image-display").style.backgroundImage=`url("${e.url}")`,t.querySelector(".fictioneer-meta-field__image-upload").classList.add("hidden"),t.querySelector(".fictioneer-meta-field__image-actions").classList.remove("hidden")}))}function fcn_ebookMediaUpload(e){e.preventDefault();const t=e.currentTarget.closest('[data-target="fcn-meta-field-ebook"]');var a=wp.media({multiple:!1,library:{type:["application/pdf","text/plain","application/rtf","application/x-mobipocket-ebook","application/epub+zip"]}}).open().on("select",(()=>{const e=a.state().get("selection").first().toJSON();t.querySelector('[data-target*="id"]').value=e.id,t.querySelector('[data-target*="name"]').textContent=e.title,t.querySelector('[data-target*="size"]').textContent=e.filesizeHumanReadable,t.querySelector('[data-target*="filename"]').textContent=e.filename,t.querySelector('[data-target*="filename"]').href=e.url,t.querySelector('[data-target*="upload"]').classList.add("hidden"),t.querySelectorAll('[data-target*="replace"], [data-target*="remove"], [data-target*="display"]').forEach((e=>e.classList.remove("hidden")))}))}function fcn_ebookMediaRemove(e){e.preventDefault();const t=e.currentTarget.closest('[data-target="fcn-meta-field-ebook"]');t.querySelector('[data-target*="id"]').value=0,t.querySelector('[data-target*="name"]').textContent="",t.querySelector('[data-target*="size"]').textContent="",t.querySelector('[data-target*="filename"]').textContent="",t.querySelector('[data-target*="filename"]').href="",t.querySelector('[data-target*="upload"]').classList.remove("hidden"),t.querySelectorAll('[data-target*="replace"], [data-target*="remove"], [data-target*="display"]').forEach((e=>e.classList.add("hidden")))}function fcn_splitList(e,t=","){if(!e||""===e.trim())return[];let a=e.replace(/\r?\n|\r/g,"").split(t);return a=a.map((e=>e.trim())).filter((e=>e.length>0)),a}function fcn_tokensToggle(e,t){if(e<1)return void(t.querySelector("select").value=0);const a=FcnUtils.parseJSON(t.querySelector('[data-target="fcn-meta-field-tokens-options"]').value),n=t.querySelector('[data-target="fcn-meta-field-tokens-track"]'),o=t.querySelector('[data-target="fcn-meta-field-tokens-values"]'),r=fcn_splitList(o.value).filter((e=>!isNaN(e))).map((e=>Math.abs(parseInt(e)))),c=r.indexOf(e);-1===c?r.push(e):r.splice(c,1),o.value=r.join(", "),n.innerHTML="",r.forEach((e=>{const t=FcnUtils.sanitizeHTML(a[e]?a[e]:e);n.innerHTML+=`${t}`})),t.querySelector("select").value=0}function fcn_insertIconClass(e){const t=e.closest(".fictioneer-meta-field");t&&e&&(t.querySelector(".fictioneer-meta-field__input").value=e.dataset.value,t.querySelector(".fictioneer-meta-field__fa-icon").setAttribute("class",`fictioneer-meta-field__fa-icon ${e.dataset.value}`))}function fcn_checkRequiredFields(){let e=null;_$$(".fictioneer-meta-field [required]").forEach((t=>{!0!==e&&(e=""===t?.value.trim())})),e?wp.data?.dispatch("core/editor").lockPostSaving("requiredValueLock"):wp.data?.dispatch("core/editor").unlockPostSaving("requiredValueLock")}function fcn_setGroupDataList(e){const t=e.value,a=e.dataset.target;_$$$(a)?.remove(),0!=t&&FcnUtils.aGet({action:"fictioneer_ajax_get_chapter_group_options",story_id:t,nonce:fictioneer_ajax.fictioneer_nonce}).then((e=>{if(e.success){const t=FcnUtils.html`${e.data.html}>`;document.body.appendChild(t)}else e.data.error&&console.error("Error:",e.data.error)})).catch((e=>{console.error(e)}))}var relationshipSearchTimer,fcn_unlockPostsTimer;function fcn_observeRelationshipSource(e){const t=e.closest(".fictioneer-meta-field"),a=new IntersectionObserver(((e,a)=>{e.forEach((e=>{if(e.isIntersecting){let n=t.querySelector('[data-target="fcn-relationships-search"]')?.value??"";n.length>200&&(n=n.slice(0,200)),fcn_queryRelationshipPosts({action:e.target.dataset.ajaxAction,page:e.target.dataset.page,nonce:e.target.dataset.nonce,key:e.target.dataset.key,post_id:e.target.dataset.postId,search:n,post_type:t.querySelector('[data-target="fcn-relationships-post-type"]')?.value??"",fcn_fast_ajax:1},e.target.closest('[data-target="fcn-relationships-source"')),a.unobserve(e.target)}}))}),{root:e,rootMargin:"0px",threshold:.5});e.querySelectorAll('[data-target="fcn-relationships-observer"]').forEach((e=>{a.observe(e)}))}function fcn_queryRelationshipPosts(e,t,a=!0){const n=t.closest(".fictioneer-meta-field"),o=n.querySelector('[data-target="fcn-relationships-source"]'),r=n.querySelector('[data-target="fcn-relationships-values"]');let c=null;FcnUtils.aPost(e).then((e=>(t.querySelector('[data-target="fcn-relationships-observer"]')?.remove(),e))).then((e=>{e.success?(a?t.innerHTML+=e.data.html:t.innerHTML=e.data.html,t.querySelectorAll("li").forEach((e=>{r.querySelector(`[data-id="${e.dataset.id}"]`)&&e.classList.add("disabled")})),fcn_observeRelationshipSource(t)):(c=`Error: ${e.data.error}`,console.error("Error:",e.data.error))})).catch((e=>{c=e,console.error(e)})).then((()=>{if(c){const e=n.querySelector('[data-target="loading-error-template"]').content.cloneNode(!0);e.querySelector(".error-message").textContent=c,o.appendChild(e)}}))}function fcn_removeRelationship(e){const t=e.closest(".fictioneer-meta-field");if(!t)return;const a=t.querySelector('[data-target="fcn-relationships-source"]').querySelector(`[data-id="${e.dataset.id}"]`);a&&a.classList.remove("disabled"),e.remove()}function fcn_addRelationship(e,t){if(!e||!t||e.classList.contains("disabled"))return;const a=e.closest(".fictioneer-meta-field").querySelector('[data-target="selected-item-template"]').content.cloneNode(!0);a.querySelector("li").setAttribute("data-id",e.dataset.id),a.querySelector('input[type="hidden"]').value=e.dataset.id,a.querySelector("span").innerHTML=e.querySelector("span").innerHTML,e.dataset.info&&a.querySelector("li").setAttribute("data-info",e.dataset.info),t.appendChild(a),e.classList.add("disabled")}function fcn_unlockPostsHandleClicks(e){if(e)switch(e.dataset.target){case"fcn-unlock-posts-delete":e.closest('[data-target="fcn-unlock-posts-item"').remove();break;case"fcn-unlock-posts-search-item":fcn_unlockPostsAdd(e)}}function fcn_unlockPostsSearch(){const e=_$(".unlock-posts"),t=_$('[data-target="fcn-unlock-posts-search"]'),a=_$('[data-target="fcn-unlock-posts-search-results"]'),n=_$('[data-target="fcn-unlock-posts-selected"]');if(!e||!t||!t.value&&!_$('[data-target="fcn-unlock-posts-search-item"]'))return;const o={action:"fictioneer_ajax_search_posts_to_unlock",search:t.value,type:_$('[data-target="fcn-unlock-posts-select"]')?.value||"any",nonce:e.querySelector('[name="unlock_posts_nonce"]').value};e.classList.add("ajax-in-progress"),FcnUtils.aPost(o).then((e=>{e.success?a.innerHTML=e.data.html:(a.innerHTML=e.data.error,console.error("Error:",e.data.error))})).catch((e=>{a.innerHTML=e,console.error("Error:",e)})).then((()=>{e.classList.remove("ajax-in-progress"),a.querySelectorAll('[data-target="fcn-unlock-posts-search-item"]').forEach((e=>{n.querySelector(`[data-post-id="${e.dataset.postId}"]`)&&e.remove()}))}))}function fcn_unlockPostsAdd(e){const t=_$('[data-target="fcn-unlock-posts-item-template"]').content.cloneNode(!0),a=t.querySelector(".unlock-posts__item");a.dataset.postId=e.dataset.postId,a.title=e.title,a.querySelector('input[type="hidden"]').value=e.dataset.postId,a.querySelector(".unlock-posts__item-title").innerText=e.querySelector(".unlock-posts__item-title").innerText,a.querySelector(".unlock-posts__item-meta").innerText=e.querySelector(".unlock-posts__item-meta").innerText,_$('[data-target="fcn-unlock-posts-selected"]').appendChild(t),e.remove()}function fcn_intervalAction(e,t,a={}){const n=parseInt(a.index??0),o=parseInt(a.goal??10),r=(n/o*100).toFixed(0);a={action:t,nonce:document.getElementById("fictioneer_admin_nonce").value,...a},(n<1||n>=o)&&FcnUtils.toggleInProgress(e,n<1),no||FcnUtils.aPost(a).then((n=>{n?.data?.done||fcn_intervalAction(e,t,{...a,index:n.data.index+1,goal:n.data.goal})})).catch((e=>{console.error(e)}))}function fcn_showNotification(e,t=3,a="base"){}_$$("[data-purge-schema]").forEach((e=>{e.addEventListener("click",(e=>{e.preventDefault(),fcn_purgeSchema(e.currentTarget.dataset.id)}))})),_$$("[data-action-purge-all-schemas]").forEach((e=>{e.addEventListener("click",(e=>{e.preventDefault(),fcn_purgeAllSchemas()}))})),_$$('[data-fcn-dialog-target="schema-dialog"]').forEach((e=>{e.addEventListener("click",(e=>{const t=_$('[data-target="schema-content"]');t.value=e.currentTarget.closest("tr").querySelector("[data-schema-id]").textContent,t.scrollTop=0,setTimeout((()=>{t.scrollTop=0}),10)}))})),_$$('[data-action="delete-epub"]').forEach((e=>{e.addEventListener("click",(e=>{e.preventDefault(),fcn_delete_epub(e.target.dataset.name)}))})),(button=_$$$("fictioneer-button-og-upload"))&&button.addEventListener("click",fcn_ogMediaUpload),(button=_$$$("fictioneer-seo-title"))&&(fcn_update_seo_title_chars(),button.addEventListener("keyup",fcn_update_seo_title_chars)),(button=_$$$("fictioneer-button-seo-og-image-remove"))&&button.addEventListener("click",fcn_remove_seo_og_image),_$$("[data-confirm-dialog]").forEach((e=>{e.addEventListener("click",(e=>{fcn_confirmIt(e)}))})),FcnUtils.parseJSON(localStorage.getItem("fcnUserData"))||fcn_fetchUserData(),_$("#wp-admin-bar-logout a")?.addEventListener("click",(()=>{localStorage.removeItem("fcnUserData"),localStorage.removeItem("fcnBookshelfContent")})),_$$('[data-action="click->fictioneer-admin-profile#purgeLocalUserData"]').forEach((e=>{e.addEventListener("click",(()=>{localStorage.removeItem("fcnUserData"),localStorage.removeItem("fcnBookshelfContent")}))})),_$(".fictioneer-settings")?.addEventListener("click",(e=>{const t=e.target.closest("[data-click]"),a=t?.dataset.click;if(a&&"warning-dialog"===a)confirm(t.dataset.dialog)||e.preventDefault()})),_$$("[data-fcn-dialog-target]").forEach((e=>{e.addEventListener("click",(e=>{_$$$(e.currentTarget.dataset.fcnDialogTarget)?.showModal()}))})),_$$('.fictioneer-dialog button[formmethod="dialog"][value="cancel"]').forEach((e=>{e.addEventListener("click",(e=>{e.preventDefault(),e.currentTarget.closest("dialog").close()}))})),_$$(".fictioneer-dialog").forEach((e=>{e.addEventListener("mousedown",(t=>{if(t.target===t.currentTarget){const a=e.getBoundingClientRect();(t.clientXa.right||t.clientYa.bottom)&&(t.preventDefault(),t.target.close())}}))})),_$$(".fictioneer-meta-field__image-upload, .fictioneer-meta-field__image-replace").forEach((e=>{e.addEventListener("click",fcn_imageMediaUpload)})),_$$(".fictioneer-meta-field__image-remove").forEach((e=>{e.addEventListener("click",(e=>{e.preventDefault();const t=e.currentTarget.closest('[data-target="fcn-meta-field-image"]');t.querySelector('[data-target="fcn-meta-field-image-id"]').value="",t.querySelector(".fictioneer-meta-field__image-display").style.backgroundImage="",t.querySelector(".fictioneer-meta-field__image-upload").classList.remove("hidden"),t.querySelector(".fictioneer-meta-field__image-actions").classList.add("hidden")}))})),_$$('[data-target="fcn-meta-field-ebook-upload"], [data-target="fcn-meta-field-ebook-replace"]').forEach((e=>{e.addEventListener("click",fcn_ebookMediaUpload)})),_$$('[data-target="fcn-meta-field-ebook-remove"]').forEach((e=>{e.addEventListener("click",fcn_ebookMediaRemove)})),_$$('[data-target="fcn-meta-field-tokens-add"]').forEach((e=>{e.addEventListener("change",(e=>{e.preventDefault();fcn_tokensToggle(parseInt(e.currentTarget.value),e.currentTarget.closest('[data-target="fcn-meta-field-tokens"]'))}))})),_$$('[data-target="fcn-meta-field-tokens-track"]').forEach((e=>{e.addEventListener("click",(e=>{e.preventDefault();const t=e.target.closest(".fictioneer-meta-field__token"),a=e.target.closest(".fictioneer-meta-field__token-button"),n=e.target.closest(".fictioneer-meta-field");t&&a?fcn_tokensToggle(parseInt(t.dataset.id),t.closest('[data-target="fcn-meta-field-tokens"]')):n&&n.querySelector("select").focus()}))})),_$$(".fictioneer-meta-field__icon-button[data-value]").forEach((e=>{e.addEventListener("click",(e=>{e.preventDefault(),fcn_insertIconClass(e.currentTarget)}))})),_$$(".fictioneer-meta-field__fa-icon").forEach((e=>{e.addEventListener("click",(e=>{const t=e.currentTarget.closest(".fictioneer-meta-field").querySelector(".fictioneer-meta-field__button-grid");t.classList.toggle("hidden",!t.classList.contains("hidden"))}))})),document.addEventListener("DOMContentLoaded",(()=>{wp.data?.dispatch("core/editor").lockPostSaving("requiredValueLock"),fcn_checkRequiredFields(),_$$(".fictioneer-meta-field [required]").forEach((e=>{const t=e.closest(".fictioneer-meta-field");t.classList.add("pending-validation"),e.addEventListener("input",(()=>{fcn_checkRequiredFields()})),e.addEventListener("input",(()=>{t.classList.remove("pending-validation")}),{once:!0})})),wp.data?.subscribe((()=>{_$$(".fictioneer-meta-field [required]").forEach((e=>{e.closest(".fictioneer-meta-field").classList.toggle("fictioneer-meta-field--invalid",""===e?.value.trim())}))}))})),document.addEventListener("DOMContentLoaded",(()=>{_$$('[data-action="select-story"]').forEach((e=>{fcn_setGroupDataList(e),e.addEventListener("change",(e=>{fcn_setGroupDataList(e.currentTarget)}))}))})),_$$(".fictioneer-meta-field--relationships").forEach((e=>{const t=e.querySelector('[data-target="fcn-relationships-info"]');fcn_observeRelationshipSource(e),e.addEventListener("click",(t=>{t.target.closest('[data-action="remove"]')&&fcn_removeRelationship(t.target.closest("[data-id]")),t.target.closest('[data-action="add"]')&&fcn_addRelationship(t.target.closest("[data-id]"),e.querySelector('[data-target="fcn-relationships-values"]'))})),e.addEventListener("mouseover",(e=>{t&&(info=e.target.closest("[data-info]"))&&(t.innerHTML=info.dataset.info)}))})),_$$('[data-target="fcn-relationships-values"]').forEach((e=>{Sortable.create(e,{selectedClass:"is-dragged",ghostClass:"is-dragged-ghost",fallbackTolerance:3,animation:150,onStart:e=>{e.target.closest("ol, ul").classList.add("is-sorting")},onEnd:e=>{setTimeout((()=>{e.target.closest("ol, ul").classList.remove("is-sorting")}),5)}})})),_$$('[data-target="fcn-relationships-search"]').forEach((e=>{e.addEventListener("input",(()=>{clearTimeout(relationshipSearchTimer),relationshipSearchTimer=setTimeout((()=>{const t=e.closest(".fictioneer-meta-field"),a=t.querySelector('[data-target="fcn-relationships-source"]');a.innerHTML="",a.appendChild(_$('[data-target="spinner-template"]').content.cloneNode(!0)),e.value>200&&(e.value=e.value.slice(0,200)),fcn_queryRelationshipPosts({action:t.dataset.ajaxAction,nonce:t.dataset.nonce,key:t.dataset.key,post_id:t.dataset.postId,search:e.value,post_type:t.querySelector('[data-target="fcn-relationships-post-type"]')?.value??"",fcn_fast_ajax:1},a),(infoBox=t.querySelector('[data-target="fcn-relationships-info"]'))&&(infoBox.innerHTML=infoBox.dataset.default)}),800)}))})),_$$('[data-target="fcn-relationships-post-type"]').forEach((e=>{e.addEventListener("change",(e=>{const t=e.currentTarget.closest(".fictioneer-meta-field--relationships"),a=t.querySelector('[data-target="fcn-relationships-source"]');let n=t.querySelector('[data-target="fcn-relationships-search"]')?.value??"";a.innerHTML="",a.appendChild(_$('[data-target="spinner-template"]').content.cloneNode(!0)),n>200&&(n=n.slice(0,200)),fcn_queryRelationshipPosts({action:t.dataset.ajaxAction,nonce:t.dataset.nonce,key:t.dataset.key,post_id:t.dataset.postId,search:n,post_type:e.currentTarget.value,fcn_fast_ajax:1},a),(infoBox=t.querySelector('[data-target="fcn-relationships-info"]'))&&(infoBox.innerHTML=infoBox.dataset.default)}))})),_$$('[data-action="fcn-relationships-scroll"]').forEach((e=>{const t=e.closest(".fictioneer-meta-field").querySelector('[data-target="fcn-relationships-values"');e.addEventListener("click",(e=>{const a=parseInt(e.currentTarget.dataset.direction);t.scrollBy({top:a*t.offsetHeight*.75,behavior:"smooth"})}))})),_$('[data-controller="fcn-unlock-posts"]')?.addEventListener("click",(e=>{fcn_unlockPostsHandleClicks(e.target.closest("[data-target]"))})),_$('[data-target="fcn-unlock-posts-search"]')?.addEventListener("input",(()=>{clearTimeout(fcn_unlockPostsTimer),fcn_unlockPostsTimer=setTimeout((()=>{fcn_unlockPostsSearch()}),800)})),_$('[data-target="fcn-unlock-posts-select"]')?.addEventListener("input",(()=>{clearTimeout(fcn_unlockPostsTimer),fcn_unlockPostsSearch()})),_$(".fictioneer-settings")?.addEventListener("click",(e=>{const t=e.target.closest(".fcn-help");if(!t)return;e.preventDefault();const a=_$$$(t.dataset.fcnDialogTarget);a&&(a.querySelector('[data-target="fcn-help-modal-header"]').textContent=t.dataset.label,a.querySelector('[data-target="fcn-help-modal-content"]').innerHTML=t.dataset.help)})),_$$('[data-click-action="fictioneer_ajax_recount_words"]').forEach((e=>{e.addEventListener("click",(t=>{confirm(e.dataset.dialog)&&fcn_intervalAction(t.currentTarget,t.currentTarget.dataset.clickAction)}))}));