PageSourceSearch

https://bravewriter.com/build/revisions/literature-singles-75a2c14cc9.js

js bravewriter.com collected 2026-10-02 04:06:59 UTC 13,026 bytes, 2 lines download raw bytes

1var keyupTimeout,mixContainer=document.querySelector(".mix-container"),inputSearch=document.querySelector('[data-ref="input-search"]'),filterGenre=document.querySelector("#filter-genre"),filterButtons=document.querySelectorAll(".filter-button"),clearFilterButtons=document.querySelectorAll('[data-ref="clear-filters"]'),searchFallbackLink=document.querySelector("#search-fallback-link");function parseFilterList(t){return(t||"").toLowerCase().split(",").map((function(t){return t.trim()})).filter(Boolean)}var urlParams=new URLSearchParams(window.location.search),tagsParams=(urlParams.get("tags")||"").toLowerCase().trim(),filterState={qdabs:parseFilterList(urlParams.get("qdabs")),genre:parseFilterList(urlParams.get("genre"))[0]||"",search:"",tags:parseFilterList(tagsParams)};function buildSelector(){var t=filterState.tags.slice();filterState.genre&&t.push(filterState.genre),filterState.search&&t.push(filterState.search);var e=t.map((function(t){return'[data-tags*="'+t.replace(/["\\]/g,"")+'"]'})).join("");return filterState.qdabs.length?filterState.qdabs.map((function(t){return"."+t+e})).join(", "):e||"all"}function hasActiveFilters(){return filterState.qdabs.length>0||filterState.tags.length>0||Boolean(filterState.genre)||Boolean(filterState.search)}function syncFilterUI(){if(filterButtons.forEach((function(t){var e=t.getAttribute("data-filter")||"",a="all"===e?"":e.replace(/^\./,""),i=a?-1!==filterState.qdabs.indexOf(a):0===filterState.qdabs.length;t.classList.toggle("mixitup-control-active",i)})),filterGenre.value=filterState.genre||"all",clearFilterButtons.forEach((function(t){t.hidden=!hasActiveFilters()})),searchFallbackLink){var t=filterState.search||filterState.tags.join(" ");searchFallbackLink.setAttribute("href","/search/results?q="+encodeURIComponent(t))}}function applyFilters(){syncFilterUI(),mixer.filter(buildSelector())}function clearFilters(){filterState.qdabs=[],filterState.genre="",filterState.search="",filterState.tags=[],inputSearch.value="",clearTimeout(keyupTimeout),applyFilters()}var mixer=mixitup(mixContainer,{animation:{effects:"fade",duration:250},controls:{enable:!1},load:{filter:buildSelector()}});filterButtons.forEach((function(t){t.addEventListener("click",(function(){var e=t.getAttribute("data-filter")||"",a="all"===e?"":e.replace(/^\./,"");filterState.qdabs=a&&-1===filterState.qdabs.indexOf(a)?[a]:[],applyFilters()}))})),filterGenre.addEventListener("change",(function(){filterState.genre=this.value&&"all"!==this.value?this.value:"",applyFilters()})),inputSearch.addEventListener("input",(function(){var t=inputSearch.value.toLowerCase().trim();filterState.search=t.length<3?"":t,filterState.tags=[],clearTimeout(keyupTimeout),keyupTimeout=setTimeout(applyFilters,350)})),clearFilterButtons.forEach((function(t){t.addEventListener("click",(function(t){t.preventDefault(),clearFilters()}))})),tagsParams&&(inputSearch.value=tagsParams),syncFilterUI();
1const PACK_CAPACITY=9,PACK_STORAGE_KEY="bw-lit-singles-pack-v1",addButtonDefaultHtml='<i class="fa fa-layer-group"></i> Add to Pack',collectionDialog=document.querySelector("#collection-dialog"),collectionFloatButton=document.querySelector(".collection-float .open-collection-button"),packForm=document.querySelector("#collection-dialog form"),packSlots=document.querySelector("#collection-dialog form :is(.stack, .l-stack)"),packSubmitButton=document.querySelector("#collection-dialog .pack-submit-button"),packSubmitLink=document.querySelector("#collection-dialog .pack-submit-link"),packStatusMessage=document.querySelector("#collection-dialog .pack-status-message"),packRingChart=document.querySelector(".collection-float .pack-ring-chart"),dialogCountText=document.querySelector("#collection-dialog .pack-count-text"),floatCountText=document.querySelector(".collection-float .pack-count-text-float"),remainingCountText=document.querySelector("#collection-dialog .pack-remaining-count"),mainLitSingles=Array.from(document.querySelectorAll('.mix-container .lit-single[id^="lit-single-"]')),litSingleById=new Map,skeletonTemplate=packSlots?packSlots.querySelector(".lit-single-skeleton"):null;var packItems=[],isSubmittingToCart=!1,pendingCartSnapshot=[];function getStoredPackItems(){var t=localStorage.getItem(PACK_STORAGE_KEY);if(!t)return[];try{var e=JSON.parse(t);if(!Array.isArray(e))return[];var a=new Set;return e.map((function(t){return String(t)})).filter((function(t){return!(a.has(t)||!litSingleById.has(t))&&(a.add(t),!0)})).slice(0,PACK_CAPACITY)}catch(t){return[]}}function persistPackItems(){localStorage.setItem(PACK_STORAGE_KEY,JSON.stringify(packItems))}function getRenderedPackItems(){return isSubmittingToCart?pendingCartSnapshot:packItems}function createPackItem(t){var e=litSingleById.get(t);if(!e)return null;var a=e.cloneNode(!0);a.id="pack-lit-single-"+t,a.setAttribute("data-lit-single-id",t),a.classList.remove("mix"),a.hidden=!1,a.removeAttribute("hidden"),a.style.removeProperty("display"),a.querySelectorAll("*").forEach((function(t){t.hidden=!1,t.removeAttribute("hidden"),t.style.removeProperty("display")}));var i=a.querySelector(".book-actions");if(i){var n=i.querySelector(".qdabs-icon");i.innerHTML="",n&&i.appendChild(n.cloneNode(!0));var r=document.createElement("button");r.type="button",r.className="button button-white button-small remove-from-pack-button",r.textContent="Remove",r.setAttribute("data-lit-single-id",t),isSubmittingToCart&&(r.disabled=!0),i.appendChild(r)}return a}function createSkeletonItem(){return skeletonTemplate?skeletonTemplate.cloneNode(!0):null}function updatePackCounts(){var t=getRenderedPackItems().length,e=Math.max(PACK_CAPACITY-t,0);if(dialogCountText&&(dialogCountText.textContent=t+" out of "+PACK_CAPACITY+" items"),floatCountText&&(floatCountText.textContent=t+" out of "+PACK_CAPACITY),remainingCountText&&(remainingCountText.textContent=String(e)),packStatusMessage&&(packStatusMessage.hidden=0===t||t===PACK_CAPACITY),packRingChart){var a=Math.round(t/PACK_CAPACITY*100);packRingChart.setAttribute("data-percentage",String(a))}}function updatePackCartControls(){if(packSubmitButton)if(isSubmittingToCart)packSubmitButton.disabled=!0;else{var t=packItems.length===PACK_CAPACITY;packSubmitButton.disabled=!t}}function updateMainAddButtons(){var t=getRenderedPackItems(),e=t.length>=PACK_CAPACITY;document.querySelectorAll(".mix-container .add-to-pack-button").forEach((function(a){var i=a.closest(".lit-single"),n=i?i.getAttribute("data-lit-single-id"):null;if(!!n&&-1!==t.indexOf(n))return a.disabled=!0,a.textContent="Added",void a.classList.add("in-pack");if(a.classList.remove("in-pack"),isSubmittingToCart)a.disabled=!0;else{if(e)return a.disabled=!0,void(a.textContent="Pack Full");a.disabled=!1,a.innerHTML=addButtonDefaultHtml}}))}function pulseCollectionFloatButton(){collectionFloatButton&&(collectionFloatButton.classList.remove("pack-pulse"),collectionFloatButton.offsetWidth,collectionFloatButton.classList.add("pack-pulse"))}function animateToCollectionFloat(t,e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return pulseCollectionFloatButton(),Promise.resolve();if(!t||!collectionFloatButton)return pulseCollectionFloatButton(),Promise.resolve();var a=t.getBoundingClientRect(),i=collectionFloatButton.getBoundingClientRect();if(!(a.width&&a.height&&i.width&&i.height))return pulseCollectionFloatButton(),Promise.resolve();var n=e&&"number"==typeof e.x?e.x:a.left+a.width/2,r=e&&"number"==typeof e.y?e.y:a.top+a.height/2,o=i.left+i.width/2,l=i.top+i.height/2,c=o-n,s=l-r,u=.45*c,d=Math.min(s,0)-Math.max(95,.12*Math.abs(c)),m=null;function p(t,e,a){return t+(e-t)*a}function f(t,e,a,i){var n=1-i;return n*n*t+2*n*i*e+i*i*a}var g=t.closest(".lit-single"),k=g?g.querySelector(".qdabs-icon"):null,S=k?k.cloneNode(!0):document.createElement("i"),h=k?k.getBoundingClientRect():null,C=h&&h.width?h.width:40;return k||(S.className="fa fa-layer-group"),S.classList.add("pack-flyer-icon"),S.setAttribute("aria-hidden","true"),S.style.position="fixed",S.style.left=n+"px",S.style.top=r+"px",S.style.width=C+"px",S.style.height=C+"px",S.style.margin="0",S.style.pointerEvents="none",S.style.zIndex="9999",S.style.willChange="transform, opacity",document.body.appendChild(S),new Promise((function(t){requestAnimationFrame((function e(a){null===m&&(m=a);var i,n=a-m,r=Math.min(n/700,1),o=function(t){return t<.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2}(r),l=f(0,u,c,o),g=f(0,d,s,o);i=r<.6?p(1,1.5,r/.6):p(1.5,.78,(r-.6)/.4);var k=p(1,.92,r);S.style.transform="translate(-50%, -50%) translate("+l+"px, "+g+"px) scale("+i+")",S.style.opacity=String(k),r<1?requestAnimationFrame(e):(S.remove(),pulseCollectionFloatButton(),t())}))}))}function renderPackDialog(){if(packSlots){var t=getRenderedPackItems();clearPackFormInputs(),packSlots.innerHTML="",t.forEach((function(t){var e=createPackItem(t);e&&packSlots.appendChild(e)}));for(var e=PACK_CAPACITY-t.length,a=0;a<e;a+=1){var i=createSkeletonItem();i&&packSlots.appendChild(i)}packSubmitLink&&(isSubmittingToCart?(packSubmitLink.style.pointerEvents="none",packSubmitLink.setAttribute("aria-disabled","true")):(packSubmitLink.style.pointerEvents="",packSubmitLink.removeAttribute("aria-disabled"))),updatePackCounts(),updatePackCartControls(),updateMainAddButtons()}}function clearPackFormInputs(){packForm&&packForm.querySelectorAll(".pack-cart-input").forEach((function(t){t.remove()}))}function buildPackCartPayload(t){if(!t.length)return{error:"Your pack is empty. Add at least one item before sending to cart."};for(var e=[],a=0;a<t.length;a+=1){var i=t[a],n=litSingleById.get(i),r=n?n.getAttribute("data-variant-id"):null;if(!r)return{error:"One of the pack items is missing cart data. Please refresh and try again."};e.push({id:r,quantity:"1"})}return{items:e}}function appendPackFormInputs(t){packForm&&(clearPackFormInputs(),t.forEach((function(t,e){var a=document.createElement("input");a.type="hidden",a.name="items["+e+"][id]",a.value=t.id,a.className="pack-cart-input",packForm.appendChild(a);var i=document.createElement("input");i.type="hidden",i.name="items["+e+"][quantity]",i.value=t.quantity,i.className="pack-cart-input",packForm.appendChild(i)})))}function submitPackToCart(t){if(packForm&&packItems.length&&(t||!(packItems.length<PACK_CAPACITY))){var e=packSubmitButton?packSubmitButton.value:"";packSubmitButton&&(packSubmitButton.value="Adding to cart..."),packSubmitButton&&(packSubmitButton.disabled=!0);var a=packItems.slice(),i=buildPackCartPayload(a);if(!i.items||!i.items.length)return packSubmitButton&&(packSubmitButton.value=e,updatePackCartControls()),void(i.error&&window.alert(i.error));pendingCartSnapshot=a.slice(),isSubmittingToCart=!0,packItems=[],persistPackItems(),renderPackDialog(),appendPackFormInputs(i.items);var n=a.map((function(t){var e=litSingleById.get(t);return e?BRAVEWRITER.analytics.parseItem(e.getAttribute("data-ga-item")):null}
1)).filter(Boolean);BRAVEWRITER.analytics.pushEcommerce("add_to_cart",n,(function(){packForm.submit()}))}}function addToPack(t,e,a){if(!isSubmittingToCart&&t&&-1===packItems.indexOf(t)&&!(packItems.length>=PACK_CAPACITY)){if(packItems.push(t),persistPackItems(),renderPackDialog(),packItems.length===PACK_CAPACITY&&"function"==typeof confetti&&collectionFloatButton){var i=collectionFloatButton.getBoundingClientRect();confetti({particleCount:140,spread:70,origin:{x:(i.left+i.width/2)/window.innerWidth,y:(i.top+i.height/2)/window.innerHeight}})}animateToCollectionFloat(e,a)}}function removeFromPack(t){if(!isSubmittingToCart){var e=packItems.indexOf(t);-1!==e&&(packItems.splice(e,1),persistPackItems(),renderPackDialog())}}function clearPack(){isSubmittingToCart||packItems.length&&(packItems=[],persistPackItems(),renderPackDialog())}mainLitSingles.forEach((function(t){var e=t.getAttribute("data-lit-single-id");e&&litSingleById.set(e,t)})),packItems=getStoredPackItems(),renderPackDialog(),document.querySelector("body").addEventListener("click",(function(t){if(t.target.closest(".open-collection-button"))collectionDialog&&!collectionDialog.open&&collectionDialog.showModal();else if(t.target.closest("dialog .dialog-close-button"))collectionDialog&&collectionDialog.close();else{var e=t.target.closest(".add-to-pack-button");if(e){var a=e.closest(".lit-single");addToPack(a?a.getAttribute("data-lit-single-id"):null,e,{x:t.clientX,y:t.clientY})}else{var i=t.target.closest(".remove-from-pack-button");if(i){removeFromPack(i.getAttribute("data-lit-single-id"))}else{if(t.target.closest(".pack-clear-link"))return t.preventDefault(),void clearPack();packSubmitLink&&t.target.closest(".pack-submit-link")&&(t.preventDefault(),submitPackToCart(!0))}}}})),packForm&&packForm.addEventListener("submit",(function(t){t.preventDefault(),packItems.length<PACK_CAPACITY||submitPackToCart(!1)})),document.querySelectorAll("dialog").forEach((t=>{t.addEventListener("click",(t=>{var e=t.target.getBoundingClientRect();e.top<=t.clientY&&t.clientY<=e.top+e.height&&e.left<=t.clientX&&t.clientX<=e.left+e.width||t.target.close()}))}));
2//# sourceMappingURL=maps/literature-singles.js.map

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.