From d7676019d09099955a46db1a25b27178b2fde897 Mon Sep 17 00:00:00 2001 From: Gregory Tertyshny Date: Wed, 17 Jul 2024 18:11:08 +0300 Subject: [PATCH] added: progress, live price updates, do not check already bought books --- lib/extractPrice.js | 2 +- lib/index.js | 154 +++++++++++++++++++---------------- lib/usePrices.js | 35 ++++++++ manifest.json | 2 +- package-lock.json | 12 ++- package.json | 3 +- userscript/koboprice.meta.js | 4 +- userscript/koboprice.user.js | 4 +- 8 files changed, 140 insertions(+), 76 deletions(-) create mode 100644 lib/usePrices.js diff --git a/lib/extractPrice.js b/lib/extractPrice.js index 64e3c1c..b495f8f 100644 --- a/lib/extractPrice.js +++ b/lib/extractPrice.js @@ -2,7 +2,7 @@ const timeout = (duration) => new Promise((r) => setTimeout(r, duration)); const observePriceOnPage = (page) => new Promise((res, rej) => { - timeout(10000).then(() => rej("price not found")); + timeout(5000).then(() => rej("price not found")); var observer = new MutationObserver(() => { const price = page?.querySelector( diff --git a/lib/index.js b/lib/index.js index 5d5eac4..21e1e88 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,17 +1,13 @@ import "./logger"; -import { COUNTRIES } from "./countries"; import { initCache } from "./cache"; -import { bookPriceFor } from "./bookPriceFor"; +import { createElement, h, render } from "preact"; +import { usePrices } from "./usePrices"; +import { useCallback, useState } from "preact/hooks"; /* TODO: -- do not run for books you already bought - more durable source for rates -- React for UI -- More informative UI, show loading progress -- clear stale cache - readme how to use and debug -- configuration (purge cache, change base currency) */ const createPricesContainer = () => { @@ -28,79 +24,101 @@ const createPricesContainer = () => { } } - const container = document.createElement("div"); - - container.style.display = "flex"; - container.style.flexDirection = "column"; - container.style.border = "1px solid black"; - container.style.padding = "10px"; - - return visible.parentNode.insertBefore(container, visible); + return visible.parentNode.insertBefore( + document.createElement("div"), + visible, + ); }; -const getPrices = async () => { - const prices = []; - for (const country of COUNTRIES) { - // intentionally blocking execution - // to resolve sequentially. - // It should prevent DOS and triggering captcha - prices.push(await bookPriceFor(country)); +const isInLibrary = () => document.querySelectorAll(".read-now").length; + +const formatPrice = (countryPrice, convertedPrice) => { + if (countryPrice == undefined) { + return `LOADING`; } - return prices; + if (convertedPrice) { + return `${countryPrice} => ${convertedPrice?.formatted}`; + } + return `NOT FOUND`; }; -const sortPrices = (prices) => - prices.sort( - (a, b) => - (a?.convertedPrice?.intValue || Infinity) - - (b?.convertedPrice?.intValue || Infinity), +const Price = ({ props }) => { + const { convertedPrice, countryCode, countryPrice, url } = props; + const [isHovered, setHover] = useState(false); + + const hover = useCallback(() => setHover(true)); + const leave = useCallback(() => setHover(false)); + + const style = { + display: "flex", + flexDirection: "row", + justifyContent: "space-between", + backgroundColor: isHovered ? "#d7d7d7" : "", + padding: "10px 10px 0 10px", + }; + + return h( + "a", + { + style, + href: url, + target: "_blank", + onMouseEnter: hover, + onMouseLeave: leave, + }, + [ + h("p", null, countryCode.toUpperCase()), + h( + "p", + { style: { fontWeight: "bold" } }, + formatPrice(countryPrice, convertedPrice), + ), + ], + ); +}; + +const InLibrary = () => + h( + "div", + { + style: { + display: "flex", + flexDirection: "column", + border: "1px solid black", + textAlign: "center", + }, + }, + h("h2", null, "Already in Library!"), ); -const showPrices = (container, prices) => { - container.innerText = null; - prices.forEach((price) => { - const link = document.createElement("a"); - link.href = price.url; - link.target = "_blank"; - link.style.marginBottom = "5px"; - link.style.display = "flex"; - link.style.justifyContent = "space-between"; - const oldPrice = document.createElement("p"); - oldPrice.innerText = `${price.countryCode.toUpperCase()}: ${price?.countryPrice || "NO PRICE"}`; - const newPrice = document.createElement("p"); - newPrice.innerText = price?.convertedPrice?.formatted ?? "NO PRICE"; - newPrice.style.fontWeight = "bold"; - link.appendChild(oldPrice); - link.appendChild(newPrice); - container.appendChild(link); - }); +const Percent = (percent) => { + const style = { padding: "10px 10px 0 10px", textAlign: "center" }; + + if (percent == 100) return h("h2", { style }, "all prices are loaded!"); + + return h("h2", { style }, `${percent}%`); }; -async function main() { - const container = createPricesContainer(); +const App = () => { + const [prices, percentChecked] = usePrices(); - container.innerText = "LOADING PRICES..."; + const style = { + display: "flex", + flexDirection: "column", + border: "1px solid black", + }; - try { - initCache(); - - const countriesPrice = await getPrices(); - - l("country prices", countriesPrice); - - sortPrices(countriesPrice); - - l("sorted prices", countriesPrice); - - showPrices(container, countriesPrice); - } catch (e) { - l("error", e); - container.innerText = "FAILED TO LOAD PRICES. CHECK CONSOLE FOR MORE INFO"; - } finally { - l("done"); + if (isInLibrary()) { + return InLibrary(); } -} + + return h("div", { style }, [ + Percent(percentChecked), + ...prices.map((price) => h(Price, { props: price })), + ]); +}; l("starting..."); -void main(); +initCache(); +render(createElement(App), createPricesContainer()); diff --git a/lib/usePrices.js b/lib/usePrices.js new file mode 100644 index 0000000..7ba7c07 --- /dev/null +++ b/lib/usePrices.js @@ -0,0 +1,35 @@ +import { useEffect, useState } from "preact/hooks"; +import { COUNTRIES } from "./countries"; +import { bookPriceFor } from "./bookPriceFor"; + +const sortPrices = (prices) => + prices.sort( + (a, b) => + (a?.convertedPrice?.intValue || Infinity) - + (b?.convertedPrice?.intValue || Infinity), + ); + +export const usePrices = () => { + const [prices, setPrices] = useState(COUNTRIES); + useEffect(() => { + const fetchAll = async () => { + for (const [index, country] of COUNTRIES.entries()) { + // intentionally blocking execution + // to resolve sequentially. + // It should prevent DOS and triggering captcha + const found = await bookPriceFor(country); + prices[index] = found; + sortPrices(prices); + setPrices([...prices]); + } + l("DONE"); + }; + fetchAll(); + }, []); + + const percentChecked = + (prices.filter((p) => p.countryPrice != undefined).length / prices.length) * + 100; + + return [prices, percentChecked.toFixed(0)]; +}; diff --git a/manifest.json b/manifest.json index 016aa46..25e84e1 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "name": "Kobo Price", "description": "Find lowest book price on kobo.com", - "version": "1.1.9", + "version": "1.2.0", "manifest_version": 3, "content_scripts": [ { diff --git a/package-lock.json b/package-lock.json index 8b4f66c..afd653a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,8 @@ "license": "ISC", "dependencies": { "currency.js": "^2.0.4", - "date-fns": "^3.6.0" + "date-fns": "^3.6.0", + "preact": "^10.22.1" }, "devDependencies": { "@eslint/js": "^9.6.0", @@ -4868,6 +4869,15 @@ "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==", "dev": true }, + "node_modules/preact": { + "version": "10.22.1", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.1.tgz", + "integrity": "sha512-jRYbDDgMpIb5LHq3hkI0bbl+l/TQ9UnkdQ0ww+lp+4MMOdqaUYdFc5qeyP+IV8FAd/2Em7drVPeKdQxsiWCf/A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/package.json b/package.json index 46ba13e..00b5329 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ }, "dependencies": { "currency.js": "^2.0.4", - "date-fns": "^3.6.0" + "date-fns": "^3.6.0", + "preact": "^10.22.1" } } diff --git a/userscript/koboprice.meta.js b/userscript/koboprice.meta.js index a097405..d7fef9e 100644 --- a/userscript/koboprice.meta.js +++ b/userscript/koboprice.meta.js @@ -1,11 +1,11 @@ // ==UserScript== -// @name Kobo Price test +// @name Kobo Price // @namespace https://tertyshny.dev // @description Find lowest book price on kobo.com // @noframes // @match https://www.kobo.com/*/*/ebook/* // @match https://www.kobo.com/*/*/audiobook/* // @run-at document-end -// @version 1 +// @version 3 // @icon data:image/png;base64,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 // ==/UserScript== diff --git a/userscript/koboprice.user.js b/userscript/koboprice.user.js index bb2ed9e..054deaa 100644 --- a/userscript/koboprice.user.js +++ b/userscript/koboprice.user.js @@ -6,8 +6,8 @@ // @match https://www.kobo.com/*/*/ebook/* // @match https://www.kobo.com/*/*/audiobook/* // @run-at document-end -// @version 2 +// @version 3 // @icon data:image/png;base64,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 // ==/UserScript== -(()=>{var Ue=Object.create;var B=Object.defineProperty,Ke=Object.defineProperties,Ze=Object.getOwnPropertyDescriptor,et=Object.getOwnPropertyDescriptors,tt=Object.getOwnPropertyNames,ce=Object.getOwnPropertySymbols,rt=Object.getPrototypeOf,ue=Object.prototype.hasOwnProperty,nt=Object.prototype.propertyIsEnumerable;var se=(e,t,r)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,I=(e,t)=>{for(var r in t||(t={}))ue.call(t,r)&&se(e,r,t[r]);if(ce)for(var r of ce(t))nt.call(t,r)&&se(e,r,t[r]);return e},F=(e,t)=>Ke(e,et(t));var ot=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var at=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of tt(t))!ue.call(e,o)&&o!==r&&B(e,o,{get:()=>t[o],enumerable:!(n=Ze(t,o))||n.enumerable});return e};var it=(e,t,r)=>(r=e!=null?Ue(rt(e)):{},at(t||!e||!e.__esModule?B(r,"default",{value:e,enumerable:!0}):r,e));var Ge=ot((z,J)=>{(function(e,t){typeof z=="object"&&typeof J<"u"?J.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.currency=t())})(z,function(){function e(a,i){if(!(this instanceof e))return new e(a,i);i=Object.assign({},r,i);var c=Math.pow(10,i.precision);this.intValue=a=t(a,i),this.value=a/c,i.increment=i.increment||1/c,i.groups=i.useVedic?o:n,this.s=i,this.p=c}function t(a,i){var c=2console.log("KOBOPRICE",...e);var de=[{countryCode:"ww",currencyCode:"usd"},{countryCode:"ca",currencyCode:"cad"},{countryCode:"us",currencyCode:"usd"},{countryCode:"in",currencyCode:"inr"},{countryCode:"za",currencyCode:"zar"},{countryCode:"au",currencyCode:"aud"},{countryCode:"hk",currencyCode:"hkd"},{countryCode:"jp",currencyCode:"jpy"},{countryCode:"my",currencyCode:"myr"},{countryCode:"nz",currencyCode:"nzd"},{countryCode:"ph",currencyCode:"php"},{countryCode:"sg",currencyCode:"sgd"},{countryCode:"tw",currencyCode:"twd"},{countryCode:"th",currencyCode:"usd"},{countryCode:"at",currencyCode:"eur"},{countryCode:"be",currencyCode:"eur"},{countryCode:"cy",currencyCode:"eur"},{countryCode:"cz",currencyCode:"czk"},{countryCode:"dk",currencyCode:"dkk"},{countryCode:"ee",currencyCode:"eur"},{countryCode:"fi",currencyCode:"eur"},{countryCode:"fr",currencyCode:"eur"},{countryCode:"de",currencyCode:"eur"},{countryCode:"gr",currencyCode:"eur"},{countryCode:"ie",currencyCode:"eur"},{countryCode:"it",currencyCode:"eur"},{countryCode:"lt",currencyCode:"eur"},{countryCode:"lu",currencyCode:"eur"},{countryCode:"mt",currencyCode:"eur"},{countryCode:"nl",currencyCode:"eur"},{countryCode:"no",currencyCode:"nok"},{countryCode:"pl",currencyCode:"pln"},{countryCode:"pt",currencyCode:"eur"},{countryCode:"ro",currencyCode:"ron"},{countryCode:"sk",currencyCode:"eur"},{countryCode:"si",currencyCode:"eur"},{countryCode:"es",currencyCode:"eur"},{countryCode:"se",currencyCode:"sek"},{countryCode:"ch",currencyCode:"chf"},{countryCode:"tr",currencyCode:"try"},{countryCode:"gb",currencyCode:"gbp"},{countryCode:"ar",currencyCode:"usd"},{countryCode:"br",currencyCode:"brl"},{countryCode:"cl",currencyCode:"clp"},{countryCode:"co",currencyCode:"cop"},{countryCode:"mx",currencyCode:"mxn"},{countryCode:"pe",currencyCode:"pen"}];var Q="KOBOPRICE",fe=()=>{localStorage.getItem(Q)||A({books:{},rates:null})},N=()=>JSON.parse(localStorage.getItem(Q)),A=e=>localStorage.setItem(Q,JSON.stringify(e)),me=()=>N().rates,le=e=>A(F(I({},N()),{rates:e})),he=e=>N().books[e],ye=(e,t)=>{let r=N();r.books[t]=e,A(r)};var pe=e=>{let t=/^https:\/\/www\.kobo\.com\/../,r="https://www.kobo.com/".concat(e),n=window.location.href.replace(t,r);return l("url for country",e,n),n};var ct=e=>new Promise(t=>setTimeout(t,e)),st=e=>new Promise((t,r)=>{ct(1e4).then(()=>r("price not found"));var n=new MutationObserver(()=>{var a;let o=(a=e==null?void 0:e.querySelector(".primary-right-container .pricing-details .active-price span"))==null?void 0:a.textContent;o&&(l("found price",o),n.disconnect(),t(o))});n.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}),ge=async e=>{try{l("going to",e);let t=document.createElement("iframe");t.src=e,t.hidden=!0,document.body.append(t),await new Promise(n=>t.contentWindow.onload=n),l("starting observing price on",e);let r=await st(t.contentDocument.body,e);return document.body.removeChild(t),r}catch(t){return l("getPriceForCountry",t,e),""}};function m(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function g(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}var ut=Math.pow(10,8)*24*60*60*1e3,fr=-ut,R=6048e5,we=864e5;var dt=3600;var xe=dt*24,mr=xe*7,ft=xe*365.2425,mt=ft/12,lr=mt*3;var lt={};function O(){return lt}function C(e,t){var c,s,f,h,y,d,w,b;let r=O(),n=(b=(w=(h=(f=t==null?void 0:t.weekStartsOn)!=null?f:(s=(c=t==null?void 0:t.locale)==null?void 0:c.options)==null?void 0:s.weekStartsOn)!=null?h:r.weekStartsOn)!=null?w:(d=(y=r.locale)==null?void 0:y.options)==null?void 0:d.weekStartsOn)!=null?b:0,o=m(e),a=o.getDay(),i=(a=o.getTime()?r+1:t.getTime()>=i.getTime()?r:r-1}function D(e){let t=m(e);return t.setHours(0,0,0,0),t}function X(e){let t=m(e),r=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return r.setUTCFullYear(t.getFullYear()),+e-+r}function be(e,t){let r=D(e),n=D(t),o=+r-X(r),a=+n-X(n);return Math.round((o-a)/we)}function Ce(e){let t=q(e),r=g(e,0);return r.setFullYear(t,0,4),r.setHours(0,0,0,0),P(r)}function ke(e){return g(e,Date.now())}function Oe(e,t){let r=D(e),n=D(t);return+r==+n}function Pe(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function ve(e){if(!Pe(e)&&typeof e!="number")return!1;let t=m(e);return!isNaN(Number(t))}function De(e){let t=m(e),r=g(e,0);return r.setFullYear(t.getFullYear(),0,1),r.setHours(0,0,0,0),r}var ht={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Me=(e,t,r)=>{let n,o=ht[e];return typeof o=="string"?n=o:t===1?n=o.one:n=o.other.replace("{{count}}",t.toString()),r!=null&&r.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n};function L(e){return(t={})=>{let r=t.width?String(t.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var yt={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},pt={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},gt={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},We={date:L({formats:yt,defaultWidth:"full"}),time:L({formats:pt,defaultWidth:"full"}),dateTime:L({formats:gt,defaultWidth:"full"})};var wt={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Se=(e,t,r,n)=>wt[e];function M(e){return(t,r)=>{let n=r!=null&&r.context?String(r.context):"standalone",o;if(n==="formatting"&&e.formattingValues){let i=e.defaultFormattingWidth||e.defaultWidth,c=r!=null&&r.width?String(r.width):i;o=e.formattingValues[c]||e.formattingValues[i]}else{let i=e.defaultWidth,c=r!=null&&r.width?String(r.width):e.defaultWidth;o=e.values[c]||e.values[i]}let a=e.argumentCallback?e.argumentCallback(t):t;return o[a]}}var xt={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},bt={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Ct={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},kt={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Ot={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Pt={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},vt=(e,t)=>{let r=Number(e),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},Te={ordinalNumber:vt,era:M({values:xt,defaultWidth:"wide"}),quarter:M({values:bt,defaultWidth:"wide",argumentCallback:e=>e-1}),month:M({values:Ct,defaultWidth:"wide"}),day:M({values:kt,defaultWidth:"wide"}),dayPeriod:M({values:Ot,defaultWidth:"wide",formattingValues:Pt,defaultFormattingWidth:"wide"})};function W(e){return(t,r={})=>{let n=r.width,o=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],a=t.match(o);if(!a)return null;let i=a[0],c=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],s=Array.isArray(c)?Mt(c,y=>y.test(i)):Dt(c,y=>y.test(i)),f;f=e.valueCallback?e.valueCallback(s):s,f=r.valueCallback?r.valueCallback(f):f;let h=t.slice(i.length);return{value:f,rest:h}}}function Dt(e,t){for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&t(e[r]))return r}function Mt(e,t){for(let r=0;r{let n=t.match(e.matchPattern);if(!n)return null;let o=n[0],a=t.match(e.parsePattern);if(!a)return null;let i=e.valueCallback?e.valueCallback(a[0]):a[0];i=r.valueCallback?r.valueCallback(i):i;let c=t.slice(o.length);return{value:i,rest:c}}}var Wt=/^(\d+)(th|st|nd|rd)?/i,St=/\d+/i,Tt={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Yt={any:[/^b/i,/^(a|c)/i]},Et={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},It={any:[/1/i,/2/i,/3/i,/4/i]},Ft={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},Nt={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Rt={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},qt={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Lt={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},jt={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Ee={ordinalNumber:Ye({matchPattern:Wt,parsePattern:St,valueCallback:e=>parseInt(e,10)}),era:W({matchPatterns:Tt,defaultMatchWidth:"wide",parsePatterns:Yt,defaultParseWidth:"any"}),quarter:W({matchPatterns:Et,defaultMatchWidth:"wide",parsePatterns:It,defaultParseWidth:"any",valueCallback:e=>e+1}),month:W({matchPatterns:Ft,defaultMatchWidth:"wide",parsePatterns:Nt,defaultParseWidth:"any"}),day:W({matchPatterns:Rt,defaultMatchWidth:"wide",parsePatterns:qt,defaultParseWidth:"any"}),dayPeriod:W({matchPatterns:Lt,defaultMatchWidth:"any",parsePatterns:jt,defaultParseWidth:"any"})};var _={code:"en-US",formatDistance:Me,formatLong:We,formatRelative:Se,localize:Te,match:Ee,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Ie(e){let t=m(e);return be(t,De(t))+1}function Fe(e){let t=m(e),r=+P(t)-+Ce(t);return Math.round(r/R)+1}function j(e,t){var h,y,d,w,b,T,Y,E;let r=m(e),n=r.getFullYear(),o=O(),a=(E=(Y=(w=(d=t==null?void 0:t.firstWeekContainsDate)!=null?d:(y=(h=t==null?void 0:t.locale)==null?void 0:h.options)==null?void 0:y.firstWeekContainsDate)!=null?w:o.firstWeekContainsDate)!=null?Y:(T=(b=o.locale)==null?void 0:b.options)==null?void 0:T.firstWeekContainsDate)!=null?E:1,i=g(e,0);i.setFullYear(n+1,0,a),i.setHours(0,0,0,0);let c=C(i,t),s=g(e,0);s.setFullYear(n,0,a),s.setHours(0,0,0,0);let f=C(s,t);return r.getTime()>=c.getTime()?n+1:r.getTime()>=f.getTime()?n:n-1}function Ne(e,t){var c,s,f,h,y,d,w,b;let r=O(),n=(b=(w=(h=(f=t==null?void 0:t.firstWeekContainsDate)!=null?f:(s=(c=t==null?void 0:t.locale)==null?void 0:c.options)==null?void 0:s.firstWeekContainsDate)!=null?h:r.firstWeekContainsDate)!=null?w:(d=(y=r.locale)==null?void 0:y.options)==null?void 0:d.firstWeekContainsDate)!=null?b:1,o=j(e,t),a=g(e,0);return a.setFullYear(o,0,n),a.setHours(0,0,0,0),C(a,t)}function Re(e,t){let r=m(e),n=+C(r,t)-+Ne(r,t);return Math.round(n/R)+1}function u(e,t){let r=e<0?"-":"",n=Math.abs(e).toString().padStart(t,"0");return r+n}var k={y(e,t){let r=e.getFullYear(),n=r>0?r:1-r;return u(t==="yy"?n%100:n,t.length)},M(e,t){let r=e.getMonth();return t==="M"?String(r+1):u(r+1,2)},d(e,t){return u(e.getDate(),t.length)},a(e,t){let r=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];case"aaaa":default:return r==="am"?"a.m.":"p.m."}},h(e,t){return u(e.getHours()%12||12,t.length)},H(e,t){return u(e.getHours(),t.length)},m(e,t){return u(e.getMinutes(),t.length)},s(e,t){return u(e.getSeconds(),t.length)},S(e,t){let r=t.length,n=e.getMilliseconds(),o=Math.trunc(n*Math.pow(10,r-3));return u(o,t.length)}};var S={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},G={G:function(e,t,r){let n=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});case"GGGG":default:return r.era(n,{width:"wide"})}},y:function(e,t,r){if(t==="yo"){let n=e.getFullYear(),o=n>0?n:1-n;return r.ordinalNumber(o,{unit:"year"})}return k.y(e,t)},Y:function(e,t,r,n){let o=j(e,n),a=o>0?o:1-o;if(t==="YY"){let i=a%100;return u(i,2)}return t==="Yo"?r.ordinalNumber(a,{unit:"year"}):u(a,t.length)},R:function(e,t){let r=q(e);return u(r,t.length)},u:function(e,t){let r=e.getFullYear();return u(r,t.length)},Q:function(e,t,r){let n=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(n);case"QQ":return u(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});case"QQQQ":default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,t,r){let n=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(n);case"qq":return u(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});case"qqqq":default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,t,r){let n=e.getMonth();switch(t){case"M":case"MM":return k.M(e,t);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});case"MMMM":default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(e,t,r){let n=e.getMonth();switch(t){case"L":return String(n+1);case"LL":return u(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});case"LLLL":default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(e,t,r,n){let o=Re(e,n);return t==="wo"?r.ordinalNumber(o,{unit:"week"}):u(o,t.length)},I:function(e,t,r){let n=Fe(e);return t==="Io"?r.ordinalNumber(n,{unit:"week"}):u(n,t.length)},d:function(e,t,r){return t==="do"?r.ordinalNumber(e.getDate(),{unit:"date"}):k.d(e,t)},D:function(e,t,r){let n=Ie(e);return t==="Do"?r.ordinalNumber(n,{unit:"dayOfYear"}):u(n,t.length)},E:function(e,t,r){let n=e.getDay();switch(t){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});case"EEEE":default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(e,t,r,n){let o=e.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(t){case"e":return String(a);case"ee":return u(a,2);case"eo":return r.ordinalNumber(a,{unit:"day"});case"eee":return r.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(o,{width:"short",context:"formatting"});case"eeee":default:return r.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,r,n){let o=e.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(t){case"c":return String(a);case"cc":return u(a,t.length);case"co":return r.ordinalNumber(a,{unit:"day"});case"ccc":return r.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(o,{width:"narrow",context:"standalone"});case"cccccc":return r.day(o,{width:"short",context:"standalone"});case"cccc":default:return r.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,r){let n=e.getDay(),o=n===0?7:n;switch(t){case"i":return String(o);case"ii":return u(o,t.length);case"io":return r.ordinalNumber(o,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});case"iiii":default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(e,t,r){let o=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"aaaa":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,r){let n=e.getHours(),o;switch(n===12?o=S.noon:n===0?o=S.midnight:o=n/12>=1?"pm":"am",t){case"b":case"bb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"bbbb":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,r){let n=e.getHours(),o;switch(n>=17?o=S.evening:n>=12?o=S.afternoon:n>=4?o=S.morning:o=S.night,t){case"B":case"BB":case"BBB":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"BBBB":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,r){if(t==="ho"){let n=e.getHours()%12;return n===0&&(n=12),r.ordinalNumber(n,{unit:"hour"})}return k.h(e,t)},H:function(e,t,r){return t==="Ho"?r.ordinalNumber(e.getHours(),{unit:"hour"}):k.H(e,t)},K:function(e,t,r){let n=e.getHours()%12;return t==="Ko"?r.ordinalNumber(n,{unit:"hour"}):u(n,t.length)},k:function(e,t,r){let n=e.getHours();return n===0&&(n=24),t==="ko"?r.ordinalNumber(n,{unit:"hour"}):u(n,t.length)},m:function(e,t,r){return t==="mo"?r.ordinalNumber(e.getMinutes(),{unit:"minute"}):k.m(e,t)},s:function(e,t,r){return t==="so"?r.ordinalNumber(e.getSeconds(),{unit:"second"}):k.s(e,t)},S:function(e,t){return k.S(e,t)},X:function(e,t,r){let n=e.getTimezoneOffset();if(n===0)return"Z";switch(t){case"X":return Le(n);case"XXXX":case"XX":return v(n);case"XXXXX":case"XXX":default:return v(n,":")}},x:function(e,t,r){let n=e.getTimezoneOffset();switch(t){case"x":return Le(n);case"xxxx":case"xx":return v(n);case"xxxxx":case"xxx":default:return v(n,":")}},O:function(e,t,r){let n=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+qe(n,":");case"OOOO":default:return"GMT"+v(n,":")}},z:function(e,t,r){let n=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+qe(n,":");case"zzzz":default:return"GMT"+v(n,":")}},t:function(e,t,r){let n=Math.trunc(e.getTime()/1e3);return u(n,t.length)},T:function(e,t,r){let n=e.getTime();return u(n,t.length)}};function qe(e,t=""){let r=e>0?"-":"+",n=Math.abs(e),o=Math.trunc(n/60),a=n%60;return a===0?r+String(o):r+String(o)+t+u(a,2)}function Le(e,t){return e%60===0?(e>0?"-":"+")+u(Math.abs(e)/60,2):v(e,t)}function v(e,t=""){let r=e>0?"-":"+",n=Math.abs(e),o=u(Math.trunc(n/60),2),a=u(n%60,2);return r+o+t+a}var je=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},Ve=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},Vt=(e,t)=>{let r=e.match(/(P+)(p+)?/)||[],n=r[1],o=r[2];if(!o)return je(e,t);let a;switch(n){case"P":a=t.dateTime({width:"short"});break;case"PP":a=t.dateTime({width:"medium"});break;case"PPP":a=t.dateTime({width:"long"});break;case"PPPP":default:a=t.dateTime({width:"full"});break}return a.replace("{{date}}",je(n,t)).replace("{{time}}",Ve(o,t))},He={p:Ve,P:Vt};var Ht=/^D+$/,Bt=/^Y+$/,Qt=["D","DD","YY","YYYY"];function Be(e){return Ht.test(e)}function Qe(e){return Bt.test(e)}function Ae(e,t,r){let n=At(e,t,r);if(console.warn(n),Qt.includes(e))throw new RangeError(n)}function At(e,t,r){let n=e[0]==="Y"?"years":"days of the month";return"Use `".concat(e.toLowerCase(),"` instead of `").concat(e,"` (in `").concat(t,"`) for formatting ").concat(n," to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")}var Xt=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,_t=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Gt=/^'([^]*?)'?$/,$t=/''/g,zt=/[a-zA-Z]/;function Xe(e,t,r){var h,y,d,w,b,T,Y,E,U,K,Z,ee,te,re,ne,oe,ae,ie;let n=O(),o=(y=(h=r==null?void 0:r.locale)!=null?h:n.locale)!=null?y:_,a=(K=(U=(T=(b=r==null?void 0:r.firstWeekContainsDate)!=null?b:(w=(d=r==null?void 0:r.locale)==null?void 0:d.options)==null?void 0:w.firstWeekContainsDate)!=null?T:n.firstWeekContainsDate)!=null?U:(E=(Y=n.locale)==null?void 0:Y.options)==null?void 0:E.firstWeekContainsDate)!=null?K:1,i=(ie=(ae=(re=(te=r==null?void 0:r.weekStartsOn)!=null?te:(ee=(Z=r==null?void 0:r.locale)==null?void 0:Z.options)==null?void 0:ee.weekStartsOn)!=null?re:n.weekStartsOn)!=null?ae:(oe=(ne=n.locale)==null?void 0:ne.options)==null?void 0:oe.weekStartsOn)!=null?ie:0,c=m(e);if(!ve(c))throw new RangeError("Invalid time value");let s=t.match(_t).map(x=>{let p=x[0];if(p==="p"||p==="P"){let H=He[p];return H(x,o.formatLong)}return x}).join("").match(Xt).map(x=>{if(x==="''")return{isToken:!1,value:"'"};let p=x[0];if(p==="'")return{isToken:!1,value:Jt(x)};if(G[p])return{isToken:!0,value:x};if(p.match(zt))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:x}});o.localize.preprocessor&&(s=o.localize.preprocessor(c,s));let f={firstWeekContainsDate:a,weekStartsOn:i,locale:o};return s.map(x=>{if(!x.isToken)return x.value;let p=x.value;(!(r!=null&&r.useAdditionalWeekYearTokens)&&Qe(p)||!(r!=null&&r.useAdditionalDayOfYearTokens)&&Be(p))&&Ae(p,t,String(e));let H=G[p[0]];return H(c,p,o.localize,f)}).join("")}function Jt(e){let t=e.match(Gt);return t?t[1].replace($t,"'"):e}function V(e){return Oe(e,ke(e))}var $="usd",Ut=async()=>{try{let e="https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/".concat($,".json");return l("loading currency rates",e),await(await fetch(e)).json()}catch(e){return l("loadCurrencyRates",e),null}},_e=async e=>{let t=me();if(t&&V(t.date))return l("found rates in cache",t),t[$][e];let r=await Ut();return r?(l("new rates",r),le(r),r[$][e]):(l("failed to download rates"),0)};var $e=it(Ge(),1),ze=async(e,t,r)=>{l("rate for",t,"is",r);let n=!1;switch(t){case"inr":case"php":{n=!0;break}case"jpy":break;case"zar":{e=e.replace(",",".");break}case"dkk":{e=e.replace("kr.","").replace(",",".");break}case"pen":{e=e.replace("S/.","");break}case"clp":case"cop":case"twd":break;default:e=e.replace(/[^\d,.-]/,"").replace(",",".")}let o=(0,$e.default)(e,{useVedic:n}).divide(r);return l("converted price for",t,o),{intValue:o.intValue,formatted:o.format()}};var Je=async e=>{l("looking price for",e.countryCode);let t=pe(e.countryCode),r=he(t);if(r&&V(r.cachedAt))return l("found book price in cache",r),r;let n=await ge(t),o;if(n){l("found price",n,t);let i=await _e(e.currencyCode);o=await ze(n,e.currencyCode,i)}let a=F(I({},e),{countryPrice:n,convertedPrice:o,url:t,cachedAt:Xe(new Date,"yyyy-MM-dd")});return ye(a,t),a};var Kt=()=>{let e=document.querySelectorAll(".pricing-details");l("all pricing containers",e);let t;for(let n of e)if(n.checkVisibility()){l("found visible pricing container",n),t=n;break}let r=document.createElement("div");return r.style.display="flex",r.style.flexDirection="column",r.style.border="1px solid black",r.style.padding="10px",t.parentNode.insertBefore(r,t)},Zt=async()=>{let e=[];for(let t of de)e.push(await Je(t));return e},er=e=>e.sort((t,r)=>{var n,o;return(((n=t==null?void 0:t.convertedPrice)==null?void 0:n.intValue)||1/0)-(((o=r==null?void 0:r.convertedPrice)==null?void 0:o.intValue)||1/0)}),tr=(e,t)=>{e.innerText=null,t.forEach(r=>{var i,c;let n=document.createElement("a");n.href=r.url,n.target="_blank",n.style.marginBottom="5px",n.style.display="flex",n.style.justifyContent="space-between";let o=document.createElement("p");o.innerText="".concat(r.countryCode.toUpperCase(),": ").concat((r==null?void 0:r.countryPrice)||"NO PRICE");let a=document.createElement("p");a.innerText=(c=(i=r==null?void 0:r.convertedPrice)==null?void 0:i.formatted)!=null?c:"NO PRICE",a.style.fontWeight="bold",n.appendChild(o),n.appendChild(a),e.appendChild(n)})};async function rr(){let e=Kt();e.innerText="LOADING PRICES...";try{fe();let t=await Zt();l("country prices",t),er(t),l("sorted prices",t),tr(e,t)}catch(t){l("error",t),e.innerText="FAILED TO LOAD PRICES. CHECK CONSOLE FOR MORE INFO"}finally{l("done")}}l("starting...");rr();})(); +(()=>{var Zt=Object.create;var pe=Object.defineProperty,er=Object.defineProperties,tr=Object.getOwnPropertyDescriptor,rr=Object.getOwnPropertyDescriptors,nr=Object.getOwnPropertyNames,Le=Object.getOwnPropertySymbols,or=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty,ar=Object.prototype.propertyIsEnumerable;var qe=(e,t,r)=>t in e?pe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,K=(e,t)=>{for(var r in t||(t={}))Re.call(t,r)&&qe(e,r,t[r]);if(Le)for(var r of Le(t))ar.call(t,r)&&qe(e,r,t[r]);return e},Z=(e,t)=>er(e,rr(t));var ir=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var cr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of nr(t))!Re.call(e,o)&&o!==r&&pe(e,o,{get:()=>t[o],enumerable:!(n=tr(t,o))||n.enumerable});return e};var sr=(e,t,r)=>(r=e!=null?Zt(or(e)):{},cr(t||!e||!e.__esModule?pe(r,"default",{value:e,enumerable:!0}):r,e));var $t=ir((Ne,He)=>{(function(e,t){typeof Ne=="object"&&typeof He<"u"?He.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.currency=t())})(Ne,function(){function e(a,i){if(!(this instanceof e))return new e(a,i);i=Object.assign({},r,i);var s=Math.pow(10,i.precision);this.intValue=a=t(a,i),this.value=a/s,i.increment=i.increment||1/s,i.groups=i.useVedic?o:n,this.s=i,this.p=s}function t(a,i){var s=2console.log("KOBOPRICE",...e);var ye="KOBOPRICE",Ae=()=>{localStorage.getItem(ye)||ge({books:{},rates:null})},ee=()=>JSON.parse(localStorage.getItem(ye)),ge=e=>localStorage.setItem(ye,JSON.stringify(e)),Ve=()=>ee().rates,je=e=>ge(Z(K({},ee()),{rates:e})),Ue=e=>ee().books[e],Be=(e,t)=>{let r=ee();r.books[t]=e,ge(r)};var ae,w,ze,ur,R,Qe,Je,we,ke,ve,be,dr,z={},Ke=[],fr=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Ce=Array.isArray;function I(e,t){for(var r in t)e[r]=t[r];return e}function Ze(e){var t=e.parentNode;t&&t.removeChild(e)}function S(e,t,r){var n,o,a,i={};for(a in t)a=="key"?n=t[a]:a=="ref"?o=t[a]:i[a]=t[a];if(arguments.length>2&&(i.children=arguments.length>3?ae.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(a in e.defaultProps)i[a]===void 0&&(i[a]=e.defaultProps[a]);return re(e,i,n,o,null)}function re(e,t,r,n,o){var a={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:o==null?++ze:o,__i:-1,__u:0};return o==null&&w.vnode!=null&&w.vnode(a),a}function ie(e){return e.children}function ne(e,t){this.props=e,this.context=t}function A(e,t){if(t==null)return e.__?A(e.__,e.__i+1):null;for(var r;tt&&R.sort(we));oe.__r=0}function tt(e,t,r,n,o,a,i,s,u,d,_){var c,m,f,y,C,v=n&&n.__k||Ke,h=t.length;for(r.__d=u,lr(r,t,v),u=r.__d,c=0;c0?re(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)!=null?(o.__=e,o.__b=e.__b+1,s=_r(o,r,i,_),o.__i=s,a=null,s!==-1&&(_--,(a=r[s])&&(a.__u|=131072)),a==null||a.__v===null?(s==-1&&c--,typeof o.type!="function"&&(o.__u|=65536)):s!==i&&(s==i-1?c=s-i:s==i+1?c++:s>i?_>u-i?c+=s-i:c--:s(u!=null&&!(131072&u.__u)?1:0))for(;i>=0||s=0){if((u=t[i])&&!(131072&u.__u)&&o==u.key&&a===u.type)return i;i--}if(s=r.__.length&&r.__.push({}),r.__[e]}function ue(e){return se=1,pr(pt,e)}function pr(e,t,r){var n=Se(J++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):pt(void 0,t),function(s){var u=n.__N?n.__N[0]:n.__[0],d=n.t(u,s);u!==d&&(n.__N=[d,n.__[1]],n.__c.setState({}))}],n.__c=x,!x.u)){var o=function(s,u,d){if(!n.__c.__H)return!0;var _=n.__c.__H.__.filter(function(m){return!!m.__c});if(_.every(function(m){return!m.__N}))return!a||a.call(this,s,u,d);var c=!1;return _.forEach(function(m){if(m.__N){var f=m.__[0];m.__=m.__N,m.__N=void 0,f!==m.__[0]&&(c=!0)}}),!(!c&&n.__c.props===s)&&(!a||a.call(this,s,u,d))};x.u=!0;var a=x.shouldComponentUpdate,i=x.componentWillUpdate;x.componentWillUpdate=function(s,u,d){if(this.__e){var _=a;a=void 0,o(s,u,d),a=_}i&&i.call(this,s,u,d)},x.shouldComponentUpdate=o}return n.__N||n.__}function mt(e,t){var r=Se(J++,3);!k.__s&&ht(r.__H,t)&&(r.__=e,r.i=t,x.__H.__h.push(r))}function yr(e,t){var r=Se(J++,7);return ht(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function We(e,t){return se=8,yr(function(){return e},t)}function gr(){for(var e;e=_t.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(ce),e.__H.__h.forEach(Me),e.__H.__h=[]}catch(t){e.__H.__h=[],k.__e(t,e.__v)}}k.__b=function(e){x=null,it&&it(e)},k.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),ft&&ft(e,t)},k.__r=function(e){ct&&ct(e),J=0;var t=(x=e.__c).__H;t&&(De===x?(t.__h=[],x.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.i=r.__N=void 0})):(t.__h.forEach(ce),t.__h.forEach(Me),t.__h=[],J=0)),De=x},k.diffed=function(e){st&&st(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(_t.push(t)!==1&&at===k.requestAnimationFrame||((at=k.requestAnimationFrame)||wr)(gr)),t.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.i=void 0})),De=x=null},k.__c=function(e,t){t.some(function(r){try{r.__h.forEach(ce),r.__h=r.__h.filter(function(n){return!n.__||Me(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],k.__e(n,r.__v)}}),ut&&ut(e,t)},k.unmount=function(e){dt&&dt(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{ce(n)}catch(o){t=o}}),r.__H=void 0,t&&k.__e(t,r.__v))};var lt=typeof requestAnimationFrame=="function";function wr(e){var t,r=function(){clearTimeout(n),lt&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);lt&&(t=requestAnimationFrame(r))}function ce(e){var t=x,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),x=t}function Me(e){var t=x;e.__c=e.__(),x=t}function ht(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function pt(e,t){return typeof t=="function"?t(e):t}var Te=[{countryCode:"ww",currencyCode:"usd"},{countryCode:"ca",currencyCode:"cad"},{countryCode:"us",currencyCode:"usd"},{countryCode:"in",currencyCode:"inr"},{countryCode:"za",currencyCode:"zar"},{countryCode:"au",currencyCode:"aud"},{countryCode:"hk",currencyCode:"hkd"},{countryCode:"jp",currencyCode:"jpy"},{countryCode:"my",currencyCode:"myr"},{countryCode:"nz",currencyCode:"nzd"},{countryCode:"ph",currencyCode:"php"},{countryCode:"sg",currencyCode:"sgd"},{countryCode:"tw",currencyCode:"twd"},{countryCode:"th",currencyCode:"usd"},{countryCode:"at",currencyCode:"eur"},{countryCode:"be",currencyCode:"eur"},{countryCode:"cy",currencyCode:"eur"},{countryCode:"cz",currencyCode:"czk"},{countryCode:"dk",currencyCode:"dkk"},{countryCode:"ee",currencyCode:"eur"},{countryCode:"fi",currencyCode:"eur"},{countryCode:"fr",currencyCode:"eur"},{countryCode:"de",currencyCode:"eur"},{countryCode:"gr",currencyCode:"eur"},{countryCode:"ie",currencyCode:"eur"},{countryCode:"it",currencyCode:"eur"},{countryCode:"lt",currencyCode:"eur"},{countryCode:"lu",currencyCode:"eur"},{countryCode:"mt",currencyCode:"eur"},{countryCode:"nl",currencyCode:"eur"},{countryCode:"no",currencyCode:"nok"},{countryCode:"pl",currencyCode:"pln"},{countryCode:"pt",currencyCode:"eur"},{countryCode:"ro",currencyCode:"ron"},{countryCode:"sk",currencyCode:"eur"},{countryCode:"si",currencyCode:"eur"},{countryCode:"es",currencyCode:"eur"},{countryCode:"se",currencyCode:"sek"},{countryCode:"ch",currencyCode:"chf"},{countryCode:"tr",currencyCode:"try"},{countryCode:"gb",currencyCode:"gbp"},{countryCode:"ar",currencyCode:"usd"},{countryCode:"br",currencyCode:"brl"},{countryCode:"cl",currencyCode:"clp"},{countryCode:"co",currencyCode:"cop"},{countryCode:"mx",currencyCode:"mxn"},{countryCode:"pe",currencyCode:"pen"}];var yt=e=>{let t=/^https:\/\/www\.kobo\.com\/../,r="https://www.kobo.com/".concat(e),n=window.location.href.replace(t,r);return l("url for country",e,n),n};var vr=e=>new Promise(t=>setTimeout(t,e)),br=e=>new Promise((t,r)=>{vr(5e3).then(()=>r("price not found"));var n=new MutationObserver(()=>{var a;let o=(a=e==null?void 0:e.querySelector(".primary-right-container .pricing-details .active-price span"))==null?void 0:a.textContent;o&&(l("found price",o),n.disconnect(),t(o))});n.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}),gt=async e=>{try{l("going to",e);let t=document.createElement("iframe");t.src=e,t.hidden=!0,document.body.append(t),await new Promise(n=>t.contentWindow.onload=n),l("starting observing price on",e);let r=await br(t.contentDocument.body,e);return document.body.removeChild(t),r}catch(t){return l("getPriceForCountry",t,e),""}};function b(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function O(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}var xr=Math.pow(10,8)*24*60*60*1e3,Tn=-xr,de=6048e5,wt=864e5;var kr=3600;var vt=kr*24,En=vt*7,Cr=vt*365.2425,Pr=Cr/12,Fn=Pr*3;var Or={};function N(){return Or}function T(e,t){var s,u,d,_,c,m,f,y;let r=N(),n=(y=(f=(_=(d=t==null?void 0:t.weekStartsOn)!=null?d:(u=(s=t==null?void 0:t.locale)==null?void 0:s.options)==null?void 0:u.weekStartsOn)!=null?_:r.weekStartsOn)!=null?f:(m=(c=r.locale)==null?void 0:c.options)==null?void 0:m.weekStartsOn)!=null?y:0,o=b(e),a=o.getDay(),i=(a=o.getTime()?r+1:t.getTime()>=i.getTime()?r:r-1}function B(e){let t=b(e);return t.setHours(0,0,0,0),t}function Ee(e){let t=b(e),r=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return r.setUTCFullYear(t.getFullYear()),+e-+r}function bt(e,t){let r=B(e),n=B(t),o=+r-Ee(r),a=+n-Ee(n);return Math.round((o-a)/wt)}function xt(e){let t=fe(e),r=O(e,0);return r.setFullYear(t,0,4),r.setHours(0,0,0,0),V(r)}function kt(e){return O(e,Date.now())}function Ct(e,t){let r=B(e),n=B(t);return+r==+n}function Pt(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Ot(e){if(!Pt(e)&&typeof e!="number")return!1;let t=b(e);return!isNaN(Number(t))}function Dt(e){let t=b(e),r=O(e,0);return r.setFullYear(t.getFullYear(),0,1),r.setHours(0,0,0,0),r}var Dr={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Mt=(e,t,r)=>{let n,o=Dr[e];return typeof o=="string"?n=o:t===1?n=o.one:n=o.other.replace("{{count}}",t.toString()),r!=null&&r.addSuffix?r.comparison&&r.comparison>0?"in "+n:n+" ago":n};function le(e){return(t={})=>{let r=t.width?String(t.width):e.defaultWidth;return e.formats[r]||e.formats[e.defaultWidth]}}var Mr={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Sr={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Wr={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},St={date:le({formats:Mr,defaultWidth:"full"}),time:le({formats:Sr,defaultWidth:"full"}),dateTime:le({formats:Wr,defaultWidth:"full"})};var Tr={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},Wt=(e,t,r,n)=>Tr[e];function Q(e){return(t,r)=>{let n=r!=null&&r.context?String(r.context):"standalone",o;if(n==="formatting"&&e.formattingValues){let i=e.defaultFormattingWidth||e.defaultWidth,s=r!=null&&r.width?String(r.width):i;o=e.formattingValues[s]||e.formattingValues[i]}else{let i=e.defaultWidth,s=r!=null&&r.width?String(r.width):e.defaultWidth;o=e.values[s]||e.values[i]}let a=e.argumentCallback?e.argumentCallback(t):t;return o[a]}}var Er={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Fr={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},Yr={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Ir={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Nr={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Hr={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},Lr=(e,t)=>{let r=Number(e),n=r%100;if(n>20||n<10)switch(n%10){case 1:return r+"st";case 2:return r+"nd";case 3:return r+"rd"}return r+"th"},Tt={ordinalNumber:Lr,era:Q({values:Er,defaultWidth:"wide"}),quarter:Q({values:Fr,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Q({values:Yr,defaultWidth:"wide"}),day:Q({values:Ir,defaultWidth:"wide"}),dayPeriod:Q({values:Nr,defaultWidth:"wide",formattingValues:Hr,defaultFormattingWidth:"wide"})};function X(e){return(t,r={})=>{let n=r.width,o=n&&e.matchPatterns[n]||e.matchPatterns[e.defaultMatchWidth],a=t.match(o);if(!a)return null;let i=a[0],s=n&&e.parsePatterns[n]||e.parsePatterns[e.defaultParseWidth],u=Array.isArray(s)?Rr(s,c=>c.test(i)):qr(s,c=>c.test(i)),d;d=e.valueCallback?e.valueCallback(u):u,d=r.valueCallback?r.valueCallback(d):d;let _=t.slice(i.length);return{value:d,rest:_}}}function qr(e,t){for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&t(e[r]))return r}function Rr(e,t){for(let r=0;r{let n=t.match(e.matchPattern);if(!n)return null;let o=n[0],a=t.match(e.parsePattern);if(!a)return null;let i=e.valueCallback?e.valueCallback(a[0]):a[0];i=r.valueCallback?r.valueCallback(i):i;let s=t.slice(o.length);return{value:i,rest:s}}}var Ar=/^(\d+)(th|st|nd|rd)?/i,Vr=/\d+/i,jr={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},Ur={any:[/^b/i,/^(a|c)/i]},Br={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Qr={any:[/1/i,/2/i,/3/i,/4/i]},Xr={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},$r={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Gr={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},zr={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Jr={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},Kr={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},Ft={ordinalNumber:Et({matchPattern:Ar,parsePattern:Vr,valueCallback:e=>parseInt(e,10)}),era:X({matchPatterns:jr,defaultMatchWidth:"wide",parsePatterns:Ur,defaultParseWidth:"any"}),quarter:X({matchPatterns:Br,defaultMatchWidth:"wide",parsePatterns:Qr,defaultParseWidth:"any",valueCallback:e=>e+1}),month:X({matchPatterns:Xr,defaultMatchWidth:"wide",parsePatterns:$r,defaultParseWidth:"any"}),day:X({matchPatterns:Gr,defaultMatchWidth:"wide",parsePatterns:zr,defaultParseWidth:"any"}),dayPeriod:X({matchPatterns:Jr,defaultMatchWidth:"any",parsePatterns:Kr,defaultParseWidth:"any"})};var Fe={code:"en-US",formatDistance:Mt,formatLong:St,formatRelative:Wt,localize:Tt,match:Ft,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Yt(e){let t=b(e);return bt(t,Dt(t))+1}function It(e){let t=b(e),r=+V(t)-+xt(t);return Math.round(r/de)+1}function _e(e,t){var _,c,m,f,y,C,v,h;let r=b(e),n=r.getFullYear(),o=N(),a=(h=(v=(f=(m=t==null?void 0:t.firstWeekContainsDate)!=null?m:(c=(_=t==null?void 0:t.locale)==null?void 0:_.options)==null?void 0:c.firstWeekContainsDate)!=null?f:o.firstWeekContainsDate)!=null?v:(C=(y=o.locale)==null?void 0:y.options)==null?void 0:C.firstWeekContainsDate)!=null?h:1,i=O(e,0);i.setFullYear(n+1,0,a),i.setHours(0,0,0,0);let s=T(i,t),u=O(e,0);u.setFullYear(n,0,a),u.setHours(0,0,0,0);let d=T(u,t);return r.getTime()>=s.getTime()?n+1:r.getTime()>=d.getTime()?n:n-1}function Nt(e,t){var s,u,d,_,c,m,f,y;let r=N(),n=(y=(f=(_=(d=t==null?void 0:t.firstWeekContainsDate)!=null?d:(u=(s=t==null?void 0:t.locale)==null?void 0:s.options)==null?void 0:u.firstWeekContainsDate)!=null?_:r.firstWeekContainsDate)!=null?f:(m=(c=r.locale)==null?void 0:c.options)==null?void 0:m.firstWeekContainsDate)!=null?y:1,o=_e(e,t),a=O(e,0);return a.setFullYear(o,0,n),a.setHours(0,0,0,0),T(a,t)}function Ht(e,t){let r=b(e),n=+T(r,t)-+Nt(r,t);return Math.round(n/de)+1}function p(e,t){let r=e<0?"-":"",n=Math.abs(e).toString().padStart(t,"0");return r+n}var E={y(e,t){let r=e.getFullYear(),n=r>0?r:1-r;return p(t==="yy"?n%100:n,t.length)},M(e,t){let r=e.getMonth();return t==="M"?String(r+1):p(r+1,2)},d(e,t){return p(e.getDate(),t.length)},a(e,t){let r=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];case"aaaa":default:return r==="am"?"a.m.":"p.m."}},h(e,t){return p(e.getHours()%12||12,t.length)},H(e,t){return p(e.getHours(),t.length)},m(e,t){return p(e.getMinutes(),t.length)},s(e,t){return p(e.getSeconds(),t.length)},S(e,t){let r=t.length,n=e.getMilliseconds(),o=Math.trunc(n*Math.pow(10,r-3));return p(o,t.length)}};var $={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Ye={G:function(e,t,r){let n=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return r.era(n,{width:"abbreviated"});case"GGGGG":return r.era(n,{width:"narrow"});case"GGGG":default:return r.era(n,{width:"wide"})}},y:function(e,t,r){if(t==="yo"){let n=e.getFullYear(),o=n>0?n:1-n;return r.ordinalNumber(o,{unit:"year"})}return E.y(e,t)},Y:function(e,t,r,n){let o=_e(e,n),a=o>0?o:1-o;if(t==="YY"){let i=a%100;return p(i,2)}return t==="Yo"?r.ordinalNumber(a,{unit:"year"}):p(a,t.length)},R:function(e,t){let r=fe(e);return p(r,t.length)},u:function(e,t){let r=e.getFullYear();return p(r,t.length)},Q:function(e,t,r){let n=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(n);case"QQ":return p(n,2);case"Qo":return r.ordinalNumber(n,{unit:"quarter"});case"QQQ":return r.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return r.quarter(n,{width:"narrow",context:"formatting"});case"QQQQ":default:return r.quarter(n,{width:"wide",context:"formatting"})}},q:function(e,t,r){let n=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(n);case"qq":return p(n,2);case"qo":return r.ordinalNumber(n,{unit:"quarter"});case"qqq":return r.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return r.quarter(n,{width:"narrow",context:"standalone"});case"qqqq":default:return r.quarter(n,{width:"wide",context:"standalone"})}},M:function(e,t,r){let n=e.getMonth();switch(t){case"M":case"MM":return E.M(e,t);case"Mo":return r.ordinalNumber(n+1,{unit:"month"});case"MMM":return r.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return r.month(n,{width:"narrow",context:"formatting"});case"MMMM":default:return r.month(n,{width:"wide",context:"formatting"})}},L:function(e,t,r){let n=e.getMonth();switch(t){case"L":return String(n+1);case"LL":return p(n+1,2);case"Lo":return r.ordinalNumber(n+1,{unit:"month"});case"LLL":return r.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return r.month(n,{width:"narrow",context:"standalone"});case"LLLL":default:return r.month(n,{width:"wide",context:"standalone"})}},w:function(e,t,r,n){let o=Ht(e,n);return t==="wo"?r.ordinalNumber(o,{unit:"week"}):p(o,t.length)},I:function(e,t,r){let n=It(e);return t==="Io"?r.ordinalNumber(n,{unit:"week"}):p(n,t.length)},d:function(e,t,r){return t==="do"?r.ordinalNumber(e.getDate(),{unit:"date"}):E.d(e,t)},D:function(e,t,r){let n=Yt(e);return t==="Do"?r.ordinalNumber(n,{unit:"dayOfYear"}):p(n,t.length)},E:function(e,t,r){let n=e.getDay();switch(t){case"E":case"EE":case"EEE":return r.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return r.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(n,{width:"short",context:"formatting"});case"EEEE":default:return r.day(n,{width:"wide",context:"formatting"})}},e:function(e,t,r,n){let o=e.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(t){case"e":return String(a);case"ee":return p(a,2);case"eo":return r.ordinalNumber(a,{unit:"day"});case"eee":return r.day(o,{width:"abbreviated",context:"formatting"});case"eeeee":return r.day(o,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(o,{width:"short",context:"formatting"});case"eeee":default:return r.day(o,{width:"wide",context:"formatting"})}},c:function(e,t,r,n){let o=e.getDay(),a=(o-n.weekStartsOn+8)%7||7;switch(t){case"c":return String(a);case"cc":return p(a,t.length);case"co":return r.ordinalNumber(a,{unit:"day"});case"ccc":return r.day(o,{width:"abbreviated",context:"standalone"});case"ccccc":return r.day(o,{width:"narrow",context:"standalone"});case"cccccc":return r.day(o,{width:"short",context:"standalone"});case"cccc":default:return r.day(o,{width:"wide",context:"standalone"})}},i:function(e,t,r){let n=e.getDay(),o=n===0?7:n;switch(t){case"i":return String(o);case"ii":return p(o,t.length);case"io":return r.ordinalNumber(o,{unit:"day"});case"iii":return r.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return r.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return r.day(n,{width:"short",context:"formatting"});case"iiii":default:return r.day(n,{width:"wide",context:"formatting"})}},a:function(e,t,r){let o=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"aaa":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"aaaa":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},b:function(e,t,r){let n=e.getHours(),o;switch(n===12?o=$.noon:n===0?o=$.midnight:o=n/12>=1?"pm":"am",t){case"b":case"bb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"bbb":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"bbbb":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},B:function(e,t,r){let n=e.getHours(),o;switch(n>=17?o=$.evening:n>=12?o=$.afternoon:n>=4?o=$.morning:o=$.night,t){case"B":case"BB":case"BBB":return r.dayPeriod(o,{width:"abbreviated",context:"formatting"});case"BBBBB":return r.dayPeriod(o,{width:"narrow",context:"formatting"});case"BBBB":default:return r.dayPeriod(o,{width:"wide",context:"formatting"})}},h:function(e,t,r){if(t==="ho"){let n=e.getHours()%12;return n===0&&(n=12),r.ordinalNumber(n,{unit:"hour"})}return E.h(e,t)},H:function(e,t,r){return t==="Ho"?r.ordinalNumber(e.getHours(),{unit:"hour"}):E.H(e,t)},K:function(e,t,r){let n=e.getHours()%12;return t==="Ko"?r.ordinalNumber(n,{unit:"hour"}):p(n,t.length)},k:function(e,t,r){let n=e.getHours();return n===0&&(n=24),t==="ko"?r.ordinalNumber(n,{unit:"hour"}):p(n,t.length)},m:function(e,t,r){return t==="mo"?r.ordinalNumber(e.getMinutes(),{unit:"minute"}):E.m(e,t)},s:function(e,t,r){return t==="so"?r.ordinalNumber(e.getSeconds(),{unit:"second"}):E.s(e,t)},S:function(e,t){return E.S(e,t)},X:function(e,t,r){let n=e.getTimezoneOffset();if(n===0)return"Z";switch(t){case"X":return qt(n);case"XXXX":case"XX":return j(n);case"XXXXX":case"XXX":default:return j(n,":")}},x:function(e,t,r){let n=e.getTimezoneOffset();switch(t){case"x":return qt(n);case"xxxx":case"xx":return j(n);case"xxxxx":case"xxx":default:return j(n,":")}},O:function(e,t,r){let n=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+Lt(n,":");case"OOOO":default:return"GMT"+j(n,":")}},z:function(e,t,r){let n=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+Lt(n,":");case"zzzz":default:return"GMT"+j(n,":")}},t:function(e,t,r){let n=Math.trunc(e.getTime()/1e3);return p(n,t.length)},T:function(e,t,r){let n=e.getTime();return p(n,t.length)}};function Lt(e,t=""){let r=e>0?"-":"+",n=Math.abs(e),o=Math.trunc(n/60),a=n%60;return a===0?r+String(o):r+String(o)+t+p(a,2)}function qt(e,t){return e%60===0?(e>0?"-":"+")+p(Math.abs(e)/60,2):j(e,t)}function j(e,t=""){let r=e>0?"-":"+",n=Math.abs(e),o=p(Math.trunc(n/60),2),a=p(n%60,2);return r+o+t+a}var Rt=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},At=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},Zr=(e,t)=>{let r=e.match(/(P+)(p+)?/)||[],n=r[1],o=r[2];if(!o)return Rt(e,t);let a;switch(n){case"P":a=t.dateTime({width:"short"});break;case"PP":a=t.dateTime({width:"medium"});break;case"PPP":a=t.dateTime({width:"long"});break;case"PPPP":default:a=t.dateTime({width:"full"});break}return a.replace("{{date}}",Rt(n,t)).replace("{{time}}",At(o,t))},Vt={p:At,P:Zr};var en=/^D+$/,tn=/^Y+$/,rn=["D","DD","YY","YYYY"];function jt(e){return en.test(e)}function Ut(e){return tn.test(e)}function Bt(e,t,r){let n=nn(e,t,r);if(console.warn(n),rn.includes(e))throw new RangeError(n)}function nn(e,t,r){let n=e[0]==="Y"?"years":"days of the month";return"Use `".concat(e.toLowerCase(),"` instead of `").concat(e,"` (in `").concat(t,"`) for formatting ").concat(n," to the input `").concat(r,"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md")}var on=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,an=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,cn=/^'([^]*?)'?$/,sn=/''/g,un=/[a-zA-Z]/;function Qt(e,t,r){var _,c,m,f,y,C,v,h,g,F,W,H,Y,G,L,U,D,q;let n=N(),o=(c=(_=r==null?void 0:r.locale)!=null?_:n.locale)!=null?c:Fe,a=(F=(g=(C=(y=r==null?void 0:r.firstWeekContainsDate)!=null?y:(f=(m=r==null?void 0:r.locale)==null?void 0:m.options)==null?void 0:f.firstWeekContainsDate)!=null?C:n.firstWeekContainsDate)!=null?g:(h=(v=n.locale)==null?void 0:v.options)==null?void 0:h.firstWeekContainsDate)!=null?F:1,i=(q=(D=(G=(Y=r==null?void 0:r.weekStartsOn)!=null?Y:(H=(W=r==null?void 0:r.locale)==null?void 0:W.options)==null?void 0:H.weekStartsOn)!=null?G:n.weekStartsOn)!=null?D:(U=(L=n.locale)==null?void 0:L.options)==null?void 0:U.weekStartsOn)!=null?q:0,s=b(e);if(!Ot(s))throw new RangeError("Invalid time value");let u=t.match(an).map(M=>{let P=M[0];if(P==="p"||P==="P"){let he=Vt[P];return he(M,o.formatLong)}return M}).join("").match(on).map(M=>{if(M==="''")return{isToken:!1,value:"'"};let P=M[0];if(P==="'")return{isToken:!1,value:dn(M)};if(Ye[P])return{isToken:!0,value:M};if(P.match(un))throw new RangeError("Format string contains an unescaped latin alphabet character `"+P+"`");return{isToken:!1,value:M}});o.localize.preprocessor&&(u=o.localize.preprocessor(s,u));let d={firstWeekContainsDate:a,weekStartsOn:i,locale:o};return u.map(M=>{if(!M.isToken)return M.value;let P=M.value;(!(r!=null&&r.useAdditionalWeekYearTokens)&&Ut(P)||!(r!=null&&r.useAdditionalDayOfYearTokens)&&jt(P))&&Bt(P,t,String(e));let he=Ye[P[0]];return he(s,P,o.localize,d)}).join("")}function dn(e){let t=e.match(cn);return t?t[1].replace(sn,"'"):e}function me(e){return Ct(e,kt(e))}var Ie="usd",fn=async()=>{try{let e="https://cdn.jsdelivr.net/npm/@fawazahmed0/currency-api@latest/v1/currencies/".concat(Ie,".json");return l("loading currency rates",e),await(await fetch(e)).json()}catch(e){return l("loadCurrencyRates",e),null}},Xt=async e=>{let t=Ve();if(t&&me(t.date))return l("found rates in cache",t),t[Ie][e];let r=await fn();return r?(l("new rates",r),je(r),r[Ie][e]):(l("failed to download rates"),0)};var Gt=sr($t(),1),zt=async(e,t,r)=>{l("rate for",t,"is",r);let n=!1;switch(t){case"inr":case"php":{n=!0;break}case"jpy":break;case"zar":{e=e.replace(",",".");break}case"dkk":{e=e.replace("kr.","").replace(",",".");break}case"pen":{e=e.replace("S/.","");break}case"clp":case"cop":case"twd":break;default:e=e.replace(/[^\d,.-]/,"").replace(",",".")}let o=(0,Gt.default)(e,{useVedic:n}).divide(r);return l("converted price for",t,o),{intValue:o.intValue,formatted:o.format()}};var Jt=async e=>{l("looking price for",e.countryCode);let t=yt(e.countryCode),r=Ue(t);if(r&&me(r.cachedAt))return l("found book price in cache",r),r;let n=await gt(t),o;if(n){l("found price",n,t);let i=await Xt(e.currencyCode);o=await zt(n,e.currencyCode,i)}let a=Z(K({},e),{countryPrice:n,convertedPrice:o,url:t,cachedAt:Qt(new Date,"yyyy-MM-dd")});return Be(a,t),a};var ln=e=>e.sort((t,r)=>{var n,o;return(((n=t==null?void 0:t.convertedPrice)==null?void 0:n.intValue)||1/0)-(((o=r==null?void 0:r.convertedPrice)==null?void 0:o.intValue)||1/0)}),Kt=()=>{let[e,t]=ue(Te);mt(()=>{(async()=>{for(let[o,a]of Te.entries()){let i=await Jt(a);e[o]=i,ln(e),t([...e])}l("DONE")})()},[]);let r=e.filter(n=>n.countryPrice!=null).length/e.length*100;return[e,r.toFixed(0)]};var _n=()=>{let e=document.querySelectorAll(".pricing-details");l("all pricing containers",e);let t;for(let r of e)if(r.checkVisibility()){l("found visible pricing container",r),t=r;break}return t.parentNode.insertBefore(document.createElement("div"),t)},mn=()=>document.querySelectorAll(".read-now").length,hn=(e,t)=>e==null?"LOADING":t?"".concat(e," => ").concat(t==null?void 0:t.formatted):"NOT FOUND",pn=({props:e})=>{let{convertedPrice:t,countryCode:r,countryPrice:n,url:o}=e,[a,i]=ue(!1),s=We(()=>i(!0)),u=We(()=>i(!1));return S("a",{style:{display:"flex",flexDirection:"row",justifyContent:"space-between",backgroundColor:a?"#d7d7d7":"",padding:"10px 10px 0 10px"},href:o,target:"_blank",onMouseEnter:s,onMouseLeave:u},[S("p",null,r.toUpperCase()),S("p",{style:{fontWeight:"bold"}},hn(n,t))])},yn=()=>S("div",{style:{display:"flex",flexDirection:"column",border:"1px solid black",textAlign:"center"}},S("h2",null,"Already in Library!")),gn=e=>{let t={padding:"10px 10px 0 10px",textAlign:"center"};return e==100?S("h2",{style:t},"all prices are loaded!"):S("h2",{style:t},"".concat(e,"%"))},wn=()=>{let[e,t]=Kt(),r={display:"flex",flexDirection:"column",border:"1px solid black"};return mn()?yn():S("div",{style:r},[gn(t),...e.map(n=>S(pn,{props:n}))])};l("starting...");Ae();ot(S(wn),_n());})(); //# sourceMappingURL=index.js.map