(function(w,V){typeof exports=="object"&&typeof module<"u"?V(exports):typeof define=="function"&&define.amd?define(["exports"],V):(w=typeof globalThis<"u"?globalThis:w||self,V(w["navigator-html-injectables"]={}))})(this,function(w){"use strict";const V=Math.pow(2,32),Le=()=>Math.round(Math.random()*V).toString(36),ze=()=>`${Math.round(performance.now())}-${Le()}-${Le()}`,H=1;class Ie{constructor(e){this.destination=null,this.registrar=new Map,this.origin="",this.channelId="",this.receiver=this.receive.bind(this),this.preLog=[],this.wnd=e,e.addEventListener("message",this.receiver)}receive(e){if(e.source===null)throw Error("Event source is null");if(typeof e.data!="object")return;const t=e.data;if(!(!("_readium"in t)||!t._readium||t._readium<=0)){if(t.key==="_ping"){if(!this.destination){if(this.destination=e.source,this.origin=e.origin,this.channelId=t._channel,t._readium!==H){t._readium>H?this.send("error",`received comms version ${t._readium} higher than ${H}`):this.send("error",`received comms version ${t._readium} lower than ${H}`),this.destination=null,this.origin="",this.channelId="";return}this.send("_pong",void 0),this.preLog.forEach(r=>this.send("log",r)),this.preLog=[]}return}else if(this.channelId){if(t._channel!==this.channelId||e.origin!==this.origin)return}else return;this.handle(t)}}handle(e){const t=this.registrar.get(e.key);if(!t||t.length===0){e.strict&&this.send("_unhandled",e);return}t.forEach(r=>r.cb(e.data,s=>{this.send("_ack",s,e.id)}))}register(e,t,r){Array.isArray(e)||(e=[e]),e.forEach(s=>{const n=this.registrar.get(s);if(n&&n.length>=0){if(n.find(a=>a.module===t))throw new Error(`Trying to register another callback for combination of event ${s} and module ${t}`);n.push({cb:r,module:t}),this.registrar.set(s,n)}else this.registrar.set(s,[{cb:r,module:t}])})}unregister(e,t){Array.isArray(e)||(e=[e]),e.forEach(r=>{const s=this.registrar.get(r);!s||s.length===0||s.splice(s.findIndex(n=>n.module===t),1)})}unregisterAll(e){this.registrar.forEach((t,r)=>this.registrar.set(r,t.filter(s=>s.module!==e)))}log(...e){this.destination?this.send("log",e):this.preLog.push(e)}get ready(){return!!this.destination}destroy(){this.destination=null,this.channelId="",this.preLog=[],this.registrar.clear(),this.wnd.removeEventListener("message",this.receiver)}send(e,t,r=void 0,s=[]){if(!this.destination)throw Error("Attempted to send comms message before destination has been initialized");const n={_readium:H,_channel:this.channelId,id:r??ze(),key:e,data:t};try{this.destination.postMessage(n,{targetOrigin:this.origin,transfer:s})}catch(o){if(s.length>0)throw o;this.destination.postMessage(n,this.origin,s)}}}class pe{constructor(e){this.algorithm=e.algorithm,this.compression=e.compression,this.originalLength=e.originalLength,this.profile=e.profile,this.scheme=e.scheme}static deserialize(e){if(e&&e.algorithm)return new pe({algorithm:e.algorithm,compression:e.compression,originalLength:e.originalLength,profile:e.profile,scheme:e.scheme})}serialize(){const e={algorithm:this.algorithm};return this.compression!==void 0&&(e.compression=this.compression),this.originalLength!==void 0&&(e.originalLength=this.originalLength),this.profile!==void 0&&(e.profile=this.profile),this.scheme!==void 0&&(e.scheme=this.scheme),e}}class b{constructor(e){this.otherProperties=e}static deserialize(e){if(e)return new b(e)}serialize(){return this.otherProperties}add(e){const t=Object.assign({},this.otherProperties);for(const r in e)t[r]=e[r];return new b(t)}}Object.defineProperty(b.prototype,"encryption",{get:function(){return pe.deserialize(this.otherProperties.encrypted)}}),b.prototype.getContains=function(){return new Set(this.otherProperties.contains||[])},b.prototype.getLayout=function(){return this.otherProperties.layout};class l{constructor(e){let t,r,s=e.mediaType.replace(/\s/g,"").split(";");const n=s[0].split("/");if(n.length===2){if(t=n[0].toLowerCase().trim(),r=n[1].toLowerCase().trim(),t.length===0||r.length===0)throw new Error("Invalid media type")}else throw new Error("Invalid media type");const o={};for(let u=1;uu.localeCompare(f)),h.forEach(u=>a[u]=o[u]);let c="";for(const u in a){const f=a[u];c+=`;${u}=${f}`}const d=`${t}/${r}${c}`,p=a.encoding;this.string=d,this.type=t,this.subtype=r,this.parameters=a,this.encoding=p,this.name=e.name,this.fileExtension=e.fileExtension}static parse(e){return new l(e)}get structuredSyntaxSuffix(){const e=this.subtype.split("+");return e.length>1?`+${e[e.length-1]}`:void 0}get charset(){return this.parameters.charset}contains(e){const t=typeof e=="string"?l.parse({mediaType:e}):e;if(!((this.type==="*"||this.type===t.type)&&(this.subtype==="*"||this.subtype===t.subtype)))return!1;const r=new Set(Object.entries(this.parameters).map(([n,o])=>`${n}=${o}`)),s=new Set(Object.entries(t.parameters).map(([n,o])=>`${n}=${o}`));for(const n of Array.from(r.values()))if(!s.has(n))return!1;return!0}matches(e){const t=typeof e=="string"?l.parse({mediaType:e}):e;return this.contains(t)||t.contains(this)}matchesAny(...e){for(const t of e)if(this.matches(t))return!0;return!1}equals(e){return this.string===e.string}get isZIP(){return this.matchesAny(l.ZIP,l.LCP_PROTECTED_AUDIOBOOK,l.LCP_PROTECTED_PDF)||this.structuredSyntaxSuffix==="+zip"}get isJSON(){return this.matchesAny(l.JSON)||this.structuredSyntaxSuffix==="+json"}get isOPDS(){return this.matchesAny(l.OPDS1,l.OPDS1_ENTRY,l.OPDS2,l.OPDS2_PUBLICATION,l.OPDS_AUTHENTICATION)||this.structuredSyntaxSuffix==="+json"}get isHTML(){return this.matchesAny(l.HTML,l.XHTML)}get isBitmap(){return this.matchesAny(l.BMP,l.GIF,l.JPEG,l.PNG,l.TIFF,l.WEBP)}get isAudio(){return this.type==="audio"}get isVideo(){return this.type==="video"}get isRWPM(){return this.matchesAny(l.READIUM_AUDIOBOOK_MANIFEST,l.DIVINA_MANIFEST,l.READIUM_WEBPUB_MANIFEST)}get isPublication(){return this.matchesAny(l.READIUM_AUDIOBOOK,l.READIUM_AUDIOBOOK_MANIFEST,l.CBZ,l.DIVINA,l.DIVINA_MANIFEST,l.EPUB,l.LCP_PROTECTED_AUDIOBOOK,l.LCP_PROTECTED_PDF,l.LPF,l.PDF,l.W3C_WPUB_MANIFEST,l.READIUM_WEBPUB,l.READIUM_WEBPUB_MANIFEST,l.ZAB)}static get AAC(){return l.parse({mediaType:"audio/aac",fileExtension:"aac"})}static get ACSM(){return l.parse({mediaType:"application/vnd.adobe.adept+xml",name:"Adobe Content Server Message",fileExtension:"acsm"})}static get AIFF(){return l.parse({mediaType:"audio/aiff",fileExtension:"aiff"})}static get AVI(){return l.parse({mediaType:"video/x-msvideo",fileExtension:"avi"})}static get BINARY(){return l.parse({mediaType:"application/octet-stream"})}static get BMP(){return l.parse({mediaType:"image/bmp",fileExtension:"bmp"})}static get CBZ(){return l.parse({mediaType:"application/vnd.comicbook+zip",name:"Comic Book Archive",fileExtension:"cbz"})}static get CSS(){return l.parse({mediaType:"text/css",fileExtension:"css"})}static get DIVINA(){return l.parse({mediaType:"application/divina+zip",name:"Digital Visual Narratives",fileExtension:"divina"})}static get DIVINA_MANIFEST(){return l.parse({mediaType:"application/divina+json",name:"Digital Visual Narratives",fileExtension:"json"})}static get EPUB(){return l.parse({mediaType:"application/epub+zip",name:"EPUB",fileExtension:"epub"})}static get GIF(){return l.parse({mediaType:"image/gif",fileExtension:"gif"})}static get GZ(){return l.parse({mediaType:"application/gzip",fileExtension:"gz"})}static get HTML(){return l.parse({mediaType:"text/html",fileExtension:"html"})}static get JAVASCRIPT(){return l.parse({mediaType:"text/javascript",fileExtension:"js"})}static get JPEG(){return l.parse({mediaType:"image/jpeg",fileExtension:"jpeg"})}static get JSON(){return l.parse({mediaType:"application/json"})}static get LCP_LICENSE_DOCUMENT(){return l.parse({mediaType:"application/vnd.readium.lcp.license.v1.0+json",name:"LCP License",fileExtension:"lcpl"})}static get LCP_PROTECTED_AUDIOBOOK(){return l.parse({mediaType:"application/audiobook+lcp",name:"LCP Protected Audiobook",fileExtension:"lcpa"})}static get LCP_PROTECTED_PDF(){return l.parse({mediaType:"application/pdf+lcp",name:"LCP Protected PDF",fileExtension:"lcpdf"})}static get LCP_STATUS_DOCUMENT(){return l.parse({mediaType:"application/vnd.readium.license.status.v1.0+json"})}static get LPF(){return l.parse({mediaType:"application/lpf+zip",fileExtension:"lpf"})}static get MP3(){return l.parse({mediaType:"audio/mpeg",fileExtension:"mp3"})}static get MPEG(){return l.parse({mediaType:"video/mpeg",fileExtension:"mpeg"})}static get NCX(){return l.parse({mediaType:"application/x-dtbncx+xml",fileExtension:"ncx"})}static get OGG(){return l.parse({mediaType:"audio/ogg",fileExtension:"oga"})}static get OGV(){return l.parse({mediaType:"video/ogg",fileExtension:"ogv"})}static get OPDS1(){return l.parse({mediaType:"application/atom+xml;profile=opds-catalog"})}static get OPDS1_ENTRY(){return l.parse({mediaType:"application/atom+xml;type=entry;profile=opds-catalog"})}static get OPDS2(){return l.parse({mediaType:"application/opds+json"})}static get OPDS2_PUBLICATION(){return l.parse({mediaType:"application/opds-publication+json"})}static get OPDS_AUTHENTICATION(){return l.parse({mediaType:"application/opds-authentication+json"})}static get OPUS(){return l.parse({mediaType:"audio/opus",fileExtension:"opus"})}static get OTF(){return l.parse({mediaType:"font/otf",fileExtension:"otf"})}static get PDF(){return l.parse({mediaType:"application/pdf",name:"PDF",fileExtension:"pdf"})}static get PNG(){return l.parse({mediaType:"image/png",fileExtension:"png"})}static get READIUM_AUDIOBOOK(){return l.parse({mediaType:"application/audiobook+zip",name:"Readium Audiobook",fileExtension:"audiobook"})}static get READIUM_AUDIOBOOK_MANIFEST(){return l.parse({mediaType:"application/audiobook+json",name:"Readium Audiobook",fileExtension:"json"})}static get READIUM_CONTENT_DOCUMENT(){return l.parse({mediaType:"application/vnd.readium.content+json",name:"Readium Content Document",fileExtension:"json"})}static get READIUM_GUIDED_NAVIGATION_DOCUMENT(){return l.parse({mediaType:"application/guided-navigation+json",name:"Readium Guided Navigation Document",fileExtension:"json"})}static get READIUM_POSITION_LIST(){return l.parse({mediaType:"application/vnd.readium.position-list+json",name:"Readium Position List",fileExtension:"json"})}static get READIUM_WEBPUB(){return l.parse({mediaType:"application/webpub+zip",name:"Readium Web Publication",fileExtension:"webpub"})}static get READIUM_WEBPUB_MANIFEST(){return l.parse({mediaType:"application/webpub+json",name:"Readium Web Publication",fileExtension:"json"})}static get SMIL(){return l.parse({mediaType:"application/smil+xml",fileExtension:"smil"})}static get SVG(){return l.parse({mediaType:"image/svg+xml",fileExtension:"svg"})}static get TEXT(){return l.parse({mediaType:"text/plain",fileExtension:"txt"})}static get TIFF(){return l.parse({mediaType:"image/tiff",fileExtension:"tiff"})}static get TTF(){return l.parse({mediaType:"font/ttf",fileExtension:"ttf"})}static get W3C_WPUB_MANIFEST(){return l.parse({mediaType:"application/x.readium.w3c.wpub+json",name:"Web Publication",fileExtension:"json"})}static get WAV(){return l.parse({mediaType:"audio/wav",fileExtension:"wav"})}static get WEBM_AUDIO(){return l.parse({mediaType:"audio/webm",fileExtension:"webm"})}static get WEBM_VIDEO(){return l.parse({mediaType:"video/webm",fileExtension:"webm"})}static get WEBP(){return l.parse({mediaType:"image/webp",fileExtension:"webp"})}static get WOFF(){return l.parse({mediaType:"font/woff",fileExtension:"woff"})}static get WOFF2(){return l.parse({mediaType:"font/woff2",fileExtension:"woff2"})}static get XHTML(){return l.parse({mediaType:"application/xhtml+xml",fileExtension:"xhtml"})}static get XML(){return l.parse({mediaType:"application/xml",fileExtension:"xml"})}static get ZAB(){return l.parse({mediaType:"application/x.readium.zab+zip",name:"Zipped Audio Book",fileExtension:"zab"})}static get ZIP(){return l.parse({mediaType:"application/zip",fileExtension:"zip"})}}class De{constructor(e){this.uri=e,this.parameters=this.getParameters(e)}getParameters(e){const t=/\{\??([^}]+)\}/g,r=e.match(t);return r?new Set(r.join(",").replace(t,"$1").split(",").map(s=>s.trim())):new Set}expand(e){const t=s=>s.split(",").map(n=>{const o=e[n];return o?encodeURIComponent(o):""}).join(","),r=s=>"?"+s.split(",").map(n=>{const o=n.split("=")[0],a=e[o];return a?`${o}=${encodeURIComponent(a)}`:""}).join("&");return this.uri.replace(/\{(\??)([^}]+)\}/g,(...s)=>s[1]?r(s[2]):t(s[2]))}}function Bt(i){return i&&i instanceof Array?i:void 0}function Be(i){return i&&typeof i=="string"?[i]:Bt(i)}function We(i){return typeof i=="string"?new Date(i):void 0}function K(i){return isNaN(i)?void 0:i}function C(i){return K(i)!==void 0&&Math.sign(i)>=0?i:void 0}function Wt(i){const e=new Array;return i.forEach(t=>e.push(t)),e}class T{constructor(e){this.fragments=e.fragments?e.fragments:new Array,this.progression=e.progression,this.totalProgression=e.totalProgression,this.position=e.position,this.otherLocations=e.otherLocations}static deserialize(e){if(!e)return;const t=K(e.progression),r=K(e.totalProgression),s=K(e.position),n=new Map,o=new Set(["fragment","fragments","progression","totalProgression","position"]);return Object.entries(e).forEach(([a,h])=>{o.has(a)||n.set(a,h)}),new T({fragments:Be(e.fragments||e.fragment),progression:t!==void 0&&t>=0&&t<=1?t:void 0,totalProgression:r!==void 0&&r>=0&&r<=1?r:void 0,position:s!==void 0&&s>0?s:void 0,otherLocations:n.size===0?void 0:n})}serialize(){const e={};return this.fragments&&(e.fragments=this.fragments),this.progression!==void 0&&(e.progression=this.progression),this.totalProgression!==void 0&&(e.totalProgression=this.totalProgression),this.position!==void 0&&(e.position=this.position),this.otherLocations&&this.otherLocations.forEach((t,r)=>e[r]=t),e}}class ${constructor(e){this.after=e.after,this.before=e.before,this.highlight=e.highlight}static deserialize(e){if(e)return new $({after:e.after,before:e.before,highlight:e.highlight})}serialize(){const e={};return this.after!==void 0&&(e.after=this.after),this.before!==void 0&&(e.before=this.before),this.highlight!==void 0&&(e.highlight=this.highlight),e}}class z{constructor(e){this.href=e.href,this.type=e.type,this.title=e.title,this.locations=e.locations?e.locations:new T({}),this.text=e.text}static deserialize(e){if(e&&e.href&&e.type)return new z({href:e.href,type:e.type,title:e.title,locations:T.deserialize(e.locations),text:$.deserialize(e.text)})}serialize(){const e={href:this.href,type:this.type};return this.title!==void 0&&(e.title=this.title),this.locations&&(e.locations=this.locations.serialize()),this.text&&(e.text=this.text.serialize()),e}copyWithLocations(e){return new z({href:this.href,type:this.type,title:this.title,text:this.text,locations:new T({...this.locations,...e})})}}class j{constructor(e){this.href=e.href,this.templated=e.templated,this.type=e.type,this.title=e.title,this.rels=e.rels,this.properties=e.properties,this.height=e.height,this.width=e.width,this.duration=e.duration,this.bitrate=e.bitrate,this.languages=e.languages,this.alternates=e.alternates,this.children=e.children}static deserialize(e){if(e&&e.href&&typeof e.href=="string")return new j({href:e.href,templated:e.templated,type:e.type,title:e.title,rels:e.rel?e.rel instanceof Array?new Set(e.rel):new Set([e.rel]):void 0,properties:b.deserialize(e.properties),height:C(e.height),width:C(e.width),duration:C(e.duration),bitrate:C(e.bitrate),languages:Be(e.language),alternates:Q.deserialize(e.alternate),children:Q.deserialize(e.children)})}serialize(){const e={href:this.href};return this.templated!==void 0&&(e.templated=this.templated),this.type!==void 0&&(e.type=this.type),this.title!==void 0&&(e.title=this.title),this.rels&&(e.rel=Wt(this.rels)),this.properties&&(e.properties=this.properties.serialize()),this.height!==void 0&&(e.height=this.height),this.width!==void 0&&(e.width=this.width),this.duration!==void 0&&(e.duration=this.duration),this.bitrate!==void 0&&(e.bitrate=this.bitrate),this.languages&&(e.language=this.languages),this.alternates&&(e.alternate=this.alternates.serialize()),this.children&&(e.children=this.children.serialize()),e}get mediaType(){return this.type!==void 0?l.parse({mediaType:this.type}):l.BINARY}toURL(e){const t=this.href.replace(/^(\/)/,"");if(t.length===0)return;let r=e||"/";return r.startsWith("/")&&(r="file://"+r),new URL(t,r).href.replace(/^(file:\/\/)/,"")}get templateParameters(){return this.templated?new De(this.href).parameters:new Set}expandTemplate(e){return new j({href:new De(this.href).expand(e),templated:!1})}addProperties(e){var t;const r=j.deserialize(this.serialize());return r.properties=r.properties?(t=r.properties)==null?void 0:t.add(e):new b(e),r}get locator(){let e=this.href.split("#");return new z({href:e.length>0&&e[0]!==void 0?e[0]:this.href,type:this.type??"",title:this.title,locations:new T({fragments:e.length>1&&e[1]!==void 0?[e[1]]:[]})})}}class Q{constructor(e){this.items=e}static deserialize(e){if(e&&e instanceof Array)return new Q(e.map(t=>j.deserialize(t)).filter(t=>t!==void 0))}serialize(){return this.items.map(e=>e.serialize())}findWithRel(e){const t=r=>r.rels&&r.rels.has(e);return this.items.find(t)}filterByRel(e){const t=r=>r.rels&&r.rels.has(e);return this.items.filter(t)}findWithHref(e){const t=r=>r.href===e;return this.items.find(t)}findIndexWithHref(e){const t=r=>r.href===e;return this.items.findIndex(t)}findWithMediaType(e){const t=r=>r.mediaType.matches(e);return this.items.find(t)}filterByMediaType(e){const t=r=>r.mediaType.matches(e);return this.items.filter(t)}filterByMediaTypes(e){const t=r=>{for(const s of e)if(r.mediaType.matches(s))return!0;return!1};return this.items.filter(t)}everyIsAudio(){const e=t=>t.mediaType.isAudio;return this.items.length>0&&this.items.every(e)}everyIsBitmap(){const e=t=>t.mediaType.isBitmap;return this.items.length>0&&this.items.every(e)}everyIsHTML(){const e=t=>t.mediaType.isHTML;return this.items.length>0&&this.items.every(e)}everyIsVideo(){const e=t=>t.mediaType.isVideo;return this.items.length>0&&this.items.every(e)}everyMatchesMediaType(e){return Array.isArray(e)?this.items.length>0&&this.items.every(t=>{for(const r of e)return t.mediaType.matches(r);return!1}):this.items.length>0&&this.items.every(t=>t.mediaType.matches(e))}filterLinksHasType(){return this.items.filter(e=>e.type)}}class ee{constructor(e){this.cssSelector=e.cssSelector,this.textNodeIndex=e.textNodeIndex,this.charOffset=e.charOffset}static deserialize(e){if(!(e&&e.cssSelector))return;let t=C(e.textNodeIndex);if(t===void 0)return;let r=C(e.charOffset);return r===void 0&&(r=C(e.offset)),new ee({cssSelector:e.cssSelector,textNodeIndex:t,charOffset:r})}serialize(){const e={cssSelector:this.cssSelector,textNodeIndex:this.textNodeIndex};return this.charOffset!==void 0&&(e.charOffset=this.charOffset),e}}class fe{constructor(e){this.start=e.start,this.end=e.end}static deserialize(e){if(!e)return;let t=ee.deserialize(e.start);if(t)return new fe({start:t,end:ee.deserialize(e.end)})}serialize(){const e={start:this.start.serialize()};return this.end&&(e.end=this.end.serialize()),e}}T.prototype.getCssSelector=function(){var i;return(i=this.otherLocations)==null?void 0:i.get("cssSelector")},T.prototype.getPartialCfi=function(){var i;return(i=this.otherLocations)==null?void 0:i.get("partialCfi")},T.prototype.getDomRange=function(){var i;return fe.deserialize((i=this.otherLocations)==null?void 0:i.get("domRange"))},T.prototype.fragmentParameters=function(){return new Map(this.fragments.map(i=>i.startsWith("#")?i.slice(1):i).join("&").split("&").filter(i=>!i.startsWith("#")).map(i=>i.split("=")).filter(i=>i.length===2).map(i=>[i[0].trim().toLowerCase(),i[1].trim()]))},T.prototype.htmlId=function(){if(!this.fragments.length)return;let i=this.fragments.find(e=>e.length&&!e.includes("="));if(!i){const e=this.fragmentParameters();e.has("id")?i=e.get("id"):e.has("name")&&(i=e.get("name"))}return i!=null&&i.startsWith("#")?i.slice(1):i},T.prototype.page=function(){const i=parseInt(this.fragmentParameters().get("page"));if(!isNaN(i)&&i>=0)return i},T.prototype.time=function(){const i=parseInt(this.fragmentParameters().get("t"));if(!isNaN(i))return i},T.prototype.space=function(){const i=this.fragmentParameters();if(!i.has("xywh"))return;const e=i.get("xywh").split(",").map(t=>parseInt(t));if(e.length===4&&!e.some(isNaN))return e};class me{constructor(e){this.currency=e.currency,this.value=e.value}static deserialize(e){if(!e)return;let t=e.currency;if(!(t&&typeof t=="string"&&t.length>0))return;let r=C(e.value);if(r!==void 0)return new me({currency:t,value:r})}serialize(){return{currency:this.currency,value:this.value}}}class X{constructor(e){this.type=e.type,this.children=e.children}static deserialize(e){if(e&&e.type)return new X({type:e.type,children:X.deserializeArray(e.children)})}static deserializeArray(e){if(e instanceof Array)return e.map(t=>X.deserialize(t)).filter(t=>t!==void 0)}serialize(){const e={type:this.type};return this.children&&(e.children=this.children.map(t=>t.serialize())),e}}class ge{constructor(e){this.total=e.total,this.position=e.position}static deserialize(e){if(e)return new ge({total:C(e.total),position:C(e.position)})}serialize(){const e={};return this.total!==void 0&&(e.total=this.total),this.position!==void 0&&(e.position=this.position),e}}class ve{constructor(e){this.total=e.total,this.available=e.available}static deserialize(e){if(e)return new ve({total:C(e.total),available:C(e.available)})}serialize(){const e={};return this.total!==void 0&&(e.total=this.total),this.available!==void 0&&(e.available=this.available),e}}class ye{constructor(e){this.state=e.state,this.since=e.since,this.until=e.until}static deserialize(e){if(e&&e.state)return new ye({state:e.state,since:We(e.since),until:We(e.until)})}serialize(){const e={state:this.state};return this.since!==void 0&&(e.since=this.since.toISOString()),this.until!==void 0&&(e.until=this.until.toISOString()),e}}b.prototype.getNumberOfItems=function(){return C(this.otherProperties.numberOfItems)},b.prototype.getPrice=function(){return me.deserialize(this.otherProperties.price)},b.prototype.getIndirectAcquisitions=function(){const i=this.otherProperties.indirectAcquisition;if(i&&i instanceof Array)return i.map(e=>X.deserialize(e)).filter(e=>e!==void 0)},b.prototype.getHolds=function(){return ge.deserialize(this.otherProperties.holds)},b.prototype.getCopies=function(){return ve.deserialize(this.otherProperties.copies)},b.prototype.getAvailability=function(){return ye.deserialize(this.otherProperties.availability)},b.prototype.getAuthenticate=function(){return j.deserialize(this.otherProperties.authenticate)},b.prototype.getClipped=function(){return this.otherProperties.clipped},b.prototype.getFit=function(){return this.otherProperties.fit},b.prototype.getOrientation=function(){return this.otherProperties.orientation},b.prototype.getOverflow=function(){return this.otherProperties.overflow},b.prototype.getPage=function(){return this.otherProperties.page||void 0},b.prototype.getSpread=function(){return this.otherProperties.spread||void 0};class G{}function Fe(i){return i.split("").reverse().join("")}function Ft(i,e,t){const r=Fe(e);return t.map(s=>{const n=Math.max(0,s.end-e.length-s.errors),o=Fe(i.slice(n,s.end));return{start:Ue(o,r,s.errors).reduce((h,c)=>s.end-c.end>31&1}function ke(i,e,t,r){let s=i.P[t],n=i.M[t];const o=r>>>31,a=e[t]|o,h=a|n,c=(a&s)+s^s|a;let d=n|~(c|s),p=s&c;const u=be(d&i.lastRowMask[t])-be(p&i.lastRowMask[t]);return d<<=1,p<<=1,p|=o,d|=be(r)-o,s=p|~(h|d),n=d&h,i.P[t]=s,i.M[t]=n,u}function Ue(i,e,t){if(e.length===0)return[];t=Math.min(t,e.length);const r=[],s=32,n=Math.ceil(e.length/s)-1,o={P:new Uint32Array(n+1),M:new Uint32Array(n+1),lastRowMask:new Uint32Array(n+1)};o.lastRowMask.fill(1<<31),o.lastRowMask[n]=1<<(e.length-1)%s;const a=new Uint32Array(n+1),h=new Map,c=[];for(let u=0;u<256;u++)c.push(a);for(let u=0;u=e.length)continue;e.charCodeAt(x)===f&&(v[g]|=1<"u"&&(v=a));let g=0;for(let y=0;y<=d;y+=1)g=ke(o,v,y,g),p[y]+=g;if(p[d]-g<=t&&d0&&p[d]>=t+s;)d-=1;d===n&&p[d]<=t&&(p[d]0?s:kt(i,e,t)}function $e(i,e){return e.length===0||i.length===0?0:1-He(i,e,e.length)[0].errors/e.length}function Ut(i,e,t={}){if(e.length===0)return null;const r=Math.min(256,e.length/2),s=He(i,e,r);if(s.length===0)return null;const n=a=>{const u=1-a.errors/e.length,f=t.prefix?$e(i.slice(Math.max(0,a.start-t.prefix.length),a.start),t.prefix):1,v=t.suffix?$e(i.slice(a.end,a.end+t.suffix.length),t.suffix):1;let g=1;typeof t.hint=="number"&&(g=1-Math.abs(a.start-t.hint)/i.length);const y=50*u+20*f+20*v+2*g,x=50+20+20+2;return y/x},o=s.map(a=>({start:a.start,end:a.end,score:n(a)}));return o.sort((a,h)=>h.score-a.score),o[0]}function Ee(i,e,t){const r=t===1?e:e-1;if(i.charAt(r).trim()!=="")return e;let s,n;if(t===2?(s=i.substring(0,e),n=s.trimEnd()):(s=i.substring(e),n=s.trimStart()),!n.length)return-1;const o=s.length-n.length;return t===2?e-o:e+o}function je(i,e){const t=i.commonAncestorContainer.ownerDocument.createNodeIterator(i.commonAncestorContainer,NodeFilter.SHOW_TEXT),r=e===1?i.startContainer:i.endContainer,s=e===1?i.endContainer:i.startContainer;let n=t.nextNode();for(;n&&n!==r;)n=t.nextNode();e===2&&(n=t.previousNode());let o=-1;const a=()=>{if(n=e===1?t.nextNode():t.previousNode(),n){const h=n.textContent,c=e===1?0:h.length;o=Ee(h,c,e)}};for(;n&&o===-1&&n!==s;)a();if(n&&o>=0)return{node:n,offset:o};throw new RangeError("No text nodes with non-whitespace text found in range")}function Ht(i){if(!i.toString().trim().length)throw new RangeError("Range contains no non-whitespace text");if(i.startContainer.nodeType!==Node.TEXT_NODE)throw new RangeError("Range startContainer is not a text node");if(i.endContainer.nodeType!==Node.TEXT_NODE)throw new RangeError("Range endContainer is not a text node");const e=i.cloneRange();let t=!1,r=!1;const s={start:Ee(i.startContainer.textContent,i.startOffset,1),end:Ee(i.endContainer.textContent,i.endOffset,2)};if(s.start>=0&&(e.setStart(i.startContainer,s.start),t=!0),s.end>0&&(e.setEnd(i.endContainer,s.end),r=!0),t&&r)return e;if(!t){const{node:n,offset:o}=je(e,1);n&&o>=0&&e.setStart(n,o)}if(!r){const{node:n,offset:o}=je(e,2);n&&o>0&&e.setEnd(n,o)}return e}function qe(i){var e;switch(i.nodeType){case Node.ELEMENT_NODE:case Node.TEXT_NODE:return((e=i.textContent)==null?void 0:e.length)??0;default:return 0}}function _e(i){let e=i.previousSibling,t=0;for(;e;)t+=qe(e),e=e.previousSibling;return t}function Ve(i,...e){let t=e.shift();const r=i.ownerDocument.createNodeIterator(i,NodeFilter.SHOW_TEXT),s=[];let n=r.nextNode(),o,a=0;for(;t!==void 0&&n;)o=n,a+o.data.length>t?(s.push({node:o,offset:t-a}),t=e.shift()):(n=r.nextNode(),a+=o.data.length);for(;t!==void 0&&o&&a===t;)s.push({node:o,offset:o.data.length}),t=e.shift();if(t!==void 0)throw new RangeError("Offset exceeds text length");return s}class N{constructor(e,t){if(t<0)throw new Error("Offset is invalid");this.element=e,this.offset=t}relativeTo(e){if(!e.contains(this.element))throw new Error("Parent is not an ancestor of current element");let t=this.element,r=this.offset;for(;t!==e;)r+=_e(t),t=t.parentElement;return new N(t,r)}resolve(e={}){try{return Ve(this.element,this.offset)[0]}catch(t){if(this.offset===0&&e.direction!==void 0){const r=document.createTreeWalker(this.element.getRootNode(),NodeFilter.SHOW_TEXT);r.currentNode=this.element;const s=e.direction===1,n=s?r.nextNode():r.previousNode();if(!n)throw t;return{node:n,offset:s?0:n.data.length}}else throw t}}static fromCharOffset(e,t){switch(e.nodeType){case Node.TEXT_NODE:return N.fromPoint(e,t);case Node.ELEMENT_NODE:return new N(e,t);default:throw new Error("Node is not an element or text node")}}static fromPoint(e,t){switch(e.nodeType){case Node.TEXT_NODE:{if(t<0||t>e.data.length)throw new Error("Text node offset is out of range");if(!e.parentElement)throw new Error("Text node has no parent");const r=_e(e)+t;return new N(e.parentElement,r)}case Node.ELEMENT_NODE:{if(t<0||t>e.childNodes.length)throw new Error("Child node offset is out of range");let r=0;for(let s=0;s=0;c--){const d=a[c];if(!(d.width*d.height>h))if(a.length>1)a.splice(c,1);else break}return a}function Xe(i,e,t){for(let r=0;rv!==n&&v!==o),f=qt(n,o);return u.push(f),Xe(u,e,t)}}return i}function qt(i,e){const t=Math.min(i.left,e.left),r=Math.max(i.right,e.right),s=Math.min(i.top,e.top),n=Math.max(i.bottom,e.bottom);return{bottom:n,height:n-s,left:t,right:r,top:s,width:r-t}}function _t(i,e){const t=new Set(i);for(const r of i){if(!(r.width>1&&r.height>1)){t.delete(r);continue}for(const n of i)if(r!==n&&t.has(n)&&Vt(n,r,e)){t.delete(r);break}}return Array.from(t)}function Vt(i,e,t){return re(i,e.left,e.top,t)&&re(i,e.right,e.top,t)&&re(i,e.left,e.bottom,t)&&re(i,e.right,e.bottom,t)}function re(i,e,t,r){return(i.lefte||M(i.right,e,r))&&(i.topt||M(i.bottom,t,r))}function Ge(i){for(let e=0;ec!==o);return Array.prototype.push.apply(h,n),Ge(h)}}return i}function Ye(i,e){const t=Xt(e,i);if(t.height===0||t.width===0)return[i];const r=[];{const s={bottom:i.bottom,height:0,left:i.left,right:t.left,top:i.top,width:0};s.width=s.right-s.left,s.height=s.bottom-s.top,s.height!==0&&s.width!==0&&r.push(s)}{const s={bottom:t.top,height:0,left:t.left,right:t.right,top:i.top,width:0};s.width=s.right-s.left,s.height=s.bottom-s.top,s.height!==0&&s.width!==0&&r.push(s)}{const s={bottom:i.bottom,height:0,left:t.left,right:t.right,top:t.bottom,width:0};s.width=s.right-s.left,s.height=s.bottom-s.top,s.height!==0&&s.width!==0&&r.push(s)}{const s={bottom:i.bottom,height:0,left:t.right,right:i.right,top:i.top,width:0};s.width=s.right-s.left,s.height=s.bottom-s.top,s.height!==0&&s.width!==0&&r.push(s)}return r}function Xt(i,e){const t=Math.max(i.left,e.left),r=Math.min(i.right,e.right),s=Math.max(i.top,e.top),n=Math.min(i.bottom,e.bottom);return{bottom:n,height:Math.max(0,n-s),left:t,right:r,top:s,width:Math.max(0,r-t)}}function Ze(i,e,t){return(i.left=0&&M(i.left,e.right,t))&&(e.left=0&&M(e.left,i.right,t))&&(i.top=0&&M(i.top,e.bottom,t))&&(e.top=0&&M(e.top,i.bottom,t))}function M(i,e,t){return Math.abs(i-e)<=t}var B=[],Gt=function(){return B.some(function(i){return i.activeTargets.length>0})},Yt=function(){return B.some(function(i){return i.skippedTargets.length>0})},Je="ResizeObserver loop completed with undelivered notifications.",Zt=function(){var i;typeof ErrorEvent=="function"?i=new ErrorEvent("error",{message:Je}):(i=document.createEvent("Event"),i.initEvent("error",!1,!1),i.message=Je),window.dispatchEvent(i)},Y;(function(i){i.BORDER_BOX="border-box",i.CONTENT_BOX="content-box",i.DEVICE_PIXEL_CONTENT_BOX="device-pixel-content-box"})(Y||(Y={}));var W=function(i){return Object.freeze(i)},Jt=function(){function i(e,t){this.inlineSize=e,this.blockSize=t,W(this)}return i}(),Ke=function(){function i(e,t,r,s){return this.x=e,this.y=t,this.width=r,this.height=s,this.top=this.y,this.left=this.x,this.bottom=this.top+this.height,this.right=this.left+this.width,W(this)}return i.prototype.toJSON=function(){var e=this,t=e.x,r=e.y,s=e.top,n=e.right,o=e.bottom,a=e.left,h=e.width,c=e.height;return{x:t,y:r,top:s,right:n,bottom:o,left:a,width:h,height:c}},i.fromRect=function(e){return new i(e.x,e.y,e.width,e.height)},i}(),we=function(i){return i instanceof SVGElement&&"getBBox"in i},Qe=function(i){if(we(i)){var e=i.getBBox(),t=e.width,r=e.height;return!t&&!r}var s=i,n=s.offsetWidth,o=s.offsetHeight;return!(n||o||i.getClientRects().length)},et=function(i){var e;if(i instanceof Element)return!0;var t=(e=i==null?void 0:i.ownerDocument)===null||e===void 0?void 0:e.defaultView;return!!(t&&i instanceof t.Element)},Kt=function(i){switch(i.tagName){case"INPUT":if(i.type!=="image")break;case"VIDEO":case"AUDIO":case"EMBED":case"OBJECT":case"CANVAS":case"IFRAME":case"IMG":return!0}return!1},Z=typeof window<"u"?window:{},se=new WeakMap,tt=/auto|scroll/,Qt=/^tb|vertical/,ei=/msie|trident/i.test(Z.navigator&&Z.navigator.userAgent),L=function(i){return parseFloat(i||"0")},q=function(i,e,t){return i===void 0&&(i=0),e===void 0&&(e=0),t===void 0&&(t=!1),new Jt((t?e:i)||0,(t?i:e)||0)},it=W({devicePixelContentBoxSize:q(),borderBoxSize:q(),contentBoxSize:q(),contentRect:new Ke(0,0,0,0)}),rt=function(i,e){if(e===void 0&&(e=!1),se.has(i)&&!e)return se.get(i);if(Qe(i))return se.set(i,it),it;var t=getComputedStyle(i),r=we(i)&&i.ownerSVGElement&&i.getBBox(),s=!ei&&t.boxSizing==="border-box",n=Qt.test(t.writingMode||""),o=!r&&tt.test(t.overflowY||""),a=!r&&tt.test(t.overflowX||""),h=r?0:L(t.paddingTop),c=r?0:L(t.paddingRight),d=r?0:L(t.paddingBottom),p=r?0:L(t.paddingLeft),u=r?0:L(t.borderTopWidth),f=r?0:L(t.borderRightWidth),v=r?0:L(t.borderBottomWidth),g=r?0:L(t.borderLeftWidth),y=p+c,x=h+d,O=g+f,m=u+v,E=a?i.offsetHeight-m-i.clientHeight:0,A=o?i.offsetWidth-O-i.clientWidth:0,he=s?y+O:0,ce=s?x+m:0,k=r?r.width:L(t.width)-he-A,U=r?r.height:L(t.height)-ce-E,de=k+y+A+O,ue=U+x+E+m,_=W({devicePixelContentBoxSize:q(Math.round(k*devicePixelRatio),Math.round(U*devicePixelRatio),n),borderBoxSize:q(de,ue,n),contentBoxSize:q(k,U,n),contentRect:new Ke(p,h,k,U)});return se.set(i,_),_},st=function(i,e,t){var r=rt(i,t),s=r.borderBoxSize,n=r.contentBoxSize,o=r.devicePixelContentBoxSize;switch(e){case Y.DEVICE_PIXEL_CONTENT_BOX:return o;case Y.BORDER_BOX:return s;default:return n}},ti=function(){function i(e){var t=rt(e);this.target=e,this.contentRect=t.contentRect,this.borderBoxSize=W([t.borderBoxSize]),this.contentBoxSize=W([t.contentBoxSize]),this.devicePixelContentBoxSize=W([t.devicePixelContentBoxSize])}return i}(),nt=function(i){if(Qe(i))return 1/0;for(var e=0,t=i.parentNode;t;)e+=1,t=t.parentNode;return e},ii=function(){var i=1/0,e=[];B.forEach(function(o){if(o.activeTargets.length!==0){var a=[];o.activeTargets.forEach(function(c){var d=new ti(c.target),p=nt(c.target);a.push(d),c.lastReportedSize=st(c.target,c.observedBox),pi?t.activeTargets.push(s):t.skippedTargets.push(s))})})},ri=function(){var i=0;for(ot(i);Gt();)i=ii(),ot(i);return Yt()&&Zt(),i>0},Te,at=[],si=function(){return at.splice(0).forEach(function(i){return i()})},ni=function(i){if(!Te){var e=0,t=document.createTextNode(""),r={characterData:!0};new MutationObserver(function(){return si()}).observe(t,r),Te=function(){t.textContent="".concat(e?e--:e++)}}at.push(i),Te()},oi=function(i){ni(function(){requestAnimationFrame(i)})},ne=0,ai=function(){return!!ne},li=250,hi={attributes:!0,characterData:!0,childList:!0,subtree:!0},lt=["resize","load","transitionend","animationend","animationstart","animationiteration","keyup","keydown","mouseup","mousedown","mouseover","mouseout","blur","focus"],ht=function(i){return i===void 0&&(i=0),Date.now()+i},Se=!1,ci=function(){function i(){var e=this;this.stopped=!0,this.listener=function(){return e.schedule()}}return i.prototype.run=function(e){var t=this;if(e===void 0&&(e=li),!Se){Se=!0;var r=ht(e);oi(function(){var s=!1;try{s=ri()}finally{if(Se=!1,e=r-ht(),!ai())return;s?t.run(1e3):e>0?t.run(e):t.start()}})}},i.prototype.schedule=function(){this.stop(),this.run()},i.prototype.observe=function(){var e=this,t=function(){return e.observer&&e.observer.observe(document.body,hi)};document.body?t():Z.addEventListener("DOMContentLoaded",t)},i.prototype.start=function(){var e=this;this.stopped&&(this.stopped=!1,this.observer=new MutationObserver(this.listener),this.observe(),lt.forEach(function(t){return Z.addEventListener(t,e.listener,!0)}))},i.prototype.stop=function(){var e=this;this.stopped||(this.observer&&this.observer.disconnect(),lt.forEach(function(t){return Z.removeEventListener(t,e.listener,!0)}),this.stopped=!0)},i}(),Ce=new ci,ct=function(i){!ne&&i>0&&Ce.start(),ne+=i,!ne&&Ce.stop()},di=function(i){return!we(i)&&!Kt(i)&&getComputedStyle(i).display==="inline"},ui=function(){function i(e,t){this.target=e,this.observedBox=t||Y.CONTENT_BOX,this.lastReportedSize={inlineSize:0,blockSize:0}}return i.prototype.isActive=function(){var e=st(this.target,this.observedBox,!0);return di(this.target)&&(this.lastReportedSize=e),this.lastReportedSize.inlineSize!==e.inlineSize||this.lastReportedSize.blockSize!==e.blockSize},i}(),pi=function(){function i(e,t){this.activeTargets=[],this.skippedTargets=[],this.observationTargets=[],this.observer=e,this.callback=t}return i}(),oe=new WeakMap,dt=function(i,e){for(var t=0;t=0&&(n&&B.splice(B.indexOf(r),1),r.observationTargets.splice(s,1),ct(-1))},i.disconnect=function(e){var t=this,r=oe.get(e);r.observationTargets.slice().forEach(function(s){return t.unobserve(e,s.target)}),r.activeTargets.splice(0,r.activeTargets.length)},i}(),ut=function(){function i(e){if(arguments.length===0)throw new TypeError("Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.");if(typeof e!="function")throw new TypeError("Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.");ae.connect(this,e)}return i.prototype.observe=function(e,t){if(arguments.length===0)throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!et(e))throw new TypeError("Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element");ae.observe(this,e,t)},i.prototype.unobserve=function(e){if(arguments.length===0)throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.");if(!et(e))throw new TypeError("Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element");ae.unobserve(this,e)},i.prototype.disconnect=function(){ae.disconnect(this)},i.toString=function(){return"function ResizeObserver () { [polyfill code] }"},i}();function fi(i,e){return i.document.documentElement.style.getPropertyValue(e)}function Oe(i,e,t){i.document.documentElement.style.setProperty(e,t)}function pt(i,e){i.document.documentElement.style.removeProperty(e)}const mi=window.ResizeObserver||ut;var ft=(i=>(i.Wrap="wrap",i.Viewport="viewport",i.Bounds="bounds",i.Page="page",i))(ft||{}),mt=(i=>(i.Boxes="boxes",i.Bounds="bounds",i))(mt||{});const gi="Highlight"in window,gt=["IMG","IMAGE","AUDIO","VIDEO","SVG"];class vi{constructor(e,t,r,s){this.wnd=e,this.comms=t,this.id=r,this.name=s,this.items=[],this.lastItemId=0,this.container=void 0,this.activateable=!1,this.experimentalHighlights=!1,this.currentRender=0,gi&&(this.experimentalHighlights=!0,this.notTextFlag=new Map)}get activeable(){return this.activateable}set activeable(e){this.activateable=e}add(e){var o,a,h,c;const t=`${this.id}-${this.lastItemId++}`,r=xe(this.wnd.document,e.locator);if(!r){this.comms.log("Can't locate DOM range for decoration",e);return}const s=r.commonAncestorContainer;s.nodeType!==Node.TEXT_NODE&&this.experimentalHighlights&&(gt.includes(s.nodeName.toUpperCase())&&((o=this.notTextFlag)==null||o.set(t,!0)),s.querySelector(gt.join(", ").toLowerCase())&&((a=this.notTextFlag)==null||a.set(t,!0)),(((h=s.textContent)==null?void 0:h.trim())||"").length===0&&((c=this.notTextFlag)==null||c.set(t,!0)));const n={decoration:e,id:t,range:r};this.items.push(n),this.layout(n),this.renderLayout([n])}remove(e){var s,n;const t=this.items.findIndex(o=>o.decoration.id===e);if(t<0)return;const r=this.items[t];if(this.items.splice(t,1),r.clickableElements=void 0,r.container&&(r.container.remove(),r.container=void 0),this.experimentalHighlights&&!((s=this.notTextFlag)!=null&&s.has(r.id))){const o=this.wnd.CSS.highlights.get(this.id);o==null||o.delete(r.range)}(n=this.notTextFlag)==null||n.delete(r.id)}update(e){this.remove(e.id),this.add(e)}clear(){var e;this.clearContainer(),this.items.length=0,(e=this.notTextFlag)==null||e.clear()}requestLayout(){this.wnd.cancelAnimationFrame(this.currentRender),this.clearContainer(),this.items.forEach(e=>this.layout(e)),this.renderLayout(this.items)}experimentalLayout(e){var s,n;const[t,r]=this.requireContainer(!0);r.add(e.range),t.innerHTML=` ::highlight(${this.id}) { color: black; background-color: ${((n=(s=e.decoration)==null?void 0:s.style)==null?void 0:n.tint)??"yellow"}; }`}layout(e){var v,g,y,x,O;if(this.experimentalHighlights&&!((v=this.notTextFlag)!=null&&v.has(e.id)))return this.experimentalLayout(e);const t=this.wnd.document.createElement("div");t.setAttribute("id",e.id),t.style.setProperty("pointer-events","none");const r=this.wnd.innerWidth,s=parseInt(getComputedStyle(this.wnd.document.documentElement).getPropertyValue("column-count")),n=r/(s||1),o=this.wnd.document.scrollingElement,a=o.scrollLeft,h=o.scrollTop,c=(m,E,A)=>{var he,ce,k,U,de,ue;if(m.style.position="absolute",((ce=(he=e.decoration)==null?void 0:he.style)==null?void 0:ce.width)==="viewport"){m.style.width=`${r}px`,m.style.height=`${E.height}px`;let _=Math.floor(E.left/r)*r;m.style.left=`${_+a}px`,m.style.top=`${E.top+h}px`}else if(((U=(k=e.decoration)==null?void 0:k.style)==null?void 0:U.width)==="bounds")m.style.width=`${A.width}px`,m.style.height=`${E.height}px`,m.style.left=`${A.left+a}px`,m.style.top=`${E.top+h}px`;else if(((ue=(de=e.decoration)==null?void 0:de.style)==null?void 0:ue.width)==="page"){m.style.width=`${n}px`,m.style.height=`${E.height}px`;let _=Math.floor(E.left/n)*n;m.style.left=`${_+a}px`,m.style.top=`${E.top+h}px`}else m.style.width=`${E.width}px`,m.style.height=`${E.height}px`,m.style.left=`${E.left+a}px`,m.style.top=`${E.top+h}px`},d=e.range.getBoundingClientRect();let p=this.wnd.document.createElement("template");const u=fi(this.wnd,"--USER__appearance")==="readium-night-on";p.innerHTML=`
`.trim();const f=p.content.firstElementChild;if(((O=(x=e.decoration)==null?void 0:x.style)==null?void 0:O.layout)==="bounds"){const m=f.cloneNode(!0);m.style.setProperty("pointer-events","none"),c(m,d,d),t.append(m)}else{let m=jt(e.range,!0);m=m.sort((E,A)=>E.topA.top?1:0);for(let E of m){const A=f.cloneNode(!0);A.style.setProperty("pointer-events","none"),c(A,E,d),t.append(A)}}e.container=t,e.clickableElements=Array.from(t.querySelectorAll("[data-activable='1']")),e.clickableElements.length||(e.clickableElements=Array.from(t.children))}renderLayout(e){this.wnd.cancelAnimationFrame(this.currentRender),this.currentRender=this.wnd.requestAnimationFrame(()=>{if(e=e.filter(r=>{var s;return!this.experimentalHighlights||!!((s=this.notTextFlag)!=null&&s.has(r.id))}),!e||e.length===0)return;this.requireContainer().append(...e.map(r=>r.container).filter(r=>!!r))})}requireContainer(e=!1){if(e){let t;this.wnd.document.getElementById(`${this.id}-style`)?t=this.wnd.document.getElementById(`${this.id}-style`):(t=this.wnd.document.createElement("style"),t.dataset.readium="true",t.id=`${this.id}-style`,this.wnd.document.head.appendChild(t));let r;return this.wnd.CSS.highlights.has(this.id)?r=this.wnd.CSS.highlights.get(this.id):(r=new this.wnd.Highlight,this.wnd.CSS.highlights.set(this.id,r)),[t,r]}return this.container||(this.container=this.wnd.document.createElement("div"),this.container.setAttribute("id",this.id),this.container.dataset.group=this.name,this.container.dataset.readium="true",this.container.style.setProperty("pointer-events","none"),this.container.style.display="contents",this.wnd.document.body.append(this.container)),this.container}clearContainer(){this.experimentalHighlights&&this.wnd.CSS.highlights.delete(this.id),this.container&&(this.container.remove(),this.container=void 0)}}const vt=class Ae extends G{constructor(){super(...arguments),this.resizeFrame=0,this.lastGroupId=0,this.groups=new Map,this.handleResizer=this.handleResize.bind(this)}cleanup(){this.groups.forEach(e=>e.clear()),this.groups.clear()}handleResize(){this.wnd.clearTimeout(this.resizeFrame),this.resizeFrame=this.wnd.setTimeout(()=>{this.groups.forEach(e=>{e.experimentalHighlights||e.requestLayout()})},50)}mount(e,t){return this.wnd=e,t.register("decorate",Ae.moduleName,(r,s)=>{const n=r;n.decoration&&n.decoration.locator&&(n.decoration.locator=z.deserialize(n.decoration.locator)),this.groups.has(n.group)||this.groups.set(n.group,new vi(e,t,`readium-decoration-${this.lastGroupId++}`,n.group));const o=this.groups.get(n.group);switch(n.action){case"add":o==null||o.add(n.decoration);break;case"remove":o==null||o.remove(n.decoration.id);break;case"clear":o==null||o.clear();break;case"update":o==null||o.update(n.decoration);break}s(!0)}),this.resizeObserver=new mi(()=>e.requestAnimationFrame(()=>this.handleResize())),this.resizeObserver.observe(e.document.body),e.addEventListener("orientationchange",this.handleResizer),e.addEventListener("resize",this.handleResizer),t.log("Decorator Mounted"),!0}unmount(e,t){return e.removeEventListener("orientationchange",this.handleResizer),e.removeEventListener("resize",this.handleResizer),t.unregisterAll(Ae.moduleName),this.resizeObserver.disconnect(),this.cleanup(),t.log("Decorator Unmounted"),!0}};vt.moduleName="decorator";let yt=vt;const bt="readium-snapper-style",Et=class Re extends G{constructor(){super(...arguments),this.protected=!1}buildStyles(){return` html, body { touch-action: manipulation; user-select: ${this.protected?"none":"auto"}; }`}mount(e,t){const r=e.document.createElement("style");return r.dataset.readium="true",r.id=bt,r.textContent=this.buildStyles(),e.document.head.appendChild(r),t.register("protect",Re.moduleName,(s,n)=>{this.protected=!0,r.textContent=this.buildStyles(),n(!0)}),t.register("unprotect",Re.moduleName,(s,n)=>{this.protected=!1,r.textContent=this.buildStyles(),n(!0)}),t.log("Snapper Mounted"),!0}unmount(e,t){var r;return(r=e.document.getElementById(bt))==null||r.remove(),t.log("Snapper Unmounted"),!0}};Et.moduleName="snapper";let xt=Et;function F(i){return i.document.body.dir.toLowerCase()==="rtl"}function wt(i){return parseInt(i.getComputedStyle(i.document.documentElement).getPropertyValue("column-count"))}function yi(i){const e="readium-virtual-page";let t=i.document.getElementById(e);if(wt(i)!==2)t&&t.remove();else{const s=i.document.scrollingElement.scrollWidth/i.innerWidth;Math.round(s*2)/2%1>.1&&(t?t.remove():(t=i.document.createElement("div"),t.setAttribute("id",e),t.dataset.readium="true",t.style.breakBefore="column",t.innerHTML="​",i.document.body.appendChild(t)))}}function bi(i){return i<.5?2*i*i:-1+(4-2*i)*i}function S(i){const e=i.getSelection();e&&e.removeAllRanges()}const Ei=["a","audio","button","canvas","details","input","label","option","select","submit","textarea","video"];function Tt(i){var e;return Ei.indexOf(i.nodeName.toLowerCase())!==-1||i.hasAttribute("contenteditable")&&((e=i.getAttribute("contenteditable"))==null?void 0:e.toLowerCase())!=="false"?i:i.parentElement?Tt(i.parentElement):null}function St(i,e){const t=Ct(i,i.document.body,e);return new z({href:"#",type:"application/xhtml+xml",locations:new T({otherLocations:new Map([["cssSelector",i._readium_cssSelectorGenerator.getCssSelector(t)]])}),text:new $({highlight:t.textContent||void 0})})}function Ct(i,e,t){for(var r=0;r0&&r.top0&&r.left0?this.doc().scrollLeft:this.alreadyScrollLeft}snapOffset(e){const t=e+(F(this.wnd)?-1:1);return t-t%this.wnd.innerWidth}reportProgress(){this.comms.send("progress",{progress:this.wnd.scrollX/this.cachedScrollWidth,reference:this.wnd.innerWidth/this.doc().scrollWidth})}shake(){if(this.overscroll!==0||this.shakeTimeout!==0)return;const e=this.doc();e.classList.add(F(this.wnd)?"readium-bounce-l":"readium-bounce-r");const t=this.scrollOffset();this.shakeTimeout=this.wnd.setTimeout(()=>{e.classList.remove("readium-bounce-l"),e.classList.remove("readium-bounce-r"),this.shakeTimeout=0,this.doc().scrollLeft=t},150)}takeOverSnap(){var t;this.snappingCancelled=!0,this.clearTouches();const e=this.doc();this.overscroll=((t=e.style.transform)==null?void 0:t.length)>12?parseFloat(e.style.transform.slice(12).split("px")[0]):0}snapCurrentOffset(e=!1,t=!1){const r=this.wnd.scrollX>0?this.wnd.scrollX:this.alreadyScrollLeft,s=this.doc(),n=this.dragOffset(),o=wt(this.wnd),a=Math.min(Math.max(0,r),this.cachedScrollWidth),h=F(this.wnd)?-1:1,c=h*(this.wnd.innerWidth/3)*(h*n>0?2:1),d=this.snapOffset(a+c);if(e&&d!==this.scrollOffset()){this.snappingCancelled=!1;const p=(g,y,x,O)=>x>O?y:g+(y-g)*bi(x/O),u=Ti*o;let f;const v=g=>{if(this.snappingCancelled)return;f||(f=g);const y=g-f,x=p(this.overscroll,0,y,u),O=p(r,d,y,u);s.scrollLeft=O,this.overscroll!==0&&(s.style.transform=`translate3d(${-x}px, 0px, 0px)`),y{s.scrollLeft=d,this.clearTouches(),t||this.reportProgress()})}dragOffset(){return(this.startingX??0)-(this.endingX??0)}clearTouches(){this.startingX=void 0,this.endingX=void 0,this.overscroll=0}onTouchStart(e){switch(e.stopPropagation(),this.takeOverSnap(),e.touches.length){case 1:break;case 2:this.onTouchEnd(e);return;default:{this.onTouchEnd(e),this.comms.send("tap_more",e.touches.length);return}}this.startingX=e.touches[0].clientX,this.alreadyScrollLeft=this.doc().scrollLeft,this.touchState=1}onTouchEnd(e){if(this.touchState===2){const t=this.dragOffset(),r=this.scrollOffset();this.cachedScrollWidth<=this.wnd.innerWidth?(this.reportProgress(),t>5&&this.comms.send("no_more",void 0),t<-5&&this.comms.send("no_less",void 0)):r<5&&t<5?(this.alreadyScrollLeft=0,this.comms.send("no_less",void 0)):this.cachedScrollWidth-r-this.wnd.innerWidth<5&&t>5&&(this.alreadyScrollLeft=this.cachedScrollWidth,this.comms.send("no_more",void 0)),this.snapCurrentOffset(!0),this.comms.send("swipe",t)}this.touchState=0}onWidthChange(){this.cachedScrollWidth=this.doc().scrollWidth,this.comms.ready&&this.snapCurrentOffset()}onTouchMove(e){if(this.touchState===0)return;this.touchState===1&&(this.touchState=2,S(this.wnd)),this.endingX=e.touches[0].clientX;const t=this.dragOffset(),r=this.alreadyScrollLeft+t;r<0?(this.overscroll=r,this.doc().style.transform=`translate3d(${-this.overscroll}px, 0px, 0px)`):r+this.wnd.innerWidth>this.cachedScrollWidth?(this.overscroll=r,this.doc().style.transform=`translate3d(${-r}px, 0px, 0px)`):(this.overscroll=0,this.doc().style.removeProperty("transform"),this.doc().scrollLeft=this.alreadyScrollLeft+t)}mount(e,t){if(this.wnd=e,this.comms=t,!super.mount(e,t))return!1;e.navigator.epubReadingSystem.layoutStyle="paginated";const r=e.document.createElement("style");r.dataset.readium="true",r.id=Ot,r.textContent=` @keyframes readium-bounce-l-animation { 0%, 100% {transform: translate3d(0, 0, 0);} 50% {transform: translate3d(-50px, 0, 0);} } @keyframes readium-bounce-r-animation { 0%, 100% {transform: translate3d(0, 0, 0);} 50% {transform: translate3d(50px, 0, 0);} } .readium-bounce-l { animation: readium-bounce-l-animation 150ms ease-out 1; } .readium-bounce-r { animation: readium-bounce-r-animation 150ms ease-out 1; } html { overflow: hidden; } body { -ms-overflow-style: none; /* for Internet Explorer, Edge */ } * { scrollbar-width: none; /* for Firefox */ } body::-webkit-scrollbar { display: none; /* for Chrome, Safari, and Opera */ } `,e.document.head.appendChild(r);const s=e.ResizeObserver||ut;this.resizeObserver=new s(()=>e.requestAnimationFrame(()=>{e&&yi(e)})),this.resizeObserver.observe(e.document.body),this.mutationObserver=new MutationObserver(()=>{this.wnd.requestAnimationFrame(()=>this.cachedScrollWidth=this.doc().scrollWidth)}),e.frameElement&&this.mutationObserver.observe(e.frameElement,{attributes:!0,attributeFilter:["style"]}),this.mutationObserver.observe(e.document,{attributes:!0,attributeFilter:["style"]});const n=o=>{const a=this.doc().scrollLeft;return this.doc().scrollLeft=this.snapOffset(o),a!==this.doc().scrollLeft};return e.addEventListener("orientationchange",this.onWidthChanger),e.addEventListener("resize",this.onWidthChanger),e.requestAnimationFrame(()=>this.cachedScrollWidth=this.doc().scrollWidth),t.register("go_progression",P.moduleName,(o,a)=>{const h=o;if(h<0||h>1){t.send("error",{message:"go_progression must be given a position from 0.0 to 1.0"}),a(!1);return}this.wnd.requestAnimationFrame(()=>{this.cachedScrollWidth=this.doc().scrollWidth;const c=this.cachedScrollWidth,d=F(e)?-1:1,p=c*h*d;this.doc().scrollLeft=this.snapOffset(p),this.reportProgress(),S(this.wnd),a(!0)})}),t.register("go_id",P.moduleName,(o,a)=>{const h=e.document.getElementById(o);if(!h){a(!1);return}this.wnd.requestAnimationFrame(()=>{this.doc().scrollLeft=this.snapOffset(h.getBoundingClientRect().left+e.scrollX),this.reportProgress(),S(this.wnd),a(!0)})}),t.register("go_text",P.moduleName,(o,a)=>{let h;Array.isArray(o)&&(o.length>1&&(h=o[1]),o=o[0]);const c=$.deserialize(o),d=xe(this.wnd.document,new z({href:e.location.href,type:"text/html",text:c,locations:h?new T({otherLocations:new Map([["cssSelector",h]])}):void 0}));if(!d){a(!1);return}this.wnd.requestAnimationFrame(()=>{this.doc().scrollLeft=this.snapOffset(d.getBoundingClientRect().left+e.scrollX),this.reportProgress(),S(this.wnd),a(!0)})}),t.register("go_end",P.moduleName,(o,a)=>{const h=F(e)?-1:1;this.wnd.requestAnimationFrame(()=>{this.cachedScrollWidth=this.doc().scrollWidth;const c=this.cachedScrollWidth*h;if(this.doc().scrollLeft===c)return a(!1);this.doc().scrollLeft=this.snapOffset(c),this.reportProgress(),S(this.wnd),a(!0)})}),t.register("go_start",P.moduleName,(o,a)=>{this.wnd.requestAnimationFrame(()=>{if(this.doc().scrollLeft===0)return a(!1);this.doc().scrollLeft=0,this.reportProgress(),S(this.wnd),a(!0)})}),t.register("go_prev",P.moduleName,(o,a)=>{this.wnd.requestAnimationFrame(()=>{const h=e.scrollX-e.innerWidth,c=F(e)?-(this.cachedScrollWidth-e.innerWidth):0,d=n(Math.max(h,c));d&&(this.reportProgress(),S(this.wnd)),a(d)})}),t.register("go_next",P.moduleName,(o,a)=>{this.wnd.requestAnimationFrame(()=>{const h=e.scrollX+e.innerWidth,c=F(e)?0:this.cachedScrollWidth-e.innerWidth,d=n(Math.min(h,c));d&&(this.reportProgress(),S(this.wnd)),a(d)})}),t.register("unfocus",P.moduleName,(o,a)=>{this.snappingCancelled=!0,S(this.wnd),a(!0)}),t.register("shake",P.moduleName,(o,a)=>{this.shake(),a(!0)}),t.register("focus",P.moduleName,(o,a)=>{this.wnd.requestAnimationFrame(()=>{this.cachedScrollWidth=this.doc().scrollWidth,this.snapCurrentOffset(!1,!0),this.reportProgress(),a(!0)})}),t.register("first_visible_locator",P.moduleName,(o,a)=>{const h=St(e,!1);this.comms.send("first_visible_locator",h.serialize()),a(!0)}),e.addEventListener("touchstart",this.onTouchStarter,{passive:!0}),e.addEventListener("touchend",this.onTouchEnder,{passive:!0}),e.addEventListener("touchmove",this.onTouchMover,{passive:!0}),e.document.addEventListener("touchstart",()=>{}),t.log("ColumnSnapper Mounted"),!0}unmount(e,t){var r;return this.snappingCancelled=!0,t.unregisterAll(P.moduleName),this.resizeObserver.disconnect(),this.mutationObserver.disconnect(),e.removeEventListener("touchstart",this.onTouchStarter),e.removeEventListener("touchend",this.onTouchEnder),e.removeEventListener("touchmove",this.onTouchMover),e.removeEventListener("orientationchange",this.onWidthChanger),e.removeEventListener("resize",this.onWidthChanger),(r=e.document.getElementById(Ot))==null||r.remove(),t.log("ColumnSnapper Unmounted"),super.unmount(e,t)}};Pt.moduleName="column_snapper";let Si=Pt;const le={top:"js-iframe-reader-top-anchor",bottom:"js-iframe-reader-bottom-anchor"};class Ci extends HTMLElement{connectedCallback(){this.setAttribute("aria-hidden","true"),this.style.setProperty("display","block","important"),this.style.setProperty("padding","0","important"),this.style.setProperty("margin","0","important"),this.style.setProperty("visibility","hidden","important")}}function Oi(i){const e=i.getElementsByTagName("body")[0],t=document.createElement("anchor-observer"),r=document.createElement("anchor-observer");t.dataset.readium="true",r.dataset.readium="true",t==null||t.setAttribute("id",le.top),t==null||t.style.setProperty("height","115px","important"),r==null||r.setAttribute("id",le.bottom),r==null||r.style.setProperty("height","80px","important"),e==null||e.insertBefore(t,e.firstChild),e==null||e.appendChild(r)}function Pi(i){var s,n;const e=i.getElementsByTagName("body")[0],t=e==null?void 0:e.querySelector(`#${le.top}`),r=e==null?void 0:e.querySelector(`#${le.bottom}`);t&&((s=t.parentElement)==null||s.removeChild(t)),r&&((n=r.parentElement)==null||n.removeChild(r))}const Mt="readium-scroll-snapper-style",At=class R extends xt{constructor(){super(...arguments),this.createAnchorElements=()=>{Oi(this.doc())},this.removeAnchorElements=()=>{Pi(this.doc())},this.createCustomElement=()=>{customElements.get("anchor-observer")||customElements.define("anchor-observer",Ci)}}doc(){return this.wnd.document.scrollingElement}reportProgress(e){this.comms.send("progress",e)}mount(e,t){this.wnd=e,this.comms=t,e.navigator.epubReadingSystem.layoutStyle="scrolling";const r=e.document.createElement("style");return r.dataset.readium="true",r.id=Mt,r.textContent=` * { scrollbar-width: none; /* for Firefox */ } body::-webkit-scrollbar { display: none; /* for Chrome, Safari, and Opera */ } `,e.document.head.appendChild(r),t.register("go_progression",R.moduleName,(s,n)=>{const o=s;if(o<0||o>1){t.send("error",{message:"go_progression must be given a position from 0.0 to 1.0"}),n(!1);return}this.wnd.requestAnimationFrame(()=>{this.doc().scrollTop=this.doc().offsetHeight*o,this.reportProgress({progress:o,reference:this.wnd.innerHeight/this.doc().scrollHeight}),S(this.wnd),n(!0)})}),t.register("go_id",R.moduleName,(s,n)=>{const o=e.document.getElementById(s);if(!o){n(!1);return}this.wnd.requestAnimationFrame(()=>{this.doc().scrollTop=o.getBoundingClientRect().top+e.scrollY-e.innerHeight/2;const a=this.doc().scrollTop/this.doc().offsetHeight;this.reportProgress({progress:a,reference:this.wnd.innerHeight/this.doc().scrollHeight}),S(this.wnd),n(!0)})}),t.register("go_text",R.moduleName,(s,n)=>{let o;Array.isArray(s)&&(s.length>1&&(o=s[1]),s=s[0]);const a=$.deserialize(s),h=xe(this.wnd.document,new z({href:e.location.href,type:"text/html",text:a,locations:o?new T({otherLocations:new Map([["cssSelector",o]])}):void 0}));if(!h){n(!1);return}this.wnd.requestAnimationFrame(()=>{this.doc().scrollTop=h.getBoundingClientRect().top+e.scrollY-e.innerHeight/2;const c=this.doc().scrollTop/this.doc().offsetHeight;this.reportProgress({progress:c,reference:this.wnd.innerHeight/this.doc().scrollHeight}),S(this.wnd),n(!0)})}),t.register("go_start",R.moduleName,(s,n)=>{if(this.doc().scrollTop===0)return n(!1);this.doc().scrollTop=0,this.reportProgress({progress:0,reference:this.wnd.innerHeight/this.doc().scrollHeight}),n(!0)}),t.register("go_end",R.moduleName,(s,n)=>{if(this.doc().scrollTop===0)return n(!1);this.doc().scrollTop=0,this.reportProgress({progress:0,reference:this.wnd.innerHeight/this.doc().scrollHeight}),n(!0)}),t.register("unfocus",R.moduleName,(s,n)=>{S(this.wnd),n(!0)}),t.register(["go_next","go_prev"],R.moduleName,(s,n)=>n(!1)),t.register("focus",R.moduleName,(s,n)=>{const o=this.doc().scrollTop/this.doc().offsetHeight;this.reportProgress({progress:o,reference:this.wnd.innerHeight/this.doc().scrollHeight}),n(!0)}),t.register("first_visible_locator",R.moduleName,(s,n)=>{const o=St(e,!0);this.comms.send("first_visible_locator",o.serialize()),n(!0)}),t.log("ScrollSnapper Mounted"),this.createCustomElement(),this.createAnchorElements(),!0}unmount(e,t){var r;return t.unregisterAll(R.moduleName),this.removeAnchorElements(),(r=e.document.getElementById(Mt))==null||r.remove(),t.log("ScrollSnapper Unmounted"),!0}};At.moduleName="scroll_snapper";let Mi=At;class Pe extends G{constructor(){super(...arguments),this.pointerMoved=!1,this.onPointerUp=this.onPointUp.bind(this),this.onPointerMove=this.onPointMove.bind(this),this.onPointerDown=this.onPointDown.bind(this),this.onContextMenu=this.onContext.bind(this),this.onClicker=this.onClick.bind(this)}onPointUp(e){var s,n,o,a,h;const t=this.wnd.getSelection();if(t&&((s=t.toString())==null?void 0:s.length)>0){const c=(n=t.getRangeAt(0))==null?void 0:n.getClientRects();if(!c||c.length===0)return;const d=c[0],p={text:t.toString(),x:d.x,y:d.y,width:d.width,height:d.height,targetFrameSrc:(a=(o=this.wnd)==null?void 0:o.location)==null?void 0:a.href};this.comms.send("text_selected",p)}if(this.pointerMoved){this.pointerMoved=!1;return}if(!(t!=null&&t.isCollapsed)||!e.isPrimary)return;const r=this.wnd.devicePixelRatio;e.preventDefault(),this.comms.send(e.pointerType==="touch"?"tap":"click",{defaultPrevented:e.defaultPrevented,x:e.clientX*r,y:e.clientY*r,targetFrameSrc:this.wnd.location.href,targetElement:e.target.outerHTML,interactiveElement:(h=Tt(e.target))==null?void 0:h.outerHTML,cssSelector:this.wnd._readium_cssSelectorGenerator.getCssSelector(e.target)}),this.pointerMoved=!1}onPointMove(e){if(e.movementY!==void 0&&e.movementX!==void 0){(Math.abs(e.movementX)>1||Math.abs(e.movementY)>1)&&(this.pointerMoved=!0);return}this.pointerMoved=!0}onPointDown(){this.pointerMoved=!1}onContext(e){this.onPointUp(e),this.pointerMoved=!1}onClick(e){if(e.preventDefault(),!e.isTrusted){const t=new PointerEvent("pointerup",{isPrimary:!0,pointerType:"mouse",clientX:e.clientX,clientY:e.clientY});Object.defineProperty(t,"target",{writable:!1,value:e.target}),Object.defineProperty(t,"defaultPrevented",{writable:!1,value:e.defaultPrevented}),this.onPointUp(t)}}mount(e,t){return this.wnd=e,this.comms=t,e.document.addEventListener("pointerdown",this.onPointerDown),e.document.addEventListener("pointerup",this.onPointerUp),e.document.addEventListener("contextmenu",this.onContextMenu),e.document.addEventListener("pointermove",this.onPointerMove),e.document.addEventListener("click",this.onClicker),t.log("Peripherals Mounted"),!0}unmount(e,t){return e.document.removeEventListener("pointerdown",this.onPointerDown),e.document.removeEventListener("pointerup",this.onPointerUp),e.document.removeEventListener("contextmenu",this.onContextMenu),e.document.removeEventListener("pointermove",this.onPointerMove),e.document.removeEventListener("click",this.onClicker),t.log("Peripherals Unmounted"),!0}}Pe.moduleName="peripherals";const Rt=class Ne extends G{constructor(){super(...arguments),this.mediaPlayingCount=0,this.allAnimations=new Set}wndOnErr(e){var t;(t=this.comms)==null||t.send("error",{message:e.message,filename:e.filename,lineno:e.lineno,colno:e.colno})}unblock(e){var t;for(e._readium_blockEvents=!1;((t=e._readium_blockedEvents)==null?void 0:t.length)>0;){const r=e._readium_blockedEvents.shift();switch(r[0]){case 0:Reflect.apply(r[1],r[2],r[3]);break;case 1:const s=r[1],n=r[2];e.removeEventListener(s.type,e._readium_eventBlocker,!0);const o=new Event(s.type,{bubbles:s.bubbles,cancelable:s.cancelable});n?n.dispatchEvent(o):e.dispatchEvent(o);break}}}onMediaPlayEvent(){var e;this.mediaPlayingCount++,(e=this.comms)==null||e.send("media_play",this.mediaPlayingCount)}onMediaPauseEvent(){var e;this.mediaPlayingCount>0&&this.mediaPlayingCount--,(e=this.comms)==null||e.send("media_pause",this.mediaPlayingCount)}pauseAllMedia(e){const t=e.document.querySelectorAll("audio,video");for(let r=0;r{switch(s){case"dom-manipulation":return!0;case"layout-changes":return!0;case"touch-events":return!0;case"mouse-events":return!0;case"keyboard-events":return!0;case"spine-scripting":return!0;case"embedded-web-content":return!0;default:return!1}}},writable:!1}),"getAnimations"in e.document&&e.document.getAnimations().forEach(s=>{s.cancel(),this.allAnimations.add(s)}),t.register("activate",Ne.moduleName,(s,n)=>{this.allAnimations.forEach(o=>{o.cancel(),o.play()}),n(!0)}),t.register("unfocus",Ne.moduleName,(s,n)=>{this.pauseAllMedia(e),this.allAnimations.forEach(o=>o.pause()),n(!0)});const r=e.document.querySelectorAll("audio,video");for(let s=0;sr.cancel()),this.allAnimations.clear(),t.log("Setup Unmounted"),!0}};Rt.moduleName="setup";let Nt=Rt;const Lt="readium-viewport",zt=class J extends Nt{onViewportWidthChanged(e){const t=e.target;Oe(t,"--RS__viewportWidth",`${t.innerWidth}px`)}mount(e,t){if(!super.mount(e,t))return!1;const r=e.document.createElement("meta");return r.dataset.readium="true",r.setAttribute("name","viewport"),r.setAttribute("id",Lt),r.setAttribute("content","width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no"),e.document.head.appendChild(r),e.addEventListener("orientationchange",this.onViewportWidthChanged),e.addEventListener("resize",this.onViewportWidthChanged),this.onViewportWidthChanged({target:e}),t.register("set_property",J.moduleName,(s,n)=>{const o=s;Oe(e,o[0],o[1]),n(!0)}),t.register("remove_property",J.moduleName,(s,n)=>{pt(e,s),n(!0)}),t.register("activate",J.moduleName,(s,n)=>{this.unblock(e),n(!0)}),t.log("ReflowableSetup Mounted"),!0}unmount(e,t){var r;return t.unregisterAll(J.moduleName),(r=e.document.head.querySelector(`#${Lt}`))==null||r.remove(),e.removeEventListener("orientationchange",this.onViewportWidthChanged),t.log("ReflowableSetup Unmounted"),super.unmount(e,t)}};zt.moduleName="reflowable_setup";let Ai=zt;const It="readium-fixed-style",Dt=class D extends Nt{mount(e,t){if(!super.mount(e,t))return!1;e.navigator.epubReadingSystem.layoutStyle="paginated";const r=e.document.createElement("style");return r.id=It,r.dataset.readium="true",r.textContent=` html, body { text-size-adjust: none; -ms-text-size-adjust: none; -webkit-text-size-adjust: none; -moz-text-size-adjust: none; /* Fight Safari pinches */ touch-action: none !important; min-height: 100%; /*cursor: var() TODO*/ }`,e.document.head.appendChild(r),t.register("set_property",D.moduleName,(s,n)=>{const o=s;Oe(e,o[0],o[1]),n(!0)}),t.register("remove_property",D.moduleName,(s,n)=>{pt(e,s),n(!0)}),t.register("first_visible_locator",D.moduleName,(s,n)=>n(!1)),t.register("unfocus",D.moduleName,(s,n)=>{S(e),n(!0)}),t.register(["focus","go_next","go_prev","go_id","go_end","go_start","go_text","go_progression"],D.moduleName,(s,n)=>n(!0)),t.register("activate",D.moduleName,(s,n)=>{this.unblock(e),n(!0)}),t.log("FixedSetup Mounted"),!0}unmount(e,t){var r;return t.unregisterAll(D.moduleName),(r=e.document.getElementById(It))==null||r.remove(),t.log("FixedSetup Unmounted"),super.unmount(e,t)}};Dt.moduleName="fixed_setup";let Ri=Dt;const Ni=["fixed_setup","decorator","peripherals"],Li=["reflowable_setup","decorator","peripherals","column_snapper","scroll_snapper"],Me=new Map([Ri,Ai,Pe,yt,Si,Mi].map(i=>[i.moduleName,i]));class zi{constructor(e=window,t=[]){this.loadedModules=[],this.wnd=e,this.comms=new Ie(e);const r=[...new Set(t)];if(r.length){if(typeof e>"u")throw Error("Loader is not in a web browser");e.parent!==e&&this.comms.log("Loader is probably in a frame"),this.loadedModules=r.map(s=>{const n=this.loadModule(s);if(n)return n.mount(this.wnd,this.comms),n}).filter(s=>s!==void 0)}}loadModule(e){const t=Me.get(e);return t===void 0?(this.comms.log(`Module "${name}" does not exist in the library`),t):new t}addModule(e){const t=this.loadModule(e);return!t||!t.mount(this.wnd,this.comms)?!1:(this.loadedModules.push(t),!0)}removeModule(e){const t=Me.get(e);if(t===void 0)return this.comms.log(`Module "${e}" does not exist in the library`),!1;const r=this.loadedModules.findIndex(s=>s instanceof t);return r<0?!1:(this.loadedModules[r].unmount(this.wnd,this.comms),this.loadedModules.splice(r,1),!0)}destroy(){this.comms.destroy(),this.loadedModules.forEach(e=>e.unmount(this.wnd,this.comms)),this.loadedModules=[]}}w.COMMS_VERSION=H,w.Comms=Ie,w.Decorator=yt,w.FXLModules=Ni,w.Layout=mt,w.Loader=zi,w.Module=G,w.ModuleLibrary=Me,w.Peripherals=Pe,w.ReflowableModules=Li,w.Width=ft,w.mid=ze,Object.defineProperty(w,Symbol.toStringTag,{value:"Module"})});