epubjs
Version:
Render ePub documents in the browser, across many devices
1 lines • 130 kB
Source Map (JSON)
{"version":3,"file":"epub.min.js","sources":["../../src/base.js","../../node_modules/rsvp/dist/rsvp.js","../../src/book.js","../../src/chapter.js","../../src/core.js","../../src/epubcfi.js","../../src/events.js","../../src/hooks.js","../../src/layout.js","../../src/locations.js","../../src/pagination.js","../../src/parser.js","../../src/render_iframe.js","../../src/renderer.js","../../src/replace.js","../../src/storage.js","../../src/unarchiver.js","../../libs/mime-types/mime-types.js"],"names":["lib$rsvp$utils$$objectOrFunction","x","lib$rsvp$utils$$isFunction","lib$rsvp$utils$$isMaybeThenable","lib$rsvp$utils$$F","lib$rsvp$events$$indexOf","callbacks","callback","i","l","length","lib$rsvp$events$$callbacksFor","object","_promiseCallbacks","lib$rsvp$config$$configure","name","value","lib$rsvp$config$$config","arguments","lib$rsvp$instrument$$scheduleFlush","setTimeout","entry","lib$rsvp$instrument$$queue","payload","guid","key","id","childGuid","childId","error","stack","lib$rsvp$instrument$$instrument","eventName","promise","child","push","_guidKey","_id","detail","_result","label","_label","timeStamp","lib$rsvp$utils$$now","Error","lib$rsvp$$internal$$withOwnPromise","TypeError","lib$rsvp$$internal$$noop","lib$rsvp$$internal$$getThen","then","lib$rsvp$$internal$$GET_THEN_ERROR","lib$rsvp$$internal$$tryThen","fulfillmentHandler","rejectionHandler","call","e","lib$rsvp$$internal$$handleForeignThenable","thenable","async","sealed","lib$rsvp$$internal$$resolve","lib$rsvp$$internal$$fulfill","reason","lib$rsvp$$internal$$reject","lib$rsvp$$internal$$handleOwnThenable","_state","lib$rsvp$$internal$$FULFILLED","lib$rsvp$$internal$$REJECTED","_onError","lib$rsvp$$internal$$subscribe","undefined","lib$rsvp$$internal$$handleMaybeThenable","maybeThenable","constructor","lib$rsvp$$internal$$publishRejection","lib$rsvp$$internal$$publish","lib$rsvp$$internal$$PENDING","_subscribers","instrument","lib$rsvp$instrument$$default","parent","onFulfillment","onRejection","subscribers","settled","lib$rsvp$$internal$$invokeCallback","lib$rsvp$$internal$$ErrorObject","this","lib$rsvp$$internal$$tryCatch","lib$rsvp$$internal$$TRY_CATCH_ERROR","succeeded","failed","hasCallback","lib$rsvp$$internal$$initializePromise","resolver","resolved","lib$rsvp$enumerator$$makeSettledResult","state","position","lib$rsvp$enumerator$$Enumerator","Constructor","input","abortOnReject","enumerator","_instanceConstructor","_abortOnReject","_validateInput","_input","_remaining","_init","_enumerate","_validationError","lib$rsvp$promise$all$$all","entries","lib$rsvp$enumerator$$default","lib$rsvp$promise$race$$race","lib$rsvp$utils$$isArray","resolve","lib$rsvp$promise$resolve$$resolve","lib$rsvp$promise$reject$$reject","lib$rsvp$promise$$needsResolver","lib$rsvp$promise$$needsNew","lib$rsvp$promise$$Promise","lib$rsvp$promise$$counter","lib$rsvp$all$settled$$AllSettled","_superConstructor","lib$rsvp$all$settled$$allSettled","lib$rsvp$promise$$default","lib$rsvp$all$$all","array","all","lib$rsvp$asap$$asap","arg","lib$rsvp$asap$$queue","lib$rsvp$asap$$len","lib$rsvp$asap$$scheduleFlush","lib$rsvp$asap$$useNextTick","nextTick","process","version","versions","node","match","Array","isArray","setImmediate","lib$rsvp$asap$$flush","lib$rsvp$asap$$useVertxTimer","lib$rsvp$asap$$vertxNext","lib$rsvp$asap$$useMutationObserver","iterations","observer","lib$rsvp$asap$$BrowserMutationObserver","document","createTextNode","observe","characterData","data","lib$rsvp$asap$$useMessageChannel","channel","MessageChannel","port1","onmessage","port2","postMessage","lib$rsvp$asap$$useSetTimeout","lib$rsvp$asap$$attemptVertex","r","require","vertx","runOnLoop","runOnContext","lib$rsvp$defer$$defer","deferred","reject","lib$rsvp$filter$$filter","promises","filterFn","values","filtered","results","newLength","lib$rsvp$promise$hash$$PromiseHash","lib$rsvp$hash$settled$$HashSettled","lib$rsvp$hash$settled$$hashSettled","lib$rsvp$hash$$hash","lib$rsvp$promise$hash$$default","lib$rsvp$map$$map","mapFn","lib$rsvp$node$$Result","lib$rsvp$node$$getThen","obj","lib$rsvp$node$$ERROR","lib$rsvp$node$$tryApply","f","s","a","apply","lib$rsvp$node$$makeObject","_","argumentNames","args","lib$rsvp$node$$arrayResult","lib$rsvp$node$$wrapThenable","onFulFillment","lib$rsvp$node$$denodeify","nodeFunc","options","fn","self","promiseInput","lib$rsvp$node$$needsPromiseInput","lib$rsvp$node$$GET_THEN_ERROR","p","err","val","lib$rsvp$node$$handlePromiseInput","lib$rsvp$node$$handleValueInput","__proto__","result","lib$rsvp$race$$race","race","lib$rsvp$reject$$reject","lib$rsvp$resolve$$resolve","lib$rsvp$rethrow$$rethrow","lib$rsvp$$async","lib$rsvp$$on","lib$rsvp$$off","lib$rsvp$utils$$_isArray","Object","prototype","toString","Date","now","getTime","lib$rsvp$utils$$o_create","create","o","lib$rsvp$events$$default","mixin","on","allCallbacks","off","index","splice","trigger","_eachEntry","c","_settledAt","_willSettleAt","_makeResult","lib$rsvp$promise$all$$default","lib$rsvp$promise$race$$default","lib$rsvp$promise$resolve$$default","lib$rsvp$promise$reject$$default","lib$rsvp$promise$$guidKey","cast","after","catch","finally","lib$rsvp$all$settled$$default","lib$rsvp$all$$default","lib$rsvp$asap$$default","lib$rsvp$asap$$browserWindow","window","lib$rsvp$asap$$browserGlobal","MutationObserver","WebKitMutationObserver","lib$rsvp$asap$$isNode","lib$rsvp$asap$$isWorker","Uint8ClampedArray","importScripts","lib$rsvp$defer$$default","lib$rsvp$filter$$default","hasOwnProperty","lib$rsvp$platform$$platform","lib$rsvp$hash$settled$$default","lib$rsvp$hash$$default","lib$rsvp$map$$default","lib$rsvp$node$$default","global","lib$rsvp$platform$$default","lib$rsvp$race$$default","lib$rsvp$reject$$default","lib$rsvp$resolve$$default","lib$rsvp$rethrow$$default","cb","lib$rsvp$$callbacks","lib$rsvp$$eventName","lib$rsvp$umd$$RSVP","Promise","allSettled","hash","hashSettled","denodeify","map","filter","rethrow","defer","EventTarget","configure","define","module","EPUBJS","VERSION","plugins","filePath","Render","root","ePub","bookPath","ArrayBuffer","Book","amd","exports","settings","core","defaults","bookKey","packageUrl","storage","fromStorage","saved","online","contained","width","height","layoutOveride","orientation","minSpreadWidth","gap","restore","reload","goto","styles","headTags","withCredentials","render_method","EPUBJSVERSION","spinePos","stored","navigator","onLine","networkListeners","ready","manifest","RSVP","spine","metadata","cover","toc","pageList","readyPromises","pagination","Pagination","pageListReady","_ready","bind","isRendered","_q","queue","_rendering","_displayQ","_moving","_gotoQ","renderer","Renderer","setMinSpreadWidth","setGap","listenToRenderer","defer_opened","opened","store","open","addEventListener","unload","forceReload","epubpackage","book","isContained","bookUrl","unarchive","loadPackage","urlFrom","localStorage","packageXml","identifier","packageIdentifier","restored","unpack","_registerReplacements","_containerPath","parse","Parser","containerPath","loadXml","containerXml","container","paths","contentsPath","basePath","packagePath","encoding","console","contents","packageContents","spineIndexByURL","generateBookKey","globalLayoutProperties","parseLayoutProperties","coverPath","spineNodeIndex","locations","Locations","navPath","navUrl","navHtml","nav","epubcfi","EpubCFI","wait","forEach","pg","cfi","generateCfiFromHref","href","tocPath","tocUrl","tocXml","createHiddenRender","_width","_height","hiddenContainer","hiddenEl","box","element","getBoundingClientRect","forceSingle","createElement","style","visibility","overflow","appendChild","initialize","generatePageList","flag","pager","spineLength","currentPage","nextChapter","chapter","next","done","cancelled","remove","removeChild","Chapter","displayChapter","pageMap","item","start","page","spreads","end","generatePagination","defered","loadPagination","pagelistJSON","JSON","getPageList","getMetadata","getToc","Events","range","startPage","endPage","percent","pageRange","pageFromCfi","percentageFromPage","anchorPage","percentage","loadChange","url","uri","chapterUri","currentChapter","absolute","path","warn","filename","afterLoad","render","docEl","beforeDisplay","afterDisplay","reformat","unlistenToRenderer","coverUrl","retrieved","getUrl","zip","getXml","request","base","protocol","fromRoot","location","origin","host","baseTag","getElementsByTagName","resolveUrl","pathname","Unarchiver","extension","isSaved","storedSettings","getItem","saveContents","setItem","stringify","removeSavedContents","removeItem","renderTo","elem","rendered","isElement","getEl","direction","setDirection","_rendered","startDisplay","display","previousLocationCfi","gotoCfi","fetch","fromStore","len","clearSaved","chap","pos","enqueue","isNumber","_needsAssetReplacement","registerHook","replace","head","resources","svg","lastPage","preloadNextChapter","dequeue","message","nextPage","prevPage","prev","prevChapter","linear","getCurrentLocationCfi","currentLocationCfi","target","indexOf","gotoPercentage","parseInt","substring","isNaN","gotoPage","gotoHref","cfiString","spineItem","split","section","relativeURL","search","firstPage","cfiFromPage","pageFromPercentage","storeOffline","assets","put","availableOffline","toStorage","isStored","token","Storage","credentials","offline","setStyle","prefixed","noreflow","removeStyle","addHeadTag","tag","attrs","useSpreads","use","_use","force","load","destroy","removeEventListener","flush","applyStyles","applyHeadTags","hrefs","layout","spread","event","spineObject","cfiBase","properties","manifestProperties","pages","loaded","Hooks","getHooks","caches","_store","_credentials","xml","setDocument","doc","querySelector","setAttribute","insertBefore","firstChild","triggerHooks","serializer","XMLSerializer","serializeToString","tempUrl","setPages","num","getPages","getID","ID","revokeUrl","_document","namespaceURI","doctype","implementation","createDocument","importNode","documentElement","evaluate","cfiFromRange","_range","startXpath","endXpath","startContainer","endContainer","cleanEndTextContent","getElementXPath","nsResolver","XPathResult","FIRST_ORDERED_NODE_TYPE","singleNodeValue","collapsed","createRange","setStart","startOffset","setEnd","endOffset","log","cleanStartTextContent","cleanStringForXpath","textContent","generateCfiFromRange","find","_query","matches","query","toLowerCase","excerpt","text","last","limit","textSprint","func","treeWalker","createTreeWalker","NodeFilter","SHOW_TEXT","acceptNode","test","FILTER_ACCEPT","FILTER_REJECT","nextNode","finished","progress","items","querySelectorAll","slice","count","called","full","replaceWithStored","attr","_oldUrls","_newUrls","_cache","_uri","_chapterBase","_attr","_wait","clone","link","src","getAttribute","replaceUrl","timeout","onload","clearTimeout","onerror","getElementById","getEls","classes","getElementsByClassName","type","supportsURL","URL","BLOB_RESPONSE","xhr","XMLHttpRequest","xhrPrototype","handler","readyState","DONE","status","response","responseXML","DOMParser","parseFromString","Blob","defineProperty","onreadystatechange","htm","responseType","setRequestHeader","overrideMimeType","send","toArray","arr","member","newitm","ident","withoutProtocol","dot","firstSlash","directory","fragment","blob","doubleSlash","folder","lastIndexOf","lastSlash","dataURLToBlob","dataURL","parts","contentType","raw","rawLength","uInt8Array","BASE64_MARKER","atob","Uint8Array","charCodeAt","addScript","body","addScripts","srcArr","total","curr","addCss","rel","unprefixed","vendors","upper","toUpperCase","segments","folders","pop","concat","join","uuid","d","Math","random","floor","insert","compareFunction","locationOf","_start","_end","compared","pivot","b","indexOfSorted","_scope","scope","funcName","context","inwait","shift","clear","getElementTreeXPath","nodeName","tagName","pathIndex","isXhtml","ownerDocument","nodeType","Node","TEXT_NODE","indexOfTextNode","parentNode","sibling","previousSibling","DOCUMENT_TYPE_NODE","prefix","ns","xhtml","epub","str","part","textNode","sib","children","childNodes","source","prop","extend","sources","getOwnPropertyNames","propName","getOwnPropertyDescriptor","n","parseFloat","isFinite","isString","String","props","keys","cfiStr","generateChapterComponent","_spineNodeIndex","_pos","generatePathComponent","steps","segment","generateCfiFromElement","pathTo","unshift","getChapterComponent","splitStr","getPathComponent","pathComponent","getCharecterOffsetComponent","getCharacterOffsetComponent","chapSegment","chapterComponent","characterOffsetComponent","assertion","chapId","endInt","parseStep","has_brackets","spineId","step","characterOffset","textLocationAssertion","addMarker","_doc","_marker","lastStep","marker","createMarker","findParent","splitText","classList","add","removeMarker","contains","nextSib","nextSibling","prevSib","sections","compare","cfiOne","cfiTwo","generateCfiFromTextNode","anchor","offset","generateCfiFromRangeAnchor","anchorNode","anchorOffset","startElement","startSteps","startPath","startIndex","endElement","endSteps","endPath","endIndex","generateXpathFromSteps","xpath","generateQueryFromSteps","generateRangeFromCfi","textLength","startContainerParent","debug","selectNode","isCfiString","el","events","createEvent","tell","listen","deafen","listenUntil","evt","CustomEvent","msg","dispatchEvent","bindto","OnEvt","OffEvt","unlisten","hooks","plugs","plugType","hook","toAdd","toFront","removeHook","toRemove","passed","countdown","register","Layout","Reflowable","spreadWidth","format","_gap","columnAxis","columnGap","columnWidth","columnFill","colWidth","pageWidth","pageHeight","calculatePages","totalWidth","displayedPages","scrollWidth","ceil","pageCount","ReflowableSpreads","divisor","fullWidth","Fixed","content","viewport","hasAttribute","_locations","break","_current","generate","chars","_currentCfi","currentLocation","counter","sprint","dist","locationFromCfi","percentageFromCfi","loc","percentageFromLocation","cfiFromLocation","cfiFromPercentage","save","getCurrent","setCurrent","get","set","totalPages","round","baseUrl","rootfile","fullpath","xmlEncoding","metadataNode","getElementText","manifestNode","spineNode","findNavPath","findTocPath","findCoverPath","tocId","bookTitle","creator","description","pubdate","publisher","language","rights","modified_date","querySelectorText","epubVersion","metaCover","coverId","found","getElementsByTagNameNS","nodeValue","q","manifestXml","selected","spineXml","Id","propArray","manifestProps","manifestPropArray","vert","querySelectorByType","html","getAttributeNS","bookSpine","navElement","navItems","list","navItem","subitems","navPoints","tocItem","navLabel","pageListItem","isCfi","Iframe","iframe","bodyEl","leftPos","scrolling","seamless","border","isMobile","userAgent","transform","contentDocument","headEl","contentWindow","resized","setLeft","margin","dir","right","write","close","baseEl","resize","totalHeight","scrollHeight","setPageDimensions","defaultView","scrollTo","tagEl","getPageNumberByElement","left","getPageNumberByRect","boundingClientRect","getBaseElement","getDocumentElement","isElementVisible","rect","scroll","bool","renderMethod","hidden","listenedEvents","upEvent","downEvent","isForcedSingle","onResized","layoutSettings","initWidth","initHeight","clientWidth","clientHeight","globalLayout","warning","removeEventListeners","removeSelectionListeners","chapterPos","currentChapterCfiBase","reconcileLayoutSettings","layoutMethod","determineLayout","visible","formated","addEventListeners","addSelectionListeners","queued","updatePages","visibleRangeCfi","getVisibleRangeCfi","property","rendition","determineSpreads","mapPage","headTag","pageByElement","firstElementisTextNode","leng","trim","isGoodNode","embeddedElements","walk","y","prevNode","startNode","STOP","ITER","containsPoint","childElementCount","filterEmpty","SHOW_ELEMENT","prevRange","prevRanges","prevElement","startRange","endRange","startCfi","endCfi","elLimit","check","elPos","elRange","selectNodeContents","checkText","ranges","splitTextNodeIntoWordsRanges","collapse","indexOfBreakableChar","startPosition","whiteCharacters","charAt","rangePosition","getClientRects","getPageCfi","getRange","forceElement","caretPositionFromPoint","caretRangeFromPoint","visibileEl","findElementAfter","offsetNode","pagesInCurrentChapter","pgs","currentRenderedPage","getRenderedPagesLeft","pagesLeft","findFirstVisible","startEl","setSize","triggerEvent","onSelectionChange","selectionEndTimeout","selectedRange","getSelection","cutoff","replacments","relative","isRelative","onclick","links","srcs","stylesheets","getText","cssUrls","newText","_URL","webkitURL","mozURL","createObjectURL","replaced","checkRequirements","urlCache","current","encodedUrl","encodeURIComponent","localforage","buffer","mimeType","getMimeType","reader","FileReader","readAsText","parser","fromCache","revokeObjectURL","zipUrl","JSZip","decodededUrl","decodeURIComponent","unarchiver","file","asUint8Array","asText","afterSaved","that","delay","saveEntryFileToStorage","table","application","ecmascript","javascript","ogg","pdf","postscript","rdf+xml","smil","xhtml+xml","x-httpd-eruby","x-latex","x-maker","x-object","x-shockwave-flash","x-silverlight","epub+zip","font-tdpfr","inkml+xml","json","jsonml+json","mathml+xml","metalink+xml","mp4","omdoc+xml","oxps","vnd.amazon.ebook","widget","x-dtbook+xml","x-dtbresource+xml","x-font-bdf","x-font-ghostscript","x-font-linux-psf","x-font-otf","x-font-pcf","x-font-snf","x-font-ttf","x-font-type1","x-font-woff","x-mobipocket-ebook","x-mspublisher","x-nzb","x-tgif","xaml+xml","xml-dtd","xproc+xml","xslt+xml","internet-property-stream","x-compress","x-compressed","x-gzip","audio","flac","midi","mpeg","mpegurl","x-aiff","x-ms-wma","x-wav","adpcm","webm","x-aac","x-caf","x-matroska","x-pn-realaudio-plugin","xm","mid","image","gif","ief","jpeg","pcx","png","svg+xml","tiff","x-icon","bmp","webp","x-pict","x-tga","cis-cod","rfc822","cache-manifest","calendar","css","csv","h323","iuls","mathml","plain","richtext","tab-separated-values","x-bibtex","x-dsrc","x-diff","x-haskell","x-java","x-literate-haskell","x-moc","x-pascal","x-pcs-gcd","x-perl","x-python","x-scala","x-setext","x-tcl","x-tex","x-vcard","sgml","x-c","x-fortran","x-opml","x-nfo","x-sfv","x-uuencode","webviewhtml","video","quicktime","vnd.mpegurl","x-flv","x-la-asf","x-mng","x-ms-asf","x-ms-wm","x-ms-wmv","x-ms-wmx","x-ms-wvx","x-msvideo","x-sgi-movie","3gpp2","h261","h263","h264","jpm","mj2","vnd.ms-playready.media.pyv","vnd.uvvu.mp4","vnd.vivo","x-f4v","x-m4v","x-ms-vob","x-smv","mimeTypes","subtype","defaultValue"],"mappings":"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