@foxycape/core 1.2.3 → 1.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/kernal/FileLoader.cjs +1 -1
  2. package/dist/kernal/FileLoader.mjs +1 -1
  3. package/dist/kernal/Reader.cjs +1 -1
  4. package/dist/kernal/Reader.mjs +1 -1
  5. package/dist/kernal/html/geometry.cjs +1 -1
  6. package/dist/kernal/html/geometry.d.ts +3 -3
  7. package/dist/kernal/html/geometry.mjs +22 -22
  8. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.cjs +1 -1
  9. package/dist/mediaTypes/html/DefaultHtmlSymbolMeasure.mjs +9 -9
  10. package/dist/mediaTypes/html/renderer/HtmlRenderer.cjs +1 -1
  11. package/dist/mediaTypes/html/renderer/HtmlRenderer.mjs +7 -7
  12. package/dist/mediaTypes/html/renderer/document/HtmlDocument.cjs +1 -1
  13. package/dist/mediaTypes/html/renderer/document/HtmlDocument.mjs +22 -22
  14. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.cjs +1 -1
  15. package/dist/mediaTypes/html/renderer/document/HtmlPageCalculator.mjs +13 -13
  16. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.cjs +1 -1
  17. package/dist/mediaTypes/html/renderer/documents/HtmlDocumentsProvider.mjs +39 -39
  18. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.cjs +1 -1
  19. package/dist/mediaTypes/html/renderer/html/HtmlContentProcessor.mjs +8 -8
  20. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.cjs +1 -1
  21. package/dist/mediaTypes/html/renderer/image/HtmlImageLoader.mjs +8 -8
  22. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.cjs +1 -1
  23. package/dist/mediaTypes/html/renderer/layout/HtmlRendererViewport.mjs +12 -12
  24. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.cjs +1 -1
  25. package/dist/mediaTypes/html/renderer/layout/pageStripRouteChange.mjs +10 -10
  26. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.cjs +1 -1
  27. package/dist/mediaTypes/html/renderer/location/HtmlLayoutStatePreserver.mjs +14 -14
  28. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.cjs +1 -1
  29. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.d.ts +0 -1
  30. package/dist/mediaTypes/html/renderer/style/HtmlStyleProvider.mjs +6 -7
  31. package/dist/mediaTypes/html/renderer/style/html-content.cjs +4 -0
  32. package/dist/mediaTypes/html/renderer/style/html-content.mjs +1 -1
  33. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.cjs +1 -1
  34. package/dist/mediaTypes/pdf/fileParser/PdfFileParser.mjs +7 -7
  35. package/dist/mediaTypes/pdf/renderer/PdfDocument.cjs +1 -1
  36. package/dist/mediaTypes/pdf/renderer/PdfDocument.mjs +6 -6
  37. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.cjs +1 -1
  38. package/dist/mediaTypes/pdf/renderer/documents/PdfDocumentsProvider.mjs +7 -7
  39. package/package.json +2 -2
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("./common/uuid.cjs"),n=require("./EventEmitter.cjs"),r=require("./i18n/applyNamed.cjs"),i=require("./logger/LoggerFactory.cjs"),a=require("./MediaTypeRegistry.cjs"),o=require("./Options.cjs"),s=require("./pipelines/FileLoadPipeline.cjs"),c=require("./pipelines/InputFormatter.cjs"),l=require("./ReaderInfo.cjs"),u=require("./services/ServiceCollection.cjs");let d=require("js-logger");d=e.__toESM(d,1);var f=()=>({onLanguageChange:()=>()=>{},getText:(e,t,n)=>r.applyNamed(t,n),changeLanguage:async()=>{},getCurrentLanguage:()=>`en-us`,getSupportedLanguages:()=>[],dispose:async()=>{}}),p=class{constructor(e,t,r){if(this.currentExtension=``,this.currentIsLoaded=!1,this.currentIsDisposed=!1,this.currentIsCancelled=!1,this.options=Object.assign(new o.Options,e),this.version=e.version||`1.0.0`,this.readerInfo=new l.ReaderInfo(this.version,e.baseUrl,e.preventCacheHash,e.debug),this.events=new n.EventEmitter,this.locale=t.locale??f(),this.device=t.device,!this.device)throw Error(`device is required.for web browser, use WebBrowser class.`);if(this.loggerFactory=t?.loggerFactory??new i.LoggerFactory(e.debug?d.default.DEBUG:d.default.INFO),this.logger=this.loggerFactory.getLogger(this.constructor.name),this.mediaTypeRegistry=new a.MediaTypeRegistry,this.services=new u.ServiceCollection(this.locale,this.events,this.readerInfo),t)for(let e of u.CORE_SERVICE_KEYS){let n=t[e];n!==void 0&&this.services.add(e,()=>n)}this.services.registerCoreServices(),this.inputFormatter=new c.InputFormatter(this.services,this.options),this.lifecycle=r??{},this.pipeline=new s.FileLoadPipeline({inputFormatter:this.inputFormatter,mediaTypeRegistry:this.mediaTypeRegistry,services:this.services,options:this.options,events:this.events,lifecycle:this.lifecycle})}get id(){return this.instanceId||=t.getUuid(),this.instanceId}get loaded(){return this.currentIsLoaded}get disposed(){return this.currentIsDisposed}get cancelled(){return this.currentIsCancelled}get context(){return this.currentContext}get url(){return this.currentUrl}get openOptions(){return this.currentOpenOptions}get extension(){return this.currentExtension}getFileParser(){return this.fileParser}async load(e,t,n){if(this.currentIsDisposed)throw Error(`file loader is disposed.`);this.currentIsLoaded&&await this.clear(),this.currentIsDisposed=!1,this.currentIsCancelled=!1;try{await this.fileParser?.dispose(),this.fileParser=void 0;let r=await this.pipeline.load(e,t,{...n,attachContext:e=>{this.currentContext=e,this.currentOpenOptions=e.openOptions,n?.attachContext?.(e)},onAbortController:e=>{this.abortController=e,n?.onAbortController?.(e)},isCancelled:()=>this.currentIsCancelled||!!n?.isCancelled?.()});return this.applyResult(r),r}finally{this.currentIsLoaded=!0}}applyResult(e){this.currentUrl=e.url,this.currentOpenOptions=e.openOptions,this.currentExtension=e.extension,this.currentContext=e.context,this.fileParser=e.fileParser,this.abortController=e.abortController}markDisposed(){this.currentIsDisposed=!0}async dispose(){await this.lifecycle.onDisposing?.(),await this.clear(),this.currentIsDisposed=!0,await this.lifecycle.onDisposed?.()}async clear(){try{this.abortController&&(this.abortController.abort(`Cancelled`),this.abortController=void 0,this.logger.info(`User cancelled task,url`,this.url),this.currentIsCancelled=!0)}catch{}this.fileParser&&=(await this.fileParser.dispose(),void 0),this.currentUrl=void 0,this.currentOpenOptions=void 0,this.currentExtension=``,this.currentContext=void 0,this.currentIsLoaded=!1}};exports.FileLoader=p;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../_virtual/_rolldown/runtime.cjs"),t=require("./common/uuid.cjs"),n=require("./EventEmitter.cjs"),r=require("./i18n/applyNamed.cjs"),i=require("./logger/LoggerFactory.cjs"),a=require("./MediaTypeRegistry.cjs"),o=require("./Options.cjs"),s=require("./pipelines/FileLoadPipeline.cjs"),c=require("./pipelines/InputFormatter.cjs"),l=require("./ReaderInfo.cjs"),u=require("./services/ServiceCollection.cjs");let d=require("js-logger");d=e.__toESM(d,1);var f=()=>({onLanguageChange:()=>()=>{},getText:(e,t,n)=>r.applyNamed(t,n),changeLanguage:async()=>{},getCurrentLanguage:()=>`en-us`,getSupportedLanguages:()=>[],dispose:async()=>{}}),p=class{constructor(e,t,r){if(this.currentExtension=``,this.currentIsLoaded=!1,this.currentIsDisposed=!1,this.currentIsCancelled=!1,this.options=Object.assign(new o.Options,e),this.version=e.version||`1.0.0`,this.readerInfo=new l.ReaderInfo(this.version,e.baseUrl,e.preventCacheHash,e.debug),this.events=new n.EventEmitter,this.locale=t.locale??f(),this.device=t.device,!this.device)throw Error(`device is required.for web browser, use WebBrowser class.`);if(this.loggerFactory=t?.loggerFactory??new i.LoggerFactory(e.debug?d.default.DEBUG:d.default.INFO),this.logger=this.loggerFactory.getLogger(this.constructor.name),this.mediaTypeRegistry=new a.MediaTypeRegistry,this.services=new u.ServiceCollection(this.locale,this.events,this.readerInfo),t)for(let e of u.CORE_SERVICE_KEYS){let n=t[e];n!==void 0&&this.services.add(e,()=>n)}this.services.registerCoreServices(),this.inputFormatter=new c.InputFormatter(this.services,this.options),this.lifecycle=r??{},this.pipeline=new s.FileLoadPipeline({inputFormatter:this.inputFormatter,mediaTypeRegistry:this.mediaTypeRegistry,services:this.services,options:this.options,events:this.events,lifecycle:this.lifecycle})}get id(){return this.instanceId||=t.getUuid(),this.instanceId}get loaded(){return this.currentIsLoaded}get disposed(){return this.currentIsDisposed}get cancelled(){return this.currentIsCancelled}get context(){return this.currentContext}get url(){return this.currentUrl}get openOptions(){return this.currentOpenOptions}get extension(){return this.currentExtension}getFileParser(){return this.fileParser}async load(e,t,n){if(this.currentIsDisposed)throw Error(`file loader is disposed.`);this.currentIsLoaded&&await this.clear(),this.currentIsDisposed=!1,this.currentIsCancelled=!1;try{await this.fileParser?.dispose(),this.fileParser=void 0;let r=await this.pipeline.load(e,t,{...n,attachContext:e=>{this.currentContext=e,this.currentOpenOptions=e.openOptions,n?.attachContext?.(e)},onAbortController:e=>{this.abortController=e,n?.onAbortController?.(e)},isCancelled:()=>this.currentIsCancelled||!!n?.isCancelled?.()});return this.applyResult(r),r}finally{this.currentIsLoaded=!0}}applyResult(e){this.currentUrl=e.url,this.currentOpenOptions=e.openOptions,this.currentExtension=e.extension,this.currentContext=e.context,this.fileParser=e.fileParser,this.abortController=e.abortController}markDisposed(){this.currentIsDisposed=!0}async dispose(){await this.lifecycle.onDisposing?.(),await this.clear(),this.currentIsDisposed=!0,await this.lifecycle.onDisposed?.()}async clear(){try{this.abortController&&(this.abortController.abort(`Cancelled`),this.abortController=void 0,this.currentIsCancelled=!0)}catch{}this.fileParser&&=(await this.fileParser.dispose(),void 0),this.currentUrl=void 0,this.currentOpenOptions=void 0,this.currentExtension=``,this.currentContext=void 0,this.currentIsLoaded=!1}};exports.FileLoader=p;
@@ -91,7 +91,7 @@ var f = () => ({
91
91
  }
92
92
  async clear() {
93
93
  try {
94
- this.abortController && (this.abortController.abort("Cancelled"), this.abortController = void 0, this.logger.info("User cancelled task,url", this.url), this.currentIsCancelled = !0);
94
+ this.abortController && (this.abortController.abort("Cancelled"), this.abortController = void 0, this.currentIsCancelled = !0);
95
95
  } catch {}
96
96
  this.fileParser &&= (await this.fileParser.dispose(), void 0), this.currentUrl = void 0, this.currentOpenOptions = void 0, this.currentExtension = "", this.currentContext = void 0, this.currentIsLoaded = !1;
97
97
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./EventNames.cjs"),t=require("./common/data.cjs"),n=require("./common/object.cjs"),r=require("./common/uuid.cjs"),i=require("./web/BrowserCapabilities.cjs"),a=require("./common/naming.cjs"),o=require("./Options.cjs"),s=require("./OpenOptions.cjs"),c=require("./services/ServiceCollection.cjs"),l=require("./FileLoader.cjs"),u=require("./html/dom.cjs"),d=require("./hostViewport.cjs"),f=require("./html/injector.cjs"),p=require("./plugins/PluginManager.cjs"),m=require("./Theme.cjs"),h=require("./OptionsProvider.cjs");var g=class{constructor(n,r){if(this.currentIsLoaded=!1,this.currentIsDidposed=!1,this.currentIsCancelled=!1,this.loadingShowToken=0,this.isLoadingLayerVisible=!1,this.loadingShowDelayMs=1200,this.isInIframe=!1,this.getParsingText=()=>this.locale.getText(`share_parsing_text`,`Parsing...`),this.showLoading=async e=>{if(this.pendingLoadingText=e,this.isLoadingLayerVisible){await this.loading?.show(e);return}if(this.loadingDelayTimer!=null)return;let t=this.loadingShowToken;this.loadingDelayTimer=setTimeout(()=>{this.loadingDelayTimer=void 0,t===this.loadingShowToken&&(this.isLoadingLayerVisible=!0,this.loading?.show(this.pendingLoadingText))},this.loadingShowDelayMs)},this.cancelLoadingShow=()=>{this.loadingShowToken++,this.loadingDelayTimer!=null&&(clearTimeout(this.loadingDelayTimer),this.loadingDelayTimer=void 0),this.isLoadingLayerVisible=!1,this.pendingLoadingText=void 0},this.hideLoading=async()=>{this.cancelLoadingShow(),await this.loading?.hide()},this.createFileDownloadingCallback=()=>async(e,n,r)=>{if(r){await this.showLoading(this.getParsingText());return}let i=e>0?e:n,a=t.formatFileSize(n),o=t.formatFileSize(i),s=this.locale.getText(`share_loading_file_progress`,`Loading file... {loaded}/{total}`,{loaded:a,total:o});await this.showLoading(s)},this.changeTheme=async t=>{if(!t)return;this.options.themeName=t;let n=await this.getTheme(t);await this.applyTheme(n),await this.getRenderer()?.applyTheme(n),this.events.emit(e.EventNames.ThemeChange,n)},this.getTheme=async e=>{let t=await this.services.get(`themeProvider`),n;return n=t?t.getTheme(e):new m.Theme,n||=new m.Theme,n},this.applyTheme=async e=>{for(let t of m.ThemeCssKeys)this.rootContainer.style.setProperty(a.toCssVariableName(t),e[t]);if(e.vars)for(let[t,n]of Object.entries(e.vars))t&&this.rootContainer.style.setProperty(t,n);let t=m.Theme.getScrollStyles(`.${m.Theme.customScrollerClassName}`);f.injectCssContent(this.rootContainer.ownerDocument,t,!0,`custom-scroll-styles`)},this.fileLoader=new l.FileLoader(n,r,this),r)for(let e of c.UI_SERVICE_KEYS){let t=r[e];t!==void 0&&this.services.add(e,()=>t)}this.services.registerUiServices(),this.options=this.fileLoader.options,this.version=this.fileLoader.version,this.logger=this.fileLoader.loggerFactory.getLogger(this.constructor.name),this.pluginManager=new p.PluginManager(this,this.fileLoader.loggerFactory,this.services,this.version),this.optionsProvider=new h.OptionsProvider(this.events,this.options),this.events.on(e.EventNames.OptionsChange,e=>{this.rootContainer&&o.isOptionKey(e)&&this.optionsProvider.applyCssVariables(this.rootContainer)})}get id(){return this.fileLoader.id}get services(){return this.fileLoader.services.asReaderServices()}get device(){return this.fileLoader.device}get loggerFactory(){return this.fileLoader.loggerFactory}get events(){return this.fileLoader.events}get readerInfo(){return this.fileLoader.readerInfo}get mediaTypeRegistry(){return this.fileLoader.mediaTypeRegistry}get locale(){return this.fileLoader.locale}get loaded(){return this.currentIsLoaded}get disposed(){return this.currentIsDidposed}get cancelled(){return this.currentIsCancelled||this.fileLoader.cancelled}get notifier(){return this.currentNotifier}get loading(){return this.currentLoading}async reload(){if(!this.container)return;let e=this.url,t=this.container,r=this.rootContainer,i=n.deepClone(this.openOptions);await this.clear(),await this.open(e,t,r,i)}async open(t,n,r,i){if(this.currentIsDidposed)throw Error(`reader is disposed.`);if(n==null)throw Error(`container is required. Use FileLoader for headless parse-only scenarios.`);if(this.fileLoader.inputFormatter.guardUrl(t),this.currentIsLoaded&&await this.clear(),this.currentIsDidposed=!1,this.loadFail=void 0,this.currentIsCancelled=!1,this.container=n,this.rootContainer=r,this.startLoadTime=new Date,this.events.emit(e.EventNames.StartLoadResource,{reader:this,startLoadTime:this.startLoadTime}),this.readerWrapper=this.fileLoader.inputFormatter.formatReaderWrapper(n),!this.readerWrapper)throw Error(`container is invalid.`);this.rootContainer||=this.readerWrapper,this.optionsProvider.applyCssVariables(this.rootContainer);let a=await this.getTheme(this.options.themeName);await this.applyTheme(a),this.currentNotifier=await this.services.get(`notifier`,!1),this.currentLoading=await this.services.get(`loading`,!1),u.emptyElement(this.readerWrapper),this.hostViewport=d.resolveHostViewport(this.readerWrapper),this.readerWrapper.setAttribute(`data-viewport-mode`,this.hostViewport.mode),this.hostViewport.mode==`window`&&!this.readerWrapper.style.minHeight&&(this.readerWrapper.style.minHeight=this.hostViewport.height+`px`,this.readerWrapper.setAttribute(`data-fc-auto-min-height`,`true`)),await this.loading?.initialize(this.readerWrapper,{backgroundColor:`var(${m.Theme.ReaderBackground})`,textColor:`var(${m.Theme.TextMutedColor})`,iconColor:`var(${m.Theme.TextAccentColor})`}),await this.showLoading();try{await this.fileLoader.getFileParser()?.dispose();let e=Object.assign(new s.OpenOptions,i);e.fileDownloadingCallback||=this.createFileDownloadingCallback();let n=await this.fileLoader.load(t,e,{measureFilePercentage:!0,prepareContext:async({extension:e})=>(this.isInIframe=!1,await this.createReaderContainer(e),{rootContainer:this.rootContainer,readerContainer:this.readerContainer,readerWrapper:this.readerWrapper}),afterParserReady:async()=>{await this.showLoading(this.getParsingText())},onAbortController:e=>{e&&(this.abortController=e)},isCancelled:()=>this.currentIsCancelled});this.abortController=n.abortController,await this.mountRenderer(n)}catch(e){throw this.loadFail=!0,e}finally{if(this.currentIsLoaded=!0,await this.hideLoading(),this.readerWrapper){this.readerWrapper.style.removeProperty(`background`);let e=this.readerWrapper.getAttribute(`data-reader-wrapper-bg`);e&&this.readerWrapper.style.setProperty(`background`,e)}this.abortController&&=null,this.loadFail||this.events.emit(e.EventNames.ResourceLoad,{reader:this,startLoadTime:this.startLoadTime})}}async createReaderContainer(t){let n=this.options.iframeRequiredExtensions,a;if(!n.includes(t)||this.readerWrapper instanceof this.readerWrapper.ownerDocument.defaultView.window.HTMLBodyElement)this.readerContainer=f.createElement(this.readerWrapper.ownerDocument,`div`,r.getRandomId(!0),{style:this.getReaderContainerBoxStyle(t)}),this.readerWrapper.appendChild(this.readerContainer),a=this.readerContainer.ownerDocument;else{this.isInIframe=!0;let n=this.createTopIFrame();this.readerWrapper.appendChild(n),i.BrowserCapabilities.isFirefox()&&(n.srcdoc=`<!DOCTYPE html><html><head></head><body></body></html>`);let o=n.contentDocument;this.readerContainer=f.createElement(o,`div`,r.getRandomId(!0),{style:this.getReaderContainerBoxStyle(t)}),o.body.appendChild(this.readerContainer),a=o,n.contentWindow.addEventListener(`click`,t=>{this.events.emit(e.EventNames.ReaderClick,{e:t,reader:this})},!0),n.contentWindow.addEventListener(`mouseenter`,t=>{this.events.emit(e.EventNames.ReaderMouseEnter,{e:t,reader:this})},!0)}this.rootContainer.addEventListener(`click`,t=>{this.events.emit(e.EventNames.ReaderClick,{e:t,reader:this})},!0),this.rootContainer.addEventListener(`mouseenter`,t=>{this.events.emit(e.EventNames.ReaderMouseEnter,{e:t,reader:this})},!0),this.readerContainer.setAttribute(`data-role`,`readerContainer`),this.readerContainer.setAttribute(`data-viewport-mode`,this.getHostViewport().mode),await this.onContainerCreated?.(),await this.showLoading();let o=this.readerWrapper.style.getPropertyValue(`background`);o&&this.readerWrapper.setAttribute(`data-reader-wrapper-bg`,o),(await this.services.get(`wallpaperProvider`))?.changeWallpaper(this.options.wallpaperName),this.options.enableInjectResetCss&&f.injectCssContent(a,`html{touch-action:none;touch-action:pan-y;}body *{box-sizing:border-box}html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{padding:0;margin:0;}ul,ol,li{list-style:none;}i,em{font-style:normal}img{border:0;}table{border-collapse:collapse;border-spacing:0;}table td{padding:0;margin:0;}section,article,aside,header,footer,nav,dialog,figure{padding:0;margin:0;}html{text-size-adjust: 100%;}`,!1,`reader_global_style`,(e,t)=>{e.insertBefore(t,e.firstChild)}),await this.notifier.initialize(this.readerContainer)}async mountRenderer(t){this.renderer&&=(await this.renderer.dispose(),null);let n=await this.mediaTypeRegistry.createRenderer(this,t.fileParser,this.readerContainer);this.renderer=n,await this.onRenderer?.(this.renderer);let r=t.percentage,i=t.location;if(!isNaN(r)&&r<=1&&r>=0?await this.renderer.navigator.gotoPercentage(r,{from:`restore`}):await this.renderer.load(i),this.renderer.getDocuments().length==0)throw Error(`Empty File`);let a=await this.getTheme(this.options.themeName);await this.getRenderer()?.applyTheme(a),await this.onRenderered?.(this.renderer),await this.hideLoading(),this.events.emit(e.EventNames.RendererLoad,this.renderer),await this.pluginManager?.enablePlugins(t.extension)}get context(){return this.fileLoader.context}get url(){return this.fileLoader.url}get openOptions(){return this.fileLoader.openOptions}get extension(){return this.fileLoader.extension}get resourceIsUnload(){return!this.currentIsLoaded}get inIframe(){return this.isInIframe}getFileParser(){return this.fileLoader.getFileParser()}getRenderer(){return this.renderer}async goto(e){await this.getRenderer()?.navigator.goto(e)}async gotoUrl(e){await this.getRenderer()?.navigator.gotoUrl(e)}async gotoPercentage(e,t){await this.getRenderer()?.navigator.gotoPercentage(e,t)}createTopIFrame(e){let t=f.createElement(document,`iframe`,e);return i.BrowserCapabilities.isFirefox()?t.setAttribute(`src`,`javascript:`):t.setAttribute(`src`,`about:blank`),t.setAttribute(`frameborder`,`0`),t.setAttribute(`border`,`0`),t.setAttribute(`allowfullscreen`,`true`),t.setAttribute(`width`,`100%`),t.setAttribute(`height`,`100%`),t.setAttribute(`style`,`margin:0;padding:0`),t}getReaderContainer(){return this.readerContainer}getRootContainer(){return this.rootContainer}getHostViewport(){if(this.hostViewport)return this.hostViewport;let e=this.readerWrapper??this.rootContainer;return e?(this.hostViewport=d.resolveHostViewport(e),this.hostViewport):{mode:`window`,height:600,width:800,observerRoot:null,scrollElement:document.scrollingElement??document.documentElement,scrollWatchTarget:document}}refreshHostViewport(){let e=this.readerWrapper??this.rootContainer;return e?this.hostViewport?(this.hostViewport=d.refreshHostViewportSize(e,this.hostViewport),this.hostViewport):(this.hostViewport=d.resolveHostViewport(e),this.hostViewport):this.getHostViewport()}getReaderContainerBoxStyle(e){let t=this.getHostViewport(),n=`background:var(${m.Theme.ReaderBackground})`;return t.mode==`host`?`width:100%;height:100%;overflow:hidden;position:relative;${n}`:(e??``).toLowerCase().replace(/^\./,``)==`pdf`?`width:100%;height:${t.height}px;overflow:hidden;position:relative;${n}`:`width:100%;height:auto;min-height:${t.height}px;overflow:visible;position:relative;${n}`}async dispose(){await this.onDisposing?.(),await this.clear(),this.currentIsDidposed=!0,this.fileLoader.markDisposed(),await this.onDisposed?.(),this.events.emit(e.EventNames.ReaderDisposed,this)}async clear(){this.cancelLoadingShow();try{if(this.context?.id&&this.startLoadTime){let t=await this.renderer?.progressTracker.getProgress(!0);t&&this.events.emit(e.EventNames.ResourceUnload,{reader:this,id:this.context.id,startLoadTime:this.startLoadTime,progress:t})}this.abortController&&(this.abortController.abort(`Cancelled`),this.abortController=null,this.logger.info(`User cancelled task,url`,this.url),this.currentIsCancelled=!0)}catch{}await this.pluginManager?.dispose(),this.renderer&&=(await this.renderer.dispose(),null),await this.fileLoader.clear(),this.readerWrapper&&(u.emptyElement(this.readerWrapper),this.readerWrapper.getAttribute(`data-fc-auto-min-height`)==`true`&&(this.readerWrapper.style.removeProperty(`min-height`),this.readerWrapper.removeAttribute(`data-fc-auto-min-height`)),this.readerWrapper.removeAttribute(`data-viewport-mode`)),this.startLoadTime=null,this.currentIsLoaded=!1,this.events.emit(e.EventNames.ReaderCleared,this)}};exports.Reader=g;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./EventNames.cjs"),t=require("./common/data.cjs"),n=require("./common/object.cjs"),r=require("./common/uuid.cjs"),i=require("./web/BrowserCapabilities.cjs"),a=require("./common/naming.cjs"),o=require("./Options.cjs"),s=require("./OpenOptions.cjs"),c=require("./services/ServiceCollection.cjs"),l=require("./FileLoader.cjs"),u=require("./html/dom.cjs"),d=require("./hostViewport.cjs"),f=require("./html/injector.cjs"),p=require("./plugins/PluginManager.cjs"),m=require("./Theme.cjs"),h=require("./OptionsProvider.cjs");var g=class{constructor(n,r){if(this.currentIsLoaded=!1,this.currentIsDidposed=!1,this.currentIsCancelled=!1,this.loadingShowToken=0,this.isLoadingLayerVisible=!1,this.loadingShowDelayMs=1200,this.isInIframe=!1,this.getParsingText=()=>this.locale.getText(`share_parsing_text`,`Parsing...`),this.showLoading=async e=>{if(this.pendingLoadingText=e,this.isLoadingLayerVisible){await this.loading?.show(e);return}if(this.loadingDelayTimer!=null)return;let t=this.loadingShowToken;this.loadingDelayTimer=setTimeout(()=>{this.loadingDelayTimer=void 0,t===this.loadingShowToken&&(this.isLoadingLayerVisible=!0,this.loading?.show(this.pendingLoadingText))},this.loadingShowDelayMs)},this.cancelLoadingShow=()=>{this.loadingShowToken++,this.loadingDelayTimer!=null&&(clearTimeout(this.loadingDelayTimer),this.loadingDelayTimer=void 0),this.isLoadingLayerVisible=!1,this.pendingLoadingText=void 0},this.hideLoading=async()=>{this.cancelLoadingShow(),await this.loading?.hide()},this.createFileDownloadingCallback=()=>async(e,n,r)=>{if(r){await this.showLoading(this.getParsingText());return}let i=e>0?e:n,a=t.formatFileSize(n),o=t.formatFileSize(i),s=this.locale.getText(`share_loading_file_progress`,`Loading file... {loaded}/{total}`,{loaded:a,total:o});await this.showLoading(s)},this.changeTheme=async t=>{if(!t)return;this.options.themeName=t;let n=await this.getTheme(t);await this.applyTheme(n),await this.getRenderer()?.applyTheme(n),this.events.emit(e.EventNames.ThemeChange,n)},this.getTheme=async e=>{let t=await this.services.get(`themeProvider`),n;return n=t?t.getTheme(e):new m.Theme,n||=new m.Theme,n},this.applyTheme=async e=>{for(let t of m.ThemeCssKeys)this.rootContainer.style.setProperty(a.toCssVariableName(t),e[t]);if(e.vars)for(let[t,n]of Object.entries(e.vars))t&&this.rootContainer.style.setProperty(t,n);let t=m.Theme.getScrollStyles(`.${m.Theme.customScrollerClassName}`);f.injectCssContent(this.rootContainer.ownerDocument,t,!0,`custom-scroll-styles`)},this.fileLoader=new l.FileLoader(n,r,this),r)for(let e of c.UI_SERVICE_KEYS){let t=r[e];t!==void 0&&this.services.add(e,()=>t)}this.services.registerUiServices(),this.options=this.fileLoader.options,this.version=this.fileLoader.version,this.logger=this.fileLoader.loggerFactory.getLogger(this.constructor.name),this.pluginManager=new p.PluginManager(this,this.fileLoader.loggerFactory,this.services,this.version),this.optionsProvider=new h.OptionsProvider(this.events,this.options),this.events.on(e.EventNames.OptionsChange,e=>{this.rootContainer&&o.isOptionKey(e)&&this.optionsProvider.applyCssVariables(this.rootContainer)})}get id(){return this.fileLoader.id}get services(){return this.fileLoader.services.asReaderServices()}get device(){return this.fileLoader.device}get loggerFactory(){return this.fileLoader.loggerFactory}get events(){return this.fileLoader.events}get readerInfo(){return this.fileLoader.readerInfo}get mediaTypeRegistry(){return this.fileLoader.mediaTypeRegistry}get locale(){return this.fileLoader.locale}get loaded(){return this.currentIsLoaded}get disposed(){return this.currentIsDidposed}get cancelled(){return this.currentIsCancelled||this.fileLoader.cancelled}get notifier(){return this.currentNotifier}get loading(){return this.currentLoading}async reload(){if(!this.container)return;let e=this.url,t=this.container,r=this.rootContainer,i=n.deepClone(this.openOptions);await this.clear(),await this.open(e,t,r,i)}async open(t,n,r,i){if(this.currentIsDidposed)throw Error(`reader is disposed.`);if(n==null)throw Error(`container is required. Use FileLoader for headless parse-only scenarios.`);if(this.fileLoader.inputFormatter.guardUrl(t),this.currentIsLoaded&&await this.clear(),this.currentIsDidposed=!1,this.loadFail=void 0,this.currentIsCancelled=!1,this.container=n,this.rootContainer=r,this.startLoadTime=new Date,this.events.emit(e.EventNames.StartLoadResource,{reader:this,startLoadTime:this.startLoadTime}),this.readerWrapper=this.fileLoader.inputFormatter.formatReaderWrapper(n),!this.readerWrapper)throw Error(`container is invalid.`);this.rootContainer||=this.readerWrapper,this.optionsProvider.applyCssVariables(this.rootContainer);let a=await this.getTheme(this.options.themeName);await this.applyTheme(a),this.currentNotifier=await this.services.get(`notifier`,!1),this.currentLoading=await this.services.get(`loading`,!1),u.emptyElement(this.readerWrapper),this.hostViewport=d.resolveHostViewport(this.readerWrapper),this.readerWrapper.setAttribute(`data-viewport-mode`,this.hostViewport.mode),this.hostViewport.mode==`window`&&!this.readerWrapper.style.minHeight&&(this.readerWrapper.style.minHeight=this.hostViewport.height+`px`,this.readerWrapper.setAttribute(`data-fc-auto-min-height`,`true`)),await this.loading?.initialize(this.readerWrapper,{backgroundColor:`var(${m.Theme.ReaderBackground})`,textColor:`var(${m.Theme.TextMutedColor})`,iconColor:`var(${m.Theme.TextAccentColor})`}),await this.showLoading();try{await this.fileLoader.getFileParser()?.dispose();let e=Object.assign(new s.OpenOptions,i);e.fileDownloadingCallback||=this.createFileDownloadingCallback();let n=await this.fileLoader.load(t,e,{measureFilePercentage:!0,prepareContext:async({extension:e})=>(this.isInIframe=!1,await this.createReaderContainer(e),{rootContainer:this.rootContainer,readerContainer:this.readerContainer,readerWrapper:this.readerWrapper}),afterParserReady:async()=>{await this.showLoading(this.getParsingText())},onAbortController:e=>{e&&(this.abortController=e)},isCancelled:()=>this.currentIsCancelled});this.abortController=n.abortController,await this.mountRenderer(n)}catch(e){throw this.loadFail=!0,e}finally{if(this.currentIsLoaded=!0,await this.hideLoading(),this.readerWrapper){this.readerWrapper.style.removeProperty(`background`);let e=this.readerWrapper.getAttribute(`data-reader-wrapper-bg`);e&&this.readerWrapper.style.setProperty(`background`,e)}this.abortController&&=null,this.loadFail||this.events.emit(e.EventNames.ResourceLoad,{reader:this,startLoadTime:this.startLoadTime})}}async createReaderContainer(t){let n=this.options.iframeRequiredExtensions,a;if(!n.includes(t)||this.readerWrapper instanceof this.readerWrapper.ownerDocument.defaultView.window.HTMLBodyElement)this.readerContainer=f.createElement(this.readerWrapper.ownerDocument,`div`,r.getRandomId(!0),{style:this.getReaderContainerBoxStyle(t)}),this.readerWrapper.appendChild(this.readerContainer),a=this.readerContainer.ownerDocument;else{this.isInIframe=!0;let n=this.createTopIFrame();this.readerWrapper.appendChild(n),i.BrowserCapabilities.isFirefox()&&(n.srcdoc=`<!DOCTYPE html><html><head></head><body></body></html>`);let o=n.contentDocument;this.readerContainer=f.createElement(o,`div`,r.getRandomId(!0),{style:this.getReaderContainerBoxStyle(t)}),o.body.appendChild(this.readerContainer),a=o,n.contentWindow.addEventListener(`click`,t=>{this.events.emit(e.EventNames.ReaderClick,{e:t,reader:this})},!0),n.contentWindow.addEventListener(`mouseenter`,t=>{this.events.emit(e.EventNames.ReaderMouseEnter,{e:t,reader:this})},!0)}this.rootContainer.addEventListener(`click`,t=>{this.events.emit(e.EventNames.ReaderClick,{e:t,reader:this})},!0),this.rootContainer.addEventListener(`mouseenter`,t=>{this.events.emit(e.EventNames.ReaderMouseEnter,{e:t,reader:this})},!0),this.readerContainer.setAttribute(`data-role`,`readerContainer`),this.readerContainer.setAttribute(`data-viewport-mode`,this.getHostViewport().mode),await this.onContainerCreated?.(),await this.showLoading();let o=this.readerWrapper.style.getPropertyValue(`background`);o&&this.readerWrapper.setAttribute(`data-reader-wrapper-bg`,o),(await this.services.get(`wallpaperProvider`))?.changeWallpaper(this.options.wallpaperName),this.options.enableInjectResetCss&&f.injectCssContent(a,`html{touch-action:none;touch-action:pan-y;}body *{box-sizing:border-box}html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{padding:0;margin:0;}ul,ol,li{list-style:none;}i,em{font-style:normal}img{border:0;}table{border-collapse:collapse;border-spacing:0;}table td{padding:0;margin:0;}section,article,aside,header,footer,nav,dialog,figure{padding:0;margin:0;}html{text-size-adjust: 100%;}`,!1,`reader_global_style`,(e,t)=>{e.insertBefore(t,e.firstChild)}),await this.notifier.initialize(this.readerContainer)}async mountRenderer(t){this.renderer&&=(await this.renderer.dispose(),null);let n=await this.mediaTypeRegistry.createRenderer(this,t.fileParser,this.readerContainer);this.renderer=n,await this.onRenderer?.(this.renderer);let r=t.percentage,i=t.location;if(!isNaN(r)&&r<=1&&r>=0?await this.renderer.navigator.gotoPercentage(r,{from:`restore`}):await this.renderer.load(i),this.renderer.getDocuments().length==0)throw Error(`Empty File`);let a=await this.getTheme(this.options.themeName);await this.getRenderer()?.applyTheme(a),await this.onRenderered?.(this.renderer),await this.hideLoading(),this.events.emit(e.EventNames.RendererLoad,this.renderer),await this.pluginManager?.enablePlugins(t.extension)}get context(){return this.fileLoader.context}get url(){return this.fileLoader.url}get openOptions(){return this.fileLoader.openOptions}get extension(){return this.fileLoader.extension}get resourceIsUnload(){return!this.currentIsLoaded}get inIframe(){return this.isInIframe}getFileParser(){return this.fileLoader.getFileParser()}getRenderer(){return this.renderer}async goto(e){await this.getRenderer()?.navigator.goto(e)}async gotoUrl(e){await this.getRenderer()?.navigator.gotoUrl(e)}async gotoPercentage(e,t){await this.getRenderer()?.navigator.gotoPercentage(e,t)}createTopIFrame(e){let t=f.createElement(document,`iframe`,e);return i.BrowserCapabilities.isFirefox()?t.setAttribute(`src`,`javascript:`):t.setAttribute(`src`,`about:blank`),t.setAttribute(`frameborder`,`0`),t.setAttribute(`border`,`0`),t.setAttribute(`allowfullscreen`,`true`),t.setAttribute(`width`,`100%`),t.setAttribute(`height`,`100%`),t.setAttribute(`style`,`margin:0;padding:0`),t}getReaderContainer(){return this.readerContainer}getRootContainer(){return this.rootContainer}getHostViewport(){if(this.hostViewport)return this.hostViewport;let e=this.readerWrapper??this.rootContainer;return e?(this.hostViewport=d.resolveHostViewport(e),this.hostViewport):{mode:`window`,height:600,width:800,observerRoot:null,scrollElement:document.scrollingElement??document.documentElement,scrollWatchTarget:document}}refreshHostViewport(){let e=this.readerWrapper??this.rootContainer;return e?this.hostViewport?(this.hostViewport=d.refreshHostViewportSize(e,this.hostViewport),this.hostViewport):(this.hostViewport=d.resolveHostViewport(e),this.hostViewport):this.getHostViewport()}getReaderContainerBoxStyle(e){let t=this.getHostViewport(),n=`background:var(${m.Theme.ReaderBackground})`;return t.mode==`host`?`width:100%;height:100%;overflow:hidden;position:relative;${n}`:(e??``).toLowerCase().replace(/^\./,``)==`pdf`?`width:100%;height:${t.height}px;overflow:hidden;position:relative;${n}`:`width:100%;height:auto;min-height:${t.height}px;overflow:visible;position:relative;${n}`}async dispose(){await this.onDisposing?.(),await this.clear(),this.currentIsDidposed=!0,this.fileLoader.markDisposed(),await this.onDisposed?.(),this.events.emit(e.EventNames.ReaderDisposed,this)}async clear(){this.cancelLoadingShow();try{if(this.context?.id&&this.startLoadTime){let t=await this.renderer?.progressTracker.getProgress(!0);t&&this.events.emit(e.EventNames.ResourceUnload,{reader:this,id:this.context.id,startLoadTime:this.startLoadTime,progress:t})}this.abortController&&(this.abortController.abort(`Cancelled`),this.abortController=null,this.currentIsCancelled=!0)}catch{}await this.pluginManager?.dispose(),this.renderer&&=(await this.renderer.dispose(),null),await this.fileLoader.clear(),this.readerWrapper&&(u.emptyElement(this.readerWrapper),this.readerWrapper.getAttribute(`data-fc-auto-min-height`)==`true`&&(this.readerWrapper.style.removeProperty(`min-height`),this.readerWrapper.removeAttribute(`data-fc-auto-min-height`)),this.readerWrapper.removeAttribute(`data-viewport-mode`)),this.startLoadTime=null,this.currentIsLoaded=!1,this.events.emit(e.EventNames.ReaderCleared,this)}};exports.Reader=g;
@@ -277,7 +277,7 @@ var y = class {
277
277
  progress: t
278
278
  });
