PageSourceSearch

https://s.lubimyczytac.pl/rwd/js/main_page.min.js?2026092301

js lubimyczytac.pl collected 2026-09-24 08:46:22 UTC 171,248 bytes, 1 lines download raw bytes

1!function(){var e={456:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return s}});class s{constructor(e){e&&(this.el=e,this.input=this.el.querySelector("input"),this.toggle=this.el.querySelector("button"),this.toggle.addEventListener("click",(()=>{"password"===this.input.type?(this.input.type="text",this.toggle.setAttribute("title","Ukryj hasło")):"text"===this.input.type&&(this.input.type="password",this.toggle.setAttribute("title","Pokaż hasło")),this.toggle.classList.toggle("f__toggle--active")})))}}},361:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return s}});class s{constructor(e){this.el=e,this.list=this.el.querySelector(".tabs__list"),this.activeTab=this.el.querySelector(".tabs__item.is-active"),this.activePanel=this.el.querySelector(".tabs__panel.is-active"),this.bindEvents()}bindEvents(){this.list.addEventListener("click",(({target:e})=>{e.classList.contains("tabs__item")&&e!==this.activeTab&&this.switchTab(e)})),this.list.addEventListener("keydown",(({target:e,key:t})=>{"Enter"===t&&e!==this.activeTab&&this.swichTab(e)}))}switchTab(e){this.activePanel.classList.remove("is-active"),this.activeTab.classList.remove("is-active");const t=document.getElementById(e.getAttribute("aria-controls"));t.classList.add("is-active"),this.activePanel=t,e.classList.add("is-active"),this.activeTab=e}}},487:function(e,t,a){"use strict";a.r(t),a.d(t,{default:function(){return s}});var s=e=>{!function(e){window.gtag("event","Plebiscyt",{misc_event_name:"Strona ksiazki - popup plebiscytowy - otwarcie",misc_event_type:"open"}),e.modal.querySelector(".modal__content--lcaward-simple").addEventListener("click",(()=>{window.gtag("event","Plebiscyt",{misc_event_name:"Strona ksiazki - popup plebiscytowy - klikniecie",misc_event_type:"click"})})),e.modal.querySelector(".modal__close").addEventListener("click",(()=>{window.gtag("event","Plebiscyt",{misc_event_name:"Strona ksiazki - popup plebiscytowy - zamkniecie",misc_event_type:"close"})}))}(e)}},285:function(){window.LC_CONFIG={...window.LC_CONFIG||{},...(()=>{const{environment:e,searchboxAnalyticsTestMode:t}=document.body?.dataset||{},a=e||"production",s="development"===a;return{environment:a,isDevelopment:s,analytics:{testMode:{searchbox:s&&(i=t,"true"===i)}}};var i})()}},439:function(e,t,a){"use strict";a.r(t),t.default={OK:"OK",NO_LOGGED:"NO_LOGGED",LOGGED:"IS_LOGGED",ERROR:"ERR",ACCOUNT_REAUTHORIZATION:"ACCOUNT_REAUTH",ACCOUNT_REAUTHORIZATION_INCORRECT:"ACCOUNT_REAUTH_INCORRECT",ACCOUNT_REAUTHORIZATION_FAKE:"ACCOUNT_REAUTH_FAKE",ACCOUNT_REAUTHORIZATION_FAKE_45:"ACCOUNT_REAUTH_FAKE_45",ACCOUNT_INACTIVE:"ACCOUNT_NOT_ACTIVE",ACCOUNT_BANNED:"ACCOUNT_BANNED",BOOK_UNDER_QUARANTINE:"BOOK_UNDER_QUARANTINE",BOOK_ALREADY_ON_SHELF:"BOOK_ALREADY_ON_SHELF",STREAK_ALREADY_FROZEN:"ALREADY_FROZEN",STREAK_ALREADY_UNFROZEN:"ALREADY_UNFROZEN",STREAK_INSUFFICENT_DAYS:"INSUFFICENT_DAYS",STREAK_NOT_BRED:"NOT_BRED",STREAK_IS_DEAD:"IS_DEAD"}},956:function(e,t,a){"use strict";a.r(t),t.default={LOADING:"Jeszcze moment...",ERROR:"Wystąpił błąd. Spróbuj ponownie później.",SAVE_ERROR:"Nie udało się zapisać. Spróbuj ponownie za chwilę.",CONNECT_ERROR:"Wystąpił problem z połączeniem. Spróbuj ponownie za chwilę."}},566:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=s(a(27));t.default=e=>{e&&new i.default(e)}},27:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{modal;modalDialog;awardModalTitle;awardModalBody;constructor(e){this.modal=e,this.modalDialog=e.modalDialog,this.awardModalTitle=e.modalTitle,this.awardModalBody=e.modalBody,this.inicializeStructure()}async inicializeStructure(){const t=this.modal.fetchResponse?.data;this.awardModalTitle&&this.awardModalBody&&t&&Array.isArray(t.data)&&(this.awardModalTitle.textContent=t.title??"Nagrody",this.awardModalBody.innerHTML=`${t.data.map((e=>this.renderAwards(e))).join("")}`)}renderAwards(e){const t="zwyciezca"===e.rewardType;return`<div class="award">\n      <a class="award__name" href="${e.rewardLink}">${e.rewardName}</a>\n      <div class="award__wrapper">\n        <a class="award__logo-link" href="${e.rewardLink}" title="${e.rewardName}">\n          <img class="award__logo-image" src="${e.rewardLogo}" alt="${e.rewardName}">\n        </a>\n        <div class="award__box">\n          <div class="award__placement ${t?"award__placement--winner":""}">\n            <i class="icon ${t?"icon-icon-awards":"icon-award"} aria-hidden="true"></i>  \n            ${t?"Zwycięzca":"Finalista"}\n          </div>\n          <div class="award__info">rok: <span>${e.rewardYear}</span></div>\n          <div class="award__info">za ksiązkę: <a href="${e.bookLink}">${e.bookTitle}</a></div>\n        </div>\n      </div>\n    </div>`}}},509:function(e,t){"use strict";
1Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{triggerElement;constructor(e){this.triggerElement=e,this.triggerElement=e}update(e){if(!this.triggerElement||void 0===e)return;const t=1===e;this.triggerElement.disabled=t,this.triggerElement.setAttribute("aria-disabled",String(t)),this.triggerElement.classList.add("is-disabled",String(t));const a=this.triggerElement.querySelector(".streak-action__text");a&&(a.textContent=t?"Poczytane dziś":"Poczytane")}}},857:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{element;constructor(e){this.element=e}update(e){this.element&&(this.element.innerHTML=e)}}},824:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const a="streak-mascot--level-",s="streak-mascot__image-wrapper--celebrate";t.default=class{element;currentProgressLevelClass;ringUp;ringDown;imageWrapper;image;title;status;constructor(e){this.element=e,this.currentProgressLevelClass=this.getCurrentClass(a),this.ringUp=e?.querySelector(".streak-mascot__ring-progress--up")??null,this.ringDown=e?.querySelector(".streak-mascot__ring-progress--down")??null,this.imageWrapper=e?.querySelector(".streak-mascot__image-wrapper")??null,this.image=e?.querySelector(".streak-mascot__image")??null,this.title=e?.querySelector(".streak-mascot__title")??null,this.status=e?.querySelector(".streak-mascot__status")??null}update(e){if(!this.element||!e)return;const t=this.normalizeNumber(e.progress,-7,7),a=this.normalizeNumber(e.progress_level,-1,4);this.updateProgressLevel(a),this.updateRing(t,7),this.updateImage(e.progress_image),this.updateTitle(e.progress_level_data?.title),this.updateStatus(e.progress_data?.title)}updateProgressLevel(e){this.element&&(this.currentProgressLevelClass&&this.element.classList.remove(this.currentProgressLevelClass),this.currentProgressLevelClass=`${a}${e}`,this.element.classList.add(this.currentProgressLevelClass))}updateRing(e,t){if(!this.ringUp||!this.ringDown)return;const a=Math.max(e,0)/t*360,s=Math.max(-e,0)/t*360;this.ringUp.style.setProperty("--streak-arc",`${a}deg`),this.ringDown.style.setProperty("--streak-arc",`${s}deg`)}updateImage(e){this.image&&e&&(this.image.src=this.getMascotImage(e),this.celebrate())}celebrate(){this.imageWrapper&&(this.imageWrapper.classList.remove(s),this.imageWrapper.offsetWidth,this.imageWrapper.classList.add(s))}updateTitle(e){this.title&&e&&(this.title.textContent=e)}updateStatus(e){this.status&&e&&(this.status.textContent=e)}getMascotImage(e){return`${this.element?.dataset.baseUrl??""}/rwd/src/assets/images/modern-pages/streak/mascot/${e}`}getCurrentClass(e){return this.element?[...this.element.classList].find((t=>t.startsWith(e)))??null:null}normalizeNumber(e,t,a){const s=Number(e);return Number.isFinite(s)?Math.min(Math.max(s,t),a):t}}},330:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=s(a(43));t.default=class{streakElement;compactElement;nameElements;xpElements;passaElement;recordMessageElement;descElement;recordValueElement;badgeElements;rankElements;goalElement;goalTrackElement;goalBarElement;goalValueElement;goalTextElement;constructor(e){this.streakElement=e,this.compactElement=this.streakElement.querySelector(".reader-rank--compact"),this.nameElements=this.streakElement.querySelectorAll('[data-reader-rank-target="name"]'),this.xpElements=this.streakElement.querySelectorAll('[data-reader-rank-target="xp"]'),this.passaElement=this.streakElement.querySelector('[data-reader-rank-target="passa-current"]'),this.recordMessageElement=this.streakElement.querySelector('[data-reader-rank-target="record-message"]'),this.recordValueElement=this.streakElement.querySelector('[data-reader-rank-target="record-value"]'),this.descElement=this.streakElement.querySelector('[data-reader-rank-target="desc"]'),this.badgeElements=this.streakElement.querySelectorAll('[data-reader-rank-target="badge"]'),this.rankElements=document.querySelectorAll("[data-reader-rank]"),this.goalElement=this.streakElement.querySelector(".reader-rank__goal"),this.goalTrackElement=this.streakElement.querySelector('[data-reader-rank-target="goal-track"]'),this.goalBarElement=this.streakElement.querySelector('[data-reader-rank-target="goal-bar"]'),this.goalValueElement=this.streakElement.querySelector('[data-reader-rank-target="goal-value"]'),this.goalTextElement=this.streakElement.querySelector('[data-reader-rank-target="goal-text"]')}update(e){const{current_rank:t,next_rank:a,current_reading_days:s,max_reading_days:i,xp:r,max_reading_days_msg:n,has_been_bred:o}=e;this.updateXp(r),this.updateGoal(r,t,a),t&&(this.updateOtherDomRank(r,t.rank),this.updateName(t.title),this.updateDesc(t.desc),this.updateBadge(t.title,t.badge),this.updateAriaLabel(t.title,s,i),this.updateDetailedCards(t.title)),this.updateUserRank(n.msg,s),this.updateRecord(i),this.updateStreakState(o)}
1updateXp(e){this.xpElements.forEach((t=>{t.textContent=e.toString()}))}updateOtherDomRank(e,t){this.rankElements.forEach((a=>{const s=a.querySelector('[data-reader-rank-target="xp"]');s&&(s.textContent=e.toString()),a.setAttribute("data-reader-rank",t.toString())}))}updateGoal(e,t,a){if(!this.goalElement||!a)return;const s=Number(this.goalElement.dataset.readerRankLimit);if(!Number.isFinite(s)||s<=0)return void this.goalElement.classList.add("is-off");const i=0===a.missing_xp&&a.rank===t?.rank,r=Math.min(Math.max(e/s*100,0),100);if(this.goalElement.classList.remove("is-off"),this.goalBarElement&&(this.goalBarElement.style.width=`${r}%`),this.goalTrackElement){const t=i?`Zdobyto najwyższą rangę ${a.title}`:`Postęp do rangi ${a.title}`;this.goalTrackElement.setAttribute("aria-label",t),this.goalTrackElement.setAttribute("aria-valuemin","0"),this.goalTrackElement.setAttribute("aria-valuemax",s.toString()),this.goalTrackElement.setAttribute("aria-valuenow",Math.min(e,s).toString()),this.goalTrackElement.setAttribute("aria-valuetext",`${Math.min(e,s)} z ${s} XP`)}this.goalValueElement&&(this.goalValueElement.textContent=`${e}/${s} XP`),this.goalTextElement&&(this.goalTextElement.innerHTML=i?`Zdobyto najwyższą rangę: <strong>${a.title}</strong>`:`Brakuje ${a.missing_xp} XP do rangi ${a.title}`)}updateUserRank(e,t){this.recordMessageElement&&(this.recordMessageElement.textContent=e),this.passaElement&&(this.passaElement.textContent=`${t} ${(0,i.default)(t)}`)}updateName(e){this.nameElements.forEach((t=>{const a=Array.from(t.childNodes).find((e=>e.nodeType===Node.TEXT_NODE));a&&(a.textContent=e)}))}updateRecord(e){this.recordValueElement&&(this.recordValueElement.textContent=`${e} ${(0,i.default)(e)} z rzędu.`)}updateStreakState(e){this.streakElement.setAttribute("data-mascot-hatched",e.toString())}updateDesc(e){this.descElement&&(this.descElement.textContent=e)}updateBadge(e,t){this.badgeElements.forEach((a=>{a.src=t||"",a.alt=e?`Odznaka rangi: ${e}`:"Odznaka rangi czytelnika"}))}updateAriaLabel(e,t,a){if(!this.compactElement)return;const s=[`Aktualna ranga czytelnika: ${e}`,`Czytasz ${t} ${(0,i.default)(t)} z rzędu`,`Twój rekord to: ${a} ${(0,i.default)(a)} z rzędu`].join(". ");this.compactElement.setAttribute("aria-label",s)}updateDetailedCards(e){const t=this.streakElement.querySelectorAll("[data-reader-rank-card]");let a=!1;t.forEach((t=>{const s=t.dataset.readerRankTitle===e,i=!a&&!s,r=a&&!s;t.classList.toggle("reader-rank__card--active",s),t.classList.toggle("reader-rank__card--unlocked",i),t.classList.toggle("reader-rank__card--locked",r),s?(t.setAttribute("aria-current","step"),a=!0):t.removeAttribute("aria-current")}))}}},776:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=class{streakElement;constructor(e){this.streakElement=e}updateFromProgress(e){this.streakElement&&e&&(this.streakElement.dataset.mascotDead=e.is_dead.toString(),this.streakElement.dataset.mascotProgress=e.progress.toString(),this.streakElement.dataset.mascotProgressLevel=e.progress_level.toString())}updateFromAccount(e){this.streakElement&&e&&(this.streakElement.dataset.mascotHatched=e.has_been_bred.toString(),this.updateFrozen(1===e.is_frozen))}updateFrozen(e){this.streakElement&&(this.streakElement.dataset.isFrozen=e?"1":"0")}}},233:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=async(e,t={},a=!1)=>{try{const s={"X-Requested-With":"XMLHttpRequest"},i=await fetch(a?e:`${window.location.origin}/${e}`,{headers:s,...t}),r=await i.text();return 0===r.trim().length&&i.ok?null:JSON.parse(r)}catch(e){return null}}},43:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return 1===e?"dzień":"dni"}},501:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,a){if(Array.from(document.scripts).some((t=>t.src===e)))return i(e,t,a),!1;const s=document.createElement("script");return s.src=e,s.async=!0,s.defer=!0,s.onload=()=>{i(e,t,a)},s.onerror=()=>{},document.head.appendChild(s),!0};function i(e,t,i){if(!i||i())return void t?.();let r=0;const n=setInterval((()=>
1{r+=100,i()?(clearInterval(n),t?.()):r>=5e3&&clearInterval(n)}),100)}},947:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=s(a(501)),r=s(a(878));t.default=class{buttons;state;constructor(e){this.buttons=e,this.state=Math.random().toString(10).slice(10),this.loadAppleScript()}loadAppleScript(){(0,i.default)("https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/pl_PL/appleid.auth.js",this.init.bind(this))}init(){null!==this.buttons[0].getAttribute("data-state")&&(this.state=this.buttons[0].getAttribute("data-state")),AppleID.auth.init({clientId:`${r.default.APPLE_ID}`,scope:"name email",redirectURI:`${window.location.origin}/apple/zaloguj`,state:this.state,usePopup:!1}),this.buttons.forEach((e=>{e.addEventListener("click",(function(){AppleID.auth.signIn()}))}))}}},35:function(e,t,a){"use strict";var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=s(a(501));t.default=class{constructor(e){this.loadGoogleScript(e)}loadGoogleScript(e){(0,i.default)("https://accounts.google.com/gsi/client",e,(()=>!!(window.google&&window.google.accounts&&window.google.accounts.id)))}}},878:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={APPLE_ID:"GL7KNXCYT2.pl.lubimyczytac.prod",GOOGLE_ID:"6Lft-UQUAAAAANgjA32xz5qUT8j2uVkm5P65NyJg"}}},t={};function a(s){var i=t[s];if(void 0!==i)return i.exports;var r=t[s]={exports:{}};return e[s].call(r.exports,r,r.exports,a),r.exports}a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,{a:t}),t},a.cw=function(e){var t;return function(){if(e){var a=e;e=0,t={exports:{}},a.call(t.exports,t,t.exports)}return t.exports}},a.d=function(e,t){if(Array.isArray(t))for(var s=0;s<t.length;){var i=t[s++],r=t[s++],n=0===r?{enumerable:!0,value:t[s++]}:{enumerable:!0,get:r};a.o(e,i)||Object.defineProperty(e,i,n)}else for(var i in t)a.o(t,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.dn=function(e){var t=Object.getOwnPropertyDescriptor(e,"name");(!t||!t.writable&&t.configurable)&&Object.defineProperty(e,"name",{value:"default",configurable:!0})},function(){"use strict";var e=a.cw((function(e,t){a.r(t),t.default=class{constructor(e=null){this.alertsHolder=document.querySelector(".alert-fixed"),this.typeAlert={success:{class:"success",icon:'<i class="icon icon-icon-checkmark"></i>'},error:{class:"error",icon:'<i class="icon icon-close"></i>'}},this.isProvidedHolderElement=!!e,this.isProvidedHolderElement&&this.attachCloseButtons(e),this.setEventsRenderedAlerts()}setEventsRenderedAlerts(){this.alertsHolder?.querySelectorAll(".alert-fixed__message").forEach((e=>{this.closeAlert(e)}))}renderAlert(e,t){if(e in this.typeAlert){const a=this.typeAlert[e];return`<div class="alert-fixed__message alert-fixed__message--${a.class}" role="alert">\n        ${a.icon}\n        ${t}\n        <button class="alert-fixed__close" aria-label="Zamknij alert">&times;</button>\n      </div>`}return`<div class="alert-fixed__message" role="alert">${t}</div>`}closeAlert(e,t=7e3,a=500){setTimeout((()=>{e&&(e.classList.add("is-animated-close"),setTimeout((()=>{e.remove()}),a))}),t)}attachCloseButtonEvent(e){const t=e.querySelector(".alert-fixed__close");t&&t.addEventListener("click",(()=>this.closeAlert(e)))}alertMessage(e,t){this.alertsHolder.insertAdjacentHTML("beforeend",this.renderAlert(e,t));const a=this.alertsHolder.lastElementChild;this.attachCloseButtonEvent(a),this.closeAlert(a)}attachCloseButtons(e){e.querySelectorAll(".alert-fixed__close").forEach((e=>{e.addEventListener("click",(e=>{const t=e.target.closest(".alert-fixed__message");t&&this.closeAlert(t,0)}))}))}close}})),t=a.cw((function(e,t){a.d(t,{A:function(){return s}});class s{constructor(e){this.textareaElement=e,this.textareaElement&&(this.setEvents(),this.maxHeight=parseInt(this.textareaElement.getAttribute("data-max-height"))||null,this.scrollTop=0)}setEvents(){(0,A().A)(this.textareaElement,["paste","input"],this.autoExpand.bind(this)),this.textareaElement.addEventListener("scroll",(()=>{this.scrollTop=this.textareaElement.scrollTop}))}autoExpand(e){const t=e.target;t.style.height="auto",t.style.height=`${t.scrollHeight}px`;
1const a=t.selectionStart;null!==this.maxHeight&&t.scrollHeight>this.maxHeight?(t.style.overflowY="auto",t.style.height=`${this.maxHeight}px`):t.style.overflowY="hidden",t.setSelectionRange(a,a),t.scrollTop=this.scrollTop}}})),s=a.cw((function(e,t){t.A=(e,t)=>e?`<div class="buybox buybox--dropdown"><ul class="buybox__list">${e.map((e=>(e=>{const t=void 0!==e.pricePrefix?`${e.pricePrefix}&nbsp;`:"";return`<li class="buybox__list-item"><img class="buybox__logo" src="${e.icon}"><span class="buybox__name">${e.name}</span><span class="buybox__price">${t}<span class="buybox__price-value">${e.price}</span>&nbsp;zł</span><a href="${e.url}" target="_blank" class="buybox__shop"  data-text="👉 Idź" data-text-desktop="👉 Idź do sklepu"></a></li>`})(e))).join("")}</ul><a class="buybox__cta" title="Zobacz więcej ofert" href="${t}/#kup">Zobacz więcej księgarni</a></div>`:"Nie znaleziono ofert 😟"})),i=a.cw((function(e,t){a.d(t,{A:function(){return i}}),ce();class i{constructor(e){this.el=e,this.el.hasAttribute("data-buybox-dropdown")&&(this.buyboxButton=this.el.querySelector(".dropdown__open"))}async fetchDataBB(e){return(0,ce().default)(e,{},!0)}updateDropdown(e,t){const a=e.nextElementSibling;a?.classList.contains("dropdown__content")&&(a.innerHTML=(0,s().A)(t,e.getAttribute("data-book-url")))}async getDropdownData(){if(!this.buyboxButton)return;const e=await this.fetchDataBB(this.buyboxButton.getAttribute("data-buybox-url"));e.status&&(e=>{[x().A.BOOK,x().A.E_BOOK,x().A.AUDIOBOOK].some((t=>{const a=this.getOffersArray(e.data).filter((e=>e.type===t));return a.length>0&&(this.updateDropdown(this.buyboxButton,a),!0)}))||this.updateDropdown(this.buyboxButton,null)})(e)}getOffersArray(e){return Object.keys(e||{}).map((t=>{const a=e[t];return a.url=t,a}))}}})),r=a.cw((function(e,t){a.d(t,{A:function(){return s}}),ce();class s{constructor(e){e&&(this.url=e.getAttribute("data-buybox-url"),this.bestOffers={},this.dataBuyBox=null)}async fetchDataBB(e){try{return await(0,ce().default)(e,{},!0)}catch(e){return!1}}async getBestOfferPerType(){return this.dataBuyBox||(this.dataBuyBox=await this.fetchDataBB(this.url)),this.dataBuyBox?.status&&[x().A.BOOK,x().A.E_BOOK,x().A.AUDIOBOOK].forEach((e=>{const t=(0,p().A)(this.dataBuyBox.data,e);t&&(this.bestOffers[e]=t.data.price)})),this.bestOffers}async displayBestBookOffer(e){const t=await this.getBestOfferPerType();e.textContent=t&&t[x().A.BOOK]?`Kup już od  ${t[x().A.BOOK].replace(".",",")} zł`:"Kup książkę"}async displayBookshopsNumber(e){this.dataBuyBox=await this.fetchDataBB(this.url);const t=Object.values(this.dataBuyBox.data).filter((e=>e.type===x().A.BOOK));e.innerHTML=t&&t.length>0?`Dostępna w <b>${t.length}</b> ${1===t.length?"księgarni":"księgarniach"}`:""}}})),n=a.cw((function(e,t){a.d(t,{A:function(){return s}});class s{constructor(e){e&&(this.collapseButtons=e,this.setEvents())}setEvents(){this.collapseButtons?.forEach((e=>{e.originalText=e.innerHTML,e.addEventListener("click",this.collapse.bind(this),!1)}))}collapse(e){this.targets=Array.from(document.querySelectorAll(e.target.getAttribute("data-target"))),this.targets?.forEach((e=>{e.classList.toggle("is-off")}));const t=e.target,a=t.getAttribute("data-toggle-text");a&&(t.innerHTML=t.innerHTML===t.originalText?a:t.originalText)}}})),o=a.cw((function(t,s){a.d(s,{A:function(){return i}}),f(),ce();class i{constructor(e,t,a){this.button=e,this.createModal=a,this.bookCard=t,this.initializeStructure(),this.setEvents()}initializeStructure(){this.bookId=this.bookCard.getAttribute("data-book-id"),this.alertInstance=new(e().default)}async fetchDeleteFromLibrary(){return await(0,ce().default)(`library/removeFromLibraryJson/${this.bookId}`,{method:"DELETE"})}setEvents(){const e=this.bookCard.querySelector(".library-action--delete");e&&f().default.initBasicModal(e,"Uwaga!",'Czy na pewno chcesz usunąć książkę z biblioteczki? <br><b>Oznacza to utratę wszystkich danych dotyczących przeczytanej książki: opinii, oceny, daty przeczytania oraz przypisania książki do innych półek w Twojej biblioteczce."</b>\n',"Usuń książkę","Anuluj",!0,"",(async()=>this.handleDelete()))}async handleDelete(){try{const e=await this.fetchDeleteFromLibrary();this.handleResponse(e)}catch(e){this.alertInstance.alertMessage("error",B().default.ERROR)}}handleResponse(e){switch(e.code){case z().default.NO_LOGGED:f().default.showLoginModal();break;case z().default.OK:this.update(),this.alertInstance.alertMessage("success",e.msg);break;default:this.alertInstance.alertMessage("error",B().default.ERROR)}}update(){if(this.bookCard){this.bookCard.querySelector(".book-card__detail--shelves").innerHTML="";const e=this.bookCard.querySelector(".dropdown--library-edit");if(e){e.outerHTML=this.generateAddToLibraryButtonTemplate(this.bookId);const t=this.bookCard.querySelector(".book-card__cta--library");t&&this.createModal(t)}}}generateAddToLibraryButtonTemplate(e){return`<button class="book-card__cta book-card__cta--library" data-callback-type="library-content" data-modal-trigger="" data-modal-fetch-url="review/editBookReviewOnShelfNew" data-url-params="${e}/1" data-post-fetch-trigger-variant="editDropdown">\n      <i class="icon icon-icon-cross"></i>\n      Chcę przeczytać\n    </button>`}}
1})),l=a.cw((function(e,t){a.d(t,{A:function(){return s}});class s{patterns=[{pattern:/^(0[1-9]|1[0-2])\.(19[0-9]{2}|20[0-9][0-9])$/,error:e=>`Pole „${e}" musi zawierać datę w formacie mm.rrrr.`},{pattern:/^.{6,30}$/,error:e=>`Pole „${e}" musi mieć od 6 do 30 znaków.`},{pattern:/^[a-zA-Z0-9_\-+]{3,20}$/,error:e=>`Pole „${e}" może zawierać jedynie litery, cyfry oraz znaki "-", "_", i musi mieć od 3 do 20 znaków.`},{pattern:/^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/,error:e=>`Pole „${e}" musi zawierać poprawny adres e-mail.`}];areRegExpsEquivalent(e,t){return e.source===t.source&&e.flags===t.flags}getError(e,t){const a=new RegExp(e),s=this.patterns.find((e=>this.areRegExpsEquivalent(e.pattern,a)));return s?s.error(t):""}}})),c=a.cw((function(t,s){a.d(s,{A:function(){return i}}),f(),ce(),T();class i{constructor(t){this.setAndValidateStructure(t)&&(this.alertInstance=new(e().default),this.setEvents())}setAndValidateStructure(e){return this.popoverTarget=e,this.bookId=this.popoverTarget.getAttribute("data-popover-target"),this.popoverTriggerElement=this.popoverTarget.querySelector("[data-popover-trigger]"),this.popoverTarget&&this.popoverTriggerElement&&this.bookId}updateStars(e){const t=this.popoverContainer.querySelector(".rating-popover__stars");t.className="rating-popover__stars",t.classList.add(`rating-popover__stars--${e}`)}createTemplate(e,t){const a=t.shelf.has_book?"is-in-shelf":"",s=t.is_logged?a:"is-not-logged",i=t.shelf.has_book?`<i class="icon icon-icon-menu-3-cykle"></i> ${t.shelf.name}`:'<i class="icon icon-target"></i> Chcę przeczytać';return`<div class="rating-popover__container">\n    <a class="rating-popover__cover" href="${e.uri}" title="Link do książki ${e.title}">\n      <img class="rating-popover__img" src="${e.cover}" alt="Okładka"/>\n    </a>\n    <div class="rating-popover__content">\n      <button class="rating-popover__close" aria-label="Zamknij popover"><i class="icon icon-close"></i></button>\n      <a href="${e.uri}" class="rating-popover__title" title="${e.title}">\n        ${e.title}\n      </a>\n      <a href="${e.author.uri}" class="rating-popover__author" title="${e.author.name}">\n        ${e.author.name}\n      </a>\n      <hr class="rating-popover__line"></hr>\n      <div class="rating-popover__your-rating">\n        Moja ocena\n      </div>\n      <div class="rating-popover__stars ${t.is_logged?`rating-popover__stars--${parseFloat(t.book.rating)}`:"is-not-logged"}">\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n        <i class="rating-popover__star icon-star-outline"></i>\n      </div>\n      <hr class="rating-popover__line"></hr>
1\n      <span class="rating-popover__library-info">\n        ${t.shelf.has_book?"Masz na półce:":"Dodaj na półkę"}\n      </span>\n      <span class="rating-popover__want-read ${s}">\n        ${i}\n      </span>\n    </div>\n    <div class="rating-popover__bg"></div>\n  </div>`}async createPopover(){if(!this.popover){const e=await this.fetchData(this.bookId);if(e&&e.code===z().default.OK){const{data:{account:{shelfs:t}}}=e;this.popover=document.createElement("div"),this.popover.classList.add("rating-popover"),this.popover.innerHTML=this.createTemplate(e.data.book,e.data.account),this.popoverContainer=this.popover.querySelector(".rating-popover__container"),this.popoverClose=this.popoverContainer.querySelector(".rating-popover__close"),this.popoverWantRead=this.popoverContainer.querySelector(".rating-popover__want-read"),this.popoverStarsContainer=this.popoverContainer.querySelector(".rating-popover__stars"),this.popoverWantRead.addEventListener("click",(async e=>{e.target.classList.contains("is-not-logged")?await this.handleLoginModal():this.handleAddToShelf(this.bookId,t.wantToRead)})),this.popoverStarsContainer.addEventListener("click",(async e=>{if(e.target.classList.contains("rating-popover__star")){if(this.popoverStarsContainer.classList.contains("is-not-logged"))return void await this.handleLoginModal();const t=[...e.target.parentNode.children].indexOf(e.target)+1;this.updateStars(parseFloat(t)),this.updateButton(this.bookId,!0),this.handleRateBook(t)}})),this.popoverContainer.addEventListener("mouseleave",this.destroyPopover.bind(this)),this.popoverClose.addEventListener("click",this.destroyPopover.bind(this)),(0,A().A)(this.popover,["click","touchstart"],(e=>{e.target===e.currentTarget&&(e.preventDefault(),this.destroyPopover())}))}}}async handleLoginModal(){f().default.showLoginModal()}async handleRateBook(e){try{const t=await this.fetchRateBook(this.bookId,e);switch(t?.code){case z().default.NO_LOGGED:f().default.showLoginModal();break;case z().default.BOOK_UNDER_QUARANTINE:this.alertInstance.alertMessage("error",t.msg);break;case z().default.OK:}}catch(e){this.alertInstance.alertMessage("error",B().default.ERROR)}}async handleAddToShelf(e,t,a){try{const s=await this.fetchAddToLibrary(e,t);switch(s?.code){case z().default.NO_LOGGED:f().default.showLoginModal();break;case z().default.BOOK_ALREADY_ON_SHELF:this.alertInstance.alertMessage("error",s.msg);break;case z().default.OK:this.updateButton(e,a);break;default:this.alertInstance.alertMessage("error",B().default.ERROR)}}catch(e){this.alertInstance.alertMessage("error",B().default.ERROR)}}updateButton(e,t=!1){this.popoverWantRead.innerHTML='<i class="icon icon-icon-menu-3-cykle"></i> '+(t?"Przeczytane":"Chcę przeczytać");const a=t?"1":"3";this.popoverWantRead.classList.add("is-in-shelf"),this.popover.querySelector(".rating-popover__library-info").innerHTML="Masz na półce",this.createCustomSaveLibraryEvent(e,a)}createCustomSaveLibraryEvent(e,t){const a=new CustomEvent("popover:library-saved",{detail:{bookId:e,shelfNumber:t}});document.dispatchEvent(a)}calculatePopoverPosition(){T().default.checkMd.matches&&(this.popover.classList.remove("is-inverse"),this.popover.style.left=`${this.popoverRect.left}px`,this.popoverContainer.getBoundingClientRect().right>=window.innerWidth-D().A.DEFAULT_PADDING&&this.popover.classList.add("is-inverse"))}async fetchData(e){return(0,ce().default)(`book/json/${e}/`)}async fetchAddToLibrary(e,t){return(0,ce().default)(`library/addBookToShelfJson/${e}/${t}`)}async fetchRateBook(e,t){return(0,ce().default)(`ajax/addRatingBookJson/${e}/${t}`)}async showPopover(){await this.createPopover(),this.mouseEnter?(this.popoverRect=this.popoverTarget.getBoundingClientRect(),this.popover.style.top=`${this.popoverRect.top+window.pageYOffset}px`,document.body.appendChild(this.popover),this.calculatePopoverPosition(),this.popover.classList.add("is-open")):this.destroyPopover()}destroyPopover(){this.popover&&this.popover.remove()}onMouseEnter(){this.mouseEnter=!0,this.timeout=setTimeout((()=>{this.mouseEnter&&this.showPopover()}),P().default.LONG)}onMouseLeave(){clearTimeout(this.timeout),this.mouseEnter=!1}setEvents(){T().default.checkMd.matches?(this.popoverTriggerElement.addEventListener("mouseenter",this.onMouseEnter.bind(this)),this.popoverTriggerElement.addEventListener("mouseleave",this.onMouseLeave.bind(this))):this.popoverTriggerElement.addEventListener("click",(e=>{e.preventDefault(),this.mouseEnter=!0,this.showPopover()}))}}})),d=a.cw((function(t,s){a.d(s,{A:function(){return i}}),r(),ce();class i{constructor(t,a,s,i){this.modal=t,this.toggleSwitchButton=a,this.priceAlertContainer=s,this.toggleSwitchButton&&this.priceAlertContainer&&(this.bookId=i,this.alertInstance=new(e().default))}colorScheme={colorBook:"rgba(255, 85, 0, 0.8)",colorEbook:"rgba(40, 222, 200, 0.8)",colorAudiobook:"rgba(0, 178, 255, 0.8)",track:"#fff"};getColorSchemeForType(e){switch(e){case x().A.BOOK:case x().A.E_BOOK:case x().A.AUDIOBOOK:return this.colorScheme.colorBook;default:return null}}async fetchDataRemoveAlert(e){const t=e||this.bookId;try{const e={method:"DELETE"};return await(0,ce().default)(`price_alert/delete/${t}`,e)}catch(e){return null}}async fetchDataSendAlert(e){try{const t={method:"POST",body:JSON.stringify(e)};return await(0,ce().default)(`price_alert/alert/${this.bookId}`,t)}catch(e){return null}}createStatusMessage(e){return e?'<b class="price-alert__status-header">Twój alert został zapisany!</b><br>
1\n      <span class="price-alert__status-message">\n        Swoimi alertami możesz zarządzać <a href="/alerty" class="price-alert__status-link" title="Alerty cenowe">tutaj</a>.\n      </span>':"<b class=\"price-alert__status-header\">Alert cenowy dla tej pozycji został usunięty.</b><br>\n    Możesz ustawić alert ponownie klikając w przycisk 'Ustaw alert' na stronie książki lub w biblioteczce."}createStatusTemplate(e=!1){return`<div class="price-alert__status"><i class="icon icon-price-alert"></i>${this.createStatusMessage(e)}</div>`}async getBestOffersPerType(e){try{const t=await e.getBestOfferPerType();t&&this.generateStructure(t)}catch(e){this.priceAlertContainer.innerHTML=B().default.ERROR}}init(){const e=new(r().A)(this.toggleSwitchButton);this.getBestOffersPerType(e)}getDataToSend(e,t,a,s){const i={daysLimit:s.classList.contains("is-hidden")?0:parseInt(s.querySelector("input:checked").value)};return this.isRangeInputVisible(e)&&(i.rangeBook=parseInt(e.value)),this.isRangeInputVisible(t)&&(i.rangeEbook=parseInt(t.value)),this.isRangeInputVisible(a)&&(i.rangeAudiobook=parseInt(a.value)),i}isRangeInputVisible(e){return!e.parentElement.classList.contains("is-hidden")}updateNoOfferTypeCheckboxes(e,t,a,s,i){const r=e.querySelector(`.price-alert__type--${t}`),n=r.querySelector("[data-type-offer-price]"),o=e.querySelector(`.price-alert__range-wrapper--${t}`);return n.textContent=a,n.classList.add(s),i&&(e.querySelector(`.price-alert__type--${t} input`).checked=!1,o.classList.add("is-hidden")),r}updateNoOfferRangeInputs(e,t,a,s,i=!0){const r=e.querySelector(`.price-alert__range-wrapper--${t}`);r.classList.add(a),s&&i&&r.classList.add("is-hidden")}uncheckCheckboxesAndRangeOff(e,t,a){this.updateNoOfferTypeCheckboxes(e,t,"Powiadom o dostępności","price-alert__type-price-offer--empty",a),this.updateNoOfferRangeInputs(e,t,"is-no-offer",a)}handleNoOfferContent(e,t){[x().A.BOOK,x().A.E_BOOK,x().A.AUDIOBOOK].forEach((a=>{const s=e.querySelector(`.price-alert__type--${a}`);s.querySelector("[data-type-offer-price]").textContent="Powiadom o dostępności",s.querySelector("[data-type-offer-price]").classList.add("price-alert__type-price-offer--empty"),e.querySelector(`.price-alert__range-wrapper--${a}`).classList.add("is-no-offer"),t&&"book"===a&&(s.querySelector("input").checked=!0,e.querySelector(`.price-alert__range-wrapper--${a}`).classList.remove("is-hidden")),this.generateNoOffersBuyboxMessage(e)}))}generateNoOffersBuyboxMessage(e){e.querySelector(".price-alert__empty-wrapper").innerHTML="\n    <span>\n      W tej chwili żadna z naszych partnerskich księgarń nie posiada tej książki w sprzedaży.\n    </span>"}generateData(e,t,a,s,i){if(Object.prototype.hasOwnProperty.call(a,t)){const r=Number.isInteger(a[t])?a[t]-1:Math.floor(a[t]);e.querySelectorAll(`[data-price-buybox-${t}]`).forEach((e=>{e.hasAttribute("data-price-with-decimals")?e.textContent=`od ${a[t]} zł`:e.textContent=`od ${r} zł`})),i&&!(x().A.BOOK in a)&&!(x().A.AUDIOBOOK in a)&&x().A.E_BOOK in a?(e.querySelector(`.price-alert__type--${x().A.E_BOOK} > input`).checked=!0,e.querySelector(`.price-alert__range-wrapper--${x().A.E_BOOK}`).classList.remove("is-hidden")):i&&!(x().A.BOOK in a)&&!(x().A.E_BOOK in a)&&x().A.AUDIOBOOK in a&&(e.querySelector(`.price-alert__type--${x().A.AUDIOBOOK} > input`).checked=!0,e.querySelector(`.price-alert__range-wrapper--${x().A.AUDIOBOOK}`).classList.remove("is-hidden")),s.forEach((a=>{const s=parseInt(r);if(a.classList.contains("price-alert__range--new")){const e=Math.floor(s-.1*s);a.value=e,a.max=s}else s<a.value?a.max=a.value:a.max=s;s<10?(e.querySelectorAll(".price-alert__range-label--min").forEach((e=>{e.innerHTML="1 zł"})),a.min=1):a.min=5,this.updateRangeInput(a,this.getColorSchemeForType(t))}))}else this.uncheckCheckboxesAndRangeOff(e,t,i),s.forEach((e=>{this.updateRangeInput(e,this.getColorSchemeForType(t))}))}generateStructure(e){const t=this.priceAlertContainer.classList.contains("price-alert--new"),a=!(x().A.BOOK in e)&&!(x().A.E_BOOK in e)&&!(x().A.AUDIOBOOK in e),s=this.priceAlertContainer.querySelector(".price-alert__edit"),i=this.priceAlertContainer.querySelector(".price-alert__delete"),r=this.priceAlertContainer.querySelectorAll(".price-alert__type > input");this.rangeSliderInputBook=this.priceAlertContainer.querySelector(".price-alert__range--book"),this.rangeSliderInputEbook=this.priceAlertContainer.querySelector(".price-alert__range--ebook"),this.rangeSliderInputAudiobook=this.priceAlertContainer.querySelector(".price-alert__range--audiobook"),this.limitDateContainer=this.priceAlertContainer.querySelector(".price-alert__date");const n=[this.rangeSliderInputBook,this.rangeSliderInputEbook,this.rangeSliderInputAudiobook];a?(this.handleNoOfferContent(this.priceAlertContainer,t),n.forEac
1h((e=>{e.min=5}))):[x().A.BOOK,x().A.E_BOOK,x().A.AUDIOBOOK].forEach((a=>{this.generateData(this.priceAlertContainer,a,e,n.filter((e=>e.name===a)),t)})),this.updateRangeInput(this.rangeSliderInputBook,this.colorScheme.colorBook),this.updateRangeInput(this.rangeSliderInputEbook,this.colorScheme.colorEbook),this.updateRangeInput(this.rangeSliderInputAudiobook,this.colorScheme.colorAudiobook),s?.addEventListener("click",(e=>{e.target.classList.toggle("price-alert__edit--close"),this.priceAlertContainer.querySelector(".price-alert__date").classList.toggle("is-hidden")})),i?.addEventListener("click",(()=>{this.fetchDataRemoveAlert().then((e=>{e?.code===z().default.OK&&this.modal.updateModalDialog(this.createStatusTemplate(!1),!0)}))})),r.forEach((e=>{e.addEventListener("change",(t=>{Array.from(r).some((e=>e.checked))?this.priceAlertContainer.querySelector(`.price-alert__range-wrapper--${e.id}`).classList.toggle("is-hidden"):t.target.checked=!0}))})),this.rangeSliderInputBook?.addEventListener("input",(e=>{this.updateRangeInput(e.target,this.colorScheme.colorBook)})),this.rangeSliderInputEbook?.addEventListener("input",(e=>{this.updateRangeInput(e.target,this.colorScheme.colorEbook)})),this.rangeSliderInputAudiobook?.addEventListener("input",(e=>{this.updateRangeInput(e.target,this.colorScheme.colorAudiobook)}))}async handleSendData(){const e=this.getDataToSend(this.rangeSliderInputBook,this.rangeSliderInputEbook,this.rangeSliderInputAudiobook,this.limitDateContainer),t=await this.fetchDataSendAlert(e);t?.code===z().default.OK?(this.toggleSwitchButton.parentElement.querySelector("span").textContent="Edytuj alert LC",this.modal.updateModalDialog(this.createStatusTemplate(!0),!0)):this.alertInstance.alertMessage("error",t.msg)}updateRangeInput(e,t){const a=(e.value-e.getAttribute("min"))/(e.getAttribute("max")-e.getAttribute("min")),s=e.nextElementSibling,i=Number(100*a),r=18-.36*i;e.style.backgroundImage=`-webkit-gradient(linear, left top, right top, color-stop(${a}, ${t}), color-stop(${a}, ${this.colorScheme.track}))`,s.innerHTML=`${e.value} zł`,s.style.left=`calc(${i}% + (${r}px))`}}})),h=a.cw((function(e,t){a.d(t,{A:function(){return s}}),N();class s{constructor(e,t,a,s,i){e&&(this.readDateContainer=e,this.modal=t,this.bookIsAlreadyRead=a,this.validationRefresh=s,this.clearValidator=i,this.readDateList=this.readDateContainer.querySelector(".library-read-date__list"),this.readDateItems=this.readDateList.querySelectorAll(".library-read-date__item"),this.readDateIntro=this.readDateContainer.querySelector(".library-read-date__intro"),this.readDateAddButton=this.readDateContainer.querySelector(".library-read-date__add-new"),this.collapsedButton=this.readDateContainer.querySelector(".library__cta--read-dates"),this.initReadDate(),this.setEvents())}setEvents(){this.readDateAddButton?.addEventListener("click",(()=>this.addNewReadDate()))}protectedYear(e){let t=e.target.value.replace(/[^0-9]/g,"");t.length>4&&(t=t.substring(0,4)),e.target.value=t}protectedMonthAndYear(e){const t=e.target.value;if(2===t.length&&t[1]===$().A.DOT)return void(e.target.value=`0${t}`);if(3===t.length&&t[2]!==$().A.DOT)return void(e.target.value=t.substring(0,2));const a=t.lastIndexOf($().A.DOT);
1if(-1!==a&&2!==a&&1!==a)return void(e.target.value=t.substring(0,a)+t.substring(a+1));let s=t.replace(/[^0-9.]/g,"");s.length>7&&(s=s.substring(0,7)),e.target.value=s}generateReadDateTemplate(e,t=!0,a=!1,s=!1,i=null){return`\n        <div class="library-read-date__field library-read-date__field--date ${t?"":"is-off"}" data-radio-date-target="change-full-date-${e}">\n            <input name="day-month-year-${e}" id="day-month-year-${e}" class="library-read-date__input" type="date" required\n            ${t?"":"disabled"}\n            min="1900-01-01" max="${(new Date).toISOString().split("T")[0]}" \n            value="${i?i.slice(0,10):""}">\n            <button type="button" class="library-read-date__datepicker"></button>\n            <label class="sr-only" for="day-month-year-${e}">Data przeczytania</label>\n        </div>\n      \n        <div class="library-read-date__field library-read-date__field--month ${a?"":"is-off"}" data-radio-date-target="change-month-year-${e}">\n            <input ${a?"":"disabled"} required\n            name="month-year-${e}" id="month-year-${e}" type="text"\n            data-custom-validatable="date-month-year"\n            data-date-custom-min="1900"\n            pattern="^(0[1-9]|1[0-2])\\.(19[0-9]{2}|20[0-9]{2})$"\n            placeholder="mm.rrrr" class="library-read-date__input"\n            value="${i?new Date(i).toLocaleDateString("pl-PL",{month:"2-digit",year:"numeric"}).replace("/","."):""}">\n            <label class="sr-only" for="month-year-${e}">Data przeczytania</label>\n        </div>\n      \n        <div class="library-read-date__field library-read-date__field--year ${s?"":"is-off"}" data-radio-date-target="change-year-${e}">\n            <input ${s?"":"disabled"} required\n            name="only-year-${e}" id="only-year-${e}" type="number" class="library-read-date__input" placeholder="rrrr" min="1900" max="${(new Date).getFullYear()}"\n            value="${i?i.slice(0,4):""}">\n            <label class="sr-only" for="only-year-${e}">Data przeczytania</label>\n        </div>\n      \n        <nav class="dropdown dropdown--library-read-date dropdown--mobile-visible">\n            <button class="dropdown__open" type="button" aria-label="Zmień format daty">\n                <i class="icon icon-ellipsis" aria-hidden="true"></i>\n            </button>\n            <div class="dropdown__content">\n              <ul class="dropdown__list">\n                <li class="dropdown__item">\n                  <span>Wybierz format daty:</span>\n                    <ul class="library-format-date">\n                      <li class="library-format-date__item">\n                        <input type="radio" id="change-full-date-${e}" name="read-end-${e}" ${t?"checked":""} />\n                        <label for="change-full-date-${e}">\n                          Pełna data\n                        </label>\n                      </li>\n                      <li class="library-format-date__item">\n                        <input type="radio" id="change-month-year-${e}" name="read-end-${e}" ${a?"checked":""} />\n                        <label for="change-month-year-${e}">\n                          Miesiąc i rok\n                        </label>\n                      </li>\n                      <li class="library-format-date__item">\n                        <input type="radio" id="change-year-${e}" name="read-end-${e}" ${s?"checked":""} />\n                        <label for="change-year-${e}">\n                          Rok\n                        </label>\n                      </li>\n                    </ul>\n                </li>\n                <li class="dropdown__item">\n                  <span class="library-read-date__delete"><i class="icon icon-icon-remove-library" aria-hidden="true"></i>Usuń datę</span>\n                </li>\n              </ul>\n            </div>\n        </nav>\n        <span data-invalid-message="day-month-year-${e}" class="library-read-date__invalid-message"></span>\n        <span data-invalid-message="month-year-${e}" class="library-read-date__invalid-message"></span>
1\n        <span data-invalid-message="only-year-${e}" class="library-read-date__invalid-message"></span>\n      `}initReadDate(){this.count=0,this.readDateItems.forEach((e=>{const t=e.getAttribute("data-date-yymmdd-checked"),a=e.getAttribute("data-date-yymm-checked"),s=e.getAttribute("data-date-yy-checked"),i=e.getAttribute("data-user-read-end"),r="1"===t,n="1"===a,o="1"===s,l=this.generateReadDateTemplate(this.count,r,n,o,i);e.innerHTML=l,this.setReadDateEvents(e),this.count++}))}setReadDateEvents(e){const t=e.querySelector(".dropdown");t&&new(N().A)(t),this.setReadDateFormatEvents(e),this.validateReadDatesEvents(e)}setReadDateFormatEvents(e){e.querySelector(".library-format-date").addEventListener("change",(t=>this.changeInputHandler(t,e))),e.addEventListener("click",(e=>this.removeReadDateHandler(e)))}validateReadDatesEvents(e){const t=e.querySelector(".library-read-date__field--year > .library-read-date__input"),a=e.querySelector(".library-read-date__field--month > .library-read-date__input");t.addEventListener("input",this.protectedYear.bind(this)),a.addEventListener("input",this.protectedMonthAndYear.bind(this))}addNewReadDate(){const e=parseInt(this.readDateList.children.length);if(e>=50)return void this.modal.showInfoModal("Uwaga!","Możesz dodać maksymalnie 50 dat przeczytania.");const t=`<li class="library-read-date__item">${this.generateReadDateTemplate(this.count,!0,!1,!1,null)}</li>`;this.count++,(0===e||this.bookIsAlreadyRead&&1===e)&&this.readDateIntro?.classList.add("is-off"),this.readDateList.insertAdjacentHTML("afterbegin",t);const a=this.readDateList.firstElementChild;this.setReadDateEvents(a),this.validationRefresh()}removeReadDateHandler(e){if(e.target.classList.contains("library-read-date__delete")){const t=e.target.closest(".library-read-date__item");t&&t.remove();const a=parseInt(this.readDateList.children.length);(0===a||this.bookIsAlreadyRead&&1===a)&&this.readDateIntro?.classList.remove("is-off"),a<3&&(this.collapsedButton?.remove(),this.readDateItems.forEach((e=>{e.classList.remove("is-off")})))}}changeInputHandler(e,t){t.querySelectorAll(".library-read-date__field").forEach((t=>{const a=t.getAttribute("data-radio-date-target"),s=t.querySelector("input");a===e.target.id?(t.classList.remove("is-off"),s.disabled=!1):(t.classList.add("is-off"),s.disabled=!0,this.clearValidator(s))}))}}})),u=a.cw((function(e,t){a.d(t,{A:function(){return s}}),c(),ce(),T();class s{constructor(e){this.initContainerVars(e),this.validateStructure()&&(this.calculateSliderDimensions(),this.initDebounce(),this.setEvents())}initDebounce(){this.moveDebounced=(0,L().default)((e=>{this.move(e.target)}),P().default.LONG,!0),this.scrollDebounced=(0,L().default)((()=>{this.updateArrows(),this.moveBarPosition(this.sliderWrapper.scrollLeft)}),P().default.EPSILON,!1)}validateStructure(){return this.slides.length}initContainerVars(e){this.container=e,this.slider=this.container.querySelector(".carousel__slider"),this.gap=D().A.DEFAULT_PADDING,this.minGap=this.slider.hasAttribute("data-min-gap")?this.slider.getAttribute("data-min-gap"):D().A.DEFAULT_PADDING,this.scrollBarLine=this.container.querySelector(".carousel__scrollbar"),this.scrollBar=this.scrollBarLine.querySelector(".carousel__scrollbar__bar"),this.arrows=this.container.querySelectorAll(".carousel__nav .carousel__arrow"),this.sliderWrapper=this.slider.querySelector(".carousel__wrapper"),this.slides=this.slider.querySelectorAll(".carousel__slide"),this.hiddenElements=this.container.querySelectorAll(".is-hidden"),this.loaded=!this.slider.hasAttribute("data-lazy-el"),this.dataLazyElementsCount=parseInt(this.slider.getAttribute("data-lazy-el")),this.currentElementsCount=this.slides.length,this.dataLazyUrl=this.slider.getAttribute("data-lazy-url"),this.sliderRecalculate=!1,this.slider.hasAttribute("data-fetch-params")&&(this.sliderParams=this.slider.getAttribute("data-fetch-params"))}refresh(){this.calculateSliderDimensions()}async fetchData(e,t,a){try{return await(0,ce().default)(`mainpage/content/${a}/${e}/${t}${this.sliderParams?`/${this.sliderParams}`:""}`)}catch(e){return null}}setSeparator(){this.slider.hasAttribute("data-separator")&&this.slider.style.setProperty("--after-right",`-${this.gap/2}px`)}setEvents(){this.arrows.forEach((e=>{e.addEventListener("mousedown",this.moveDebounced.bind(this))})),this.sliderWrapper.addEventListener("scroll",this.scrollDebounced.bind(this)),this.sliderWrapper.addEventListener("changetab",(()=>{this.scrollToStart()})),(0,A().A)(this.container,["mouseenter","touchstart"],(()=>{if(!this.loaded){if(this.dataLazyElementsCount-this.currentElementsCount<1)return void(this.loaded=!0);this.fetchData(this.dataLazyElementsCount,this.currentElementsCount,this.dataLazyUrl).then((e=>{if(e){const t=(0,C().A)(e.data.content);this.sliderWrapper.append(t),this.processNewSlides()}})),this.loaded=!0}})),T().default.addListener(this.refresh.bind(this))}processNewSlides(){this.slides=this.slider.querySelectorAll(".carousel__slide"),this.dataLazyElementsCount!==this.slides.length&&(this.dataLazyElementsCount=this.slides.length,this.sliderRecalculate=!0,this.calculateSliderDimensions()),this.setSeparator();const e=this.sliderWrapper.querySelectorAll(".popover");Array.from(e).slice(this.currentElementsCount).forEach((e=>{new(c().A)(e)})),this.currentElementsCount=this.slides.length}calculateSliderDimensions(){if(this.slidesPerView=!!T().default.checkXl.matches&&parseInt(this.slider.getAttribute("data-per-view")),this.sliderWrapperWidth=this.sliderWrapper.getBoundingClientRect().width,this.slidesPerView){const e=this.slides[0].getBoundingClientRect().width*this.slidesPerView,t=parseInt(this.sliderWrapperWidth-e);this.gap=1===this.slidesPerView?D().A.DEFAULT_PADDING:Math.max(this.minGap,parseFloat(t/(this.slidesPerView-1)))}this.setSeparator(),this.sliderWrapper.style.gap=`${this.gap<0?0:this.gap}px`,this.loaded?this.sliderWrapperScrollWidth=this.sliderWrapper.scrollWidth:this.sliderWrapperScrollWidth=this.slides[0].getBoundingClientRect().width*this.dataLazyElementsCount+this.gap*(this.dataLazyElementsCount-1),this.maxScrollLeft=Math.floor(this.sliderWrapperScrollWidth-this.sliderWrapperWidth),this.sliderWrapperScrollWidth>
1this.sliderWrapperWidth&&this.hiddenElements.forEach((e=>{e.classList.remove("is-hidden")})),this.scrollBar.style.width=this.sliderWrapperWidth*this.scrollBarLine.clientWidth/this.sliderWrapperScrollWidth+"px"}updateArrows(){this.arrows.forEach((e=>{e.classList.contains("carousel__arrow--prev")&&(e.disabled=0===this.sliderWrapper.scrollLeft),e.classList.contains("carousel__arrow--next")&&(e.disabled=this.maxScrollLeft-this.sliderWrapper.scrollLeft<=0)}))}move(e){const t=this.sliderWrapperWidth+this.gap;e.classList.contains("carousel__arrow--next")?this.scrollSlider(this.sliderWrapper.scrollLeft+t):this.scrollSlider(this.sliderWrapper.scrollLeft-t)}scrollSlider(e){this.sliderWrapper.scroll({left:e,behavior:"smooth"}),this.updateArrows()}moveBarPosition(e){this.scrollBar.style.left=e*this.scrollBarLine.clientWidth/this.sliderWrapperScrollWidth+"px"}scrollToStart(){this.sliderWrapper.scroll({left:0}),this.updateArrows(),this.scrollBar.style.left=0}scrollToSlide(e){const t=Math.min(e.offsetLeft,this.maxScrollLeft);this.sliderWrapper.scroll({left:t}),this.updateArrows(),this.moveBarPosition(t)}}})),g=a.cw((function(e,t){a.r(t),a.d(t,{default:function(){return s}});class s{constructor(e){e&&(this.validatedContainer=e,this.fields=this.validatedContainer.querySelectorAll("input, textarea, select"),this.isActiveValidator=!0,this.errorContainers=this.createErrorContainersMap(),this.customFields=[],this.patternErrorProvider=new(l().A),this.setEvents())}createErrorContainersMap(){const e={};return this.fields.forEach((t=>{e[t.name]=this.validatedContainer.querySelector(`[data-invalid-message="${t.name}"]`)})),e}addError(e,t){this.errorContainers[e.name]&&(this.errorContainers[e.name].innerText=t,e.setAttribute("aria-invalid","true"))}clearError(e){this.errorContainers[e.name]&&(this.errorContainers[e.name].innerText="",e.setAttribute("aria-invalid","false"))}disableValidator(){this.validatedContainer.setAttribute("novalidate",""),this.isActiveValidator=!1}enableValidator(){this.validatedContainer.removeAttribute("novalidate",""),this.isActiveValidator=!0}getPluralForm(e){return 1===e?"znak":e>1&&e<5?"znaki":"znaków"}getLabel(e){const t=this.validatedContainer.querySelector(`label[for="${e.id}"]`);return e.id&&t?`${t.textContent}`:"Pole"}setEvents(){this.fields.forEach((e=>{e.addEventListener("focus",(()=>{this.clearError(e)})),e.addEventListener("invalid",(e=>{e.preventDefault(),this.standardValid(e.target)})),this.setConfirmPasswordEvent(e),e.hasAttribute("data-custom-validatable")&&this.customFields.push({field:e,label:this.getLabel(e)})}))}setConfirmPasswordEvent(e){if(e.hasAttribute("data-password-confirm")){const t=this.validatedContainer.querySelector('input[type="password"][data-password]');e.addEventListener("input",(function(){e.value!==t.value?e.setCustomValidity("Hasła muszą być takie same."):e.setCustomValidity("")}))}}standardValid(e){if(!this.isActiveValidator)return;if(e.disabled)return;const t=this.getLabel(e),a=e.hasAttribute("data-custom-invalid-message")?e.getAttribute("data-custom-invalid-message"):null,s=e.hasAttribute("required");if(!this.customLengthValid(e,t))return;let i=a||`Błąd w polu „${t}". ${e.validationMessage}`;if(e.pattern){const a=this.patternErrorProvider.getError(e.pattern,t);a&&(i=a)}s&&(""!==e.value.trim()&&""!==e.value||(i=`Pole „${t}" jest wymagane. Wypełnij to pole.`)),this.addError(e,i)}customLengthValid(e,t){const{value:a}=e,s=t=>e.hasAttribute(t)?parseInt(e.getAttribute(t)):null,i=s("min"),r=s("max"),n=s("minlength"),o=s("maxlength");return!!((t,a,s,i)=>null!==a&&null!==s&&(t<a||t>s)?(this.addError(e,`Pole „${i}" musi być liczbą między ${a} a ${s}.`),!1):null!==a&&t<a?(this.addError(e,`Pole „${i}" musi być liczbą nie mniejszą niż ${a}.`),!1):!(null!==s&&t>s&&(this.addError(e,`Pole „${i}" nie może być liczbą większą niż ${s}.`),1)))(a,i,r,t)&&!!((t,a,s,i)=>null!==a&&null!==s&&(t.length<a||t.length>s)?(this.addError(e,`Pole „${i}" musi mieć długość od ${a} do ${s} ${this.getPluralForm(s)}.`),!1):null!==a&&t.length<a?(this.addError(e,`Pole „${i}" musi mieć co najmniej ${a} ${this.getPluralForm(a)}.`),!1):!(null!==s&&t.length>s&&(this.addError(e,`Pole „${i}" nie może mieć więcej niż ${s} ${this.getPluralForm(s)}.`),1)))(a,n,o,t)}validate(){if(!this.isActiveValidator)return!0;let e=!0;
1return Array.from(this.customFields).forEach((t=>{e=this.validateCustomField(t)&&e})),e}validateCustomField({field:e,label:t}){const a=e.getAttribute("data-custom-validatable").split(",");let s=!0;return a.forEach((a=>{switch(a){case"date-month-year":{const[a,i]=e.value.split(".").map((e=>parseInt(e))),r=new Date,n=e.getAttribute("data-date-custom-min");(i<n||i>r.getFullYear()||i===r.getFullYear()&&a>r.getMonth()+1)&&(s=!1,this.addError(e,`Data w polu „${t}" powinna zawierać się w przedziale od roku ${n} do obecnego.`));break}}})),s}}})),p=a.cw((function(e,t){t.A=(e,t)=>{const a=Object.values(e).filter((e=>t===e.type||t===x().A.ALL)).map((({id:e,price:t})=>({id:e,price:t})));if(a.length>0){a.sort((e=>{const t=e.startsWith("-")?-1:1,a=e.startsWith("-")?e.slice(1):e;return(e,s)=>(Number(e[a])-Number(s[a]))*t})("price"));const[t,s]=Object.entries(e).find((([,{id:e}])=>e===a[0].id));return{url:t,data:s}}return!1},a.dn(t.A)})),m=a.cw((function(t,s){a.d(s,{A:function(){return i}}),U(),H(),ce();class i{constructor(e,t=!0,a=null,s=null,i=null,r=""){this.setAndValidateStructure(e,s,i,r)&&t&&(this.callback=a,this.show())}setAndValidateStructure(t,a){if(!(t||a&&a.isAuth))return!1;this.trigger=t,this.body=document.querySelector("body");const s=document.querySelector(".new-modal");return this.modal=s.cloneNode(!0),s.parentNode.replaceChild(this.modal,s),this.modalDialog=this.modal.querySelector(".modal__dialog"),this.isVideoModal="video"===this.trigger?.getAttribute("data-modal-type"),this.isLightboxModal="lightbox"===this.trigger?.getAttribute("data-modal-type"),this.isGeneratedModal="fetch-generated"===this.trigger?.getAttribute("data-modal-type"),this.fetchUrl=a?.isAuth?`${I().A.FETCH_URL}?isLogin=${a.isLogin}&withSocials=${a.withSocials}&isSpecialLoginType=${a.isSpecialLoginType}&source=${a.source}`:this.trigger?.getAttribute("data-modal-fetch-url"),a?.isAuth?(this.urlHeaders=I().A.FETCH_HEADERS,this.isSpecialLoginType=a.isSpecialLoginType):this.fetchUrl&&(this.urlParams=this.trigger?.getAttribute("data-url-params"),this.urlHeaders=this.trigger?.getAttribute("data-url-headers")),this.dismissContent=this.trigger?.hasAttribute("data-modal-dismiss-content"),this.hideOnBackdropMethod=this.hideOnBackdrop.bind(this),this.alertInstance=new(e().default),this.onCancel=()=>{},!0}lossPreventionRequired(){return!1}async fetchData(e,t){const a=t?`/${t}`:"",s=this.trigger?.getAttribute("data-url-query");let i="";s&&(i=s.startsWith("?")?s:`?${s}`);const r=`${e}${a}${i}`;if(this.urlHeaders){const e={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","x-requested-with":"xmlhttprequest",...JSON.parse(this.urlHeaders)}};return(0,ce().default)(r,e,!1)}return(0,ce().default)(r)}async show(){this.setupModal(),await this.fillModal(),this.setFocusAndEvents()}showBasicModal(e,t,a,s,i,r,n,o){return this.setupModal(),this.modalDialog.innerHTML=this.generateBasicModalTemplate(e,t,a,s,i,r),this.setFocusAndEvents(n,o),this.modalDialog}setupModal(){this.dismissContent||this.modal.addEventListener("click",this.hideOnBackdropMethod),this.modal.setAttribute("aria-hidden",!1),this.modal.classList.remove("is-off"),this.modal.tabIndex=null,this.body.classList.add("is-scroll-locked")}setFocusAndEvents(e=null,t=null){(0,M().A)(this.modal);const a=this.modalDialog.querySelector(".modal__close"),s=this.modalDialog.querySelector(".modal__cancel");if(a?.addEventListener("click",(e=>{this.tryHide(e.target)})),s?.addEventListener("click",(e=>{const t=this.modalDialog.querySelector(".modal__content--lcaward-logged"),a=this.modalDialog.querySelector(".modal__back"),s=a&&!a.classList.contains("is-off");if(t&&s){const e=U().A.getPreviousModal();U().A.removeModal(),this.modalDialog.innerHTML=e.innerHtml,this.callback=e.callback,this.callback(this),this.setFocusAndEvents()}else this.tryHide(e.target)})),e){this.modalDialog.querySelector(".modal__save")?.addEventListener("click",(t=>{e(),this.tryHide(t.target,!0)}))}t&&(this.onCancel=t),U().A.addModal({innerHtml:this.modalDialog.innerHTML,callback:this.callback}),this.addBackEventIfNeeded()}addBackEventIfNeeded(){const e=this.modalDialog.querySelector(".modal__back");e&&U().A.count()>1&&(e.classList.remove("is-off"),e.addEventListener("click",(()=>{const e=U().A.getPreviousModal();U().A.removeModal(),this.modalDialog.innerHTML=e.innerHtml,this.callback=e.callback,this.callback(this),this.setFocusAndEvents()})))}async fillModal(){this.isVideoModal?this.showVideoModal():this.isLightboxModal?this.showLightboxModal():this.fetchUrl&&await this.show
1FetchModal()}generateBasicModalTemplate(e,t,a=null,s=null,i=!0,r=!1){return`<button class="modal__close" tabindex="0" aria-label="Zamknij modal" type="button"><i class="icon-close" aria-hidden="true"></i></button>\n    <button class="modal__back is-off" tabindex="0" aria-label="Cofnij" type="button"><i class="icon-arrow-left"></i></button>\n    <div class="modal__content ${r}">\n      ${e?`<div class="modal__header">\n        <h2 class="modal__title">\n          ${e}\n        </h2>\n      </div>`:""}\n      <div class="modal__body">\n        ${t}\n      </div>\n      ${i?`<div class="modal__footer"><button type="button" class="modal__cancel">${s}</button><button type="button" class="modal__save">${a}</button></div>`:""}\n    </div>`}generateVideoModalTemplate(e,t,a){return`\n      <button class="modal__close" tabindex="0" aria-label="Zamknij modal" type="button">\n        <i class="icon-close" aria-hidden="true"></i>\n      </button>\n      <div class="modal__content modal__content--video">\n        <div class="modal__header">\n          <h2 class="modal__title">${a}</h2>\n        </div>\n        ${e?`\n              <video class="modal__player" controls>\n                <source src="${t}" type="video/mp4">\n                Twoja przeglądarka nie obsługuje tagu video.\n              </video>\n            `:'<div class="modal__player yt-host"></div>'}\n      </div>\n    `}showConfirmCloseProtectedModal(e,t){this.showConfirmModal(e,t,(()=>{this.hide(!0),this.body.classList.remove("is-scroll-locked")}))}showConfirmModal(e,t,a){this.body.classList.add("is-scroll-locked"),this.modal.insertAdjacentHTML("beforeend",(0,H().bt)(e,t));const s=this.modal.querySelector(".new-modal--confirm"),i=s.querySelector(".modal__cancel"),r=s.querySelector(".modal__save");i.addEventListener("click",(()=>{s.remove()})),r.addEventListener("click",(()=>{s.remove(),a()}))}showInfoModal(e,t){this.body.classList.add("is-scroll-locked"),this.modal.insertAdjacentHTML("beforeend",(0,H().nj)(e,t));const a=this.modal.querySelector(".new-modal--info");a.querySelector(".modal__save").addEventListener("click",(()=>{a.remove()}))}showVideoModal(){const e=this.trigger.hasAttribute("data-modal-local-video"),t=(this.trigger.getAttribute("data-modal-video-url")||"").replace("watch?v=","embed/"),a=this.trigger.getAttribute("data-modal-video-title")||"";if(this.modalDialog.insertAdjacentHTML("beforeend",this.generateVideoModalTemplate(e,t,a)),e){const e=this.modalDialog.querySelector("video");if(e){e.setAttribute("playsinline","");const t=e.play();t&&"function"==typeof t.catch&&t.catch((()=>{}))}}}showLightboxModal(){const e=this.trigger.getAttribute("data-modal-lightbox-url");this.modalDialog.innerHTML=this.generateBasicModalTemplate(null,`<img src="${e}" alt=""/>`,null,null,!1,"modal__content--lightbox")}async showFetchModal(){this.updateModalDialog(B().default.LOADING);try{const e=await this.fetchData(this.fetchUrl,this.urlParams);e&&(e.code===z().default.NO_LOGGED?new i(null,!0,this.loginCallback,{isAuth:!0,isLogin:!0,withSocials:!0,isSpecialLoginType:!1,source:""}):e.code===z().default.LOGGED?this.updateModalDialog(e.msg):e.code===z().default.OK?(this.isGeneratedModal?(this.fetchResponse=e,this.modalDialog.innerHTML=this.generateBasicModalTemplate("&nbsp;","",null,null,!1,"modal__content--generate")):this.modalDialog.innerHTML=e.data.content,"function"==typeof this.callback&&(this.modalTitle=this.modalDialog.querySelector(".modal__title"),this.modalBody=this.modalDialog.querySelector(".modal__body"),this.callback(this))):this.updateModalDialog(e.msg?e.msg:B().default.ERROR))}catch(e){this.updateModalDialog(B().default.ERROR)}}updateModalDialog(e,t=!1){this.trigger?.hasAttribute("data-paywall-login-trigger")||(this.modalDialog.innerHTML=(0,H().generateStatusModalTemplate)(e),t&&this.setFocusAndEvents())}tryHide(e,t=!1){const a=this.lossPreventionRequired();a?this.showConfirmCloseProtectedModal(a.title,a.message):this.hide(e,t)}hide(e,t=!1){this.onCancel&&!t&&this.onCancel(e),this.modal.removeEventListener("click",this.hideOnBackdropMethod),this.modal.setAttribute("aria-hidden",!0),this.modal.classList.add("is-off"),this.modal.tabindex=-1,this.modalDialog.innerHTML="",this.body.classList.remove("is-scroll-locked"),U().A.clear()}hideOnBackdrop(e){e.target.classList.contains("new-modal")&&!e.target.classList.contains("new-modal--helper")&&this.isSpecialLoginType}recreateModal(e){e.addEventListener("click",(()=>{new i(e,!0,this.callback)}))}}})),f=a.cw((function(e,t){a.r(t),a.d(t,{default:function(){return s}}),m(),V(),K(),Q();class s{static modalToOpenParams=null;
1static rulesModalOpen=!1;static initModal(e,t){const a=e.hasAttribute("data-modal-rules");if(s.rulesModalOpen=s.rulesModalOpen||a,!s.rulesModalOpen||a)if(e.hasAttribute("data-modal-onload")){const a=e.getAttribute("data-capping");if(!a)return void this.createModal(e,!0,t);const s=parseInt(e.getAttribute("data-capping-limit"))||1,i=parseInt(localStorage.getItem(a))||0;i<s&&(this.createModal(e,!0,t),localStorage.setItem(a,i+1))}else e.createModalFunction||(e.createModalFunction=()=>this.createModal(e,!0,t)),this.resetClickListener(e,e.createModalFunction);else s.modalToOpenParams={trigger:e,fetchCallback:t}}static initLoginModal(e,t=!0,a=!1){if(!e.createModalFunction){const i=(0,Q().default)(e)??"";e.createModalFunction=()=>this.createModal(e,!0,_e()(),s.createAuthParams(!0,!0,t,a,i))}this.resetClickListener(e,e.createModalFunction)}static initRegisterModal(e,t=!0){if(!e.createModalFunction){const a=(0,Q().default)(e)??"";e.createModalFunction=()=>this.createModal(e,!0,_e()(),s.createAuthParams(!0,!1,t,a))}this.resetClickListener(e,e.createModalFunction)}static showLoginModal(){this.createModal(null,!0,_e()(),s.createAuthParams(!0,!0,!0))}static initBasicModal(e,t,a,s,i,r,n,o,l){e.createBasicModalFunction||(e.createBasicModalFunction=()=>{new(m().A)(e,!1).showBasicModal(t,a,s,i,r,n,o,l)}),this.resetClickListener(e,e.createBasicModalFunction)}static rulesModalClosed(){s.rulesModalOpen=!1,s.modalToOpenParams&&s.initModal(s.modalToOpenParams.trigger,s.modalToOpenParams.fetchCallback)}static resetClickListener(e,t){e.removeEventListener("click",t),e.addEventListener("click",t)}static createModal(e,t,a,s){new(m().A)(e,t,a,s).loginCallback=e=>new(ye()())(e)}static createAuthParams(e,t,a,s=!1,i=""){return{isAuth:e,isLogin:t,withSocials:a,isSpecialLoginType:s,source:i}}}})),b=a.cw((function(e,t){a.r(t),E(),T();t.default=e=>{new(E().A)(e.modalDialog.querySelector("[data-category-voting-items].is-voting-active")),(e=>{const t=e.querySelector(".lcaward-modal__content"),a=e.querySelector(".lcaward-modal__scroll-cta"),s=e.querySelector(".lcaward-modal__category").offsetHeight,i=e.querySelectorAll("[data-category-voting-item]");t.addEventListener("scroll",(t=>{const i=e.querySelector(".lcaward-modal__content-items").offsetHeight,r=t.target.scrollTop+t.target.clientHeight>=i+s;a.classList.toggle("is-hidden",r)})),a.addEventListener("click",(()=>{const e=Math.ceil(i.length/(T().default.checkXl.matches||T().default.checkXxl.matches?4:T().default.checkLg.matches||T().default.checkMd.matches?3:2)),a=i[0].offsetHeight,r=t.scrollTop;if(r<Math.floor(s))t.scrollTo({top:s+a,behavior:"smooth"});else for(let i=0;i<e-1;i++){const e=(i+1)*a+s;if(r<Math.floor(e))return void t.scrollTo({top:e,behavior:"smooth"})}}))})(e.modalDialog)}})),y=a.cw((function(s,i){a.r(i),a.d(i,{default:function(){return r}}),o(),N(),f(),d(),u(),h(),ce(),he();class r{constructor(t,a){this.libraryForm=t,this.modal=a,this.triggerButton=this.modal.trigger,this.bookListCard=this.triggerButton.closest(".book-card"),this.libraryForm&&(this.setPostFetchTriggerConfig(),this.alertInstance=new(e().default),this.isCommitted=!1,this.initializeProperties(),this.initializeStructure(),this.setEvents())}POST_FETCH_TRIGGER_VARIANTS={standalone:{label:"Edytuj w biblioteczce",hasDropdown:!1},editDropdown:{label:"Edytuj",hasDropdown:!0,icon:""}};setPostFetchTriggerConfig(){const e=this.triggerButton?.getAttribute("data-post-fetch-trigger-variant")||"standalone",t=this.POST_FETCH_TRIGGER_VARIANTS[e]||this.POST_FETCH_TRIGGER_VARIANTS.standalone;this.postFetchTriggerVariant={name:e,...t}}initializeProperties(){this.bookId=this.libraryForm.dataset.bookId,this.userId=this.libraryForm.dataset.userId,this.userHref=this.libraryForm.dataset.userHref,this.readometerProgress=parseInt(this.libraryForm.getAttribute("data-readometer-progress")),this.shelfs=[...this.libraryForm.querySelectorAll(".shelf-tile:not(.shelf-tile--small)")],this.extraShelfs=[...this.libraryForm.querySelectorAll(".shelf-tile--small")],this.ratingContainer=this.libraryForm.querySelector(".library-your-rating"),this.ratingContainer&&(this.starsContainer=this.ratingContainer.querySelector(".library-your-rating__stars"),this.ratingAverage=this.ratingContainer.querySelector(".rating__avarage")),this.libraryContainer=this.libraryForm.querySelector(".library"),this.libraryContent=this.libraryForm.querySelector(".library__content"),this.reviewTextarea=this.libraryForm.querySelector(".library-your-review__content"),this.reviewTextarea&&(this.reviewTextareaInitialVal=this.reviewTextarea.value),this.isOnShelfWithProtectedMessage=this.libraryForm.classList.contains("f--protected-shelf-message"),this.submitButton=this.libraryForm.querySelector(".f__submit"),this.submitButtonText=this.submitButton.innerHTML,this.cancelButton=this.libraryForm.querySelector(".f__cancel"),this.priceAlertWrapper=this.libraryForm.querySelector(".library__price-alert"),this.priceAlertToggle=this.libraryForm.querySelector(".library__price-alert-swicht"),this.priceAlertContainer=this.libraryForm.querySelector(".price-alert")}initializeStructure(){Xe()()(this.libraryForm.querySelectorAll("input")),this.libraryForm.querySelectorAll(".collapse")&&new(n().A)(this.libraryForm.querySelectorAll(".collapse")),new(t().A)(this.reviewTextarea);const e=this.libraryForm.querySelector(".carousel");if(e){this.slider=new(u().A)(e);const t=this.libraryContainer.querySelector(".shelf-tile--in-carousel.is-active")?.parentElement;t&&this.slider.scrollToSlide(t)}this.priceAlertWrapper&&(this.priceAlert=new(d().A)(this.modal,this.priceAlertToggle,this.priceAlertContainer,this.bookId)),new(h().A)(this.libraryForm.querySelector(".library-read-date"),this.modal,this.isOnShelfWithProtectedMessage,(()=>this.initValidator()),(e=>this.clearValidator(e))),this.initValidator()}initValidator(){this.validator=new(g().default)(this.libraryForm)}clearValidator(e){this.validator.clearError(e)}onCloseCallback(){}onTimeReadingCallback(){}recreateModal=()=>{};setEvents(){this.setShelfsEvents(),this.setExtraShelfsEvents(),this.searchInList(),this.createNewExtraShelf(),this.ratingContainer&&this.setAndUpdateRate(),this.setEventsPriceAlert(),this.sendData(),this.cancelButton.addEventListener("click",(()=>this.onCloseCallback()))}setEventsPriceAlert(){this.priceAlertWrapper&&(this.priceAlert.init(),this.priceAlertToggle.addEventListener("change",(()=>{this.priceAlertContainer.classList.toggle("is-off")})))}
1setShelfsEvents(){this.shelfs.forEach((e=>{e.addEventListener("click",(()=>{this.showNotifyReadingTimeIfNeeded(e,(()=>{this.shelfs.forEach((e=>e.classList.remove("is-active"))),e.classList.add("is-active"),this.libraryContent.classList.toggle("is-content-collapsed",!e.classList.contains("shelf-tile--read")),this.priceAlertWrapper?.classList.toggle("is-off",!e.classList.contains("shelf-tile--want-to-read"))})),this.manageValidatorForShelf(e)}))}))}manageValidatorForShelf(e){e.classList.contains("shelf-tile--reading")||e.classList.contains("shelf-tile--want-to-read")?this.validator.disableValidator():this.validator.enableValidator()}setExtraShelfsEvents(){this.extraShelfs.forEach((e=>this.setExtraShelfEvents(e)))}setExtraShelfEvents(e){e.addEventListener("click",(e=>e.target.classList.toggle("is-active")))}showNotifyReadingTimeIfNeeded(e,t){const a=parseInt(e.getAttribute("data-action")),s=parseInt(this.libraryForm.querySelector(".shelf-tile:not(.shelf-tile--small).is-active").getAttribute("data-action"));this.readometerProgress>0&&((1===s||s>3)&&(2===a||3===a)||2===s&&3===a)?this.onTimeReadingCallback("Uwaga!","Twój zarejestrowany czas czytania dla tej książki zostanie usunięty, czy na pewno chcesz zmienić półkę?",t):t()}async handleSubmit(e){e.preventDefault();const t=!!this.libraryForm.querySelector(".shelf-tile.shelf-tile--reading.is-active"),a=!!this.libraryForm.querySelector(".shelf-tile.shelf-tile--want-to-read.is-active"),s=t||a;(s||this.validator.validate())&&(this.isOnShelfWithProtectedMessage&&s?this.modal.showConfirmModal("Uwaga!",`${t?"Czytasz tę książkę ponownie? <br>Dodaj kolejną datę przeczytania (książka zaliczy się ponownie do statystyk i wyzwania rocznego). <br><br>":""}\n      \n        Przeniesienie książki na półkę ${t?"&bdquo;Teraz czytam&rdquo;":"&bdquo;Chcę przeczytać&rdquo;"} spowoduje usunięcie istniejących danych.\n        <br><br><b>Czy na pewno chcesz zmienić półkę?</b>`,this.executeHandleSubmit.bind(this,s)):this.executeHandleSubmit(s))}async executeHandleSubmit(e){const t=this.libraryForm.querySelector(".shelf-tile:not(.shelf-tile--small).is-active"),a=t.getAttribute("data-shelf-id"),s=Array.from(this.libraryForm.querySelectorAll(".shelf-tile--small.is-active")).map((e=>({id:e.getAttribute("data-shelf-id"),name:`<a class="book-card__shelf" href="/profil/${this.userId}/username/biblioteczka/lista?shelfs=${e.getAttribute("data-shelf-id")}"> ${e.innerText.trim()} </a>`}))),i=this.libraryForm.querySelectorAll(".library-read-date__input:not([disabled])"),r=i.length>0,n=r?Array.from(i).map((e=>{const t=e.value;if("date-month-year"===e.getAttribute("data-custom-validatable")){const[e,a]=t.split(".");return t?`${a}-${e}`:""}return t})):[],o=this.libraryForm.querySelector('[name="review-spoiler"]'),l=this.libraryForm.querySelector('[name="your-review-video"]'),c=(e,t)=>e?t??null:null,d={bookId:this.bookId??null,mainShelfId:a??null,extraShelvesIds:s?.map((e=>e.id))??[],review:c(!e,this.reviewTextarea?.value),spoiler:c(!e,o?.checked),rating:c(!e,this.ratingAverage?.dataset.yourRating),readEnd:c(!e,n),videoLink:c(!e,l?.value),facebookOpinion:0};this.libraryForm.classList.add("loading");try{const a=await this.fetchSendData(d);switch(a.code){case z().default.NO_LOGGED:f().default.showLoginModal();break;case z().default.LOGGED:this.alertInstance.alertMessage("error",a.msg);break;case z().default.BOOK_UNDER_QUARANTINE:this.alertInstance.alertMessage("error",a.msg),this.libraryForm.classList.remove("loading");break;case z().default.OK:this.isCommitted=!0,this.handleResponse(a,t,s),!e&&r&&(this.isOnShelfWithProtectedMessage=!0);break;default:this.alertInstance.alertMessage("error",B().default.ERROR)}if(this.priceAlert&&this.priceAlertToggle?.checked&&t.classList.contains("shelf-tile--want-to-read"))return void this.priceAlert.handleSendData()}catch(e){this.alertInstance.alertMessage("error",B().default.ERROR)}this.onCloseCallback()}handleResponse(e,t,a){this.alertInstance.alertMessage("success",e.msg);const s=this.triggerButton.getAttribute("data-book-id");s&&document.dispatchEvent(new CustomEvent("library-modal:saved",{detail:{bookId:s}})),"editDropdown"===this.postFetchTriggerVariant.name&&this.updateBookCard(t,a),"standalone"===this.postFetchTriggerVariant.name&&(this.triggerButton.innerHTML=this.postFetchTriggerVariant.label,this.triggerButton.classList.replace("library-button--add","library-button--edit"),this.triggerButton.setAttribute("data-url-params",`${this.bookId}/${t.getAttribute("data-shelf-additional-id")}`))}updateBookCard(e,t){const a=this.bookListCard.querySelector(".book-card__detail--shelves");a.innerHTML=this.generateShelvesTemplate(e,t);const s=a.querySelector(".dropdown");
1if(s&&new(N().A)(s),this.triggerButton.classList.contains("book-card__cta--library")){this.triggerButton.outerHTML=this.generateEditDropdownTemplate(e);const t=this.bookListCard.querySelector(".dropdown--library-edit");if(t){new(N().A)(t),t.querySelectorAll("[data-modal-trigger]").forEach((e=>{this.recreateModal(e)})),t.setAttribute("data-url-params",`${this.bookId}/${e.getAttribute("data-shelf-additional-id")}`);const a=t.querySelector(".library-action--delete");a&&new(o().A)(a,this.bookListCard,this.recreateModal.bind(this))}}else this.triggerButton.classList.contains("library-action--edit")&&this.triggerButton.setAttribute("data-url-params",`${this.bookId}/${e.getAttribute("data-shelf-additional-id")}`)}generateShelvesTemplate(e,t){const a=1+t.length,s=1===a?"półce":"półkach",i=t.map((e=>e.name)),r=i.slice(0,2).join("");let n="";return a>3&&(n=`<div class="dropdown dropdown--user-shelfs-list dropdown--mobile-visible">\n        <button class="dropdown__open" aria-label="Zobacz półki">i więcej</button>\n        <div class="dropdown__content">\n          ${i.slice(2).join("")}\n        </div>\n      </div>`),`<div class="book-card__shelves">\n        Masz na ${a} ${s}:\n        <a href="${this.userHref}/biblioteczka/lista?shelfs=${e.getAttribute("data-shelf-id")}" class="book-card__shelf">${e.innerText} </a>\n          ${r}\n          ${n}\n      </div>`}generateEditDropdownTemplate(e){const t=e.getAttribute("data-shelf-additional-id");return`<div class="dropdown dropdown--library-edit dropdown--mobile-visible">\n      <button class="dropdown__open" aria-label="Edytuj">\n        ${this.postFetchTriggerVariant.label}\n      </button>\n      <div class="dropdown__content">\n        <ul class="dropdown__list">\n          <li class="dropdown__item">\n            <a class="library-action library-action--edit" title="Zmień półki w biblioteczce" data-callback-type="library-content" data-modal-trigger="" data-modal-fetch-url="review/editBookReviewOnShelfNew" data-url-params="${this.bookId}/${t}">\n              ${1!==Number(t)?"Zmień półki":"Edytuj dane"}\n            </a>\n          </li>\n          <li>\n            <a class="library-action" href="${window.location.origin}/ksiazka/wydania/${this.bookId}/">\n              Podmień wydanie\n            </a>\n          </li>\n          <li>\n            <a class="library-action library-action--delete">\n              Usuń z biblioteczki\n            </a>\n          </li>\n        </ul>\n      </div>\n    </div>`}sendData(){this.libraryForm.addEventListener("submit",this.handleSubmit.bind(this))}async fetchCreateShelf(e){const t={shelf_name:e,main:"f"},a={method:"POST",body:JSON.stringify(t)};return await(0,ce().default)("library/createAccountShelfCommitJson",a)}async fetchSendData(e){const t={method:"POST",body:JSON.stringify(e)};return await(0,ce().default)("library/addBookJson",t)}setAndUpdateRate(){this.ratingContainer.addEventListener("click",(e=>{if(e.target.classList.contains("library-your-rating__star")){const t=[...e.target.parentNode.children].indexOf(e.target)+1,a=t===(parseInt(this.ratingAverage?.getAttribute("data-your-rating"))||0)?0:t;this.starsContainer&&(this.starsContainer.className=this.starsContainer.className.split(" ").filter((e=>!e.startsWith("library-your-rating__stars--"))).join(" "),a>0?this.starsContainer.classList.add(`library-your-rating__stars--${a}`):this.starsContainer.classList.add("library-your-rating__stars--clear")),this.ratingAverage&&(this.ratingAverage.innerHTML=a||"0",this.ratingAverage.setAttribute("data-your-rating",a))}}))}lossPreventionRequired(){return!(!(this.reviewTextarea&&this.reviewTextarea.value.length>1&&this.reviewTextarea.value!==this.reviewTextareaInitialVal)||this.isCommitted)&&{title:"Uwaga!",message:"Zacząłeś wpisywać/zmieniać opinię. Czy na pewno chcesz zamknąć okno bez zapisywania?"}}searchInList(){const e=this.libraryForm.querySelector(".library-extra-shelfs__search > input"),t=this.libraryForm.querySelector(".library-extra-shelfs__search > button"),a=(0,L().default)((e=>{t?.classList.toggle("is-clear",e.length>
10),this.extraShelfs.forEach((t=>t.classList.toggle("is-off",!t.textContent.toLowerCase().includes(e))))}),100);t?.addEventListener("click",(()=>{a(""),e.value=""})),e?.addEventListener("input",(e=>a(e.target.value.toLowerCase())))}extraShelfTemplate(e,t){return`<div class="shelf-tile shelf-tile--small is-active" data-shelf-id="${t}">\n      <i class="icon icon-icon-dashboard-menu-2"></i>\n      <span class="shelf-tile__small-name">${e}</span>\n    </div>`}createNewExtraShelf(){const e=this.libraryForm.querySelector(".library-extra-shelfs__add > input"),t=this.libraryForm.querySelector(".library-extra-shelfs__add > button"),a=this.libraryForm.querySelector(".library-extra-shelfs__list"),s=this.libraryForm.querySelector(".library-extra-shelfs__custom-invalid");let i="";e?.addEventListener("focus",(()=>{s.innerHTML=""})),t?.addEventListener("click",(async()=>{s.innerHTML="",i=e?.value.trim();const t=/^[a-zA-Z0-9\s]+$/.test(i);if(!i||i.length<3||i.length>150||!t)s.innerHTML="Nazwa półki musi zawierać od 3 do 150 znaków i składać się wyłącznie z liter i cyfr.";else if(""!==i||i<3||i>150||!t)try{const t=await this.fetchCreateShelf(i);switch(t.code){case z().default.NO_LOGGED:f().default.showLoginModal(this.modal.triggerButton);break;case z().default.LOGGED:this.alertInstance.alertMessage("error",t.msg);break;case z().default.OK:{const s=parseInt(t.data.id),r=this.extraShelfTemplate(i,s);a.insertAdjacentHTML("afterbegin",r),this.extraShelfs=a.querySelectorAll(".shelf-tile--small"),this.setExtraShelfEvents(this.extraShelfs[0]),this.searchInList(),e.value="",this.alertInstance.alertMessage("success",t.msg);break}default:this.alertInstance.alertMessage("error",t.msg)}}catch(e){this.alertInstance.alertMessage("error",B().default.ERROR)}}))}}})),_=a.cw((function(t,s){a.r(s),a.d(s,{default:function(){return i}}),H(),ce();class i{constructor(t){this.modal=t,this.dataContentType=this.modal.trigger.getAttribute("data-content-type"),this.modalDialog=t.modalDialog,this.reportForm=this.modalDialog.querySelector(".report-abuse"),this.cancelButton=this.reportForm.querySelector(".report-abuse__cancel"),this.userId=this.reportForm.getAttribute("data-user-id"),this.objectId=this.reportForm.getAttribute("data-object-id"),this.alertInstance=new(e().default),this.validator=new(g().default)(this.reportForm),this.setEvents()}setEvents(){this.reportForm.addEventListener("submit",this.handleSubmit.bind(this)),this.cancelButton.addEventListener("click",(()=>{this.modal.tryHide()}))}async fetchSendData(e){const t={method:"POST",body:JSON.stringify(e)};return await(0,ce().default)("abuse/send",t)}async handleSubmit(e){if(e.preventDefault(),!this.validator.validate())return;const t=this.reportForm.querySelector(".report-abuse__textarea").value,a={user_id:this.userId,object_id:this.objectId,category_id:this.reportForm.querySelector(".report-abuse__select").value,content:t,content_type:this.dataContentType};try{const e=await this.fetchSendData(a);this.handleResponse(e,t)}catch(e){this.alertInstance.alertMessage("error",B().default.ERROR)}}createStatusModal(e){this.modalDialog.innerHTML=(0,H().generateStatusModalTemplate)(e),this.modalDialog.querySelector(".modal__close").addEventListener("click",(()=>{this.modal.tryHide()}))}handleResponse(e,t){if(e.code===z().default.NO_LOGGED){this.alertInstance.alertMessage("error",e.msg);const a=""!==t?`Zapisz treść komunikatu zgłoszenia: "${t}".`:"";this.createStatusModal(`Twoja sesja wygasła. Aby wysłać zgłoszenie musisz być zalogowany.<br> ${a} <br><a class="report-abuse__login-cta" href="/zaloguj">Zaloguj się</a>`)}else e.code===z().default.OK?(this.createStatusModal("Dziękujemy za wypełnienie formularza zgłoszeń. <br><br>Twoje zgłoszenie zostało poprawnie wysłane. Informacje o jego statusie będziemy wysyłać na adres e-mail powiązany z Twoim kontem."),this.modalDialog.querySelector(".modal__close").addEventListener("click",(()=>{this.modal.tryHide()})),this.alertInstance.alertMessage("success",e.msg)):this.alertInstance.alertMessage("error",e.msg)}}})),v=a.cw((function(e,t){a.r(t),a.d(t,{default:function(){return s}}),ce(),f();class s{constructor(e,t){this.rulesContent=e,this.acceptButton=this.rulesContent.querySelector(".rules__cta--accept"),this.cookieName=this.acceptButton.getAttribute("data-form-params"),this.setEvens(),this.hideModal=t}setEvens(){this.acceptButton?.addEventListener("click",this.acceptRules.bind(this)),this.rulesContent.querySelector(".rules__cta--cancel")?.addEventListener("click",(async()=>{try{await this.cancel()}catch(e){}}))}async setCookieVersion(e){const t={method:"post",headers:{"Content-Type":"application/x-www-form-urlencoded","x-requested-with":"xmlhttprequest"},body:new URLSearchParams({version:this.cookieName})};try{await(0,ce().default)(`rodo/setCookieVersion${e}`,t)}catch(e){}}acceptRules(){this.setCookieVersion("On"),this.hideModal(),f().default.rulesMo
1dalClosed()}async cancel(){await this.setCookieVersion("Off"),window.location.href=q().A.RULES}}})),k=a.cw((function(e,t){a.d(t,{A:function(){return s}});class s{constructor(e,{isEnabled:t}){e&&t&&(this.votingContainer=e,this.tryAutoClick(this.votingContainer))}tryAutoClick(e){if(!e||"undefined"==typeof window)return;const{shouldOpen:t,objectId:a}=s.getDeepLinkData();if(!t||!a)return;const i=s.findElementByObjectId({element:e,objectId:a});i&&(i.click(),s.cleanupUrlParams())}static getDeepLinkData(){const e=new URL(window.location.href).searchParams;return{shouldOpen:"vote"===e.get("modal"),objectId:e.get("objectId")}}static findElementByObjectId({element:e,objectId:t}){const a=e.querySelector(`[data-object-id="${t}"]`);return a?(a.matches("a, button")?a:a.querySelector("a, button"))||a:null}static cleanupUrlParams(){const e=new URL(window.location.href);e.searchParams.delete("modal"),e.searchParams.delete("objectId");const t=e.pathname+(e.searchParams.toString()?`?${e.searchParams.toString()}`:"")+(e.hash||"");window.history.replaceState({},"",t)}}})),w=a.cw((function(e,t){a.d(t,{A:function(){return s}});class s{static storageKey="lcaward:voteReturn";static expirationTimeInMilliseconds=18e5;static targetAttr="data-object-id";static boundElement=null;static boundHandler=null;static bindSaveOnClick({element:e,voteObjectId:t}){if(!(e instanceof Element))return;if(null==t||""===t)return;s.boundElement instanceof Element&&"function"==typeof s.boundHandler&&s.boundElement.removeEventListener("click",s.boundHandler);const a=()=>{s.save(t)};e.addEventListener("click",a),s.boundElement=e,s.boundHandler=a}static unbind(){s.boundElement instanceof Element&&"function"==typeof s.boundHandler&&s.boundElement.removeEventListener("click",s.boundHandler),s.boundElement=null,s.boundHandler=null}static save(e){if(null==e||""===e)return;const t={objectId:String(e),expiresAt:Date.now()+s.expirationTimeInMilliseconds};sessionStorage.setItem(s.storageKey,JSON.stringify(t))}static tryAutoClick({root:e,clearOnMiss:t=!0}={}){const a=e instanceof Element?e:null;if(!a)return!1;const i=s.#e();if(!i)return!1;const r=a.querySelector(`[${s.targetAttr}="${CSS.escape(i)}"]`);return r?(r.click(),s.clear(),!0):(t&&s.clear(),!1)}static clear(){sessionStorage.removeItem(s.storageKey)}static#e(){const e=sessionStorage.getItem(s.storageKey);if(!e)return null;try{const t=JSON.parse(e),{objectId:a,expiresAt:i}=t??{};return"string"==typeof a&&"number"==typeof i&&Date.now()<i?a:(s.clear(),null)}catch{return s.clear(),null}}}})),E=a.cw((function(t,s){a.d(s,{A:function(){return i}}),ge(),ce(),f();class i{constructor(t){t&&(this.alertInstance=new(e().default),this.votingContainer=t,this.isActiveVotingForLogged=this.votingContainer.classList.contains("is-voting-active-for-logged"),this.isActiveVotingForUnlogged=this.votingContainer.classList.contains("is-voting-active-for-unlogged"),this.voting=0,this.errorMessageDefault="Wystąpił błąd, spróbuj ponownie.",this.captchaToken="",this.handleModalClose=this.handleModalClose.bind(this),this.isActiveVotingForLogged&&(this.modalConfirmTriggers=this.votingContainer.querySelectorAll(".lcaward-vote-trigger-confirm"),this.setEventsForLogged(),w().A.tryAutoClick({root:this.votingContainer})),this.isActiveVotingForUnlogged&&(this.modalConfirmTriggersUnlogged=this.votingContainer.querySelectorAll(".lcaward-vote-trigger-unlogged"),this.setEventsForUnogged()),new(k().A)(this.votingContainer,{isEnabled:this.isActiveVotingForLogged||this.isActiveVotingForUnlogged}))}setEventsForLogged(){this.modalConfirmTriggers.forEach((e=>{this.showModalConfirmForLogged(e)}))}setEventsForUnogged(){this.modalConfirmTriggersUnlogged.forEach((e=>{this.showModalConfirmForUnlogged(e)}))}generateConfirmContentLogged(e){return`Oddajesz głos na &quot;<b id="popupBookTitle">${e}</b>&quot;.<br><br>\n    Zastanów się dobrze: możesz oddać <b>tylko jeden głos</b> w każdej kategorii. Po ostatecznym dokonaniu wyboru nie możesz cofnąć swojej decyzji.\n    <br><br>\n    <small> Głosując, akceptuję <a class="modal__link" target="_blank" href="${window.location.origin}/plebiscyt/zasady#regulamin">Regulamin Plebiscytu Książka Roku 2025</a>.</small>`}generateConfirmContentUnlogged(e=!1,t=!1){return e?`<div class="lcaward-modal__header">
1\n        <span class="lcaward-modal__title">Zaloguj się, potwierdź głos i odbierz bonus&nbsp;🎁</span>\n      </div>\n      <span class="lcaward-modal__confirm-msg">\n        <b>Masz już konto w serwisie lubimyczytać. <br><br>Koniecznie zajrzyj do skrzynki e-mail, a dowiesz się, jak odebrać bonus&nbsp;🎁</b>\n        <br>\n      </span>\n      <a href="/zaloguj" class="lcaward-modal__cta">Zaloguj się!</a>\n      ${this.generateCategoriesLinks(t)}`:`<div class="lcaward-modal__header">\n        <span class="lcaward-modal__title">\n          <span>Sprawdź maila </span>\n          i&nbsp;potwierdź swój głos\n        </span>\n      </div>\n      <span class="lcaward-modal__confirm-msg">\n          Aby Twój głos <b>był ważny</b>, <b class="lcaward-modal__emphasis">musisz go potwierdzić</b>.<br><br>\n          Wystarczy kliknąć w link, który wysłaliśmy na podany przez Ciebie adres e-mail.\n      </span>\n      ${this.generateCategoriesLinks(t)}`}generateCategoriesLinks=e=>{const t=Array.isArray(e)?e:[],a=`\n    <a class="lcaward-modal__cat-link lcaward-modal__cat-link--all" href="${window.location.origin}/plebiscyt#lcaward-tabs" title="Zobacz wszystkie kategorie">
1\n      <span class="lcaward-modal__cat-name">Wszystkie kategorie</span>\n    </a>\n  `;return`\n    <div class="lcaward-modal__cat">\n      <span class="lcaward-modal__cat-title">To jeszcze nie koniec! Oddaj kolejny głos:</span>\n      <div class="lcaward-modal__cat-links">\n        ${t.map((({link:e,name:t,ico:a})=>{const s="string"==typeof t?t:"";return`\n        <a class="lcaward-modal__cat-link" href="${"string"==typeof e?e:"#"}" title="Głosuj w kategorii: ${s}">\n          <img class="lcaward-modal__cat-ico" src="${"string"==typeof a?a:""}" alt="" loading="lazy" decoding="async">\n          <span class="lcaward-modal__cat-name">${s}</span>\n        </a>\n      `})).join("")}\n        ${a}\n      </div>\n    </div>\n  `};async fetchDataVote(e,t,a){return(0,ce().default)(`/ajax/awardVote/${t}/${a}/${e}`)}async fetchDataVoteUnlogged(e){const t={method:"POST",headers:{lc_save_session_on_ajax:"1","Content-Type":"application/json","X-Requested-With":"XMLHttpRequest"},body:JSON.stringify(e)};return await(0,ce().default)("ajax/awardVoteUnlogged2",t)}async vote(e,t,a,s){if(0===this.voting){this.voting=1;try{(0,S()._5)();const i=await this.fetchDataVote(t,a,s),{code:r,msg:n}=i||{};r===z().default.OK?(e.parentNode.classList.add("is-voted"),e.innerHTML="Twój głos",this.deactivateRemainingElements(),this.alertInstance.alertMessage("success",n),this.setCounter()):r===z().default.ERROR&&this.alertInstance.alertMessage("error",n)}catch(e){this.alertInstance.alertMessage("error",this.errorMessageDefault)}finally{this.voting=0}}}async voteUnlogged(e,t,a){try{const s=await this.fetchDataVoteUnlogged(e),{code:i,msg:r}=s||{};if(i===z().default.OK){(0,S().X5)(),t.querySelector(".modal__back").remove();const e=s?.data?.lcAwardCategories;t.querySelector(".modal__content--lcaward-unlogged").innerHTML=201===s.data.code?this.generateConfirmContentUnlogged(!0,e):this.generateConfirmContentUnlogged(!1,e),this.alertInstance.alertMessage("success",r)}else i===z().default.ERROR&&(this.alertInstance.alertMessage("error",r),a.reset(),this.captchaToken="")}catch(e){this.alertInstance.alertMessage("error",this.errorMessageDefault)}}deactivateRemainingElements(){this.votingContainer.classList.remove("is-voting-active-for-logged"),this.votingContainer.querySelectorAll("[data-category-voting-item]:not(.is-voted)").forEach((e=>{e.classList.add("is-disactive")}))}showModalConfirmForLogged(e){if(1===this.voting)return;const t=e.getAttribute("data-object-id"),a=e.getAttribute("data-award-id"),s=e.getAttribute("data-category-id"),i=e.getAttribute("data-award-book-title");f().default.initBasicModal(e,"Zagłosuj",this.generateConfirmContentLogged(i),"Głosuję!","Przemyślę to jeszcze",!0,"modal__content--lcaward-logged",(()=>this.vote(e,t,a,s)),this.handleModalClose)}showModalConfirmForUnlogged(e){const t=e.getAttribute("data-object-id"),a=e.getAttribute("data-award-id"),s=e.getAttribute("data-category-id"),i=e.getAttribute("data-award-captcha-type");this.captchaToken="";const r=e=>t=>{this.captchaToken=t,e.classList.remove("is-invalid")},n=e=>{this.captchaToken="",e.classList.remove("is-invalid")};f().default.initModal(e,(e=>{const o=e.modalDialog.querySelector(".lcaward-modal__form-captcha-box"),l=e.modalDialog.querySelector(".lcaward-modal__form");new(g().default)(l);const c=new(be()())((()=>{}));window.googleCaptchaSubmit=r(o),window.googleCaptchaSubmitExpired=n(o);const d=e.modalDialog.querySelector("[data-vote-return]");w().A.bindSaveOnClick({element:d,voteObjectId:t}),l.addEventListener("submit",(r=>{if(r.preventDefault(),!this.captchaToken)return void o.classList.add("is-invalid");const n=l.querySelector(".lcaward-modal__form-email-field > input"),d={awardId:a,categoryId:s,objectId:t,email:n?n.value:"",recaptchaResponse:this.captchaToken,captchaType:i};this.voteUnlogged(d,e.modalDialog,c)})),e.onCancel=e=>{this.handleModalClose(e)}}))}handleModalClose(e){(0,S().Z9)(e)}setCounter(){const e=document.querySelector(".lcaward-counter__votes-boxes");if(!e)return;const t=e.getAttribute("data-counter-votes");let a=parseInt(t);if(Number.isNaN(a))return;a+=1,e.setAttribute("data-counter-votes",String(a));const s=a.toString().padStart(6,"0");e.querySelectorAll(".lcaward-counter__votes-box").forEach(((e,t)=>{e.innerHTML=s[t]}))}}})),S=a.cw((function(e,t){const s=({name:e,type:t})=>{"undefined"!=typeof window&&"function"==typeof window.gtag&&window.gtag("event","Plebiscyt",{misc_event_name:e,misc_event_type:t})};a.d(t,["X5",0,()=>{s({name:"Strona plebiscytu - popup do glosowania - glosuje niezalogowany",type:"click"})},"Z9",0,e=>{s({name:"Strona plebiscytu - popup do glosowania - zamkniecie",element:e,type:"close"})},"_5",0,()=>{s({name:"Strona plebiscytu - popup do glosowania - glosuje zalogowany",type:"click"})}])})),A=a.cw((function(e,t){t.A=(e,t,a)=>{t.forEach((t=>e.addEventListener(t,a)))},a.dn(t.A)})),L=a.cw((function(e,t){a.r(t),t.default=(e,t,a)=>{let s;return a?(...a)=>{s||e.apply(void 0,a),clearTimeout(s),s=setTimeout((()=>{s=void 0}),t)}:(...a)=>{clearTimeout(s),s=setTimeout((()=>{e.apply(void 0,a)}),t)}},a.dn(t.default)})),T=a.cw((function(e,t){a.r(t);const s=new class{constructor(){this.mediaCheckers=[],this.checkMd=this.createMediaCheck("md",`screen and (min-width: ${O().A.sm+1}px)`),this.checkLg=this.createMediaCheck("lg",`screen and (min-width: ${O().A.md+1}px)`),this.checkXl=this.createMediaCheck("xl",`screen and (min-width: ${O().A.lg+1}px)`),this.checkXxl=this.createMediaCheck("xxl",`screen and (min-width: ${O().A.xl+1}px)`)}createMediaCheck(e,t){const a=window.matchMedia(t);return a.name=e,this.mediaCheckers.push(a),a}
1addListener(e){this.mediaCheckers.forEach((t=>{t.addListener((()=>{e(t)}))}))}};t.default=s})),C=a.cw((function(e,t){t.A=e=>{const t=document.createElement("template");return t.innerHTML=e,t.content},a.dn(t.A)})),M=a.cw((function(e,t){t.A=e=>{const t=Array.from(e.querySelectorAll("a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex='0']"));if(t.length>0){t[0].focus();const a=t[0],s=t[t.length-1];e.addEventListener("keydown",(e=>{e.key===R().default.TAB&&(e.shiftKey?document.activeElement===a&&(s.focus(),e.preventDefault()):document.activeElement===s&&(a.focus(),e.preventDefault()))}))}},a.dn(t.A)})),O=a.cw((function(e,t){t.A={sm:576,md:768,lg:992,xl:1300}})),x=a.cw((function(e,t){t.A={ALL:"all",BOOK:"book",E_BOOK:"ebook",AUDIOBOOK:"audiobook"}})),D=a.cw((function(e,t){t.A={DEFAULT_PADDING:20}})),I=a.cw((function(e,t){t.A={FETCH_URL:"ajax/getLoginPopup",FETCH_CALLBACK_TYPE:"login-content",FETCH_HEADERS:'{ "lc_save_session_on_ajax": "1" }'}})),R=a.cw((function(e,t){a.r(t),t.default={COMMA:"Comma",DASH:"Minus",E:"KeyE",ENTER:"Enter",PERIOD:"Period",PLUS:"Equal",SUBSTRACT:"NumpadSubtract",HYPHEN:"Hyphen",TAB:"Tab"}})),$=a.cw((function(e,t){t.A={DOT:"."}})),q=a.cw((function(e,t){t.A={LOGIN:"zaloguj",LIBRARY:"biblioteczka",RULES:"/informacje-prawne#regulamin"}})),z=function(){return a(439)},B=function(){return a(956)},P=a.cw((function(e,t){a.r(t),t.default={EPSILON:10,LONG:500,EXTRA_LONG:750,ULTRA_LONG:1500}})),N=a.cw((function(e,t){a.d(t,{A:function(){return s}}),i(),T();class s{constructor(e){this.el=e,this.openBtn=this.el.querySelector(".dropdown__open"),this.closeBtn=this.el.querySelector(".dropdown__close"),(this.openBtn||this.closeBtn)&&(this.content=this.el.querySelector(".dropdown__content"),this.isUserDropdown=this.el.classList.contains("dropdown--user"),this.isBuyboxDropdown=this.el.classList.contains("dropdown--buy-box"),this.bindEvents(),this.isBuyboxDropdown&&(this.buybox=new(i().A)(this.el),this.content.innerHTML="Wyszukiwanie..."))}bindEvents(){this.closeBtn?(this.openBtn.addEventListener("click",(()=>{this.el.classList.contains("is-active")||(this.el.classList.add("is-active"),this.isUserDropdown&&!T().default.checkXl.matches&&document.body.classList.add("is-scroll-locked"),this.isBuyboxDropdown&&this.el.classList.contains("is-active")&&this.buybox.getDropdownData(),document.addEventListener("click",this.detectClickOutside))})),this.closeBtn?.addEventListener("click",(()=>{this.close(),document.body.classList.remove("is-scroll-locked")}))):this.openBtn.addEventListener("click",(()=>{this.el.classList.toggle("is-active"),this.isUserDropdown&&!T().default.checkXl.matches&&(this.el.classList.contains("is-active")?document.body.classList.add("is-scroll-locked"):document.body.classList.remove("is-scroll-locked")),this.isBuyboxDropdown&&this.el.classList.contains("is-active")&&this.buybox.getDropdownData(),document.addEventListener("click",this.detectClickOutside)}));const e=document.querySelector("header");e&&e.contains(this.el)&&window.addEventListener("header:collapsed",(()=>{T().default.checkXl.matches&&this.close()}))}close=()=>{this.el.classList.remove("is-active"),document.removeEventListener("click",this.detectClickOutside)};detectClickOutside=e=>{this.el.contains(e.target)&&!e.target.classList.contains("dropdown__backdrop")||(this.close(),e.target.classList.contains("menu__open")||document.body.classList.remove("is-scroll-locked"))}}})),j=a.cw((function(t,a){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0});const i=s(e()),r=s(ce()),n=s(z()),o=s(B());a.default=class{reloadButton;captchaElement;alertInstance;constructor(e){this.reloadButton=e,this.captchaElement=document.querySelector("[data-lc-captcha-image]"),this.alertInstance=new i.default,this.setEvents()}setEvents(){this.reloadButton.addEventListener("click",(e=>{e.preventDefault(),this.reloadButton.classList.add("loading"),this.captchaElement?.classList.add("loading"),this.reloadCaptcha()}))}async fetchDataReloadCaptcha(){return(0,r.default)(`${window.location.origin}/captcha/reload`,{},!0)}async reloadCaptcha(){try{const e=await this.fetchDataReloadCaptcha();e?.code===n.default.OK&&e?.data?.image&&this.captchaElement?.setAttribute("src",`data:image/png;base64,${e.data.image}`)}catch(e){this.alertInstance?.alertMessage("error",o.default.ERROR),Error}this.reloadButton.classList.remove("loading"),this.captchaElement?.classList.remove("loading")}}})),H=a.cw((function(e,t){t.generateStatusModalTemplate=t.nj=t.bt=void 0,t.bt=(e,t)=>`<div class="new-modal new-modal--helper new-modal--confirm">\n        <div class="modal__dialog" role="document">\n            <div class="modal__content">\n                <div class="modal__header">\n                    <h2 class="modal__title">\n                        ${e}\n                    </h2>\n                </div>\n                <div class="modal__body">\n                    ${t}\n                </div>\n                <div class="modal__footer">\n                    <button type="button" class="modal__cancel">\n                        Anuluj\n                    </button>\n                    <button type="button" class="modal__save">\n                        Tak\n                    </button>\n                </div>\n            </div>\n        </div>\n    </div>`,t.nj=(e,t)=>`<div class="new-modal new-modal--helper new-modal--info">\n          <div class="modal__dialog" role="document">\n              <div class="modal__content">\n                  <div class="modal__header">\n                      <h2 class="modal__title">\n                          ${e}\n                      </h2>\n                  </div>\n                  <div class="modal__body">\n                      ${t}\n                  </div>\n                  <div class="modal__footer">\n                      <button type="button" class="modal__save">\n                          Zamknij okno\n                      </button>\n                  </div>\n              </div>\n          </div>\n      </div>`,t.generateStatusModalTemplate=e=>`<button class="modal__close" tabindex="0" aria-label="Zamknij modal" type="button"><i class="icon-close"></i></button>\n    <div class="modal__content modal__content--status">\n        <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="60" height="55" viewBox="0 0 60 55">\n  <defs>\n    <clipPath id="clip-_5-s-ico">\n      <rect width="60" height="55"/>\n    </clipPath>\n  </defs>\n  <g id="_5-s-ico" data-name="5-s-ico" clip-path="url(#clip-_5-s-ico)">\n    <g id="Group_34708" data-name="Group 34708" transform="translate(-448.605 -252.685)">\n      <path id="Path_29683" data-name="Path 29683" d="M493.605,261.782H464.729v1.833h2.8
117a17.409,17.409,0,0,0,7.175,16.868c-2.493,1.781-7.565,6.692-7.435,17.051h-2.558v1.833h28.876v-1.833h-2.558c.13-10.359-4.944-15.27-7.526-17.051a17.471,17.471,0,0,0,7.18-16.868h2.9ZM481.413,279.75l-1.375.825,1.467.733c.09,0,7.78,4.053,7.7,16.226H469.04c-.1-12.164,7.339-16.046,7.7-16.226l1.467-.733-1.375-.825a15.531,15.531,0,0,1-7.468-16.134h19.554A15.345,15.345,0,0,1,481.413,279.75Z" fill="#f50"/>\n      <path id="Path_29684" data-name="Path 29684" d="M475.029,293.557H485.3s-.458-7.517-5.225-7.975C475.487,286.407,475.029,293.557,475.029,293.557Z" transform="translate(-0.858 -1.982)" fill="#f50"/>\n      <path id="Path_29685" data-name="Path 29685" d="M480.188,277.6c4.217,0,4.584-5.317,4.584-5.317h-9.442S476.246,277.6,480.188,277.6Z" transform="translate(-0.883 -0.875)" fill="#f50"/>\n    </g>\n  </g>\n</svg>\n        ${e}\n    </div>`})),F=a.cw((function(e,t){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=s(b()),r=s(a(487)),n=s(G()),o=s(K()),l=s(X()),c=s(Y()),d=s(Z()),h=s(W()),u=new Map;u.set("login-content",o.default),u.set("library-content",n.default),u.set("rules-onload-content",l.default),u.set("lcaward-category-content",i.default),u.set("lcaward-category-simple-content",r.default),u.set("report-abuse-content",d.default),u.set("awards-content",h.default),u.set("streak-content",c.default),t.default=e=>{const t=e.getAttribute("data-callback-type");return u.get(t||"")}})),U=a.cw((function(e,t){t.A=class{static historyStack=[];static addModal(e){this.historyStack.push(e)}static removeModal(){return this.isEmpty()?null:this.historyStack.pop()}static getPreviousModal(){const e=this.historyStack.length-2;return e<0?null:this.historyStack[e]}static isEmpty(){return 0===this.historyStack.length}static count(){return this.historyStack.length}static clear(){this.historyStack=[]}}})),W=function(){return a(566)},G=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(y());t.default=e=>{const t=e.modalDialog?.querySelector(".f--library");if(t){const a=new s.default(t,e);a.onCloseCallback=e.tryHide.bind(e),a.onTimeReadingCallback=e.showConfirmModal.bind(e),e.lossPreventionRequired=a.lossPreventionRequired.bind(a),a.recreateModal=t=>e.recreateModal(t)}}})),K=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(V());t.default=e=>{e&&new s.default(e)}})),V=a.cw((function(t,s){var i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(s,"__esModule",{value:!0});const r=i(e()),n=i(a(456)),o=i(a(361)),l=i(g()),c=i(ue()),d=i(pe()),h=H(),u=i(ce()),p=i(ge()),m=i(j()),f=i(B()),b=i(z()),y=i(Q());s.default=class{modal;captchaReady=!1;modalDialog;forms;CaptchaHandlerGoogle;validators;alertInstance;constructor(e){this.modal=e,this.modalDialog=e.modalDialog,this.forms={login:this.modalDialog.querySelector(".f--login"),register:this.modalDialog.querySelector(".f--register")},this.validators={login:new l.default(this.forms.login),register:new l.default(this.forms.register)},this.CaptchaHandlerGoogle=new p.default((()=>{this.captchaReady=!0,this.forms.login?.classList.remove("loading")})),this.inicializeStructure(),this.setEvents()}inicializeStructure(){this.modalDialog.querySelectorAll(".tabs--static").forEach((e=>{new o.default(e)})),this.modalDialog.querySelectorAll(".f__field--password").forEach((e=>{new n.default(e)})),this.alertInstance=new r.default;const e=this.forms.register?.querySelector(".f__button-random");e&&new m.default(e)}setEvents(){window.handleSubmitLogin=this.handleSubmitLogin.bind(this),this.forms.register?.addEventListener("submit",(e=>{e.preventDefault(),this.handleSubmitRegister()})),this.initSocialsLogin()}initSocialsLogin(){const e=this.modalDialog.querySelectorAll(".auth-social__button--google > .auth-social__button-hidden");e.length>0&&new d.default((()=>{"function"==typeof window.google?.accounts?.id?.renderButton&&e.forEach((e=>{window.google.accounts.id.renderButton?.(e,{theme:"outline",size:"big",width:320})}))}));const t=this.modalDialog.querySelectorAll(".auth-social__button--apple");t.length>0&&new c.default(Array.from(t))}setRefreshStatus(e,t){e.closest(".f__authentication-refresh")?.classList.toggle("is-off",!t)}async fetchDataLogin(e){const t={method:"POST",body:JSON.stringify(e),headers:{"X-Requested-With":"XMLHttpRequest",lc_save_session_on_ajax:"1"}};return await(0,u.default)("auth/loginModal",t)}async fetchDataRegister(e){const t={method:"POST",body:JSON.stringify(e),headers:{"X-Requested-With":"XMLHttpRequest",lc_save_session_on_ajax:"1"}},a=await(0,u.default)("auth/registerModal",t);if(!a)return null;const s=a.data;return{code:a.code,msg:a.msg,data:{image:s?.image,lcCaptcha:s?.lcCaptcha}}}async handleSubmitLogin(e){if(this.forms.login)if(this.forms.login.checkValidity()){const t=this.forms.login?.querySelector(".f__submit"),a=this.forms.login?.querySelector('input[name="Email"]'),s=this.forms.login?.querySelector('input[name="Password"]'),i=this.forms.login?.querySelector('input[name="Save"]'),r=this.forms.login?.querySelector('input[name="ReauthCode"]');if(!(a&&s&&i&&t&&r))return;this.setRefreshStatus(r,!1);const n=a.value,o=s.value,l=!!i.checked,c=r.value,d=this.forms.login?.querySelector(".f__invalid-response"),h=t.getAttribute("data-after-login-url"),u=this.modal.trigger?.getAttribute("data-after-login-url");try{this.forms.login.classList.add("loading"),d&&(d.innerHTML="");const t={afterLoginToGo:"",Email:n,Password:o,Save:l,"g-recaptcha-response":e,ReauthCode:c},i=await this.fetchDataLogin(t),g=i?.data;if(i?.code===b.default.OK){const e=window.location.origin,t=t=>{if(!t)return null;if(/^https?:\/\//.test(t))return t;const a=t.startsWith("/");return`${e}${a?"":"/"}${t}`},a=t(g?.afterLoginUrl)||t(h)||t(u);a?window.location.href=a:window.location.reload()}if(i?.code===b.default.ERROR&&(d&&(d.innerHTML=`${i.msg}`),a.setAttribute("aria-invalid","true"),s.setAttribute("aria-invalid","true"),this.CaptchaHandlerGoogle?.reset()),i?.code===b.default.ACCOUNT_BANNED||i?.code===b.default.ACCOUNT_REAUTHORIZATION||i?.code===b.default.ACCOUNT_REAUTHORIZATION_INCORRECT||i?.code===b.default.ACCOUNT_REAUTHORIZATION_FAKE||i?.code===b.default.ACCOUNT_REAUTHORIZATION_FAKE_45){"account_reauth"===i?.data?.ReauthCode&&this.setRefreshStatus(r,!0),d&&(d.innerHTML=`${i?.msg}`),this.CaptchaHandlerGoogle?.reset()}i?.code===b.default.ACCOUNT_INACTIVE&&d&&(d.innerHTML=`${i.msg}`)}catch(e){this.alertInstance?.alertMessage("error",f.default.ERROR),this.CaptchaHandlerGoogle?.reset()}finally{this.forms.login.classList.remove("loading")}}else this.CaptchaHandlerGoogle?.reset(),this.forms.login.reportValidity(),this.forms.login.classList.remove("loading")}async handleSubmitRegister(){if(this.forms.register)if(this.forms.register.checkValidity()){const e=this.forms.register?.querySelector('input[name="Name"]'),t=this.forms.register?.querySelector('input[name="Email"]'),a=this.forms.register?.querySelector('input[name="Password"]'),s=this.forms.register?.querySelector('input[name="Password2"]'),i=this.forms.register?.querySelector('input[name="lcCaptcha"]'),r=this.forms.register?.querySelector('input[name="acceptRules"]'),n=this.forms.register?.querySelector('input[name="NewsletterOffer1"]'),o=this.forms.register?.querySelector(".f__submit");
1if(!(e&&t&&a&&s&&i&&r&&n&&o))return;const l=e.value,c=t.value,d=a.value,h=s.value,u=i.value,g=!!r.checked,p=!!n.checked,m=this.forms.register?.querySelector(".f__invalid-response"),_=(0,y.default)(this.modal.trigger);try{this.forms.register.classList.add("loading"),m&&(m.innerHTML="");const e={Name:l,Email:c,Password:d,Password2:h,lcCaptcha:u,acceptRules:g,NewsletterOffer1:p,NewsletterOffer2:!0,source:_},t=await this.fetchDataRegister(e);if(t?.code===b.default.OK){const e=this.anonymizeEmail(c),t=this.registerSucessMessage(e);this.createStatusModal(t),window.gtag("event","Rejestracja",{event_name:"Rejestracja - lc",event_type:"click"})}if(t?.code===b.default.ERROR&&(m&&(m.innerHTML=`${t.msg}`),this.forms.register.classList.remove("loading"),t?.data?.lcCaptcha)){this.forms.register.querySelector("[data-lc-captcha-image]")?.setAttribute("src",`data:image/png;base64,${t.data.lcCaptcha}`)}t?.code===b.default.ACCOUNT_REAUTHORIZATION&&(m&&(m.innerHTML=`${t.msg}`),this.forms.register.classList.remove("loading"))}catch(e){this.alertInstance?.alertMessage("error",f.default.ERROR),this.forms.register.classList.remove("loading")}}else this.forms.register.reportValidity(),this.forms.register.classList.remove("loading")}anonymizeEmail(e){const[t,a]=e.split("@"),s=`${t[0]}***`,[i,r]=a.split(".");return`${s}@${i[0]}**.${r}`}registerSucessMessage(e){return`<div class="feedback">\n        <i class="feedback__icon icon icon-mail"></i>\n        <h2 class="feedback__title">Sprawdź e-mail i aktywuj swoje konto</h2>\n        <div class="feedback__content">\n            Odbierz wiadomość, którą wysłaliśmy na Twój adres e-mail <b>${e}</b> i kliknij w link aktywujący konto.\n        </div>\n        <div class="feedback__content feedback__content--small">\n            <b>E-mail nie dotarł?</b> Pamiętaj o sprawdzeniu spamu i innych zakładek na swojej poczcie.\n        </div>\n        <div class="feedback__content feedback__content--small">\n            W razie problemów napisz do nas na adres e-mail: <a class="feedback__link" title="Napisz do nas!" href="mailto:[email protected]">[email protected]</a>.\n        </div>\n    </div>`}createStatusModal(e){this.modalDialog.innerHTML=(0,h.generateStatusModalTemplate)(e);const t=this.modalDialog.querySelector(".modal__close");t&&t.addEventListener("click",(()=>{this.modal.tryHide()}))}}})),Z=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(_());t.default=e=>{new s.default(e)}})),X=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(v());t.default=e=>{new s.default(e.modalDialog,e.hide.bind(e))}})),Y=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(J());t.default=e=>{e&&new s.default(e)}})),J=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(ae());t.default=class{constructor(e){const a=e.fetchResponse?.data;if(!a)return;const{content:s={},title:i,texts:r,actions:n}=a,o=Object.values(s);e.modalTitle&&(e.modalTitle.textContent=i),e.modalBody&&(this.createModalContent(o,e,r,n),this.setModalEvents(e))}createModalContent(e,t,a,s){const{chooseBook:i,emptyState:r}=a,{catalog:n}=s,o=e.length>0,l=o?`\n        <div class="streak-log__content">\n          <div class="streak-log__books">\n            ${e.map((e=>`\n                  <div class="streak-log__book">\n                    <img class="streak-log__book-image" src="${e.cover??""}" alt="${e.title}" width="70" height="100">\n                    <span class="streak-log__book-title">${e.title}</span>\n                    <button class="streak-log__book-button" type="button" data-action="read-today-book" data-url="streak/addReading" data-book-id="${e.id}" data-book-title="${e.title}">Poczytane!</button>\n                  </div>\n                `)).join("")}\n          </div>\n        </div>`:`\n        <div class="content-placeholder">\n          <div class="content-placeholder__body">
1\n            <span>${r}</span>\n            <a href="${n.url}" class="content-placeholder__action content-placeholder__action--secondary">${n.label}</a>\n          </div>\n        </div>`,c=o?`\n          <div class="streak-log__intro">\n            ${i}\n          </div>`:"";t.modalBody.innerHTML=`\n      <div class="streak-log">\n        <div class="streak-log__intro">\n          ${c}\n        </div>\n        ${l}\n      </div>\n    `}setModalEvents(e){e.modalBody&&new s.default(e.modalBody.querySelector(".streak-log"),e)}}})),Q=a.cw((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.REGISTER_SOURCE_ATTR=void 0,t.default=function(e){if(!e)return null;const a=e.getAttribute(t.REGISTER_SOURCE_ATTR);if(!a)return null;const s=a.trim();return s.length?s:null},t.REGISTER_SOURCE_ATTR="data-analytics-register-source"})),ee=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(P());t.default=class{bubbleElement;messageElement;constructor(e){this.bubbleElement=e?.querySelector(".streak-bubble")??null,this.messageElement=this.bubbleElement?.querySelector("[data-bubble-message]")??null}update(e){this.bubbleElement&&this.messageElement&&(this.showTyping(),setTimeout((()=>{this.showMessage(e),this.animate()}),s.default.EXTRA_LONG))}showTyping(){this.messageElement&&(this.messageElement.innerHTML='\n      <span class="streak-bubble__typing">\n        <span></span>\n        <span></span>\n        <span></span>\n      </span>\n    ')}showMessage(e){this.messageElement&&(this.messageElement.textContent=e)}animate(){this.bubbleElement&&(this.bubbleElement.classList.remove("is-pop"),this.bubbleElement.getBoundingClientRect(),this.bubbleElement.classList.add("is-pop"))}}})),te=a.cw((function(t,a){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(a,"__esModule",{value:!0});const i=s(ce()),r=s(z()),n=s(B()),o=s(e()),l=s(f()),c=new WeakMap;a.default=class{statePart;streakElement;triggerElement;calendarPart;mascotPart;bubblePart;alertInstance=new o.default;isLoading=!1;handleClick=e=>{e.preventDefault(),this.toggleFrozen().catch((e=>{}))};constructor(e,t,a,s,i){this.statePart=t,this.triggerElement=e,this.streakElement=e?.closest("[data-streak]")??null,this.calendarPart=a,this.mascotPart=s,this.bubblePart=i,this.bindClick()}update(e){const{frozen_days_left:t,is_frozen:a}=e;this.applyState(1===a,t)}bindClick(){if(!this.triggerElement)return;c.get(this.triggerElement)?.abort();const e=new AbortController;c.set(this.triggerElement,e),this.triggerElement.addEventListener("click",this.handleClick,{signal:e.signal})}async toggleFrozen(){if(!this.triggerElement||this.isLoading)return;const e="1"===this.triggerElement.dataset.streakIsFrozen,t=e?"streak/setUnfrozen":"streak/setFrozen";this.setLoading(!0),this.streakElement?.classList.add("loading");try{const a=await(0,i.default)(t,{method:"POST"});this.handleResponse(a,e)}catch(e){this.alertInstance.alertMessage("error",n.default.ERROR)}finally{this.setLoading(!1),this.streakElement?.classList.remove("loading")}}handleResponse(e,t){if(!e)return void this.alertInstance.alertMessage("error",n.default.ERROR);const{code:a,msg:s}=e;switch(a){case r.default.OK:this.applyToggleResult(t,e.data),this.alertInstance.alertMessage("success",s??"");break;case r.default.NO_LOGGED:l.default.showLoginModal();break;case r.default.STREAK_ALREADY_FROZEN:case r.default.STREAK_ALREADY_UNFROZEN:this.alertInstance.alertMessage("warning",s??n.default.ERROR);break;case r.default.STREAK_INSUFFICENT_DAYS:case r.default.STREAK_NOT_BRED:case r.default.STREAK_IS_DEAD:default:this.alertInstance.alertMessage("error",s??n.default.ERROR)}}applyToggleResult(e,t){if(!this.triggerElement)return;const a=!e,s=Number(this.triggerElement.dataset.streakFrozenDaysLeft??0),i=void 0!==t?.frozen_days_left?Number(t.frozen_days_left):Math.max(s-(a?1:0),0);t?.content&&this.calendarPart.update(t.content),t?.progress&&(this.statePart.updateFromProgress(t.progress),this.mascotPart.update(t.progress),this.bubblePart.update(t.progress.bubble_msg)),this.applyState(a,i)}applyState(e,t){if(!this.triggerElement)return;this.statePart.updateFrozen(e),this.triggerElement.classList.toggle("is-frozen",e),this.triggerElement.dataset.streakFrozenDaysLeft=t.toString(),this.triggerElement.dataset.streakIsFrozen=e?"1":"0";const a=this.triggerElement.nextElementSibling;if(!(a instanceof HTMLElement))return;const s=a.hasAttribute("data-streak-frozen-info");return e?(this.setLabel(`Odmroź Blurbka (${t})`,"Odmroź Blurbka. Blurbek jest obecnie zamrożony"),void(s&&(a.textContent="Blurbek jest teraz zamrożony"))):t>0?(this.setLabel(`Zamroź Blurbka (${t})`,`Zamroź Blurbka. Dostępne zamrożenia: ${t}`),void(s&&(a.textContent=`Dostępnych zamrożeń: ${t}`))):(this.setLabel("Zamroź Blurbka","Zamroź Blurbka"),void(s&&(a.textContent="Dostępnych zamrożeń: 0")))}setLoading(e){this.isLoading=e,this.triggerElement&&(this.triggerElement.disabled=e,this.triggerElement.classList.toggle("loading",e),this.triggerElement.setAttribute("aria-disabled",e.toString()))}setLabel(e,t){if(!this.triggerElement)return;const a=this.triggerElement.querySelector("span");a&&(a.textContent=e),this.triggerElement.setAttribute("aria-label",t),this.triggerElement.title=t}}})),ae=a.cw((function(t,s){var i=this&&this.__importDefault||function(e){return e&&e.__esMo
1dule?e:{default:e}};Object.defineProperty(s,"__esModule",{value:!0});const r=i(ce()),n=i(B()),o=i(z()),l=i(e()),c=i(f()),d=i(a(509)),h=i(ee()),u=i(a(857)),g=i(te()),p=i(se()),m=i(ie()),b=i(re()),y=i(ne()),_='[data-action="read-today-book"]',v="streak-about-dismissed";s.default=class{streakLogElement;modal;alertInstance=new l.default;streakElement=null;isLoading=!1;calendarPart=null;progressPart=null;readerRankPart=null;frozenButtonPart=null;actionButtonPart=null;statePart=null;handleClick=e=>{const{target:t}=e;if(!(t instanceof Element))return;const a=t.closest(_);a&&this.streakLogElement?.contains(a)&&(e.preventDefault(),this.addReadTodayBook(a).catch((e=>{})))};constructor(e,t=null){this.streakLogElement=e,this.modal=t,this.streakLogElement&&(this.streakLogElement.addEventListener("click",this.handleClick),this.setupViews())}setupViews(){if(this.streakElement=document.querySelector("[data-streak]"),!this.streakElement)return;this.setupAbout();const e=this.streakElement.querySelector(".streak-calendar__month--current"),t=this.streakElement.querySelector("[data-streak-progress]");if(!e||!t)return;const a=new p.default(this.streakElement.querySelector(".streak-mascot")),s=new y.default(this.streakElement),i=new h.default(this.streakElement);this.statePart=s,this.calendarPart=new u.default(e),this.progressPart=new m.default(this.streakElement,t,a,s),this.readerRankPart=new b.default(this.streakElement),this.frozenButtonPart=new g.default(this.streakElement.querySelector("[data-streak-frozen]"),s,this.calendarPart,a,i),this.actionButtonPart=new d.default(this.streakElement.querySelector(".streak-action__button"))}setupAbout(){if(!this.streakElement)return;const e=this.streakElement.querySelector(".streak__about");if(!e)return;localStorage.getItem(v)||e.classList.remove("is-off");e.querySelector(".streak__about-close")?.addEventListener("click",(()=>{e.classList.add("is-off"),localStorage.setItem(v,"1")}))}setLoading(e){this.isLoading=e,this.streakLogElement?.classList.toggle("loading",e),this.streakElement?.classList.toggle("loading",e),this.streakLogElement?.querySelectorAll(_).forEach((t=>{t.disabled=e}))}handleSuccess(e){if(!e)return void this.alertInstance.alertMessage("error",n.default.ERROR);const{content:t,progress:a,account:s}=e;this.progressPart?.update(a),this.actionButtonPart?.update(a?.read_today),s&&(this.statePart?.updateFromAccount(s),this.readerRankPart?.update(s),this.frozenButtonPart?.update(s)),t?(this.calendarPart?.update(t),this.modal?.hide()):this.alertInstance.alertMessage("error",n.default.ERROR)}handleResponse(e,t){const{code:a,data:s,msg:i=null}=e;switch(a){case o.default.ERROR:this.alertInstance.alertMessage("error",i||n.default.ERROR);break;case o.default.NO_LOGGED:c.default.showLoginModal();break;case o.default.OK:this.handleSuccess(s),this.alertInstance.alertMessage("success",i||`<span><strong>Poczytane!</strong>&nbsp;🔥&nbsp; Nakarmiłeś Blurbka historią z książki <strong>${t??""}</strong></span>`);break;default:this.alertInstance.alertMessage("error",i||n.default.ERROR)}}async addReadTodayBook(e){if(this.isLoading)return;const{bookId:t,bookTitle:a=null,url:s}=e.dataset;if(t&&s){this.setLoading(!0);try{const e=await(0,r.default)(`${s}/${t}`);this.handleResponse(e,a)}catch(e){this.alertInstance.alertMessage("error",n.default.ERROR)}finally{this.setLoading(!1)}}else this.alertInstance.alertMessage("error",n.default.ERROR)}}})),se=function(){return a(824)},ie=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(ee());t.default=class{progressElement;mascotPart;statePart;valueElement;labelElement;unitElement;maxLabelElement;normalElements;bubblePart;constructor(e,t,a,i){this.progressElement=t,this.mascotPart=a,this.statePart=i,this.valueElement=this.progressElement?.querySelector("[data-progress-steps-to-next]")??null,this.labelElement=this.progressElement?.querySelector("[data-progress-label]")??null,this.unitElement=this.progressElement?.querySelector("[data-progress-unit]")??null,this.maxLabelElement=this.progressElement?.querySelector("[data-progress-max-label]")??null,this.normalElements=Array.from(this.progressElement?.querySelectorAll("[data-progress-normal]")??[]),this.bubblePart=new s.default(e)}update(e){e&&(this.statePart.updateFromProgress(e),this.bubblePart.update(e.bubble_msg),this.mascotPart.update(e),this.progressElement&&(1!==e.is_max_progress_level?this.updateProgress(e):this.updateMaxProgress()))}updateMaxProgress(){this.progressElement?.classList.add("streak-progress--max"),this.maxLabelElement?.removeAttribute("hidden"),this.normalElements.forEac
1h((e=>e.setAttribute("hidden",""))),this.progressElement?.setAttribute("aria-label","Blurbek osiągnął maksymalny poziom! Aby go utrzymać, czytaj codziennie.")}updateProgress(e){this.progressElement?.classList.remove("streak-progress--max"),this.maxLabelElement?.setAttribute("hidden",""),this.normalElements.forEach((e=>e.removeAttribute("hidden"))),this.labelElement&&(this.labelElement.textContent=e.progress_label),this.valueElement&&(this.valueElement.textContent=e.progress_value_to.toString()),this.unitElement&&(this.unitElement.textContent=e.progress_value_unit),this.progressElement?.setAttribute("aria-label",`${e.progress_label} ${e.progress_value_to} ${e.progress_value_unit} do rozwoju Blurbka.`)}}})),re=function(){return a(330)},ne=function(){return a(776)},oe=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(ue()),i=a(pe());t.default=class{constructor(){this.initialize()}initialize(){"/"===window.location.pathname&&this.initSocials()}initSocials(){document.querySelectorAll(".auth-social__button--google").length>0&&new i.default;const e=document.querySelectorAll(".auth-social__button--apple");e.length>0&&new s.default(Array.from(e))}}})),le=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(P()),i=a(L()),r=a(T());function n(e,t){if("function"!=typeof window.gtag)return;const a=`Slider Welcome from ${window.location.href}`;"navigation"===e?window.gtag("event",a,{event_name:"Click on arrow",event_type:"click"}):"view"===e&&t?window.gtag("event",a,{event_name:`Link view: ${t}`,event_type:"view"}):"click"===e&&t&&window.gtag("event",a,{event_name:`Link click: ${t}`,event_type:"click"})}class o{static sliderCounter=0;slider;track;viewport;styleTag;marginClassName;prevArrow;nextArrow;slides=[];realSlides=[];debouncedPrev;debouncedNext;boundOnResize;globalIndex=0;visibleSlides;slideWidth=0;viewportWidth=0;slideMargin=0;isTouchEnabled=!1;isTouching=!1;touchStartX=0;touchStartY=0;touchEndX=0;touchEndY=0;hasHorizontalScroll=null;boundHandleTouchStart;boundHandleTouchMove;boundHandleTouchEnd;boundHandleMediaChange;boundGAHandler;constructor(e,t=5){this.slider=e;const a=this.slider.querySelector(".welcome-slider__track"),n=this.slider.querySelector(".welcome-slider__viewport"),l=this.slider.querySelector(".welcome-slider__arrow--prev"),c=this.slider.querySelector(".welcome-slider__arrow--next");if(!(a&&n&&l&&c))throw new Error("WelcomeSlider: required elements not found");this.track=a,this.viewport=n,this.prevArrow=l,this.nextArrow=c;const d=this.slider.getAttribute("data-slides-per-view"),h=d?parseInt(d.trim(),10):NaN;this.visibleSlides=!isNaN(h)&&h>0?h:t;const u=o.sliderCounter++;this.marginClassName=`welcome-slide--with-margin-${u}`,this.styleTag=document.createElement("style"),document.head.appendChild(this.styleTag),this.debouncedPrev=(0,i.default)((()=>this.prev()),100),this.debouncedNext=(0,i.default)((()=>this.next()),100),this.boundHandleTouchStart=this.handleTouchStart.bind(this),this.boundHandleTouchMove=this.handleTouchMove.bind(this),this.boundHandleTouchEnd=this.handleTouchEnd.bind(this),this.boundHandleMediaChange=this.handleMediaChange.bind(this),this.boundGAHandler=this.handleTrackGAEvent.bind(this),this.bindGAEvents(),this.initSlider(),this.boundOnResize=(0,i.default)((()=>{this.setMargin(),this.updateDimensions(),this.goToCurrentIndex(!1)}),s.default.LONG),window.addEventListener("resize",this.boundOnResize),r.default.addListener(this.boundHandleMediaChange),this.handleMediaChange()}static init(e,t=5){if(!e)return null;try{return new o(e,t)}catch(e){return null}}handleTrackGAEvent(e){const t=e.target.closest("a");t&&t instanceof HTMLAnchorElement&&t.href&&this.track.contains(t)&&n("click",t.href)}bindGAEvents(){this.track.addEventListener("click",this.boundGAHandler)}initSlider(){this.resetGhostSlides(),this.updateSlidesList(),this.globalIndex=Math.floor(this.realSlides.length/2)+1,this.setMargin(),this.updateDimensions(),this.setInitialPosition(),this.bindArrows(),this.updateArrowsDisabled(),this.trackActiveLinkView()}resetGhostSlides(){if(Array.from(this.track.querySelectorAll(".welcome-slide--ghost")).forEac
1h((e=>e.remove())),0===this.track.children.length)return;const e=this.track.children[0],t=e.cloneNode(!0);t.classList.add("welcome-slide--ghost"),t.setAttribute("aria-hidden","true"),t.tabIndex=-1,this.track.insertBefore(t,e);const a=this.track.children[this.track.children.length-1].cloneNode(!0);a.classList.add("welcome-slide--ghost"),a.setAttribute("aria-hidden","true"),a.tabIndex=-1,this.track.appendChild(a)}updateSlidesList(){this.slides=Array.from(this.track.children).filter((e=>e instanceof HTMLElement)),this.realSlides=this.slides.slice(1,-1)}setMargin(){this.realSlides.length&&(this.viewportWidth=this.viewport.offsetWidth||this.slider.offsetWidth,this.slideWidth=this.realSlides[0]?.offsetWidth||0,this.slideMargin=(this.viewportWidth-this.visibleSlides*this.slideWidth)/(2*this.visibleSlides),this.styleTag.textContent=`\n      .${this.marginClassName} {\n        margin-left: ${this.slideMargin}px !important;\n        margin-right: ${this.slideMargin}px !important;\n      }\n    `,this.slides.forEach((e=>{e.classList.add(this.marginClassName)})))}updateDimensions(){this.viewportWidth=this.viewport.offsetWidth||this.slider.offsetWidth;const e=this.realSlides[0];this.slideWidth=e?e.offsetWidth+2*this.slideMargin:0}setInitialPosition(){this.goToCurrentIndex(!1)}goToCurrentIndex(e=!0,t=!1){const a=s.default.EXTRA_LONG;this.track.style.transition=e?`transform ${a}ms cubic-bezier(.5,1,.5,1)`:"none";const i=this.globalIndex;let r=(i+.5)*(this.viewportWidth/this.visibleSlides)-this.viewportWidth/2;r=Math.max(0,Math.min(r,Math.max(0,this.slideWidth*this.slides.length-this.viewportWidth))),this.track.style.transform=`translateX(-${r}px)`,this.slides.forEach(((e,t)=>{e.classList.toggle("is-center",t===i),e.classList.toggle("is-active",Math.abs(t-i)<=1),e.classList.toggle("is-active-prelast",2===Math.abs(t-i)),e.classList.toggle("is-active-last",3===Math.abs(t-i))})),t||this.checkActiveOnCenter(),this.updateArrowsDisabled(),this.trackActiveLinkView()}trackActiveLinkView(){const t=this.slides[this.globalIndex]?.querySelector("a");t instanceof HTMLAnchorElement&&t.href&&n("view",t.href)}updateArrowsDisabled(){this.prevArrow&&(this.prevArrow.disabled=this.globalIndex<=1),this.nextArrow&&(this.nextArrow.disabled=this.globalIndex>=this.slides.length-2)}checkActiveOnCenter(){const e=this.globalIndex,t=this.slides.findIndex(((t,a)=>t.classList.contains("is-center")&&a!==e));-1!==t&&(this.globalIndex=t,this.goToCurrentIndex(!0,!0))}next(){this.globalIndex<this.slides.length-2&&(this.globalIndex++,this.goToCurrentIndex(),n("navigation"))}prev(){this.globalIndex>1&&(this.globalIndex--,this.goToCurrentIndex(),n("navigation"))}bindArrows(){this.prevArrow&&(this.prevArrow.onclick=this.debouncedPrev),this.nextArrow&&(this.nextArrow.onclick=this.debouncedNext)}handleMediaChange(){this.isTouchEnabled=!r.default.checkLg.matches,this.isTouchEnabled?this.enableTouch():this.disableTouch()}enableTouch(){this.isTouching||(this.track.addEventListener("touchstart",this.boundHandleTouchStart,{passive:!1}),this.track.addEventListener("touchmove",this.boundHandleTouchMove,{passive:!1}),this.track.addEventListener("touchend",this.boundHandleTouchEnd,{passive:!1}),this.isTouching=!0)}disableTouch(){this.isTouching&&(this.track.removeEventListener("touchstart",this.boundHandleTouchStart),this.track.removeEventListener("touchmove",this.boundHandleTouchMove),this.track.removeEventListener("touchend",this.boundHandleTouchEnd),this.isTouching=!1)}handleTouchStart(e){this.isTouchEnabled&&(this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchEndX=this.touchStartX,this.touchEndY=this.touchStartY,this.hasHorizontalScroll=null)}handleTouchMove(e){if(this.isTouchEnabled){if(this.touchEndX=e.touches[0].clientX,this.touchEndY=e.touches[0].clientY,null===this.hasHorizontalScroll){const e=Math.abs(this.touchEndX-this.touchStartX),t=Math.abs(this.touchEndY-this.touchStartY);e>t&&e>5?this.hasHorizontalScroll=!0:t>e&&t>5&&(this.hasHorizontalScroll=!1)}this.hasHorizontalScroll&&e.preventDefault()}}handleTouchEnd(){if(this.isTouchEnabled){if(this.hasHorizontalScroll){const e=this.touchEndX-this.touchStartX;e>40?this.prev():e<-40&&this.next()}this.touchStartX=0,this.touchEndX=0,this.touchStartY=0,this.touchEndY=0,this.hasHorizontalScroll=null}}}t.default=o})),ce=function(){return a(233)},de=a.cw((function(e,t){t.A=function(e){return document.cookie.split("; ").find((t=>t.startsWith(`${e}=`)))?.split("=")[1]||""}})),he=a.cw((function(e,t){var a=this&&this.__importDefault||function(e){return e&&e.__esMo
1dule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=a(R());t.default=e=>{e.forEach((e=>{e.addEventListener("keypress",(e=>{e.key===s.default.ENTER&&e.preventDefault()}))}))}})),ue=function(){return a(947)},ge=a.cw((function(e,t){var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=s(a(501)),r=s(me());class n{static googleCaptchaSrc="https://www.google.com/recaptcha/api.js?hl=pl&render=explicit";scriptReadyCallback;constructor(e){this.scriptReadyCallback=e,this.loadGoogleCaptcha()}loadGoogleCaptcha(){return(0,i.default)(n.googleCaptchaSrc,(()=>this.verifyCaptchaLoaded()),(()=>"undefined"!=typeof grecaptcha))}verifyCaptchaLoaded(){"undefined"!=typeof grecaptcha&&grecaptcha.ready((()=>{grecaptcha.render("grecaptcha-submit",{sitekey:`${r.default.GOOGLE_ID}`}),this.scriptReadyCallback()}))}reset(){"undefined"!=typeof grecaptcha&&grecaptcha.reset()}}t.default=n})),pe=function(){return a(35)},me=function(){return a(878)},fe=a.cw((function(e,t){t.A={LC_ADS:"lc_ads"}}));function be(){return be.c||(be.c=a.n(ge()))}function ye(){return ye.c||(ye.c=a.n(V()))}function _e(){return _e.c||(_e.c=a.n(K()))}a(285),ce(),f(),T(),c(),u();var ve={1:"stycznia",2:"lutego",3:"marca",4:"kwietnia",5:"maja",6:"czerwca",7:"lipca",8:"sierpnia",9:"września",10:"października",11:"listopada",12:"grudnia"};class ke{constructor(e){this.setAndValidateStructure(e)&&this.setEvents()}setAndValidateStructure(e){return this.calendar=e,!!this.calendar&&(this.sliderObject=new(u().A)(this.calendar),this.calendarContainer=this.calendar.querySelector(".calendar__date"),this.calendarInput=this.calendarContainer.querySelector(".calendar__input"),this.calendarButtonDatepicker=this.calendarContainer.querySelector(".calendar__button--datepicker"),this.calendarButtonPrev=this.calendarContainer.querySelector(".calendar__button--prev"),this.calendarButtonNext=this.calendarContainer.querySelector(".calendar__button--next"),this.calendarSlider=this.calendar.querySelector(".carousel__slider"),this.calendarSliderWrapper=this.calendarSlider.querySelector(".carousel__wrapper"),this.dataReloadUrl=this.calendarSlider.getAttribute("data-lazy-url"),this.sliderMaxElements=this.calendarSlider.getAttribute("data-lazy-el"),this.sliderObject.dataLazyUrl+=`/${this.getDateString(this.calendarInput.valueAsDate,!0)}`,this.calendar&&this.calendarInput&&this.calendarButtonDatepicker&&this.calendarButtonPrev&&this.calendarButtonNext&&this.calendarSlider&&this.calendarSliderWrapper&&this.dataReloadUrl)}setEvents(){this.calendarInput.addEventListener("input",(e=>{""===e.target.value&&(e.target.valueAsDate=new Date),this.calendarInput.setAttribute("data-placeholder",this.getDateString(e.target.valueAsDate)),this.updateSlider()})),this.calendarButtonNext.addEventListener("click",(()=>{this.moveDate("next")})),this.calendarButtonPrev.addEventListener("click",(()=>{this.moveDate()})),this.calendarButtonDatepicker.addEventListener("click",(()=>{this.calendarInput.showPicker()}))}async fetchDataChangeDate(e){return(0,ce().default)(`mainpage/content/${e}/${this.getDateString(this.calendarInput.valueAsDate,!0)}/0/${this.sliderMaxElements}`)}moveDate(e){const t=new Date(this.calendarInput.value);if("next"===e){if(this.calendarButtonPrev.classList.remove("is-disabled"),11===t.getMonth()&&31===t.getDate())return void this.calendarButtonNext.classList.add("is-disabled");t.setDate(t.getDate()+1)}else{if(this.calendarButtonNext.classList.remove("is-disabled"),0===t.getMonth()&&1===t.getDate())return void this.calendarButtonPrev.classList.add("is-disabled");t.setDate(t.getDate()-1)}this.calendarInput.value=t.toISOString().slice(0,10),this.calendarInput.setAttribute("data-placeholder",this.getDateString(this.calendarInput.valueAsDate)),this.updateSlider()}getDateString(e,t=!1){const a=e.getDate(),s=e.getMonth()+1;return t?s.toString().padStart(2,"0")+a.toString().padStart(2,"0"):`${a} ${ve[s]}`}updateSlider(){this.calendarSliderWrapper.classList.add("loading"),this.fetchDataChangeDate(this.dataReloadUrl).then((e=>{"OK"===e?.code&&(this.calendarSliderWrapper.innerHTML=e.data.content,this.sliderObject.loaded=!0,this.sliderObject.processNewSlides(),this.sliderObject.updateArrows(),this.sliderObject.scrollToStart())}))}}class we{constructor(e){e&&this.setAndValidateStructure(e)&&this.setEvents()}setAndValidateStructure(t){return this.alertInstance=new(e().default),this.challenge=t,this.challengeForm=this.challenge.querySelector(".challenge-unstarted"),this.challengeForm&&(this.challengeTiles=this.challenge.querySelector(".challenge-unstarted__tiles"),this.challengeReloadContent=this.challenge.querySelector(".challenge__main-content"),this.challengeInput=this.challengeForm.querySelector(".challenge-unstarted__input"),this.challengeId=this.challengeForm.getAttribute("data-challenge-id"),this.challengeAccountId=this.challengeForm.getAttribute("data-account-id"),this.challengeSubmit=this.challengeForm.querySelector(".challenge__cta")),this.challenge&&this.challengeTiles&&this.challengeSubmit&&this.challengeForm&&this.challengeInput&&this.challengeId&&this.challengeAccountId}setEventsCheckTile(){this.challengeTiles.addEventListener("click",(e=>{e.target.classList.contains("challenge-unstarted__tile")&&(this.challengeTiles.querySelector(".challenge-unstarted__tile.is-checked").classList.remove("is-checked"),e.target.classList.add("is-checked"),e.target.querySelector(".challenge-unstarted__input")?.focus())}))}
1joinChallenge(){this.challengeReloadContent.classList.add("loading");const e=this.challengeForm.querySelector(".challenge-unstarted__tile.is-checked").getAttribute("data-challenge-value"),t={challengeId:this.challengeId,accountId:this.challengeAccountId,items:e},a={method:"POST",body:JSON.stringify(t)};(0,ce().default)("challenge/saveAccountToChallengeNew",a).then((e=>{switch(e.code){case z().default.NO_LOGGED:f().default.showLoginModal();break;case z().default.ERROR:this.alertInstance.alertMessage("error",e.msg);break;case"OK":this.challengeForm.innerHTML=e.data.content}}))}setEventsCustomTile(){(0,A().A)(this.challengeInput,["focusout","focusin"],(e=>{this.updateCustomTile(e.target.value)})),this.challengeInput.addEventListener("keyup",(e=>{e.keyCode===R().default.ENTER&&this.joinChallenge()})),this.challengeInput.addEventListener("input",(e=>{e.target.value.length>4&&(e.target.value=e.target.value.slice(0,4),this.challengeInput.value=e.target.value),""!==e.target.value&&e.target.value<=0&&(this.challengeInput.value=1),this.updateCustomTile(e.target.value)})),this.challengeInput.addEventListener("keydown",(e=>{[R().default.SUBSTRACT,R().default.DASH,R().default.PLUS,R().default.COMMA,R().default.PERIOD,R().default.E].includes(e.keyCode)&&e.preventDefault()})),this.challengeForm.addEventListener("submit",(e=>{e.preventDefault(),this.joinChallenge()}))}updateCustomTile(e){this.challengeInput.closest(".challenge-unstarted__tile")?.setAttribute("data-challenge-value",e)}setEvents(){this.setEventsCheckTile(),this.setEventsCustomTile()}}class Ee{constructor(e){e&&(this.linkElement=e,this.storageKey=this.linkElement.getAttribute("data-capping")||"",this.limit=this.linkElement.getAttribute("data-capping-limit")?Number.parseInt(this.linkElement.getAttribute("data-capping-limit")):1,this.closeButton=this.linkElement.querySelector(".lcaward-link-tracker__close"),this.init())}init(){this.checkStorageAndToggleVisibility(),this.linkElement.addEventListener("click",(()=>this.handleLinkClick())),this.closeButton&&this.closeButton.addEventListener("click",(e=>{e.preventDefault(),e.stopPropagation(),this.handleLinkClick(!0)}))}getCounter(){const e=localStorage.getItem(this.storageKey),t=Number(e);return Number.isFinite(t)?t:0}setCounter(e){localStorage.setItem(this.storageKey,String(e))}handleLinkClick(e=!1){if(!this.storageKey)return;const t=this.getCounter()+1;this.setCounter(t),e?this.closeElement():this.checkStorageAndToggleVisibility()}checkStorageAndToggleVisibility(){this.getCounter()<this.limit?this.showElement():this.closeElement()}showElement(){this.linkElement.classList.remove("is-off")}closeElement(){this.linkElement.classList.add("is-off")}}class Se{constructor(t){this.el=t,this.quote=this.el.querySelector(".quote-tile__text"),this.expandButton=this.el.querySelector(".quote-tile__expand"),this.form=this.el.querySelector(".quote-tile__form"),this.addButton=this.el.querySelector(".quote-tile__button--add"),this.removeButton=this.el.querySelector(".quote-tile__button--remove"),this.quoteId=this.el.getAttribute("data-quote-id"),this.bookId=this.el.getAttribute("data-book-id"),this.alertInstance=new(e().default),this.bindEvents()}bindEvents(){this.expandButton?.addEventListener("click",(()=>{this.el.classList.add("quote-tile--expanded"),this.expandButton.remove()})),this.addButton.addEventListener("click",this.handleButtonClick),this.removeButton.addEventListener("click",this.handleButtonClick)}handleButtonClick=async e=>{const t=e.currentTarget;if(!t.disabled){t.classList.add("loading"),t.disabled=!0;try{const{default:e}=await Promise.resolve().then(a.bind(a,439)),{default:s}=await Promise.resolve().then(a.bind(a,956));switch((await this.toggleFavorite(t.getAttribute("data-url")))?.code){case e.NO_LOGGED:f().default.showLoginModal();break;case e.OK:this.el.classList.toggle("quote-tile--favorite");break;default:this.alertInstance.alertMessage("error",s.ERROR)}}catch(e){const{default:t}=await Promise.resolve().then(a.bind(a,956));this.alertInstance.alertMessage("error",t.ERROR)}finally{t.classList.remove("loading"),t.disabled=!1}}};toggleFavorite=async e=>{const{default:t}=await Promise.resolve().then(a.bind(a,233));return t(e,{method:"POST",body:new URLSearchParams({quoteId:this.quoteId,bookId:this.bookId})})}}class Ae{constructor(e){if(!e)return;if(this.wordSpan=e,!this.wordSpan)return;const t=this.wordSpan.getAttribute("data-words");try{if(this.words=JSON.parse(t),!Array.isArray(this.words)||0===this.words.length)throw new Error}catch(e){return}this.currentIndex=0,this.currentLength=0,this.isDeleting=!1,this.typingSpeed=100,this.deletingSpeed=50,this.pauseBeforeDelete=700,this.pauseBeforeNext=200,this.startTyping()}getFullText(e){return e.map((e=>e.text)).join("")}buildHTML(e,t){let a="",s=0;return e.forEach((e=>{if(s>=t)return;const i=t-s,r=e.text.substring(0,i);s+=r.length,e.bold?a+=`<strong>${r}</strong>`:a+=r})),a}startTyping(){const e=this.words[this.currentIndex],t=this.getFullText(e);this.isDeleting?(this.currentLength--,this.delay=this.deletingSpeed):(this.currentLength++,this.delay=this.typingSpeed),this.wordSpan.innerHTML=this.buildHTML(e,this.currentLength),this.isDeleting||this.currentLength!==t.length?this.isDeleting&&0===this.currentLength&&(this.isDeleting=!1,this.currentIndex=(this.currentIndex+1)%this.words.length,this.delay=this.pauseBeforeNext):(this.isDeleting=!0,this.delay=this.pauseBeforeDelete),setTimeout((()=>this.startTyping()),this.delay)}}class Le{constructor(e){this.wrapper=e,this.wrapper instanceof HTMLElement&&(this.track=this.wrapper.querySelector(".ticker__track"),this.track&&(this.items=Array.from(this.track.children).filter((e=>e.matches(".ticker__item"))),this.speed=parseFloat(this.track.dataset.speed)||50,this.position=0,this.lastTime=null,this.loopWidth=this.items.reduce(((e,t)=>e+t.offsetWidth),0),this.paused=!1,this.cloneItems(),this.bindHoverEvents(),this.animate=this.animate.bind(this),requestAnimationFrame(this.animate)))}cloneItems(){this.items.map((e=>
1e.cloneNode(!0))).forEach((e=>this.track.appendChild(e)))}bindHoverEvents(){this.track.addEventListener("mouseenter",(()=>{this.paused=!0})),this.track.addEventListener("mouseleave",(()=>{this.paused=!1}))}animate(e){this.lastTime||(this.lastTime=e);const t=(e-this.lastTime)/1e3;this.lastTime=e,this.paused||(this.position-=this.speed*t,Math.abs(this.position)>=this.loopWidth&&(this.position+=this.loopWidth),this.track.style.transform=`translateX(${this.position}px)`),requestAnimationFrame(this.animate)}}function Te(){return Te.c||(Te.c=a.n(oe()))}function Ce(){return Ce.c||(Ce.c=a.n(le()))}oe(),le();var Me=new class{constructor(){this.subscribers=new Set,this.currentScrollTop=this.getScrollTop(),this.handleScroll=(0,L().default)(this.handleScroll.bind(this),P().default.EPSILON,!0),this.handleResize=(0,L().default)(this.handleResize.bind(this),P().default.EPSILON,!0),window.addEventListener("scroll",this.handleScroll,{passive:!0}),window.addEventListener("resize",this.handleResize)}getScrollTop(){return window.pageYOffset||document.documentElement.scrollTop||0}getCurrentScrollTop(){return this.currentScrollTop}handleScroll(){this.currentScrollTop=this.getScrollTop(),this.notifySubscribers()}handleResize(){this.currentScrollTop=this.getScrollTop(),this.notifySubscribers()}notifySubscribers(){this.subscribers.forEach((e=>{e(this.currentScrollTop)}))}subscribe(e){if("function"!=typeof e)throw new TypeError("[ScrollManager] Subscriber must be a function.");return this.subscribers.add(e),e(this.currentScrollTop),()=>{this.subscribers.delete(e)}}};class Oe{constructor(e){e&&(this.el=e,this.frameElement=this.el.querySelector(".live-stream__frame"),this.placeholderElement=this.el.querySelector(".live-stream__placeholder"),this.closeButtonElement=this.el.querySelector(".live-stream__close"),this.unsubscribeScroll=null,this.isFixed=!1,this.startScrollTop=0,this.sessionStorageKey="liveStreamFixedDismissed",this.dismissed="1"===sessionStorage.getItem(this.sessionStorageKey),this.frameElement&&this.placeholderElement&&this.closeButtonElement&&(this.handleScroll=this.handleScroll.bind(this),this.handleResize=this.handleResize.bind(this),this.handleCloseClick=this.handleCloseClick.bind(this),this.updateMeasurements(),this.bindEvents()))}bindEvents(){this.unsubscribeScroll=Me.subscribe(this.handleScroll),window.addEventListener("resize",this.handleResize),window.addEventListener("load",this.handleResize),this.closeButtonElement.addEventListener("click",this.handleCloseClick)}dismissInSession(){sessionStorage.setItem(this.sessionStorageKey,"1"),this.dismissed=!0}updateMeasurements(){const{top:e}=this.el.getBoundingClientRect(),t=Me.getCurrentScrollTop(),a=this.frameElement.offsetHeight;this.startScrollTop=t+e+a,this.placeholderElement.style.height=`${a}px`}handleScroll(e){if(this.dismissed)return void(this.isFixed&&(this.isFixed=!1,this.el.classList.remove("live-stream--fixed")));const t=e>this.startScrollTop;t!==this.isFixed&&(this.isFixed=t,this.el.classList.toggle("live-stream--fixed",t))}handleResize(){this.updateMeasurements(),this.handleScroll(Me.getCurrentScrollTop())}handleCloseClick(){this.dismissInSession(),this.isFixed=!1,this.el.classList.remove("live-stream--fixed")}}const xe=document.documentElement,De=(e,t)=>{xe.style.setProperty(`--${e}`,`${t}px`)};class Ie{constructor(e){this.el=e,this.isCollapsed=!1,this.previousScrollTop=Me.getCurrentScrollTop(),this.collapsableSectionHeight=this.el.querySelector(".header__secondary").clientHeight,De("header-height",this.el.clientHeight),this.bindEvents()}bindEvents(){Me.subscribe(this.handleScroll.bind(this)),window.addEventListener("header:refreshHeight",(()=>{De("header-height",this.el.clientHeight)})),T().default.addListener((()=>{De("header-height",this.el.clientHeight)}))}handleScroll(e){const t=this.el.clientHeight,a=e>=this.previousScrollTop&&e>this.collapsableSectionHeight+t;this.isCollapsed!==a&&(document.body.classList.toggle("is-scrolled",a),this.isCollapsed=a,this.isCollapsed&&window.dispatchEvent(new Event("header:collapsed"))),this.previousScrollTop=e>0?e:0}}const Re=(e,t,a)=>`<div class="${"article"===a?"suggestions__articles":"suggestions__section"}">
1\n    ${e&&`<span class="suggestions__title">${e}</span>`}\n    <ul class="suggestions__list suggestions__list--tiles">\n      ${t.map((e=>(e=>{const t=()=>e.name||e.fullname||e.title,a=e=>e.link||e.url?`<a href="${e.link||e.url}" title="${e.fullname||e.name}">${e.fullname||e.name}</a>`:`<span title="${e.fullname||e.name}">${e.fullname||e.name}</span>`,s=()=>e.authors?e.authors.map((e=>a(e))).join(", "):e.author?a(e.author):"",i=()=>"book"===e.type&&"audiobook"===e.bookFormat,r=e.image||e.cover?`<img class="result-tile__image" src="${e.image||e.cover}">`:`<div class="result-tile__icon icon-${["author","translator"].includes(e.type)?"user":["cycle","serie"].includes(e.type)?"icon-menu-3-cykle":"book"===e.type?e.type:"icon-menu-5-tworczosc"}"></div>`,n=i()?`<div class="result-tile__format">\n      ${r}\n      <span class="result-tile__format-badge"><i class="icon result-tile__format-icon"></i></span>\n    </div>`:r;return"article"===e.type?`<li class="result-tile result-tile--article">\n        <a class="result-tile__wrapper" href="${e.url}">\n          <div class="result-tile__header">\n            <img class="result-tile__image" loading="lazy" src="${e.image}" alt="${e.title}” ">\n            ${e.label?`<span class="result-tile__badge">${e.label}</span>`:""}\n          </div>\n          <div class="result-tile__box">\n            <span class="result-tile__title">${e.title}” </span>\n            <div class="result-tile__details">\n                <img class="result-tile__author-image" loading="lazy" decoding="async" src="${e.authors[0].avatar}" alt="">\n                <div class="result-tile__author">${e.authors[0].fullname}</div>\n                <div class="result-tile__comments"><i class="icon-comment"></i>${e.post_amount}</div>\n            </div>\n          </div>\n        </a>\n    </li>`:`<li class="suggestions__item">\n      <div class="result-tile result-tile--${e.type}\n      ${i?" result-tile--audiobook":null}\n      ${e.image||e.cover?null:" result-tile--no-image"}">\n        <div class="result-tile__wrapper">\n          <a class="result-tile__image-wrapper" href="${e.url}" title="${t()}">\n          \n            ${n}\n            ${e.label?`<span class="result-tile__badge">${e.label}</span>`:""}\n          </a>\n          <div class="result-tile__details">\n            <span class="result-tile__title"><a href="${e.url}" title="${t()}">${t()}</a></span>\n            ${s()&&`<p class="result-tile__subtitle">${s()}</p>`}\n            ${"book"!==e.type?`<ul class="result-tile__books">\n                    ${(e.books||[]).reduce(((e,t)=>`${e}<li class="result-tile__book"><a href="${t.url}" title="${t.title}"><img src="${t.cover}"></a></li>`),"")}\n                    ${1*e.booksCounter>3?`<li class="result-tile__counter"><a href="${e.url}" title="Zobacz więcej">+ ${e.booksCounter-3}</a></li>`:""}\n                  </ul>`:`<div class="rating rating--result">\n                    <i class="icon icon-star"></i>\n                    <span class="rating__avarage">${e.rating||"0"}</span>\n                    <span class="rating__separator">/</span>\n                    <span class="rating__max">10</span>\n                  </div>`}\n          </div>\n        </div>\n      </div>\n    </li>`})(e))).join("")}\n    </ul>\n  </div>`,$e=[{selector:".result-tile--article",category:"article"},{selector:".result-tile--book",category:"book"},{selector:".result-tile--author",category:"author"},{selector:".result-tile--last-searched",category:"last_searched"}],qe="data-promoofferv-ga-tracked",ze="data-searchbox-ad-ga-tracked",Be="data-searchbox-banner-ga-tracked",Pe=(e,t)=>{!0!==window.LC_CONFIG?.analytics?.testMode?.searchbox?"function"==typeof gtag&&gtag("event",e,t):((e,t)=>{(e=>{e.event_type||e.searchboxType||e.baner_event_type||e.reklama_event_type})(t),(e=>{e.event_name||e.searchboxName||e.baner_event_label||e.reklama_event_label})(t)})(0,t)},Ne=e=>e.getAttribute("data-ga-label")||e.getAttribute("data-ad-id")||e.id||e.querySelector("[data-container]")?.getAttribute("data-container")||"searchbox_ad",je=e=>e.getAttribute("data-ga-label")||"searchbox_banner",He=e=>{if(e.hasAttribute(ze))return;const t=Ne(e);Pe("reklama_searchbox",{event_name:"reklama_searchbox",event_type:"view",event_label:t,reklama_event_name:"reklama_searchbox",reklama_event_type:"view",reklama_event_label:t}),e.setAttribute(ze,"true")},Fe=e=>{sas_idmnet.cmd.push((function(){sas_idmnet.release(e)}))};de(),fe();
1class Ue{constructor(e){this.el=e,this.stickySearchboxHeight=this.el.clientHeight,De("sticky-searchbox-height",this.stickySearchboxHeight),this.input=this.el.querySelector(".searchbox__input"),this.cancel=this.el.querySelector(".searchbox__cancel"),this.backdrop=document.querySelector(".backdrop"),this.overlay=document.querySelector(".overlay--search"),this.suggestions=this.overlay.querySelector(".suggestions"),this.suggestionsInitial=this.suggestions.cloneNode(!0),[this.leftSection,this.middleSection,this.rightSection]=this.overlay.querySelectorAll(".suggestions__section"),this.isAdRendered=!1,this.handleAnalyticsClickEvent=this.handleAnalyticsClickEvent.bind(this),this.tileTypes=[this.createArticleTileType(),this.createGenericTileType("książka",".result-tile--book"),this.createGenericTileType("cykl",".result-tile--cycle"),this.createGenericTileType("seria",".result-tile--serie"),this.createGenericTileType("autor",".result-tile--author"),this.createGenericTileType("tłumacz",".result-tile--translator"),this.createGenericTileType("wydawnictwo",".result-tile--publisher"),this.createLastSearchedTileType()],this.fetchDebounced=(0,L().default)((()=>{const e=encodeURIComponent(this.input.value);(0,ce().default)(`searcher/getsuggestions?phrase=${e}`).then(this.updateSuggestions.bind(this))}),P().default.EXTRA_LONG,!1),De("scrollbar-width",window.innerWidth-document.body.clientWidth),this.setEvents()}createAdTemplate(e){const t=(0,de().A)(fe().A.LC_ADS),a=this.suggestions.querySelector(".suggestions__ad").getAttribute("data-ad-cookie-off"),s=0===Number(t);return`<aside class="advertisement advertisement--searchbox ${s?"":`advertisement--${e}`}" data-ad-id="${e}">\n    <span class="advertisement__title" data-title="${!s&&e}">Reklama</span>\n    <div class="advertisement__body" data-container="${!s&&e}">\n    ${s?`<div class="advertisement__content">\n      <iframe\n      src="${a}"\n      class="advertisement__iframe">\n      </iframe>\n      </div>`:`<div class="advertisement__content" id="${e}"></div>`}\n    </div>\n    </aside>`}setEvents(){this.input.addEventListener("click",this.openOverlay.bind(this)),this.cancel.addEventListener("click",this.closeOverlay.bind(this)),this.backdrop.addEventListener("click",this.closeOverlay.bind(this)),this.overlay.addEventListener("click",this.manageLastSearched.bind(this)),this.input.addEventListener("input",(()=>{if(this.input.value.length>1){this.fetchDebounced();const e=this.suggestions.querySelector(".suggestions__section--last-searched");e&&e.classList.add("suggestions__section--hidden")}else if(!this.input.value){this.suggestions.replaceWith(this.suggestionsInitial.cloneNode(!0)),this.suggestions=this.overlay.querySelector(".suggestions"),[this.leftSection,this.middleSection,this.rightSection]=this.overlay.querySelectorAll(".suggestions__section");const e=this.suggestions.querySelector(".suggestions__ad");if(e){const t=(0,de().A)(fe().A.LC_ADS),a=e.getAttribute("data-ad-id");e.innerHTML=this.createAdTemplate(a),0!==Number(t)&&Fe(a);const s=e.querySelector(".advertisement--searchbox");s&&He(s)}}}))}createLastSearchedTileType(){return{selector:".result-tile--last-searched",getData:e=>{const t=e.querySelector("span.result-tile__details")?.textContent?.trim()||null,a=e.querySelector("span.result-tile__title a");return{type:t,text:a?.title||null,url:a?.href||null}}}}createGenericTileType(e,t){return{type:e,selector:t,getData:e=>{const t=e.querySelector(".result-tile__title a");return{text:t?.title||null,url:t?.href||null}}}}createArticleTileType(){return{type:"artykuł",selector:".result-tile--article",getData:e=>({text:e.querySelector(".result-tile__title")?.textContent||null,url:e.querySelector(".result-tile__wrapper")?.href||null})}}overrideTileDataWithAuthor(e,t){if("książka"===e?.type||"cykl"===e?.type||"seria"===e?.type){const e=t.closest(".result-tile__subtitle a");if(e)return{type:"autor",text:e.title??null,url:e.href??null}}return null}setLastSearched(e,t){let a=t?JSON.parse(t):[];const s=this.tileTypes.find((({selector:t})=>e.closest(t))),i=this.overrideTileDataWithAuthor(s,e);if(s){const t=e.closest(s.selector),r=s.getData(t),n=i?.type||s.type||r.type,o=i?.text||r.text,l=i?.url||r.url;
1n&&o&&l&&(a.unshift({type:n,text:o,url:l}),a=a.filter(((e,t,a)=>t===a.findIndex((t=>t.url===e.url)))).slice(0,5),localStorage.setItem("last-searched-lc",JSON.stringify(a)))}}removeLastSearched(){localStorage.removeItem("last-searched-lc"),this.suggestions.querySelector(".suggestions__section--last-searched").classList.add("suggestions__section--hidden")}manageLastSearched(e){const t=e.target,a=localStorage.getItem("last-searched-lc");this.setLastSearched(t,a),t.closest(".sugesstions__remove-searched")&&this.removeLastSearched()}handleAnalyticsClickEvent(e){const t=e.target;(e=>{const t=e.closest('[data-promooffer-ga-id]:not([data-promooffer-ga-id=""])');return!(!t||!t.closest(".result-tile--book")||(Pe("Oferta promowana",{event_name:t.getAttribute("data-promooffer-ga-id"),event_type:"click"}),0))})(t)||(e=>{const t=e.closest(".advertisement--searchbox-banner"),a=e.closest(".advertisement--searchbox");if(!((e,t,a)=>e instanceof HTMLAnchorElement||e.closest(".result-tile")||t||a)(e,t,a))return!1;const s=((e,t,a)=>{if(t)return"baner_searchbox";if(a)return"reklama_searchbox";return $e.find((({selector:t})=>e.closest(t)))?.category||"other"})(e,t,a);if(t){const e=je(t);return Pe("baner_searchbox",{event_name:s,event_type:"click",event_label:e,baner_event_name:s,baner_event_type:"click",baner_event_label:e}),!0}if(a){const e=Ne(a);return Pe("reklama_searchbox",{event_name:s,event_type:"click",event_label:e,reklama_event_name:s,reklama_event_type:"click",reklama_event_label:e}),!0}Pe("searchbox",{event_name:s,event_type:"click",searchboxName:s,searchboxType:"click"})})(t)}setAnalyticsClickEvents(){this.overlay.removeEventListener("click",this.handleAnalyticsClickEvent),this.overlay.addEventListener("click",this.handleAnalyticsClickEvent)}calculateKeepRecomendedItems(e){return 5===e?1:e>=3?2:e>0?3:0}displayLastSearched(e){this.suggestions.querySelector(".suggestions__wrapper").append(document.createRange().createContextualFragment(`<div class="suggestions__section suggestions__section--last-searched">\n    <span class="suggestions__title suggestions__title--last-searched">\n      Ostatnio wyszukiwane\n      <button class="sugesstions__remove-searched" aria-label="Usuń historię wyszukiwania" title="Usuń historię wyszukiwania">\n        <i class="icon icon-close" aria-hidden="true"></i>\n      </button>\n    </span>\n    <ul class="suggestions__list suggestions__list--last-searched">\n    ${e.map((e=>`<li class="suggestions__item">\n        <div class="result-tile result-tile--last-searched">\n          <i class="icon icon-ikony_svg-02" aria-hidden="true"></i>\n          <span class="result-tile__title">\n            <a href="${e.url}" title="${e.text}">${e.text}</a>\n          </span>\n          <span class="result-tile__details">${e.type}</span>\n        </div>\n      </li>`)).join("")}\n    </ul>\n  </div>`))}trimRecommendedItems(e){const t=this.rightSection.querySelector(".suggestions__list--tiles").querySelectorAll(".suggestions__item");for(let a=this.calculateKeepRecomendedItems(e);a<t.length;a++)t[a].remove()}renderAdIfNeeded(){const e=this.suggestions.querySelector(".suggestions__ad");if(!e)return;const t=(0,de().A)(fe().A.LC_ADS),a=e.getAttribute("data-ad-id");var s;e.innerHTML=this.createAdTemplate(a),0!==Number(t)&&(this.isAdRendered?(s=a,sas_idmnet.cmd.push((function(){sas_idmnet.refresh(s)}))):Fe(a));const i=e.querySelector(".advertisement--searchbox");i&&He(i)}trackBannerIfNeeded(){const e=this.overlay.querySelector(".advertisement--searchbox-banner");e&&(e=>{if(e.hasAttribute(Be))return;const t=je(e);Pe("baner_searchbox",{event_name:"baner_searchbox",event_type:"view",event_label:t,baner_event_name:"baner_searchbox",baner_event_type:"view",baner_event_label:t}),e.setAttribute(Be,"true")})(e)}displayLastSearchedIfApplicable(){const e=this.suggestions.querySelector(".suggestions__list--last-searched"),t=JSON.parse(localStorage.getItem("last-searched-lc"))||[],a=this.rightSection.querySelectorAll("span.suggestions__title"),i="Polecamy"===a[a.length-1]?.textContent.trim();!e&&t.length>0&&i&&(this.displayLastSearched(t),this.trimRecommendedItems(t.length))}openOverlay(){this.overlay.classList.contains("is-off")&&(document.body.classList.add("is-search-open","is-scroll-locked"),window.dispatchEvent(new Event("header:refreshHeight")),this.overlay.classList.remove("is-off"),this.backdrop.classList.remove("is-off"),Pe("searchbox",{event_name:"views",event_type:"view",searchboxName:"views",searchboxType:"view"}),this.setAnalyticsClickEvents(),this.renderAdIfNeeded(),this.trackBannerIfNeeded(),this.displayLastSearchedIfApplicable(),(e=>{(e=>[...new Set(['.result-tile--book[data-promoofferv-ga-id]:not([data-promoofferv-ga-id=""])','.result-tile--book [data-promoofferv-ga-id]:not([data-promoofferv-ga-id=""])'].flatMap((t=>
1[...e.querySelectorAll(t)])))])(this.overlay).forEach((e=>{e.hasAttribute(qe)||(Pe("Oferta promowana",{event_name:e.getAttribute("data-promoofferv-ga-id"),event_type:"view"}),e.setAttribute(qe,"true"))}))})())}closeOverlay(){this.input.value="",document.body.classList.remove("is-search-open","is-scroll-locked"),this.overlay.classList.add("is-off"),this.backdrop.classList.add("is-off"),this.suggestions.replaceWith(this.suggestionsInitial.cloneNode(!0)),this.suggestions=this.overlay.querySelector(".suggestions"),[this.leftSection,this.middleSection,this.rightSection]=this.overlay.querySelectorAll(".suggestions__section"),this.isAdRendered=!0}updateSuggestions({items:e}){if(!this.input.value)return;const{books:t,counter:a,articles:s,...i}=e,r=t.results.map((e=>({...e,type:t.type})));r.length?(this.middleSection.replaceWith(document.createRange().createContextualFragment(Re("",r))),[,this.middleSection]=this.overlay.querySelectorAll(".suggestions__section")):Pe("searchbox",{event_name:"no results for book search",event_type:"view",searchboxName:"no results for book search",searchboxType:"view"});const n=Object.keys(i).filter((e=>i[e].counter>0)).reduce(((t,a)=>(i[a].results.forEach((e=>{e.type=i[a].type,e.label=i[a].label})),t.concat(e[a].results||[]))),[]);if(n.length&&(this.rightSection.replaceWith(document.createRange().createContextualFragment(Re("",n))),[,,this.rightSection]=this.overlay.querySelectorAll(".suggestions__section")),s){const e=s.results.map((e=>({...e,type:s.type,label:s.label})));e.length&&(this.leftSection.querySelector(".suggestions__articles").replaceWith(document.createRange().createContextualFragment(Re("",e,s.type))),[this.leftSection]=this.overlay.querySelectorAll(".suggestions__section"))}this.suggestions.querySelector(".suggestions__count").innerHTML=a&&this.input.value.length>1?`(${a})`:""}}class We{constructor(e){this.el=e,this.openBtn=this.el.querySelector(".menu__open"),this.closeBtn=this.el.querySelector(".menu__close"),this.list=this.el.querySelector(".menu__list"),this.bindEvents()}bindEvents=()=>{this.openBtn.addEventListener("click",(()=>{window.dispatchEvent(new Event("header:refreshHeight")),this.setActive(this.el),T().default.checkXl.matches||document.body.classList.add("is-scroll-locked"),document.addEventListener("click",this.detectClickOutside)})),this.closeBtn.addEventListener("click",this.closeAll),T().default.checkXl.addEventListener("change",this.closeAll),window.addEventListener("header:collapsed",(()=>{T().default.checkXl.matches&&this.closeSubmenus()})),this.list.addEventListener("click",(({target:e})=>{e.parentElement.classList.contains("menu__item--nested")&&(e.classList.contains("menu__button")?this.list.querySelector(".menu__item--nested.is-active")?e.parentElement.classList.contains("is-active")?(this.setInactiveParent(this.list),this.setInactive(e.parentElement)):(this.setInactive(this.list.querySelector(".menu__item--nested.is-active")),this.setActive(e.parentElement)):(this.setActiveParent(this.list),this.setActive(e.parentElement),T().default.checkXl.matches&&document.addEventListener("click",this.detectClickOutside)):e.classList.contains("menu__back")&&(this.setInactiveParent(this.list),this.setInactive(e.parentElement)))})),this.list.querySelectorAll(".menu__list").forEach((e=>{e.addEventListener("focusout",(t=>{e.contains(t.relatedTarget)||(this.setInactiveParent(this.list),this.setInactive(e.parentElement))}))}))};setActive(e){e.classList.add("is-active")}setInactive(e){e.classList.remove("is-active")}setActiveParent(e){e.classList.add("has-active-item")}setInactiveParent(e){e.classList.remove("has-active-item")}closeAll=()=>{document.body.classList.remove("is-scroll-locked"),this.setInactive(this.el),this.closeSubmenus()};closeSubmenus=()=>{this.el.querySelectorAll(".is-active, .has-active-item").forEach((e=>{e.classList.remove("is-active","has-active-item")})),document.removeEventListener("click",this.detectClickOutside)};detectClickOutside=e=>{this.el.contains(e.target)||(T().default.checkXl.matches?this.closeSubmenus():this.closeAll())}}N();var Ge=/iPad|iPhone|iPod/,Ke=new class{constructor(){this.checkAppleMobile=this.createDeviceCheck(Ge)}createDeviceCheck(e){return e.test(window.navigator.userAgent)}},Ve=new class{constructor(){this.checkSafari=this.createBrowserCheck(/safari/i),this.checkWebView=this.createWebViewCheck(/wv|WebView/i)}createBrowserCheck(e){return e.test(window.navigator.userAgent)}createWebViewCheck(e){const{standalone:t}=window.navigator,a=Ke.checkAppleMobile,s=this.checkSafari,i=e.test(window.navigator.userAgent);return a?!t&&!s:i}};class Ze{constructor(e){e&&(this.bannerMobileApp=e,this.body=document.querySelector("body"),this.topSponsorshipBanner=this.body.querySelector(".top-sponsorship-banner"),this.bannerClose=this.bannerMobileApp.querySelector(".banner-mobile-app__close"),this.storeGoogleBtn=this.bannerMobileApp.querySelector(".banner-mobile-app__cta--google-play"),this.storeAppleBtn=this.bannerMobileApp.querySelector(".banner-mobile-app__cta--apple-store"),this.storageKeyClose="banner-app-close",this.storageKeyCounter="banner-app-counter",this.storageKeyExpiration="banner-app-expiration-time",this.storageKeyTime="banner-app-time",this.displayBannerOnMobile())}setStorageData(e){const t=new Date,a=!localStorage.getItem(this.storageKeyClose),s=new Date(localStorage.getItem(this.storageKeyExpiration));if(a||t>s){const[a,s,i]=[t.getMonth(),t.getDate(),t.getFullYear()],r=11===a?new Date(i+1,0,s):new Date(i,a+1,s);localStorage.setItem(this.storageKeyClose,"true"),localStorage.setItem(this.storageKeyCounter,e?1:3),localStorage.setItem(this.storageKeyExpiration,r)}else{const e=Number.parseInt(localStorage.getItem(this.storageKeyCounter))+1;localStorage.setItem(this.storageKeyCounter,e)}localStorage.setItem(this.storageKeyTime,t)}checkStorageData(){const e=new Date,t=new Date(localStorage.getItem(this.storageKeyTime)),a=new Date(localStorage.getItem(this.storageKeyExpiration)),s=!localStorage.getItem(this.storageKeyClose),i=localStorage.getItem(this.storageKeyCounter)<3,r=e.toDateString()!==t.toDateString();return s||i&&r||e>a}adjustButtonDependOnDevice(){this[Ke.checkAppleMobile?"storeGoogleBtn":"storeAppleBtn"]?.classList.add("is-off")}toggleClassListToDisplayBanner(e=!0){this.bannerMobileApp.classList.toggle("is-off",!e),this.body.classList.toggle("is-banner-mobile-app",e)}closeBanner(e=!0){this.setStorageData(e),this.toggleClassListToDisplayBanner(!1)}
1displayBannerOnMobile(){const e=this.checkStorageData()&&!this.topSponsorshipBanner&&!T().default.checkMd.matches&&!Ve.checkWebView;e&&this.adjustButtonDependOnDevice(),this.toggleClassListToDisplayBanner(e),this.bannerClose.addEventListener("click",(()=>this.closeBanner())),this.storeAppleBtn.addEventListener("click",(()=>this.closeBanner(!1))),this.storeGoogleBtn.addEventListener("click",(()=>this.closeBanner(!1)))}}function Xe(){return Xe.c||(Xe.c=a.n(he()))}function Ye(){return Ye.c||(Ye.c=a.n(F()))}F();document.addEventListener("DOMContentLoaded",(async()=>{(class{static init({bannerMobileApp:e=!1,modalTrigger:t=!1,modalTriggerSelfManaged:a=!1}={}){new Ie(document.querySelector(".header")),new Ue(document.querySelector(".searchbox")),new We(document.querySelector(".menu--main")),e&&new Ze(document.querySelector(".banner-mobile-app")),document.querySelectorAll(".header .dropdown").forEach((e=>{new(N().A)(e)})),t&&document.querySelectorAll("[data-modal-trigger]").forEach((e=>{a&&e.closest("[data-self-managed]")||f().default.initModal(e,Ye()()(e))})),document.querySelectorAll("[data-modal-login-trigger]").forEach((e=>{f().default.initLoginModal(e)}))}}).init({bannerMobileApp:!0,modalTrigger:!0}),new(e().default)(document.querySelector(".alert-fixed")),new we(document.querySelector(".challenge.is-logged")),new ke(document.querySelector(".calendar")),new Ee(document.querySelector(".lcaward-link-tracker")),new Ae(document.querySelector("[data-typewriter]")),new(Te()()),Ce()().init(document.querySelector(".welcome-slider")),new Le(document.querySelector(".ticker")),new Oe(document.querySelector(".live-stream.live-stream--is-streaming-on")),document.querySelectorAll(".carousel:not(.carousel--custom)").forEach((e=>{new(u().A)(e)})),document.querySelectorAll(".popover").forEach((e=>{new(c().A)(e)})),document.querySelectorAll(".quote-tile").forEach((e=>{new Se(e)})),document.querySelectorAll("[data-modal-register-trigger]").forEach((e=>{f().default.initRegisterModal(e)})),document.querySelectorAll("[data-modal-simple-login-trigger]").forEach((e=>{f().default.initLoginModal(e,!1)})),document.querySelectorAll("[data-modal-simple-register-trigger]").forEach((e=>{f().default.initRegisterModal(e,!1)}))}))}()}();

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.