279
279
  }
280
- this.abortController && (this.abortController.abort("Cancelled"), this.abortController = null, this.logger.info("User cancelled task,url", this.url), this.currentIsCancelled = !0);
280
+ this.abortController && (this.abortController.abort("Cancelled"), this.abortController = null, this.currentIsCancelled = !0);
281
281
  } catch {}
282
282
  await this.pluginManager?.dispose(), this.renderer &&= (await this.renderer.dispose(), null), await this.fileLoader.clear(), this.readerWrapper && (u(this.readerWrapper), this.readerWrapper.getAttribute("data-fc-auto-min-height") == "true" && (this.readerWrapper.style.removeProperty("min-height"), this.readerWrapper.removeAttribute("data-fc-auto-min-height")), this.readerWrapper.removeAttribute("data-viewport-mode")), this.startLoadTime = null, this.currentIsLoaded = !1, this.events.emit(e.ReaderCleared, this);
283
283
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./finder.cjs"),t=require("./selection.cjs");var n=e=>!!e&&typeof e==`object`&&!(`tagName`in e)&&`commonAncestorContainer`in e,r=e=>{let t=e.getClientRects();for(let e=0;e<t.length;e++){let n=t[e];if(n.height>0||n.width>0)return n}return e.getBoundingClientRect()},i=e=>n(e)?r(e):e.getBoundingClientRect(),a=e=>{if(!n(e))return e;let t=e.startContainer;return t.nodeType===Node.ELEMENT_NODE?t:t.parentElement},o=t=>{let n,r,i,a=[],o,s,c;if(Array.isArray(t)){if(c=`elements`,o=t[0],s=t[t.length-1],n=o.ownerDocument,r=n.defaultView,t.length>1){let n=r.document.createRange();n.setStart(o,0);let s=t[t.length-1],c=e.findLastNode(s);c.nodeType==Node.TEXT_NODE?n.setEnd(c,c.textContent.length):n.setEnd(c,0);let l=n.getBoundingClientRect();i={left:l.left,top:l.top,width:l.width,height:l.height,right:l.right,bottom:l.bottom};for(let e of t){let t=e.getClientRects();a.push(...Array.from(t).map(e=>({left:e.left,top:e.top,width:e.width,height:e.height,right:e.right,bottom:e.bottom})))}}else i=t[0].getBoundingClientRect(),a=Array.from(t[0].getClientRects()).map(e=>({left:e.left,top:e.top,width:e.width,height:e.height,right:e.right,bottom:e.bottom}))}else Object.prototype.hasOwnProperty.call(t,`tagName`)||t.tagName?(c=`element`,o=t,s=o,n=o.ownerDocument,r=n.defaultView,i=t.getBoundingClientRect(),a=Array.from(t.getClientRects()).map(e=>({left:e.left,top:e.top,width:e.width,height:e.height,right:e.right,bottom:e.bottom}))):(c=`range`,o=t.startContainer,s=t.endContainer,n=o.ownerDocument,r=n.defaultView,i=t.getBoundingClientRect(),a=Array.from(t.getClientRects()).map(e=>({left:e.left,top:e.top,width:e.width,height:e.height,right:e.right,bottom:e.bottom})));return{firstBaseNode:o,lastBaseNode:s,baseWindow:r,baseDocument:n,baseBoundingRect:i,baseType:c,baseRects:a}},s={left:-1e5,top:-1e5,visible:!1},c=(e,t)=>{let n=e.target?.ownerDocument;if(!n)return s;let r=n.defaultView,i=e.clientX,a=e.clientY,o=t.ownerDocument.defaultView;for(;o!=r;){let e=r?.frameElement,t=e?.ownerDocument?.defaultView;if(!t)break;r=t;let n=e.getBoundingClientRect();i+=n.left,a+=n.top}return o==r?{left:i,top:a,visible:!0}:s},l=(e,t)=>{let n=e.left+e.width,r=e.top+e.height,i=t.left+t.width,a=t.top+t.height;return t.left>=e.left&&t.top>=e.top&&i<=n&&a<=r},u=(e,t)=>{let n=e.left+e.width,r=e.top+e.height,i=t.left+t.width,a=t.top+t.height,o=Math.max(e.left,t.left),s=Math.max(e.top,t.top),c=Math.min(n,i),l=Math.min(r,a),u=c-o,d=l-s;return u<=0||d<=0?null:{left:o,top:s,width:u,height:d}},d=e=>e.reduce((e,t)=>{let n=Math.min(e.left,t.left),r=Math.min(e.top,t.top),i=Math.max(e.left+e.width,t.left+t.width),a=Math.max(e.top+e.height,t.top+t.height);return{left:n,top:r,width:i-n,height:a-r}}),f=(e,t)=>{let{baseWindow:n,baseRects:r}=o(e),i=r.map(e=>({left:e.left,top:e.top,width:e.width,height:e.height}));for(;t!=n;){let e=n?.frameElement,t=e?.ownerDocument?.defaultView;if(!t)break;n=t;let r=e.getBoundingClientRect();i.forEach(e=>{e.left+=r.left,e.top+=r.top})}return t==n?{normalizedRects:i,inSameWindow:!0}:{normalizedRects:[],inSameWindow:!1}},p=e=>e.width*e.height,m=e=>{let t=e[0],n=p(t);for(let r=1;r<e.length;r++){let i=p(e[r]);i>n&&(t=e[r],n=i)}return t},h=e=>{if(e.length===1)return e[0];let t=d(e),n=Math.max(...e.map(e=>e.width));return t.width>n*2+24?m(e):t},g=(e,t,n=!0)=>{let r=e.filter(e=>e.width>=1&&e.height>=1),i=r.filter(e=>l(t,e));if(i.length>0)return h(i);if(!n)return null;let a=[];for(let e of r){let n=u(t,e);n&&(n.width*n.height<4||a.push({clipped:n,origArea:e.width*e.height}))}return a.length===0?null:(a.sort((e,t)=>{let n=e.clipped.width*e.clipped.height,r=t.clipped.width*t.clipped.height;return r===n?t.origArea-e.origArea:r-n}),a[0].clipped)},_=e=>({left:e.left,top:e.top,width:e.width,height:e.height}),v=(e,t)=>t?{left:e.left+(t.left??0),top:e.top+(t.top??0),width:e.width-(t.left??0)-(t.right??0),height:e.height-(t.top??0)-(t.bottom??0)}:e,y=(e,t,n)=>n<t?t:Math.min(Math.max(e,t),n),b=(e,t,n,r=`bottom`,i=5)=>{let a=n.getBoundingClientRect(),o=a.width,c=a.height;if(o<1||c<1)return s;let l=t.left+t.width,u=t.top+t.height,d=e.top+e.height,f=d-u,p=t.top-e.top,m=c+i,h=e.left,g=e.left+e.width,_=e.top,v=h+i,b=g-o-i,x=_+i,S=d-c-i;if(r===`right`)return{left:y(l+i,v,b),top:y(t.top+t.height/2-c/2,x,S),visible:!0};let C=y(t.left+t.width/2-o/2,v,b),w=r===`top`,T;return T=f>=m&&p>=m?w?t.top-c-i:u+i:f>=m?u+i:p>=m?t.top-c-i:t.top+t.height/2-c/2,{left:C,top:y(T,x,S),visible:!0}},x=(e,t,n,r,i)=>{if(!n||!t)return s;let a=n.ownerDocument.defaultView,o=f(t,a);if(!o?.inSameWindow)return s;let c=v(_(e.getBoundingClientRect()),i),l=g(o.normalizedRects,c,!0);return l?{...b(c,l,n,r??`bottom`),baseRect:l}:s},S=(e,t,n,r)=>{if(!t)return s;let i=f(t,n);if(!i?.inSameWindow)return s;let a=i.normalizedRects,o=v(_(e.getBoundingClientRect()),r);(r?.left!=null||r?.right!=null||r?.top!=null||r?.bottom!=null)&&(a=a.map(e=>({left:e.left+(r?.left??0),top:e.top+(r?.top??0),width:e.width-(r?.left??0)-(r?.right??0),height:e.height-(r?.top??0)-(r?.bottom??0)})));let c=g(a,o,!1);return c?{left:c.left,top:c.top,visible:!0}:s},C=(e,t,n,r)=>{let i=r.innerWidth,a=r.innerHeight;if(e.left<0||Math.floor(e.right)>i){if(e.left>=0){let n=(t.nodeType==Node.ELEMENT_NODE?t.getClientRects():t.parentElement.getClientRects())[0],r=i-n.left,o=a-n.top;e={left:n.left,top:n.top,width:r,height:o,right:n.left+r,bottom:n.top+o}}else{let t=n.nodeType==Node.ELEMENT_NODE?n.getClientRects():n.parentElement.getClientRects(),r=t[t.length-1],o=Math.floor(e.width+e.left);if(o<i||o==i&&r.bottom<a){let n=r.right,i=r.left,a=r.top;for(let e=0;e<t.length;e++){if(t[e].left<0)continue;let r=t[e];n<r.width&&(n=r.width),i>r.left&&(i=r.left),a>r.top&&(a=r.top)}let o=n,s=r.bottom;e={left:i,top:a,width:o,height:s,right:i+o,bottom:a+s}}else e={left:0,top:0,width:i,height:a,right:i,bottom:a}}}return e},w={top:8,bottom:8,left:8,right:8},T=(e,t,n,r,i,a=w)=>{if(!n||!t)return s;let c=r??`bottom`;if(i==`page`){let{baseWindow:r,baseBoundingRect:i}=o(t),l=r.innerWidth,u=r.innerHeight,d=Math.round(i.left);return i.right<0||d>l||i.bottom<0||i.top>u?s:x(e,t,n,c,a)}return x(e,t,n,c,a)},E=(e,t)=>t.left>=e.left&&t.top>=e.top&&t.right<=e.right&&t.bottom<=e.bottom,D=(e,t)=>t.right>e.left&&t.left<e.right&&t.top<e.bottom&&t.bottom>e.top,O=e=>e==`vertical-lr`||e==`vertical-rl`,k=e=>({left:e.left,top:e.top,right:e.right,bottom:e.bottom}),A=(e,t,n)=>O(n)?n==`vertical-rl`?e.left>=t.right||e.bottom<=t.top:e.right<=t.left||e.bottom<=t.top:e.bottom<=t.top||e.right<=t.left,j=(e,t,n)=>O(n)?n==`vertical-rl`?e.right<=t.left||e.top>=t.bottom:e.left>=t.right||e.top>=t.bottom:e.top>=t.bottom||e.left>=t.right,M=(e,t)=>{let n={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight},r=e.frameElement,i=r?.ownerDocument?.defaultView;if(r&&i){let e=r.getBoundingClientRect(),t={left:0,top:0,right:i.innerWidth,bottom:i.innerHeight},a=Math.max(e.left,t.left),o=Math.max(e.top,t.top),s=Math.min(e.right,t.right),c=Math.min(e.bottom,t.bottom);if(s<=a||c<=o)return null;n={left:a-e.left,top:o-e.top,right:s-e.left,bottom:c-e.top}}let a=n.left+(t?.leftInset??0),o=n.top+(t?.topInset??0),s=n.right-(t?.rightInset??0),c=n.bottom-(t?.bottomInset??0);return s<=a||c<=o?null:{left:a,top:o,right:s,bottom:c}},N=(e,t,n)=>{if(!e.length)return[];let r=n?.writingMode,i=n?.fullVisible??!1,a=n?.missStreakToStop??8,o=e=>i?E(t,e):D(t,e),s=0,c=e.length;for(;s<c;){let n=s+c>>1;A(k(e[n].getBoundingClientRect()),t,r)?s=n+1:c=n}let l=[],u=0,d=!1;for(let n=s;n<e.length;n++){let i=k(e[n].getBoundingClientRect());if(o(i)){l.push(e[n]),d=!0,u=0;continue}if(d&&j(i,t,r)&&(u++,u>=a))break}return l},P=(e,t,n)=>{if(e.caretRangeFromPoint)return e.caretRangeFromPoint(t,n);if(e.caretPositionFromPoint){let r=e.caretPositionFromPoint(t,n);if(r){let t=e.createRange();return t.setStart(r.offsetNode,r.offset),t.setEnd(r.offsetNode,r.offset),t}}return null},F=new Set([`img`,`image`,`svg`,`video`,`audio`,`canvas`,`iframe`]),I=e=>{let t=e.textContent??``;for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(n!=32&&n!=9&&n!=10&&n!=13&&n!=160)return!0}return!1},L=e=>{let t=e.tagName?.toLowerCase();return t&&F.has(t)?!0:!I(e)},R=(e,t)=>t==`vertical-rl`?{x:Math.max(e.left,e.right-1),y:e.top+1}:{x:e.left+1,y:e.top+1},z=e=>e.width===0&&e.height===0,B=(e,t)=>e===t||e.contains(t),V=(e,t,n)=>{if(z(e))return!1;let r=k(e);return D(t,r)&&!A(r,t,n)},H=(e,t,n)=>{let r=e.getClientRects();for(let e=0;e<r.length;e++){let i=r[e];if(V(i,t,n))return i}},U=(e,n,r,i,a)=>{let o=Math.min(n+1,r);if(n<0||n>=r)return;let s=t.createRange(e,e,n,o);if(!s)return;let c=H(s,i,a);if(c)return{textOffset:n,rect:c}},W=(e,n,i,a,o)=>{let s=Math.min(n+1,i),c=t.createRange(e,e,n,s);if(!c)return!0;let l=r(c);return z(l)||A(k(l),a,o)},G=(e,n,r)=>{if(L(e))return;let i=e.textContent?.length??0;if(i<=0)return;let a=e.ownerDocument;if(!a)return;let o=R(n,r),s=P(a,o.x,o.y);if(s&&B(e,s.startContainer)){let a=U(e,t.getTextOffsetInElement(e,s.startContainer,s.startOffset),i,n,r);if(a)return a}let c=0,l=i-1,u;for(;c<=l;){let t=c+l>>1,a=U(e,t,i,n,r);if(a){u=a,l=t-1;continue}if(W(e,t,i,n,r)){c=t+1;continue}l=t-1}return u},K=e=>{let t=e.getClientRects();if(t.length===0)return null;let n;for(let e=t.length-1;e>=0;e--)if(t[e].height>0){n=t[e];break}if(!n)return null;let r=e.startContainer.ownerDocument,i=P(r,n.left,n.top),a=P(r,n.right-1,n.bottom-1);if(!i||!a)return null;let o=r.createRange();return o.setStart(i.startContainer,i.startOffset),o.setEnd(a.startContainer,a.startOffset),o};exports.DEFAULT_TOOLBAR_CONTAINER_INSET=w,exports.applyContainerInset=v,exports.calcCursorPosition=c,exports.calcToolbarPosition=T,exports.calcToolbarPositionFromRect=b,exports.calcToolbarPositionInContainer=x,exports.checkRangeOrElementIsVisible=S,exports.containsRect=E,exports.findFirstVisibleTextOffset=G,exports.getBaseState=o,exports.getFirstClientRect=r,exports.getLastLineRangeFromElementRange=K,exports.getLocateClientRect=i,exports.getLocateElement=a,exports.getOrderedElementsIntersectingRect=N,exports.getRangeFromPoint=P,exports.hiddenToolbarPosition=s,exports.intersectRect=D,exports.intersectWithContainer=u,exports.isDomRange=n,exports.isUnsplittableContentElement=L,exports.normalizeBaseRectsInDisplayWindow=f,exports.recalculateRect=C,exports.resolveVisibleBaseRectInContainer=g,exports.resolveVisibleViewportInContentWindow=M,exports.toRect=_;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./finder.cjs"),t=require("./selection.cjs");var n=e=>!!e&&typeof e==`object`&&!(`tagName`in e)&&`commonAncestorContainer`in e,r=e=>{let t=e.getClientRects();for(let e=0;e<t.length;e++){let n=t[e];if(n.height>0||n.width>0)return n}return e.getBoundingClientRect()},i=e=>n(e)?r(e):e.getBoundingClientRect(),a=e=>{if(!n(e))return e;let t=e.startContainer;return t.nodeType===Node.ELEMENT_NODE?t:t.parentElement},o=t=>{let n,r,i,a=[],o,s,c;if(Array.isArray(t)){if(c=`elements`,o=t[0],s=t[t.length-1],n=o.ownerDocument,r=n.defaultView,t.length>1){let n=r.document.createRange();n.setStart(o,0);let s=t[t.length-1],c=e.findLastNode(s);c.nodeType==Node.TEXT_NODE?n.setEnd(c,c.textContent.length):n.setEnd(c,0);let l=n.getBoundingClientRect();i={left:l.left,top:l.top,width:l.width,height:l.height,right:l.right,bottom:l.bottom};for(let e of t){let t=e.getClientRects();a.push(...Array.from(t).map(e=>({left:e.left,top:e.top,width:e.width,height:e.height,right:e.right,bottom:e.bottom})))}}else i=t[0].getBoundingClientRect(),a=Array.from(t[0].getClientRects()).map(e=>({left:e.left,top:e.top,width:e.width,height:e.height,right:e.right,bottom:e.bottom}))}else Object.prototype.hasOwnProperty.call(t,`tagName`)||t.tagName?(c=`element`,o=t,s=o,n=o.ownerDocument,r=n.defaultView,i=t.getBoundingClientRect(),a=Array.from(t.getClientRects()).map(e=>({left:e.left,top:e.top,width:e.width,height:e.height,right:e.right,bottom:e.bottom}))):(c=`range`,o=t.startContainer,s=t.endContainer,n=o.ownerDocument,r=n.defaultView,i=t.getBoundingClientRect(),a=Array.from(t.getClientRects()).map(e=>({left:e.left,top:e.top,width:e.width,height:e.height,right:e.right,bottom:e.bottom})));return{firstBaseNode:o,lastBaseNode:s,baseWindow:r,baseDocument:n,baseBoundingRect:i,baseType:c,baseRects:a}},s={left:-1e5,top:-1e5,visible:!1},c=(e,t)=>{let n=e.target?.ownerDocument;if(!n)return s;let r=n.defaultView,i=e.clientX,a=e.clientY,o=t.ownerDocument.defaultView;for(;o!=r;){let e=r?.frameElement,t=e?.ownerDocument?.defaultView;if(!t)break;r=t;let n=e.getBoundingClientRect();i+=n.left,a+=n.top}return o==r?{left:i,top:a,visible:!0}:s},l=(e,t)=>{let n=e.left+e.width,r=e.top+e.height,i=t.left+t.width,a=t.top+t.height;return t.left>=e.left&&t.top>=e.top&&i<=n&&a<=r},u=(e,t)=>{let n=e.left+e.width,r=e.top+e.height,i=t.left+t.width,a=t.top+t.height,o=Math.max(e.left,t.left),s=Math.max(e.top,t.top),c=Math.min(n,i),l=Math.min(r,a),u=c-o,d=l-s;return u<=0||d<=0?null:{left:o,top:s,width:u,height:d}},d=e=>e.reduce((e,t)=>{let n=Math.min(e.left,t.left),r=Math.min(e.top,t.top),i=Math.max(e.left+e.width,t.left+t.width),a=Math.max(e.top+e.height,t.top+t.height);return{left:n,top:r,width:i-n,height:a-r}}),f=(e,t)=>{let{baseWindow:n,baseRects:r}=o(e),i=r.map(e=>({left:e.left,top:e.top,width:e.width,height:e.height}));for(;t!=n;){let e=n?.frameElement,t=e?.ownerDocument?.defaultView;if(!t)break;n=t;let r=e.getBoundingClientRect();i.forEach(e=>{e.left+=r.left,e.top+=r.top})}return t==n?{normalizedRects:i,inSameWindow:!0}:{normalizedRects:[],inSameWindow:!1}},p=e=>e.width*e.height,m=e=>{let t=e[0],n=p(t);for(let r=1;r<e.length;r++){let i=p(e[r]);i>n&&(t=e[r],n=i)}return t},h=e=>{if(e.length===1)return e[0];let t=d(e),n=Math.max(...e.map(e=>e.width));return t.width>n*2+24?m(e):t},g=(e,t,n=!0)=>{let r=e.filter(e=>e.width>=1&&e.height>=1),i=r.filter(e=>l(t,e));if(i.length>0)return h(i);if(!n)return null;let a=[];for(let e of r){let n=u(t,e);n&&(n.width*n.height<4||a.push({clipped:n,origArea:e.width*e.height}))}return a.length===0?null:(a.sort((e,t)=>{let n=e.clipped.width*e.clipped.height,r=t.clipped.width*t.clipped.height;return r===n?t.origArea-e.origArea:r-n}),a[0].clipped)},_=e=>({left:e.left,top:e.top,width:e.width,height:e.height}),v=(e,t)=>t?{left:e.left+(t.left??0),top:e.top+(t.top??0),width:e.width-(t.left??0)-(t.right??0),height:e.height-(t.top??0)-(t.bottom??0)}:e,y=(e,t,n)=>n<t?t:Math.min(Math.max(e,t),n),b=(e,t,n,r=`bottom`,i=5,a=0)=>{let o=n.getBoundingClientRect(),c=o.width,l=o.height;if(c<1||l<1)return s;let u=t.left+t.width,d=t.top+t.height,f=e.top+e.height,p=f-d,m=t.top-e.top,h=i+a,g=l+h,_=l+i,v=e.left,b=e.left+e.width,x=e.top,S=v+i,C=b-c-i,w=x+i,T=f-l-i;if(r===`right`)return{left:y(u+i,S,C),top:y(t.top+t.height/2-l/2,w,T),visible:!0};let E=y(t.left+t.width/2-c/2,S,C),D=r===`top`,O;return O=p>=g&&m>=_?D?t.top-l-i:d+h:p>=g?d+h:m>=_?t.top-l-i:t.top+t.height/2-l/2,{left:E,top:y(O,w,T),visible:!0}},x=(e,t,n,r,i,a=0)=>{if(!n||!t)return s;let o=n.ownerDocument.defaultView,c=f(t,o);if(!c?.inSameWindow)return s;let l=v(_(e.getBoundingClientRect()),i),u=g(c.normalizedRects,l,!0);return u?{...b(l,u,n,r??`bottom`,void 0,a),baseRect:u}:s},S=(e,t,n,r)=>{if(!t)return s;let i=f(t,n);if(!i?.inSameWindow)return s;let a=i.normalizedRects,o=v(_(e.getBoundingClientRect()),r);(r?.left!=null||r?.right!=null||r?.top!=null||r?.bottom!=null)&&(a=a.map(e=>({left:e.left+(r?.left??0),top:e.top+(r?.top??0),width:e.width-(r?.left??0)-(r?.right??0),height:e.height-(r?.top??0)-(r?.bottom??0)})));let c=g(a,o,!1);return c?{left:c.left,top:c.top,visible:!0}:s},C=(e,t,n,r)=>{let i=r.innerWidth,a=r.innerHeight;if(e.left<0||Math.floor(e.right)>i){if(e.left>=0){let n=(t.nodeType==Node.ELEMENT_NODE?t.getClientRects():t.parentElement.getClientRects())[0],r=i-n.left,o=a-n.top;e={left:n.left,top:n.top,width:r,height:o,right:n.left+r,bottom:n.top+o}}else{let t=n.nodeType==Node.ELEMENT_NODE?n.getClientRects():n.parentElement.getClientRects(),r=t[t.length-1],o=Math.floor(e.width+e.left);if(o<i||o==i&&r.bottom<a){let n=r.right,i=r.left,a=r.top;for(let e=0;e<t.length;e++){if(t[e].left<0)continue;let r=t[e];n<r.width&&(n=r.width),i>r.left&&(i=r.left),a>r.top&&(a=r.top)}let o=n,s=r.bottom;e={left:i,top:a,width:o,height:s,right:i+o,bottom:a+s}}else e={left:0,top:0,width:i,height:a,right:i,bottom:a}}}return e},w={top:8,bottom:8,left:8,right:8},T=(e,t,n,r,i,a=w,c=0)=>{if(!n||!t)return s;let l=r??`bottom`;if(i==`page`){let{baseWindow:r,baseBoundingRect:i}=o(t),u=r.innerWidth,d=r.innerHeight,f=Math.round(i.left);return i.right<0||f>u||i.bottom<0||i.top>d?s:x(e,t,n,l,a,c)}return x(e,t,n,l,a,c)},E=(e,t)=>t.left>=e.left&&t.top>=e.top&&t.right<=e.right&&t.bottom<=e.bottom,D=(e,t)=>t.right>e.left&&t.left<e.right&&t.top<e.bottom&&t.bottom>e.top,O=e=>e==`vertical-lr`||e==`vertical-rl`,k=e=>({left:e.left,top:e.top,right:e.right,bottom:e.bottom}),A=(e,t,n)=>O(n)?n==`vertical-rl`?e.left>=t.right||e.bottom<=t.top:e.right<=t.left||e.bottom<=t.top:e.bottom<=t.top||e.right<=t.left,j=(e,t,n)=>O(n)?n==`vertical-rl`?e.right<=t.left||e.top>=t.bottom:e.left>=t.right||e.top>=t.bottom:e.top>=t.bottom||e.left>=t.right,M=(e,t)=>{let n={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight},r=e.frameElement,i=r?.ownerDocument?.defaultView;if(r&&i){let e=r.getBoundingClientRect(),t={left:0,top:0,right:i.innerWidth,bottom:i.innerHeight},a=Math.max(e.left,t.left),o=Math.max(e.top,t.top),s=Math.min(e.right,t.right),c=Math.min(e.bottom,t.bottom);if(s<=a||c<=o)return null;n={left:a-e.left,top:o-e.top,right:s-e.left,bottom:c-e.top}}let a=n.left+(t?.leftInset??0),o=n.top+(t?.topInset??0),s=n.right-(t?.rightInset??0),c=n.bottom-(t?.bottomInset??0);return s<=a||c<=o?null:{left:a,top:o,right:s,bottom:c}},N=(e,t,n)=>{if(!e.length)return[];let r=n?.writingMode,i=n?.fullVisible??!1,a=n?.missStreakToStop??8,o=e=>i?E(t,e):D(t,e),s=0,c=e.length;for(;s<c;){let n=s+c>>1;A(k(e[n].getBoundingClientRect()),t,r)?s=n+1:c=n}let l=[],u=0,d=!1;for(let n=s;n<e.length;n++){let i=k(e[n].getBoundingClientRect());if(o(i)){l.push(e[n]),d=!0,u=0;continue}if(d&&j(i,t,r)&&(u++,u>=a))break}return l},P=(e,t,n)=>{if(e.caretRangeFromPoint)return e.caretRangeFromPoint(t,n);if(e.caretPositionFromPoint){let r=e.caretPositionFromPoint(t,n);if(r){let t=e.createRange();return t.setStart(r.offsetNode,r.offset),t.setEnd(r.offsetNode,r.offset),t}}return null},F=new Set([`img`,`image`,`svg`,`video`,`audio`,`canvas`,`iframe`]),I=e=>{let t=e.textContent??``;for(let e=0;e<t.length;e++){let n=t.charCodeAt(e);if(n!=32&&n!=9&&n!=10&&n!=13&&n!=160)return!0}return!1},L=e=>{let t=e.tagName?.toLowerCase();return t&&F.has(t)?!0:!I(e)},R=(e,t)=>t==`vertical-rl`?{x:Math.max(e.left,e.right-1),y:e.top+1}:{x:e.left+1,y:e.top+1},z=e=>e.width===0&&e.height===0,B=(e,t)=>e===t||e.contains(t),V=(e,t,n)=>{if(z(e))return!1;let r=k(e);return D(t,r)&&!A(r,t,n)},H=(e,t,n)=>{let r=e.getClientRects();for(let e=0;e<r.length;e++){let i=r[e];if(V(i,t,n))return i}},U=(e,n,r,i,a)=>{let o=Math.min(n+1,r);if(n<0||n>=r)return;let s=t.createRange(e,e,n,o);if(!s)return;let c=H(s,i,a);if(c)return{textOffset:n,rect:c}},W=(e,n,i,a,o)=>{let s=Math.min(n+1,i),c=t.createRange(e,e,n,s);if(!c)return!0;let l=r(c);return z(l)||A(k(l),a,o)},G=(e,n,r)=>{if(L(e))return;let i=e.textContent?.length??0;if(i<=0)return;let a=e.ownerDocument;if(!a)return;let o=R(n,r),s=P(a,o.x,o.y);if(s&&B(e,s.startContainer)){let a=U(e,t.getTextOffsetInElement(e,s.startContainer,s.startOffset),i,n,r);if(a)return a}let c=0,l=i-1,u;for(;c<=l;){let t=c+l>>1,a=U(e,t,i,n,r);if(a){u=a,l=t-1;continue}if(W(e,t,i,n,r)){c=t+1;continue}l=t-1}return u},K=e=>{let t=e.getClientRects();if(t.length===0)return null;let n;for(let e=t.length-1;e>=0;e--)if(t[e].height>0){n=t[e];break}if(!n)return null;let r=e.startContainer.ownerDocument,i=P(r,n.left,n.top),a=P(r,n.right-1,n.bottom-1);if(!i||!a)return null;let o=r.createRange();return o.setStart(i.startContainer,i.startOffset),o.setEnd(a.startContainer,a.startOffset),o};exports.DEFAULT_TOOLBAR_CONTAINER_INSET=w,exports.applyContainerInset=v,exports.calcCursorPosition=c,exports.calcToolbarPosition=T,exports.calcToolbarPositionFromRect=b,exports.calcToolbarPositionInContainer=x,exports.checkRangeOrElementIsVisible=S,exports.containsRect=E,exports.findFirstVisibleTextOffset=G,exports.getBaseState=o,exports.getFirstClientRect=r,exports.getLastLineRangeFromElementRange=K,exports.getLocateClientRect=i,exports.getLocateElement=a,exports.getOrderedElementsIntersectingRect=N,exports.getRangeFromPoint=P,exports.hiddenToolbarPosition=s,exports.intersectRect=D,exports.intersectWithContainer=u,exports.isDomRange=n,exports.isUnsplittableContentElement=L,exports.normalizeBaseRectsInDisplayWindow=f,exports.recalculateRect=C,exports.resolveVisibleBaseRectInContainer=g,exports.resolveVisibleViewportInContentWindow=M,exports.toRect=_;
@@ -69,7 +69,7 @@ export declare const applyContainerInset: (containerRect: Rect, inset?: {
69
69
  right?: number;
70
70
  }) => Rect;
71
71
  export type ToolbarPreferPosition = "top" | "bottom" | "right";
72
- export declare const calcToolbarPositionFromRect: (containerRect: Rect, baseRect: Rect, displayElement: Element, toolbarPreferPosition?: ToolbarPreferPosition, bias?: number) => {
72
+ export declare const calcToolbarPositionFromRect: (containerRect: Rect, baseRect: Rect, displayElement: Element, toolbarPreferPosition?: ToolbarPreferPosition, bias?: number, belowClearance?: number) => {
73
73
  left: number;
74
74
  top: number;
75
75
  visible: boolean;
@@ -79,7 +79,7 @@ export declare const calcToolbarPositionInContainer: (containerElement: HTMLElem
79
79
  bottom?: number;
80
80
  left?: number;
81
81
  right?: number;
82
- }) => {
82
+ }, belowClearance?: number) => {
83
83
  left: number;
84
84
  top: number;
85
85
  visible: boolean;
@@ -117,7 +117,7 @@ export type ToolbarContainerInset = {
117
117
  right?: number;
118
118
  };
119
119
  export declare const DEFAULT_TOOLBAR_CONTAINER_INSET: ToolbarContainerInset;
120
- export declare const calcToolbarPosition: (ownerPanel: HTMLElement, base: Range | Element[] | Element, displayElement: Element, toolbarPreferPosition?: ToolbarPreferPosition, flipMode?: FlipMode, containerInset?: ToolbarContainerInset) => {
120
+ export declare const calcToolbarPosition: (ownerPanel: HTMLElement, base: Range | Element[] | Element, displayElement: Element, toolbarPreferPosition?: ToolbarPreferPosition, flipMode?: FlipMode, containerInset?: ToolbarContainerInset, belowClearance?: number) => {
121
121
  left: number;
122
122
  top: number;
123
123
  visible: boolean;
@@ -171,29 +171,29 @@ var r = (e) => !!e && typeof e == "object" && !("tagName" in e) && "commonAncest
171
171
  top: e.top + (t.top ?? 0),
172
172
  width: e.width - (t.left ?? 0) - (t.right ?? 0),
173
173
  height: e.height - (t.top ?? 0) - (t.bottom ?? 0)
174
- } : e, b = (e, t, n) => n < t ? t : Math.min(Math.max(e, t), n), x = (e, t, n, r = "bottom", i = 5) => {
175
- let a = n.getBoundingClientRect(), o = a.width, s = a.height;
176
- if (o < 1 || s < 1) return c;
177
- let l = t.left + t.width, u = t.top + t.height, d = e.top + e.height, f = d - u, p = t.top - e.top, m = s + i, h = e.left, g = e.left + e.width, _ = e.top, v = h + i, y = g - o - i, x = _ + i, S = d - s - i;
174
+ } : e, b = (e, t, n) => n < t ? t : Math.min(Math.max(e, t), n), x = (e, t, n, r = "bottom", i = 5, a = 0) => {
175
+ let o = n.getBoundingClientRect(), s = o.width, l = o.height;
176
+ if (s < 1 || l < 1) return c;
177
+ let u = t.left + t.width, d = t.top + t.height, f = e.top + e.height, p = f - d, m = t.top - e.top, h = i + a, g = l + h, _ = l + i, v = e.left, y = e.left + e.width, x = e.top, S = v + i, C = y - s - i, w = x + i, T = f - l - i;
178
178
  if (r === "right") return {
179
- left: b(l + i, v, y),
180
- top: b(t.top + t.height / 2 - s / 2, x, S),
179
+ left: b(u + i, S, C),
180
+ top: b(t.top + t.height / 2 - l / 2, w, T),
181
181
  visible: !0
182
182
  };
183
- let C = b(t.left + t.width / 2 - o / 2, v, y), w = r === "top", T;
184
- return T = f >= m && p >= m ? w ? t.top - s - i : u + i : f >= m ? u + i : p >= m ? t.top - s - i : t.top + t.height / 2 - s / 2, {
185
- left: C,
186
- top: b(T, x, S),
183
+ let E = b(t.left + t.width / 2 - s / 2, S, C), D = r === "top", O;
184
+ return O = p >= g && m >= _ ? D ? t.top - l - i : d + h : p >= g ? d + h : m >= _ ? t.top - l - i : t.top + t.height / 2 - l / 2, {
185
+ left: E,
186
+ top: b(O, w, T),
187
187
  visible: !0
188
188
  };
189
- }, S = (e, t, n, r, i) => {
189
+ }, S = (e, t, n, r, i, a = 0) => {
190
190
  if (!n || !t) return c;
191
- let a = n.ownerDocument.defaultView, o = p(t, a);
192
- if (!o?.inSameWindow) return c;
193
- let s = y(v(e.getBoundingClientRect()), i), l = _(o.normalizedRects, s, !0);
194
- return l ? {
195
- ...x(s, l, n, r ?? "bottom"),
196
- baseRect: l
191
+ let o = n.ownerDocument.defaultView, s = p(t, o);
192
+ if (!s?.inSameWindow) return c;
193
+ let l = y(v(e.getBoundingClientRect()), i), u = _(s.normalizedRects, l, !0);
194
+ return u ? {
195
+ ...x(l, u, n, r ?? "bottom", void 0, a),
196
+ baseRect: u
197
197
  } : c;
198
198
  }, C = (e, t, n, r) => {
199
199
  if (!t) return c;
@@ -259,14 +259,14 @@ var r = (e) => !!e && typeof e == "object" && !("tagName" in e) && "commonAncest
259
259
  bottom: 8,
260
260
  left: 8,
261
261
  right: 8
262
- }, E = (e, t, n, r, i, a = T) => {
262
+ }, E = (e, t, n, r, i, a = T, o = 0) => {
263
263
  if (!n || !t) return c;
264
- let o = r ?? "bottom";
264
+ let l = r ?? "bottom";
265
265
  if (i == "page") {
266
- let { baseWindow: r, baseBoundingRect: i } = s(t), l = r.innerWidth, u = r.innerHeight, d = Math.round(i.left);
267
- return i.right < 0 || d > l || i.bottom < 0 || i.top > u ? c : S(e, t, n, o, a);
266
+ let { baseWindow: r, baseBoundingRect: i } = s(t), u = r.innerWidth, d = r.innerHeight, f = Math.round(i.left);
267
+ return i.right < 0 || f > u || i.bottom < 0 || i.top > d ? c : S(e, t, n, l, a, o);
268
268
  }
269
- return S(e, t, n, o, a);
269
+ return S(e, t, n, l, a, o);
270
270
  }, D = (e, t) => t.left >= e.left && t.top >= e.top && t.right <= e.right && t.bottom <= e.bottom, O = (e, t) => t.right > e.left && t.left < e.right && t.top < e.bottom && t.bottom > e.top, k = (e) => e == "vertical-lr" || e == "vertical-rl", A = (e) => ({
271
271
  left: e.left,
272
272
  top: e.top,
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../kernal/common/uuid.cjs");require("../../kernal/Constants.cjs");const t=require("../../kernal/html/finder.cjs"),n=require("../../kernal/html/types.cjs"),r=require("../../kernal/html/text.cjs"),i=require("../../kernal/html/position.cjs");var a=[`object`,`svg`,`embed`,`audio`,`video`,`canvas`,`img`],o=new Map,s=new Map,c=e=>e.ownerDocument?e:t.getDocumentBody(e),l=e=>{let t=c(e).childNodes;for(let e of t)if(e.nodeType==Node.TEXT_NODE&&e.textContent?.trim())return!0;return!1},u=e=>{let t=0;for(let n of a)t+=e.getElementsByTagName(n).length;return t},d=(i,l)=>{let u=o.get(i);u||(u=e.getUuid(),o.set(i,u));let d=`${l}${u}`,f=c(i),p=s.get(d);if(p&&p.length==f.getElementsByTagName(`*`).length+1)return p;let m=[],h=0,g=t.getAllNodes(f);for(let e=0;e<g.length;e++){let i=g[e];if(i.nodeType==Node.ELEMENT_NODE){let e=i;m.push(new n.SymbolOffset(e,h)),l==`custom`&&t.checkIsOtherNonWhiteSpaceSymbol(e.tagName,a)&&(h+=1)}else i.nodeType==Node.TEXT_NODE&&(h+=r.getPureInnerTextLength(i))}let _=m.reverse();return s.set(d,_),_},f=class{constructor(){this.defaultSymbolType=`custom`,this.count=(e,t)=>{let n=t??this.defaultSymbolType,i=c(e),a=r.getPureInnerTextLength(i);return n==`custom`&&(a+=u(i)),a},this.getElementByProgress=(e,t,n)=>{let r=n??this.defaultSymbolType,i=t??0,a=Math.ceil(this.count(e,r)*i);return this.getElementByPosition(e,a,r)},this.getProgressByElement=(e,t,n,r)=>{let i=n??this.defaultSymbolType,a=this.count(e,i);return this.getPositionByElement(e,t,i,r)/a},this.getPositionByElement=(e,n,r,i)=>{let a=r??this.defaultSymbolType,o;if(n.tagIndex>=0){let r=n;o=t.getElementByNameAndIndex(e,r.tagName,r.tagIndex??0)}else o=n;if(!o)return-1;let s=d(e,a).find(e=>e.element==o);return(s?s.offset:-1)+(i??0)},this.getElementByPosition=(e,o,s,u)=>{let f=s??this.defaultSymbolType,p=d(e,f),m=p.findIndex(e=>o>=e.offset);if(m<0)return null;let h=p[m];if(!h.element.getAttribute(`data-initial-index`)){let e=p.length-1;for(;m<e&&(m++,h=p[m],!h.element.getAttribute(`data-initial-index`)););}let g,_=o-h.offset,v=this.count(h.element,f);if(_==0&&u&&m<p.length-1&&(h=p[m+1]),_=o-h.offset,v=this.count(h.element,f),_>v){if(m==0)g=v;else if(h=p.find(e=>e.element==h.element.parentElement),h||=l(e)?new n.SymbolOffset(c(e),0):p[m-1],!l(e)&&f==`char`&&t.compareTagName(h.element.tagName,`BODY`)){let e=p[m-1];e&&e.offset>=o&&(h=e)}}if(!l(e)&&f==`char`&&t.compareTagName(h.element.tagName,`BODY`)){let e=h.element.children,t;for(let n=0;n<e.length;n++)if(!a.includes(e[n].tagName.toLowerCase())){t=e[n];break}if(t)return new i.ElementPositionResult(t,0,0)}if(g===void 0){if(g=o-h.offset,g<0)g=0;else if(f==`char`){v=r.getPureInnerTextLength(h.element);let e=0;for(;g>v&&e<256;){e++;let t=p.find(e=>e.element===h.element.parentElement);if(!t){g=v;break}if(h=t,v=r.getPureInnerTextLength(h.element),g=o-h.offset,g<0){g=0;break}}g>v&&(g=v)}}let y=t.getElementIndex(e,h.element);return y==-1&&t.compareTagName(h.element.tagName,`BODY`)&&(y=-2),new i.ElementPositionResult(h.element,y,g)}}},p=new f;exports.DefaultHtmlSymbolMeasure=f,exports.defaultHtmlSymbolMeasure=p;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../kernal/common/uuid.cjs");require("../../kernal/Constants.cjs");const t=require("../../kernal/html/finder.cjs"),n=require("../../kernal/html/position.cjs"),r=require("../../kernal/html/text.cjs"),i=require("../../kernal/html/types.cjs");var a=[`object`,`svg`,`embed`,`audio`,`video`,`canvas`,`img`],o=new Map,s=new Map,c=e=>e.ownerDocument?e:t.getDocumentBody(e),l=e=>{let t=c(e).childNodes;for(let e of t)if(e.nodeType==Node.TEXT_NODE&&e.textContent?.trim())return!0;return!1},u=e=>{let t=0;for(let n of a)t+=e.getElementsByTagName(n).length;return t},d=(n,l)=>{let u=o.get(n);u||(u=e.getUuid(),o.set(n,u));let d=`${l}${u}`,f=c(n),p=s.get(d);if(p&&p.length==f.getElementsByTagName(`*`).length+1)return p;let m=[],h=0,g=t.getAllNodes(f);for(let e=0;e<g.length;e++){let n=g[e];if(n.nodeType==Node.ELEMENT_NODE){let e=n;m.push(new i.SymbolOffset(e,h)),l==`custom`&&t.checkIsOtherNonWhiteSpaceSymbol(e.tagName,a)&&(h+=1)}else n.nodeType==Node.TEXT_NODE&&(h+=r.getPureInnerTextLength(n))}let _=m.reverse();return s.set(d,_),_},f=class{constructor(){this.defaultSymbolType=`custom`,this.count=(e,t)=>{let n=t??this.defaultSymbolType,i=c(e),a=r.getPureInnerTextLength(i);return n==`custom`&&(a+=u(i)),a},this.getElementByProgress=(e,t,n)=>{let r=n??this.defaultSymbolType,i=t??0,a=Math.ceil(this.count(e,r)*i);return this.getElementByPosition(e,a,r)},this.getProgressByElement=(e,t,n,r)=>{let i=n??this.defaultSymbolType,a=this.count(e,i);return this.getPositionByElement(e,t,i,r)/a},this.getPositionByElement=(e,n,r,i)=>{let a=r??this.defaultSymbolType,o;if(n.tagIndex>=0){let r=n;o=t.getElementByNameAndIndex(e,r.tagName,r.tagIndex??0)}else o=n;if(!o)return-1;let s=d(e,a).find(e=>e.element==o);return(s?s.offset:-1)+(i??0)},this.getElementByPosition=(e,o,s,u)=>{let f=s??this.defaultSymbolType,p=d(e,f),m=p.findIndex(e=>o>=e.offset);if(m<0)return null;let h=p[m];if(!h.element.getAttribute(`data-initial-index`)){let e=p.length-1;for(;m<e&&(m++,h=p[m],!h.element.getAttribute(`data-initial-index`)););}let g,_=o-h.offset,v=this.count(h.element,f);if(_==0&&u&&m<p.length-1&&(h=p[m+1]),_=o-h.offset,v=this.count(h.element,f),_>v){if(m==0)g=v;else if(h=p.find(e=>e.element==h.element.parentElement),h||=l(e)?new i.SymbolOffset(c(e),0):p[m-1],!l(e)&&f==`char`&&t.compareTagName(h.element.tagName,`BODY`)){let e=p[m-1];e&&e.offset>=o&&(h=e)}}if(!l(e)&&f==`char`&&t.compareTagName(h.element.tagName,`BODY`)){let e=h.element.children,t;for(let n=0;n<e.length;n++)if(!a.includes(e[n].tagName.toLowerCase())){t=e[n];break}if(t)return new n.ElementPositionResult(t,0,0)}if(g===void 0){if(g=o-h.offset,g<0)g=0;else if(f==`char`){v=r.getPureInnerTextLength(h.element);let e=0;for(;g>v&&e<256;){e++;let t=p.find(e=>e.element===h.element.parentElement);if(!t){g=v;break}if(h=t,v=r.getPureInnerTextLength(h.element),g=o-h.offset,g<0){g=0;break}}g>v&&(g=v)}}let y=t.getElementIndex(e,h.element);return y==-1&&t.compareTagName(h.element.tagName,`BODY`)&&(y=-2),new n.ElementPositionResult(h.element,y,g)}}},p=new f;exports.DefaultHtmlSymbolMeasure=f,exports.defaultHtmlSymbolMeasure=p;
@@ -1,9 +1,9 @@
1
1
  import { getUuid as e } from "../../kernal/common/uuid.mjs";
2
2
  import "../../kernal/Constants.mjs";
3
3
  import { checkIsOtherNonWhiteSpaceSymbol as t, compareTagName as n, getAllNodes as r, getDocumentBody as i, getElementByNameAndIndex as a, getElementIndex as o } from "../../kernal/html/finder.mjs";
4
- import { SymbolOffset as s } from "../../kernal/html/types.mjs";
4
+ import { ElementPositionResult as s } from "../../kernal/html/position.mjs";
5
5
  import { getPureInnerTextLength as c } from "../../kernal/html/text.mjs";
6
- import { ElementPositionResult as l } from "../../kernal/html/position.mjs";
6
+ import { SymbolOffset as l } from "../../kernal/html/types.mjs";
7
7
  //#region mediaTypes/html/DefaultHtmlSymbolMeasure.ts
8
8
  var u = [
9
9
  "object",
@@ -24,14 +24,14 @@ var u = [
24
24
  }, g = (n, i) => {
25
25
  let a = d.get(n);
26
26
  a || (a = e(), d.set(n, a));
27
- let o = `${i}${a}`, l = p(n), m = f.get(o);
28
- if (m && m.length == l.getElementsByTagName("*").length + 1) return m;
29
- let h = [], g = 0, _ = r(l);
27
+ let o = `${i}${a}`, s = p(n), m = f.get(o);
28
+ if (m && m.length == s.getElementsByTagName("*").length + 1) return m;
29
+ let h = [], g = 0, _ = r(s);
30
30
  for (let e = 0; e < _.length; e++) {
31
31
  let n = _[e];
32
32
  if (n.nodeType == Node.ELEMENT_NODE) {
33
33
  let e = n;
34
- h.push(new s(e, g)), i == "custom" && t(e.tagName, u) && (g += 1);
34
+ h.push(new l(e, g)), i == "custom" && t(e.tagName, u) && (g += 1);
35
35
  } else n.nodeType == Node.TEXT_NODE && (g += c(n));
36
36
  }
37
37
  let v = h.reverse();
@@ -67,7 +67,7 @@ var u = [
67
67
  let _, v = t - h.offset, y = this.count(h.element, a);
68
68
  if (v == 0 && i && f < d.length - 1 && (h = d[f + 1]), v = t - h.offset, y = this.count(h.element, a), v > y) {
69
69
  if (f == 0) _ = y;
70
- else if (h = d.find((e) => e.element == h.element.parentElement), h ||= m(e) ? new s(p(e), 0) : d[f - 1], !m(e) && a == "char" && n(h.element.tagName, "BODY")) {
70
+ else if (h = d.find((e) => e.element == h.element.parentElement), h ||= m(e) ? new l(p(e), 0) : d[f - 1], !m(e) && a == "char" && n(h.element.tagName, "BODY")) {
71
71
  let e = d[f - 1];
72
72
  e && e.offset >= t && (h = e);
73
73
  }
@@ -78,7 +78,7 @@ var u = [
78
78
  t = e[n];
79
79
  break;
80
80
  }
81
- if (t) return new l(t, 0, 0);
81
+ if (t) return new s(t, 0, 0);
82
82
  }
83
83
  if (_ === void 0) {
84
84
  if (_ = t - h.offset, _ < 0) _ = 0;
@@ -101,7 +101,7 @@ var u = [
101
101
  }
102
102
  }
103
103
  let b = o(e, h.element);
104
- return b == -1 && n(h.element.tagName, "BODY") && (b = -2), new l(h.element, b, _);
104
+ return b == -1 && n(h.element.tagName, "BODY") && (b = -2), new s(h.element, b, _);
105
105
  };
106
106
  }
107
107
  }, v = new _();
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/EventNames.cjs"),t=require("../../../kernal/common/uuid.cjs"),n=require("../../../kernal/Options.cjs"),r=require("../../../kernal/Theme.cjs"),i=require("../../../kernal/web/scheduler.cjs"),a=require("../../../kernal/html/events.cjs"),o=require("../HtmlOptions.cjs"),s=require("./navigator/HtmlCoreNavigator.cjs"),c=require("./layout/resolveLayoutRoute.cjs"),l=require("./navigator/HtmlPagingNavigator.cjs"),u=require("./navigator/HtmlNavPointNavigator.cjs"),d=require("./navigator/HtmlNavPointProvider.cjs"),f=require("./progress/HtmlProgressTracker.cjs"),p=require("./location/scrollActivity.cjs"),m=require("./documents/HtmlDocumentsProvider.cjs"),h=require("./layout/HtmlRendererLayout.cjs"),g=require("./style/HtmlStyleProvider.cjs"),_=require("./style/HtmlThemeApplier.cjs"),v=require("./documents/HtmlDocumentsResizeObserver.cjs"),y=require("./html/HtmlContentProcessor.cjs"),b=require("./image/HtmlImageLoader.cjs"),x=require("./image/HtmlImageObserver.cjs");var S=class extends m.HtmlDocumentsProvider{constructor(e,r,a,c){super(e,r,a,c),this.isInitRenderer=!1,this.injectProcessHandlers=()=>{this.addDocumentPreprocess(this.preprocessHandler)},this.preprocessHandler=async e=>{await this.contentProcessor.preprocess(e),await this.styleProvider.injectStyles(e);let t=await this.resolveCurrentTheme();t&&await this.themeApplier.applyToDocument(e,t),await this.rendererLayout.applyDocStyles(e),await this.imageLoader.preprocessImages(e);let n=await this.getHighlighter();n&&await n.highlight(e)},this.onPageChange=async()=>{this.progressTracker.notifyProgressChange()},this.onDocumentSizeChange=async()=>{this.owner.context.userChangedProgress||p.isProgrammaticScroll()||p.isUserScrollSettling()||await this.delayRestoreReadingPosition()},this.onOptionsChange=async e=>{let t=this.getRendererContainer();if(!(!t||!t.ownerDocument.defaultView)&&(n.isOptionKey(e)||o.isHtmlOptionKey(e))){let t=o.isHtmlOptionKey(e);if(t){if(!this.owner.context.currentLocation?.precise){let e=await this.progressTracker.getProgress(!0);e&&(this.owner.context.currentLocation=e.location)}this.owner.context.setUserChangedProgress(!1)}if(this.rendererViewport.applyCssVariables(),await i.yieldToMain(),t){for(let e of this.getLoadedDocuments())await this.rendererLayout.applyDocStyles(e);this.owner.context.userChangedProgress||await this.reload()}}},this.progressTracker=new f.HtmlProgressTracker(e,this,c),this.rendererLayout=new h.HtmlRendererLayout(e,this,this.rendererViewport,this.progressTracker,c),this.navPointProvider=new d.HtmlNavPointProvider(this,c),this.navigator=new s.HtmlCoreNavigator(this,c),this.navPointNavigator=new u.HtmlNavPointNavigator(e.locale,e.notifier,this,this.navigator,this.navPointProvider),this.pagingNavigator=new l.HtmlPagingNavigator(this,this.navigator,c),this.styleProvider=new g.HtmlStyleProvider(this),this.currentInstanceId=t.getRandomId(!0),this.themeApplier=new _.HtmlThemeApplier(this),this.documentsResizeObserver=new v.HtmlDocumentsResizeObserver(this,this.rendererViewport,this.progressTracker,this.rendererLayout),this.contentProcessor=new y.HtmlContentProcessor(r),this.imageLoader=this.createImageLoader(),this.imageObserver=new x.HtmlImageObserver(this,c),this.bindEvents(),this.bindScrollWatch(),this.injectProcessHandlers()}get id(){return this.currentInstanceId}createImageLoader(){return new b.HtmlImageLoader(this,this.rendererViewport,this.htmlOptions)}async resolveCurrentTheme(){return(await this.owner.services.get(`themeProvider`))?.getCurrentTheme()??new r.Theme}async getHighlighter(){}bindEvents(){this.owner.events.on(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.on(e.EventNames.PageChange,this.onPageChange),this.owner.events.on(e.EventNames.DocumentSizeChange,this.onDocumentSizeChange)}unbindEvents(){this.owner.events.off(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.off(e.EventNames.PageChange,this.onPageChange),this.owner.events.off(e.EventNames.DocumentSizeChange,this.onDocumentSizeChange)}bindScrollWatch(){let t=this.owner.getHostViewport();this.scrollWatchTarget=t.mode==`window`?t.scrollWatchTarget:this.getScrollElement(),this.scrollWatchTarget&&(this.scrollWatchState=a.watchScroll(this.scrollWatchTarget,this.owner.options.calcScrollDirection,async(t,n)=>{this.owner.events.emit(e.EventNames.ReaderDebounceScroll,t,n),this.progressTracker.notifyProgressChange()},t=>{p.isProgrammaticScroll()||!t.isTrusted||(this.owner.onProgressChangeGuard&&this.owner.context?.progress?.current&&(this.owner.onProgressChangeGuard(this.owner.context.progress.current)||t.preventDefault()),p.markUserScroll(),p.releaseAbsoluteLocate(),this.owner.events.emit(e.EventNames.ReaderOriginalScroll,t))}))}async load(e,t){e||=this.owner.context.progress?.location,this.isInitRenderer||(this.isInitRenderer=!0,this.documentsResizeObserver.register(),this.imageObserver.register()),await super.load(e,t)}getFileParser(){return this.fileParser}get writingMode(){return this.htmlOptions.writingMode??`horizontal-tb`}get direction(){return c.resolveHtmlTextDirection(this.htmlOptions)}get layout(){return this.rendererLayout}async applyTheme(e){await this.themeApplier.applyTheme(e);let t=await this.getHighlighter();t&&await t.applyTheme(e)}async dispose(){this.unbindEvents();let e=this.scrollWatchTarget??this.getScrollElement();e&&this.scrollWatchState?._eventHandler&&(e.removeEventListener(`scroll`,this.scrollWatchState._eventHandler,!0),this.scrollWatchState=void 0,this.scrollWatchTarget=void 0),await this.progressTracker.dispose(),await this.imageObserver.dispose(),await this.imageLoader.dispose(),await super.dispose(),await this.styleProvider?.dispose(),await this.navPointProvider?.dispose(),await this.pagingNavigator?.dispose(),await this.documentsResizeObserver.dispose(),await this.contentProcessor.dispose()}};exports.HtmlRenderer=S;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../kernal/EventNames.cjs"),t=require("../../../kernal/common/uuid.cjs"),n=require("../../../kernal/Options.cjs"),r=require("../../../kernal/Theme.cjs"),i=require("../../../kernal/web/scheduler.cjs"),a=require("../HtmlOptions.cjs"),o=require("../../../kernal/html/events.cjs"),s=require("./navigator/HtmlCoreNavigator.cjs"),c=require("./layout/resolveLayoutRoute.cjs"),l=require("./navigator/HtmlPagingNavigator.cjs"),u=require("./navigator/HtmlNavPointNavigator.cjs"),d=require("./navigator/HtmlNavPointProvider.cjs"),f=require("./progress/HtmlProgressTracker.cjs"),p=require("./location/scrollActivity.cjs"),m=require("./documents/HtmlDocumentsProvider.cjs"),h=require("./layout/HtmlRendererLayout.cjs"),g=require("./style/HtmlStyleProvider.cjs"),_=require("./style/HtmlThemeApplier.cjs"),v=require("./documents/HtmlDocumentsResizeObserver.cjs"),y=require("./html/HtmlContentProcessor.cjs"),b=require("./image/HtmlImageLoader.cjs"),x=require("./image/HtmlImageObserver.cjs");var S=class extends m.HtmlDocumentsProvider{constructor(e,r,o,c){super(e,r,o,c),this.isInitRenderer=!1,this.injectProcessHandlers=()=>{this.addDocumentPreprocess(this.preprocessHandler)},this.preprocessHandler=async e=>{await this.contentProcessor.preprocess(e),await this.styleProvider.injectStyles(e);let t=await this.resolveCurrentTheme();t&&await this.themeApplier.applyToDocument(e,t),await this.rendererLayout.applyDocStyles(e),await this.imageLoader.preprocessImages(e);let n=await this.getHighlighter();n&&await n.highlight(e)},this.onPageChange=async()=>{this.progressTracker.notifyProgressChange()},this.onDocumentSizeChange=async()=>{this.owner.context.userChangedProgress||p.isProgrammaticScroll()||p.isUserScrollSettling()||await this.delayRestoreReadingPosition()},this.onOptionsChange=async e=>{let t=this.getRendererContainer();if(!(!t||!t.ownerDocument.defaultView)&&(n.isOptionKey(e)||a.isHtmlOptionKey(e))){let t=a.isHtmlOptionKey(e);if(t){if(!this.owner.context.currentLocation?.precise){let e=await this.progressTracker.getProgress(!0);e&&(this.owner.context.currentLocation=e.location)}this.owner.context.setUserChangedProgress(!1)}if(this.rendererViewport.applyCssVariables(),await i.yieldToMain(),t){for(let e of this.getLoadedDocuments())await this.rendererLayout.applyDocStyles(e);this.owner.context.userChangedProgress||await this.reload()}}},this.progressTracker=new f.HtmlProgressTracker(e,this,c),this.rendererLayout=new h.HtmlRendererLayout(e,this,this.rendererViewport,this.progressTracker,c),this.navPointProvider=new d.HtmlNavPointProvider(this,c),this.navigator=new s.HtmlCoreNavigator(this,c),this.navPointNavigator=new u.HtmlNavPointNavigator(e.locale,e.notifier,this,this.navigator,this.navPointProvider),this.pagingNavigator=new l.HtmlPagingNavigator(this,this.navigator,c),this.styleProvider=new g.HtmlStyleProvider(this),this.currentInstanceId=t.getRandomId(!0),this.themeApplier=new _.HtmlThemeApplier(this),this.documentsResizeObserver=new v.HtmlDocumentsResizeObserver(this,this.rendererViewport,this.progressTracker,this.rendererLayout),this.contentProcessor=new y.HtmlContentProcessor(r),this.imageLoader=this.createImageLoader(),this.imageObserver=new x.HtmlImageObserver(this,c),this.bindEvents(),this.bindScrollWatch(),this.injectProcessHandlers()}get id(){return this.currentInstanceId}createImageLoader(){return new b.HtmlImageLoader(this,this.rendererViewport,this.htmlOptions)}async resolveCurrentTheme(){return(await this.owner.services.get(`themeProvider`))?.getCurrentTheme()??new r.Theme}async getHighlighter(){}bindEvents(){this.owner.events.on(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.on(e.EventNames.PageChange,this.onPageChange),this.owner.events.on(e.EventNames.DocumentSizeChange,this.onDocumentSizeChange)}unbindEvents(){this.owner.events.off(e.EventNames.OptionsChange,this.onOptionsChange),this.owner.events.off(e.EventNames.PageChange,this.onPageChange),this.owner.events.off(e.EventNames.DocumentSizeChange,this.onDocumentSizeChange)}bindScrollWatch(){let t=this.owner.getHostViewport();this.scrollWatchTarget=t.mode==`window`?t.scrollWatchTarget:this.getScrollElement(),this.scrollWatchTarget&&(this.scrollWatchState=o.watchScroll(this.scrollWatchTarget,this.owner.options.calcScrollDirection,async(t,n)=>{this.owner.events.emit(e.EventNames.ReaderDebounceScroll,t,n),this.progressTracker.notifyProgressChange()},t=>{p.isProgrammaticScroll()||!t.isTrusted||(this.owner.onProgressChangeGuard&&this.owner.context?.progress?.current&&(this.owner.onProgressChangeGuard(this.owner.context.progress.current)||t.preventDefault()),p.markUserScroll(),p.releaseAbsoluteLocate(),this.owner.events.emit(e.EventNames.ReaderOriginalScroll,t))}))}async load(e,t){e||=this.owner.context.progress?.location,this.isInitRenderer||(this.isInitRenderer=!0,this.documentsResizeObserver.register(),this.imageObserver.register()),await super.load(e,t)}getFileParser(){return this.fileParser}get writingMode(){return this.htmlOptions.writingMode??`horizontal-tb`}get direction(){return c.resolveHtmlTextDirection(this.htmlOptions)}get layout(){return this.rendererLayout}async applyTheme(e){await this.themeApplier.applyTheme(e);let t=await this.getHighlighter();t&&await t.applyTheme(e)}async dispose(){this.unbindEvents();let e=this.scrollWatchTarget??this.getScrollElement();e&&this.scrollWatchState?._eventHandler&&(e.removeEventListener(`scroll`,this.scrollWatchState._eventHandler,!0),this.scrollWatchState=void 0,this.scrollWatchTarget=void 0),await this.progressTracker.dispose(),await this.imageObserver.dispose(),await this.imageLoader.dispose(),await super.dispose(),await this.styleProvider?.dispose(),await this.navPointProvider?.dispose(),await this.pagingNavigator?.dispose(),await this.documentsResizeObserver.dispose(),await this.contentProcessor.dispose()}};exports.HtmlRenderer=S;
@@ -3,8 +3,8 @@ import { getRandomId as t } from "../../../kernal/common/uuid.mjs";
3
3
  import { isOptionKey as n } from "../../../kernal/Options.mjs";
4
4
  import { Theme as r } from "../../../kernal/Theme.mjs";
5
5
  import { yieldToMain as i } from "../../../kernal/web/scheduler.mjs";
6
- import { watchScroll as a } from "../../../kernal/html/events.mjs";
7
- import { isHtmlOptionKey as o } from "../HtmlOptions.mjs";
6
+ import { isHtmlOptionKey as a } from "../HtmlOptions.mjs";
7
+ import { watchScroll as o } from "../../../kernal/html/events.mjs";
8
8
  import { HtmlCoreNavigator as s } from "./navigator/HtmlCoreNavigator.mjs";
9
9
  import { resolveHtmlTextDirection as c } from "./layout/resolveLayoutRoute.mjs";
10
10
  import { HtmlPagingNavigator as l } from "./navigator/HtmlPagingNavigator.mjs";
@@ -22,8 +22,8 @@ import { HtmlImageLoader as C } from "./image/HtmlImageLoader.mjs";
22
22
  import { HtmlImageObserver as w } from "./image/HtmlImageObserver.mjs";
23
23
  //#region mediaTypes/html/renderer/HtmlRenderer.ts
24
24
  var T = class extends _ {
25
- constructor(e, r, a, c) {
26
- super(e, r, a, c), this.isInitRenderer = !1, this.injectProcessHandlers = () => {
25
+ constructor(e, r, o, c) {
26
+ super(e, r, o, c), this.isInitRenderer = !1, this.injectProcessHandlers = () => {
27
27
  this.addDocumentPreprocess(this.preprocessHandler);
28
28
  }, this.preprocessHandler = async (e) => {
29
29
  await this.contentProcessor.preprocess(e), await this.styleProvider.injectStyles(e);
@@ -37,8 +37,8 @@ var T = class extends _ {
37
37
  this.owner.context.userChangedProgress || p() || m() || await this.delayRestoreReadingPosition();
38
38
  }, this.onOptionsChange = async (e) => {
39
39
  let t = this.getRendererContainer();
40
- if (!(!t || !t.ownerDocument.defaultView) && (n(e) || o(e))) {
41
- let t = o(e);
40
+ if (!(!t || !t.ownerDocument.defaultView) && (n(e) || a(e))) {
41
+ let t = a(e);
42
42
  if (t) {
43
43
  if (!this.owner.context.currentLocation?.precise) {
44
44
  let e = await this.progressTracker.getProgress(!0);
@@ -71,7 +71,7 @@ var T = class extends _ {
71
71
  }
72
72
  bindScrollWatch() {
73
73
  let t = this.owner.getHostViewport();
74
- this.scrollWatchTarget = t.mode == "window" ? t.scrollWatchTarget : this.getScrollElement(), this.scrollWatchTarget && (this.scrollWatchState = a(this.scrollWatchTarget, this.owner.options.calcScrollDirection, async (t, n) => {
74
+ this.scrollWatchTarget = t.mode == "window" ? t.scrollWatchTarget : this.getScrollElement(), this.scrollWatchTarget && (this.scrollWatchState = o(this.scrollWatchTarget, this.owner.options.calcScrollDirection, async (t, n) => {
75
75
  this.owner.events.emit(e.ReaderDebounceScroll, t, n), this.progressTracker.notifyProgressChange();
76
76
  }, (t) => {
77
77
  p() || !t.isTrusted || (this.owner.onProgressChangeGuard && this.owner.context?.progress?.current && (this.owner.onProgressChangeGuard(this.owner.context.progress.current) || t.preventDefault()), h(), g(), this.owner.events.emit(e.ReaderOriginalScroll, t));
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs"),t=require("../../../../kernal/common/uuid.cjs"),n=require("../../../../kernal/web/BrowserCapabilities.cjs"),r=require("../../../../kernal/Constants.cjs"),i=require("../../../../kernal/html/finder.cjs"),a=require("../../../../kernal/html/dom.cjs"),o=require("../../../../kernal/web/scheduler.cjs"),s=require("../../../../kernal/html/geometry.cjs"),c=require("../../HtmlSettings.cjs"),l=require("../../../base/renderer/BaseDocument.cjs"),u=require("../visibilityCandidates.cjs"),d=require("../layout/resolveLayoutRoute.cjs"),f=require("../../fileParser/IHtmlFileParser.cjs"),p=require("../../../base/renderer/eventKeys.cjs"),m=require("../html/template.cjs"),h=require("./HtmlPageCalculator.cjs"),g=require("./HtmlSymbolCalclator.cjs"),_=require("./HtmlDocumentResizeObserver.cjs"),v=require("../location/HtmlLayoutStatePreserver.cjs"),y=require("../location/remapStoredPageNumber.cjs");var b=class extends l.BaseDocument{constructor(t,n,r,i,a,s){super(t,r,i,a),this.options=s,this.eventKeyMap=p.getEventKeyMap(),this.visibilityCandidates=null,this.callbacks=[],this.retainLoadingLayer=!1,this.pendingPageLayoutState=null,this.pageStripConcealed=!1,this.waitForRevealPaint=async()=>{await o.yieldToMain(),await new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>e())})}),await new Promise(e=>{window.setTimeout(e,120)}),await this.waitForVisibleImagesReady()},this.waitForVisibleImagesReady=async()=>{let e=this.getContentContainer(),t=e?.ownerDocument?.defaultView;if(!e||!t)return;let n=[...e.querySelectorAll(`img`),...e.getElementsByTagName(`image`)];if(n.length==0)return;let r=t.innerHeight||e.clientHeight,i=n.filter(e=>{let t=e.getBoundingClientRect();return t.bottom>-200&&t.top<r+200});i.length!=0&&await Promise.race([Promise.all(i.map(e=>this.waitForImageReady(e))),new Promise(e=>{window.setTimeout(e,800)})])},this.waitForImageReady=e=>this.isImageReady(e)?Promise.resolve():new Promise(t=>{let n=!1,r=()=>{n||(n=!0,e.removeEventListener(`load`,r),e.removeEventListener(`error`,r),i.disconnect(),t())},i=new MutationObserver(()=>{this.isImageReady(e)&&r()});i.observe(e,{attributes:!0,attributeFilter:[`src`,`href`,`data-load-state`]}),e.addEventListener(`load`,r),e.addEventListener(`error`,r),window.setTimeout(r,800)}),this.isImageReady=e=>{let t=e.getAttribute(`data-load-state`);if(t==`loaded`||t==`fail`)return!0;let n=e.ownerDocument.defaultView?.window.HTMLImageElement;if(!n||!(e instanceof n))return!1;let r=e.currentSrc||e.src;return!r||r.startsWith(`data:image/svg+xml`)?!1:e.complete&&e.naturalWidth>0},this.bringLoadingLayerToFront=()=>{let e=this.wrapperContainer.querySelector(`div[data-type='loading-layer']`);e&&this.wrapperContainer.appendChild(e)},this.fadeOutCover=async(e=200)=>{let t=this.wrapperContainer.querySelector(`div[data-type='loading-layer']`);if(!t)return;let n=Math.max(0,e);t.style.pointerEvents=`none`,t.style.transition=`opacity ${n}ms ease`,t.style.opacity=`0`,await new Promise(e=>{let r=!1,i=()=>{r||(r=!0,t.removeEventListener(`transitionend`,i),e())};t.addEventListener(`transitionend`,i),window.setTimeout(i,n+50)})},this.releaseLoadingLayer=async()=>{this.loadingLayer?.removeLoadingLayer(),await this.loadingLayer?.dispose(),this.loadingLayer=void 0},this.buildLoadingContent=async()=>{let e=await this.getFormattedVirtualDocument(),t=this.owner.getRenderer()?.documentPreprocesses??[];for(let e of t)try{await e(this)}catch(t){this.logger.error(`preprocess`,`function`,e?.name,t)}let n=e.documentElement.outerHTML.replace(/<([^<]*)\?xml([^>]*)\?.*?>/i,``);return n.match(/<!DOCTYPE[^>]*>/i)||(n=`<!DOCTYPE html>`+n),n},this.processAfterLoaded=async()=>{let t=this.getContentContainer();if(!t){this.revealPendingPageStrip();return}t.setAttribute(`data-url`,this.url);let n=this.pendingPageLayoutState??this.captureLayoutState();this.pendingPageLayoutState=null;let r=d.getLayoutGeometry(this.options).iframeGrow==`width`;r||this.wrapperContainer.classList.remove(c.HtmlSettings.FileContentContainerHeightClassName);try{let e=this.owner.getRenderer()?.documentPostprocesses??[];for(let t of e)try{await t(this),await o.yieldToMain()}catch(e){this.logger.error(`postprocess`,`function`,t?.name,e)}await this.layoutStatePreserver.waitUntilPageTransformStable(),this.resetLayoutSizes(),r&&this.wrapperContainer.classList.remove(c.HtmlSettings.FileContentContainerHeightClassName),await this.layoutStatePreserver.restore(n)}finally{this.revealPendingPageStrip()}this.retainLoadingLayer||await this.releaseLoadingLayer(),this.loadStatus=`success`,this.visibilityCandidates=null,this.bindDocumentEvents(),this.owner.events.emit(e.EventNames.DocumentLoad,this),this.resizeObserver.observeIframeSize(async()=>{let e=d.getLayoutGeometry(this.options),t=y.shouldKeepPageEndOnContentGrow(this.owner.context.currentLocation,this.url),n=e.restoresScrollAfterResize||t,r=n?this.captureLayoutState():null;if(this.resetLayoutSizes(),e.flipMode==`page`&&this.pageCalculator.calcNumberOfPages(!0),n&&r&&(await this.restoreLayoutState(r),t)){let e=this.internalGetNumberOfPages(),t=this.owner.context.currentLocation;t?.url==this.url&&(t.current=e,t.total=e)}}),this.loadCompleted(!0)},this.loadCompleted=e=>{for(let t=0;t<this.callbacks.length;t++)try{e?this.callbacks[t].resolve():this.callbacks[t].reject()}catch{}this.callbacks=[]},this.capture=!0,this.eventListener=e=>{let t=this.eventKeyMap.get(e.type);t&&this.owner.events.emit(t,e,this)},this.pageCalculator=new h.HtmlPageCalculator(this,n,s),this.symbolCalclator=new g.HtmlSymbolCalclator(this,f.asHtmlFileParser(r).symbolMeasure),this.layoutStatePreserver=new v.HtmlLayoutStatePreserver(this,n,s),this.logger=this.owner.loggerFactory.getLogger(this.constructor.name),this.resizeObserver=new _.HtmlDocumentResizeObserver(this,this.owner.events)}get inIframe(){return!0}async load(){await new Promise(async(i,s)=>{if(this.loadStatus==`success`){i();return}if(this.callbacks.push({resolve:i,reject:s}),this.loadStatus!=`loading`){this.loadStatus=`loading`,this.loadingLayer=await this.owner.services.get(`loadLayer`),this.loadingLayer?.setDoc(this),a.emptyElement(this.wrapperContainer),this.loadingLayer.removeLoadingLayer(),this.loadingLayer.loadLoadingLayer(),await o.yieldToMain();try{if(this.inIframe){if(!this.iframe){let i=r.readerPrefixName+t.getUuid(!0);this.iframe=m.createIframe(this.wrapperContainer.ownerDocument,i,this.options.forceScroll,d.getLayoutGeometry(this.options)),this.options.forceScroll?this.iframe.removeAttribute(`scrolling`):this.iframe.setAttribute(`scrolling`,`no`);let a=await this.buildLoadingContent();await o.yieldToMain(),this.wrapperContainer.appendChild(this.iframe),this.bringLoadingLayerToFront(),await o.yieldToMain(),this.iframe.addEventListener(`load`,async()=>{await this.processAfterLoaded()},!1),this.iframe.addEventListener(`error`,t=>{this.revealPendingPageStrip(),this.retainLoadingLayer=!1,this.loadingLayer?.removeLoadingLayer(),this.loadStatus=`fail`,this.iframe=void 0,this.loadingLayer?.setReloadButton(),this.logger.error(t),this.owner.events.emit(e.EventNames.DocumentLoadFailed,this,t),this.loadCompleted(!0)},!1);let s=this.iframe.contentDocument,c=this.captureLayoutState(),l=d.getLayoutGeometry(this.options).flipMode==`page`&&n.BrowserCapabilities.isSafari();l&&(this.pendingPageLayoutState=c,this.concealPageStrip()),this.options.preferSrcdoc&&`srcdoc`in this.iframe||!(`write`in s)?this.iframe.srcdoc=a:(s.open(),s.write(a),s.close()),l||await this.restoreLayoutState(c),await o.yieldToMain()}}else{let e=await this.buildLoadingContent();a.setElementHtml(this.wrapperContainer,e),await this.processAfterLoaded(),await o.yieldToMain()}}catch(t){this.revealPendingPageStrip(),this.logger.error(t),this.retainLoadingLayer=!1,this.owner?.context?(this.loadingLayer?.removeLoadingLayer(),this.loadStatus=`fail`,this.iframe=void 0,this.loadingLayer?.setReloadButton(),this.owner.events.emit(e.EventNames.DocumentLoadFailed,this,t?.toString()),this.loadCompleted(!0)):(await this.releaseLoadingLayer(),this.loadCompleted(!0))}}})}prepareCoveredLoad(){this.retainLoadingLayer=!0}async revealCoveredLoad(){this.retainLoadingLayer=!1;try{await this.waitForRevealPaint(),await this.fadeOutCover()}finally{await this.releaseLoadingLayer()}}resetLayoutSizes(){this.resetIframeMinSize()}captureLayoutState(){return this.layoutStatePreserver.capture()}async restoreLayoutState(e){await this.layoutStatePreserver.restore(e)}concealPageStrip(){this.pageStripConcealed=!0,this.layoutStatePreserver.concealPageStrip()}revealPendingPageStrip(){this.pendingPageLayoutState=null,this.pageStripConcealed&&(this.pageStripConcealed=!1,this.layoutStatePreserver.revealPageStrip())}resetIframeMinSize(){let e=this.getContentRootElement();if(!e||!this.iframe)return;let t=d.getLayoutGeometry(this.options),n=i.getDocumentBody(e.ownerDocument);this.iframe.style.removeProperty(`transform`),this.iframe.style.removeProperty(`will-change`);let r=this.owner.getRenderer()?.getRendererContainer(),a=parseFloat(r?.getAttribute(`data-column-width`)??``)||Math.round(this.iframe.getBoundingClientRect().width),o=parseFloat(r?.getAttribute(`data-page-height`)??``)||Math.round(this.iframe.getBoundingClientRect().height),s=parseFloat(r?.getAttribute(`data-column-gap`)??``);t.sizeIframe({iframe:this.iframe,contentRoot:e,body:n,forceScroll:!!this.options.forceScroll,columnWidth:Number.isFinite(a)?Math.round(a):0,pageHeight:Number.isFinite(o)?Math.round(o):0,columnGap:Number.isFinite(s)&&s>0?s:0,parentContentHeight:this.getParentContentHeight(this.iframe.parentElement)}),t.useColumnLayout&&this.pageCalculator.calcNumberOfPages(!0)}getParentContentHeight(e){if(!e)return 0;let t=e.ownerDocument.defaultView?.getComputedStyle(e),n=parseFloat(t?.paddingTop??`0`)||0,r=parseFloat(t?.paddingBottom??`0`)||0;return Math.max(0,Math.round(e.clientHeight-n-r))}async getContent(){return this.docContent?this.docContent:(this.docContent=await(await this.fileParser.getTextDocument(this.url)).getPlaintext(),this.docContent.length>this.options.singleDocMaxSize?m.getTooBigHtmlTemplate(this.docContent.length):this.docContent)}async getFormattedVirtualDocument(){if(this.formattedVirtualDocument)return this.formattedVirtualDocument;let e=await this.fileParser.getTextDocument(this.url);return this.formattedVirtualDocument=await e.getFormattedDocument(),this.formattedVirtualDocument}async getText(e){return await(await this.fileParser.getTextDocument(this.url)).getPlaintext(e)}internalGetNumberOfPages(){let e=1;return this.getFlipMode()==`page`&&(e=this.pageCalculator.calcNumberOfPages()),e}async getNumberOfPages(){return await this.load(),this.internalGetNumberOfPages()}async getPageNumber(e){return this.pageCalculator.getPageNumber(e)}getContentRootElement(){return this.inIframe?this.iframe?.contentDocument?.documentElement:this.wrapperContainer}getContentContainer(){return this.inIframe?i.getDocumentBody(this.iframe?.contentDocument):this.wrapperContainer}async getVirtualContentContainer(e){if(e){let e=await this.fileParser.getTextDocument(this.url);return i.getDocumentBody(await e.getFormattedDocument())}let t=await this.getFormattedVirtualDocument();return i.getDocumentBody(t)}getVisibleElements(e){if(this.loadStatus!=`success`)return[];let t=this.getContentContainer(),n=t?.ownerDocument?.defaultView;if(!t||!n)return[];this.visibilityCandidates||=u.collectContentUnitElements(t,{htmlBlockTags:this.options.htmlBlockTags});let r=this.owner.getRenderer()?.getRendererContainer().getBoundingClientRect().top,i=s.resolveVisibleViewportInContentWindow(n,{topInset:r});return i?s.getOrderedElementsIntersectingRect(this.visibilityCandidates,i,{writingMode:d.getLayoutGeometry(this.options).writingMode,fullVisible:e}):[]}async dispose(){let t=this.captureLayoutState();this.owner.events.emit(e.EventNames.DocumentDisposing,this),this.unbindDocumentEvents(),this.resizeObserver.unobserveIframeSize(),this.callbacks?.splice(0),this.visibilityCandidates=null,this.retainLoadingLayer=!1,await this.releaseLoadingLayer();let n=this.getWrapperContainer();n.classList.add(c.HtmlSettings.FileContentContainerHeightClassName),this.iframe&&n.contains(this.iframe)&&n.removeChild(this.iframe),a.emptyElement(this.wrapperContainer),this.iframe=void 0,this.formattedVirtualDocument=null,await this.symbolCalclator.dispose(),await this.restoreLayoutState(t),await super.dispose()}bindDocumentEvents(){let e=this.inIframe?this.getContentContainer().ownerDocument:this.getContentRootElement();for(let t of this.eventKeyMap.keys())e.addEventListener(t,this.eventListener,this.capture)}unbindDocumentEvents(){let e=this.inIframe?this.getContentContainer()?.ownerDocument:this.getContentRootElement();if(e)for(let t of this.eventKeyMap.keys())e?.removeEventListener(t,this.eventListener,this.capture)}getFlipMode(){return this.options.forceScroll?`scroll`:this.options.flipMode}};exports.HtmlDocument=b;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../../kernal/EventNames.cjs"),t=require("../../../../kernal/common/uuid.cjs"),n=require("../../../../kernal/web/BrowserCapabilities.cjs"),r=require("../../../../kernal/Constants.cjs"),i=require("../../../../kernal/html/finder.cjs"),a=require("../../../../kernal/html/dom.cjs"),o=require("../../../../kernal/web/scheduler.cjs"),s=require("../../HtmlSettings.cjs"),c=require("../../../base/renderer/BaseDocument.cjs"),l=require("../../../../kernal/html/geometry.cjs"),u=require("../../../base/renderer/eventKeys.cjs"),d=require("../visibilityCandidates.cjs"),f=require("../layout/resolveLayoutRoute.cjs"),p=require("../../fileParser/IHtmlFileParser.cjs"),m=require("../html/template.cjs"),h=require("./HtmlPageCalculator.cjs"),g=require("./HtmlSymbolCalclator.cjs"),_=require("./HtmlDocumentResizeObserver.cjs"),v=require("../location/HtmlLayoutStatePreserver.cjs"),y=require("../location/remapStoredPageNumber.cjs");var b=class extends c.BaseDocument{constructor(t,n,r,i,a,c){super(t,r,i,a),this.options=c,this.eventKeyMap=u.getEventKeyMap(),this.visibilityCandidates=null,this.callbacks=[],this.retainLoadingLayer=!1,this.pendingPageLayoutState=null,this.pageStripConcealed=!1,this.waitForRevealPaint=async()=>{await o.yieldToMain(),await new Promise(e=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>e())})}),await new Promise(e=>{window.setTimeout(e,120)}),await this.waitForVisibleImagesReady()},this.waitForVisibleImagesReady=async()=>{let e=this.getContentContainer(),t=e?.ownerDocument?.defaultView;if(!e||!t)return;let n=[...e.querySelectorAll(`img`),...e.getElementsByTagName(`image`)];if(n.length==0)return;let r=t.innerHeight||e.clientHeight,i=n.filter(e=>{let t=e.getBoundingClientRect();return t.bottom>-200&&t.top<r+200});i.length!=0&&await Promise.race([Promise.all(i.map(e=>this.waitForImageReady(e))),new Promise(e=>{window.setTimeout(e,800)})])},this.waitForImageReady=e=>this.isImageReady(e)?Promise.resolve():new Promise(t=>{let n=!1,r=()=>{n||(n=!0,e.removeEventListener(`load`,r),e.removeEventListener(`error`,r),i.disconnect(),t())},i=new MutationObserver(()=>{this.isImageReady(e)&&r()});i.observe(e,{attributes:!0,attributeFilter:[`src`,`href`,`data-load-state`]}),e.addEventListener(`load`,r),e.addEventListener(`error`,r),window.setTimeout(r,800)}),this.isImageReady=e=>{let t=e.getAttribute(`data-load-state`);if(t==`loaded`||t==`fail`)return!0;let n=e.ownerDocument.defaultView?.window.HTMLImageElement;if(!n||!(e instanceof n))return!1;let r=e.currentSrc||e.src;return!r||r.startsWith(`data:image/svg+xml`)?!1:e.complete&&e.naturalWidth>0},this.bringLoadingLayerToFront=()=>{let e=this.wrapperContainer.querySelector(`div[data-type='loading-layer']`);e&&this.wrapperContainer.appendChild(e)},this.fadeOutCover=async(e=200)=>{let t=this.wrapperContainer.querySelector(`div[data-type='loading-layer']`);if(!t)return;let n=Math.max(0,e);t.style.pointerEvents=`none`,t.style.transition=`opacity ${n}ms ease`,t.style.opacity=`0`,await new Promise(e=>{let r=!1,i=()=>{r||(r=!0,t.removeEventListener(`transitionend`,i),e())};t.addEventListener(`transitionend`,i),window.setTimeout(i,n+50)})},this.releaseLoadingLayer=async()=>{this.loadingLayer?.removeLoadingLayer(),await this.loadingLayer?.dispose(),this.loadingLayer=void 0},this.buildLoadingContent=async()=>{let e=await this.getFormattedVirtualDocument(),t=this.owner.getRenderer()?.documentPreprocesses??[];for(let e of t)try{await e(this)}catch(t){this.logger.error(`preprocess`,`function`,e?.name,t)}let n=e.documentElement.outerHTML.replace(/<([^<]*)\?xml([^>]*)\?.*?>/i,``);return n.match(/<!DOCTYPE[^>]*>/i)||(n=`<!DOCTYPE html>`+n),n},this.processAfterLoaded=async()=>{let t=this.getContentContainer();if(!t){this.revealPendingPageStrip();return}t.setAttribute(`data-url`,this.url);let n=this.pendingPageLayoutState??this.captureLayoutState();this.pendingPageLayoutState=null;let r=f.getLayoutGeometry(this.options).iframeGrow==`width`;r||this.wrapperContainer.classList.remove(s.HtmlSettings.FileContentContainerHeightClassName);try{let e=this.owner.getRenderer()?.documentPostprocesses??[];for(let t of e)try{await t(this),await o.yieldToMain()}catch(e){this.logger.error(`postprocess`,`function`,t?.name,e)}await this.layoutStatePreserver.waitUntilPageTransformStable(),this.resetLayoutSizes(),r&&this.wrapperContainer.classList.remove(s.HtmlSettings.FileContentContainerHeightClassName),await this.layoutStatePreserver.restore(n)}finally{this.revealPendingPageStrip()}this.retainLoadingLayer||await this.releaseLoadingLayer(),this.loadStatus=`success`,this.visibilityCandidates=null,this.bindDocumentEvents(),this.owner.events.emit(e.EventNames.DocumentLoad,this),this.resizeObserver.observeIframeSize(async()=>{let e=f.getLayoutGeometry(this.options),t=y.shouldKeepPageEndOnContentGrow(this.owner.context.currentLocation,this.url),n=e.restoresScrollAfterResize||t,r=n?this.captureLayoutState():null;if(this.resetLayoutSizes(),e.flipMode==`page`&&this.pageCalculator.calcNumberOfPages(!0),n&&r&&(await this.restoreLayoutState(r),t)){let e=this.internalGetNumberOfPages(),t=this.owner.context.currentLocation;t?.url==this.url&&(t.current=e,t.total=e)}}),this.loadCompleted(!0)},this.loadCompleted=e=>{for(let t=0;t<this.callbacks.length;t++)try{e?this.callbacks[t].resolve():this.callbacks[t].reject()}catch{}this.callbacks=[]},this.capture=!0,this.eventListener=e=>{let t=this.eventKeyMap.get(e.type);t&&this.owner.events.emit(t,e,this)},this.pageCalculator=new h.HtmlPageCalculator(this,n,c),this.symbolCalclator=new g.HtmlSymbolCalclator(this,p.asHtmlFileParser(r).symbolMeasure),this.layoutStatePreserver=new v.HtmlLayoutStatePreserver(this,n,c),this.logger=this.owner.loggerFactory.getLogger(this.constructor.name),this.resizeObserver=new _.HtmlDocumentResizeObserver(this,this.owner.events)}get inIframe(){return!0}async load(){await new Promise(async(i,s)=>{if(this.loadStatus==`success`){i();return}if(this.callbacks.push({resolve:i,reject:s}),this.loadStatus!=`loading`){this.loadStatus=`loading`,this.loadingLayer=await this.owner.services.get(`loadLayer`),this.loadingLayer?.setDoc(this),a.emptyElement(this.wrapperContainer),this.loadingLayer.removeLoadingLayer(),this.loadingLayer.loadLoadingLayer(),await o.yieldToMain();try{if(this.inIframe){if(!this.iframe){let i=r.readerPrefixName+t.getUuid(!0);this.iframe=m.createIframe(this.wrapperContainer.ownerDocument,i,this.options.forceScroll,f.getLayoutGeometry(this.options)),this.options.forceScroll?this.iframe.removeAttribute(`scrolling`):this.iframe.setAttribute(`scrolling`,`no`);let a=await this.buildLoadingContent();await o.yieldToMain(),this.wrapperContainer.appendChild(this.iframe),this.bringLoadingLayerToFront(),await o.yieldToMain(),this.iframe.addEventListener(`load`,async()=>{await this.processAfterLoaded()},!1),this.iframe.addEventListener(`error`,t=>{this.revealPendingPageStrip(),this.retainLoadingLayer=!1,this.loadingLayer?.removeLoadingLayer(),this.loadStatus=`fail`,this.iframe=void 0,this.loadingLayer?.setReloadButton(),this.logger.error(t),this.owner.events.emit(e.EventNames.DocumentLoadFailed,this,t),this.loadCompleted(!0)},!1);let s=this.iframe.contentDocument,c=this.captureLayoutState(),l=f.getLayoutGeometry(this.options).flipMode==`page`&&n.BrowserCapabilities.isSafari();l&&(this.pendingPageLayoutState=c,this.concealPageStrip()),this.options.preferSrcdoc&&`srcdoc`in this.iframe||!(`write`in s)?this.iframe.srcdoc=a:(s.open(),s.write(a),s.close()),l||await this.restoreLayoutState(c),await o.yieldToMain()}}else{let e=await this.buildLoadingContent();a.setElementHtml(this.wrapperContainer,e),await this.processAfterLoaded(),await o.yieldToMain()}}catch(t){this.revealPendingPageStrip(),this.logger.error(t),this.retainLoadingLayer=!1,this.owner?.context?(this.loadingLayer?.removeLoadingLayer(),this.loadStatus=`fail`,this.iframe=void 0,this.loadingLayer?.setReloadButton(),this.owner.events.emit(e.EventNames.DocumentLoadFailed,this,t?.toString()),this.loadCompleted(!0)):(await this.releaseLoadingLayer(),this.loadCompleted(!0))}}})}prepareCoveredLoad(){this.retainLoadingLayer=!0}async revealCoveredLoad(){this.retainLoadingLayer=!1;try{await this.waitForRevealPaint(),await this.fadeOutCover()}finally{await this.releaseLoadingLayer()}}resetLayoutSizes(){this.resetIframeMinSize()}captureLayoutState(){return this.layoutStatePreserver.capture()}async restoreLayoutState(e){await this.layoutStatePreserver.restore(e)}concealPageStrip(){this.pageStripConcealed=!0,this.layoutStatePreserver.concealPageStrip()}revealPendingPageStrip(){this.pendingPageLayoutState=null,this.pageStripConcealed&&(this.pageStripConcealed=!1,this.layoutStatePreserver.revealPageStrip())}resetIframeMinSize(){let e=this.getContentRootElement();if(!e||!this.iframe)return;let t=f.getLayoutGeometry(this.options),n=i.getDocumentBody(e.ownerDocument);this.iframe.style.removeProperty(`transform`),this.iframe.style.removeProperty(`will-change`);let r=this.owner.getRenderer()?.getRendererContainer(),a=parseFloat(r?.getAttribute(`data-column-width`)??``)||Math.round(this.iframe.getBoundingClientRect().width),o=parseFloat(r?.getAttribute(`data-page-height`)??``)||Math.round(this.iframe.getBoundingClientRect().height),s=parseFloat(r?.getAttribute(`data-column-gap`)??``);t.sizeIframe({iframe:this.iframe,contentRoot:e,body:n,forceScroll:!!this.options.forceScroll,columnWidth:Number.isFinite(a)?Math.round(a):0,pageHeight:Number.isFinite(o)?Math.round(o):0,columnGap:Number.isFinite(s)&&s>0?s:0,parentContentHeight:this.getParentContentHeight(this.iframe.parentElement)}),t.useColumnLayout&&this.pageCalculator.calcNumberOfPages(!0)}getParentContentHeight(e){if(!e)return 0;let t=e.ownerDocument.defaultView?.getComputedStyle(e),n=parseFloat(t?.paddingTop??`0`)||0,r=parseFloat(t?.paddingBottom??`0`)||0;return Math.max(0,Math.round(e.clientHeight-n-r))}async getContent(){return this.docContent?this.docContent:(this.docContent=await(await this.fileParser.getTextDocument(this.url)).getPlaintext(),this.docContent.length>this.options.singleDocMaxSize?m.getTooBigHtmlTemplate(this.docContent.length):this.docContent)}async getFormattedVirtualDocument(){if(this.formattedVirtualDocument)return this.formattedVirtualDocument;let e=await this.fileParser.getTextDocument(this.url);return this.formattedVirtualDocument=await e.getFormattedDocument(),this.formattedVirtualDocument}async getText(e){return await(await this.fileParser.getTextDocument(this.url)).getPlaintext(e)}internalGetNumberOfPages(){let e=1;return this.getFlipMode()==`page`&&(e=this.pageCalculator.calcNumberOfPages()),e}async getNumberOfPages(){return await this.load(),this.internalGetNumberOfPages()}async getPageNumber(e){return this.pageCalculator.getPageNumber(e)}getContentRootElement(){return this.inIframe?this.iframe?.contentDocument?.documentElement:this.wrapperContainer}getContentContainer(){return this.inIframe?i.getDocumentBody(this.iframe?.contentDocument):this.wrapperContainer}async getVirtualContentContainer(e){if(e){let e=await this.fileParser.getTextDocument(this.url);return i.getDocumentBody(await e.getFormattedDocument())}let t=await this.getFormattedVirtualDocument();return i.getDocumentBody(t)}getVisibleElements(e){if(this.loadStatus!=`success`)return[];let t=this.getContentContainer(),n=t?.ownerDocument?.defaultView;if(!t||!n)return[];this.visibilityCandidates||=d.collectContentUnitElements(t,{htmlBlockTags:this.options.htmlBlockTags});let r=this.owner.getRenderer()?.getRendererContainer().getBoundingClientRect().top,i=l.resolveVisibleViewportInContentWindow(n,{topInset:r});return i?l.getOrderedElementsIntersectingRect(this.visibilityCandidates,i,{writingMode:f.getLayoutGeometry(this.options).writingMode,fullVisible:e}):[]}async dispose(){let t=this.captureLayoutState();this.owner.events.emit(e.EventNames.DocumentDisposing,this),this.unbindDocumentEvents(),this.resizeObserver.unobserveIframeSize(),this.callbacks?.splice(0),this.visibilityCandidates=null,this.retainLoadingLayer=!1,await this.releaseLoadingLayer();let n=this.getWrapperContainer();n.classList.add(s.HtmlSettings.FileContentContainerHeightClassName),this.iframe&&n.contains(this.iframe)&&n.removeChild(this.iframe),a.emptyElement(this.wrapperContainer),this.iframe=void 0,this.formattedVirtualDocument=null,await this.symbolCalclator.dispose(),await this.restoreLayoutState(t),await super.dispose()}bindDocumentEvents(){let e=this.inIframe?this.getContentContainer().ownerDocument:this.getContentRootElement();for(let t of this.eventKeyMap.keys())e.addEventListener(t,this.eventListener,this.capture)}unbindDocumentEvents(){let e=this.inIframe?this.getContentContainer()?.ownerDocument:this.getContentRootElement();if(e)for(let t of this.eventKeyMap.keys())e?.removeEventListener(t,this.eventListener,this.capture)}getFlipMode(){return this.options.forceScroll?`scroll`:this.options.flipMode}};exports.HtmlDocument=b;
@@ -5,13 +5,13 @@ import { readerPrefixName as r } from "../../../../kernal/Constants.mjs";
5
5
  import { getDocumentBody as i } from "../../../../kernal/html/finder.mjs";
6
6
  import { emptyElement as a, setElementHtml as o } from "../../../../kernal/html/dom.mjs";
7
7
  import { yieldToMain as s } from "../../../../kernal/web/scheduler.mjs";
8
- import { getOrderedElementsIntersectingRect as c, resolveVisibleViewportInContentWindow as l } from "../../../../kernal/html/geometry.mjs";
9
- import { HtmlSettings as u } from "../../HtmlSettings.mjs";
10
- import { BaseDocument as d } from "../../../base/renderer/BaseDocument.mjs";
11
- import { collectContentUnitElements as f } from "../visibilityCandidates.mjs";
12
- import { getLayoutGeometry as p } from "../layout/resolveLayoutRoute.mjs";
13
- import { asHtmlFileParser as m } from "../../fileParser/IHtmlFileParser.mjs";
14
- import { getEventKeyMap as h } from "../../../base/renderer/eventKeys.mjs";
8
+ import { HtmlSettings as c } from "../../HtmlSettings.mjs";
9
+ import { BaseDocument as l } from "../../../base/renderer/BaseDocument.mjs";
10
+ import { getOrderedElementsIntersectingRect as u, resolveVisibleViewportInContentWindow as d } from "../../../../kernal/html/geometry.mjs";
11
+ import { getEventKeyMap as f } from "../../../base/renderer/eventKeys.mjs";
12
+ import { collectContentUnitElements as p } from "../visibilityCandidates.mjs";
13
+ import { getLayoutGeometry as m } from "../layout/resolveLayoutRoute.mjs";
14
+ import { asHtmlFileParser as h } from "../../fileParser/IHtmlFileParser.mjs";
15
15
  import { createIframe as g, getTooBigHtmlTemplate as _ } from "../html/template.mjs";
16
16
  import { HtmlPageCalculator as v } from "./HtmlPageCalculator.mjs";
17
17
  import { HtmlSymbolCalclator as y } from "./HtmlSymbolCalclator.mjs";
@@ -19,9 +19,9 @@ import { HtmlDocumentResizeObserver as b } from "./HtmlDocumentResizeObserver.mj
19
19
  import { HtmlLayoutStatePreserver as x } from "../location/HtmlLayoutStatePreserver.mjs";
20
20
  import { shouldKeepPageEndOnContentGrow as S } from "../location/remapStoredPageNumber.mjs";
21
21
  //#region mediaTypes/html/renderer/document/HtmlDocument.ts
22
- var C = class extends d {
22
+ var C = class extends l {
23
23
  constructor(t, n, r, i, a, o) {
24
- super(t, r, i, a), this.options = o, this.eventKeyMap = h(), this.visibilityCandidates = null, this.callbacks = [], this.retainLoadingLayer = !1, this.pendingPageLayoutState = null, this.pageStripConcealed = !1, this.waitForRevealPaint = async () => {
24
+ super(t, r, i, a), this.options = o, this.eventKeyMap = f(), this.visibilityCandidates = null, this.callbacks = [], this.retainLoadingLayer = !1, this.pendingPageLayoutState = null, this.pageStripConcealed = !1, this.waitForRevealPaint = async () => {
25
25
  await s(), await new Promise((e) => {
26
26
  requestAnimationFrame(() => {
27
27
  requestAnimationFrame(() => e());
@@ -95,8 +95,8 @@ var C = class extends d {
95
95
  t.setAttribute("data-url", this.url);
96
96
  let n = this.pendingPageLayoutState ?? this.captureLayoutState();
97
97
  this.pendingPageLayoutState = null;
98
- let r = p(this.options).iframeGrow == "width";
99
- r || this.wrapperContainer.classList.remove(u.FileContentContainerHeightClassName);
98
+ let r = m(this.options).iframeGrow == "width";
99
+ r || this.wrapperContainer.classList.remove(c.FileContentContainerHeightClassName);
100
100
  try {
101
101
  let e = this.owner.getRenderer()?.documentPostprocesses ?? [];
102
102
  for (let t of e) try {
@@ -104,12 +104,12 @@ var C = class extends d {
104
104
  } catch (e) {
105
105
  this.logger.error("postprocess", "function", t?.name, e);
106
106
  }
107
- await this.layoutStatePreserver.waitUntilPageTransformStable(), this.resetLayoutSizes(), r && this.wrapperContainer.classList.remove(u.FileContentContainerHeightClassName), await this.layoutStatePreserver.restore(n);
107
+ await this.layoutStatePreserver.waitUntilPageTransformStable(), this.resetLayoutSizes(), r && this.wrapperContainer.classList.remove(c.FileContentContainerHeightClassName), await this.layoutStatePreserver.restore(n);
108
108
  } finally {
109
109
  this.revealPendingPageStrip();
110
110
  }
111
111
  this.retainLoadingLayer || await this.releaseLoadingLayer(), this.loadStatus = "success", this.visibilityCandidates = null, this.bindDocumentEvents(), this.owner.events.emit(e.DocumentLoad, this), this.resizeObserver.observeIframeSize(async () => {
112
- let e = p(this.options), t = S(this.owner.context.currentLocation, this.url), n = e.restoresScrollAfterResize || t, r = n ? this.captureLayoutState() : null;
112
+ let e = m(this.options), t = S(this.owner.context.currentLocation, this.url), n = e.restoresScrollAfterResize || t, r = n ? this.captureLayoutState() : null;
113
113
  if (this.resetLayoutSizes(), e.flipMode == "page" && this.pageCalculator.calcNumberOfPages(!0), n && r && (await this.restoreLayoutState(r), t)) {
114
114
  let e = this.internalGetNumberOfPages(), t = this.owner.context.currentLocation;
115
115
  t?.url == this.url && (t.current = e, t.total = e);
@@ -123,7 +123,7 @@ var C = class extends d {
123
123
  }, this.capture = !0, this.eventListener = (e) => {
124
124
  let t = this.eventKeyMap.get(e.type);
125
125
  t && this.owner.events.emit(t, e, this);
126
- }, this.pageCalculator = new v(this, n, o), this.symbolCalclator = new y(this, m(r).symbolMeasure), this.layoutStatePreserver = new x(this, n, o), this.logger = this.owner.loggerFactory.getLogger(this.constructor.name), this.resizeObserver = new b(this, this.owner.events);
126
+ }, this.pageCalculator = new v(this, n, o), this.symbolCalclator = new y(this, h(r).symbolMeasure), this.layoutStatePreserver = new x(this, n, o), this.logger = this.owner.loggerFactory.getLogger(this.constructor.name), this.resizeObserver = new b(this, this.owner.events);
127
127
  }
128
128
  get inIframe() {
129
129
  return !0;
@@ -143,14 +143,14 @@ var C = class extends d {
143
143
  if (this.inIframe) {
144
144
  if (!this.iframe) {
145
145
  let i = r + t(!0);
146
- this.iframe = g(this.wrapperContainer.ownerDocument, i, this.options.forceScroll, p(this.options)), this.options.forceScroll ? this.iframe.removeAttribute("scrolling") : this.iframe.setAttribute("scrolling", "no");
146
+ this.iframe = g(this.wrapperContainer.ownerDocument, i, this.options.forceScroll, m(this.options)), this.options.forceScroll ? this.iframe.removeAttribute("scrolling") : this.iframe.setAttribute("scrolling", "no");
147
147
  let a = await this.buildLoadingContent();
148
148
  await s(), this.wrapperContainer.appendChild(this.iframe), this.bringLoadingLayerToFront(), await s(), this.iframe.addEventListener("load", async () => {
149
149
  await this.processAfterLoaded();
150
150
  }, !1), this.iframe.addEventListener("error", (t) => {
151
151
  this.revealPendingPageStrip(), this.retainLoadingLayer = !1, this.loadingLayer?.removeLoadingLayer(), this.loadStatus = "fail", this.iframe = void 0, this.loadingLayer?.setReloadButton(), this.logger.error(t), this.owner.events.emit(e.DocumentLoadFailed, this, t), this.loadCompleted(!0);
152
152
  }, !1);
153
- let o = this.iframe.contentDocument, c = this.captureLayoutState(), l = p(this.options).flipMode == "page" && n.isSafari();
153
+ let o = this.iframe.contentDocument, c = this.captureLayoutState(), l = m(this.options).flipMode == "page" && n.isSafari();
154
154
  l && (this.pendingPageLayoutState = c, this.concealPageStrip()), this.options.preferSrcdoc && "srcdoc" in this.iframe || !("write" in o) ? this.iframe.srcdoc = a : (o.open(), o.write(a), o.close()), l || await this.restoreLayoutState(c), await s();
155
155
  }
156
156
  } else {
@@ -192,7 +192,7 @@ var C = class extends d {
192
192
  resetIframeMinSize() {
193
193
  let e = this.getContentRootElement();
194
194
  if (!e || !this.iframe) return;
195
- let t = p(this.options), n = i(e.ownerDocument);
195
+ let t = m(this.options), n = i(e.ownerDocument);
196
196
  this.iframe.style.removeProperty("transform"), this.iframe.style.removeProperty("will-change");
197
197
  let r = this.owner.getRenderer()?.getRendererContainer(), a = parseFloat(r?.getAttribute("data-column-width") ?? "") || Math.round(this.iframe.getBoundingClientRect().width), o = parseFloat(r?.getAttribute("data-page-height") ?? "") || Math.round(this.iframe.getBoundingClientRect().height), s = parseFloat(r?.getAttribute("data-column-gap") ?? "");
198
198
  t.sizeIframe({
@@ -250,10 +250,10 @@ var C = class extends d {
250
250
  if (this.loadStatus != "success") return [];
251
251
  let t = this.getContentContainer(), n = t?.ownerDocument?.defaultView;
252
252
  if (!t || !n) return [];
253
- this.visibilityCandidates ||= f(t, { htmlBlockTags: this.options.htmlBlockTags });
254
- let r = this.owner.getRenderer()?.getRendererContainer().getBoundingClientRect().top, i = l(n, { topInset: r });
255
- return i ? c(this.visibilityCandidates, i, {
256
- writingMode: p(this.options).writingMode,
253
+ this.visibilityCandidates ||= p(t, { htmlBlockTags: this.options.htmlBlockTags });
254
+ let r = this.owner.getRenderer()?.getRendererContainer().getBoundingClientRect().top, i = d(n, { topInset: r });
255
+ return i ? u(this.visibilityCandidates, i, {
256
+ writingMode: m(this.options).writingMode,
257
257
  fullVisible: e
258
258
  }) : [];
259
259
  }
@@ -261,7 +261,7 @@ var C = class extends d {
261
261
  let t = this.captureLayoutState();
262
262
  this.owner.events.emit(e.DocumentDisposing, this), this.unbindDocumentEvents(), this.resizeObserver.unobserveIframeSize(), this.callbacks?.splice(0), this.visibilityCandidates = null, this.retainLoadingLayer = !1, await this.releaseLoadingLayer();
263
263
  let n = this.getWrapperContainer();
264
- n.classList.add(u.FileContentContainerHeightClassName), this.iframe && n.contains(this.iframe) && n.removeChild(this.iframe), a(this.wrapperContainer), this.iframe = void 0, this.formattedVirtualDocument = null, await this.symbolCalclator.dispose(), await this.restoreLayoutState(t), await super.dispose();
264
+ n.classList.add(c.FileContentContainerHeightClassName), this.iframe && n.contains(this.iframe) && n.removeChild(this.iframe), a(this.wrapperContainer), this.iframe = void 0, this.formattedVirtualDocument = null, await this.symbolCalclator.dispose(), await this.restoreLayoutState(t), await super.dispose();
265
265
  }
266
266
  bindDocumentEvents() {
267
267
  let e = this.inIframe ? this.getContentContainer().ownerDocument : this.getContentRootElement();